



  

<!DOCTYPE html>
<html
  lang="en"
  
  data-color-mode="auto" data-light-theme="light" data-dark-theme="dark"
  data-a11y-animated-images="system" data-a11y-link-underlines="true"
  
  >




  <head>
    <meta charset="utf-8">
  <link rel="dns-prefetch" href="https://github.githubassets.com">
  <link rel="dns-prefetch" href="https://avatars.githubusercontent.com">
  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
  <link rel="preconnect" href="https://github.githubassets.com" crossorigin>
  <link rel="preconnect" href="https://avatars.githubusercontent.com">

<script type="importmap">{"imports":{"react":"https://github.githubassets.com/assets/react-e27d1b3e03961e68.js","react-dom":"https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js","react-dom/client":"https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js","react-is":"https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js","react-reconciler":"https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js","react/compiler-runtime":"https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js","react/jsx-dev-runtime":"https://github.githubassets.com/assets/react-jsx-dev-runtime-ea55d68667d559e5.js","react/jsx-runtime":"https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js","scheduler":"https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js"}}</script>
<meta name="react-profiling" content="0" data-turbo-transient="true" />
<meta name="react-import-map" content="react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@777f63f87cd0" data-turbo-track="reload" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-e27d1b3e03961e68.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js" />

  


  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-5c4e9fc574bf49f3.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light_high_contrast-fb37c309e0603a69.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-afff6c53aef9b9d1.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark_high_contrast-c409873d7987dffa.css" /><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-5c4e9fc574bf49f3.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-fb37c309e0603a69.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-0f910d8806d5761b.css" /><link data-color-theme="light_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind_high_contrast-a7abd4d4c49ac593.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-5fc4c4a9cb41e596.css" /><link data-color-theme="light_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia_high_contrast-ed0cee9214dedabd.css" /><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-afff6c53aef9b9d1.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-c409873d7987dffa.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-78a2491d538dab5a.css" /><link data-color-theme="dark_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind_high_contrast-c26b63d7c532d0a2.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-a6f60cea68c08405.css" /><link data-color-theme="dark_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia_high_contrast-f66faf28b2ea18b6.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-6701f6218c53cf5b.css" /><link data-color-theme="dark_dimmed_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed_high_contrast-7037fa46ae124d97.css" />

  <style type="text/css">
    :root {
      --tab-size-preference: 4;
    }

    pre, code {
      tab-size: var(--tab-size-preference);
    }
  </style>

    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-97df7784617ce1ea.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-9be9fe6313f476af.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-62747e27e61258dc.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-7a418ea859d1654d.css" />
  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/repository-72bd7d974b5ac1cc.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-4c5c0895f723f870.css" />

  

  <script type="application/json" id="client-env">{"locale":"en","featureFlags":["actions_caches_react_shell","actions_enable_background_steps","actions_new_hosted_runner_image_select_sizes_and_versions","actions_runners_react_shell","activity_diff_file_tree","activity_repos_file_tree","activity_repos_overview_header","activity_repos_overview_sidebar","agent_author_search_expansion","agent_author_search_expansion_ui_pulls","alternate_user_config_repo","async_conversion_coverage_enabled","billing_billable_licenses_cost_center_bucket_fix","billing_budget_expiration","billing_cost_center_list_assigned_resources","billing_discount_threshold_notification","code_quality_enablement_banner_targeting","code_quality_remove_preview","code_view_raf_sticky_lines","codespaces_prebuild_region_target_update","coding_agent_third_party_model_ui","copilot_agent_snippy","copilot_api_agentic_issue_marshal_yaml","copilot_automation_repo_mcp_servers","copilot_automations_pagination","copilot_base_model_policy_row","copilot_chat_auto_mode_v2","copilot_chat_clear_model_selection_for_default_change","copilot_chat_early_task_provisioning","copilot_chat_persist_session_drafts","copilot_chat_vision_dotcom_chat_ga_gate","copilot_css_textarea_autosize","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_removal_on_marketplace","copilot_fix_failed_workflows_all_skus","copilot_hide_hovercard","copilot_immersive_task_hyperlinking","copilot_mc_cli_resume_any_users_task","copilot_mission_control_agent_merge_fix_ci","copilot_mission_control_agent_merge_resolve_conflicts","copilot_mission_control_awps_batching","copilot_mission_control_early_stop","copilot_mission_control_managed_sandbox_environments","copilot_mission_control_needs_attention","copilot_mission_control_reasoning_effort","copilot_mission_control_sandbox_remote_bypass","copilot_mission_control_task_alive_updates","copilot_mission_control_task_sharing","copilot_org_policy_page_focus_mode","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_swe_agent_authorization_status_ui","copilot_swe_agent_automation_resource_scoped_writes","copilot_swe_agent_discussion_comment_trigger","copilot_swe_agent_discussion_opened_trigger","copilot_swe_agent_discussion_updated_trigger","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_issue_assigned_trigger","copilot_swe_agent_issue_comment_trigger","copilot_swe_agent_issue_labeled_trigger","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_pull_request_assigned_trigger","copilot_swe_agent_pull_request_comment_trigger","copilot_swe_agent_pull_request_labeled_trigger","copilot_swe_agent_pull_request_merged_trigger","copilot_swe_agent_pull_request_opened_trigger","copilot_swe_agent_pull_request_ready_for_review_trigger","copilot_swe_agent_pull_request_review_requested_trigger","copilot_swe_agent_pull_request_review_submitted_trigger","copilot_swe_agent_pull_request_synchronize_trigger","copilot_swe_agent_sub_issue_added_trigger","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_task_scoped_alive_channel","copilot_token_based_billing","copilot_unconfigured_is_inherited","copilot_user_can_upgrade_plan_field","copilot_workbench_sunset_redirect","dashboard_agents_module_auth_token_check","dashboard_indexeddb_caching","dashboard_lists_max_age_filter","fgpat_permissions_selector_redesign","glc_code_quality_repo_settings_workflow_config","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","in_product_messaging_datadog_monitoring","ipm_ubb_individual_budget_banner","issue_fields_multi_select","issue_inline_avatars","issue_pinned_views","issue_pinned_views_team_vs_personal","issue_relative_time_micro","issues_dashboard_sso_structured_errors","issues_expanded_file_types","issues_hide_closed_sub_issues","issues_index_data_router","issues_lazy_load_comment_box_suggestions","issues_react_chrome_container_query_fix","labels_archiving","labels_archiving_info","landing_pages_ninetailed","lifecycle_label_name_updates","marketing_cookie_consent_banner","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_queue_restricted_pushers_warning","merge_status_header_feedback","milestone_closed_issues_prioritization","milestone_show_data_router","octocaptcha_origin_optimization","primer_react_css_anchor_positioning","primer_react_merged_forwarded_refs","prs_copilot_app_open_action","prs_css_anchor_positioning","pull_request_copilot_attribution_header","pull_request_overview_merge_control","pull_request_overview_panel_edit_description","pull_request_persister","pull_request_stacks_navigation_shortcuts","pull_request_virtualization_image_estimate","pull_request_virtualization_loader_batching","pull_request_virtualization_scroll_compensation","pull_request_virtualization_scroll_intent","quick_search_lazy_suggestions","react_blob_isolate_code_lines","react_blob_ssr_content_visibility","react_data_router_tanstack_allowed","react_logged_out_repository_header","react_query_props_with_key","react_sandbox_future_tanstack","repo_app_turbo","repo_issues_sidebar_layout","repo_pulls_dashboard_declutter","repo_pulls_dashboard_ga","repo_pulls_dashboard_persistence","repo_pulls_dashboard_sidebar_links","repos_contributors_limited_default_range","review_involves_filter","rule_ignored_file_paths","rulesets_actor_list_editor","sample_network_conn_type","security_center_artifact_filters_popover","see_who_reacted","semantic_similarity_duplicate_issue_detection","session_logs_ungroup_reasoning_text","set_sha256_on_repo_creation_form","site_banner_desktop_copilot_app","site_ghca_pixel_mona","site_github_app_ga_page","site_github_app_ga_page_highlight","site_github_app_mobile_native_share","site_global_banner_dev_days_attendee","site_global_nav_spark_models_removed","speculation_rules_ui_service","suggest_custom_property_values_copilot","suppress_automated_browser_vitals","swp_forms_disable_octocaptcha","thread_resolution_reason","update_issue_suggestions","viewscreen_sandbox","warn_inaccessible_attachments","webp_support","workstream_plugin_bootstrap"],"githubDomain":"https://github.com","copilotApiOverrideUrl":"https://api.githubcopilot.com","cmcApiUrl":"https://api.github.com/cmc_internal/api"}</script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/high-contrast-cookie-b752d992928a526c.js"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-runtime-8b4dcdc2cb6562ff.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-foundation-2f08c823163591a8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-runtime-633ad94fa06c334b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fetch-utilities-0fb4c544a797ec0d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ser-7c872b58ac9f1b39.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tp-7e9817cf5c068979.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/environment-8bdc8c2592df853b.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-runtime.bef03fb24bb03be8.module.css" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/catalyst-52ed81112a548e10.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/selector-observer-e8810f64c443fb9b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/relative-time-element-0417f617ad744a0d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/by-9da36843ba9d191d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ja9-9a1160b939f2cd52.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3h-55903cf2303047ad.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hk-f1498fec45311acd.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jz5-7aa1ff0a0e750f41.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hj-1d800d09e9a8720a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j0-9697c1c8f5cbf523.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/github-elements-3f257b2433f975f0.js" defer="defer"></script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/element-registry-95b267513b87193c.js" defer="defer"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/runtime-helpers-5e0b3ae3c4036207.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/aria-live-524a06aa946df6fc.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hotkey-b1ee53c2200b172a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-core-7bf7b9d689fe3d10.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a9-ca3bc10b816bcc1f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ur-21ec1e439ee2d87c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4t-4c39f7195fc42cc8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pb-53cfff089eaac51b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/6n-afcf86ccabc4cad2.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/zj-4d9cf83cf08e1643.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wo-6991af5b3829ffe8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/nfv-a6c14301d3ea6d67.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/b5-a2fde30ce0c692b9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sw-9d0489dbf9a9c942.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ttf-7d5abe1b447ced2c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sj-c7a44023ee90d468.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0pd-c46d8dfae89c2b64.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/behaviors-2a35428577a46a82.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/react-core.255cab819a92f7e1.module.css" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-menu-baecde86e879facb.js" defer="defer"></script>
  
  <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/primer-react-8503588299651923.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ncx-66e64888bc4615bb.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/qmp-c7cfba40cf5a93b0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j6-148a74299e5a01ab.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t7l-a9404625ec30bbc7.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4u-8f9f1d6be01d6a22.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/s0-68d09e5e8a80cb94.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/y5-0cb3f75cec297941.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/n4u-cd9039ad946274ad.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j8s-00bd469c4017a543.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/la-27679061f16e1495.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/iu-2d03f5e6d4fdd54d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gru-2b0fac8887ff8c57.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a0-234e967e7c6d22ce.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gz3-5bdfbfceac967bb6.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/15m-64f3034430471048.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/1e-c15441bdb94d54ae.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gzu-6ad9a0527a5d7afd.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/bi-3a42b8714e06c4d0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tu1-37e16844272ddefa.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/b1-ac66ededed061993.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gmn-1e5497c041b66231.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/0l5-d1b2a63015b5eb6d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/c2-e85522be441acf73.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/f9-baf0a4193779952e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sp-87dce99c82a27004.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/zkm-116b01b8485bbe3f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/og-518d12c9e011601d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/b9-947db365ea875cfa.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/14-8c7b4ad3c845664c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/dsj-2e7d883cb843e9e6.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ec-38012819307fd539.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/du-6607da3b8b579202.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/20-f43eb09c2be69457.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ql0-107312645ac2b72d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-fa7cdc0f7656d876.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/p0l-fe491d943adf7508.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/v1e-d099d9fd21ad25e5.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fn-7b298a45c55fb6fb.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/7cw-6e493a20eaaa04b5.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ok-290e4b9465ba9c5b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/6d-ca6d584a0fd6368c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/y8-e2f18f5a24733f3b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/xc-3fd4a2e7dcbad8e2.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/vjg-2874f95f389c4d3f.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-view-b187f9df797cfbc1.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/ql0.501e99879e15a48e.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/xc.de2b1dde0494f261.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-view.30fafa560a1eee5e.module.css" />


  <title>xmloxide/include/xmloxide.h at main · jonwiggins/xmloxide · GitHub</title>



  <meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient>
  <meta name="route-controller" content="blob" data-turbo-transient>
  <meta name="route-action" content="show" data-turbo-transient>
  <meta name="fetch-nonce" content="v2:ac521cff-6211-d484-e742-75635852c7c2">

    
  <meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">


  <meta name="request-id" content="8C54:114F06:36E677:33AF08:6AC74840" data-pjax-transient="true"/><meta name="html-safe-nonce" content="76759072000d152f91aa273807278e2b294d486979cf6755d8538377ae66daa0" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4QzU0OjExNEYwNjozNkU2Nzc6MzNBRjA4OjZBQzc0ODQwIiwidmlzaXRvcl9pZCI6Ijg4OTY0NjI3MjQ2MjUwMjUwODgiLCJyZWdpb25fZWRnZSI6ImZyYSIsInJlZ2lvbl9yZW5kZXIiOiJmcmEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="e1cef722cef246d3fa4da6f22d54a45bc8383be1f38fdf3532c13de5f5b45c5c" data-pjax-transient="true"/>


    <meta name="hovercard-subject-tag" content="repository:1163839325" data-turbo-transient>


  <meta name="github-keyboard-shortcuts" content="repository,source-code,file-tree,copilot" data-turbo-transient="true" />
  

  <meta name="selected-link" value="repo_source" data-turbo-transient>
  <link rel="assets" href="https://github.githubassets.com/">

    <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I">

<meta name="octolytics-url" content="https://collector.github.com/github/collect" />





  <meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show" data-turbo-transient="true" />

  




    <meta name="user-login" content="">

  

    <meta name="viewport" content="width=device-width">

    

      <meta name="description" content="A pure Rust reimplementation of libxml2. Contribute to jonwiggins/xmloxide development by creating an account on GitHub.">

      <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">

    <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
    <meta property="fb:app_id" content="1401488693436528">
    <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/jonwiggins/xmloxide/blob/main/include/xmloxide.h" />

      <meta name="twitter:image" content="https://opengraph.githubassets.com/142d9e9656c232108dc085e3b4f2f358dcd66bf4306d3444d96ecf0177f18c1f/jonwiggins/xmloxide" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="xmloxide/include/xmloxide.h at main · jonwiggins/xmloxide" /><meta name="twitter:description" content="A pure Rust reimplementation of libxml2. Contribute to jonwiggins/xmloxide development by creating an account on GitHub." />
  <meta property="og:image" content="https://opengraph.githubassets.com/142d9e9656c232108dc085e3b4f2f358dcd66bf4306d3444d96ecf0177f18c1f/jonwiggins/xmloxide" /><meta property="og:image:alt" content="A pure Rust reimplementation of libxml2. Contribute to jonwiggins/xmloxide development by creating an account on GitHub." /><meta property="og:image:width" content="1200" /><meta property="og:image:height" content="600" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="xmloxide/include/xmloxide.h at main · jonwiggins/xmloxide" /><meta property="og:url" content="https://github.com/jonwiggins/xmloxide/blob/main/include/xmloxide.h" /><meta property="og:description" content="A pure Rust reimplementation of libxml2. Contribute to jonwiggins/xmloxide development by creating an account on GitHub." />
  




      <meta name="hostname" content="github.com">



        <meta name="expected-hostname" content="github.com">


  <meta http-equiv="x-pjax-version" content="8a04ed058e34f1ad63cd2ec184ddc8db8ab22004d2ce8345ee86788432baa4cf" data-turbo-track="reload">
  <meta http-equiv="x-pjax-csp-version" content="c4a65e47b0c850e1157ae8e66298070851d7e3b558038de5a3b4ff7a93e630ed" data-turbo-track="reload">
  <meta http-equiv="x-pjax-css-version" content="1ff3f1d4e1abd61f6f135b47d3b815e2f7169f8dd418f0118c6b1cf4de6cbc86" data-turbo-track="reload">
  <meta http-equiv="x-pjax-js-version" content="31760b6cf01794eaa3898a84a5be66fa89579904959fd0698672e3cbcd9741ca" data-turbo-track="reload">

  <meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">

      <meta name="turbo-cache-control" content="no-cache" data-turbo-transient>

    <meta data-hydrostats="publish">

  <meta name="go-import" content="github.com/jonwiggins/xmloxide git https://github.com/jonwiggins/xmloxide.git">

  <meta name="octolytics-dimension-user_id" content="35540058" /><meta name="octolytics-dimension-user_login" content="jonwiggins" /><meta name="octolytics-dimension-repository_id" content="1163839325" /><meta name="octolytics-dimension-repository_nwo" content="jonwiggins/xmloxide" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="1163839325" /><meta name="octolytics-dimension-repository_network_root_nwo" content="jonwiggins/xmloxide" />
  



    

    <meta name="turbo-body-classes" content="logged-out env-production page-responsive">
  <meta name="disable-turbo" content="false">


  <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">


  <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">

  <meta name="release" content="abcc1c729a3dae04e49a5be4a885c179f1620884" data-turbo-track="reload">
  <meta name="ui-target" content="full">

  <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
  <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png">
  <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon">

<meta name="theme-color" content="#1e2327">
<meta name="color-scheme" content="light dark" />


  <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">

  </head>

  <body class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
    <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
      <div id="__primerPortalRoot__" style="z-index: 1000; position: absolute; width: 100%;" data-turbo-permanent></div>
      

    <div class="position-relative header-wrapper js-header-wrapper ">
      <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 tmp-py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a>

      <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full">
    <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
</span>      
      <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/qc-1bbbe8787ea1cd4b.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-a3b4cbcefa4e617e.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.b8afe3d106c9bb64.module.css" />

<react-partial
  partial-name="keyboard-shortcuts-dialog"
  data-ssr="false"
  data-attempted-ssr="false"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script>
  <div data-target="react-partial.reactRoot"></div>
</react-partial>





      

          <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-install-banner-partial-173a78d38983be1c.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-install-banner-partial.882c17396978a47d.module.css" />

<react-partial
  partial-name="app-install-banner-partial"
  data-ssr="false"
  data-attempted-ssr="false"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{}}</script>
  <div data-target="react-partial.reactRoot"></div>
</react-partial>


          

                <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/2l-e468179ba7123a2e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/rwd-069fc3d9814ff9fe.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fz-e662bc3745e171e7.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jag-3559ee48016881a2.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3d-7f22b36f29a9dd94.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tua-4998592d21eb16f7.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/8i-ea1b3f2e11ed8cd3.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/marketing-header-b6853fcac2424bda.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-brand-css.05b219cdb8e80c43.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/8i.5d9e6dcb0dade694.module.css" />

<react-partial
  partial-name="marketing-header"
  data-ssr="true"
  data-attempted-ssr="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"color_mode":"dark","logged_in":false,"marketing_page":false,"home_path":"/","login_path":"/login?return_to=https%3A%2F%2Fgithub.com%2Fjonwiggins%2Fxmloxide%2Fblob%2Fmain%2Finclude%2Fxmloxide.h","signup_path":"/signup?ref_cta=Sign+up\u0026ref_loc=header+logged+out\u0026ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow\u0026source=header-repo\u0026source_repo=jonwiggins%2Fxmloxide","signup_enabled":true,"is_signup_controller":false,"show_search_and_nav":true,"hide_search":false,"private_mode_enabled":false,"should_use_dotcom_links":true,"auth_hydro_click":"{\"event_type\":\"authentication.click\",\"payload\":{\"location_in_page\":\"site header menu\",\"repository_id\":null,\"auth_type\":\"SIGN_UP\",\"originating_url\":\"https://github.com/jonwiggins/xmloxide/blob/main/include/xmloxide.h\",\"user_id\":null}}","auth_hydro_click_hmac":"bf8784ec8b09786fe29462d5b504c0ab4043ff915f12d8b8cf6c99666ff1b5ab","overlay":false,"fixed":false}}</script>
  <div data-target="react-partial.reactRoot"><div data-color-mode="dark" data-light-theme="light" data-dark-theme="dark"><header class="MarketingHeader-module__root__Tk7n3 HeaderMktg header-logged-out" role="banner" data-marketing-header="true" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark" data-is-top="true"><h2 class="MarketingHeader-module__visuallyHidden__sqKsl">Navigation Menu</h2><button type="button" class="MarketingHeader-module__backdrop__sw4RU" aria-label="Close navigation menu"></button><div class="MarketingHeader-module__bar__mBSyE"><div class="MarketingHeader-module__topRow__yeury"><div class="MarketingHeader-module__toggleSlot__hDxbh"><button type="button" class="HeaderMenuToggle-module__toggle__i8EiC" aria-label="Toggle navigation" aria-expanded="false"><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span></button></div><a href="/" aria-label="Homepage" class="HeaderLogo-module__logo__UFyHI" data-analytics-event="{&quot;action&quot;:&quot;homepage&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;logo&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;homepage_link_logo_header&quot;}"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github" viewBox="0 0 24 24" width="32" height="32" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path></svg></a><div class="AuthCTAs-module__mobileActions__NNzeV"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/login?return_to=https%3A%2F%2Fgithub.com%2Fjonwiggins%2Fxmloxide%2Fblob%2Fmain%2Finclude%2Fxmloxide.h" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/jonwiggins/xmloxide/blob/main/include/xmloxide.h&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="bf8784ec8b09786fe29462d5b504c0ab4043ff915f12d8b8cf6c99666ff1b5ab"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_3dd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_3dd_">Appearance settings</div></div></div><div class="MarketingHeader-module__menu__GIy3y"><div class="MarketingHeader-module__menuWrapper__owstH"><nav class="MarketingNavigation-module__nav__W0KYY" aria-label="Global"><ul class="MarketingNavigation-module__list__tFbMb"><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_nd_">Platform<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5knd_">AI CODE CREATION</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot" data-analytics-event="{&quot;action&quot;:&quot;github_copilot&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>GitHub Copilot</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Write better code with AI</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/ai/github-app" data-analytics-event="{&quot;action&quot;:&quot;github_copilot_app&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_app_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.766 11.328c-2.063-.25-3.516-1.734-3.516-3.656 0-.781.281-1.625.75-2.188-.203-.515-.172-1.609.063-2.062.625-.078 1.468.25 1.968.703.594-.187 1.219-.281 1.985-.281.765 0 1.39.094 1.953.265.484-.437 1.344-.765 1.969-.687.218.422.25 1.515.046 2.047.5.593.766 1.39.766 2.203 0 1.922-1.453 3.375-3.547 3.64.531.344.89 1.094.89 1.954v1.625c0 .468.391.734.86.547C13.781 14.359 16 11.53 16 8.03 16 3.61 12.406 0 7.984 0 3.563 0 0 3.61 0 8.031a7.88 7.88 0 0 0 5.172 7.422c.422.156.828-.125.828-.547v-1.25c-.219.094-.5.156-.75.156-1.031 0-1.64-.562-2.078-1.609-.172-.422-.36-.672-.719-.719-.187-.015-.25-.093-.25-.187 0-.188.313-.328.625-.328.453 0 .844.281 1.25.86.313.452.64.655 1.031.655s.641-.14 1-.5c.266-.265.47-.5.657-.656"></path></svg>GitHub Copilot app</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Direct agents from issue to merge</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/mcp" data-analytics-event="{&quot;action&quot;:&quot;mcp_registry&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;mcp_registry_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mcp NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.52 1.12a3.578 3.578 0 0 1 6.078 2.98 3.578 3.578 0 0 1 2.982 6.08l-3.292 3.293a.252.252 0 0 0 0 .354l.843.843a.749.749 0 1 1-1.06 1.06l-.844-.843a1.75 1.75 0 0 1 0-2.474L13.52 9.12a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0L7.731 9.03A.75.75 0 0 1 6.67 7.97l2.85-2.85a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0l-4.799 4.8A.75.75 0 0 1 .72 5.92Z"></path><path d="M7.52 3.12a.749.749 0 1 1 1.06 1.06L5.731 7.03A2.079 2.079 0 0 0 8.67 9.97l2.85-2.85a.749.749 0 1 1 1.06 1.06l-2.849 2.85A3.578 3.578 0 0 1 4.67 5.97Z"></path></svg>MCP Registry</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Integrate external tools</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9knd_">DEVELOPER WORKFLOWS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/actions" data-analytics-event="{&quot;action&quot;:&quot;actions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;actions_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-workflow NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z"></path></svg>Actions</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Automate any workflow</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/codespaces" data-analytics-event="{&quot;action&quot;:&quot;codespaces&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;codespaces_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codespaces NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path></svg>Codespaces</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Instant dev environments</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/issues" data-analytics-event="{&quot;action&quot;:&quot;issues&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;issues_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-issue-opened NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path></svg>Issues</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Plan and track work</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-review" data-analytics-event="{&quot;action&quot;:&quot;code_review&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_review_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg>Code Review</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Manage code changes</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-quality" data-analytics-event="{&quot;action&quot;:&quot;code_quality&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_quality_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codescan-checkmark NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.28 6.28a.75.75 0 1 0-1.06-1.06L6.25 8.19l-.97-.97a.75.75 0 0 0-1.06 1.06l1.5 1.5a.75.75 0 0 0 1.06 0l3.5-3.5Z"></path><path d="M7.5 15a7.5 7.5 0 1 1 5.807-2.754l2.473 2.474a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2.474-2.473A7.472 7.472 0 0 1 7.5 15Zm0-13.5a6 6 0 1 0 4.094 10.386.748.748 0 0 1 .293-.292 6.002 6.002 0 0 0 1.117-6.486A6.002 6.002 0 0 0 7.5 1.5Z"></path></svg>Code Quality</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enforce quality at merge</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dknd_">APPLICATION SECURITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Find and fix vulnerabilities</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/code-security" data-analytics-event="{&quot;action&quot;:&quot;code_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code-square NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>Code security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Secure your code as you build</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/secret-protection" data-analytics-event="{&quot;action&quot;:&quot;secret_protection&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;secret_protection_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-lock NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>Secret protection</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Stop leaks before they start</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ NavGroup-module__hasSeparator__FnMrN"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_hknd_">EXPLORE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_hknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/why-github" data-analytics-event="{&quot;action&quot;:&quot;why_github&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;why_github_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Why GitHub</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog" data-analytics-event="{&quot;action&quot;:&quot;blog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;blog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Blog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog/changelog" data-analytics-event="{&quot;action&quot;:&quot;changelog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;changelog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Changelog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/marketplace" data-analytics-event="{&quot;action&quot;:&quot;marketplace&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;marketplace_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Marketplace</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/features" data-analytics-event="{&quot;action&quot;:&quot;view_all_features&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_features_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all features</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_17d_">Solutions<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_17d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5l7d_">BY COMPANY SIZE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprises&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprises_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Enterprises</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/team" data-analytics-event="{&quot;action&quot;:&quot;small_and_medium_teams&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;small_and_medium_teams_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Small and medium teams</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise/startups" data-analytics-event="{&quot;action&quot;:&quot;startups&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;startups_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Startups</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/nonprofits" data-analytics-event="{&quot;action&quot;:&quot;nonprofits&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;nonprofits_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Nonprofits</span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9l7d_">BY USE CASE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/app-modernization" data-analytics-event="{&quot;action&quot;:&quot;app_modernization&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;app_modernization_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">App Modernization</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devsecops" data-analytics-event="{&quot;action&quot;:&quot;devsecops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devsecops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevSecOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/ci-cd" data-analytics-event="{&quot;action&quot;:&quot;ci/cd&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ci/cd_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">CI/CD</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/use-case" data-analytics-event="{&quot;action&quot;:&quot;view_all_use_cases&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_use_cases_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all use cases</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dl7d_">BY INDUSTRY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dl7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/healthcare" data-analytics-event="{&quot;action&quot;:&quot;healthcare&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;healthcare_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Healthcare</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/financial-services" data-analytics-event="{&quot;action&quot;:&quot;financial_services&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;financial_services_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Financial services</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/manufacturing" data-analytics-event="{&quot;action&quot;:&quot;manufacturing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;manufacturing_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Manufacturing</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/government" data-analytics-event="{&quot;action&quot;:&quot;government&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;government_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Government</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/industry" data-analytics-event="{&quot;action&quot;:&quot;view_all_industries&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_industries_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all industries</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions" data-analytics-event="{&quot;action&quot;:&quot;view_all_solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_solutions_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all solutions</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_1nd_">Resources<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_1nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5lnd_">EXPLORE BY TOPIC</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=ai" data-analytics-event="{&quot;action&quot;:&quot;ai&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ai_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">AI</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=software-development" data-analytics-event="{&quot;action&quot;:&quot;software_development&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;software_development_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Software Development</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=security" data-analytics-event="{&quot;action&quot;:&quot;security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources/articles" data-analytics-event="{&quot;action&quot;:&quot;view_all_topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_topics_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all topics</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9lnd_">EXPLORE BY TYPE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/customer-stories" data-analytics-event="{&quot;action&quot;:&quot;customer_stories&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_stories_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer stories</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/events" data-analytics-event="{&quot;action&quot;:&quot;events__webinars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;events__webinars_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Events &amp; webinars</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/whitepapers" data-analytics-event="{&quot;action&quot;:&quot;ebooks__reports&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ebooks__reports_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Ebooks &amp; reports</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/executive-insights" data-analytics-event="{&quot;action&quot;:&quot;business_insights&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;business_insights_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Business insights</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://skills.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_skills&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_skills_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Skills</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dlnd_">SUPPORT &amp; SERVICES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dlnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://support.github.com" data-analytics-event="{&quot;action&quot;:&quot;customer_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_support_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer support</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/orgs/community/discussions" data-analytics-event="{&quot;action&quot;:&quot;community_forum&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;community_forum_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Community forum</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trust-center" data-analytics-event="{&quot;action&quot;:&quot;trust_center&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trust_center_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trust center</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/partners" data-analytics-event="{&quot;action&quot;:&quot;partners&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;partners_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Partners</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources" data-analytics-event="{&quot;action&quot;:&quot;view_all_resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_resources_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all resources</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_27d_">Open Source<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_27d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5m7d_">COMMUNITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/open-source/sponsors" data-analytics-event="{&quot;action&quot;:&quot;github_sponsors&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_sponsors_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sponsor-tiers NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.586 1C12.268 1 13.5 2.37 13.5 4.25c0 1.745-.996 3.359-2.622 4.831-.166.15-.336.297-.509.438l1.116 5.584a.75.75 0 0 1-.991.852l-2.409-.876a.25.25 0 0 0-.17 0l-2.409.876a.75.75 0 0 1-.991-.852L5.63 9.519a13.78 13.78 0 0 1-.51-.438C3.497 7.609 2.5 5.995 2.5 4.25 2.5 2.37 3.732 1 5.414 1c.963 0 1.843.403 2.474 1.073L8 2.198l.112-.125a3.385 3.385 0 0 1 2.283-1.068L10.586 1Zm-3.621 9.495-.718 3.594 1.155-.42a1.75 1.75 0 0 1 1.028-.051l.168.051 1.154.42-.718-3.592c-.199.13-.37.235-.505.314l-.169.097a.75.75 0 0 1-.72 0 9.54 9.54 0 0 1-.515-.308l-.16-.105ZM10.586 2.5c-.863 0-1.611.58-1.866 1.459-.209.721-1.231.721-1.44 0C7.025 3.08 6.277 2.5 5.414 2.5 4.598 2.5 4 3.165 4 4.25c0 1.23.786 2.504 2.128 3.719.49.443 1.018.846 1.546 1.198l.325.21.076-.047.251-.163a13.341 13.341 0 0 0 1.546-1.198C11.214 6.754 12 5.479 12 4.25c0-1.085-.598-1.75-1.414-1.75Z"></path></svg>GitHub Sponsors</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Fund open source developers</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9m7d_">PROGRAMS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://securitylab.github.com" data-analytics-event="{&quot;action&quot;:&quot;security_lab&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_lab_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security Lab</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://maintainers.github.com" data-analytics-event="{&quot;action&quot;:&quot;maintainer_community&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;maintainer_community_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Maintainer Community</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://stars.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_stars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_stars_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Stars</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://archiveprogram.github.com" data-analytics-event="{&quot;action&quot;:&quot;archive_program&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;archive_program_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Archive Program</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dm7d_">REPOSITORIES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dm7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/topics" data-analytics-event="{&quot;action&quot;:&quot;topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;topics_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Topics</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trending" data-analytics-event="{&quot;action&quot;:&quot;trending&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trending_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trending</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/collections" data-analytics-event="{&quot;action&quot;:&quot;collections&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;collections_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Collections</span></a></li></ul></div></li></ul></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_2nd_">Enterprise<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_2nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5mnd_">ENTERPRISE SOLUTIONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprise_platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprise_platform_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-stack NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.122.392a1.75 1.75 0 0 1 1.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 0 1-1.756 0L2.119 5.456a1.251 1.251 0 0 1 0-2.162ZM8.125 1.69a.248.248 0 0 0-.25 0l-4.63 2.685 4.63 2.685a.248.248 0 0 0 .25 0l4.63-2.685ZM1.601 7.789a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0L1.874 8.814A.75.75 0 0 1 1.6 7.789Zm0 3.5a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0l-5.248-3.044a.75.75 0 0 1-.273-1.025Z"></path></svg>Enterprise platform</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">AI-powered developer platform</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9mnd_">AVAILABLE ADD-ONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade security features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot/copilot-business" data-analytics-event="{&quot;action&quot;:&quot;copilot_for_business&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;copilot_for_business_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>Copilot for Business</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade AI features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise/premium-support" data-analytics-event="{&quot;action&quot;:&quot;premium_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;premium_support_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-comment-discussion NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path></svg>Premium Support</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade 24/7 support</span></span></a></li></ul></div></li></ul></div></div></li><li><a href="https://github.com/pricing" data-analytics-event="{&quot;action&quot;:&quot;pricing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;pricing&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;pricing_link_pricing_navbar&quot;}" class="MarketingNavigation-module__navLink__hUomM">Pricing</a></li></ul></nav><div class="MarketingHeader-module__ctaContainer__tBmPz"><div class="HeaderSearch-module__searchSlot__oVOUS"><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderSearch-module__trigger__zsF9q" type="button" aria-haspopup="dialog" aria-expanded="false" aria-label="Search or jump to, type / to search" data-analytics-event="{&quot;action&quot;:&quot;searchbar&quot;,&quot;tag&quot;:&quot;input&quot;,&quot;context&quot;:&quot;global&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;searchbar_input_global_navbar&quot;}"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"><span class="HeaderSearch-module__content__kMpxU"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search HeaderSearch-module__icon__wcrHX" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg><span class="HeaderSearch-module__label__d1iWG">Search</span><kbd class="HeaderSearch-module__kbd__HNG0o" aria-hidden="true">/</kbd></span></span></span></button><div class="d-none"></div></div><div class="AuthCTAs-module__signInWrap__q2P60"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq AuthCTAs-module__desktopActionGap__UZuXT AuthCTAs-module__hiddenBelowLg__BfKBw" href="/login?return_to=https%3A%2F%2Fgithub.com%2Fjonwiggins%2Fxmloxide%2Fblob%2Fmain%2Finclude%2Fxmloxide.h" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/jonwiggins/xmloxide/blob/main/include/xmloxide.h&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="bf8784ec8b09786fe29462d5b504c0ab4043ff915f12d8b8cf6c99666ff1b5ab"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a></div><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--secondary___gHnw_ Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&amp;source=header-repo&amp;source_repo=jonwiggins%2Fxmloxide" data-analytics-event="{&quot;action&quot;:&quot;sign_up&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_up_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/jonwiggins/xmloxide/blob/main/include/xmloxide.h&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="bf8784ec8b09786fe29462d5b504c0ab4043ff915f12d8b8cf6c99666ff1b5ab"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-secondary___eJ0_a">Sign up</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_fbd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_fbd_">Appearance settings</div></div></div></div></div><div class="MarketingHeader-module__bottomBorder__uZT38" aria-hidden="true"></div></header></div></div>
</react-partial>



      <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full">
  
        <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
        <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
        <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
        <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>

    <button id="icon-button-bd085ed0-07d6-4498-8ff5-2619f7744a50" aria-labelledby="tooltip-4f8ad063-d3e9-44ca-9495-d633355da81d" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close">  <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</button><tool-tip id="tooltip-4f8ad063-d3e9-44ca-9495-d633355da81d" for="icon-button-bd085ed0-07d6-4498-8ff5-2619f7744a50" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>


  
</div>
    </div>

  <div id="start-of-content" class="show-on-focus"></div>








    <div id="js-flash-container" class="flash-container" data-turbo-replace>






  <template class="js-flash-template">
    
<div class="flash flash-full   {{ className }}">
  <div >
    <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>
    <div aria-atomic="true" role="alert" class="js-flash-alert">
      
      <div>{{ message }}</div>

    </div>
  </div>
</div>
  </template>
</div>


    






  <div
    class="application-main "
    data-commit-hovercards-enabled
    data-discussion-hovercards-enabled
    data-issue-and-pr-hovercards-enabled
    data-project-hovercards-enabled
  >
        <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
    <main id="js-repo-pjax-container" >
      
      








  

    <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ym-1a7ce813a378e1f7.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/mn-bb458474353a279e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t5-26d19272bbf73ca3.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/2d5-9abb2f6ba5c935d0.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/24-b11e1c4108322883.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/mrn-12afac2ecd2be980.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/dgq-bbf7670f9cdba2e0.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/7w-740b4e942974ccba.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/we-c9f93392098ad6c9.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/775-f58305f9bcded6f1.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/bn-fcef0645a47703fc.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/xgw-677b1ad5da5c3c6d.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ge-ca1c0ba8656f9680.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/9f-3f61950dd9225c4a.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/global-nav-bar-76f3d16d4cab2423.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.e4334163c54cccf5.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/ql0.501e99879e15a48e.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-nav-bar.679bccc49e90d4e2.module.css" />

<react-partial
  partial-name="global-nav-bar"
  data-ssr="true"
  data-attempted-ssr="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"contextRegion":{"crumbs":[{"crumb_type":"user","label":"jonwiggins","is_root":false,"href":"/jonwiggins"},{"crumb_type":"repository","label":"xmloxide","is_root":false,"href":"/jonwiggins/xmloxide"}],"localNavigation":[{"id":"code","icon":"code","label":"Code","href":"/jonwiggins/xmloxide","selectedLinks":["repo_source","repo_downloads","repo_commits","repo_releases","repo_tags","repo_branches","repo_packages","repo_deployments","repo_attestations"],"popoverTarget":false,"commandId":"repositories:go-to-code","reactNav":{"appTarget":"code-view","anchor":"code-view-repo-link"},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"issues","icon":"issue-opened","label":"Issues","href":"/jonwiggins/xmloxide/issues","selectedLinks":["repo_issues","repo_labels","repo_milestones"],"count":8,"popoverTarget":false,"commandId":"repositories:go-to-issues","reactNav":{"appTarget":"repo","anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"pull-requests","icon":"git-pull-request","label":"Pull requests","href":"/jonwiggins/xmloxide/pulls","selectedLinks":["repo_pulls","checks"],"count":3,"popoverTarget":false,"commandId":"repositories:go-to-pull-requests","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"actions","icon":"play","label":"Actions","href":"/jonwiggins/xmloxide/actions","selectedLinks":["repo_actions"],"popoverTarget":false,"commandId":"repositories:go-to-actions","reactNav":{"appTarget":"actions-workflows","anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"projects","icon":"table","label":"Projects","href":"/jonwiggins/xmloxide/projects","selectedLinks":["repo_projects","new_repo_project","repo_project"],"popoverTarget":false,"commandId":"repositories:go-to-projects","reactNav":{"appTarget":"repo","anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"security-and-quality","icon":"shield","label":"Security and quality","href":"/jonwiggins/xmloxide/security","selectedLinks":["security","overview","alerts","policy","token_scanning","code_scanning"],"count":0,"popoverTarget":false,"commandId":"repositories:go-to-security","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"insights","icon":"graph","label":"Insights","href":"/jonwiggins/xmloxide/pulse","selectedLinks":["repo_graphs","repo_contributors","dependency_graph","dependabot_updates","pulse","people","community"],"popoverTarget":false,"commandId":"repositories:go-to-insights","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}}],"localNavigationUpdateChannel":null,"selectedLink":"repo_source"},"owner":null,"headerLogo":{"href":"/","aria-label":"Homepage "},"notifications":{"indicatorMode":"disabled","websocketChannel":null,"fetchIndicatorSrc":"/notifications/indicator","fetchIndicatorEnabled":false},"issues":{"href":"/issues"},"pulls":{"href":"/pulls"},"contributedRepos":{"href":"/repos"},"copilot":{"show":false,"showAgentsButton":false,"showRelaunchAnnouncement":false,"copilotChatUrl":null,"copilotApiUrl":"https://api.githubcopilot.com"},"search":{"show":true,"showCommandPalette":false,"isSearchPage":false,"isJumpToSearch":false,"searchContext":{"scope":"repo:jonwiggins/xmloxide","current_repo_name":"xmloxide","current_repo_nwo":"jonwiggins/xmloxide","user_id":"jonwiggins"}},"commandPalette":null,"enterpriseBar":{"show":false},"globalTransactionalMessage":[],"payloadsUrl":"/_global-navigation/payloads.json?can_toggle_site_admin_and_employee_status=0\u0026is_admin_mode_on=0\u0026is_ui_opted_out=0\u0026show_ui_opt_out=0\u0026v=6","contextRegionUrl":"/_global-navigation/context-region.json"}}</script>
  <div data-target="react-partial.reactRoot"><header aria-label="Global navigation menu" data-component="Stack" class="GlobalNav styles-module__appHeader__YzYWk prc-Stack-Stack-UQ9k6" data-gap="none" data-direction="vertical" data-align="stretch" data-wrap="nowrap" data-justify="start" data-padding="none"><div data-component="Stack" class="prc-Stack-Stack-UQ9k6" data-direction="horizontal" data-align="center" data-wrap="nowrap" data-justify="center" data-padding="none"><div data-testid="top-nav-center" data-component="Stack" class="styles-module__center__R3QRv styles-module__withLocalNavigation__rjTJ_ GlobalNavBar-module__loggedOut__Jv1rk prc-Stack-Stack-UQ9k6" data-gap="condensed" data-direction="horizontal" data-align="stretch" data-wrap="nowrap" data-justify="start" data-padding="normal"><nav class="styles-module__contextRegion__VbSp2 prc-Breadcrumbs-BreadcrumbsBase-3Gb-B" aria-label="Breadcrumbs" data-overflow="menu" data-variant="normal" data-component="Breadcrumbs"><ol class="prc-Breadcrumbs-BreadcrumbsList-BKjpe"><li class="prc-Breadcrumbs-ItemWrapper-k0NLn"><a class="styles-module__contextCrumb__IzGIq prc-Breadcrumbs-Item-jcraJ" data-component="Breadcrumbs.Item" href="/jonwiggins" data-discover="true"><span class="">jonwiggins</span></a></li><li class="prc-Breadcrumbs-ItemWrapper-k0NLn"><a class="styles-module__contextCrumb__IzGIq prc-Breadcrumbs-Item-jcraJ" data-component="Breadcrumbs.Item" href="/jonwiggins/xmloxide" data-discover="true"><span class="styles-module__contextCrumbLast__tI2e3">xmloxide</span></a></li></ol></nav></div><div data-testid="top-nav-right" data-component="Stack" class="styles-module__right__mlBQg styles-module__withLocalNavigation__rjTJ_ styles-module__rightWithResponsiveCreateButton__SKn2W prc-Stack-Stack-UQ9k6" data-gap="condensed" data-direction="horizontal" data-align="center" data-wrap="nowrap" data-justify="start" data-padding="normal"></div></div><h2 class="prc-src-InternalVisuallyHidden-2YaI6">Repository navigation</h2><nav class="prc-components-UnderlineWrapper-eT-Yj prc-UnderlineNav-UnderlineWrapper-GWONT LocalNavigation-module__LocalNavigation__b0Xc0" aria-label="Repository" data-variant="inset" data-overflow-mode="wrap" data-hide-icons-breakpoint="medium"><ul class="prc-UnderlineNav-ItemsList-oj8gN prc-components-UnderlineItemList-xKlKC" role="list"><li role="presentation" aria-hidden="true" class="prc-UnderlineNav-WrapSpacer--aLgz"></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a aria-current="page" data-tab-item="code" data-react-nav="code-view" data-react-nav-anchor="code-view-repo-link" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/jonwiggins/xmloxide" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg></span><span data-component="text" data-content="Code">Code</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="issues" data-react-nav="repo" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/jonwiggins/xmloxide/issues" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-issue-opened" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path></svg></span><span data-component="text" data-content="Issues">Issues</span><span data-component="counter"><span aria-hidden="true" data-variant="secondary" data-component="CounterLabel" class="prc-CounterLabel-CounterLabel-X-kRU">8</span><span class="prc-VisuallyHidden-VisuallyHidden-Q0qSB"> (<!-- -->8<!-- -->)</span></span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="pull-requests" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/jonwiggins/xmloxide/pulls" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-pull-request" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path></svg></span><span data-component="text" data-content="Pull requests">Pull requests</span><span data-component="counter"><span aria-hidden="true" data-variant="secondary" data-component="CounterLabel" class="prc-CounterLabel-CounterLabel-X-kRU">3</span><span class="prc-VisuallyHidden-VisuallyHidden-Q0qSB"> (<!-- -->3<!-- -->)</span></span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="actions" data-react-nav="actions-workflows" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/jonwiggins/xmloxide/actions" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-play" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg></span><span data-component="text" data-content="Actions">Actions</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="projects" data-react-nav="repo" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/jonwiggins/xmloxide/projects" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-table" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path></svg></span><span data-component="text" data-content="Projects">Projects</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="security-and-quality" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/jonwiggins/xmloxide/security" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg></span><span data-component="text" data-content="Security and quality">Security and quality</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="insights" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/jonwiggins/xmloxide/pulse" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-graph" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg></span><span data-component="text" data-content="Insights">Insights</span></a></li></ul><div class="prc-UnderlineNav-MoreButtonContainer-Dnrq6"><div class="prc-UnderlineNav-MoreButtonDivider-dN0a-"></div><button data-component="overflow-menu-button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk prc-UnderlineNav-MoreButton-Y8soj" data-loading="false" data-size="medium" data-variant="invisible" id="_R_2ktl_"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3"><span>More<span class="prc-src-InternalVisuallyHidden-2YaI6"> items</span></span></span></span><span data-component="trailingAction" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></button></div></nav><div class="d-none"></div></header></div>
</react-partial>


  



<turbo-frame id="repo-content-turbo-frame" target="_top" data-turbo-action="advance" class="">
    <div id="repo-content-pjax-container" class="repository-content " >
    



    
      
    








<react-app
  app-name="code-view"
  initial-path="/jonwiggins/xmloxide/blob/main/include/xmloxide.h"
  style="display: block; min-height: calc(100vh - 64px);"
  data-attempted-ssr="true"
  data-ssr="true"
  data-lazy="false"
  data-alternate="false"
  data-data-router-enabled="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-app.embeddedData">{"payload":{"codeViewBlobRoute":{"csv":null,"csvError":null,"headerInfo":{"toc":null},"issueTemplate":null,"discussionTemplate":null,"richText":null,"richTextTruncated":false,"renderedFileInfo":null,"symbols":{"timed_out":true,"not_analyzed":false,"symbols":[{"name":"XMLOXIDE_H","fully_qualified_name":"XMLOXIDE_H","kind":"macro","ident_start":900,"ident_end":910,"extent_start":892,"extent_end":911,"ident_utf16":{"start":{"line_number":22,"utf16_col":8},"end":{"line_number":22,"utf16_col":18}},"extent_utf16":{"start":{"line_number":22,"utf16_col":0},"end":{"line_number":23,"utf16_col":0}}},{"name":"xmloxide_document","fully_qualified_name":"xmloxide_document","kind":"type","ident_start":1103,"ident_end":1120,"extent_start":1070,"extent_end":1121,"ident_utf16":{"start":{"line_number":34,"utf16_col":33},"end":{"line_number":34,"utf16_col":50}},"extent_utf16":{"start":{"line_number":34,"utf16_col":0},"end":{"line_number":34,"utf16_col":51}}},{"name":"xmloxide_xpath_value","fully_qualified_name":"xmloxide_xpath_value","kind":"type","ident_start":1194,"ident_end":1214,"extent_start":1158,"extent_end":1215,"ident_utf16":{"start":{"line_number":37,"utf16_col":36},"end":{"line_number":37,"utf16_col":56}},"extent_utf16":{"start":{"line_number":37,"utf16_col":0},"end":{"line_number":37,"utf16_col":57}}},{"name":"xmloxide_dtd","fully_qualified_name":"xmloxide_dtd","kind":"type","ident_start":1271,"ident_end":1283,"extent_start":1243,"extent_end":1284,"ident_utf16":{"start":{"line_number":40,"utf16_col":28},"end":{"line_number":40,"utf16_col":40}},"extent_utf16":{"start":{"line_number":40,"utf16_col":0},"end":{"line_number":40,"utf16_col":41}}},{"name":"xmloxide_relaxng_schema","fully_qualified_name":"xmloxide_relaxng_schema","kind":"type","ident_start":1362,"ident_end":1385,"extent_start":1323,"extent_end":1386,"ident_utf16":{"start":{"line_number":43,"utf16_col":39},"end":{"line_number":43,"utf16_col":62}},"extent_utf16":{"start":{"line_number":43,"utf16_col":0},"end":{"line_number":43,"utf16_col":63}}},{"name":"xmloxide_xsd_schema","fully_qualified_name":"xmloxide_xsd_schema","kind":"type","ident_start":1456,"ident_end":1475,"extent_start":1421,"extent_end":1476,"ident_utf16":{"start":{"line_number":46,"utf16_col":35},"end":{"line_number":46,"utf16_col":54}},"extent_utf16":{"start":{"line_number":46,"utf16_col":0},"end":{"line_number":46,"utf16_col":55}}},{"name":"xmloxide_schematron_schema","fully_qualified_name":"xmloxide_schematron_schema","kind":"type","ident_start":1560,"ident_end":1586,"extent_start":1518,"extent_end":1587,"ident_utf16":{"start":{"line_number":49,"utf16_col":42},"end":{"line_number":49,"utf16_col":68}},"extent_utf16":{"start":{"line_number":49,"utf16_col":0},"end":{"line_number":49,"utf16_col":69}}},{"name":"xmloxide_validation_result","fully_qualified_name":"xmloxide_validation_result","kind":"type","ident_start":1671,"ident_end":1697,"extent_start":1629,"extent_end":1698,"ident_utf16":{"start":{"line_number":52,"utf16_col":42},"end":{"line_number":52,"utf16_col":68}},"extent_utf16":{"start":{"line_number":52,"utf16_col":0},"end":{"line_number":52,"utf16_col":69}}},{"name":"xmloxide_catalog","fully_qualified_name":"xmloxide_catalog","kind":"type","ident_start":1766,"ident_end":1782,"extent_start":1734,"extent_end":1783,"ident_utf16":{"start":{"line_number":55,"utf16_col":32},"end":{"line_number":55,"utf16_col":48}},"extent_utf16":{"start":{"line_number":55,"utf16_col":0},"end":{"line_number":55,"utf16_col":49}}},{"name":"xmloxide_push_parser","fully_qualified_name":"xmloxide_push_parser","kind":"type","ident_start":1855,"ident_end":1875,"extent_start":1819,"extent_end":1876,"ident_utf16":{"start":{"line_number":58,"utf16_col":36},"end":{"line_number":58,"utf16_col":56}},"extent_utf16":{"start":{"line_number":58,"utf16_col":0},"end":{"line_number":58,"utf16_col":57}}},{"name":"xmloxide_reader","fully_qualified_name":"xmloxide_reader","kind":"type","ident_start":1942,"ident_end":1957,"extent_start":1911,"extent_end":1958,"ident_utf16":{"start":{"line_number":61,"utf16_col":31},"end":{"line_number":61,"utf16_col":46}},"extent_utf16":{"start":{"line_number":61,"utf16_col":0},"end":{"line_number":61,"utf16_col":47}}},{"name":"XMLOXIDE_NODE_ELEMENT","fully_qualified_name":"XMLOXIDE_NODE_ELEMENT","kind":"macro","ident_start":2017,"ident_end":2038,"extent_start":2009,"extent_end":2047,"ident_utf16":{"start":{"line_number":65,"utf16_col":8},"end":{"line_number":65,"utf16_col":29}},"extent_utf16":{"start":{"line_number":65,"utf16_col":0},"end":{"line_number":66,"utf16_col":0}}},{"name":"XMLOXIDE_NODE_TEXT","fully_qualified_name":"XMLOXIDE_NODE_TEXT","kind":"macro","ident_start":2055,"ident_end":2073,"extent_start":2047,"extent_end":2085,"ident_utf16":{"start":{"line_number":66,"utf16_col":8},"end":{"line_number":66,"utf16_col":26}},"extent_utf16":{"start":{"line_number":66,"utf16_col":0},"end":{"line_number":67,"utf16_col":0}}},{"name":"XMLOXIDE_NODE_CDATA","fully_qualified_name":"XMLOXIDE_NODE_CDATA","kind":"macro","ident_start":2093,"ident_end":2112,"extent_start":2085,"extent_end":2122,"ident_utf16":{"start":{"line_number":67,"utf16_col":8},"end":{"line_number":67,"utf16_col":27}},"extent_utf16":{"start":{"line_number":67,"utf16_col":0},"end":{"line_number":68,"utf16_col":0}}},{"name":"XMLOXIDE_NODE_ENTITY_REF","fully_qualified_name":"XMLOXIDE_NODE_ENTITY_REF","kind":"macro","ident_start":2130,"ident_end":2154,"extent_start":2122,"extent_end":2159,"ident_utf16":{"start":{"line_number":68,"utf16_col":8},"end":{"line_number":68,"utf16_col":32}},"extent_utf16":{"start":{"line_number":68,"utf16_col":0},"end":{"line_number":69,"utf16_col":0}}},{"name":"XMLOXIDE_NODE_PI","fully_qualified_name":"XMLOXIDE_NODE_PI","kind":"macro","ident_start":2167,"ident_end":2183,"extent_start":2159,"extent_end":2196,"ident_utf16":{"start":{"line_number":69,"utf16_col":8},"end":{"line_number":69,"utf16_col":24}},"extent_utf16":{"start":{"line_number":69,"utf16_col":0},"end":{"line_number":70,"utf16_col":0}}},{"name":"XMLOXIDE_NODE_COMMENT","fully_qualified_name":"XMLOXIDE_NODE_COMMENT","kind":"macro","ident_start":2204,"ident_end":2225,"extent_start":2196,"extent_end":2233,"ident_utf16":{"start":{"line_number":70,"utf16_col":8},"end":{"line_number":70,"utf16_col":29}},"extent_utf16":{"start":{"line_number":70,"utf16_col":0},"end":{"line_number":71,"utf16_col":0}}},{"name":"XMLOXIDE_NODE_DOCUMENT","fully_qualified_name":"XMLOXIDE_NODE_DOCUMENT","kind":"macro","ident_start":2241,"ident_end":2263,"extent_start":2233,"extent_end":2270,"ident_utf16":{"start":{"line_number":71,"utf16_col":8},"end":{"line_number":71,"utf16_col":30}},"extent_utf16":{"start":{"line_number":71,"utf16_col":0},"end":{"line_number":72,"utf16_col":0}}},{"name":"XMLOXIDE_NODE_DOCUMENT_TYPE","fully_qualified_name":"XMLOXIDE_NODE_DOCUMENT_TYPE","kind":"macro","ident_start":2278,"ident_end":2305,"extent_start":2270,"extent_end":2309,"ident_utf16":{"start":{"line_number":72,"utf16_col":8},"end":{"line_number":72,"utf16_col":35}},"extent_utf16":{"start":{"line_number":72,"utf16_col":0},"end":{"line_number":73,"utf16_col":0}}},{"name":"XMLOXIDE_XPATH_NODESET","fully_qualified_name":"XMLOXIDE_XPATH_NODESET","kind":"macro","ident_start":2375,"ident_end":2397,"extent_start":2367,"extent_end":2401,"ident_utf16":{"start":{"line_number":76,"utf16_col":8},"end":{"line_number":76,"utf16_col":30}},"extent_utf16":{"start":{"line_number":76,"utf16_col":0},"end":{"line_number":77,"utf16_col":0}}},{"name":"XMLOXIDE_XPATH_BOOLEAN","fully_qualified_name":"XMLOXIDE_XPATH_BOOLEAN","kind":"macro","ident_start":2409,"ident_end":2431,"extent_start":2401,"extent_end":2435,"ident_utf16":{"start":{"line_number":77,"utf16_col":8},"end":{"line_number":77,"utf16_col":30}},"extent_utf16":{"start":{"line_number":77,"utf16_col":0},"end":{"line_number":78,"utf16_col":0}}},{"name":"XMLOXIDE_XPATH_NUMBER","fully_qualified_name":"XMLOXIDE_XPATH_NUMBER","kind":"macro","ident_start":2443,"ident_end":2464,"extent_start":2435,"extent_end":2469,"ident_utf16":{"start":{"line_number":78,"utf16_col":8},"end":{"line_number":78,"utf16_col":29}},"extent_utf16":{"start":{"line_number":78,"utf16_col":0},"end":{"line_number":79,"utf16_col":0}}},{"name":"XMLOXIDE_XPATH_STRING","fully_qualified_name":"XMLOXIDE_XPATH_STRING","kind":"macro","ident_start":2477,"ident_end":2498,"extent_start":2469,"extent_end":2503,"ident_utf16":{"start":{"line_number":79,"utf16_col":8},"end":{"line_number":79,"utf16_col":29}},"extent_utf16":{"start":{"line_number":79,"utf16_col":0},"end":{"line_number":80,"utf16_col":0}}},{"name":"XMLOXIDE_ERR_WARNING","fully_qualified_name":"XMLOXIDE_ERR_WARNING","kind":"macro","ident_start":2566,"ident_end":2586,"extent_start":2558,"extent_end":2590,"ident_utf16":{"start":{"line_number":83,"utf16_col":8},"end":{"line_number":83,"utf16_col":28}},"extent_utf16":{"start":{"line_number":83,"utf16_col":0},"end":{"line_number":84,"utf16_col":0}}},{"name":"XMLOXIDE_ERR_ERROR","fully_qualified_name":"XMLOXIDE_ERR_ERROR","kind":"macro","ident_start":2598,"ident_end":2616,"extent_start":2590,"extent_end":2622,"ident_utf16":{"start":{"line_number":84,"utf16_col":8},"end":{"line_number":84,"utf16_col":26}},"extent_utf16":{"start":{"line_number":84,"utf16_col":0},"end":{"line_number":85,"utf16_col":0}}},{"name":"XMLOXIDE_ERR_FATAL","fully_qualified_name":"XMLOXIDE_ERR_FATAL","kind":"macro","ident_start":2630,"ident_end":2648,"extent_start":2622,"extent_end":2654,"ident_utf16":{"start":{"line_number":85,"utf16_col":8},"end":{"line_number":85,"utf16_col":26}},"extent_utf16":{"start":{"line_number":85,"utf16_col":0},"end":{"line_number":86,"utf16_col":0}}},{"name":"xmloxide_last_error","fully_qualified_name":"xmloxide_last_error","kind":"function","ident_start":2925,"ident_end":2944,"extent_start":2925,"extent_end":2950,"ident_utf16":{"start":{"line_number":95,"utf16_col":12},"end":{"line_number":95,"utf16_col":31}},"extent_utf16":{"start":{"line_number":95,"utf16_col":12},"end":{"line_number":95,"utf16_col":37}}},{"name":"xmloxide_last_error_line","fully_qualified_name":"xmloxide_last_error_line","kind":"function","ident_start":3045,"ident_end":3069,"extent_start":3045,"extent_end":3075,"ident_utf16":{"start":{"line_number":100,"utf16_col":9},"end":{"line_number":100,"utf16_col":33}},"extent_utf16":{"start":{"line_number":100,"utf16_col":9},"end":{"line_number":100,"utf16_col":39}}},{"name":"xmloxide_last_error_column","fully_qualified_name":"xmloxide_last_error_column","kind":"function","ident_start":3172,"ident_end":3198,"extent_start":3172,"extent_end":3204,"ident_utf16":{"start":{"line_number":105,"utf16_col":9},"end":{"line_number":105,"utf16_col":35}},"extent_utf16":{"start":{"line_number":105,"utf16_col":9},"end":{"line_number":105,"utf16_col":41}}},{"name":"xmloxide_last_error_severity","fully_qualified_name":"xmloxide_last_error_severity","kind":"function","ident_start":3390,"ident_end":3418,"extent_start":3390,"extent_end":3424,"ident_utf16":{"start":{"line_number":112,"utf16_col":8},"end":{"line_number":112,"utf16_col":36}},"extent_utf16":{"start":{"line_number":112,"utf16_col":8},"end":{"line_number":112,"utf16_col":42}}},{"name":"xmloxide_parse_str","fully_qualified_name":"xmloxide_parse_str","kind":"function","ident_start":3694,"ident_end":3712,"extent_start":3694,"extent_end":3731,"ident_utf16":{"start":{"line_number":122,"utf16_col":19},"end":{"line_number":122,"utf16_col":37}},"extent_utf16":{"start":{"line_number":122,"utf16_col":19},"end":{"line_number":122,"utf16_col":56}}},{"name":"xmloxide_parse_bytes","fully_qualified_name":"xmloxide_parse_bytes","kind":"function","ident_start":3954,"ident_end":3974,"extent_start":3954,"extent_end":4007,"ident_utf16":{"start":{"line_number":130,"utf16_col":19},"end":{"line_number":130,"utf16_col":39}},"extent_utf16":{"start":{"line_number":130,"utf16_col":19},"end":{"line_number":130,"utf16_col":72}}},{"name":"xmloxide_parse_html","fully_qualified_name":"xmloxide_parse_html","kind":"function","ident_start":4209,"ident_end":4228,"extent_start":4209,"extent_end":4247,"ident_utf16":{"start":{"line_number":138,"utf16_col":19},"end":{"line_number":138,"utf16_col":38}},"extent_utf16":{"start":{"line_number":138,"utf16_col":19},"end":{"line_number":138,"utf16_col":57}}},{"name":"xmloxide_parse_html5","fully_qualified_name":"xmloxide_parse_html5","kind":"function","ident_start":4469,"ident_end":4489,"extent_start":4469,"extent_end":4508,"ident_utf16":{"start":{"line_number":146,"utf16_col":19},"end":{"line_number":146,"utf16_col":39}},"extent_utf16":{"start":{"line_number":146,"utf16_col":19},"end":{"line_number":146,"utf16_col":58}}},{"name":"xmloxide_parse_html5_fragment","fully_qualified_name":"xmloxide_parse_html5_fragment","kind":"function","ident_start":4828,"ident_end":4857,"extent_start":4828,"extent_end":4955,"ident_utf16":{"start":{"line_number":155,"utf16_col":19},"end":{"line_number":155,"utf16_col":48}},"extent_utf16":{"start":{"line_number":155,"utf16_col":19},"end":{"line_number":156,"utf16_col":78}}},{"name":"xmloxide_parse_file","fully_qualified_name":"xmloxide_parse_file","kind":"function","ident_start":5161,"ident_end":5180,"extent_start":5161,"extent_end":5198,"ident_utf16":{"start":{"line_number":164,"utf16_col":19},"end":{"line_number":164,"utf16_col":38}},"extent_utf16":{"start":{"line_number":164,"utf16_col":19},"end":{"line_number":164,"utf16_col":56}}},{"name":"xmloxide_free_doc","fully_qualified_name":"xmloxide_free_doc","kind":"function","ident_start":5317,"ident_end":5334,"extent_start":5317,"extent_end":5358,"ident_utf16":{"start":{"line_number":170,"utf16_col":5},"end":{"line_number":170,"utf16_col":22}},"extent_utf16":{"start":{"line_number":170,"utf16_col":5},"end":{"line_number":170,"utf16_col":46}}},{"name":"xmloxide_doc_version","fully_qualified_name":"xmloxide_doc_version","kind":"function","ident_start":5564,"ident_end":5584,"extent_start":5564,"extent_end":5614,"ident_utf16":{"start":{"line_number":178,"utf16_col":6},"end":{"line_number":178,"utf16_col":26}},"extent_utf16":{"start":{"line_number":178,"utf16_col":6},"end":{"line_number":178,"utf16_col":56}}},{"name":"xmloxide_doc_encoding","fully_qualified_name":"xmloxide_doc_encoding","kind":"function","ident_start":5770,"ident_end":5791,"extent_start":5770,"extent_end":5821,"ident_utf16":{"start":{"line_number":184,"utf16_col":6},"end":{"line_number":184,"utf16_col":27}},"extent_utf16":{"start":{"line_number":184,"utf16_col":6},"end":{"line_number":184,"utf16_col":57}}},{"name":"xmloxide_doc_diagnostic_count","fully_qualified_name":"xmloxide_doc_diagnostic_count","kind":"function","ident_start":6026,"ident_end":6055,"extent_start":6026,"extent_end":6085,"ident_utf16":{"start":{"line_number":192,"utf16_col":7},"end":{"line_number":192,"utf16_col":36}},"extent_utf16":{"start":{"line_number":192,"utf16_col":7},"end":{"line_number":192,"utf16_col":66}}},{"name":"xmloxide_doc_diagnostic_message","fully_qualified_name":"xmloxide_doc_diagnostic_message","kind":"function","ident_start":6268,"ident_end":6299,"extent_start":6268,"extent_end":6343,"ident_utf16":{"start":{"line_number":199,"utf16_col":6},"end":{"line_number":199,"utf16_col":37}},"extent_utf16":{"start":{"line_number":199,"utf16_col":6},"end":{"line_number":199,"utf16_col":81}}},{"name":"xmloxide_doc_diagnostic_line","fully_qualified_name":"xmloxide_doc_diagnostic_line","kind":"function","ident_start":6439,"ident_end":6467,"extent_start":6439,"extent_end":6511,"ident_utf16":{"start":{"line_number":202,"utf16_col":9},"end":{"line_number":202,"utf16_col":37}},"extent_utf16":{"start":{"line_number":202,"utf16_col":9},"end":{"line_number":202,"utf16_col":81}}},{"name":"xmloxide_doc_diagnostic_column","fully_qualified_name":"xmloxide_doc_diagnostic_column","kind":"function","ident_start":6609,"ident_end":6639,"extent_start":6609,"extent_end":6683,"ident_utf16":{"start":{"line_number":205,"utf16_col":9},"end":{"line_number":205,"utf16_col":39}},"extent_utf16":{"start":{"line_number":205,"utf16_col":9},"end":{"line_number":205,"utf16_col":83}}},{"name":"xmloxide_doc_diagnostic_severity","fully_qualified_name":"xmloxide_doc_diagnostic_severity","kind":"function","ident_start":6871,"ident_end":6903,"extent_start":6871,"extent_end":6947,"ident_utf16":{"start":{"line_number":212,"utf16_col":8},"end":{"line_number":212,"utf16_col":40}},"extent_utf16":{"start":{"line_number":212,"utf16_col":8},"end":{"line_number":212,"utf16_col":84}}},{"name":"xmloxide_doc_root","fully_qualified_name":"xmloxide_doc_root","kind":"function","ident_start":7138,"ident_end":7155,"extent_start":7138,"extent_end":7185,"ident_utf16":{"start":{"line_number":222,"utf16_col":9},"end":{"line_number":222,"utf16_col":26}},"extent_utf16":{"start":{"line_number":222,"utf16_col":9},"end":{"line_number":222,"utf16_col":56}}},{"name":"xmloxide_doc_root_element","fully_qualified_name":"xmloxide_doc_root_element","kind":"function","ident_start":7260,"ident_end":7285,"extent_start":7260,"extent_end":7315,"ident_utf16":{"start":{"line_number":225,"utf16_col":9},"end":{"line_number":225,"utf16_col":34}},"extent_utf16":{"start":{"line_number":225,"utf16_col":9},"end":{"line_number":225,"utf16_col":64}}},{"name":"xmloxide_node_parent","fully_qualified_name":"xmloxide_node_parent","kind":"function","ident_start":7378,"ident_end":7398,"extent_start":7378,"extent_end":7443,"ident_utf16":{"start":{"line_number":228,"utf16_col":9},"end":{"line_number":228,"utf16_col":29}},"extent_utf16":{"start":{"line_number":228,"utf16_col":9},"end":{"line_number":228,"utf16_col":74}}},{"name":"xmloxide_node_first_child","fully_qualified_name":"xmloxide_node_first_child","kind":"function","ident_start":7511,"ident_end":7536,"extent_start":7511,"extent_end":7581,"ident_utf16":{"start":{"line_number":231,"utf16_col":9},"end":{"line_number":231,"utf16_col":34}},"extent_utf16":{"start":{"line_number":231,"utf16_col":9},"end":{"line_number":231,"utf16_col":79}}},{"name":"xmloxide_node_last_child","fully_qualified_name":"xmloxide_node_last_child","kind":"function","ident_start":7648,"ident_end":7672,"extent_start":7648,"extent_end":7717,"ident_utf16":{"start":{"line_number":234,"utf16_col":9},"end":{"line_number":234,"utf16_col":33}},"extent_utf16":{"start":{"line_number":234,"utf16_col":9},"end":{"line_number":234,"utf16_col":78}}},{"name":"xmloxide_node_next_sibling","fully_qualified_name":"xmloxide_node_next_sibling","kind":"function","ident_start":7786,"ident_end":7812,"extent_start":7786,"extent_end":7857,"ident_utf16":{"start":{"line_number":237,"utf16_col":9},"end":{"line_number":237,"utf16_col":35}},"extent_utf16":{"start":{"line_number":237,"utf16_col":9},"end":{"line_number":237,"utf16_col":80}}},{"name":"xmloxide_node_prev_sibling","fully_qualified_name":"xmloxide_node_prev_sibling","kind":"function","ident_start":7930,"ident_end":7956,"extent_start":7930,"extent_end":8001,"ident_utf16":{"start":{"line_number":240,"utf16_col":9},"end":{"line_number":240,"utf16_col":35}},"extent_utf16":{"start":{"line_number":240,"utf16_col":9},"end":{"line_number":240,"utf16_col":80}}},{"name":"xmloxide_node_type","fully_qualified_name":"xmloxide_node_type","kind":"function","ident_start":8164,"ident_end":8182,"extent_start":8164,"extent_end":8227,"ident_utf16":{"start":{"line_number":248,"utf16_col":8},"end":{"line_number":248,"utf16_col":26}},"extent_utf16":{"start":{"line_number":248,"utf16_col":8},"end":{"line_number":248,"utf16_col":71}}},{"name":"xmloxide_node_name","fully_qualified_name":"xmloxide_node_name","kind":"function","ident_start":8425,"ident_end":8443,"extent_start":8425,"extent_end":8488,"ident_utf16":{"start":{"line_number":255,"utf16_col":6},"end":{"line_number":255,"utf16_col":24}},"extent_utf16":{"start":{"line_number":255,"utf16_col":6},"end":{"line_number":255,"utf16_col":69}}},{"name":"xmloxide_node_text","fully_qualified_name":"xmloxide_node_text","kind":"function","ident_start":8693,"ident_end":8711,"extent_start":8693,"extent_end":8756,"ident_utf16":{"start":{"line_number":262,"utf16_col":6},"end":{"line_number":262,"utf16_col":24}},"extent_utf16":{"start":{"line_number":262,"utf16_col":6},"end":{"line_number":262,"utf16_col":69}}},{"name":"xmloxide_node_text_content","fully_qualified_name":"xmloxide_node_text_content","kind":"function","ident_start":8911,"ident_end":8937,"extent_start":8911,"extent_end":8982,"ident_utf16":{"start":{"line_number":268,"utf16_col":6},"end":{"line_number":268,"utf16_col":32}},"extent_utf16":{"start":{"line_number":268,"utf16_col":6},"end":{"line_number":268,"utf16_col":77}}},{"name":"xmloxide_node_namespace","fully_qualified_name":"xmloxide_node_namespace","kind":"function","ident_start":9131,"ident_end":9154,"extent_start":9131,"extent_end":9199,"ident_utf16":{"start":{"line_number":274,"utf16_col":6},"end":{"line_number":274,"utf16_col":29}},"extent_utf16":{"start":{"line_number":274,"utf16_col":6},"end":{"line_number":274,"utf16_col":74}}},{"name":"xmloxide_node_prefix","fully_qualified_name":"xmloxide_node_prefix","kind":"function","ident_start":9393,"ident_end":9413,"extent_start":9393,"extent_end":9458,"ident_utf16":{"start":{"line_number":281,"utf16_col":6},"end":{"line_number":281,"utf16_col":26}},"extent_utf16":{"start":{"line_number":281,"utf16_col":6},"end":{"line_number":281,"utf16_col":71}}},{"name":"xmloxide_node_attribute","fully_qualified_name":"xmloxide_node_attribute","kind":"function","ident_start":9655,"ident_end":9678,"extent_start":9655,"extent_end":9771,"ident_utf16":{"start":{"line_number":288,"utf16_col":6},"end":{"line_number":288,"utf16_col":29}},"extent_utf16":{"start":{"line_number":288,"utf16_col":6},"end":{"line_number":289,"utf16_col":47}}},{"name":"xmloxide_node_attribute_count","fully_qualified_name":"xmloxide_node_attribute_count","kind":"function","ident_start":9881,"ident_end":9910,"extent_start":9881,"extent_end":9955,"ident_utf16":{"start":{"line_number":295,"utf16_col":7},"end":{"line_number":295,"utf16_col":36}},"extent_utf16":{"start":{"line_number":295,"utf16_col":7},"end":{"line_number":295,"utf16_col":81}}},{"name":"xmloxide_node_attribute_name_at","fully_qualified_name":"xmloxide_node_attribute_name_at","kind":"function","ident_start":10141,"ident_end":10172,"extent_start":10141,"extent_end":10269,"ident_utf16":{"start":{"line_number":302,"utf16_col":6},"end":{"line_number":302,"utf16_col":37}},"extent_utf16":{"start":{"line_number":302,"utf16_col":6},"end":{"line_number":303,"utf16_col":66}}},{"name":"xmloxide_node_attribute_value_at","fully_qualified_name":"xmloxide_node_attribute_value_at","kind":"function","ident_start":10456,"ident_end":10488,"extent_start":10456,"extent_end":10586,"ident_utf16":{"start":{"line_number":310,"utf16_col":6},"end":{"line_number":310,"utf16_col":38}},"extent_utf16":{"start":{"line_number":310,"utf16_col":6},"end":{"line_number":311,"utf16_col":67}}},{"name":"xmloxide_create_element","fully_qualified_name":"xmloxide_create_element","kind":"function","ident_start":10793,"ident_end":10816,"extent_start":10793,"extent_end":10858,"ident_utf16":{"start":{"line_number":319,"utf16_col":9},"end":{"line_number":319,"utf16_col":32}},"extent_utf16":{"start":{"line_number":319,"utf16_col":9},"end":{"line_number":319,"utf16_col":74}}},{"name":"xmloxide_create_text","fully_qualified_name":"xmloxide_create_text","kind":"function","ident_start":10940,"ident_end":10960,"extent_start":10940,"extent_end":11005,"ident_utf16":{"start":{"line_number":324,"utf16_col":9},"end":{"line_number":324,"utf16_col":29}},"extent_utf16":{"start":{"line_number":324,"utf16_col":9},"end":{"line_number":324,"utf16_col":74}}},{"name":"xmloxide_create_comment","fully_qualified_name":"xmloxide_create_comment","kind":"function","ident_start":11090,"ident_end":11113,"extent_start":11090,"extent_end":11158,"ident_utf16":{"start":{"line_number":329,"utf16_col":9},"end":{"line_number":329,"utf16_col":32}},"extent_utf16":{"start":{"line_number":329,"utf16_col":9},"end":{"line_number":329,"utf16_col":77}}},{"name":"xmloxide_append_child","fully_qualified_name":"xmloxide_append_child","kind":"function","ident_start":11250,"ident_end":11271,"extent_start":11250,"extent_end":11358,"ident_utf16":{"start":{"line_number":334,"utf16_col":8},"end":{"line_number":334,"utf16_col":29}},"extent_utf16":{"start":{"line_number":334,"utf16_col":8},"end":{"line_number":335,"utf16_col":45}}},{"name":"xmloxide_remove_node","fully_qualified_name":"xmloxide_remove_node","kind":"function","ident_start":11510,"ident_end":11530,"extent_start":11510,"extent_end":11569,"ident_utf16":{"start":{"line_number":341,"utf16_col":8},"end":{"line_number":341,"utf16_col":28}},"extent_utf16":{"start":{"line_number":341,"utf16_col":8},"end":{"line_number":341,"utf16_col":67}}},{"name":"xmloxide_clone_node","fully_qualified_name":"xmloxide_clone_node","kind":"function","ident_start":11750,"ident_end":11769,"extent_start":11750,"extent_end":11822,"ident_utf16":{"start":{"line_number":348,"utf16_col":9},"end":{"line_number":348,"utf16_col":28}},"extent_utf16":{"start":{"line_number":348,"utf16_col":9},"end":{"line_number":348,"utf16_col":81}}},{"name":"xmloxide_set_attribute","fully_qualified_name":"xmloxide_set_attribute","kind":"function","ident_start":11976,"ident_end":11998,"extent_start":11976,"extent_end":12105,"ident_utf16":{"start":{"line_number":354,"utf16_col":8},"end":{"line_number":354,"utf16_col":30}},"extent_utf16":{"start":{"line_number":354,"utf16_col":8},"end":{"line_number":355,"utf16_col":67}}},{"name":"xmloxide_set_text_content","fully_qualified_name":"xmloxide_set_text_content","kind":"function","ident_start":12329,"ident_end":12354,"extent_start":12329,"extent_end":12448,"ident_utf16":{"start":{"line_number":362,"utf16_col":8},"end":{"line_number":362,"utf16_col":33}},"extent_utf16":{"start":{"line_number":362,"utf16_col":8},"end":{"line_number":363,"utf16_col":54}}},{"name":"xmloxide_insert_before","fully_qualified_name":"xmloxide_insert_before","kind":"function","ident_start":12549,"ident_end":12571,"extent_start":12549,"extent_end":12666,"ident_utf16":{"start":{"line_number":368,"utf16_col":8},"end":{"line_number":368,"utf16_col":30}},"extent_utf16":{"start":{"line_number":368,"utf16_col":8},"end":{"line_number":369,"utf16_col":50}}},{"name":"xmloxide_insert_after","fully_qualified_name":"xmloxide_insert_after","kind":"function","ident_start":12766,"ident_end":12787,"extent_start":12766,"extent_end":12881,"ident_utf16":{"start":{"line_number":374,"utf16_col":8},"end":{"line_number":374,"utf16_col":29}},"extent_utf16":{"start":{"line_number":374,"utf16_col":8},"end":{"line_number":375,"utf16_col":49}}},{"name":"xmloxide_replace_node","fully_qualified_name":"xmloxide_replace_node","kind":"function","ident_start":13046,"ident_end":13067,"extent_start":13046,"extent_end":13159,"ident_utf16":{"start":{"line_number":381,"utf16_col":8},"end":{"line_number":381,"utf16_col":29}},"extent_utf16":{"start":{"line_number":381,"utf16_col":8},"end":{"line_number":382,"utf16_col":48}}},{"name":"xmloxide_remove_attribute","fully_qualified_name":"xmloxide_remove_attribute","kind":"function","ident_start":13291,"ident_end":13316,"extent_start":13291,"extent_end":13407,"ident_utf16":{"start":{"line_number":388,"utf16_col":8},"end":{"line_number":388,"utf16_col":33}},"extent_utf16":{"start":{"line_number":388,"utf16_col":8},"end":{"line_number":389,"utf16_col":51}}},{"name":"xmloxide_create_pi","fully_qualified_name":"xmloxide_create_pi","kind":"function","ident_start":13528,"ident_end":13546,"extent_start":13528,"extent_end":13636,"ident_utf16":{"start":{"line_number":395,"utf16_col":9},"end":{"line_number":395,"utf16_col":27}},"extent_utf16":{"start":{"line_number":395,"utf16_col":9},"end":{"line_number":396,"utf16_col":45}}},{"name":"xmloxide_rename_element","fully_qualified_name":"xmloxide_rename_element","kind":"function","ident_start":13719,"ident_end":13742,"extent_start":13719,"extent_end":13835,"ident_utf16":{"start":{"line_number":401,"utf16_col":8},"end":{"line_number":401,"utf16_col":31}},"extent_utf16":{"start":{"line_number":401,"utf16_col":8},"end":{"line_number":402,"utf16_col":53}}},{"name":"xmloxide_element_by_id","fully_qualified_name":"xmloxide_element_by_id","kind":"function","ident_start":14007,"ident_end":14029,"extent_start":14007,"extent_end":14075,"ident_utf16":{"start":{"line_number":408,"utf16_col":9},"end":{"line_number":408,"utf16_col":31}},"extent_utf16":{"start":{"line_number":408,"utf16_col":9},"end":{"line_number":408,"utf16_col":77}}},{"name":"xmloxide_serialize","fully_qualified_name":"xmloxide_serialize","kind":"function","ident_start":14289,"ident_end":14307,"extent_start":14289,"extent_end":14337,"ident_utf16":{"start":{"line_number":417,"utf16_col":6},"end":{"line_number":417,"utf16_col":24}},"extent_utf16":{"start":{"line_number":417,"utf16_col":6},"end":{"line_number":417,"utf16_col":54}}},{"name":"xmloxide_serialize_pretty","fully_qualified_name":"xmloxide_serialize_pretty","kind":"function","ident_start":14544,"ident_end":14569,"extent_start":14544,"extent_end":14599,"ident_utf16":{"start":{"line_number":424,"utf16_col":6},"end":{"line_number":424,"utf16_col":31}},"extent_utf16":{"start":{"line_number":424,"utf16_col":6},"end":{"line_number":424,"utf16_col":61}}},{"name":"xmloxide_serialize_pretty_custom","fully_qualified_name":"xmloxide_serialize_pretty_custom","kind":"function","ident_start":14877,"ident_end":14909,"extent_start":14877,"extent_end":15002,"ident_utf16":{"start":{"line_number":432,"utf16_col":6},"end":{"line_number":432,"utf16_col":38}},"extent_utf16":{"start":{"line_number":432,"utf16_col":6},"end":{"line_number":433,"utf16_col":62}}},{"name":"xmloxide_serialize_html","fully_qualified_name":"xmloxide_serialize_html","kind":"function","ident_start":15174,"ident_end":15197,"extent_start":15174,"extent_end":15227,"ident_utf16":{"start":{"line_number":440,"utf16_col":6},"end":{"line_number":440,"utf16_col":29}},"extent_utf16":{"start":{"line_number":440,"utf16_col":6},"end":{"line_number":440,"utf16_col":59}}},{"name":"xmloxide_serialize_html5","fully_qualified_name":"xmloxide_serialize_html5","kind":"function","ident_start":15419,"ident_end":15443,"extent_start":15419,"extent_end":15473,"ident_utf16":{"start":{"line_number":447,"utf16_col":6},"end":{"line_number":447,"utf16_col":30}},"extent_utf16":{"start":{"line_number":447,"utf16_col":6},"end":{"line_number":447,"utf16_col":60}}},{"name":"xmloxide_parse_dtd","fully_qualified_name":"xmloxide_parse_dtd","kind":"function","ident_start":15708,"ident_end":15726,"extent_start":15708,"extent_end":15745,"ident_utf16":{"start":{"line_number":456,"utf16_col":14},"end":{"line_number":456,"utf16_col":32}},"extent_utf16":{"start":{"line_number":456,"utf16_col":14},"end":{"line_number":456,"utf16_col":51}}},{"name":"xmloxide_free_dtd","fully_qualified_name":"xmloxide_free_dtd","kind":"function","ident_start":15812,"ident_end":15829,"extent_start":15812,"extent_end":15848,"ident_utf16":{"start":{"line_number":459,"utf16_col":5},"end":{"line_number":459,"utf16_col":22}},"extent_utf16":{"start":{"line_number":459,"utf16_col":5},"end":{"line_number":459,"utf16_col":41}}},{"name":"xmloxide_validate_dtd","fully_qualified_name":"xmloxide_validate_dtd","kind":"function","ident_start":16102,"ident_end":16123,"extent_start":16102,"extent_end":16222,"ident_utf16":{"start":{"line_number":467,"utf16_col":28},"end":{"line_number":467,"utf16_col":49}},"extent_utf16":{"start":{"line_number":467,"utf16_col":28},"end":{"line_number":468,"utf16_col":74}}},{"name":"xmloxide_parse_relaxng","fully_qualified_name":"xmloxide_parse_relaxng","kind":"function","ident_start":16453,"ident_end":16475,"extent_start":16453,"extent_end":16494,"ident_utf16":{"start":{"line_number":475,"utf16_col":25},"end":{"line_number":475,"utf16_col":47}},"extent_utf16":{"start":{"line_number":475,"utf16_col":25},"end":{"line_number":475,"utf16_col":66}}},{"name":"xmloxide_free_relaxng","fully_qualified_name":"xmloxide_free_relaxng","kind":"function","ident_start":16572,"ident_end":16593,"extent_start":16572,"extent_end":16626,"ident_utf16":{"start":{"line_number":478,"utf16_col":5},"end":{"line_number":478,"utf16_col":26}},"extent_utf16":{"start":{"line_number":478,"utf16_col":5},"end":{"line_number":478,"utf16_col":59}}},{"name":"xmloxide_validate_relaxng","fully_qualified_name":"xmloxide_validate_relaxng","kind":"function","ident_start":16808,"ident_end":16833,"extent_start":16808,"extent_end":16956,"ident_utf16":{"start":{"line_number":485,"utf16_col":28},"end":{"line_number":485,"utf16_col":53}},"extent_utf16":{"start":{"line_number":485,"utf16_col":28},"end":{"line_number":486,"utf16_col":92}}},{"name":"xmloxide_parse_xsd","fully_qualified_name":"xmloxide_parse_xsd","kind":"function","ident_start":17176,"ident_end":17194,"extent_start":17176,"extent_end":17213,"ident_utf16":{"start":{"line_number":493,"utf16_col":21},"end":{"line_number":493,"utf16_col":39}},"extent_utf16":{"start":{"line_number":493,"utf16_col":21},"end":{"line_number":493,"utf16_col":58}}},{"name":"xmloxide_free_xsd","fully_qualified_name":"xmloxide_free_xsd","kind":"function","ident_start":17288,"ident_end":17305,"extent_start":17288,"extent_end":17334,"ident_utf16":{"start":{"line_number":496,"utf16_col":5},"end":{"line_number":496,"utf16_col":22}},"extent_utf16":{"start":{"line_number":496,"utf16_col":5},"end":{"line_number":496,"utf16_col":51}}},{"name":"xmloxide_validate_xsd","fully_qualified_name":"xmloxide_validate_xsd","kind":"function","ident_start":17513,"ident_end":17534,"extent_start":17513,"extent_end":17649,"ident_utf16":{"start":{"line_number":503,"utf16_col":28},"end":{"line_number":503,"utf16_col":49}},"extent_utf16":{"start":{"line_number":503,"utf16_col":28},"end":{"line_number":504,"utf16_col":84}}},{"name":"xmloxide_parse_schematron","fully_qualified_name":"xmloxide_parse_schematron","kind":"function","ident_start":17894,"ident_end":17919,"extent_start":17894,"extent_end":17938,"ident_utf16":{"start":{"line_number":511,"utf16_col":28},"end":{"line_number":511,"utf16_col":53}},"extent_utf16":{"start":{"line_number":511,"utf16_col":28},"end":{"line_number":511,"utf16_col":72}}},{"name":"xmloxide_free_schematron","fully_qualified_name":"xmloxide_free_schematron","kind":"function","ident_start":18019,"ident_end":18043,"extent_start":18019,"extent_end":18079,"ident_utf16":{"start":{"line_number":514,"utf16_col":5},"end":{"line_number":514,"utf16_col":29}},"extent_utf16":{"start":{"line_number":514,"utf16_col":5},"end":{"line_number":514,"utf16_col":65}}},{"name":"xmloxide_validate_schematron","fully_qualified_name":"xmloxide_validate_schematron","kind":"function","ident_start":18269,"ident_end":18297,"extent_start":18269,"extent_end":18378,"ident_utf16":{"start":{"line_number":521,"utf16_col":28},"end":{"line_number":521,"utf16_col":56}},"extent_utf16":{"start":{"line_number":521,"utf16_col":28},"end":{"line_number":523,"utf16_col":45}}},{"name":"xmloxide_validate_schematron_with_phase","fully_qualified_name":"xmloxide_validate_schematron_with_phase","kind":"function","ident_start":18657,"ident_end":18696,"extent_start":18657,"extent_end":18800,"ident_utf16":{"start":{"line_number":531,"utf16_col":28},"end":{"line_number":531,"utf16_col":67}},"extent_utf16":{"start":{"line_number":531,"utf16_col":28},"end":{"line_number":534,"utf16_col":22}}},{"name":"xmloxide_validation_is_valid","fully_qualified_name":"xmloxide_validation_is_valid","kind":"function","ident_start":18935,"ident_end":18963,"extent_start":18935,"extent_end":19005,"ident_utf16":{"start":{"line_number":540,"utf16_col":8},"end":{"line_number":540,"utf16_col":36}},"extent_utf16":{"start":{"line_number":540,"utf16_col":8},"end":{"line_number":540,"utf16_col":78}}},{"name":"xmloxide_validation_error_count","fully_qualified_name":"xmloxide_validation_error_count","kind":"function","ident_start":19103,"ident_end":19134,"extent_start":19103,"extent_end":19176,"ident_utf16":{"start":{"line_number":546,"utf16_col":7},"end":{"line_number":546,"utf16_col":38}},"extent_utf16":{"start":{"line_number":546,"utf16_col":7},"end":{"line_number":546,"utf16_col":80}}},{"name":"xmloxide_validation_error_message","fully_qualified_name":"xmloxide_validation_error_message","kind":"function","ident_start":19354,"ident_end":19387,"extent_start":19354,"extent_end":19483,"ident_utf16":{"start":{"line_number":553,"utf16_col":6},"end":{"line_number":553,"utf16_col":39}},"extent_utf16":{"start":{"line_number":553,"utf16_col":6},"end":{"line_number":554,"utf16_col":53}}},{"name":"xmloxide_validation_warning_count","fully_qualified_name":"xmloxide_validation_warning_count","kind":"function","ident_start":19583,"ident_end":19616,"extent_start":19583,"extent_end":19658,"ident_utf16":{"start":{"line_number":560,"utf16_col":7},"end":{"line_number":560,"utf16_col":40}},"extent_utf16":{"start":{"line_number":560,"utf16_col":7},"end":{"line_number":560,"utf16_col":82}}},{"name":"xmloxide_validation_warning_message","fully_qualified_name":"xmloxide_validation_warning_message","kind":"function","ident_start":19838,"ident_end":19873,"extent_start":19838,"extent_end":19971,"ident_utf16":{"start":{"line_number":567,"utf16_col":6},"end":{"line_number":567,"utf16_col":41}},"extent_utf16":{"start":{"line_number":567,"utf16_col":6},"end":{"line_number":568,"utf16_col":55}}},{"name":"xmloxide_free_validation_result","fully_qualified_name":"xmloxide_free_validation_result","kind":"function","ident_start":20056,"ident_end":20087,"extent_start":20056,"extent_end":20123,"ident_utf16":{"start":{"line_number":573,"utf16_col":5},"end":{"line_number":573,"utf16_col":36}},"extent_utf16":{"start":{"line_number":573,"utf16_col":5},"end":{"line_number":573,"utf16_col":72}}},{"name":"xmloxide_xpath_eval","fully_qualified_name":"xmloxide_xpath_eval","kind":"function","ident_start":20449,"ident_end":20468,"extent_start":20449,"extent_end":20623,"ident_utf16":{"start":{"line_number":584,"utf16_col":22},"end":{"line_number":584,"utf16_col":41}},"extent_utf16":{"start":{"line_number":584,"utf16_col":22},"end":{"line_number":586,"utf16_col":59}}},{"name":"xmloxide_xpath_result_type","fully_qualified_name":"xmloxide_xpath_result_type","kind":"function","ident_start":20748,"ident_end":20774,"extent_start":20748,"extent_end":20810,"ident_utf16":{"start":{"line_number":592,"utf16_col":8},"end":{"line_number":592,"utf16_col":34}},"extent_utf16":{"start":{"line_number":592,"utf16_col":8},"end":{"line_number":592,"utf16_col":70}}},{"name":"xmloxide_xpath_result_boolean","fully_qualified_name":"xmloxide_xpath_result_boolean","kind":"function","ident_start":20943,"ident_end":20972,"extent_start":20943,"extent_end":21008,"ident_utf16":{"start":{"line_number":598,"utf16_col":8},"end":{"line_number":598,"utf16_col":37}},"extent_utf16":{"start":{"line_number":598,"utf16_col":8},"end":{"line_number":598,"utf16_col":73}}},{"name":"xmloxide_xpath_result_number","fully_qualified_name":"xmloxide_xpath_result_number","kind":"function","ident_start":21139,"ident_end":21167,"extent_start":21139,"extent_end":21203,"ident_utf16":{"start":{"line_number":604,"utf16_col":7},"end":{"line_number":604,"utf16_col":35}},"extent_utf16":{"start":{"line_number":604,"utf16_col":7},"end":{"line_number":604,"utf16_col":71}}},{"name":"xmloxide_xpath_result_string","fully_qualified_name":"xmloxide_xpath_result_string","kind":"function","ident_start":21398,"ident_end":21426,"extent_start":21398,"extent_end":21462,"ident_utf16":{"start":{"line_number":611,"utf16_col":6},"end":{"line_number":611,"utf16_col":34}},"extent_utf16":{"start":{"line_number":611,"utf16_col":6},"end":{"line_number":611,"utf16_col":70}}},{"name":"xmloxide_xpath_nodeset_count","fully_qualified_name":"xmloxide_xpath_nodeset_count","kind":"function","ident_start":21535,"ident_end":21563,"extent_start":21535,"extent_end":21599,"ident_utf16":{"start":{"line_number":614,"utf16_col":7},"end":{"line_number":614,"utf16_col":35}},"extent_utf16":{"start":{"line_number":614,"utf16_col":7},"end":{"line_number":614,"utf16_col":71}}},{"name":"xmloxide_xpath_nodeset_item","fully_qualified_name":"xmloxide_xpath_nodeset_item","kind":"function","ident_start":21936,"ident_end":21963,"extent_start":21936,"extent_end":22050,"ident_utf16":{"start":{"line_number":623,"utf16_col":9},"end":{"line_number":623,"utf16_col":36}},"extent_utf16":{"start":{"line_number":623,"utf16_col":9},"end":{"line_number":624,"utf16_col":50}}},{"name":"xmloxide_xpath_nodeset_item_is_attribute","fully_qualified_name":"xmloxide_xpath_nodeset_item_is_attribute","kind":"function","ident_start":22206,"ident_end":22246,"extent_start":22206,"extent_end":22341,"ident_utf16":{"start":{"line_number":630,"utf16_col":4},"end":{"line_number":630,"utf16_col":44}},"extent_utf16":{"start":{"line_number":630,"utf16_col":4},"end":{"line_number":631,"utf16_col":58}}},{"name":"xmloxide_xpath_nodeset_item_attr_name","fully_qualified_name":"xmloxide_xpath_nodeset_item_attr_name","kind":"function","ident_start":22635,"ident_end":22672,"extent_start":22635,"extent_end":22840,"ident_utf16":{"start":{"line_number":639,"utf16_col":6},"end":{"line_number":639,"utf16_col":43}},"extent_utf16":{"start":{"line_number":639,"utf16_col":6},"end":{"line_number":641,"utf16_col":57}}},{"name":"xmloxide_xpath_nodeset_item_attr_value","fully_qualified_name":"xmloxide_xpath_nodeset_item_attr_value","kind":"function","ident_start":23110,"ident_end":23148,"extent_start":23110,"extent_end":23318,"ident_utf16":{"start":{"line_number":649,"utf16_col":6},"end":{"line_number":649,"utf16_col":44}},"extent_utf16":{"start":{"line_number":649,"utf16_col":6},"end":{"line_number":651,"utf16_col":58}}},{"name":"xmloxide_xpath_free_result","fully_qualified_name":"xmloxide_xpath_free_result","kind":"function","ident_start":23447,"ident_end":23473,"extent_start":23447,"extent_end":23503,"ident_utf16":{"start":{"line_number":657,"utf16_col":5},"end":{"line_number":657,"utf16_col":31}},"extent_utf16":{"start":{"line_number":657,"utf16_col":5},"end":{"line_number":657,"utf16_col":61}}},{"name":"xmloxide_canonicalize","fully_qualified_name":"xmloxide_canonicalize","kind":"function","ident_start":23745,"ident_end":23766,"extent_start":23745,"extent_end":23796,"ident_utf16":{"start":{"line_number":666,"utf16_col":6},"end":{"line_number":666,"utf16_col":27}},"extent_utf16":{"start":{"line_number":666,"utf16_col":6},"end":{"line_number":666,"utf16_col":57}}},{"name":"xmloxide_canonicalize_opts","fully_qualified_name":"xmloxide_canonicalize_opts","kind":"function","ident_start":23961,"ident_end":23987,"extent_start":23961,"extent_end":24092,"ident_utf16":{"start":{"line_number":673,"utf16_col":6},"end":{"line_number":673,"utf16_col":32}},"extent_utf16":{"start":{"line_number":673,"utf16_col":6},"end":{"line_number":674,"utf16_col":74}}},{"name":"xmloxide_canonicalize_subtree","fully_qualified_name":"xmloxide_canonicalize_subtree","kind":"function","ident_start":24162,"ident_end":24191,"extent_start":24162,"extent_end":24350,"ident_utf16":{"start":{"line_number":679,"utf16_col":6},"end":{"line_number":679,"utf16_col":35}},"extent_utf16":{"start":{"line_number":679,"utf16_col":6},"end":{"line_number":681,"utf16_col":54}}},{"name":"xmloxide_process_xincludes","fully_qualified_name":"xmloxide_process_xincludes","kind":"function","ident_start":24633,"ident_end":24659,"extent_start":24633,"extent_end":24683,"ident_utf16":{"start":{"line_number":690,"utf16_col":8},"end":{"line_number":690,"utf16_col":34}},"extent_utf16":{"start":{"line_number":690,"utf16_col":8},"end":{"line_number":690,"utf16_col":58}}},{"name":"xmloxide_parse_catalog","fully_qualified_name":"xmloxide_parse_catalog","kind":"function","ident_start":24949,"ident_end":24971,"extent_start":24949,"extent_end":24990,"ident_utf16":{"start":{"line_number":699,"utf16_col":18},"end":{"line_number":699,"utf16_col":40}},"extent_utf16":{"start":{"line_number":699,"utf16_col":18},"end":{"line_number":699,"utf16_col":59}}},{"name":"xmloxide_free_catalog","fully_qualified_name":"xmloxide_free_catalog","kind":"function","ident_start":25061,"ident_end":25082,"extent_start":25061,"extent_end":25109,"ident_utf16":{"start":{"line_number":702,"utf16_col":5},"end":{"line_number":702,"utf16_col":26}},"extent_utf16":{"start":{"line_number":702,"utf16_col":5},"end":{"line_number":702,"utf16_col":53}}},{"name":"xmloxide_catalog_resolve_system","fully_qualified_name":"xmloxide_catalog_resolve_system","kind":"function","ident_start":25237,"ident_end":25268,"extent_start":25237,"extent_end":25362,"ident_utf16":{"start":{"line_number":708,"utf16_col":6},"end":{"line_number":708,"utf16_col":37}},"extent_utf16":{"start":{"line_number":708,"utf16_col":6},"end":{"line_number":709,"utf16_col":60}}},{"name":"xmloxide_catalog_resolve_public","fully_qualified_name":"xmloxide_catalog_resolve_public","kind":"function","ident_start":25490,"ident_end":25521,"extent_start":25490,"extent_end":25615,"ident_utf16":{"start":{"line_number":715,"utf16_col":6},"end":{"line_number":715,"utf16_col":37}},"extent_utf16":{"start":{"line_number":715,"utf16_col":6},"end":{"line_number":716,"utf16_col":60}}},{"name":"xmloxide_catalog_resolve_uri","fully_qualified_name":"xmloxide_catalog_resolve_uri","kind":"function","ident_start":25729,"ident_end":25757,"extent_start":25729,"extent_end":25842,"ident_utf16":{"start":{"line_number":722,"utf16_col":6},"end":{"line_number":722,"utf16_col":34}},"extent_utf16":{"start":{"line_number":722,"utf16_col":6},"end":{"line_number":723,"utf16_col":51}}},{"name":"xmloxide_push_parser_new","fully_qualified_name":"xmloxide_push_parser_new","kind":"function","ident_start":26101,"ident_end":26125,"extent_start":26101,"extent_end":26131,"ident_utf16":{"start":{"line_number":732,"utf16_col":22},"end":{"line_number":732,"utf16_col":46}},"extent_utf16":{"start":{"line_number":732,"utf16_col":22},"end":{"line_number":732,"utf16_col":52}}},{"name":"xmloxide_push_parser_push","fully_qualified_name":"xmloxide_push_parser_push","kind":"function","ident_start":26250,"ident_end":26275,"extent_start":26250,"extent_end":26370,"ident_utf16":{"start":{"line_number":738,"utf16_col":5},"end":{"line_number":738,"utf16_col":30}},"extent_utf16":{"start":{"line_number":738,"utf16_col":5},"end":{"line_number":739,"utf16_col":64}}},{"name":"xmloxide_push_parser_finish","fully_qualified_name":"xmloxide_push_parser_finish","kind":"function","ident_start":26733,"ident_end":26760,"extent_start":26733,"extent_end":26790,"ident_utf16":{"start":{"line_number":750,"utf16_col":19},"end":{"line_number":750,"utf16_col":46}},"extent_utf16":{"start":{"line_number":750,"utf16_col":19},"end":{"line_number":750,"utf16_col":76}}},{"name":"xmloxide_push_parser_buffered_bytes","fully_qualified_name":"xmloxide_push_parser_buffered_bytes","kind":"function","ident_start":26878,"ident_end":26913,"extent_start":26878,"extent_end":26949,"ident_utf16":{"start":{"line_number":755,"utf16_col":7},"end":{"line_number":755,"utf16_col":42}},"extent_utf16":{"start":{"line_number":755,"utf16_col":7},"end":{"line_number":755,"utf16_col":78}}},{"name":"xmloxide_push_parser_reset","fully_qualified_name":"xmloxide_push_parser_reset","kind":"function","ident_start":27075,"ident_end":27101,"extent_start":27075,"extent_end":27131,"ident_utf16":{"start":{"line_number":761,"utf16_col":5},"end":{"line_number":761,"utf16_col":31}},"extent_utf16":{"start":{"line_number":761,"utf16_col":5},"end":{"line_number":761,"utf16_col":61}}},{"name":"xmloxide_push_parser_free","fully_qualified_name":"xmloxide_push_parser_free","kind":"function","ident_start":27308,"ident_end":27333,"extent_start":27308,"extent_end":27363,"ident_utf16":{"start":{"line_number":768,"utf16_col":5},"end":{"line_number":768,"utf16_col":30}},"extent_utf16":{"start":{"line_number":768,"utf16_col":5},"end":{"line_number":768,"utf16_col":60}}},{"name":"XMLOXIDE_READER_NONE","fully_qualified_name":"XMLOXIDE_READER_NONE","kind":"macro","ident_start":27510,"ident_end":27530,"extent_start":27502,"extent_end":27545,"ident_utf16":{"start":{"line_number":775,"utf16_col":8},"end":{"line_number":775,"utf16_col":28}},"extent_utf16":{"start":{"line_number":775,"utf16_col":0},"end":{"line_number":776,"utf16_col":0}}},{"name":"XMLOXIDE_READER_ELEMENT","fully_qualified_name":"XMLOXIDE_READER_ELEMENT","kind":"macro","ident_start":27553,"ident_end":27576,"extent_start":27545,"extent_end":27588,"ident_utf16":{"start":{"line_number":776,"utf16_col":8},"end":{"line_number":776,"utf16_col":31}},"extent_utf16":{"start":{"line_number":776,"utf16_col":0},"end":{"line_number":777,"utf16_col":0}}},{"name":"XMLOXIDE_READER_ATTRIBUTE","fully_qualified_name":"XMLOXIDE_READER_ATTRIBUTE","kind":"macro","ident_start":27596,"ident_end":27621,"extent_start":27588,"extent_end":27631,"ident_utf16":{"start":{"line_number":777,"utf16_col":8},"end":{"line_number":777,"utf16_col":33}},"extent_utf16":{"start":{"line_number":777,"utf16_col":0},"end":{"line_number":778,"utf16_col":0}}},{"name":"XMLOXIDE_READER_TEXT","fully_qualified_name":"XMLOXIDE_READER_TEXT","kind":"macro","ident_start":27639,"ident_end":27659,"extent_start":27631,"extent_end":27674,"ident_utf16":{"start":{"line_number":778,"utf16_col":8},"end":{"line_number":778,"utf16_col":28}},"extent_utf16":{"start":{"line_number":778,"utf16_col":0},"end":{"line_number":779,"utf16_col":0}}},{"name":"XMLOXIDE_READER_CDATA","fully_qualified_name":"XMLOXIDE_READER_CDATA","kind":"macro","ident_start":27682,"ident_end":27703,"extent_start":27674,"extent_end":27717,"ident_utf16":{"start":{"line_number":779,"utf16_col":8},"end":{"line_number":779,"utf16_col":29}},"extent_utf16":{"start":{"line_number":779,"utf16_col":0},"end":{"line_number":780,"utf16_col":0}}},{"name":"XMLOXIDE_READER_PI","fully_qualified_name":"XMLOXIDE_READER_PI","kind":"macro","ident_start":27725,"ident_end":27743,"extent_start":27717,"extent_end":27760,"ident_utf16":{"start":{"line_number":780,"utf16_col":8},"end":{"line_number":780,"utf16_col":26}},"extent_utf16":{"start":{"line_number":780,"utf16_col":0},"end":{"line_number":781,"utf16_col":0}}},{"name":"XMLOXIDE_READER_COMMENT","fully_qualified_name":"XMLOXIDE_READER_COMMENT","kind":"macro","ident_start":27768,"ident_end":27791,"extent_start":27760,"extent_end":27803,"ident_utf16":{"start":{"line_number":781,"utf16_col":8},"end":{"line_number":781,"utf16_col":31}},"extent_utf16":{"start":{"line_number":781,"utf16_col":0},"end":{"line_number":782,"utf16_col":0}}},{"name":"XMLOXIDE_READER_DOCUMENT_TYPE","fully_qualified_name":"XMLOXIDE_READER_DOCUMENT_TYPE","kind":"macro","ident_start":27811,"ident_end":27840,"extent_start":27803,"extent_end":27846,"ident_utf16":{"start":{"line_number":782,"utf16_col":8},"end":{"line_number":782,"utf16_col":37}},"extent_utf16":{"start":{"line_number":782,"utf16_col":0},"end":{"line_number":783,"utf16_col":0}}},{"name":"XMLOXIDE_READER_WHITESPACE","fully_qualified_name":"XMLOXIDE_READER_WHITESPACE","kind":"macro","ident_start":27854,"ident_end":27880,"extent_start":27846,"extent_end":27889,"ident_utf16":{"start":{"line_number":783,"utf16_col":8},"end":{"line_number":783,"utf16_col":34}},"extent_utf16":{"start":{"line_number":783,"utf16_col":0},"end":{"line_number":784,"utf16_col":0}}},{"name":"XMLOXIDE_READER_END_ELEMENT","fully_qualified_name":"XMLOXIDE_READER_END_ELEMENT","kind":"macro","ident_start":27897,"ident_end":27924,"extent_start":27889,"extent_end":27932,"ident_utf16":{"start":{"line_number":784,"utf16_col":8},"end":{"line_number":784,"utf16_col":35}},"extent_utf16":{"start":{"line_number":784,"utf16_col":0},"end":{"line_number":785,"utf16_col":0}}},{"name":"XMLOXIDE_READER_XML_DECLARATION","fully_qualified_name":"XMLOXIDE_READER_XML_DECLARATION","kind":"macro","ident_start":27940,"ident_end":27971,"extent_start":27932,"extent_end":27975,"ident_utf16":{"start":{"line_number":785,"utf16_col":8},"end":{"line_number":785,"utf16_col":39}},"extent_utf16":{"start":{"line_number":785,"utf16_col":0},"end":{"line_number":786,"utf16_col":0}}},{"name":"XMLOXIDE_READER_END_DOCUMENT","fully_qualified_name":"XMLOXIDE_READER_END_DOCUMENT","kind":"macro","ident_start":27983,"ident_end":28011,"extent_start":27975,"extent_end":28020,"ident_utf16":{"start":{"line_number":786,"utf16_col":8},"end":{"line_number":786,"utf16_col":36}},"extent_utf16":{"start":{"line_number":786,"utf16_col":0},"end":{"line_number":787,"utf16_col":0}}},{"name":"xmloxide_reader_new","fully_qualified_name":"xmloxide_reader_new","kind":"function","ident_start":28224,"ident_end":28243,"extent_start":28224,"extent_end":28262,"ident_utf16":{"start":{"line_number":793,"utf16_col":17},"end":{"line_number":793,"utf16_col":36}},"extent_utf16":{"start":{"line_number":793,"utf16_col":17},"end":{"line_number":793,"utf16_col":55}}},{"name":"xmloxide_reader_read","fully_qualified_name":"xmloxide_reader_read","kind":"function","ident_start":28390,"ident_end":28410,"extent_start":28390,"extent_end":28435,"ident_utf16":{"start":{"line_number":799,"utf16_col":8},"end":{"line_number":799,"utf16_col":28}},"extent_utf16":{"start":{"line_number":799,"utf16_col":8},"end":{"line_number":799,"utf16_col":53}}},{"name":"xmloxide_reader_node_type","fully_qualified_name":"xmloxide_reader_node_type","kind":"function","ident_start":28551,"ident_end":28576,"extent_start":28551,"extent_end":28607,"ident_utf16":{"start":{"line_number":805,"utf16_col":8},"end":{"line_number":805,"utf16_col":33}},"extent_utf16":{"start":{"line_number":805,"utf16_col":8},"end":{"line_number":805,"utf16_col":64}}},{"name":"xmloxide_reader_name","fully_qualified_name":"xmloxide_reader_name","kind":"function","ident_start":28750,"ident_end":28770,"extent_start":28750,"extent_end":28801,"ident_utf16":{"start":{"line_number":811,"utf16_col":6},"end":{"line_number":811,"utf16_col":26}},"extent_utf16":{"start":{"line_number":811,"utf16_col":6},"end":{"line_number":811,"utf16_col":57}}},{"name":"xmloxide_reader_local_name","fully_qualified_name":"xmloxide_reader_local_name","kind":"function","ident_start":28957,"ident_end":28983,"extent_start":28957,"extent_end":29014,"ident_utf16":{"start":{"line_number":817,"utf16_col":6},"end":{"line_number":817,"utf16_col":32}},"extent_utf16":{"start":{"line_number":817,"utf16_col":6},"end":{"line_number":817,"utf16_col":63}}},{"name":"xmloxide_reader_prefix","fully_qualified_name":"xmloxide_reader_prefix","kind":"function","ident_start":29159,"ident_end":29181,"extent_start":29159,"extent_end":29212,"ident_utf16":{"start":{"line_number":823,"utf16_col":6},"end":{"line_number":823,"utf16_col":28}},"extent_utf16":{"start":{"line_number":823,"utf16_col":6},"end":{"line_number":823,"utf16_col":59}}},{"name":"xmloxide_reader_namespace_uri","fully_qualified_name":"xmloxide_reader_namespace_uri","kind":"function","ident_start":29354,"ident_end":29383,"extent_start":29354,"extent_end":29414,"ident_utf16":{"start":{"line_number":829,"utf16_col":6},"end":{"line_number":829,"utf16_col":35}},"extent_utf16":{"start":{"line_number":829,"utf16_col":6},"end":{"line_number":829,"utf16_col":66}}},{"name":"xmloxide_reader_value","fully_qualified_name":"xmloxide_reader_value","kind":"function","ident_start":29614,"ident_end":29635,"extent_start":29614,"extent_end":29666,"ident_utf16":{"start":{"line_number":836,"utf16_col":6},"end":{"line_number":836,"utf16_col":27}},"extent_utf16":{"start":{"line_number":836,"utf16_col":6},"end":{"line_number":836,"utf16_col":58}}},{"name":"xmloxide_reader_depth","fully_qualified_name":"xmloxide_reader_depth","kind":"function","ident_start":29745,"ident_end":29766,"extent_start":29745,"extent_end":29797,"ident_utf16":{"start":{"line_number":839,"utf16_col":9},"end":{"line_number":839,"utf16_col":30}},"extent_utf16":{"start":{"line_number":839,"utf16_col":9},"end":{"line_number":839,"utf16_col":61}}},{"name":"xmloxide_reader_is_empty_element","fully_qualified_name":"xmloxide_reader_is_empty_element","kind":"function","ident_start":29890,"ident_end":29922,"extent_start":29890,"extent_end":29953,"ident_utf16":{"start":{"line_number":844,"utf16_col":8},"end":{"line_number":844,"utf16_col":40}},"extent_utf16":{"start":{"line_number":844,"utf16_col":8},"end":{"line_number":844,"utf16_col":71}}},{"name":"xmloxide_reader_has_value","fully_qualified_name":"xmloxide_reader_has_value","kind":"function","ident_start":30031,"ident_end":30056,"extent_start":30031,"extent_end":30087,"ident_utf16":{"start":{"line_number":849,"utf16_col":8},"end":{"line_number":849,"utf16_col":33}},"extent_utf16":{"start":{"line_number":849,"utf16_col":8},"end":{"line_number":849,"utf16_col":64}}},{"name":"xmloxide_reader_attribute_count","fully_qualified_name":"xmloxide_reader_attribute_count","kind":"function","ident_start":30161,"ident_end":30192,"extent_start":30161,"extent_end":30223,"ident_utf16":{"start":{"line_number":852,"utf16_col":7},"end":{"line_number":852,"utf16_col":38}},"extent_utf16":{"start":{"line_number":852,"utf16_col":7},"end":{"line_number":852,"utf16_col":69}}},{"name":"xmloxide_reader_get_attribute","fully_qualified_name":"xmloxide_reader_get_attribute","kind":"function","ident_start":30384,"ident_end":30413,"extent_start":30384,"extent_end":30499,"ident_utf16":{"start":{"line_number":858,"utf16_col":6},"end":{"line_number":858,"utf16_col":35}},"extent_utf16":{"start":{"line_number":858,"utf16_col":6},"end":{"line_number":859,"utf16_col":54}}},{"name":"xmloxide_reader_move_to_first_attribute","fully_qualified_name":"xmloxide_reader_move_to_first_attribute","kind":"function","ident_start":30654,"ident_end":30693,"extent_start":30654,"extent_end":30718,"ident_utf16":{"start":{"line_number":865,"utf16_col":8},"end":{"line_number":865,"utf16_col":47}},"extent_utf16":{"start":{"line_number":865,"utf16_col":8},"end":{"line_number":865,"utf16_col":72}}},{"name":"xmloxide_reader_move_to_next_attribute","fully_qualified_name":"xmloxide_reader_move_to_next_attribute","kind":"function","ident_start":30833,"ident_end":30871,"extent_start":30833,"extent_end":30896,"ident_utf16":{"start":{"line_number":871,"utf16_col":8},"end":{"line_number":871,"utf16_col":46}},"extent_utf16":{"start":{"line_number":871,"utf16_col":8},"end":{"line_number":871,"utf16_col":71}}},{"name":"xmloxide_reader_move_to_element","fully_qualified_name":"xmloxide_reader_move_to_element","kind":"function","ident_start":31028,"ident_end":31059,"extent_start":31028,"extent_end":31084,"ident_utf16":{"start":{"line_number":877,"utf16_col":8},"end":{"line_number":877,"utf16_col":39}},"extent_utf16":{"start":{"line_number":877,"utf16_col":8},"end":{"line_number":877,"utf16_col":64}}},{"name":"xmloxide_reader_free","fully_qualified_name":"xmloxide_reader_free","kind":"function","ident_start":31158,"ident_end":31178,"extent_start":31158,"extent_end":31203,"ident_utf16":{"start":{"line_number":882,"utf16_col":5},"end":{"line_number":882,"utf16_col":25}},"extent_utf16":{"start":{"line_number":882,"utf16_col":5},"end":{"line_number":882,"utf16_col":50}}},{"name":"xmloxide_sax_handler","fully_qualified_name":"xmloxide_sax_handler","kind":"type","ident_start":33573,"ident_end":33593,"extent_start":33289,"extent_end":33594,"ident_utf16":{"start":{"line_number":951,"utf16_col":2},"end":{"line_number":951,"utf16_col":22}},"extent_utf16":{"start":{"line_number":943,"utf16_col":0},"end":{"line_number":951,"utf16_col":23}}},{"name":"xmloxide_sax_parse","fully_qualified_name":"xmloxide_sax_parse","kind":"function","ident_start":33889,"ident_end":33907,"extent_start":33889,"extent_end":33989,"ident_utf16":{"start":{"line_number":961,"utf16_col":8},"end":{"line_number":961,"utf16_col":26}},"extent_utf16":{"start":{"line_number":961,"utf16_col":8},"end":{"line_number":962,"utf16_col":64}}},{"name":"xmloxide_css_select","fully_qualified_name":"xmloxide_css_select","kind":"function","ident_start":34543,"ident_end":34562,"extent_start":34543,"extent_end":34680,"ident_utf16":{"start":{"line_number":978,"utf16_col":10},"end":{"line_number":978,"utf16_col":29}},"extent_utf16":{"start":{"line_number":978,"utf16_col":10},"end":{"line_number":979,"utf16_col":71}}},{"name":"xmloxide_free_nodeid_array","fully_qualified_name":"xmloxide_free_nodeid_array","kind":"function","ident_start":34798,"ident_end":34824,"extent_start":34798,"extent_end":34853,"ident_utf16":{"start":{"line_number":985,"utf16_col":5},"end":{"line_number":985,"utf16_col":31}},"extent_utf16":{"start":{"line_number":985,"utf16_col":5},"end":{"line_number":985,"utf16_col":60}}},{"name":"xmloxide_css_select_first","fully_qualified_name":"xmloxide_css_select_first","kind":"function","ident_start":35007,"ident_end":35032,"extent_start":35007,"extent_end":35136,"ident_utf16":{"start":{"line_number":991,"utf16_col":9},"end":{"line_number":991,"utf16_col":34}},"extent_utf16":{"start":{"line_number":991,"utf16_col":9},"end":{"line_number":992,"utf16_col":57}}},{"name":"xmloxide_free_string","fully_qualified_name":"xmloxide_free_string","kind":"function","ident_start":35307,"ident_end":35327,"extent_start":35307,"extent_end":35338,"ident_utf16":{"start":{"line_number":1000,"utf16_col":5},"end":{"line_number":1000,"utf16_col":25}},"extent_utf16":{"start":{"line_number":1000,"utf16_col":5},"end":{"line_number":1000,"utf16_col":36}}}]}},"codeViewLayoutRoute":{"repo":{"id":1163839325,"defaultBranch":"main","name":"xmloxide","ownerLogin":"jonwiggins","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2026-02-22T08:22:18.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/35540058?v=4","public":true,"private":false,"isOrgOwned":false,"isArchived":false},"currentUser":null,"uploadToken":"35XU20DzGMob6lA2i4ICZ_92pPnWINZQaceYwMGaE07EefYCVZtT8_HicGD8qUT8ErQhort-SJ3ONJW3Jif0uA","allShortcutsEnabled":false,"treeExpanded":true,"path":"include/xmloxide.h","symbolsExpanded":false,"refInfo":{"name":"main","listCacheKey":"v0:1791411856.0","canEdit":false,"currentOid":"555055f1ea6bf9944488fd96415b6f03b5b43696"},"helpUrl":"https://docs.github.com","githubDevUrl":null},"codeViewFileTreeLayoutRoute":{"fileTree":{"include":{"items":[{"name":"libxml2_compat.h","path":"include/libxml2_compat.h","contentType":"file"},{"name":"xmloxide.h","path":"include/xmloxide.h","contentType":"file"}],"totalCount":2},"":{"items":[{"name":".claude","path":".claude","contentType":"directory"},{"name":".github","path":".github","contentType":"directory"},{"name":"benches","path":"benches","contentType":"directory"},{"name":"examples","path":"examples","contentType":"directory"},{"name":"fuzz","path":"fuzz","contentType":"directory"},{"name":"include","path":"include","contentType":"directory"},{"name":"pyxmloxide","path":"pyxmloxide","contentType":"directory"},{"name":"scripts","path":"scripts","contentType":"directory"},{"name":"src","path":"src","contentType":"directory"},{"name":"tests","path":"tests","contentType":"directory"},{"name":"xmloxide-wasm","path":"xmloxide-wasm","contentType":"directory"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":"CHANGELOG.md","path":"CHANGELOG.md","contentType":"file"},{"name":"CLAUDE.md","path":"CLAUDE.md","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"Cargo.lock","path":"Cargo.lock","contentType":"file"},{"name":"Cargo.toml","path":"Cargo.toml","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"MIGRATION.md","path":"MIGRATION.md","contentType":"file"},{"name":"Makefile","path":"Makefile","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"clippy.toml","path":"clippy.toml","contentType":"file"},{"name":"rustfmt.toml","path":"rustfmt.toml","contentType":"file"}],"totalCount":23}},"fileTreeProcessingTime":47.083622,"foldersToFetch":[]},"codeViewBlobLayoutRoute":{"codeLineWrapEnabled":false,"refInfo":{"name":"main","listCacheKey":"v0:1791411856.0","canEdit":false,"refType":"branch","currentOid":"555055f1ea6bf9944488fd96415b6f03b5b43696","canEditOnDefaultBranch":false,"fileExistsOnDefault":true},"path":"include/xmloxide.h","blob":{"copilotSWEAgentEnabled":false,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/jonwiggins/xmloxide/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"xmloxide.h","displayUrl":"https://github.com/jonwiggins/xmloxide/blob/main/include/xmloxide.h?raw=true","headerInfo":{"blobSize":"34.6 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"478cca2","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fjonwiggins%2Fxmloxide%2Fblob%2Fmain%2Finclude%2Fxmloxide.h","isCSV":false,"isRichtext":false,"lineInfo":{"truncatedLoc":"1007","truncatedSloc":"838"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"isIssueTemplate":false,"isDiscussionTemplate":false,"language":"C","languageID":41,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/jonwiggins/xmloxide/blob/main/include/xmloxide.h","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/jonwiggins/xmloxide/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/jonwiggins/xmloxide/raw/refs/heads/main/include/xmloxide.h","renderImageOrRaw":false,"shortPath":null,"symbolsEnabled":true,"tabSize":4,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null},"copilotInfo":null,"copilotAccessAllowed":false,"copilotSpacesEnabled":false,"modelsAccessAllowed":false,"modelsRepoIntegrationEnabled":false,"isMarketplaceEnabled":true},"codeViewBlobLayoutRoute.StyledBlob":{"rawLines":["/*"," * xmloxide.h — C API for xmloxide"," *"," * A memory-safe XML parsing library implemented in Rust."," *"," * All returned strings are caller-owned and must be freed with"," * xmloxide_free_string(). Document and XPath result pointers must be"," * freed with their respective free functions."," *"," * Error handling: functions that can fail return NULL (for pointers)"," * or 0 (for node ids). Call xmloxide_last_error() to retrieve the"," * error message for the most recent failure on the current thread."," *"," * Thread safety: Unlike libxml2, xmloxide requires no global"," * initialization or cleanup. Each document is independent and may be"," * used from any thread. The last-error message is stored in thread-local"," * storage, so each thread has its own error state. A single document"," * must not be accessed concurrently from multiple threads without"," * external synchronization."," */","","#ifndef XMLOXIDE_H","#define XMLOXIDE_H","","#include \u003cstddef.h\u003e","#include \u003cstdint.h\u003e","","#ifdef __cplusplus","extern \"C\" {","#endif","","/* ---------- Opaque types ---------- */","","/** Opaque XML document handle. */","typedef struct xmloxide_document xmloxide_document;","","/** Opaque XPath result handle. */","typedef struct xmloxide_xpath_value xmloxide_xpath_value;","","/** Opaque DTD handle. */","typedef struct xmloxide_dtd xmloxide_dtd;","","/** Opaque RelaxNG schema handle. */","typedef struct xmloxide_relaxng_schema xmloxide_relaxng_schema;","","/** Opaque XSD schema handle. */","typedef struct xmloxide_xsd_schema xmloxide_xsd_schema;","","/** Opaque Schematron schema handle. */","typedef struct xmloxide_schematron_schema xmloxide_schematron_schema;","","/** Opaque validation result handle. */","typedef struct xmloxide_validation_result xmloxide_validation_result;","","/** Opaque XML Catalog handle. */","typedef struct xmloxide_catalog xmloxide_catalog;","","/** Opaque push parser handle. */","typedef struct xmloxide_push_parser xmloxide_push_parser;","","/** Opaque XML reader handle. */","typedef struct xmloxide_reader xmloxide_reader;","","/* ---------- Node type constants ---------- */","","#define XMLOXIDE_NODE_ELEMENT       1","#define XMLOXIDE_NODE_TEXT          3","#define XMLOXIDE_NODE_CDATA        4","#define XMLOXIDE_NODE_ENTITY_REF   5","#define XMLOXIDE_NODE_PI           7","#define XMLOXIDE_NODE_COMMENT      8","#define XMLOXIDE_NODE_DOCUMENT     9","#define XMLOXIDE_NODE_DOCUMENT_TYPE 10","","/* ---------- XPath result type constants ---------- */","","#define XMLOXIDE_XPATH_NODESET  1","#define XMLOXIDE_XPATH_BOOLEAN  2","#define XMLOXIDE_XPATH_NUMBER   3","#define XMLOXIDE_XPATH_STRING   4","","/* ---------- Error severity constants ---------- */","","#define XMLOXIDE_ERR_WARNING  0","#define XMLOXIDE_ERR_ERROR    1","#define XMLOXIDE_ERR_FATAL    2","","/* ---------- Error handling ---------- */","","/**"," * Returns the last error message, or NULL if no error occurred."," *"," * The returned string is owned by the library and must NOT be freed."," * It is valid until the next xmloxide FFI call on the same thread."," */","const char *xmloxide_last_error(void);","","/**"," * Returns the line number where the last error occurred, or 0 if unknown."," */","uint32_t xmloxide_last_error_line(void);","","/**"," * Returns the column number where the last error occurred, or 0 if unknown."," */","uint32_t xmloxide_last_error_column(void);","","/**"," * Returns the severity of the last error."," * Returns XMLOXIDE_ERR_WARNING (0), XMLOXIDE_ERR_ERROR (1),"," * or XMLOXIDE_ERR_FATAL (2). Returns -1 if no error occurred."," */","int32_t xmloxide_last_error_severity(void);","","/* ---------- Document lifecycle ---------- */","","/**"," * Parses a null-terminated UTF-8 XML string into a document."," *"," * Returns a document pointer on success, or NULL on failure."," * The returned document must be freed with xmloxide_free_doc()."," */","xmloxide_document *xmloxide_parse_str(const char *input);","","/**"," * Parses raw bytes as XML, with automatic encoding detection."," *"," * Returns a document pointer on success, or NULL on failure."," * The returned document must be freed with xmloxide_free_doc()."," */","xmloxide_document *xmloxide_parse_bytes(const uint8_t *data, size_t len);","","/**"," * Parses an HTML string into a document."," *"," * Returns a document pointer on success, or NULL on failure."," * The returned document must be freed with xmloxide_free_doc()."," */","xmloxide_document *xmloxide_parse_html(const char *input);","","/**"," * Parses an HTML5 string using the WHATWG parsing algorithm."," *"," * Returns a document pointer on success, or NULL on failure."," * The returned document must be freed with xmloxide_free_doc()."," */","xmloxide_document *xmloxide_parse_html5(const char *input);","","/**"," * Parses an HTML5 fragment with a context element (the innerHTML algorithm)."," *"," * context_element is the tag name of the context (e.g., \"body\", \"div\", \"table\")."," * Returns a document pointer on success, or NULL on failure."," * The returned document must be freed with xmloxide_free_doc()."," */","xmloxide_document *xmloxide_parse_html5_fragment(const char *input,","                                                  const char *context_element);","","/**"," * Parses an XML file from a filesystem path."," *"," * Returns a document pointer on success, or NULL on failure."," * The returned document must be freed with xmloxide_free_doc()."," */","xmloxide_document *xmloxide_parse_file(const char *path);","","/**"," * Frees a document previously returned by a parse function."," * Passing NULL is safe and does nothing."," */","void xmloxide_free_doc(xmloxide_document *doc);","","/* ---------- Document properties ---------- */","","/**"," * Returns the XML version string (e.g., \"1.0\"), or NULL if not declared."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_doc_version(const xmloxide_document *doc);","","/**"," * Returns the encoding string (e.g., \"UTF-8\"), or NULL if not declared."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_doc_encoding(const xmloxide_document *doc);","","/* ---------- Document diagnostics ---------- */","","/**"," * Returns the number of parse diagnostics (warnings + recovered errors)"," * on a document. Returns 0 if the document has no diagnostics."," */","size_t xmloxide_doc_diagnostic_count(const xmloxide_document *doc);","","/**"," * Returns the error message of the diagnostic at the given index."," * Returns NULL if out of range."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_doc_diagnostic_message(const xmloxide_document *doc, size_t index);","","/** Returns the line number of the diagnostic at the given index (0 if unknown). */","uint32_t xmloxide_doc_diagnostic_line(const xmloxide_document *doc, size_t index);","","/** Returns the column number of the diagnostic at the given index (0 if unknown). */","uint32_t xmloxide_doc_diagnostic_column(const xmloxide_document *doc, size_t index);","","/**"," * Returns the severity of the diagnostic at the given index."," * Returns XMLOXIDE_ERR_WARNING, XMLOXIDE_ERR_ERROR, or XMLOXIDE_ERR_FATAL."," * Returns -1 if out of range."," */","int32_t xmloxide_doc_diagnostic_severity(const xmloxide_document *doc, size_t index);","","/* ---------- Tree navigation ---------- */","","/*"," * Node IDs are uint32_t values. A value of 0 means \"no node\""," * (invalid/missing)."," */","","/** Returns the document root node id. */","uint32_t xmloxide_doc_root(const xmloxide_document *doc);","","/** Returns the root element of the document, or 0 if none. */","uint32_t xmloxide_doc_root_element(const xmloxide_document *doc);","","/** Returns the parent of a node, or 0 if none. */","uint32_t xmloxide_node_parent(const xmloxide_document *doc, uint32_t node);","","/** Returns the first child of a node, or 0 if none. */","uint32_t xmloxide_node_first_child(const xmloxide_document *doc, uint32_t node);","","/** Returns the last child of a node, or 0 if none. */","uint32_t xmloxide_node_last_child(const xmloxide_document *doc, uint32_t node);","","/** Returns the next sibling of a node, or 0 if none. */","uint32_t xmloxide_node_next_sibling(const xmloxide_document *doc, uint32_t node);","","/** Returns the previous sibling of a node, or 0 if none. */","uint32_t xmloxide_node_prev_sibling(const xmloxide_document *doc, uint32_t node);","","/* ---------- Node inspection ---------- */","","/**"," * Returns the node type as an integer constant."," * Returns -1 if the document or node is invalid."," */","int32_t xmloxide_node_type(const xmloxide_document *doc, uint32_t node);","","/**"," * Returns the name of a node (element local name or PI target)."," * Returns NULL for node types that have no name."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_node_name(const xmloxide_document *doc, uint32_t node);","","/**"," * Returns the direct text content of a text, comment, CDATA, or PI node."," * Returns NULL for element and document nodes."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_node_text(const xmloxide_document *doc, uint32_t node);","","/**"," * Returns the concatenated text content of a node and all descendants."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_node_text_content(const xmloxide_document *doc, uint32_t node);","","/**"," * Returns the namespace URI of an element node, or NULL if none."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_node_namespace(const xmloxide_document *doc, uint32_t node);","","/**"," * Returns the namespace prefix of an element node (e.g., \"svg\" for \u003csvg:rect\u003e)."," * Returns NULL if no prefix. The returned string must be freed with"," * xmloxide_free_string()."," */","char *xmloxide_node_prefix(const xmloxide_document *doc, uint32_t node);","","/**"," * Returns the value of an attribute by name on an element node."," * Returns NULL if the attribute is not present."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_node_attribute(const xmloxide_document *doc, uint32_t node,","                              const char *name);","","/**"," * Returns the number of attributes on an element node."," * Returns 0 for non-element nodes."," */","size_t xmloxide_node_attribute_count(const xmloxide_document *doc, uint32_t node);","","/**"," * Returns the name of the attribute at the given index."," * Returns NULL if the index is out of range."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_node_attribute_name_at(const xmloxide_document *doc,","                                      uint32_t node, size_t index);","","/**"," * Returns the value of the attribute at the given index."," * Returns NULL if the index is out of range."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_node_attribute_value_at(const xmloxide_document *doc,","                                       uint32_t node, size_t index);","","/* ---------- Tree mutation ---------- */","","/**"," * Creates a new element node and returns its id (0 on failure)."," * The node is detached — use xmloxide_append_child() to add it to the tree."," */","uint32_t xmloxide_create_element(xmloxide_document *doc, const char *name);","","/**"," * Creates a new text node and returns its id (0 on failure)."," */","uint32_t xmloxide_create_text(xmloxide_document *doc, const char *content);","","/**"," * Creates a new comment node and returns its id (0 on failure)."," */","uint32_t xmloxide_create_comment(xmloxide_document *doc, const char *content);","","/**"," * Appends a child node to a parent. Returns 1 on success, 0 on failure."," */","int32_t xmloxide_append_child(xmloxide_document *doc, uint32_t parent,","                              uint32_t child);","","/**"," * Removes a node from the tree. Returns 1 on success, 0 on failure."," * The node remains in the arena but is detached from the tree."," */","int32_t xmloxide_remove_node(xmloxide_document *doc, uint32_t node);","","/**"," * Clones a node (and optionally its descendants). Returns the new node id."," * Set deep=1 for a deep clone, deep=0 for a shallow clone."," * Returns 0 on failure."," */","uint32_t xmloxide_clone_node(xmloxide_document *doc, uint32_t node, int32_t deep);","","/**"," * Sets an attribute on an element node. Returns 1 on success, 0 on failure."," * If the attribute already exists, its value is updated."," */","int32_t xmloxide_set_attribute(xmloxide_document *doc, uint32_t node,","                               const char *name, const char *value);","","/**"," * Sets the text content of a node. Returns 1 on success, 0 on failure."," * For text/CDATA/comment nodes, updates content directly."," * For element nodes, removes all children and replaces with a text node."," */","int32_t xmloxide_set_text_content(xmloxide_document *doc, uint32_t node,","                                  const char *content);","","/**"," * Inserts a node before a reference sibling. Returns 1 on success, 0 on failure."," */","int32_t xmloxide_insert_before(xmloxide_document *doc, uint32_t reference,","                               uint32_t new_child);","","/**"," * Inserts a node after a reference sibling. Returns 1 on success, 0 on failure."," */","int32_t xmloxide_insert_after(xmloxide_document *doc, uint32_t reference,","                              uint32_t new_child);","","/**"," * Replaces a node in the tree with another. Returns 1 on success, 0 on failure."," * The old node is detached and the new node takes its position."," */","int32_t xmloxide_replace_node(xmloxide_document *doc, uint32_t old_node,","                              uint32_t new_node);","","/**"," * Removes an attribute by name from an element node."," * Returns 1 if removed, 0 if not found or not an element."," */","int32_t xmloxide_remove_attribute(xmloxide_document *doc, uint32_t node,","                                  const char *name);","","/**"," * Creates a new processing instruction node and returns its id (0 on failure)."," * data may be NULL."," */","uint32_t xmloxide_create_pi(xmloxide_document *doc, const char *target,","                            const char *data);","","/**"," * Renames an element node. Returns 1 on success, 0 on failure."," */","int32_t xmloxide_rename_element(xmloxide_document *doc, uint32_t node,","                                const char *new_name);","","/**"," * Returns the element with the given ID attribute, or 0 if not found."," * The document's id_map must be populated first (typically via DTD validation)."," */","uint32_t xmloxide_element_by_id(const xmloxide_document *doc, const char *id);","","/* ---------- Serialization ---------- */","","/**"," * Serializes a document to an XML string."," * Returns a caller-owned C string that must be freed with"," * xmloxide_free_string(). Returns NULL on failure."," */","char *xmloxide_serialize(const xmloxide_document *doc);","","/**"," * Serializes a document to a pretty-printed XML string with two-space indent."," * Returns a caller-owned C string that must be freed with"," * xmloxide_free_string(). Returns NULL on failure."," */","char *xmloxide_serialize_pretty(const xmloxide_document *doc);","","/**"," * Serializes a document to a pretty-printed XML string with a custom indent."," * indent_str is the string used for each level (e.g., \"\\t\" or \"    \")."," * Returns a caller-owned C string that must be freed with"," * xmloxide_free_string(). Returns NULL on failure."," */","char *xmloxide_serialize_pretty_custom(const xmloxide_document *doc,","                                       const char *indent_str);","","/**"," * Serializes a document to an HTML string."," * Returns a caller-owned C string that must be freed with"," * xmloxide_free_string(). Returns NULL on failure."," */","char *xmloxide_serialize_html(const xmloxide_document *doc);","","/**"," * Serializes a document to an HTML5 string (WHATWG algorithm)."," * Returns a caller-owned C string that must be freed with"," * xmloxide_free_string(). Returns NULL on failure."," */","char *xmloxide_serialize_html5(const xmloxide_document *doc);","","/* ---------- Validation ---------- */","","/**"," * Parses a DTD from a null-terminated UTF-8 string."," * Returns a DTD pointer on success, or NULL on failure."," * The returned DTD must be freed with xmloxide_free_dtd()."," */","xmloxide_dtd *xmloxide_parse_dtd(const char *input);","","/** Frees a DTD. Passing NULL is safe and does nothing. */","void xmloxide_free_dtd(xmloxide_dtd *dtd);","","/**"," * Validates a document against a DTD."," * Note: DTD validation may populate the document's id_map (requires mutable doc)."," * Returns a validation result that must be freed with"," * xmloxide_free_validation_result()."," */","xmloxide_validation_result *xmloxide_validate_dtd(xmloxide_document *doc,","                                                  const xmloxide_dtd *dtd);","","/**"," * Parses a RelaxNG schema from a null-terminated UTF-8 XML string."," * Returns a schema pointer on success, or NULL on failure."," * The returned schema must be freed with xmloxide_free_relaxng()."," */","xmloxide_relaxng_schema *xmloxide_parse_relaxng(const char *input);","","/** Frees a RelaxNG schema. Passing NULL is safe and does nothing. */","void xmloxide_free_relaxng(xmloxide_relaxng_schema *schema);","","/**"," * Validates a document against a RelaxNG schema."," * Returns a validation result that must be freed with"," * xmloxide_free_validation_result()."," */","xmloxide_validation_result *xmloxide_validate_relaxng(const xmloxide_document *doc,","                                                      const xmloxide_relaxng_schema *schema);","","/**"," * Parses an XSD schema from a null-terminated UTF-8 XML string."," * Returns a schema pointer on success, or NULL on failure."," * The returned schema must be freed with xmloxide_free_xsd()."," */","xmloxide_xsd_schema *xmloxide_parse_xsd(const char *input);","","/** Frees an XSD schema. Passing NULL is safe and does nothing. */","void xmloxide_free_xsd(xmloxide_xsd_schema *schema);","","/**"," * Validates a document against an XSD schema."," * Returns a validation result that must be freed with"," * xmloxide_free_validation_result()."," */","xmloxide_validation_result *xmloxide_validate_xsd(const xmloxide_document *doc,","                                                  const xmloxide_xsd_schema *schema);","","/**"," * Parses an ISO Schematron schema from a null-terminated UTF-8 XML string."," * Returns a schema pointer on success, or NULL on failure."," * The returned schema must be freed with xmloxide_free_schematron()."," */","xmloxide_schematron_schema *xmloxide_parse_schematron(const char *input);","","/** Frees a Schematron schema. Passing NULL is safe and does nothing. */","void xmloxide_free_schematron(xmloxide_schematron_schema *schema);","","/**"," * Validates a document against an ISO Schematron schema."," * Returns a validation result that must be freed with"," * xmloxide_free_validation_result()."," */","xmloxide_validation_result *xmloxide_validate_schematron(","    const xmloxide_document *doc,","    const xmloxide_schematron_schema *schema);","","/**"," * Validates a document against a Schematron schema using a specific phase."," * phase is the name of the phase to activate (NULL for all patterns)."," * Returns a validation result that must be freed with"," * xmloxide_free_validation_result()."," */","xmloxide_validation_result *xmloxide_validate_schematron_with_phase(","    const xmloxide_document *doc,","    const xmloxide_schematron_schema *schema,","    const char *phase);","","/**"," * Returns whether the validation result indicates a valid document."," * Returns 1 for valid, 0 for invalid or NULL."," */","int32_t xmloxide_validation_is_valid(const xmloxide_validation_result *result);","","/**"," * Returns the number of validation errors."," * Returns 0 if the result is NULL."," */","size_t xmloxide_validation_error_count(const xmloxide_validation_result *result);","","/**"," * Returns the error message at the given index."," * Returns NULL if the index is out of range."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_validation_error_message(const xmloxide_validation_result *result,","                                        size_t index);","","/**"," * Returns the number of validation warnings."," * Returns 0 if the result is NULL."," */","size_t xmloxide_validation_warning_count(const xmloxide_validation_result *result);","","/**"," * Returns the warning message at the given index."," * Returns NULL if the index is out of range."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_validation_warning_message(const xmloxide_validation_result *result,","                                          size_t index);","","/**"," * Frees a validation result. Passing NULL is safe and does nothing."," */","void xmloxide_free_validation_result(xmloxide_validation_result *result);","","/* ---------- XPath ---------- */","","/**"," * Evaluates an XPath expression against a context node."," *"," * Returns a pointer to the result on success, or NULL on failure."," * Use context_node=0 to use the document root as context."," * The returned result must be freed with xmloxide_xpath_free_result()."," */","xmloxide_xpath_value *xmloxide_xpath_eval(const xmloxide_document *doc,","                                          uint32_t context_node,","                                          const char *expr);","","/**"," * Returns the type of an XPath result."," * Returns one of the XMLOXIDE_XPATH_* constants, or -1 on error."," */","int32_t xmloxide_xpath_result_type(const xmloxide_xpath_value *result);","","/**"," * Returns the boolean value of an XPath result."," * Converts non-boolean results using XPath type coercion rules."," */","int32_t xmloxide_xpath_result_boolean(const xmloxide_xpath_value *result);","","/**"," * Returns the numeric value of an XPath result."," * Converts non-number results using XPath type coercion rules."," */","double xmloxide_xpath_result_number(const xmloxide_xpath_value *result);","","/**"," * Returns the string value of an XPath result."," * Converts non-string results using XPath type coercion rules."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_xpath_result_string(const xmloxide_xpath_value *result);","","/** Returns the number of nodes in an XPath nodeset result. */","size_t xmloxide_xpath_nodeset_count(const xmloxide_xpath_value *result);","","/**"," * Returns the node id at the given index in an XPath nodeset result."," * For attribute nodes, returns the id of the owner element (use the"," * item_is_attribute / item_attr_name / item_attr_value accessors to"," * inspect the attribute itself)."," * Returns 0 if the result is not a nodeset or the index is out of bounds."," */","uint32_t xmloxide_xpath_nodeset_item(const xmloxide_xpath_value *result,","                                     size_t index);","","/**"," * Returns 1 if the nodeset entry at the given index is an attribute node,"," * 0 otherwise (including out-of-bounds and non-nodeset results)."," */","int xmloxide_xpath_nodeset_item_is_attribute(const xmloxide_xpath_value *result,","                                             size_t index);","","/**"," * Returns the qualified name (prefix:local) of the attribute at the given"," * index in a nodeset result, or NULL if the entry is not an attribute."," * `doc` must be the document the result was evaluated against."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_xpath_nodeset_item_attr_name(const xmloxide_document *doc,","                                            const xmloxide_xpath_value *result,","                                            size_t index);","","/**"," * Returns the value of the attribute at the given index in a nodeset"," * result, or NULL if the entry is not an attribute."," * `doc` must be the document the result was evaluated against."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_xpath_nodeset_item_attr_value(const xmloxide_document *doc,","                                             const xmloxide_xpath_value *result,","                                             size_t index);","","/**"," * Frees an XPath result previously returned by xmloxide_xpath_eval()."," * Passing NULL is safe and does nothing."," */","void xmloxide_xpath_free_result(xmloxide_xpath_value *result);","","/* ---------- Canonical XML (C14N) ---------- */","","/**"," * Canonicalizes a document using inclusive C14N with comments."," * Returns a caller-owned C string that must be freed with"," * xmloxide_free_string(). Returns NULL on failure."," */","char *xmloxide_canonicalize(const xmloxide_document *doc);","","/**"," * Canonicalizes a document with options."," * with_comments: 1 to include comments, 0 to strip."," * exclusive: 1 for exclusive C14N, 0 for inclusive."," */","char *xmloxide_canonicalize_opts(const xmloxide_document *doc,","                                 int32_t with_comments, int32_t exclusive);","","/**"," * Canonicalizes a subtree rooted at the given node."," */","char *xmloxide_canonicalize_subtree(const xmloxide_document *doc,","                                    uint32_t node, int32_t with_comments,","                                    int32_t exclusive);","","/* ---------- XInclude ---------- */","","/**"," * Processes XInclude elements in a document using file-based resolution."," * Returns the number of successful inclusions, or -1 on failure."," * Errors are stored in the thread-local error (retrievable via xmloxide_last_error)."," */","int32_t xmloxide_process_xincludes(xmloxide_document *doc);","","/* ---------- XML Catalogs ---------- */","","/**"," * Parses an XML Catalog from a null-terminated UTF-8 XML string."," * Returns a catalog pointer on success, or NULL on failure."," * The returned catalog must be freed with xmloxide_free_catalog()."," */","xmloxide_catalog *xmloxide_parse_catalog(const char *input);","","/** Frees a catalog. Passing NULL is safe and does nothing. */","void xmloxide_free_catalog(xmloxide_catalog *catalog);","","/**"," * Resolves a system identifier using the catalog."," * Returns a caller-owned URI string, or NULL if not found."," */","char *xmloxide_catalog_resolve_system(const xmloxide_catalog *catalog,","                                      const char *system_id);","","/**"," * Resolves a public identifier using the catalog."," * Returns a caller-owned URI string, or NULL if not found."," */","char *xmloxide_catalog_resolve_public(const xmloxide_catalog *catalog,","                                      const char *public_id);","","/**"," * Resolves a URI using the catalog."," * Returns a caller-owned URI string, or NULL if not found."," */","char *xmloxide_catalog_resolve_uri(const xmloxide_catalog *catalog,","                                   const char *uri);","","/* ---------- Push parser (incremental) ---------- */","","/**"," * Creates a new push parser with default options."," * The returned parser must be consumed via xmloxide_push_parser_finish()"," * or freed with xmloxide_push_parser_free()."," */","xmloxide_push_parser *xmloxide_push_parser_new(void);","","/**"," * Feeds a chunk of raw bytes into the push parser."," * Data can be split at arbitrary byte boundaries."," */","void xmloxide_push_parser_push(xmloxide_push_parser *parser,","                                const uint8_t *data, size_t len);","","/**"," * Finalizes parsing and returns the constructed document."," *"," * This CONSUMES the parser — the parser pointer becomes invalid after"," * this call. Do NOT call xmloxide_push_parser_free() after finish."," *"," * Returns a document pointer on success, or NULL on failure."," * The returned document must be freed with xmloxide_free_doc()."," */","xmloxide_document *xmloxide_push_parser_finish(xmloxide_push_parser *parser);","","/**"," * Returns the number of bytes currently buffered in the push parser."," */","size_t xmloxide_push_parser_buffered_bytes(const xmloxide_push_parser *parser);","","/**"," * Resets the push parser, discarding all buffered data."," * The parser can then be reused for a new document."," */","void xmloxide_push_parser_reset(xmloxide_push_parser *parser);","","/**"," * Frees a push parser without finishing it."," * Use this to discard a parser whose data you no longer need."," * Passing NULL is safe. Do NOT call after finish()."," */","void xmloxide_push_parser_free(xmloxide_push_parser *parser);","","/* ---------- XmlReader (pull-based streaming) ---------- */","","/*"," * Reader node type constants (matching libxml2's xmlReaderTypes)."," */","#define XMLOXIDE_READER_NONE             0","#define XMLOXIDE_READER_ELEMENT          1","#define XMLOXIDE_READER_ATTRIBUTE        2","#define XMLOXIDE_READER_TEXT             3","#define XMLOXIDE_READER_CDATA            4","#define XMLOXIDE_READER_PI               7","#define XMLOXIDE_READER_COMMENT          8","#define XMLOXIDE_READER_DOCUMENT_TYPE   10","#define XMLOXIDE_READER_WHITESPACE      13","#define XMLOXIDE_READER_END_ELEMENT     15","#define XMLOXIDE_READER_XML_DECLARATION 17","#define XMLOXIDE_READER_END_DOCUMENT    (-1)","","/**"," * Creates a new XmlReader from a null-terminated UTF-8 string."," * Returns an opaque reader pointer, or NULL on failure."," * The reader must be freed with xmloxide_reader_free()."," */","xmloxide_reader *xmloxide_reader_new(const char *input);","","/**"," * Advances the reader to the next node."," * Returns 1 if a node was read, 0 at end of document, -1 on error."," */","int32_t xmloxide_reader_read(xmloxide_reader *reader);","","/**"," * Returns the node type of the current node."," * Returns one of the XMLOXIDE_READER_* constants."," */","int32_t xmloxide_reader_node_type(const xmloxide_reader *reader);","","/**"," * Returns the qualified name of the current node, or NULL."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_reader_name(const xmloxide_reader *reader);","","/**"," * Returns the local name of the current node (without prefix), or NULL."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_reader_local_name(const xmloxide_reader *reader);","","/**"," * Returns the namespace prefix of the current node, or NULL."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_reader_prefix(const xmloxide_reader *reader);","","/**"," * Returns the namespace URI of the current node, or NULL."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_reader_namespace_uri(const xmloxide_reader *reader);","","/**"," * Returns the value of the current node (text, comment, attribute value),"," * or NULL for elements and end elements."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_reader_value(const xmloxide_reader *reader);","","/** Returns the depth of the current node in the document tree. */","uint32_t xmloxide_reader_depth(const xmloxide_reader *reader);","","/**"," * Returns 1 if the current element is self-closing (empty), 0 otherwise."," */","int32_t xmloxide_reader_is_empty_element(const xmloxide_reader *reader);","","/**"," * Returns 1 if the current node has a value, 0 otherwise."," */","int32_t xmloxide_reader_has_value(const xmloxide_reader *reader);","","/** Returns the number of attributes on the current element. */","size_t xmloxide_reader_attribute_count(const xmloxide_reader *reader);","","/**"," * Returns the value of an attribute by name on the current element, or NULL."," * The returned string must be freed with xmloxide_free_string()."," */","char *xmloxide_reader_get_attribute(const xmloxide_reader *reader,","                                     const char *name);","","/**"," * Moves the reader to the first attribute of the current element."," * Returns 1 if successful, 0 if no attributes or not on an element."," */","int32_t xmloxide_reader_move_to_first_attribute(xmloxide_reader *reader);","","/**"," * Moves the reader to the next attribute."," * Returns 1 if successful, 0 if no more attributes."," */","int32_t xmloxide_reader_move_to_next_attribute(xmloxide_reader *reader);","","/**"," * Moves the reader back to the element from an attribute."," * Returns 1 if moved back, 0 if not on an attribute."," */","int32_t xmloxide_reader_move_to_element(xmloxide_reader *reader);","","/**"," * Frees a reader. Passing NULL is safe and does nothing."," */","void xmloxide_reader_free(xmloxide_reader *reader);","","/* ---------- SAX2 streaming parser ---------- */","","/**"," * C function pointer type for start_element events."," *"," * Parameters:"," *   local_name  - element local name (never NULL)"," *   prefix      - namespace prefix (may be NULL)"," *   namespace   - namespace URI (may be NULL)"," *   attr_names  - array of attribute name strings"," *   attr_values - array of attribute value strings"," *   attr_count  - number of attributes"," *   user_data   - opaque pointer passed through from the handler"," */","typedef void (*xmloxide_sax_start_element_cb)(","    const char *local_name, const char *prefix, const char *namespace_uri,","    const char *const *attr_names, const char *const *attr_values,","    size_t attr_count, void *user_data);","","/**"," * C function pointer type for end_element events."," *"," * Parameters:"," *   local_name  - element local name (never NULL)"," *   prefix      - namespace prefix (may be NULL)"," *   namespace   - namespace URI (may be NULL)"," *   user_data   - opaque pointer passed through from the handler"," */","typedef void (*xmloxide_sax_end_element_cb)(const char *local_name,","                                             const char *prefix,","                                             const char *namespace_uri,","                                             void *user_data);","","/**"," * C function pointer type for characters, CDATA, and comment events."," *"," * Parameters:"," *   content   - text content (never NULL)"," *   user_data - opaque pointer passed through from the handler"," */","typedef void (*xmloxide_sax_text_cb)(const char *content, void *user_data);","","/**"," * C function pointer type for processing instruction events."," *"," * Parameters:"," *   target    - PI target (never NULL)"," *   data      - PI data (may be NULL)"," *   user_data - opaque pointer passed through from the handler"," */","typedef void (*xmloxide_sax_pi_cb)(const char *target, const char *data,","                                    void *user_data);","","/**"," * SAX handler with C function pointer callbacks."," *"," * Set any callback to NULL to ignore that event type."," * user_data is passed through to every callback."," */","typedef struct {","    xmloxide_sax_start_element_cb start_element;","    xmloxide_sax_end_element_cb end_element;","    xmloxide_sax_text_cb characters;","    xmloxide_sax_text_cb cdata;","    xmloxide_sax_text_cb comment;","    xmloxide_sax_pi_cb processing_instruction;","    void *user_data;","} xmloxide_sax_handler;","","/**"," * Parses XML with SAX streaming, dispatching events to C function pointers."," *"," * xml must be a valid null-terminated UTF-8 C string."," * handler must point to a valid xmloxide_sax_handler struct."," *"," * Returns 0 on success, -1 on error. Use xmloxide_last_error() for details."," */","int32_t xmloxide_sax_parse(const char *xml,","                            const xmloxide_sax_handler *handler);","","/* ---------- CSS selectors ---------- */","","/**"," * Evaluates a CSS selector against a subtree and returns matching node IDs."," *"," * scope is the node to search within (typically the root element)."," * selector is a null-terminated CSS selector string (e.g., \"div.class \u003e p\")."," *"," * On success, sets *out_count to the number of matching nodes and returns"," * a heap-allocated array of node IDs. The caller must free the array with"," * xmloxide_free_nodeid_array(ptr, count)."," *"," * Returns NULL on failure (invalid selector or null arguments)."," */","uint32_t *xmloxide_css_select(const xmloxide_document *doc, uint32_t scope,","                               const char *selector, size_t *out_count);","","/**"," * Frees a node ID array returned by xmloxide_css_select()."," * Passing NULL is safe and does nothing."," */","void xmloxide_free_nodeid_array(uint32_t *ptr, size_t count);","","/**"," * Returns the first node matching a CSS selector, or 0 if none found."," * This is a convenience wrapper around xmloxide_css_select()."," */","uint32_t xmloxide_css_select_first(const xmloxide_document *doc, uint32_t scope,","                                    const char *selector);","","/* ---------- String lifecycle ---------- */","","/**"," * Frees a string previously returned by an xmloxide FFI function."," * Passing NULL is safe and does nothing."," */","void xmloxide_free_string(char *ptr);","","#ifdef __cplusplus","}","#endif","","#endif /* XMLOXIDE_H */"],"stylingDirectives":[[[0,2,"pl-c"]],[[0,34,"pl-c"]],[[0,2,"pl-c"]],[[0,57,"pl-c"]],[[0,2,"pl-c"]],[[0,63,"pl-c"]],[[0,69,"pl-c"]],[[0,46,"pl-c"]],[[0,2,"pl-c"]],[[0,69,"pl-c"]],[[0,66,"pl-c"]],[[0,67,"pl-c"]],[[0,2,"pl-c"]],[[0,61,"pl-c"]],[[0,69,"pl-c"]],[[0,73,"pl-c"]],[[0,69,"pl-c"]],[[0,66,"pl-c"]],[[0,28,"pl-c"]],[[0,3,"pl-c"]],[],[[0,7,"pl-k"],[8,18,"pl-c1"]],[[0,7,"pl-k"],[8,18,"pl-c1"]],[],[[0,8,"pl-k"],[9,19,"pl-s"]],[[0,8,"pl-k"],[9,19,"pl-s"]],[],[[0,6,"pl-k"],[7,18,"pl-s1"]],[[0,6,"pl-k"],[7,10,"pl-s"]],[[0,6,"pl-k"]],[],[[0,40,"pl-c"]],[],[[0,34,"pl-c"]],[[0,7,"pl-k"],[8,14,"pl-k"],[15,32,"pl-smi"],[33,50,"pl-smi"]],[],[[0,34,"pl-c"]],[[0,7,"pl-k"],[8,14,"pl-k"],[15,35,"pl-smi"],[36,56,"pl-smi"]],[],[[0,25,"pl-c"]],[[0,7,"pl-k"],[8,14,"pl-k"],[15,27,"pl-smi"],[28,40,"pl-smi"]],[],[[0,36,"pl-c"]],[[0,7,"pl-k"],[8,14,"pl-k"],[15,38,"pl-smi"],[39,62,"pl-smi"]],[],[[0,32,"pl-c"]],[[0,7,"pl-k"],[8,14,"pl-k"],[15,34,"pl-smi"],[35,54,"pl-smi"]],[],[[0,39,"pl-c"]],[[0,7,"pl-k"],[8,14,"pl-k"],[15,41,"pl-smi"],[42,68,"pl-smi"]],[],[[0,39,"pl-c"]],[[0,7,"pl-k"],[8,14,"pl-k"],[15,41,"pl-smi"],[42,68,"pl-smi"]],[],[[0,33,"pl-c"]],[[0,7,"pl-k"],[8,14,"pl-k"],[15,31,"pl-smi"],[32,48,"pl-smi"]],[],[[0,33,"pl-c"]],[[0,7,"pl-k"],[8,14,"pl-k"],[15,35,"pl-smi"],[36,56,"pl-smi"]],[],[[0,32,"pl-c"]],[[0,7,"pl-k"],[8,14,"pl-k"],[15,30,"pl-smi"],[31,46,"pl-smi"]],[],[[0,47,"pl-c"]],[],[[0,7,"pl-k"],[8,29,"pl-c1"]],[[0,7,"pl-k"],[8,26,"pl-c1"]],[[0,7,"pl-k"],[8,27,"pl-c1"]],[[0,7,"pl-k"],[8,32,"pl-c1"]],[[0,7,"pl-k"],[8,24,"pl-c1"]],[[0,7,"pl-k"],[8,29,"pl-c1"]],[[0,7,"pl-k"],[8,30,"pl-c1"]],[[0,7,"pl-k"],[8,35,"pl-c1"]],[],[[0,55,"pl-c"]],[],[[0,7,"pl-k"],[8,30,"pl-c1"]],[[0,7,"pl-k"],[8,30,"pl-c1"]],[[0,7,"pl-k"],[8,29,"pl-c1"]],[[0,7,"pl-k"],[8,29,"pl-c1"]],[],[[0,52,"pl-c"]],[],[[0,7,"pl-k"],[8,28,"pl-c1"]],[[0,7,"pl-k"],[8,26,"pl-c1"]],[[0,7,"pl-k"],[8,26,"pl-c1"]],[],[[0,42,"pl-c"]],[],[[0,3,"pl-c"]],[[0,64,"pl-c"]],[[0,2,"pl-c"]],[[0,69,"pl-c"]],[[0,67,"pl-c"]],[[0,3,"pl-c"]],[[0,5,"pl-k"],[6,10,"pl-smi"],[11,12,"pl-c1"],[12,31,"pl-en"],[32,36,"pl-smi"]],[],[[0,3,"pl-c"]],[[0,74,"pl-c"]],[[0,3,"pl-c"]],[[0,8,"pl-smi"],[9,33,"pl-en"],[34,38,"pl-smi"]],[],[[0,3,"pl-c"]],[[0,76,"pl-c"]],[[0,3,"pl-c"]],[[0,8,"pl-smi"],[9,35,"pl-en"],[36,40,"pl-smi"]],[],[[0,3,"pl-c"]],[[0,42,"pl-c"]],[[0,60,"pl-c"]],[[0,62,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,36,"pl-en"],[37,41,"pl-smi"]],[],[[0,46,"pl-c"]],[],[[0,3,"pl-c"]],[[0,61,"pl-c"]],[[0,2,"pl-c"]],[[0,61,"pl-c"]],[[0,64,"pl-c"]],[[0,3,"pl-c"]],[[0,17,"pl-smi"],[18,19,"pl-c1"],[19,37,"pl-en"],[38,43,"pl-k"],[44,48,"pl-smi"],[49,50,"pl-c1"],[50,55,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,62,"pl-c"]],[[0,2,"pl-c"]],[[0,61,"pl-c"]],[[0,64,"pl-c"]],[[0,3,"pl-c"]],[[0,17,"pl-smi"],[18,19,"pl-c1"],[19,39,"pl-en"],[40,45,"pl-k"],[46,53,"pl-smi"],[54,55,"pl-c1"],[55,59,"pl-s1"],[61,67,"pl-smi"],[68,71,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,41,"pl-c"]],[[0,2,"pl-c"]],[[0,61,"pl-c"]],[[0,64,"pl-c"]],[[0,3,"pl-c"]],[[0,17,"pl-smi"],[18,19,"pl-c1"],[19,38,"pl-en"],[39,44,"pl-k"],[45,49,"pl-smi"],[50,51,"pl-c1"],[51,56,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,61,"pl-c"]],[[0,2,"pl-c"]],[[0,61,"pl-c"]],[[0,64,"pl-c"]],[[0,3,"pl-c"]],[[0,17,"pl-smi"],[18,19,"pl-c1"],[19,39,"pl-en"],[40,45,"pl-k"],[46,50,"pl-smi"],[51,52,"pl-c1"],[52,57,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,77,"pl-c"]],[[0,2,"pl-c"]],[[0,81,"pl-c"]],[[0,61,"pl-c"]],[[0,64,"pl-c"]],[[0,3,"pl-c"]],[[0,17,"pl-smi"],[18,19,"pl-c1"],[19,48,"pl-en"],[49,54,"pl-k"],[55,59,"pl-smi"],[60,61,"pl-c1"],[61,66,"pl-s1"]],[[50,55,"pl-k"],[56,60,"pl-smi"],[61,62,"pl-c1"],[62,77,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,45,"pl-c"]],[[0,2,"pl-c"]],[[0,61,"pl-c"]],[[0,64,"pl-c"]],[[0,3,"pl-c"]],[[0,17,"pl-smi"],[18,19,"pl-c1"],[19,38,"pl-en"],[39,44,"pl-k"],[45,49,"pl-smi"],[50,51,"pl-c1"],[51,55,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,60,"pl-c"]],[[0,41,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,22,"pl-en"],[23,40,"pl-smi"],[41,42,"pl-c1"],[42,45,"pl-s1"]],[],[[0,47,"pl-c"]],[],[[0,3,"pl-c"]],[[0,73,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,26,"pl-en"],[27,32,"pl-k"],[33,50,"pl-smi"],[51,52,"pl-c1"],[52,55,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,72,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,27,"pl-en"],[28,33,"pl-k"],[34,51,"pl-smi"],[52,53,"pl-c1"],[53,56,"pl-s1"]],[],[[0,48,"pl-c"]],[],[[0,3,"pl-c"]],[[0,72,"pl-c"]],[[0,63,"pl-c"]],[[0,3,"pl-c"]],[[0,6,"pl-smi"],[7,36,"pl-en"],[37,42,"pl-k"],[43,60,"pl-smi"],[61,62,"pl-c1"],[62,65,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,66,"pl-c"]],[[0,32,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,37,"pl-en"],[38,43,"pl-k"],[44,61,"pl-smi"],[62,63,"pl-c1"],[63,66,"pl-s1"],[68,74,"pl-smi"],[75,80,"pl-s1"]],[],[[0,83,"pl-c"]],[[0,8,"pl-smi"],[9,37,"pl-en"],[38,43,"pl-k"],[44,61,"pl-smi"],[62,63,"pl-c1"],[63,66,"pl-s1"],[68,74,"pl-smi"],[75,80,"pl-s1"]],[],[[0,85,"pl-c"]],[[0,8,"pl-smi"],[9,39,"pl-en"],[40,45,"pl-k"],[46,63,"pl-smi"],[64,65,"pl-c1"],[65,68,"pl-s1"],[70,76,"pl-smi"],[77,82,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,61,"pl-c"]],[[0,75,"pl-c"]],[[0,30,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,40,"pl-en"],[41,46,"pl-k"],[47,64,"pl-smi"],[65,66,"pl-c1"],[66,69,"pl-s1"],[71,77,"pl-smi"],[78,83,"pl-s1"]],[],[[0,43,"pl-c"]],[],[[0,2,"pl-c"]],[[0,61,"pl-c"]],[[0,21,"pl-c"]],[[0,3,"pl-c"]],[],[[0,41,"pl-c"]],[[0,8,"pl-smi"],[9,26,"pl-en"],[27,32,"pl-k"],[33,50,"pl-smi"],[51,52,"pl-c1"],[52,55,"pl-s1"]],[],[[0,62,"pl-c"]],[[0,8,"pl-smi"],[9,34,"pl-en"],[35,40,"pl-k"],[41,58,"pl-smi"],[59,60,"pl-c1"],[60,63,"pl-s1"]],[],[[0,50,"pl-c"]],[[0,8,"pl-smi"],[9,29,"pl-en"],[30,35,"pl-k"],[36,53,"pl-smi"],[54,55,"pl-c1"],[55,58,"pl-s1"],[60,68,"pl-smi"],[69,73,"pl-s1"]],[],[[0,55,"pl-c"]],[[0,8,"pl-smi"],[9,34,"pl-en"],[35,40,"pl-k"],[41,58,"pl-smi"],[59,60,"pl-c1"],[60,63,"pl-s1"],[65,73,"pl-smi"],[74,78,"pl-s1"]],[],[[0,54,"pl-c"]],[[0,8,"pl-smi"],[9,33,"pl-en"],[34,39,"pl-k"],[40,57,"pl-smi"],[58,59,"pl-c1"],[59,62,"pl-s1"],[64,72,"pl-smi"],[73,77,"pl-s1"]],[],[[0,56,"pl-c"]],[[0,8,"pl-smi"],[9,35,"pl-en"],[36,41,"pl-k"],[42,59,"pl-smi"],[60,61,"pl-c1"],[61,64,"pl-s1"],[66,74,"pl-smi"],[75,79,"pl-s1"]],[],[[0,60,"pl-c"]],[[0,8,"pl-smi"],[9,35,"pl-en"],[36,41,"pl-k"],[42,59,"pl-smi"],[60,61,"pl-c1"],[61,64,"pl-s1"],[66,74,"pl-smi"],[75,79,"pl-s1"]],[],[[0,43,"pl-c"]],[],[[0,3,"pl-c"]],[[0,48,"pl-c"]],[[0,49,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,26,"pl-en"],[27,32,"pl-k"],[33,50,"pl-smi"],[51,52,"pl-c1"],[52,55,"pl-s1"],[57,65,"pl-smi"],[66,70,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,64,"pl-c"]],[[0,49,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,24,"pl-en"],[25,30,"pl-k"],[31,48,"pl-smi"],[49,50,"pl-c1"],[50,53,"pl-s1"],[55,63,"pl-smi"],[64,68,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,73,"pl-c"]],[[0,47,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,24,"pl-en"],[25,30,"pl-k"],[31,48,"pl-smi"],[49,50,"pl-c1"],[50,53,"pl-s1"],[55,63,"pl-smi"],[64,68,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,71,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,32,"pl-en"],[33,38,"pl-k"],[39,56,"pl-smi"],[57,58,"pl-c1"],[58,61,"pl-s1"],[63,71,"pl-smi"],[72,76,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,65,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,29,"pl-en"],[30,35,"pl-k"],[36,53,"pl-smi"],[54,55,"pl-c1"],[55,58,"pl-s1"],[60,68,"pl-smi"],[69,73,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,80,"pl-c"]],[[0,68,"pl-c"]],[[0,26,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,26,"pl-en"],[27,32,"pl-k"],[33,50,"pl-smi"],[51,52,"pl-c1"],[52,55,"pl-s1"],[57,65,"pl-smi"],[66,70,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,64,"pl-c"]],[[0,48,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,29,"pl-en"],[30,35,"pl-k"],[36,53,"pl-smi"],[54,55,"pl-c1"],[55,58,"pl-s1"],[60,68,"pl-smi"],[69,73,"pl-s1"]],[[30,35,"pl-k"],[36,40,"pl-smi"],[41,42,"pl-c1"],[42,46,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,55,"pl-c"]],[[0,35,"pl-c"]],[[0,3,"pl-c"]],[[0,6,"pl-smi"],[7,36,"pl-en"],[37,42,"pl-k"],[43,60,"pl-smi"],[61,62,"pl-c1"],[62,65,"pl-s1"],[67,75,"pl-smi"],[76,80,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,56,"pl-c"]],[[0,45,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,37,"pl-en"],[38,43,"pl-k"],[44,61,"pl-smi"],[62,63,"pl-c1"],[63,66,"pl-s1"]],[[38,46,"pl-smi"],[47,51,"pl-s1"],[53,59,"pl-smi"],[60,65,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,57,"pl-c"]],[[0,45,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,38,"pl-en"],[39,44,"pl-k"],[45,62,"pl-smi"],[63,64,"pl-c1"],[64,67,"pl-s1"]],[[39,47,"pl-smi"],[48,52,"pl-s1"],[54,60,"pl-smi"],[61,66,"pl-s1"]],[],[[0,41,"pl-c"]],[],[[0,3,"pl-c"]],[[0,64,"pl-c"]],[[0,76,"pl-c"]],[[0,3,"pl-c"]],[[0,8,"pl-smi"],[9,32,"pl-en"],[33,50,"pl-smi"],[51,52,"pl-c1"],[52,55,"pl-s1"],[57,62,"pl-k"],[63,67,"pl-smi"],[68,69,"pl-c1"],[69,73,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,61,"pl-c"]],[[0,3,"pl-c"]],[[0,8,"pl-smi"],[9,29,"pl-en"],[30,47,"pl-smi"],[48,49,"pl-c1"],[49,52,"pl-s1"],[54,59,"pl-k"],[60,64,"pl-smi"],[65,66,"pl-c1"],[66,73,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,64,"pl-c"]],[[0,3,"pl-c"]],[[0,8,"pl-smi"],[9,32,"pl-en"],[33,50,"pl-smi"],[51,52,"pl-c1"],[52,55,"pl-s1"],[57,62,"pl-k"],[63,67,"pl-smi"],[68,69,"pl-c1"],[69,76,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,72,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,29,"pl-en"],[30,47,"pl-smi"],[48,49,"pl-c1"],[49,52,"pl-s1"],[54,62,"pl-smi"],[63,69,"pl-s1"]],[[30,38,"pl-smi"],[39,44,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,68,"pl-c"]],[[0,63,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,28,"pl-en"],[29,46,"pl-smi"],[47,48,"pl-c1"],[48,51,"pl-s1"],[53,61,"pl-smi"],[62,66,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,75,"pl-c"]],[[0,59,"pl-c"]],[[0,24,"pl-c"]],[[0,3,"pl-c"]],[[0,8,"pl-smi"],[9,28,"pl-en"],[29,46,"pl-smi"],[47,48,"pl-c1"],[48,51,"pl-s1"],[53,61,"pl-smi"],[62,66,"pl-s1"],[68,75,"pl-smi"],[76,80,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,76,"pl-c"]],[[0,57,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,30,"pl-en"],[31,48,"pl-smi"],[49,50,"pl-c1"],[50,53,"pl-s1"],[55,63,"pl-smi"],[64,68,"pl-s1"]],[[31,36,"pl-k"],[37,41,"pl-smi"],[42,43,"pl-c1"],[43,47,"pl-s1"],[49,54,"pl-k"],[55,59,"pl-smi"],[60,61,"pl-c1"],[61,66,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,71,"pl-c"]],[[0,58,"pl-c"]],[[0,73,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,33,"pl-en"],[34,51,"pl-smi"],[52,53,"pl-c1"],[53,56,"pl-s1"],[58,66,"pl-smi"],[67,71,"pl-s1"]],[[34,39,"pl-k"],[40,44,"pl-smi"],[45,46,"pl-c1"],[46,53,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,81,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,30,"pl-en"],[31,48,"pl-smi"],[49,50,"pl-c1"],[50,53,"pl-s1"],[55,63,"pl-smi"],[64,73,"pl-s1"]],[[31,39,"pl-smi"],[40,49,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,80,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,29,"pl-en"],[30,47,"pl-smi"],[48,49,"pl-c1"],[49,52,"pl-s1"],[54,62,"pl-smi"],[63,72,"pl-s1"]],[[30,38,"pl-smi"],[39,48,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,80,"pl-c"]],[[0,64,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,29,"pl-en"],[30,47,"pl-smi"],[48,49,"pl-c1"],[49,52,"pl-s1"],[54,62,"pl-smi"],[63,71,"pl-s1"]],[[30,38,"pl-smi"],[39,47,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,53,"pl-c"]],[[0,58,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,33,"pl-en"],[34,51,"pl-smi"],[52,53,"pl-c1"],[53,56,"pl-s1"],[58,66,"pl-smi"],[67,71,"pl-s1"]],[[34,39,"pl-k"],[40,44,"pl-smi"],[45,46,"pl-c1"],[46,50,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,79,"pl-c"]],[[0,20,"pl-c"]],[[0,3,"pl-c"]],[[0,8,"pl-smi"],[9,27,"pl-en"],[28,45,"pl-smi"],[46,47,"pl-c1"],[47,50,"pl-s1"],[52,57,"pl-k"],[58,62,"pl-smi"],[63,64,"pl-c1"],[64,70,"pl-s1"]],[[28,33,"pl-k"],[34,38,"pl-smi"],[39,40,"pl-c1"],[40,44,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,63,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,31,"pl-en"],[32,49,"pl-smi"],[50,51,"pl-c1"],[51,54,"pl-s1"],[56,64,"pl-smi"],[65,69,"pl-s1"]],[[32,37,"pl-k"],[38,42,"pl-smi"],[43,44,"pl-c1"],[44,52,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,70,"pl-c"]],[[0,80,"pl-c"]],[[0,3,"pl-c"]],[[0,8,"pl-smi"],[9,31,"pl-en"],[32,37,"pl-k"],[38,55,"pl-smi"],[56,57,"pl-c1"],[57,60,"pl-s1"],[62,67,"pl-k"],[68,72,"pl-smi"],[73,74,"pl-c1"],[74,76,"pl-s1"]],[],[[0,41,"pl-c"]],[],[[0,3,"pl-c"]],[[0,42,"pl-c"]],[[0,58,"pl-c"]],[[0,51,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,24,"pl-en"],[25,30,"pl-k"],[31,48,"pl-smi"],[49,50,"pl-c1"],[50,53,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,78,"pl-c"]],[[0,58,"pl-c"]],[[0,51,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,31,"pl-en"],[32,37,"pl-k"],[38,55,"pl-smi"],[56,57,"pl-c1"],[57,60,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,77,"pl-c"]],[[0,71,"pl-c"]],[[0,58,"pl-c"]],[[0,51,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,38,"pl-en"],[39,44,"pl-k"],[45,62,"pl-smi"],[63,64,"pl-c1"],[64,67,"pl-s1"]],[[39,44,"pl-k"],[45,49,"pl-smi"],[50,51,"pl-c1"],[51,61,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,43,"pl-c"]],[[0,58,"pl-c"]],[[0,51,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,29,"pl-en"],[30,35,"pl-k"],[36,53,"pl-smi"],[54,55,"pl-c1"],[55,58,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,63,"pl-c"]],[[0,58,"pl-c"]],[[0,51,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,30,"pl-en"],[31,36,"pl-k"],[37,54,"pl-smi"],[55,56,"pl-c1"],[56,59,"pl-s1"]],[],[[0,38,"pl-c"]],[],[[0,3,"pl-c"]],[[0,52,"pl-c"]],[[0,56,"pl-c"]],[[0,59,"pl-c"]],[[0,3,"pl-c"]],[[0,12,"pl-smi"],[13,14,"pl-c1"],[14,32,"pl-en"],[33,38,"pl-k"],[39,43,"pl-smi"],[44,45,"pl-c1"],[45,50,"pl-s1"]],[],[[0,58,"pl-c"]],[[0,4,"pl-smi"],[5,22,"pl-en"],[23,35,"pl-smi"],[36,37,"pl-c1"],[37,40,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,38,"pl-c"]],[[0,82,"pl-c"]],[[0,54,"pl-c"]],[[0,37,"pl-c"]],[[0,3,"pl-c"]],[[0,26,"pl-smi"],[27,28,"pl-c1"],[28,49,"pl-en"],[50,67,"pl-smi"],[68,69,"pl-c1"],[69,72,"pl-s1"]],[[50,55,"pl-k"],[56,68,"pl-smi"],[69,70,"pl-c1"],[70,73,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,67,"pl-c"]],[[0,59,"pl-c"]],[[0,66,"pl-c"]],[[0,3,"pl-c"]],[[0,23,"pl-smi"],[24,25,"pl-c1"],[25,47,"pl-en"],[48,53,"pl-k"],[54,58,"pl-smi"],[59,60,"pl-c1"],[60,65,"pl-s1"]],[],[[0,69,"pl-c"]],[[0,4,"pl-smi"],[5,26,"pl-en"],[27,50,"pl-smi"],[51,52,"pl-c1"],[52,58,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,49,"pl-c"]],[[0,54,"pl-c"]],[[0,37,"pl-c"]],[[0,3,"pl-c"]],[[0,26,"pl-smi"],[27,28,"pl-c1"],[28,53,"pl-en"],[54,59,"pl-k"],[60,77,"pl-smi"],[78,79,"pl-c1"],[79,82,"pl-s1"]],[[54,59,"pl-k"],[60,83,"pl-smi"],[84,85,"pl-c1"],[85,91,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,64,"pl-c"]],[[0,59,"pl-c"]],[[0,62,"pl-c"]],[[0,3,"pl-c"]],[[0,19,"pl-smi"],[20,21,"pl-c1"],[21,39,"pl-en"],[40,45,"pl-k"],[46,50,"pl-smi"],[51,52,"pl-c1"],[52,57,"pl-s1"]],[],[[0,66,"pl-c"]],[[0,4,"pl-smi"],[5,22,"pl-en"],[23,42,"pl-smi"],[43,44,"pl-c1"],[44,50,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,46,"pl-c"]],[[0,54,"pl-c"]],[[0,37,"pl-c"]],[[0,3,"pl-c"]],[[0,26,"pl-smi"],[27,28,"pl-c1"],[28,49,"pl-en"],[50,55,"pl-k"],[56,73,"pl-smi"],[74,75,"pl-c1"],[75,78,"pl-s1"]],[[50,55,"pl-k"],[56,75,"pl-smi"],[76,77,"pl-c1"],[77,83,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,75,"pl-c"]],[[0,59,"pl-c"]],[[0,69,"pl-c"]],[[0,3,"pl-c"]],[[0,26,"pl-smi"],[27,28,"pl-c1"],[28,53,"pl-en"],[54,59,"pl-k"],[60,64,"pl-smi"],[65,66,"pl-c1"],[66,71,"pl-s1"]],[],[[0,72,"pl-c"]],[[0,4,"pl-smi"],[5,29,"pl-en"],[30,56,"pl-smi"],[57,58,"pl-c1"],[58,64,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,57,"pl-c"]],[[0,54,"pl-c"]],[[0,37,"pl-c"]],[[0,3,"pl-c"]],[[0,26,"pl-smi"],[27,28,"pl-c1"],[28,56,"pl-en"]],[[4,9,"pl-k"],[10,27,"pl-smi"],[28,29,"pl-c1"],[29,32,"pl-s1"]],[[4,9,"pl-k"],[10,36,"pl-smi"],[37,38,"pl-c1"],[38,44,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,75,"pl-c"]],[[0,70,"pl-c"]],[[0,54,"pl-c"]],[[0,37,"pl-c"]],[[0,3,"pl-c"]],[[0,26,"pl-smi"],[27,28,"pl-c1"],[28,67,"pl-en"]],[[4,9,"pl-k"],[10,27,"pl-smi"],[28,29,"pl-c1"],[29,32,"pl-s1"]],[[4,9,"pl-k"],[10,36,"pl-smi"],[37,38,"pl-c1"],[38,44,"pl-s1"]],[[4,9,"pl-k"],[10,14,"pl-smi"],[15,16,"pl-c1"],[16,21,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,68,"pl-c"]],[[0,46,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,36,"pl-en"],[37,42,"pl-k"],[43,69,"pl-smi"],[70,71,"pl-c1"],[71,77,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,43,"pl-c"]],[[0,35,"pl-c"]],[[0,3,"pl-c"]],[[0,6,"pl-smi"],[7,38,"pl-en"],[39,44,"pl-k"],[45,71,"pl-smi"],[72,73,"pl-c1"],[73,79,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,48,"pl-c"]],[[0,45,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,39,"pl-en"],[40,45,"pl-k"],[46,72,"pl-smi"],[73,74,"pl-c1"],[74,80,"pl-s1"]],[[40,46,"pl-smi"],[47,52,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,45,"pl-c"]],[[0,35,"pl-c"]],[[0,3,"pl-c"]],[[0,6,"pl-smi"],[7,40,"pl-en"],[41,46,"pl-k"],[47,73,"pl-smi"],[74,75,"pl-c1"],[75,81,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,50,"pl-c"]],[[0,45,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,41,"pl-en"],[42,47,"pl-k"],[48,74,"pl-smi"],[75,76,"pl-c1"],[76,82,"pl-s1"]],[[42,48,"pl-smi"],[49,54,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,68,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,36,"pl-en"],[37,63,"pl-smi"],[64,65,"pl-c1"],[65,71,"pl-s1"]],[],[[0,33,"pl-c"]],[],[[0,3,"pl-c"]],[[0,56,"pl-c"]],[[0,2,"pl-c"]],[[0,66,"pl-c"]],[[0,58,"pl-c"]],[[0,71,"pl-c"]],[[0,3,"pl-c"]],[[0,20,"pl-smi"],[21,22,"pl-c1"],[22,41,"pl-en"],[42,47,"pl-k"],[48,65,"pl-smi"],[66,67,"pl-c1"],[67,70,"pl-s1"]],[[42,50,"pl-smi"],[51,63,"pl-s1"]],[[42,47,"pl-k"],[48,52,"pl-smi"],[53,54,"pl-c1"],[54,58,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,39,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,34,"pl-en"],[35,40,"pl-k"],[41,61,"pl-smi"],[62,63,"pl-c1"],[63,69,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,48,"pl-c"]],[[0,64,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,37,"pl-en"],[38,43,"pl-k"],[44,64,"pl-smi"],[65,66,"pl-c1"],[66,72,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,48,"pl-c"]],[[0,63,"pl-c"]],[[0,3,"pl-c"]],[[0,6,"pl-smi"],[7,35,"pl-en"],[36,41,"pl-k"],[42,62,"pl-smi"],[63,64,"pl-c1"],[64,70,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,47,"pl-c"]],[[0,63,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,34,"pl-en"],[35,40,"pl-k"],[41,61,"pl-smi"],[62,63,"pl-c1"],[63,69,"pl-s1"]],[],[[0,62,"pl-c"]],[[0,6,"pl-smi"],[7,35,"pl-en"],[36,41,"pl-k"],[42,62,"pl-smi"],[63,64,"pl-c1"],[64,70,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,69,"pl-c"]],[[0,68,"pl-c"]],[[0,68,"pl-c"]],[[0,33,"pl-c"]],[[0,74,"pl-c"]],[[0,3,"pl-c"]],[[0,8,"pl-smi"],[9,36,"pl-en"],[37,42,"pl-k"],[43,63,"pl-smi"],[64,65,"pl-c1"],[65,71,"pl-s1"]],[[37,43,"pl-smi"],[44,49,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,74,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,3,"pl-smi"],[4,44,"pl-en"],[45,50,"pl-k"],[51,71,"pl-smi"],[72,73,"pl-c1"],[73,79,"pl-s1"]],[[45,51,"pl-smi"],[52,57,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,74,"pl-c"]],[[0,71,"pl-c"]],[[0,63,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,43,"pl-en"],[44,49,"pl-k"],[50,67,"pl-smi"],[68,69,"pl-c1"],[69,72,"pl-s1"]],[[44,49,"pl-k"],[50,70,"pl-smi"],[71,72,"pl-c1"],[72,78,"pl-s1"]],[[44,50,"pl-smi"],[51,56,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,69,"pl-c"]],[[0,52,"pl-c"]],[[0,63,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,44,"pl-en"],[45,50,"pl-k"],[51,68,"pl-smi"],[69,70,"pl-c1"],[70,73,"pl-s1"]],[[45,50,"pl-k"],[51,71,"pl-smi"],[72,73,"pl-c1"],[73,79,"pl-s1"]],[[45,51,"pl-smi"],[52,57,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,70,"pl-c"]],[[0,41,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,31,"pl-en"],[32,52,"pl-smi"],[53,54,"pl-c1"],[54,60,"pl-s1"]],[],[[0,48,"pl-c"]],[],[[0,3,"pl-c"]],[[0,63,"pl-c"]],[[0,58,"pl-c"]],[[0,51,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,27,"pl-en"],[28,33,"pl-k"],[34,51,"pl-smi"],[52,53,"pl-c1"],[53,56,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,41,"pl-c"]],[[0,52,"pl-c"]],[[0,52,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,32,"pl-en"],[33,38,"pl-k"],[39,56,"pl-smi"],[57,58,"pl-c1"],[58,61,"pl-s1"]],[[33,40,"pl-smi"],[41,54,"pl-s1"],[56,63,"pl-smi"],[64,73,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,52,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,35,"pl-en"],[36,41,"pl-k"],[42,59,"pl-smi"],[60,61,"pl-c1"],[61,64,"pl-s1"]],[[36,44,"pl-smi"],[45,49,"pl-s1"],[51,58,"pl-smi"],[59,72,"pl-s1"]],[[36,43,"pl-smi"],[44,53,"pl-s1"]],[],[[0,36,"pl-c"]],[],[[0,3,"pl-c"]],[[0,73,"pl-c"]],[[0,65,"pl-c"]],[[0,85,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,34,"pl-en"],[35,52,"pl-smi"],[53,54,"pl-c1"],[54,57,"pl-s1"]],[],[[0,40,"pl-c"]],[],[[0,3,"pl-c"]],[[0,65,"pl-c"]],[[0,60,"pl-c"]],[[0,67,"pl-c"]],[[0,3,"pl-c"]],[[0,16,"pl-smi"],[17,18,"pl-c1"],[18,40,"pl-en"],[41,46,"pl-k"],[47,51,"pl-smi"],[52,53,"pl-c1"],[53,58,"pl-s1"]],[],[[0,62,"pl-c"]],[[0,4,"pl-smi"],[5,26,"pl-en"],[27,43,"pl-smi"],[44,45,"pl-c1"],[45,52,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,50,"pl-c"]],[[0,59,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,37,"pl-en"],[38,43,"pl-k"],[44,60,"pl-smi"],[61,62,"pl-c1"],[62,69,"pl-s1"]],[[38,43,"pl-k"],[44,48,"pl-smi"],[49,50,"pl-c1"],[50,59,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,50,"pl-c"]],[[0,59,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,37,"pl-en"],[38,43,"pl-k"],[44,60,"pl-smi"],[61,62,"pl-c1"],[62,69,"pl-s1"]],[[38,43,"pl-k"],[44,48,"pl-smi"],[49,50,"pl-c1"],[50,59,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,36,"pl-c"]],[[0,59,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,34,"pl-en"],[35,40,"pl-k"],[41,57,"pl-smi"],[58,59,"pl-c1"],[59,66,"pl-s1"]],[[35,40,"pl-k"],[41,45,"pl-smi"],[46,47,"pl-c1"],[47,50,"pl-s1"]],[],[[0,53,"pl-c"]],[],[[0,3,"pl-c"]],[[0,50,"pl-c"]],[[0,73,"pl-c"]],[[0,45,"pl-c"]],[[0,3,"pl-c"]],[[0,20,"pl-smi"],[21,22,"pl-c1"],[22,46,"pl-en"],[47,51,"pl-smi"]],[],[[0,3,"pl-c"]],[[0,51,"pl-c"]],[[0,50,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,30,"pl-en"],[31,51,"pl-smi"],[52,53,"pl-c1"],[53,59,"pl-s1"]],[[32,37,"pl-k"],[38,45,"pl-smi"],[46,47,"pl-c1"],[47,51,"pl-s1"],[53,59,"pl-smi"],[60,63,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,58,"pl-c"]],[[0,2,"pl-c"]],[[0,70,"pl-c"]],[[0,67,"pl-c"]],[[0,2,"pl-c"]],[[0,61,"pl-c"]],[[0,64,"pl-c"]],[[0,3,"pl-c"]],[[0,17,"pl-smi"],[18,19,"pl-c1"],[19,46,"pl-en"],[47,67,"pl-smi"],[68,69,"pl-c1"],[69,75,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,69,"pl-c"]],[[0,3,"pl-c"]],[[0,6,"pl-smi"],[7,42,"pl-en"],[43,48,"pl-k"],[49,69,"pl-smi"],[70,71,"pl-c1"],[71,77,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,56,"pl-c"]],[[0,52,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,31,"pl-en"],[32,52,"pl-smi"],[53,54,"pl-c1"],[54,60,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,44,"pl-c"]],[[0,62,"pl-c"]],[[0,52,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,30,"pl-en"],[31,51,"pl-smi"],[52,53,"pl-c1"],[53,59,"pl-s1"]],[],[[0,60,"pl-c"]],[],[[0,2,"pl-c"]],[[0,66,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-k"],[8,28,"pl-c1"]],[[0,7,"pl-k"],[8,31,"pl-c1"]],[[0,7,"pl-k"],[8,33,"pl-c1"]],[[0,7,"pl-k"],[8,28,"pl-c1"]],[[0,7,"pl-k"],[8,29,"pl-c1"]],[[0,7,"pl-k"],[8,26,"pl-c1"]],[[0,7,"pl-k"],[8,31,"pl-c1"]],[[0,7,"pl-k"],[8,37,"pl-c1"]],[[0,7,"pl-k"],[8,34,"pl-c1"]],[[0,7,"pl-k"],[8,35,"pl-c1"]],[[0,7,"pl-k"],[8,39,"pl-c1"]],[[0,7,"pl-k"],[8,36,"pl-c1"]],[],[[0,3,"pl-c"]],[[0,63,"pl-c"]],[[0,56,"pl-c"]],[[0,56,"pl-c"]],[[0,3,"pl-c"]],[[0,15,"pl-smi"],[16,17,"pl-c1"],[17,36,"pl-en"],[37,42,"pl-k"],[43,47,"pl-smi"],[48,49,"pl-c1"],[49,54,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,40,"pl-c"]],[[0,67,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,28,"pl-en"],[29,44,"pl-smi"],[45,46,"pl-c1"],[46,52,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,45,"pl-c"]],[[0,50,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,33,"pl-en"],[34,39,"pl-k"],[40,55,"pl-smi"],[56,57,"pl-c1"],[57,63,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,59,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,26,"pl-en"],[27,32,"pl-k"],[33,48,"pl-smi"],[49,50,"pl-c1"],[50,56,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,72,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,32,"pl-en"],[33,38,"pl-k"],[39,54,"pl-smi"],[55,56,"pl-c1"],[56,62,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,61,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,28,"pl-en"],[29,34,"pl-k"],[35,50,"pl-smi"],[51,52,"pl-c1"],[52,58,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,58,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,35,"pl-en"],[36,41,"pl-k"],[42,57,"pl-smi"],[58,59,"pl-c1"],[59,65,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,74,"pl-c"]],[[0,41,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,27,"pl-en"],[28,33,"pl-k"],[34,49,"pl-smi"],[50,51,"pl-c1"],[51,57,"pl-s1"]],[],[[0,66,"pl-c"]],[[0,8,"pl-smi"],[9,30,"pl-en"],[31,36,"pl-k"],[37,52,"pl-smi"],[53,54,"pl-c1"],[54,60,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,73,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,40,"pl-en"],[41,46,"pl-k"],[47,62,"pl-smi"],[63,64,"pl-c1"],[64,70,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,58,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,33,"pl-en"],[34,39,"pl-k"],[40,55,"pl-smi"],[56,57,"pl-c1"],[57,63,"pl-s1"]],[],[[0,63,"pl-c"]],[[0,6,"pl-smi"],[7,38,"pl-en"],[39,44,"pl-k"],[45,60,"pl-smi"],[61,62,"pl-c1"],[62,68,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,77,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,6,"pl-c1"],[6,35,"pl-en"],[36,41,"pl-k"],[42,57,"pl-smi"],[58,59,"pl-c1"],[59,65,"pl-s1"]],[[37,42,"pl-k"],[43,47,"pl-smi"],[48,49,"pl-c1"],[49,53,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,66,"pl-c"]],[[0,68,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,47,"pl-en"],[48,63,"pl-smi"],[64,65,"pl-c1"],[65,71,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,42,"pl-c"]],[[0,52,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,46,"pl-en"],[47,62,"pl-smi"],[63,64,"pl-c1"],[64,70,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,58,"pl-c"]],[[0,53,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,39,"pl-en"],[40,55,"pl-smi"],[56,57,"pl-c1"],[57,63,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,57,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,25,"pl-en"],[26,41,"pl-smi"],[42,43,"pl-c1"],[43,49,"pl-s1"]],[],[[0,49,"pl-c"]],[],[[0,3,"pl-c"]],[[0,52,"pl-c"]],[[0,2,"pl-c"]],[[0,14,"pl-c"]],[[0,50,"pl-c"]],[[0,49,"pl-c"]],[[0,46,"pl-c"]],[[0,50,"pl-c"]],[[0,51,"pl-c"]],[[0,39,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-k"],[8,12,"pl-smi"],[14,15,"pl-c1"],[15,44,"pl-smi"]],[[4,9,"pl-k"],[10,14,"pl-smi"],[15,16,"pl-c1"],[16,26,"pl-s1"],[28,33,"pl-k"],[34,38,"pl-smi"],[39,40,"pl-c1"],[40,46,"pl-s1"],[48,53,"pl-k"],[54,58,"pl-smi"],[59,60,"pl-c1"],[60,73,"pl-s1"]],[[4,9,"pl-k"],[10,14,"pl-smi"],[15,16,"pl-c1"],[16,21,"pl-k"],[22,23,"pl-c1"],[23,33,"pl-s1"],[35,40,"pl-k"],[41,45,"pl-smi"],[46,47,"pl-c1"],[47,52,"pl-k"],[53,54,"pl-c1"],[54,65,"pl-s1"]],[[4,10,"pl-smi"],[11,21,"pl-s1"],[23,27,"pl-smi"],[28,29,"pl-c1"],[29,38,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,50,"pl-c"]],[[0,2,"pl-c"]],[[0,14,"pl-c"]],[[0,50,"pl-c"]],[[0,49,"pl-c"]],[[0,46,"pl-c"]],[[0,65,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-k"],[8,12,"pl-smi"],[14,15,"pl-c1"],[15,42,"pl-smi"],[44,49,"pl-k"],[50,54,"pl-smi"],[55,56,"pl-c1"],[56,66,"pl-s1"]],[[45,50,"pl-k"],[51,55,"pl-smi"],[56,57,"pl-c1"],[57,63,"pl-s1"]],[[45,50,"pl-k"],[51,55,"pl-smi"],[56,57,"pl-c1"],[57,70,"pl-s1"]],[[45,49,"pl-smi"],[50,51,"pl-c1"],[51,60,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,69,"pl-c"]],[[0,2,"pl-c"]],[[0,14,"pl-c"]],[[0,42,"pl-c"]],[[0,63,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-k"],[8,12,"pl-smi"],[14,15,"pl-c1"],[15,35,"pl-smi"],[37,42,"pl-k"],[43,47,"pl-smi"],[48,49,"pl-c1"],[49,56,"pl-s1"],[58,62,"pl-smi"],[63,64,"pl-c1"],[64,73,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,61,"pl-c"]],[[0,2,"pl-c"]],[[0,14,"pl-c"]],[[0,39,"pl-c"]],[[0,38,"pl-c"]],[[0,63,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-k"],[8,12,"pl-smi"],[14,15,"pl-c1"],[15,33,"pl-smi"],[35,40,"pl-k"],[41,45,"pl-smi"],[46,47,"pl-c1"],[47,53,"pl-s1"],[55,60,"pl-k"],[61,65,"pl-smi"],[66,67,"pl-c1"],[67,71,"pl-s1"]],[[36,40,"pl-smi"],[41,42,"pl-c1"],[42,51,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,49,"pl-c"]],[[0,2,"pl-c"]],[[0,54,"pl-c"]],[[0,49,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-k"],[8,14,"pl-k"]],[[4,33,"pl-smi"],[34,47,"pl-c1"]],[[4,31,"pl-smi"],[32,43,"pl-c1"]],[[4,24,"pl-smi"],[25,35,"pl-c1"]],[[4,24,"pl-smi"],[25,30,"pl-c1"]],[[4,24,"pl-smi"],[25,32,"pl-c1"]],[[4,22,"pl-smi"],[23,45,"pl-c1"]],[[4,8,"pl-smi"],[9,10,"pl-c1"],[10,19,"pl-c1"]],[[2,22,"pl-smi"]],[],[[0,3,"pl-c"]],[[0,76,"pl-c"]],[[0,2,"pl-c"]],[[0,54,"pl-c"]],[[0,61,"pl-c"]],[[0,2,"pl-c"]],[[0,76,"pl-c"]],[[0,3,"pl-c"]],[[0,7,"pl-smi"],[8,26,"pl-en"],[27,32,"pl-k"],[33,37,"pl-smi"],[38,39,"pl-c1"],[39,42,"pl-s1"]],[[28,33,"pl-k"],[34,54,"pl-smi"],[55,56,"pl-c1"],[56,63,"pl-s1"]],[],[[0,41,"pl-c"]],[],[[0,3,"pl-c"]],[[0,76,"pl-c"]],[[0,2,"pl-c"]],[[0,67,"pl-c"]],[[0,77,"pl-c"]],[[0,2,"pl-c"]],[[0,74,"pl-c"]],[[0,74,"pl-c"]],[[0,42,"pl-c"]],[[0,2,"pl-c"]],[[0,64,"pl-c"]],[[0,3,"pl-c"]],[[0,8,"pl-smi"],[9,10,"pl-c1"],[10,29,"pl-en"],[30,35,"pl-k"],[36,53,"pl-smi"],[54,55,"pl-c1"],[55,58,"pl-s1"],[60,68,"pl-smi"],[69,74,"pl-s1"]],[[31,36,"pl-k"],[37,41,"pl-smi"],[42,43,"pl-c1"],[43,51,"pl-s1"],[53,59,"pl-smi"],[60,61,"pl-c1"],[61,70,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,59,"pl-c"]],[[0,41,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,31,"pl-en"],[32,40,"pl-smi"],[41,42,"pl-c1"],[42,45,"pl-s1"],[47,53,"pl-smi"],[54,59,"pl-s1"]],[],[[0,3,"pl-c"]],[[0,70,"pl-c"]],[[0,62,"pl-c"]],[[0,3,"pl-c"]],[[0,8,"pl-smi"],[9,34,"pl-en"],[35,40,"pl-k"],[41,58,"pl-smi"],[59,60,"pl-c1"],[60,63,"pl-s1"],[65,73,"pl-smi"],[74,79,"pl-s1"]],[[36,41,"pl-k"],[42,46,"pl-smi"],[47,48,"pl-c1"],[48,56,"pl-s1"]],[],[[0,44,"pl-c"]],[],[[0,3,"pl-c"]],[[0,66,"pl-c"]],[[0,41,"pl-c"]],[[0,3,"pl-c"]],[[0,4,"pl-smi"],[5,25,"pl-en"],[26,30,"pl-smi"],[31,32,"pl-c1"],[32,35,"pl-s1"]],[],[[0,6,"pl-k"],[7,18,"pl-s1"],[18,18,"pl-k"]],[],[[0,6,"pl-k"]],[],[[0,6,"pl-k"],[7,23,"pl-c"]]],"colorizedLines":null}},"title":"xmloxide/include/xmloxide.h at main · jonwiggins/xmloxide","appPayload":{},"meta":{"title":"xmloxide/include/xmloxide.h at main · jonwiggins/xmloxide"}}</script>
  <div data-target="react-app.reactRoot"><meta name="github-code-view-meta-stats" id="github-code-view-meta-stats" data-hydrostats="publish"/> <!-- --> <a hidden="" id="code-view-repo-link" href="/jonwiggins/xmloxide" data-discover="true"></a> <div class="d-none"></div><div><div style="--spacing:var(--spacing-none)" class="prc-PageLayout-PageLayoutRoot--KH-d" data-component="SplitPageLayout" data-has-sidebar="true"><div class="prc-PageLayout-SidebarWrapper-kLG4B CopilotSidePanelSidebar-module__SidePanel__L3O0C CopilotSidePanelSidebar-module__HiddenSidePanel__TBRGn" style="--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="end" data-sticky="true" data-responsive-variant="fullscreen"><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-SidebarVerticalDivider-0Rl0V" data-component="PageLayout.VerticalDivider" data-variant="line" data-position="end" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="450" aria-valuemax="768" aria-valuenow="544" aria-valuetext="Pane width 544 pixels" tabindex="0"></div></div><div class="prc-PageLayout-Sidebar-iciWg" data-component="SplitPageLayout.Sidebar" data-resizable="true" style="--spacing:var(--spacing-normal);--pane-min-width:450px;--pane-max-width:768px;--pane-width-custom:544px;--pane-width-size:var(--pane-width-custom);--pane-width:544px"><div class="height-full" data-testid="copilot-code-view-side-panel"><div id="copilot-side-panel-content" class="height-full"></div></div></div></div><div class="prc-PageLayout-PageLayoutWrapper-2BhU2" data-width="full"><div class="prc-PageLayout-PageLayoutContent-BneH9"><div id="repos-file-tree-sidebar" class="CodeViewFileTreeLayout-module__sidebar__n_Aau" tabindex="0"><div class="prc-PageLayout-PaneWrapper-pHPop ReposFileTreePane-module__Pane__rBZpI ReposFileTreePane-module__HideTree__AYZnm ReposFileTreePane-module__HidePane__VHAVt" style="--offset-header:0px;--spacing-row:var(--spacing-none);--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="start" data-sticky="true"><div class="prc-PageLayout-HorizontalDivider-JLVqp prc-PageLayout-PaneHorizontalDivider-9tbnE" data-component="PageLayout.HorizontalDivider" data-variant-regular="none" data-variant-narrow="none" data-position="start" style="--spacing-divider:var(--spacing-none);--spacing:var(--spacing-none)"></div><div class="prc-PageLayout-Pane-AyzHK" data-component="SplitPageLayout.Pane" data-resizable="true" style="--spacing:var(--spacing-none);--pane-min-width:256px;--pane-max-width:calc(100vw - var(--pane-max-width-diff));--pane-width-size:var(--pane-width-large);--pane-width:320px"></div><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-PaneVerticalDivider-le57g" data-component="PageLayout.VerticalDivider" data-variant-narrow="none" data-variant-regular="line" data-variant-wide="line" data-position="start" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="256" aria-valuemax="600" aria-valuenow="320" aria-valuetext="Pane width 320 pixels" tabindex="0"></div></div></div></div><div data-component="SplitPageLayout.Content" class="prc-PageLayout-ContentWrapper-gR9eG"><div class="prc-PageLayout-Content-xWL-A" data-width="full" style="--spacing:var(--spacing-none)"><div class="SharedPageLayout-module__content__IwGAp" data-selector="repos-split-pane-content" id="repos-split-pane-content" tabindex="0"> <!-- --> <div class="container CodeViewHeader-module__Box__JkPOb"><div class="CodeViewHeader-module__StickyHeader__Qn7UN" id="StickyHeader"><div class="CodeViewHeader-module__Box_1__SbNDV"><div class="CodeViewHeader-module__Box_2__TB46f"><div class="react-code-view-header-wrap--narrow CodeViewHeader-module__Box_3__q1zUL"><div class="CodeViewHeader-module__treeToggleWrapper__RQ__9"><h2 class="use-tree-pane-module__Heading__s4QbZ prc-Heading-Heading-MtWFE" data-component="Heading"><button data-component="Button" type="button" aria-label="Expand file tree" data-testid="expand-file-tree-button-mobile" class="prc-Button-ButtonBase-9n-Xk ExpandFileTreeButton-module__Button_1__Svs95" data-loading="false" data-size="medium" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-arrow-left" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3">Files</span></span></button><button data-component="IconButton" type="button" data-testid="expand-file-tree-button" aria-controls="repos-file-tree" class="prc-Button-ButtonBase-9n-Xk position-relative ExpandFileTreeButton-module__expandButton__hDOcv ExpandFileTreeButton-module__filesButtonBreakpoint__zEvz3 fgColor-muted prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-labelledby="_R_4lla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sidebar-collapse" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.823 7.823a.25.25 0 0 1 0 .354l-2.396 2.396A.25.25 0 0 1 4 10.396V5.604a.25.25 0 0 1 .427-.177Z"></path><path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25H9.5v-13H1.75a.25.25 0 0 0-.25.25ZM11 14.5h3.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="se" data-component="Tooltip" aria-hidden="true" id="_R_4lla9lik5_">Expand file tree</span><div class="d-none"></div></h2></div><div class="react-code-view-header-mb--narrow mr-2"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="main branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector-wide"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">main</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="d-none"></div></div><div class="react-code-view-header-mb--narrow CodeViewHeader-module__Box_5__MQ0hL"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__lg__Rjz0A"><nav data-testid="breadcrumbs" aria-labelledby="repos-header-breadcrumb-heading" id="repos-header-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="repos-header-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/jonwiggins/xmloxide/tree/main" data-discover="true">xmloxide</a></li><li class="Breadcrumb-module__listItem__Ib0x_"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__lg__Rjz0A" aria-hidden="true">/</span><a class="Breadcrumb-module__directoryLink__kQy_t prc-Link-Link-9ZwDx" data-component="Link" href="/jonwiggins/xmloxide/tree/main/include" data-discover="true">include</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__lg__Rjz0A" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__lg__Rjz0A prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="file-name-id">xmloxide.h</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lla9lik5_">Copy path</span></div></div></div><div class="react-code-view-header-element--wide"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><div><div class="CodeViewHeader-module__FileResultsList__JDzUy"><span class="d-flex FileResultsList-module__FilesSearchBox__ivVkc TextInput-wrapper prc-components-TextInputWrapper-Hpdqi prc-components-TextInputBaseWrapper-wY-n0" data-no-trailing-action="true" data-component="TextInput" data-leading-visual="true" data-trailing-visual="true" aria-busy="false"><span class="TextInput-icon" id="_R_1cpla9lik5_" aria-hidden="true" data-component="TextInput.LeadingVisual"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></span><input type="text" aria-label="Go to file" role="combobox" aria-controls="file-results-list" aria-expanded="false" aria-haspopup="dialog" autoCorrect="off" spellCheck="false" placeholder="Go to file" aria-describedby="_R_1cpla9lik5_ _R_1cpla9lik5H1_" data-component="input" class="prc-components-Input-IwWrt" value=""/><span class="TextInput-icon" id="_R_1cpla9lik5H1_" aria-hidden="true" data-component="TextInput.TrailingVisual"></span></span></div><div class="d-none"></div></div><div class="d-none"></div><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-wide" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_7p9la9lik5_" id="_R_99la9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_7p9la9lik5_">More file actions</span></div></div></div><div class="react-code-view-header-element--narrow"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><div class="d-none"></div><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-narrow" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_7pdla9lik5_" id="_R_9dla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_7pdla9lik5_">More file actions</span></div></div></div></div></div></div></div><div class="CodeView-module__contentWrapper__cG2JH"><div class="react-code-view-bottom-padding"><div class="BlobTopBanners-module__Box__v_nvx"></div></div> <div class="d-none"></div><div class="d-flex flex-column border rounded-2 tmp-mb-3 pl-1"><div class="LatestCommit-module__Box__B25ZT"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">Latest commit</h2><div style="width:120px" class="Skeleton Skeleton--text" data-testid="loading"> </div><div class="d-flex flex-shrink-0 gap-2"><div data-testid="latest-commit-details" class="d-none d-sm-flex flex-items-center"></div><div class="d-flex gap-2"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">History</h2><a data-component="LinkButton" href="/jonwiggins/xmloxide/commits/main/include/xmloxide.h" class="prc-Button-ButtonBase-9n-Xk d-none d-lg-flex LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><span class="fgColor-default">History</span></span></span></a><div class="d-sm-none"></div><div class="d-flex d-lg-none"><a data-component="LinkButton" aria-label="View commit history for this file." href="/jonwiggins/xmloxide/commits/main/include/xmloxide.h" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible" aria-describedby="_R_4mlala9lik5_"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span></span></a><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" role="tooltip" aria-hidden="true" id="_R_4mlala9lik5_">History</span></div></div></div></div></div><div class="d-flex flex-row"><div class="container BlobViewContent-module__blobContainer__DtH2d"><div class="react-code-size-details-banner BlobViewContent-module__codeSizeDetails__e5sUw"><div class="react-code-size-details-banner CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="34.6 KB" style="--truncate-max-width:100%"><span>1007 lines (838 loc) · 34.6 KB</span></div></div></div></div><div class="react-blob-view-header-sticky BlobViewContent-module__stickyHeader__VwxB5" id="repos-sticky-header"><div class="BlobViewHeader-module__Box__yhm9u"><div class="react-blob-sticky-header"><div class="FileNameStickyHeader-module__outerWrapper__ZL4Xc FileNameStickyHeader-module__outerWrapperHidden__Zpynk"><div class="FileNameStickyHeader-module__Box_1__Hazu5"><div class="FileNameStickyHeader-module__Box_2__hoolP"><div class="FileNameStickyHeader-module__Box_3__MVKsk"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="main branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">main</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="d-none"></div></div><div class="FileNameStickyHeader-module__Box_4__FLhtt"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__md__Wb1Gs"><nav data-testid="breadcrumbs" aria-labelledby="sticky-breadcrumb-heading" id="sticky-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="sticky-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/jonwiggins/xmloxide/tree/main" data-discover="true">xmloxide</a></li><li class="Breadcrumb-module__listItem__Ib0x_"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__md__Wb1Gs" aria-hidden="true">/</span><a class="Breadcrumb-module__directoryLink__kQy_t prc-Link-Link-9ZwDx" data-component="Link" href="/jonwiggins/xmloxide/tree/main/include" data-discover="true">include</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__md__Wb1Gs" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__md__Wb1Gs prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="sticky-file-name-id">xmloxide.h</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lcpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lcpala9lik5_">Copy path</span></div></div></div><button data-component="Button" type="button" class="prc-Button-ButtonBase-9n-Xk FileNameStickyHeader-module__Button__LSEU_ FileNameStickyHeader-module__GoToTopButton__nxAFn" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-arrow-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.47 7.78a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0l4.25 4.25a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018L9 4.81v7.44a.75.75 0 0 1-1.5 0V4.81L4.53 7.78a.75.75 0 0 1-1.06 0Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3">Top</span></span></button></div></div></div><div class="BlobViewHeader-module__Box_1__VEmuQ"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">File metadata and controls</h2><div class="BlobViewHeader-module__Box_2__icUs2"><ul aria-label="File view" class="prc-SegmentedControl-SegmentedControl-lqIXp BlobTabButtons-module__SegmentedControl__jen2u" data-variant="default" data-size="small" data-component="SegmentedControl"><li class="prc-SegmentedControl-Item-tSCQh" data-selected="" data-component="SegmentedControl.Button"><button aria-pressed="true" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:transparent"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Code">Code</div></span></button></li><li class="prc-SegmentedControl-Item-tSCQh" data-component="SegmentedControl.Button"><button aria-pressed="false" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:var(--borderColor-default)"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Blame">Blame</div></span></button></li></ul><div class="d-none"></div><div class="react-code-size-details-in-header CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="34.6 KB" style="--truncate-max-width:100%"><span>1007 lines (838 loc) · 34.6 KB</span></div></div></div></div><div class="BlobViewHeader-module__Box_3__ng6v2"><div class="d-none"></div><div class="react-blob-header-edit-and-raw-actions BlobViewHeader-module__Box_4__J4Y4W"><div class="d-none"></div><div class="prc-ButtonGroup-ButtonGroup-vFUrY" data-component="ButtonGroup"><div class="prc-ButtonGroup-Item-PqvDl"><a data-component="LinkButton" href="https://github.com/jonwiggins/xmloxide/raw/refs/heads/main/include/xmloxide.h" data-testid="raw-button" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov BlobViewHeader-module__LinkButton__X9kx2" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Raw</span></span></a></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="copy-raw-button" class="prc-Button-ButtonBase-9n-Xk prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_qaucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_qaucpala9lik5_">Copy raw file</span></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="download-raw-button" class="prc-Button-ButtonBase-9n-Xk BlobViewHeader-module__downloadButton__ef459 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_eaucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-download" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"></path><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06l1.97 1.969Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_eaucpala9lik5_">Download raw file</span></div></div></div><div class="d-none"></div><button data-component="IconButton" type="button" aria-pressed="false" aria-expanded="false" aria-controls="symbols-pane" data-testid="symbols-button" class="prc-Button-ButtonBase-9n-Xk BlobViewHeader-module__IconButton_2__RyjZg prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_jecpala9lik5_" id="symbols-button"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code-square" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_jecpala9lik5_">Open symbols panel</span><div class="react-blob-header-edit-and-raw-actions-combined"><button data-component="IconButton" type="button" title="More file actions" data-testid="more-file-actions-button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click BlobViewHeader-module__IconButton__XrMQY prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_fkecpala9lik5_" id="_R_kecpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_fkecpala9lik5_">Edit and raw actions</span></div></div></div></div><div></div></div><div class="BlobViewContent-module__blobContentWrapper__JS0W6"><section aria-labelledby="file-name-id-wide file-name-id-mobile" class="BlobContent-module__blobContentSection__VOgZq" style="margin-top:46px"><!--$--><div class="CodeBlob-module__codeBlobWrapper__RS6In" style="padding-top:8px;padding-bottom:8px"><div id="highlighted-line-menu-positioner" class="position-relative"><div id="copilot-button-positioner" class="position-relative"><div class="CodeBlob-module__codeBlobInner__tfjuQ"><div class="react-code-file-contents CodeLinesSSR-module__codeFileContents__ARmAN" role="presentation" aria-hidden="true" data-tab-size="4" data-paste-markdown-skip="true" style="tab-size:4;max-width:unset" data-hpc="true" containertiming="hpc"><div class="react-line-numbers" style="pointer-events:auto"><div data-line-number="1" class="react-line-number react-code-text" style="padding-right:16px">1</div><div data-line-number="2" class="react-line-number react-code-text" style="padding-right:16px">2</div><div data-line-number="3" class="react-line-number react-code-text" style="padding-right:16px">3</div><div data-line-number="4" class="react-line-number react-code-text" style="padding-right:16px">4</div><div data-line-number="5" class="react-line-number react-code-text" style="padding-right:16px">5</div><div data-line-number="6" class="react-line-number react-code-text" style="padding-right:16px">6</div><div data-line-number="7" class="react-line-number react-code-text" style="padding-right:16px">7</div><div data-line-number="8" class="react-line-number react-code-text" style="padding-right:16px">8</div><div data-line-number="9" class="react-line-number react-code-text" style="padding-right:16px">9</div><div data-line-number="10" class="react-line-number react-code-text" style="padding-right:16px">10</div><div data-line-number="11" class="react-line-number react-code-text" style="padding-right:16px">11</div><div data-line-number="12" class="react-line-number react-code-text" style="padding-right:16px">12</div><div data-line-number="13" class="react-line-number react-code-text" style="padding-right:16px">13</div><div data-line-number="14" class="react-line-number react-code-text" style="padding-right:16px">14</div><div data-line-number="15" class="react-line-number react-code-text" style="padding-right:16px">15</div><div data-line-number="16" class="react-line-number react-code-text" style="padding-right:16px">16</div><div data-line-number="17" class="react-line-number react-code-text" style="padding-right:16px">17</div><div data-line-number="18" class="react-line-number react-code-text" style="padding-right:16px">18</div><div data-line-number="19" class="react-line-number react-code-text" style="padding-right:16px">19</div><div data-line-number="20" class="react-line-number react-code-text" style="padding-right:16px">20</div><div data-line-number="21" class="react-line-number react-code-text" style="padding-right:16px">21</div><div data-line-number="22" class="react-line-number react-code-text" style="padding-right:16px">22</div><div data-line-number="23" class="react-line-number react-code-text" style="padding-right:16px">23</div><div data-line-number="24" class="react-line-number react-code-text" style="padding-right:16px">24</div><div data-line-number="25" class="react-line-number react-code-text" style="padding-right:16px">25</div><div data-line-number="26" class="react-line-number react-code-text" style="padding-right:16px">26</div><div data-line-number="27" class="react-line-number react-code-text" style="padding-right:16px">27</div><div data-line-number="28" class="react-line-number react-code-text" style="padding-right:16px">28</div><div data-line-number="29" class="react-line-number react-code-text" style="padding-right:16px">29</div><div data-line-number="30" class="react-line-number react-code-text" style="padding-right:16px">30</div><div data-line-number="31" class="react-line-number react-code-text" style="padding-right:16px">31</div><div data-line-number="32" class="react-line-number react-code-text" style="padding-right:16px">32</div><div data-line-number="33" class="react-line-number react-code-text" style="padding-right:16px">33</div><div data-line-number="34" class="react-line-number react-code-text" style="padding-right:16px">34</div><div data-line-number="35" class="react-line-number react-code-text" style="padding-right:16px">35</div><div data-line-number="36" class="react-line-number react-code-text" style="padding-right:16px">36</div><div data-line-number="37" class="react-line-number react-code-text" style="padding-right:16px">37</div><div data-line-number="38" class="react-line-number react-code-text" style="padding-right:16px">38</div><div data-line-number="39" class="react-line-number react-code-text" style="padding-right:16px">39</div><div data-line-number="40" class="react-line-number react-code-text" style="padding-right:16px">40</div><div data-line-number="41" class="react-line-number react-code-text" style="padding-right:16px">41</div><div data-line-number="42" class="react-line-number react-code-text" style="padding-right:16px">42</div><div data-line-number="43" class="react-line-number react-code-text" style="padding-right:16px">43</div><div data-line-number="44" class="react-line-number react-code-text" style="padding-right:16px">44</div><div data-line-number="45" class="react-line-number react-code-text" style="padding-right:16px">45</div><div data-line-number="46" class="react-line-number react-code-text" style="padding-right:16px">46</div><div data-line-number="47" class="react-line-number react-code-text" style="padding-right:16px">47</div><div data-line-number="48" class="react-line-number react-code-text" style="padding-right:16px">48</div><div data-line-number="49" class="react-line-number react-code-text" style="padding-right:16px">49</div><div data-line-number="50" class="react-line-number react-code-text" style="padding-right:16px">50</div><div data-line-number="51" class="react-line-number react-code-text" style="padding-right:16px">51</div><div data-line-number="52" class="react-line-number react-code-text" style="padding-right:16px">52</div><div data-line-number="53" class="react-line-number react-code-text" style="padding-right:16px">53</div><div data-line-number="54" class="react-line-number react-code-text" style="padding-right:16px">54</div><div data-line-number="55" class="react-line-number react-code-text" style="padding-right:16px">55</div><div data-line-number="56" class="react-line-number react-code-text" style="padding-right:16px">56</div><div data-line-number="57" class="react-line-number react-code-text" style="padding-right:16px">57</div><div data-line-number="58" class="react-line-number react-code-text" style="padding-right:16px">58</div><div data-line-number="59" class="react-line-number react-code-text" style="padding-right:16px">59</div><div data-line-number="60" class="react-line-number react-code-text" style="padding-right:16px">60</div><div data-line-number="61" class="react-line-number react-code-text" style="padding-right:16px">61</div><div data-line-number="62" class="react-line-number react-code-text" style="padding-right:16px">62</div><div data-line-number="63" class="react-line-number react-code-text" style="padding-right:16px">63</div><div data-line-number="64" class="react-line-number react-code-text" style="padding-right:16px">64</div><div data-line-number="65" class="react-line-number react-code-text" style="padding-right:16px">65</div><div data-line-number="66" class="react-line-number react-code-text" style="padding-right:16px">66</div><div data-line-number="67" class="react-line-number react-code-text" style="padding-right:16px">67</div><div data-line-number="68" class="react-line-number react-code-text" style="padding-right:16px">68</div><div data-line-number="69" class="react-line-number react-code-text" style="padding-right:16px">69</div><div data-line-number="70" class="react-line-number react-code-text" style="padding-right:16px">70</div><div data-line-number="71" class="react-line-number react-code-text" style="padding-right:16px">71</div><div data-line-number="72" class="react-line-number react-code-text" style="padding-right:16px">72</div><div data-line-number="73" class="react-line-number react-code-text" style="padding-right:16px">73</div><div data-line-number="74" class="react-line-number react-code-text" style="padding-right:16px">74</div><div data-line-number="75" class="react-line-number react-code-text" style="padding-right:16px">75</div><div data-line-number="76" class="react-line-number react-code-text" style="padding-right:16px">76</div><div data-line-number="77" class="react-line-number react-code-text" style="padding-right:16px">77</div><div data-line-number="78" class="react-line-number react-code-text" style="padding-right:16px">78</div><div data-line-number="79" class="react-line-number react-code-text" style="padding-right:16px">79</div><div data-line-number="80" class="react-line-number react-code-text" style="padding-right:16px">80</div><div data-line-number="81" class="react-line-number react-code-text" style="padding-right:16px">81</div><div data-line-number="82" class="react-line-number react-code-text" style="padding-right:16px">82</div><div data-line-number="83" class="react-line-number react-code-text" style="padding-right:16px">83</div><div data-line-number="84" class="react-line-number react-code-text" style="padding-right:16px">84</div><div data-line-number="85" class="react-line-number react-code-text" style="padding-right:16px">85</div><div data-line-number="86" class="react-line-number react-code-text" style="padding-right:16px">86</div><div data-line-number="87" class="react-line-number react-code-text" style="padding-right:16px">87</div><div data-line-number="88" class="react-line-number react-code-text" style="padding-right:16px">88</div><div data-line-number="89" class="react-line-number react-code-text" style="padding-right:16px">89</div><div data-line-number="90" class="react-line-number react-code-text" style="padding-right:16px">90</div><div data-line-number="91" class="react-line-number react-code-text" style="padding-right:16px">91</div><div data-line-number="92" class="react-line-number react-code-text" style="padding-right:16px">92</div><div data-line-number="93" class="react-line-number react-code-text" style="padding-right:16px">93</div><div data-line-number="94" class="react-line-number react-code-text" style="padding-right:16px">94</div><div data-line-number="95" class="react-line-number react-code-text" style="padding-right:16px">95</div><div data-line-number="96" class="react-line-number react-code-text" style="padding-right:16px">96</div><div data-line-number="97" class="react-line-number react-code-text" style="padding-right:16px">97</div><div data-line-number="98" class="react-line-number react-code-text" style="padding-right:16px">98</div><div data-line-number="99" class="react-line-number react-code-text" style="padding-right:16px">99</div><div data-line-number="100" class="react-line-number react-code-text" style="padding-right:16px">100</div><div data-line-number="101" class="react-line-number react-code-text" style="padding-right:16px">101</div><div data-line-number="102" class="react-line-number react-code-text" style="padding-right:16px">102</div><div data-line-number="103" class="react-line-number react-code-text" style="padding-right:16px">103</div><div data-line-number="104" class="react-line-number react-code-text" style="padding-right:16px">104</div><div data-line-number="105" class="react-line-number react-code-text" style="padding-right:16px">105</div><div data-line-number="106" class="react-line-number react-code-text" style="padding-right:16px">106</div><div data-line-number="107" class="react-line-number react-code-text" style="padding-right:16px">107</div><div data-line-number="108" class="react-line-number react-code-text" style="padding-right:16px">108</div><div data-line-number="109" class="react-line-number react-code-text" style="padding-right:16px">109</div><div data-line-number="110" class="react-line-number react-code-text" style="padding-right:16px">110</div><div data-line-number="111" class="react-line-number react-code-text" style="padding-right:16px">111</div><div data-line-number="112" class="react-line-number react-code-text" style="padding-right:16px">112</div><div data-line-number="113" class="react-line-number react-code-text" style="padding-right:16px">113</div><div data-line-number="114" class="react-line-number react-code-text" style="padding-right:16px">114</div><div data-line-number="115" class="react-line-number react-code-text" style="padding-right:16px">115</div><div data-line-number="116" class="react-line-number react-code-text" style="padding-right:16px">116</div><div data-line-number="117" class="react-line-number react-code-text" style="padding-right:16px">117</div><div data-line-number="118" class="react-line-number react-code-text" style="padding-right:16px">118</div><div data-line-number="119" class="react-line-number react-code-text" style="padding-right:16px">119</div><div data-line-number="120" class="react-line-number react-code-text" style="padding-right:16px">120</div><div data-line-number="121" class="react-line-number react-code-text" style="padding-right:16px">121</div><div data-line-number="122" class="react-line-number react-code-text" style="padding-right:16px">122</div><div data-line-number="123" class="react-line-number react-code-text" style="padding-right:16px">123</div><div data-line-number="124" class="react-line-number react-code-text" style="padding-right:16px">124</div><div data-line-number="125" class="react-line-number react-code-text" style="padding-right:16px">125</div><div data-line-number="126" class="react-line-number react-code-text" style="padding-right:16px">126</div><div data-line-number="127" class="react-line-number react-code-text" style="padding-right:16px">127</div><div data-line-number="128" class="react-line-number react-code-text" style="padding-right:16px">128</div><div data-line-number="129" class="react-line-number react-code-text" style="padding-right:16px">129</div><div data-line-number="130" class="react-line-number react-code-text" style="padding-right:16px">130</div><div data-line-number="131" class="react-line-number react-code-text" style="padding-right:16px">131</div><div data-line-number="132" class="react-line-number react-code-text" style="padding-right:16px">132</div><div data-line-number="133" class="react-line-number react-code-text" style="padding-right:16px">133</div><div data-line-number="134" class="react-line-number react-code-text" style="padding-right:16px">134</div><div data-line-number="135" class="react-line-number react-code-text" style="padding-right:16px">135</div><div data-line-number="136" class="react-line-number react-code-text" style="padding-right:16px">136</div><div data-line-number="137" class="react-line-number react-code-text" style="padding-right:16px">137</div><div data-line-number="138" class="react-line-number react-code-text" style="padding-right:16px">138</div><div data-line-number="139" class="react-line-number react-code-text" style="padding-right:16px">139</div><div data-line-number="140" class="react-line-number react-code-text" style="padding-right:16px">140</div><div data-line-number="141" class="react-line-number react-code-text" style="padding-right:16px">141</div><div data-line-number="142" class="react-line-number react-code-text" style="padding-right:16px">142</div><div data-line-number="143" class="react-line-number react-code-text" style="padding-right:16px">143</div><div data-line-number="144" class="react-line-number react-code-text" style="padding-right:16px">144</div><div data-line-number="145" class="react-line-number react-code-text" style="padding-right:16px">145</div><div data-line-number="146" class="react-line-number react-code-text" style="padding-right:16px">146</div><div data-line-number="147" class="react-line-number react-code-text" style="padding-right:16px">147</div><div data-line-number="148" class="react-line-number react-code-text" style="padding-right:16px">148</div><div data-line-number="149" class="react-line-number react-code-text" style="padding-right:16px">149</div><div data-line-number="150" class="react-line-number react-code-text" style="padding-right:16px">150</div><div data-line-number="151" class="react-line-number react-code-text" style="padding-right:16px">151</div><div data-line-number="152" class="react-line-number react-code-text" style="padding-right:16px">152</div><div data-line-number="153" class="react-line-number react-code-text" style="padding-right:16px">153</div><div data-line-number="154" class="react-line-number react-code-text" style="padding-right:16px">154</div><div data-line-number="155" class="react-line-number react-code-text" style="padding-right:16px">155</div><div data-line-number="156" class="react-line-number react-code-text" style="padding-right:16px">156</div><div data-line-number="157" class="react-line-number react-code-text" style="padding-right:16px">157</div><div data-line-number="158" class="react-line-number react-code-text" style="padding-right:16px">158</div><div data-line-number="159" class="react-line-number react-code-text" style="padding-right:16px">159</div><div data-line-number="160" class="react-line-number react-code-text" style="padding-right:16px">160</div><div data-line-number="161" class="react-line-number react-code-text" style="padding-right:16px">161</div><div data-line-number="162" class="react-line-number react-code-text" style="padding-right:16px">162</div><div data-line-number="163" class="react-line-number react-code-text" style="padding-right:16px">163</div><div data-line-number="164" class="react-line-number react-code-text" style="padding-right:16px">164</div><div data-line-number="165" class="react-line-number react-code-text" style="padding-right:16px">165</div><div data-line-number="166" class="react-line-number react-code-text" style="padding-right:16px">166</div><div data-line-number="167" class="react-line-number react-code-text" style="padding-right:16px">167</div><div data-line-number="168" class="react-line-number react-code-text" style="padding-right:16px">168</div><div data-line-number="169" class="react-line-number react-code-text" style="padding-right:16px">169</div><div data-line-number="170" class="react-line-number react-code-text" style="padding-right:16px">170</div><div data-line-number="171" class="react-line-number react-code-text" style="padding-right:16px">171</div><div data-line-number="172" class="react-line-number react-code-text" style="padding-right:16px">172</div><div data-line-number="173" class="react-line-number react-code-text" style="padding-right:16px">173</div><div data-line-number="174" class="react-line-number react-code-text" style="padding-right:16px">174</div><div data-line-number="175" class="react-line-number react-code-text" style="padding-right:16px">175</div><div data-line-number="176" class="react-line-number react-code-text" style="padding-right:16px">176</div><div data-line-number="177" class="react-line-number react-code-text" style="padding-right:16px">177</div><div data-line-number="178" class="react-line-number react-code-text" style="padding-right:16px">178</div><div data-line-number="179" class="react-line-number react-code-text" style="padding-right:16px">179</div><div data-line-number="180" class="react-line-number react-code-text" style="padding-right:16px">180</div><div data-line-number="181" class="react-line-number react-code-text" style="padding-right:16px">181</div><div data-line-number="182" class="react-line-number react-code-text" style="padding-right:16px">182</div><div data-line-number="183" class="react-line-number react-code-text" style="padding-right:16px">183</div><div data-line-number="184" class="react-line-number react-code-text" style="padding-right:16px">184</div><div data-line-number="185" class="react-line-number react-code-text" style="padding-right:16px">185</div><div data-line-number="186" class="react-line-number react-code-text" style="padding-right:16px">186</div><div data-line-number="187" class="react-line-number react-code-text" style="padding-right:16px">187</div><div data-line-number="188" class="react-line-number react-code-text" style="padding-right:16px">188</div><div data-line-number="189" class="react-line-number react-code-text" style="padding-right:16px">189</div><div data-line-number="190" class="react-line-number react-code-text" style="padding-right:16px">190</div><div data-line-number="191" class="react-line-number react-code-text" style="padding-right:16px">191</div><div data-line-number="192" class="react-line-number react-code-text" style="padding-right:16px">192</div><div data-line-number="193" class="react-line-number react-code-text" style="padding-right:16px">193</div><div data-line-number="194" class="react-line-number react-code-text" style="padding-right:16px">194</div><div data-line-number="195" class="react-line-number react-code-text" style="padding-right:16px">195</div><div data-line-number="196" class="react-line-number react-code-text" style="padding-right:16px">196</div><div data-line-number="197" class="react-line-number react-code-text" style="padding-right:16px">197</div><div data-line-number="198" class="react-line-number react-code-text" style="padding-right:16px">198</div><div data-line-number="199" class="react-line-number react-code-text" style="padding-right:16px">199</div><div data-line-number="200" class="react-line-number react-code-text" style="padding-right:16px">200</div><div data-line-number="201" class="react-line-number react-code-text" style="padding-right:16px">201</div><div data-line-number="202" class="react-line-number react-code-text" style="padding-right:16px">202</div><div data-line-number="203" class="react-line-number react-code-text" style="padding-right:16px">203</div><div data-line-number="204" class="react-line-number react-code-text" style="padding-right:16px">204</div><div data-line-number="205" class="react-line-number react-code-text" style="padding-right:16px">205</div><div data-line-number="206" class="react-line-number react-code-text" style="padding-right:16px">206</div><div data-line-number="207" class="react-line-number react-code-text" style="padding-right:16px">207</div><div data-line-number="208" class="react-line-number react-code-text" style="padding-right:16px">208</div><div data-line-number="209" class="react-line-number react-code-text" style="padding-right:16px">209</div><div data-line-number="210" class="react-line-number react-code-text" style="padding-right:16px">210</div><div data-line-number="211" class="react-line-number react-code-text" style="padding-right:16px">211</div><div data-line-number="212" class="react-line-number react-code-text" style="padding-right:16px">212</div><div data-line-number="213" class="react-line-number react-code-text" style="padding-right:16px">213</div><div data-line-number="214" class="react-line-number react-code-text" style="padding-right:16px">214</div><div data-line-number="215" class="react-line-number react-code-text" style="padding-right:16px">215</div><div data-line-number="216" class="react-line-number react-code-text" style="padding-right:16px">216</div><div data-line-number="217" class="react-line-number react-code-text" style="padding-right:16px">217</div><div data-line-number="218" class="react-line-number react-code-text" style="padding-right:16px">218</div><div data-line-number="219" class="react-line-number react-code-text" style="padding-right:16px">219</div><div data-line-number="220" class="react-line-number react-code-text" style="padding-right:16px">220</div><div data-line-number="221" class="react-line-number react-code-text" style="padding-right:16px">221</div><div data-line-number="222" class="react-line-number react-code-text" style="padding-right:16px">222</div><div data-line-number="223" class="react-line-number react-code-text" style="padding-right:16px">223</div><div data-line-number="224" class="react-line-number react-code-text" style="padding-right:16px">224</div><div data-line-number="225" class="react-line-number react-code-text" style="padding-right:16px">225</div><div data-line-number="226" class="react-line-number react-code-text" style="padding-right:16px">226</div><div data-line-number="227" class="react-line-number react-code-text" style="padding-right:16px">227</div><div data-line-number="228" class="react-line-number react-code-text" style="padding-right:16px">228</div><div data-line-number="229" class="react-line-number react-code-text" style="padding-right:16px">229</div><div data-line-number="230" class="react-line-number react-code-text" style="padding-right:16px">230</div><div data-line-number="231" class="react-line-number react-code-text" style="padding-right:16px">231</div><div data-line-number="232" class="react-line-number react-code-text" style="padding-right:16px">232</div><div data-line-number="233" class="react-line-number react-code-text" style="padding-right:16px">233</div><div data-line-number="234" class="react-line-number react-code-text" style="padding-right:16px">234</div><div data-line-number="235" class="react-line-number react-code-text" style="padding-right:16px">235</div><div data-line-number="236" class="react-line-number react-code-text" style="padding-right:16px">236</div><div data-line-number="237" class="react-line-number react-code-text" style="padding-right:16px">237</div><div data-line-number="238" class="react-line-number react-code-text" style="padding-right:16px">238</div><div data-line-number="239" class="react-line-number react-code-text" style="padding-right:16px">239</div><div data-line-number="240" class="react-line-number react-code-text" style="padding-right:16px">240</div><div data-line-number="241" class="react-line-number react-code-text" style="padding-right:16px">241</div><div data-line-number="242" class="react-line-number react-code-text" style="padding-right:16px">242</div><div data-line-number="243" class="react-line-number react-code-text" style="padding-right:16px">243</div><div data-line-number="244" class="react-line-number react-code-text" style="padding-right:16px">244</div><div data-line-number="245" class="react-line-number react-code-text" style="padding-right:16px">245</div><div data-line-number="246" class="react-line-number react-code-text" style="padding-right:16px">246</div><div data-line-number="247" class="react-line-number react-code-text" style="padding-right:16px">247</div><div data-line-number="248" class="react-line-number react-code-text" style="padding-right:16px">248</div><div data-line-number="249" class="react-line-number react-code-text" style="padding-right:16px">249</div><div data-line-number="250" class="react-line-number react-code-text" style="padding-right:16px">250</div><div data-line-number="251" class="react-line-number react-code-text" style="padding-right:16px">251</div><div data-line-number="252" class="react-line-number react-code-text" style="padding-right:16px">252</div><div data-line-number="253" class="react-line-number react-code-text" style="padding-right:16px">253</div><div data-line-number="254" class="react-line-number react-code-text" style="padding-right:16px">254</div><div data-line-number="255" class="react-line-number react-code-text" style="padding-right:16px">255</div><div data-line-number="256" class="react-line-number react-code-text" style="padding-right:16px">256</div><div data-line-number="257" class="react-line-number react-code-text" style="padding-right:16px">257</div><div data-line-number="258" class="react-line-number react-code-text" style="padding-right:16px">258</div><div data-line-number="259" class="react-line-number react-code-text" style="padding-right:16px">259</div><div data-line-number="260" class="react-line-number react-code-text" style="padding-right:16px">260</div><div data-line-number="261" class="react-line-number react-code-text" style="padding-right:16px">261</div><div data-line-number="262" class="react-line-number react-code-text" style="padding-right:16px">262</div><div data-line-number="263" class="react-line-number react-code-text" style="padding-right:16px">263</div><div data-line-number="264" class="react-line-number react-code-text" style="padding-right:16px">264</div><div data-line-number="265" class="react-line-number react-code-text" style="padding-right:16px">265</div><div data-line-number="266" class="react-line-number react-code-text" style="padding-right:16px">266</div><div data-line-number="267" class="react-line-number react-code-text" style="padding-right:16px">267</div><div data-line-number="268" class="react-line-number react-code-text" style="padding-right:16px">268</div><div data-line-number="269" class="react-line-number react-code-text" style="padding-right:16px">269</div><div data-line-number="270" class="react-line-number react-code-text" style="padding-right:16px">270</div><div data-line-number="271" class="react-line-number react-code-text" style="padding-right:16px">271</div><div data-line-number="272" class="react-line-number react-code-text" style="padding-right:16px">272</div><div data-line-number="273" class="react-line-number react-code-text" style="padding-right:16px">273</div><div data-line-number="274" class="react-line-number react-code-text" style="padding-right:16px">274</div><div data-line-number="275" class="react-line-number react-code-text" style="padding-right:16px">275</div><div data-line-number="276" class="react-line-number react-code-text" style="padding-right:16px">276</div><div data-line-number="277" class="react-line-number react-code-text" style="padding-right:16px">277</div><div data-line-number="278" class="react-line-number react-code-text" style="padding-right:16px">278</div><div data-line-number="279" class="react-line-number react-code-text" style="padding-right:16px">279</div><div data-line-number="280" class="react-line-number react-code-text" style="padding-right:16px">280</div><div data-line-number="281" class="react-line-number react-code-text" style="padding-right:16px">281</div><div data-line-number="282" class="react-line-number react-code-text" style="padding-right:16px">282</div><div data-line-number="283" class="react-line-number react-code-text" style="padding-right:16px">283</div><div data-line-number="284" class="react-line-number react-code-text" style="padding-right:16px">284</div><div data-line-number="285" class="react-line-number react-code-text" style="padding-right:16px">285</div><div data-line-number="286" class="react-line-number react-code-text" style="padding-right:16px">286</div><div data-line-number="287" class="react-line-number react-code-text" style="padding-right:16px">287</div><div data-line-number="288" class="react-line-number react-code-text" style="padding-right:16px">288</div><div data-line-number="289" class="react-line-number react-code-text" style="padding-right:16px">289</div><div data-line-number="290" class="react-line-number react-code-text" style="padding-right:16px">290</div><div data-line-number="291" class="react-line-number react-code-text" style="padding-right:16px">291</div><div data-line-number="292" class="react-line-number react-code-text" style="padding-right:16px">292</div><div data-line-number="293" class="react-line-number react-code-text" style="padding-right:16px">293</div><div data-line-number="294" class="react-line-number react-code-text" style="padding-right:16px">294</div><div data-line-number="295" class="react-line-number react-code-text" style="padding-right:16px">295</div><div data-line-number="296" class="react-line-number react-code-text" style="padding-right:16px">296</div><div data-line-number="297" class="react-line-number react-code-text" style="padding-right:16px">297</div><div data-line-number="298" class="react-line-number react-code-text" style="padding-right:16px">298</div><div data-line-number="299" class="react-line-number react-code-text" style="padding-right:16px">299</div><div data-line-number="300" class="react-line-number react-code-text" style="padding-right:16px">300</div><div data-line-number="301" class="react-line-number react-code-text" style="padding-right:16px">301</div><div data-line-number="302" class="react-line-number react-code-text" style="padding-right:16px">302</div><div data-line-number="303" class="react-line-number react-code-text" style="padding-right:16px">303</div><div data-line-number="304" class="react-line-number react-code-text" style="padding-right:16px">304</div><div data-line-number="305" class="react-line-number react-code-text" style="padding-right:16px">305</div><div data-line-number="306" class="react-line-number react-code-text" style="padding-right:16px">306</div><div data-line-number="307" class="react-line-number react-code-text" style="padding-right:16px">307</div><div data-line-number="308" class="react-line-number react-code-text" style="padding-right:16px">308</div><div data-line-number="309" class="react-line-number react-code-text" style="padding-right:16px">309</div><div data-line-number="310" class="react-line-number react-code-text" style="padding-right:16px">310</div><div data-line-number="311" class="react-line-number react-code-text" style="padding-right:16px">311</div><div data-line-number="312" class="react-line-number react-code-text" style="padding-right:16px">312</div><div data-line-number="313" class="react-line-number react-code-text" style="padding-right:16px">313</div><div data-line-number="314" class="react-line-number react-code-text" style="padding-right:16px">314</div><div data-line-number="315" class="react-line-number react-code-text" style="padding-right:16px">315</div><div data-line-number="316" class="react-line-number react-code-text" style="padding-right:16px">316</div><div data-line-number="317" class="react-line-number react-code-text" style="padding-right:16px">317</div><div data-line-number="318" class="react-line-number react-code-text" style="padding-right:16px">318</div><div data-line-number="319" class="react-line-number react-code-text" style="padding-right:16px">319</div><div data-line-number="320" class="react-line-number react-code-text" style="padding-right:16px">320</div><div data-line-number="321" class="react-line-number react-code-text" style="padding-right:16px">321</div><div data-line-number="322" class="react-line-number react-code-text" style="padding-right:16px">322</div><div data-line-number="323" class="react-line-number react-code-text" style="padding-right:16px">323</div><div data-line-number="324" class="react-line-number react-code-text" style="padding-right:16px">324</div><div data-line-number="325" class="react-line-number react-code-text" style="padding-right:16px">325</div><div data-line-number="326" class="react-line-number react-code-text" style="padding-right:16px">326</div><div data-line-number="327" class="react-line-number react-code-text" style="padding-right:16px">327</div><div data-line-number="328" class="react-line-number react-code-text" style="padding-right:16px">328</div><div data-line-number="329" class="react-line-number react-code-text" style="padding-right:16px">329</div><div data-line-number="330" class="react-line-number react-code-text" style="padding-right:16px">330</div><div data-line-number="331" class="react-line-number react-code-text" style="padding-right:16px">331</div><div data-line-number="332" class="react-line-number react-code-text" style="padding-right:16px">332</div><div data-line-number="333" class="react-line-number react-code-text" style="padding-right:16px">333</div><div data-line-number="334" class="react-line-number react-code-text" style="padding-right:16px">334</div><div data-line-number="335" class="react-line-number react-code-text" style="padding-right:16px">335</div><div data-line-number="336" class="react-line-number react-code-text" style="padding-right:16px">336</div><div data-line-number="337" class="react-line-number react-code-text" style="padding-right:16px">337</div><div data-line-number="338" class="react-line-number react-code-text" style="padding-right:16px">338</div><div data-line-number="339" class="react-line-number react-code-text" style="padding-right:16px">339</div><div data-line-number="340" class="react-line-number react-code-text" style="padding-right:16px">340</div><div data-line-number="341" class="react-line-number react-code-text" style="padding-right:16px">341</div><div data-line-number="342" class="react-line-number react-code-text" style="padding-right:16px">342</div><div data-line-number="343" class="react-line-number react-code-text" style="padding-right:16px">343</div><div data-line-number="344" class="react-line-number react-code-text" style="padding-right:16px">344</div><div data-line-number="345" class="react-line-number react-code-text" style="padding-right:16px">345</div><div data-line-number="346" class="react-line-number react-code-text" style="padding-right:16px">346</div><div data-line-number="347" class="react-line-number react-code-text" style="padding-right:16px">347</div><div data-line-number="348" class="react-line-number react-code-text" style="padding-right:16px">348</div><div data-line-number="349" class="react-line-number react-code-text" style="padding-right:16px">349</div><div data-line-number="350" class="react-line-number react-code-text" style="padding-right:16px">350</div><div data-line-number="351" class="react-line-number react-code-text" style="padding-right:16px">351</div><div data-line-number="352" class="react-line-number react-code-text" style="padding-right:16px">352</div><div data-line-number="353" class="react-line-number react-code-text" style="padding-right:16px">353</div><div data-line-number="354" class="react-line-number react-code-text" style="padding-right:16px">354</div><div data-line-number="355" class="react-line-number react-code-text" style="padding-right:16px">355</div><div data-line-number="356" class="react-line-number react-code-text" style="padding-right:16px">356</div><div data-line-number="357" class="react-line-number react-code-text" style="padding-right:16px">357</div><div data-line-number="358" class="react-line-number react-code-text" style="padding-right:16px">358</div><div data-line-number="359" class="react-line-number react-code-text" style="padding-right:16px">359</div><div data-line-number="360" class="react-line-number react-code-text" style="padding-right:16px">360</div><div data-line-number="361" class="react-line-number react-code-text" style="padding-right:16px">361</div><div data-line-number="362" class="react-line-number react-code-text" style="padding-right:16px">362</div><div data-line-number="363" class="react-line-number react-code-text" style="padding-right:16px">363</div><div data-line-number="364" class="react-line-number react-code-text" style="padding-right:16px">364</div><div data-line-number="365" class="react-line-number react-code-text" style="padding-right:16px">365</div><div data-line-number="366" class="react-line-number react-code-text" style="padding-right:16px">366</div><div data-line-number="367" class="react-line-number react-code-text" style="padding-right:16px">367</div><div data-line-number="368" class="react-line-number react-code-text" style="padding-right:16px">368</div><div data-line-number="369" class="react-line-number react-code-text" style="padding-right:16px">369</div><div data-line-number="370" class="react-line-number react-code-text" style="padding-right:16px">370</div><div data-line-number="371" class="react-line-number react-code-text" style="padding-right:16px">371</div><div data-line-number="372" class="react-line-number react-code-text" style="padding-right:16px">372</div><div data-line-number="373" class="react-line-number react-code-text" style="padding-right:16px">373</div><div data-line-number="374" class="react-line-number react-code-text" style="padding-right:16px">374</div><div data-line-number="375" class="react-line-number react-code-text" style="padding-right:16px">375</div><div data-line-number="376" class="react-line-number react-code-text" style="padding-right:16px">376</div><div data-line-number="377" class="react-line-number react-code-text" style="padding-right:16px">377</div><div data-line-number="378" class="react-line-number react-code-text" style="padding-right:16px">378</div><div data-line-number="379" class="react-line-number react-code-text" style="padding-right:16px">379</div><div data-line-number="380" class="react-line-number react-code-text" style="padding-right:16px">380</div><div data-line-number="381" class="react-line-number react-code-text" style="padding-right:16px">381</div><div data-line-number="382" class="react-line-number react-code-text" style="padding-right:16px">382</div><div data-line-number="383" class="react-line-number react-code-text" style="padding-right:16px">383</div><div data-line-number="384" class="react-line-number react-code-text" style="padding-right:16px">384</div><div data-line-number="385" class="react-line-number react-code-text" style="padding-right:16px">385</div><div data-line-number="386" class="react-line-number react-code-text" style="padding-right:16px">386</div><div data-line-number="387" class="react-line-number react-code-text" style="padding-right:16px">387</div><div data-line-number="388" class="react-line-number react-code-text" style="padding-right:16px">388</div><div data-line-number="389" class="react-line-number react-code-text" style="padding-right:16px">389</div><div data-line-number="390" class="react-line-number react-code-text" style="padding-right:16px">390</div><div data-line-number="391" class="react-line-number react-code-text" style="padding-right:16px">391</div><div data-line-number="392" class="react-line-number react-code-text" style="padding-right:16px">392</div><div data-line-number="393" class="react-line-number react-code-text" style="padding-right:16px">393</div><div data-line-number="394" class="react-line-number react-code-text" style="padding-right:16px">394</div><div data-line-number="395" class="react-line-number react-code-text" style="padding-right:16px">395</div><div data-line-number="396" class="react-line-number react-code-text" style="padding-right:16px">396</div><div data-line-number="397" class="react-line-number react-code-text" style="padding-right:16px">397</div><div data-line-number="398" class="react-line-number react-code-text" style="padding-right:16px">398</div><div data-line-number="399" class="react-line-number react-code-text" style="padding-right:16px">399</div><div data-line-number="400" class="react-line-number react-code-text" style="padding-right:16px">400</div><div data-line-number="401" class="react-line-number react-code-text" style="padding-right:16px">401</div><div data-line-number="402" class="react-line-number react-code-text" style="padding-right:16px">402</div><div data-line-number="403" class="react-line-number react-code-text" style="padding-right:16px">403</div><div data-line-number="404" class="react-line-number react-code-text" style="padding-right:16px">404</div><div data-line-number="405" class="react-line-number react-code-text" style="padding-right:16px">405</div><div data-line-number="406" class="react-line-number react-code-text" style="padding-right:16px">406</div><div data-line-number="407" class="react-line-number react-code-text" style="padding-right:16px">407</div><div data-line-number="408" class="react-line-number react-code-text" style="padding-right:16px">408</div><div data-line-number="409" class="react-line-number react-code-text" style="padding-right:16px">409</div><div data-line-number="410" class="react-line-number react-code-text" style="padding-right:16px">410</div><div data-line-number="411" class="react-line-number react-code-text" style="padding-right:16px">411</div><div data-line-number="412" class="react-line-number react-code-text" style="padding-right:16px">412</div><div data-line-number="413" class="react-line-number react-code-text" style="padding-right:16px">413</div><div data-line-number="414" class="react-line-number react-code-text" style="padding-right:16px">414</div><div data-line-number="415" class="react-line-number react-code-text" style="padding-right:16px">415</div><div data-line-number="416" class="react-line-number react-code-text" style="padding-right:16px">416</div><div data-line-number="417" class="react-line-number react-code-text" style="padding-right:16px">417</div><div data-line-number="418" class="react-line-number react-code-text" style="padding-right:16px">418</div><div data-line-number="419" class="react-line-number react-code-text" style="padding-right:16px">419</div><div data-line-number="420" class="react-line-number react-code-text" style="padding-right:16px">420</div><div data-line-number="421" class="react-line-number react-code-text" style="padding-right:16px">421</div><div data-line-number="422" class="react-line-number react-code-text" style="padding-right:16px">422</div><div data-line-number="423" class="react-line-number react-code-text" style="padding-right:16px">423</div><div data-line-number="424" class="react-line-number react-code-text" style="padding-right:16px">424</div><div data-line-number="425" class="react-line-number react-code-text" style="padding-right:16px">425</div><div data-line-number="426" class="react-line-number react-code-text" style="padding-right:16px">426</div><div data-line-number="427" class="react-line-number react-code-text" style="padding-right:16px">427</div><div data-line-number="428" class="react-line-number react-code-text" style="padding-right:16px">428</div><div data-line-number="429" class="react-line-number react-code-text" style="padding-right:16px">429</div><div data-line-number="430" class="react-line-number react-code-text" style="padding-right:16px">430</div><div data-line-number="431" class="react-line-number react-code-text" style="padding-right:16px">431</div><div data-line-number="432" class="react-line-number react-code-text" style="padding-right:16px">432</div><div data-line-number="433" class="react-line-number react-code-text" style="padding-right:16px">433</div><div data-line-number="434" class="react-line-number react-code-text" style="padding-right:16px">434</div><div data-line-number="435" class="react-line-number react-code-text" style="padding-right:16px">435</div><div data-line-number="436" class="react-line-number react-code-text" style="padding-right:16px">436</div><div data-line-number="437" class="react-line-number react-code-text" style="padding-right:16px">437</div><div data-line-number="438" class="react-line-number react-code-text" style="padding-right:16px">438</div><div data-line-number="439" class="react-line-number react-code-text" style="padding-right:16px">439</div><div data-line-number="440" class="react-line-number react-code-text" style="padding-right:16px">440</div><div data-line-number="441" class="react-line-number react-code-text" style="padding-right:16px">441</div><div data-line-number="442" class="react-line-number react-code-text" style="padding-right:16px">442</div><div data-line-number="443" class="react-line-number react-code-text" style="padding-right:16px">443</div><div data-line-number="444" class="react-line-number react-code-text" style="padding-right:16px">444</div><div data-line-number="445" class="react-line-number react-code-text" style="padding-right:16px">445</div><div data-line-number="446" class="react-line-number react-code-text" style="padding-right:16px">446</div><div data-line-number="447" class="react-line-number react-code-text" style="padding-right:16px">447</div><div data-line-number="448" class="react-line-number react-code-text" style="padding-right:16px">448</div><div data-line-number="449" class="react-line-number react-code-text" style="padding-right:16px">449</div><div data-line-number="450" class="react-line-number react-code-text" style="padding-right:16px">450</div><div data-line-number="451" class="react-line-number react-code-text" style="padding-right:16px">451</div><div data-line-number="452" class="react-line-number react-code-text" style="padding-right:16px">452</div><div data-line-number="453" class="react-line-number react-code-text" style="padding-right:16px">453</div><div data-line-number="454" class="react-line-number react-code-text" style="padding-right:16px">454</div><div data-line-number="455" class="react-line-number react-code-text" style="padding-right:16px">455</div><div data-line-number="456" class="react-line-number react-code-text" style="padding-right:16px">456</div><div data-line-number="457" class="react-line-number react-code-text" style="padding-right:16px">457</div><div data-line-number="458" class="react-line-number react-code-text" style="padding-right:16px">458</div><div data-line-number="459" class="react-line-number react-code-text" style="padding-right:16px">459</div><div data-line-number="460" class="react-line-number react-code-text" style="padding-right:16px">460</div><div data-line-number="461" class="react-line-number react-code-text" style="padding-right:16px">461</div><div data-line-number="462" class="react-line-number react-code-text" style="padding-right:16px">462</div><div data-line-number="463" class="react-line-number react-code-text" style="padding-right:16px">463</div><div data-line-number="464" class="react-line-number react-code-text" style="padding-right:16px">464</div><div data-line-number="465" class="react-line-number react-code-text" style="padding-right:16px">465</div><div data-line-number="466" class="react-line-number react-code-text" style="padding-right:16px">466</div><div data-line-number="467" class="react-line-number react-code-text" style="padding-right:16px">467</div><div data-line-number="468" class="react-line-number react-code-text" style="padding-right:16px">468</div><div data-line-number="469" class="react-line-number react-code-text" style="padding-right:16px">469</div><div data-line-number="470" class="react-line-number react-code-text" style="padding-right:16px">470</div><div data-line-number="471" class="react-line-number react-code-text" style="padding-right:16px">471</div><div data-line-number="472" class="react-line-number react-code-text" style="padding-right:16px">472</div><div data-line-number="473" class="react-line-number react-code-text" style="padding-right:16px">473</div><div data-line-number="474" class="react-line-number react-code-text" style="padding-right:16px">474</div><div data-line-number="475" class="react-line-number react-code-text" style="padding-right:16px">475</div><div data-line-number="476" class="react-line-number react-code-text" style="padding-right:16px">476</div><div data-line-number="477" class="react-line-number react-code-text" style="padding-right:16px">477</div><div data-line-number="478" class="react-line-number react-code-text" style="padding-right:16px">478</div><div data-line-number="479" class="react-line-number react-code-text" style="padding-right:16px">479</div><div data-line-number="480" class="react-line-number react-code-text" style="padding-right:16px">480</div><div data-line-number="481" class="react-line-number react-code-text" style="padding-right:16px">481</div><div data-line-number="482" class="react-line-number react-code-text" style="padding-right:16px">482</div><div data-line-number="483" class="react-line-number react-code-text" style="padding-right:16px">483</div><div data-line-number="484" class="react-line-number react-code-text" style="padding-right:16px">484</div><div data-line-number="485" class="react-line-number react-code-text" style="padding-right:16px">485</div><div data-line-number="486" class="react-line-number react-code-text" style="padding-right:16px">486</div><div data-line-number="487" class="react-line-number react-code-text" style="padding-right:16px">487</div><div data-line-number="488" class="react-line-number react-code-text" style="padding-right:16px">488</div><div data-line-number="489" class="react-line-number react-code-text" style="padding-right:16px">489</div><div data-line-number="490" class="react-line-number react-code-text" style="padding-right:16px">490</div><div data-line-number="491" class="react-line-number react-code-text" style="padding-right:16px">491</div><div data-line-number="492" class="react-line-number react-code-text" style="padding-right:16px">492</div><div data-line-number="493" class="react-line-number react-code-text" style="padding-right:16px">493</div><div data-line-number="494" class="react-line-number react-code-text" style="padding-right:16px">494</div><div data-line-number="495" class="react-line-number react-code-text" style="padding-right:16px">495</div><div data-line-number="496" class="react-line-number react-code-text" style="padding-right:16px">496</div><div data-line-number="497" class="react-line-number react-code-text" style="padding-right:16px">497</div><div data-line-number="498" class="react-line-number react-code-text" style="padding-right:16px">498</div><div data-line-number="499" class="react-line-number react-code-text" style="padding-right:16px">499</div><div data-line-number="500" class="react-line-number react-code-text" style="padding-right:16px">500</div><div data-line-number="501" class="react-line-number react-code-text" style="padding-right:16px">501</div><div data-line-number="502" class="react-line-number react-code-text" style="padding-right:16px">502</div><div data-line-number="503" class="react-line-number react-code-text" style="padding-right:16px">503</div><div data-line-number="504" class="react-line-number react-code-text" style="padding-right:16px">504</div><div data-line-number="505" class="react-line-number react-code-text" style="padding-right:16px">505</div><div data-line-number="506" class="react-line-number react-code-text" style="padding-right:16px">506</div><div data-line-number="507" class="react-line-number react-code-text" style="padding-right:16px">507</div><div data-line-number="508" class="react-line-number react-code-text" style="padding-right:16px">508</div><div data-line-number="509" class="react-line-number react-code-text" style="padding-right:16px">509</div><div data-line-number="510" class="react-line-number react-code-text" style="padding-right:16px">510</div><div data-line-number="511" class="react-line-number react-code-text" style="padding-right:16px">511</div><div data-line-number="512" class="react-line-number react-code-text" style="padding-right:16px">512</div><div data-line-number="513" class="react-line-number react-code-text" style="padding-right:16px">513</div><div data-line-number="514" class="react-line-number react-code-text" style="padding-right:16px">514</div><div data-line-number="515" class="react-line-number react-code-text" style="padding-right:16px">515</div><div data-line-number="516" class="react-line-number react-code-text" style="padding-right:16px">516</div><div data-line-number="517" class="react-line-number react-code-text" style="padding-right:16px">517</div><div data-line-number="518" class="react-line-number react-code-text" style="padding-right:16px">518</div><div data-line-number="519" class="react-line-number react-code-text" style="padding-right:16px">519</div><div data-line-number="520" class="react-line-number react-code-text" style="padding-right:16px">520</div><div data-line-number="521" class="react-line-number react-code-text" style="padding-right:16px">521</div><div data-line-number="522" class="react-line-number react-code-text" style="padding-right:16px">522</div><div data-line-number="523" class="react-line-number react-code-text" style="padding-right:16px">523</div><div data-line-number="524" class="react-line-number react-code-text" style="padding-right:16px">524</div><div data-line-number="525" class="react-line-number react-code-text" style="padding-right:16px">525</div><div data-line-number="526" class="react-line-number react-code-text" style="padding-right:16px">526</div><div data-line-number="527" class="react-line-number react-code-text" style="padding-right:16px">527</div><div data-line-number="528" class="react-line-number react-code-text" style="padding-right:16px">528</div><div data-line-number="529" class="react-line-number react-code-text" style="padding-right:16px">529</div><div data-line-number="530" class="react-line-number react-code-text" style="padding-right:16px">530</div><div data-line-number="531" class="react-line-number react-code-text" style="padding-right:16px">531</div><div data-line-number="532" class="react-line-number react-code-text" style="padding-right:16px">532</div><div data-line-number="533" class="react-line-number react-code-text" style="padding-right:16px">533</div><div data-line-number="534" class="react-line-number react-code-text" style="padding-right:16px">534</div><div data-line-number="535" class="react-line-number react-code-text" style="padding-right:16px">535</div><div data-line-number="536" class="react-line-number react-code-text" style="padding-right:16px">536</div><div data-line-number="537" class="react-line-number react-code-text" style="padding-right:16px">537</div><div data-line-number="538" class="react-line-number react-code-text" style="padding-right:16px">538</div><div data-line-number="539" class="react-line-number react-code-text" style="padding-right:16px">539</div><div data-line-number="540" class="react-line-number react-code-text" style="padding-right:16px">540</div><div data-line-number="541" class="react-line-number react-code-text" style="padding-right:16px">541</div><div data-line-number="542" class="react-line-number react-code-text" style="padding-right:16px">542</div><div data-line-number="543" class="react-line-number react-code-text" style="padding-right:16px">543</div><div data-line-number="544" class="react-line-number react-code-text" style="padding-right:16px">544</div><div data-line-number="545" class="react-line-number react-code-text" style="padding-right:16px">545</div><div data-line-number="546" class="react-line-number react-code-text" style="padding-right:16px">546</div><div data-line-number="547" class="react-line-number react-code-text" style="padding-right:16px">547</div><div data-line-number="548" class="react-line-number react-code-text" style="padding-right:16px">548</div><div data-line-number="549" class="react-line-number react-code-text" style="padding-right:16px">549</div><div data-line-number="550" class="react-line-number react-code-text" style="padding-right:16px">550</div><div data-line-number="551" class="react-line-number react-code-text" style="padding-right:16px">551</div><div data-line-number="552" class="react-line-number react-code-text" style="padding-right:16px">552</div><div data-line-number="553" class="react-line-number react-code-text" style="padding-right:16px">553</div><div data-line-number="554" class="react-line-number react-code-text" style="padding-right:16px">554</div><div data-line-number="555" class="react-line-number react-code-text" style="padding-right:16px">555</div><div data-line-number="556" class="react-line-number react-code-text" style="padding-right:16px">556</div><div data-line-number="557" class="react-line-number react-code-text" style="padding-right:16px">557</div><div data-line-number="558" class="react-line-number react-code-text" style="padding-right:16px">558</div><div data-line-number="559" class="react-line-number react-code-text" style="padding-right:16px">559</div><div data-line-number="560" class="react-line-number react-code-text" style="padding-right:16px">560</div><div data-line-number="561" class="react-line-number react-code-text" style="padding-right:16px">561</div><div data-line-number="562" class="react-line-number react-code-text" style="padding-right:16px">562</div><div data-line-number="563" class="react-line-number react-code-text" style="padding-right:16px">563</div><div data-line-number="564" class="react-line-number react-code-text" style="padding-right:16px">564</div><div data-line-number="565" class="react-line-number react-code-text" style="padding-right:16px">565</div><div data-line-number="566" class="react-line-number react-code-text" style="padding-right:16px">566</div><div data-line-number="567" class="react-line-number react-code-text" style="padding-right:16px">567</div><div data-line-number="568" class="react-line-number react-code-text" style="padding-right:16px">568</div><div data-line-number="569" class="react-line-number react-code-text" style="padding-right:16px">569</div><div data-line-number="570" class="react-line-number react-code-text" style="padding-right:16px">570</div><div data-line-number="571" class="react-line-number react-code-text" style="padding-right:16px">571</div><div data-line-number="572" class="react-line-number react-code-text" style="padding-right:16px">572</div><div data-line-number="573" class="react-line-number react-code-text" style="padding-right:16px">573</div><div data-line-number="574" class="react-line-number react-code-text" style="padding-right:16px">574</div><div data-line-number="575" class="react-line-number react-code-text" style="padding-right:16px">575</div><div data-line-number="576" class="react-line-number react-code-text" style="padding-right:16px">576</div><div data-line-number="577" class="react-line-number react-code-text" style="padding-right:16px">577</div><div data-line-number="578" class="react-line-number react-code-text" style="padding-right:16px">578</div><div data-line-number="579" class="react-line-number react-code-text" style="padding-right:16px">579</div><div data-line-number="580" class="react-line-number react-code-text" style="padding-right:16px">580</div><div data-line-number="581" class="react-line-number react-code-text" style="padding-right:16px">581</div><div data-line-number="582" class="react-line-number react-code-text" style="padding-right:16px">582</div><div data-line-number="583" class="react-line-number react-code-text" style="padding-right:16px">583</div><div data-line-number="584" class="react-line-number react-code-text" style="padding-right:16px">584</div><div data-line-number="585" class="react-line-number react-code-text" style="padding-right:16px">585</div><div data-line-number="586" class="react-line-number react-code-text" style="padding-right:16px">586</div><div data-line-number="587" class="react-line-number react-code-text" style="padding-right:16px">587</div><div data-line-number="588" class="react-line-number react-code-text" style="padding-right:16px">588</div><div data-line-number="589" class="react-line-number react-code-text" style="padding-right:16px">589</div><div data-line-number="590" class="react-line-number react-code-text" style="padding-right:16px">590</div><div data-line-number="591" class="react-line-number react-code-text" style="padding-right:16px">591</div><div data-line-number="592" class="react-line-number react-code-text" style="padding-right:16px">592</div><div data-line-number="593" class="react-line-number react-code-text" style="padding-right:16px">593</div><div data-line-number="594" class="react-line-number react-code-text" style="padding-right:16px">594</div><div data-line-number="595" class="react-line-number react-code-text" style="padding-right:16px">595</div><div data-line-number="596" class="react-line-number react-code-text" style="padding-right:16px">596</div><div data-line-number="597" class="react-line-number react-code-text" style="padding-right:16px">597</div><div data-line-number="598" class="react-line-number react-code-text" style="padding-right:16px">598</div><div data-line-number="599" class="react-line-number react-code-text" style="padding-right:16px">599</div><div data-line-number="600" class="react-line-number react-code-text" style="padding-right:16px">600</div><div data-line-number="601" class="react-line-number react-code-text" style="padding-right:16px">601</div><div data-line-number="602" class="react-line-number react-code-text" style="padding-right:16px">602</div><div data-line-number="603" class="react-line-number react-code-text" style="padding-right:16px">603</div><div data-line-number="604" class="react-line-number react-code-text" style="padding-right:16px">604</div><div data-line-number="605" class="react-line-number react-code-text" style="padding-right:16px">605</div><div data-line-number="606" class="react-line-number react-code-text" style="padding-right:16px">606</div><div data-line-number="607" class="react-line-number react-code-text" style="padding-right:16px">607</div><div data-line-number="608" class="react-line-number react-code-text" style="padding-right:16px">608</div><div data-line-number="609" class="react-line-number react-code-text" style="padding-right:16px">609</div><div data-line-number="610" class="react-line-number react-code-text" style="padding-right:16px">610</div><div data-line-number="611" class="react-line-number react-code-text" style="padding-right:16px">611</div><div data-line-number="612" class="react-line-number react-code-text" style="padding-right:16px">612</div><div data-line-number="613" class="react-line-number react-code-text" style="padding-right:16px">613</div><div data-line-number="614" class="react-line-number react-code-text" style="padding-right:16px">614</div><div data-line-number="615" class="react-line-number react-code-text" style="padding-right:16px">615</div><div data-line-number="616" class="react-line-number react-code-text" style="padding-right:16px">616</div><div data-line-number="617" class="react-line-number react-code-text" style="padding-right:16px">617</div><div data-line-number="618" class="react-line-number react-code-text" style="padding-right:16px">618</div><div data-line-number="619" class="react-line-number react-code-text" style="padding-right:16px">619</div><div data-line-number="620" class="react-line-number react-code-text" style="padding-right:16px">620</div><div data-line-number="621" class="react-line-number react-code-text" style="padding-right:16px">621</div><div data-line-number="622" class="react-line-number react-code-text" style="padding-right:16px">622</div><div data-line-number="623" class="react-line-number react-code-text" style="padding-right:16px">623</div><div data-line-number="624" class="react-line-number react-code-text" style="padding-right:16px">624</div><div data-line-number="625" class="react-line-number react-code-text" style="padding-right:16px">625</div><div data-line-number="626" class="react-line-number react-code-text" style="padding-right:16px">626</div><div data-line-number="627" class="react-line-number react-code-text" style="padding-right:16px">627</div><div data-line-number="628" class="react-line-number react-code-text" style="padding-right:16px">628</div><div data-line-number="629" class="react-line-number react-code-text" style="padding-right:16px">629</div><div data-line-number="630" class="react-line-number react-code-text" style="padding-right:16px">630</div><div data-line-number="631" class="react-line-number react-code-text" style="padding-right:16px">631</div><div data-line-number="632" class="react-line-number react-code-text" style="padding-right:16px">632</div><div data-line-number="633" class="react-line-number react-code-text" style="padding-right:16px">633</div><div data-line-number="634" class="react-line-number react-code-text" style="padding-right:16px">634</div><div data-line-number="635" class="react-line-number react-code-text" style="padding-right:16px">635</div><div data-line-number="636" class="react-line-number react-code-text" style="padding-right:16px">636</div><div data-line-number="637" class="react-line-number react-code-text" style="padding-right:16px">637</div><div data-line-number="638" class="react-line-number react-code-text" style="padding-right:16px">638</div><div data-line-number="639" class="react-line-number react-code-text" style="padding-right:16px">639</div><div data-line-number="640" class="react-line-number react-code-text" style="padding-right:16px">640</div><div data-line-number="641" class="react-line-number react-code-text" style="padding-right:16px">641</div><div data-line-number="642" class="react-line-number react-code-text" style="padding-right:16px">642</div><div data-line-number="643" class="react-line-number react-code-text" style="padding-right:16px">643</div><div data-line-number="644" class="react-line-number react-code-text" style="padding-right:16px">644</div><div data-line-number="645" class="react-line-number react-code-text" style="padding-right:16px">645</div><div data-line-number="646" class="react-line-number react-code-text" style="padding-right:16px">646</div><div data-line-number="647" class="react-line-number react-code-text" style="padding-right:16px">647</div><div data-line-number="648" class="react-line-number react-code-text" style="padding-right:16px">648</div><div data-line-number="649" class="react-line-number react-code-text" style="padding-right:16px">649</div><div data-line-number="650" class="react-line-number react-code-text" style="padding-right:16px">650</div><div data-line-number="651" class="react-line-number react-code-text" style="padding-right:16px">651</div><div data-line-number="652" class="react-line-number react-code-text" style="padding-right:16px">652</div><div data-line-number="653" class="react-line-number react-code-text" style="padding-right:16px">653</div><div data-line-number="654" class="react-line-number react-code-text" style="padding-right:16px">654</div><div data-line-number="655" class="react-line-number react-code-text" style="padding-right:16px">655</div><div data-line-number="656" class="react-line-number react-code-text" style="padding-right:16px">656</div><div data-line-number="657" class="react-line-number react-code-text" style="padding-right:16px">657</div><div data-line-number="658" class="react-line-number react-code-text" style="padding-right:16px">658</div><div data-line-number="659" class="react-line-number react-code-text" style="padding-right:16px">659</div><div data-line-number="660" class="react-line-number react-code-text" style="padding-right:16px">660</div><div data-line-number="661" class="react-line-number react-code-text" style="padding-right:16px">661</div><div data-line-number="662" class="react-line-number react-code-text" style="padding-right:16px">662</div><div data-line-number="663" class="react-line-number react-code-text" style="padding-right:16px">663</div><div data-line-number="664" class="react-line-number react-code-text" style="padding-right:16px">664</div><div data-line-number="665" class="react-line-number react-code-text" style="padding-right:16px">665</div><div data-line-number="666" class="react-line-number react-code-text" style="padding-right:16px">666</div><div data-line-number="667" class="react-line-number react-code-text" style="padding-right:16px">667</div><div data-line-number="668" class="react-line-number react-code-text" style="padding-right:16px">668</div><div data-line-number="669" class="react-line-number react-code-text" style="padding-right:16px">669</div><div data-line-number="670" class="react-line-number react-code-text" style="padding-right:16px">670</div><div data-line-number="671" class="react-line-number react-code-text" style="padding-right:16px">671</div><div data-line-number="672" class="react-line-number react-code-text" style="padding-right:16px">672</div><div data-line-number="673" class="react-line-number react-code-text" style="padding-right:16px">673</div><div data-line-number="674" class="react-line-number react-code-text" style="padding-right:16px">674</div><div data-line-number="675" class="react-line-number react-code-text" style="padding-right:16px">675</div><div data-line-number="676" class="react-line-number react-code-text" style="padding-right:16px">676</div><div data-line-number="677" class="react-line-number react-code-text" style="padding-right:16px">677</div><div data-line-number="678" class="react-line-number react-code-text" style="padding-right:16px">678</div><div data-line-number="679" class="react-line-number react-code-text" style="padding-right:16px">679</div><div data-line-number="680" class="react-line-number react-code-text" style="padding-right:16px">680</div><div data-line-number="681" class="react-line-number react-code-text" style="padding-right:16px">681</div><div data-line-number="682" class="react-line-number react-code-text" style="padding-right:16px">682</div><div data-line-number="683" class="react-line-number react-code-text" style="padding-right:16px">683</div><div data-line-number="684" class="react-line-number react-code-text" style="padding-right:16px">684</div><div data-line-number="685" class="react-line-number react-code-text" style="padding-right:16px">685</div><div data-line-number="686" class="react-line-number react-code-text" style="padding-right:16px">686</div><div data-line-number="687" class="react-line-number react-code-text" style="padding-right:16px">687</div><div data-line-number="688" class="react-line-number react-code-text" style="padding-right:16px">688</div><div data-line-number="689" class="react-line-number react-code-text" style="padding-right:16px">689</div><div data-line-number="690" class="react-line-number react-code-text" style="padding-right:16px">690</div><div data-line-number="691" class="react-line-number react-code-text" style="padding-right:16px">691</div><div data-line-number="692" class="react-line-number react-code-text" style="padding-right:16px">692</div><div data-line-number="693" class="react-line-number react-code-text" style="padding-right:16px">693</div><div data-line-number="694" class="react-line-number react-code-text" style="padding-right:16px">694</div><div data-line-number="695" class="react-line-number react-code-text" style="padding-right:16px">695</div><div data-line-number="696" class="react-line-number react-code-text" style="padding-right:16px">696</div><div data-line-number="697" class="react-line-number react-code-text" style="padding-right:16px">697</div><div data-line-number="698" class="react-line-number react-code-text" style="padding-right:16px">698</div><div data-line-number="699" class="react-line-number react-code-text" style="padding-right:16px">699</div><div data-line-number="700" class="react-line-number react-code-text" style="padding-right:16px">700</div><div data-line-number="701" class="react-line-number react-code-text" style="padding-right:16px">701</div><div data-line-number="702" class="react-line-number react-code-text" style="padding-right:16px">702</div><div data-line-number="703" class="react-line-number react-code-text" style="padding-right:16px">703</div><div data-line-number="704" class="react-line-number react-code-text" style="padding-right:16px">704</div><div data-line-number="705" class="react-line-number react-code-text" style="padding-right:16px">705</div><div data-line-number="706" class="react-line-number react-code-text" style="padding-right:16px">706</div><div data-line-number="707" class="react-line-number react-code-text" style="padding-right:16px">707</div><div data-line-number="708" class="react-line-number react-code-text" style="padding-right:16px">708</div><div data-line-number="709" class="react-line-number react-code-text" style="padding-right:16px">709</div><div data-line-number="710" class="react-line-number react-code-text" style="padding-right:16px">710</div><div data-line-number="711" class="react-line-number react-code-text" style="padding-right:16px">711</div><div data-line-number="712" class="react-line-number react-code-text" style="padding-right:16px">712</div><div data-line-number="713" class="react-line-number react-code-text" style="padding-right:16px">713</div><div data-line-number="714" class="react-line-number react-code-text" style="padding-right:16px">714</div><div data-line-number="715" class="react-line-number react-code-text" style="padding-right:16px">715</div><div data-line-number="716" class="react-line-number react-code-text" style="padding-right:16px">716</div><div data-line-number="717" class="react-line-number react-code-text" style="padding-right:16px">717</div><div data-line-number="718" class="react-line-number react-code-text" style="padding-right:16px">718</div><div data-line-number="719" class="react-line-number react-code-text" style="padding-right:16px">719</div><div data-line-number="720" class="react-line-number react-code-text" style="padding-right:16px">720</div><div data-line-number="721" class="react-line-number react-code-text" style="padding-right:16px">721</div><div data-line-number="722" class="react-line-number react-code-text" style="padding-right:16px">722</div><div data-line-number="723" class="react-line-number react-code-text" style="padding-right:16px">723</div><div data-line-number="724" class="react-line-number react-code-text" style="padding-right:16px">724</div><div data-line-number="725" class="react-line-number react-code-text" style="padding-right:16px">725</div><div data-line-number="726" class="react-line-number react-code-text" style="padding-right:16px">726</div><div data-line-number="727" class="react-line-number react-code-text" style="padding-right:16px">727</div><div data-line-number="728" class="react-line-number react-code-text" style="padding-right:16px">728</div><div data-line-number="729" class="react-line-number react-code-text" style="padding-right:16px">729</div><div data-line-number="730" class="react-line-number react-code-text" style="padding-right:16px">730</div><div data-line-number="731" class="react-line-number react-code-text" style="padding-right:16px">731</div><div data-line-number="732" class="react-line-number react-code-text" style="padding-right:16px">732</div><div data-line-number="733" class="react-line-number react-code-text" style="padding-right:16px">733</div><div data-line-number="734" class="react-line-number react-code-text" style="padding-right:16px">734</div><div data-line-number="735" class="react-line-number react-code-text" style="padding-right:16px">735</div><div data-line-number="736" class="react-line-number react-code-text" style="padding-right:16px">736</div><div data-line-number="737" class="react-line-number react-code-text" style="padding-right:16px">737</div><div data-line-number="738" class="react-line-number react-code-text" style="padding-right:16px">738</div><div data-line-number="739" class="react-line-number react-code-text" style="padding-right:16px">739</div><div data-line-number="740" class="react-line-number react-code-text" style="padding-right:16px">740</div><div data-line-number="741" class="react-line-number react-code-text" style="padding-right:16px">741</div><div data-line-number="742" class="react-line-number react-code-text" style="padding-right:16px">742</div><div data-line-number="743" class="react-line-number react-code-text" style="padding-right:16px">743</div><div data-line-number="744" class="react-line-number react-code-text" style="padding-right:16px">744</div><div data-line-number="745" class="react-line-number react-code-text" style="padding-right:16px">745</div><div data-line-number="746" class="react-line-number react-code-text" style="padding-right:16px">746</div><div data-line-number="747" class="react-line-number react-code-text" style="padding-right:16px">747</div><div data-line-number="748" class="react-line-number react-code-text" style="padding-right:16px">748</div><div data-line-number="749" class="react-line-number react-code-text" style="padding-right:16px">749</div><div data-line-number="750" class="react-line-number react-code-text" style="padding-right:16px">750</div><div data-line-number="751" class="react-line-number react-code-text" style="padding-right:16px">751</div><div data-line-number="752" class="react-line-number react-code-text" style="padding-right:16px">752</div><div data-line-number="753" class="react-line-number react-code-text" style="padding-right:16px">753</div><div data-line-number="754" class="react-line-number react-code-text" style="padding-right:16px">754</div><div data-line-number="755" class="react-line-number react-code-text" style="padding-right:16px">755</div><div data-line-number="756" class="react-line-number react-code-text" style="padding-right:16px">756</div><div data-line-number="757" class="react-line-number react-code-text" style="padding-right:16px">757</div><div data-line-number="758" class="react-line-number react-code-text" style="padding-right:16px">758</div><div data-line-number="759" class="react-line-number react-code-text" style="padding-right:16px">759</div><div data-line-number="760" class="react-line-number react-code-text" style="padding-right:16px">760</div><div data-line-number="761" class="react-line-number react-code-text" style="padding-right:16px">761</div><div data-line-number="762" class="react-line-number react-code-text" style="padding-right:16px">762</div><div data-line-number="763" class="react-line-number react-code-text" style="padding-right:16px">763</div><div data-line-number="764" class="react-line-number react-code-text" style="padding-right:16px">764</div><div data-line-number="765" class="react-line-number react-code-text" style="padding-right:16px">765</div><div data-line-number="766" class="react-line-number react-code-text" style="padding-right:16px">766</div><div data-line-number="767" class="react-line-number react-code-text" style="padding-right:16px">767</div><div data-line-number="768" class="react-line-number react-code-text" style="padding-right:16px">768</div><div data-line-number="769" class="react-line-number react-code-text" style="padding-right:16px">769</div><div data-line-number="770" class="react-line-number react-code-text" style="padding-right:16px">770</div><div data-line-number="771" class="react-line-number react-code-text" style="padding-right:16px">771</div><div data-line-number="772" class="react-line-number react-code-text" style="padding-right:16px">772</div><div data-line-number="773" class="react-line-number react-code-text" style="padding-right:16px">773</div><div data-line-number="774" class="react-line-number react-code-text" style="padding-right:16px">774</div><div data-line-number="775" class="react-line-number react-code-text" style="padding-right:16px">775</div><div data-line-number="776" class="react-line-number react-code-text" style="padding-right:16px">776</div><div data-line-number="777" class="react-line-number react-code-text" style="padding-right:16px">777</div><div data-line-number="778" class="react-line-number react-code-text" style="padding-right:16px">778</div><div data-line-number="779" class="react-line-number react-code-text" style="padding-right:16px">779</div><div data-line-number="780" class="react-line-number react-code-text" style="padding-right:16px">780</div><div data-line-number="781" class="react-line-number react-code-text" style="padding-right:16px">781</div><div data-line-number="782" class="react-line-number react-code-text" style="padding-right:16px">782</div><div data-line-number="783" class="react-line-number react-code-text" style="padding-right:16px">783</div><div data-line-number="784" class="react-line-number react-code-text" style="padding-right:16px">784</div><div data-line-number="785" class="react-line-number react-code-text" style="padding-right:16px">785</div><div data-line-number="786" class="react-line-number react-code-text" style="padding-right:16px">786</div><div data-line-number="787" class="react-line-number react-code-text" style="padding-right:16px">787</div><div data-line-number="788" class="react-line-number react-code-text" style="padding-right:16px">788</div><div data-line-number="789" class="react-line-number react-code-text" style="padding-right:16px">789</div><div data-line-number="790" class="react-line-number react-code-text" style="padding-right:16px">790</div><div data-line-number="791" class="react-line-number react-code-text" style="padding-right:16px">791</div><div data-line-number="792" class="react-line-number react-code-text" style="padding-right:16px">792</div><div data-line-number="793" class="react-line-number react-code-text" style="padding-right:16px">793</div><div data-line-number="794" class="react-line-number react-code-text" style="padding-right:16px">794</div><div data-line-number="795" class="react-line-number react-code-text" style="padding-right:16px">795</div><div data-line-number="796" class="react-line-number react-code-text" style="padding-right:16px">796</div><div data-line-number="797" class="react-line-number react-code-text" style="padding-right:16px">797</div><div data-line-number="798" class="react-line-number react-code-text" style="padding-right:16px">798</div><div data-line-number="799" class="react-line-number react-code-text" style="padding-right:16px">799</div><div data-line-number="800" class="react-line-number react-code-text" style="padding-right:16px">800</div><div data-line-number="801" class="react-line-number react-code-text" style="padding-right:16px">801</div><div data-line-number="802" class="react-line-number react-code-text" style="padding-right:16px">802</div><div data-line-number="803" class="react-line-number react-code-text" style="padding-right:16px">803</div><div data-line-number="804" class="react-line-number react-code-text" style="padding-right:16px">804</div><div data-line-number="805" class="react-line-number react-code-text" style="padding-right:16px">805</div><div data-line-number="806" class="react-line-number react-code-text" style="padding-right:16px">806</div><div data-line-number="807" class="react-line-number react-code-text" style="padding-right:16px">807</div><div data-line-number="808" class="react-line-number react-code-text" style="padding-right:16px">808</div><div data-line-number="809" class="react-line-number react-code-text" style="padding-right:16px">809</div><div data-line-number="810" class="react-line-number react-code-text" style="padding-right:16px">810</div><div data-line-number="811" class="react-line-number react-code-text" style="padding-right:16px">811</div><div data-line-number="812" class="react-line-number react-code-text" style="padding-right:16px">812</div><div data-line-number="813" class="react-line-number react-code-text" style="padding-right:16px">813</div><div data-line-number="814" class="react-line-number react-code-text" style="padding-right:16px">814</div><div data-line-number="815" class="react-line-number react-code-text" style="padding-right:16px">815</div><div data-line-number="816" class="react-line-number react-code-text" style="padding-right:16px">816</div><div data-line-number="817" class="react-line-number react-code-text" style="padding-right:16px">817</div><div data-line-number="818" class="react-line-number react-code-text" style="padding-right:16px">818</div><div data-line-number="819" class="react-line-number react-code-text" style="padding-right:16px">819</div><div data-line-number="820" class="react-line-number react-code-text" style="padding-right:16px">820</div><div data-line-number="821" class="react-line-number react-code-text" style="padding-right:16px">821</div><div data-line-number="822" class="react-line-number react-code-text" style="padding-right:16px">822</div><div data-line-number="823" class="react-line-number react-code-text" style="padding-right:16px">823</div><div data-line-number="824" class="react-line-number react-code-text" style="padding-right:16px">824</div><div data-line-number="825" class="react-line-number react-code-text" style="padding-right:16px">825</div><div data-line-number="826" class="react-line-number react-code-text" style="padding-right:16px">826</div><div data-line-number="827" class="react-line-number react-code-text" style="padding-right:16px">827</div><div data-line-number="828" class="react-line-number react-code-text" style="padding-right:16px">828</div><div data-line-number="829" class="react-line-number react-code-text" style="padding-right:16px">829</div><div data-line-number="830" class="react-line-number react-code-text" style="padding-right:16px">830</div><div data-line-number="831" class="react-line-number react-code-text" style="padding-right:16px">831</div><div data-line-number="832" class="react-line-number react-code-text" style="padding-right:16px">832</div><div data-line-number="833" class="react-line-number react-code-text" style="padding-right:16px">833</div><div data-line-number="834" class="react-line-number react-code-text" style="padding-right:16px">834</div><div data-line-number="835" class="react-line-number react-code-text" style="padding-right:16px">835</div><div data-line-number="836" class="react-line-number react-code-text" style="padding-right:16px">836</div><div data-line-number="837" class="react-line-number react-code-text" style="padding-right:16px">837</div><div data-line-number="838" class="react-line-number react-code-text" style="padding-right:16px">838</div><div data-line-number="839" class="react-line-number react-code-text" style="padding-right:16px">839</div><div data-line-number="840" class="react-line-number react-code-text" style="padding-right:16px">840</div><div data-line-number="841" class="react-line-number react-code-text" style="padding-right:16px">841</div><div data-line-number="842" class="react-line-number react-code-text" style="padding-right:16px">842</div><div data-line-number="843" class="react-line-number react-code-text" style="padding-right:16px">843</div><div data-line-number="844" class="react-line-number react-code-text" style="padding-right:16px">844</div><div data-line-number="845" class="react-line-number react-code-text" style="padding-right:16px">845</div><div data-line-number="846" class="react-line-number react-code-text" style="padding-right:16px">846</div><div data-line-number="847" class="react-line-number react-code-text" style="padding-right:16px">847</div><div data-line-number="848" class="react-line-number react-code-text" style="padding-right:16px">848</div><div data-line-number="849" class="react-line-number react-code-text" style="padding-right:16px">849</div><div data-line-number="850" class="react-line-number react-code-text" style="padding-right:16px">850</div><div data-line-number="851" class="react-line-number react-code-text" style="padding-right:16px">851</div><div data-line-number="852" class="react-line-number react-code-text" style="padding-right:16px">852</div><div data-line-number="853" class="react-line-number react-code-text" style="padding-right:16px">853</div><div data-line-number="854" class="react-line-number react-code-text" style="padding-right:16px">854</div><div data-line-number="855" class="react-line-number react-code-text" style="padding-right:16px">855</div><div data-line-number="856" class="react-line-number react-code-text" style="padding-right:16px">856</div><div data-line-number="857" class="react-line-number react-code-text" style="padding-right:16px">857</div><div data-line-number="858" class="react-line-number react-code-text" style="padding-right:16px">858</div><div data-line-number="859" class="react-line-number react-code-text" style="padding-right:16px">859</div><div data-line-number="860" class="react-line-number react-code-text" style="padding-right:16px">860</div><div data-line-number="861" class="react-line-number react-code-text" style="padding-right:16px">861</div><div data-line-number="862" class="react-line-number react-code-text" style="padding-right:16px">862</div><div data-line-number="863" class="react-line-number react-code-text" style="padding-right:16px">863</div><div data-line-number="864" class="react-line-number react-code-text" style="padding-right:16px">864</div><div data-line-number="865" class="react-line-number react-code-text" style="padding-right:16px">865</div><div data-line-number="866" class="react-line-number react-code-text" style="padding-right:16px">866</div><div data-line-number="867" class="react-line-number react-code-text" style="padding-right:16px">867</div><div data-line-number="868" class="react-line-number react-code-text" style="padding-right:16px">868</div><div data-line-number="869" class="react-line-number react-code-text" style="padding-right:16px">869</div><div data-line-number="870" class="react-line-number react-code-text" style="padding-right:16px">870</div><div data-line-number="871" class="react-line-number react-code-text" style="padding-right:16px">871</div><div data-line-number="872" class="react-line-number react-code-text" style="padding-right:16px">872</div><div data-line-number="873" class="react-line-number react-code-text" style="padding-right:16px">873</div><div data-line-number="874" class="react-line-number react-code-text" style="padding-right:16px">874</div><div data-line-number="875" class="react-line-number react-code-text" style="padding-right:16px">875</div><div data-line-number="876" class="react-line-number react-code-text" style="padding-right:16px">876</div><div data-line-number="877" class="react-line-number react-code-text" style="padding-right:16px">877</div><div data-line-number="878" class="react-line-number react-code-text" style="padding-right:16px">878</div><div data-line-number="879" class="react-line-number react-code-text" style="padding-right:16px">879</div><div data-line-number="880" class="react-line-number react-code-text" style="padding-right:16px">880</div><div data-line-number="881" class="react-line-number react-code-text" style="padding-right:16px">881</div><div data-line-number="882" class="react-line-number react-code-text" style="padding-right:16px">882</div><div data-line-number="883" class="react-line-number react-code-text" style="padding-right:16px">883</div><div data-line-number="884" class="react-line-number react-code-text" style="padding-right:16px">884</div><div data-line-number="885" class="react-line-number react-code-text" style="padding-right:16px">885</div><div data-line-number="886" class="react-line-number react-code-text" style="padding-right:16px">886</div><div data-line-number="887" class="react-line-number react-code-text" style="padding-right:16px">887</div><div data-line-number="888" class="react-line-number react-code-text" style="padding-right:16px">888</div><div data-line-number="889" class="react-line-number react-code-text" style="padding-right:16px">889</div><div data-line-number="890" class="react-line-number react-code-text" style="padding-right:16px">890</div><div data-line-number="891" class="react-line-number react-code-text" style="padding-right:16px">891</div><div data-line-number="892" class="react-line-number react-code-text" style="padding-right:16px">892</div><div data-line-number="893" class="react-line-number react-code-text" style="padding-right:16px">893</div><div data-line-number="894" class="react-line-number react-code-text" style="padding-right:16px">894</div><div data-line-number="895" class="react-line-number react-code-text" style="padding-right:16px">895</div><div data-line-number="896" class="react-line-number react-code-text" style="padding-right:16px">896</div><div data-line-number="897" class="react-line-number react-code-text" style="padding-right:16px">897</div><div data-line-number="898" class="react-line-number react-code-text" style="padding-right:16px">898</div><div data-line-number="899" class="react-line-number react-code-text" style="padding-right:16px">899</div><div data-line-number="900" class="react-line-number react-code-text" style="padding-right:16px">900</div><div data-line-number="901" class="react-line-number react-code-text" style="padding-right:16px">901</div><div data-line-number="902" class="react-line-number react-code-text" style="padding-right:16px">902</div><div data-line-number="903" class="react-line-number react-code-text" style="padding-right:16px">903</div><div data-line-number="904" class="react-line-number react-code-text" style="padding-right:16px">904</div><div data-line-number="905" class="react-line-number react-code-text" style="padding-right:16px">905</div><div data-line-number="906" class="react-line-number react-code-text" style="padding-right:16px">906</div><div data-line-number="907" class="react-line-number react-code-text" style="padding-right:16px">907</div><div data-line-number="908" class="react-line-number react-code-text" style="padding-right:16px">908</div><div data-line-number="909" class="react-line-number react-code-text" style="padding-right:16px">909</div><div data-line-number="910" class="react-line-number react-code-text" style="padding-right:16px">910</div><div data-line-number="911" class="react-line-number react-code-text" style="padding-right:16px">911</div><div data-line-number="912" class="react-line-number react-code-text" style="padding-right:16px">912</div><div data-line-number="913" class="react-line-number react-code-text" style="padding-right:16px">913</div><div data-line-number="914" class="react-line-number react-code-text" style="padding-right:16px">914</div><div data-line-number="915" class="react-line-number react-code-text" style="padding-right:16px">915</div><div data-line-number="916" class="react-line-number react-code-text" style="padding-right:16px">916</div><div data-line-number="917" class="react-line-number react-code-text" style="padding-right:16px">917</div><div data-line-number="918" class="react-line-number react-code-text" style="padding-right:16px">918</div><div data-line-number="919" class="react-line-number react-code-text" style="padding-right:16px">919</div><div data-line-number="920" class="react-line-number react-code-text" style="padding-right:16px">920</div><div data-line-number="921" class="react-line-number react-code-text" style="padding-right:16px">921</div><div data-line-number="922" class="react-line-number react-code-text" style="padding-right:16px">922</div><div data-line-number="923" class="react-line-number react-code-text" style="padding-right:16px">923</div><div data-line-number="924" class="react-line-number react-code-text" style="padding-right:16px">924</div><div data-line-number="925" class="react-line-number react-code-text" style="padding-right:16px">925</div><div data-line-number="926" class="react-line-number react-code-text" style="padding-right:16px">926</div><div data-line-number="927" class="react-line-number react-code-text" style="padding-right:16px">927</div><div data-line-number="928" class="react-line-number react-code-text" style="padding-right:16px">928</div><div data-line-number="929" class="react-line-number react-code-text" style="padding-right:16px">929</div><div data-line-number="930" class="react-line-number react-code-text" style="padding-right:16px">930</div><div data-line-number="931" class="react-line-number react-code-text" style="padding-right:16px">931</div><div data-line-number="932" class="react-line-number react-code-text" style="padding-right:16px">932</div><div data-line-number="933" class="react-line-number react-code-text" style="padding-right:16px">933</div><div data-line-number="934" class="react-line-number react-code-text" style="padding-right:16px">934</div><div data-line-number="935" class="react-line-number react-code-text" style="padding-right:16px">935</div><div data-line-number="936" class="react-line-number react-code-text" style="padding-right:16px">936</div><div data-line-number="937" class="react-line-number react-code-text" style="padding-right:16px">937</div><div data-line-number="938" class="react-line-number react-code-text" style="padding-right:16px">938</div><div data-line-number="939" class="react-line-number react-code-text" style="padding-right:16px">939</div><div data-line-number="940" class="react-line-number react-code-text" style="padding-right:16px">940</div><div data-line-number="941" class="react-line-number react-code-text" style="padding-right:16px">941</div><div data-line-number="942" class="react-line-number react-code-text" style="padding-right:16px">942</div><div data-line-number="943" class="react-line-number react-code-text" style="padding-right:16px">943</div><div data-line-number="944" class="react-line-number react-code-text" style="padding-right:16px">944</div><div data-line-number="945" class="react-line-number react-code-text" style="padding-right:16px">945</div><div data-line-number="946" class="react-line-number react-code-text" style="padding-right:16px">946</div><div data-line-number="947" class="react-line-number react-code-text" style="padding-right:16px">947</div><div data-line-number="948" class="react-line-number react-code-text" style="padding-right:16px">948</div><div data-line-number="949" class="react-line-number react-code-text" style="padding-right:16px">949</div><div data-line-number="950" class="react-line-number react-code-text" style="padding-right:16px">950</div><div data-line-number="951" class="react-line-number react-code-text" style="padding-right:16px">951</div><div data-line-number="952" class="react-line-number react-code-text" style="padding-right:16px">952</div><div data-line-number="953" class="react-line-number react-code-text" style="padding-right:16px">953</div><div data-line-number="954" class="react-line-number react-code-text" style="padding-right:16px">954</div><div data-line-number="955" class="react-line-number react-code-text" style="padding-right:16px">955</div><div data-line-number="956" class="react-line-number react-code-text" style="padding-right:16px">956</div><div data-line-number="957" class="react-line-number react-code-text" style="padding-right:16px">957</div><div data-line-number="958" class="react-line-number react-code-text" style="padding-right:16px">958</div><div data-line-number="959" class="react-line-number react-code-text" style="padding-right:16px">959</div><div data-line-number="960" class="react-line-number react-code-text" style="padding-right:16px">960</div><div data-line-number="961" class="react-line-number react-code-text" style="padding-right:16px">961</div><div data-line-number="962" class="react-line-number react-code-text" style="padding-right:16px">962</div><div data-line-number="963" class="react-line-number react-code-text" style="padding-right:16px">963</div><div data-line-number="964" class="react-line-number react-code-text" style="padding-right:16px">964</div><div data-line-number="965" class="react-line-number react-code-text" style="padding-right:16px">965</div><div data-line-number="966" class="react-line-number react-code-text" style="padding-right:16px">966</div><div data-line-number="967" class="react-line-number react-code-text" style="padding-right:16px">967</div><div data-line-number="968" class="react-line-number react-code-text" style="padding-right:16px">968</div><div data-line-number="969" class="react-line-number react-code-text" style="padding-right:16px">969</div><div data-line-number="970" class="react-line-number react-code-text" style="padding-right:16px">970</div><div data-line-number="971" class="react-line-number react-code-text" style="padding-right:16px">971</div><div data-line-number="972" class="react-line-number react-code-text" style="padding-right:16px">972</div><div data-line-number="973" class="react-line-number react-code-text" style="padding-right:16px">973</div><div data-line-number="974" class="react-line-number react-code-text" style="padding-right:16px">974</div><div data-line-number="975" class="react-line-number react-code-text" style="padding-right:16px">975</div><div data-line-number="976" class="react-line-number react-code-text" style="padding-right:16px">976</div><div data-line-number="977" class="react-line-number react-code-text" style="padding-right:16px">977</div><div data-line-number="978" class="react-line-number react-code-text" style="padding-right:16px">978</div><div data-line-number="979" class="react-line-number react-code-text" style="padding-right:16px">979</div><div data-line-number="980" class="react-line-number react-code-text" style="padding-right:16px">980</div><div data-line-number="981" class="react-line-number react-code-text" style="padding-right:16px">981</div><div data-line-number="982" class="react-line-number react-code-text" style="padding-right:16px">982</div><div data-line-number="983" class="react-line-number react-code-text" style="padding-right:16px">983</div><div data-line-number="984" class="react-line-number react-code-text" style="padding-right:16px">984</div><div data-line-number="985" class="react-line-number react-code-text" style="padding-right:16px">985</div><div data-line-number="986" class="react-line-number react-code-text" style="padding-right:16px">986</div><div data-line-number="987" class="react-line-number react-code-text" style="padding-right:16px">987</div><div data-line-number="988" class="react-line-number react-code-text" style="padding-right:16px">988</div><div data-line-number="989" class="react-line-number react-code-text" style="padding-right:16px">989</div><div data-line-number="990" class="react-line-number react-code-text" style="padding-right:16px">990</div><div data-line-number="991" class="react-line-number react-code-text" style="padding-right:16px">991</div><div data-line-number="992" class="react-line-number react-code-text" style="padding-right:16px">992</div><div data-line-number="993" class="react-line-number react-code-text" style="padding-right:16px">993</div><div data-line-number="994" class="react-line-number react-code-text" style="padding-right:16px">994</div><div data-line-number="995" class="react-line-number react-code-text" style="padding-right:16px">995</div><div data-line-number="996" class="react-line-number react-code-text" style="padding-right:16px">996</div><div data-line-number="997" class="react-line-number react-code-text" style="padding-right:16px">997</div><div data-line-number="998" class="react-line-number react-code-text" style="padding-right:16px">998</div><div data-line-number="999" class="react-line-number react-code-text" style="padding-right:16px">999</div><div data-line-number="1000" class="react-line-number react-code-text" style="padding-right:16px">1000</div></div><div class="react-code-lines"><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC1" class="react-file-line html-div" data-testid="code-cell" data-line-number="1" style="position:relative"><span class="pl-c">/*</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC2" class="react-file-line html-div" data-testid="code-cell" data-line-number="2" style="position:relative"><span class="pl-c"> * xmloxide.h — C API for xmloxide</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC3" class="react-file-line html-div" data-testid="code-cell" data-line-number="3" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC4" class="react-file-line html-div" data-testid="code-cell" data-line-number="4" style="position:relative"><span class="pl-c"> * A memory-safe XML parsing library implemented in Rust.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC5" class="react-file-line html-div" data-testid="code-cell" data-line-number="5" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC6" class="react-file-line html-div" data-testid="code-cell" data-line-number="6" style="position:relative"><span class="pl-c"> * All returned strings are caller-owned and must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC7" class="react-file-line html-div" data-testid="code-cell" data-line-number="7" style="position:relative"><span class="pl-c"> * xmloxide_free_string(). Document and XPath result pointers must be</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC8" class="react-file-line html-div" data-testid="code-cell" data-line-number="8" style="position:relative"><span class="pl-c"> * freed with their respective free functions.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC9" class="react-file-line html-div" data-testid="code-cell" data-line-number="9" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC10" class="react-file-line html-div" data-testid="code-cell" data-line-number="10" style="position:relative"><span class="pl-c"> * Error handling: functions that can fail return NULL (for pointers)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC11" class="react-file-line html-div" data-testid="code-cell" data-line-number="11" style="position:relative"><span class="pl-c"> * or 0 (for node ids). Call xmloxide_last_error() to retrieve the</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC12" class="react-file-line html-div" data-testid="code-cell" data-line-number="12" style="position:relative"><span class="pl-c"> * error message for the most recent failure on the current thread.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC13" class="react-file-line html-div" data-testid="code-cell" data-line-number="13" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC14" class="react-file-line html-div" data-testid="code-cell" data-line-number="14" style="position:relative"><span class="pl-c"> * Thread safety: Unlike libxml2, xmloxide requires no global</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC15" class="react-file-line html-div" data-testid="code-cell" data-line-number="15" style="position:relative"><span class="pl-c"> * initialization or cleanup. Each document is independent and may be</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC16" class="react-file-line html-div" data-testid="code-cell" data-line-number="16" style="position:relative"><span class="pl-c"> * used from any thread. The last-error message is stored in thread-local</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC17" class="react-file-line html-div" data-testid="code-cell" data-line-number="17" style="position:relative"><span class="pl-c"> * storage, so each thread has its own error state. A single document</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC18" class="react-file-line html-div" data-testid="code-cell" data-line-number="18" style="position:relative"><span class="pl-c"> * must not be accessed concurrently from multiple threads without</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC19" class="react-file-line html-div" data-testid="code-cell" data-line-number="19" style="position:relative"><span class="pl-c"> * external synchronization.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC20" class="react-file-line html-div" data-testid="code-cell" data-line-number="20" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC21" class="react-file-line html-div" data-testid="code-cell" data-line-number="21" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC22" class="react-file-line html-div" data-testid="code-cell" data-line-number="22" style="position:relative"><span class="pl-k">#ifndef</span> <span class="pl-c1">XMLOXIDE_H</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC23" class="react-file-line html-div" data-testid="code-cell" data-line-number="23" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_H</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC24" class="react-file-line html-div" data-testid="code-cell" data-line-number="24" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC25" class="react-file-line html-div" data-testid="code-cell" data-line-number="25" style="position:relative"><span class="pl-k">#include</span> <span class="pl-s">&lt;stddef.h&gt;</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC26" class="react-file-line html-div" data-testid="code-cell" data-line-number="26" style="position:relative"><span class="pl-k">#include</span> <span class="pl-s">&lt;stdint.h&gt;</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC27" class="react-file-line html-div" data-testid="code-cell" data-line-number="27" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC28" class="react-file-line html-div" data-testid="code-cell" data-line-number="28" style="position:relative"><span class="pl-k">#ifdef</span> <span class="pl-s1">__cplusplus</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC29" class="react-file-line html-div" data-testid="code-cell" data-line-number="29" style="position:relative"><span class="pl-k">extern</span> <span class="pl-s">&quot;C&quot;</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC30" class="react-file-line html-div" data-testid="code-cell" data-line-number="30" style="position:relative"><span class="pl-k">#endif</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC31" class="react-file-line html-div" data-testid="code-cell" data-line-number="31" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC32" class="react-file-line html-div" data-testid="code-cell" data-line-number="32" style="position:relative"><span class="pl-c">/* ---------- Opaque types ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC33" class="react-file-line html-div" data-testid="code-cell" data-line-number="33" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC34" class="react-file-line html-div" data-testid="code-cell" data-line-number="34" style="position:relative"><span class="pl-c">/** Opaque XML document handle. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC35" class="react-file-line html-div" data-testid="code-cell" data-line-number="35" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-k">struct</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-smi">xmloxide_document</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC36" class="react-file-line html-div" data-testid="code-cell" data-line-number="36" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC37" class="react-file-line html-div" data-testid="code-cell" data-line-number="37" style="position:relative"><span class="pl-c">/** Opaque XPath result handle. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC38" class="react-file-line html-div" data-testid="code-cell" data-line-number="38" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-k">struct</span> <span class="pl-smi">xmloxide_xpath_value</span> <span class="pl-smi">xmloxide_xpath_value</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC39" class="react-file-line html-div" data-testid="code-cell" data-line-number="39" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC40" class="react-file-line html-div" data-testid="code-cell" data-line-number="40" style="position:relative"><span class="pl-c">/** Opaque DTD handle. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC41" class="react-file-line html-div" data-testid="code-cell" data-line-number="41" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-k">struct</span> <span class="pl-smi">xmloxide_dtd</span> <span class="pl-smi">xmloxide_dtd</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC42" class="react-file-line html-div" data-testid="code-cell" data-line-number="42" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC43" class="react-file-line html-div" data-testid="code-cell" data-line-number="43" style="position:relative"><span class="pl-c">/** Opaque RelaxNG schema handle. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC44" class="react-file-line html-div" data-testid="code-cell" data-line-number="44" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-k">struct</span> <span class="pl-smi">xmloxide_relaxng_schema</span> <span class="pl-smi">xmloxide_relaxng_schema</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC45" class="react-file-line html-div" data-testid="code-cell" data-line-number="45" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC46" class="react-file-line html-div" data-testid="code-cell" data-line-number="46" style="position:relative"><span class="pl-c">/** Opaque XSD schema handle. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC47" class="react-file-line html-div" data-testid="code-cell" data-line-number="47" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-k">struct</span> <span class="pl-smi">xmloxide_xsd_schema</span> <span class="pl-smi">xmloxide_xsd_schema</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC48" class="react-file-line html-div" data-testid="code-cell" data-line-number="48" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC49" class="react-file-line html-div" data-testid="code-cell" data-line-number="49" style="position:relative"><span class="pl-c">/** Opaque Schematron schema handle. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC50" class="react-file-line html-div" data-testid="code-cell" data-line-number="50" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-k">struct</span> <span class="pl-smi">xmloxide_schematron_schema</span> <span class="pl-smi">xmloxide_schematron_schema</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC51" class="react-file-line html-div" data-testid="code-cell" data-line-number="51" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC52" class="react-file-line html-div" data-testid="code-cell" data-line-number="52" style="position:relative"><span class="pl-c">/** Opaque validation result handle. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC53" class="react-file-line html-div" data-testid="code-cell" data-line-number="53" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-k">struct</span> <span class="pl-smi">xmloxide_validation_result</span> <span class="pl-smi">xmloxide_validation_result</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC54" class="react-file-line html-div" data-testid="code-cell" data-line-number="54" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC55" class="react-file-line html-div" data-testid="code-cell" data-line-number="55" style="position:relative"><span class="pl-c">/** Opaque XML Catalog handle. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC56" class="react-file-line html-div" data-testid="code-cell" data-line-number="56" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-k">struct</span> <span class="pl-smi">xmloxide_catalog</span> <span class="pl-smi">xmloxide_catalog</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC57" class="react-file-line html-div" data-testid="code-cell" data-line-number="57" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC58" class="react-file-line html-div" data-testid="code-cell" data-line-number="58" style="position:relative"><span class="pl-c">/** Opaque push parser handle. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC59" class="react-file-line html-div" data-testid="code-cell" data-line-number="59" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-k">struct</span> <span class="pl-smi">xmloxide_push_parser</span> <span class="pl-smi">xmloxide_push_parser</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC60" class="react-file-line html-div" data-testid="code-cell" data-line-number="60" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC61" class="react-file-line html-div" data-testid="code-cell" data-line-number="61" style="position:relative"><span class="pl-c">/** Opaque XML reader handle. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC62" class="react-file-line html-div" data-testid="code-cell" data-line-number="62" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-k">struct</span> <span class="pl-smi">xmloxide_reader</span> <span class="pl-smi">xmloxide_reader</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC63" class="react-file-line html-div" data-testid="code-cell" data-line-number="63" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC64" class="react-file-line html-div" data-testid="code-cell" data-line-number="64" style="position:relative"><span class="pl-c">/* ---------- Node type constants ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC65" class="react-file-line html-div" data-testid="code-cell" data-line-number="65" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC66" class="react-file-line html-div" data-testid="code-cell" data-line-number="66" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_NODE_ELEMENT</span>       1</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC67" class="react-file-line html-div" data-testid="code-cell" data-line-number="67" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_NODE_TEXT</span>          3</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC68" class="react-file-line html-div" data-testid="code-cell" data-line-number="68" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_NODE_CDATA</span>        4</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC69" class="react-file-line html-div" data-testid="code-cell" data-line-number="69" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_NODE_ENTITY_REF</span>   5</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC70" class="react-file-line html-div" data-testid="code-cell" data-line-number="70" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_NODE_PI</span>           7</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC71" class="react-file-line html-div" data-testid="code-cell" data-line-number="71" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_NODE_COMMENT</span>      8</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC72" class="react-file-line html-div" data-testid="code-cell" data-line-number="72" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_NODE_DOCUMENT</span>     9</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC73" class="react-file-line html-div" data-testid="code-cell" data-line-number="73" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_NODE_DOCUMENT_TYPE</span> 10</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC74" class="react-file-line html-div" data-testid="code-cell" data-line-number="74" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC75" class="react-file-line html-div" data-testid="code-cell" data-line-number="75" style="position:relative"><span class="pl-c">/* ---------- XPath result type constants ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC76" class="react-file-line html-div" data-testid="code-cell" data-line-number="76" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC77" class="react-file-line html-div" data-testid="code-cell" data-line-number="77" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_XPATH_NODESET</span>  1</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC78" class="react-file-line html-div" data-testid="code-cell" data-line-number="78" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_XPATH_BOOLEAN</span>  2</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC79" class="react-file-line html-div" data-testid="code-cell" data-line-number="79" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_XPATH_NUMBER</span>   3</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC80" class="react-file-line html-div" data-testid="code-cell" data-line-number="80" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_XPATH_STRING</span>   4</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC81" class="react-file-line html-div" data-testid="code-cell" data-line-number="81" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC82" class="react-file-line html-div" data-testid="code-cell" data-line-number="82" style="position:relative"><span class="pl-c">/* ---------- Error severity constants ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC83" class="react-file-line html-div" data-testid="code-cell" data-line-number="83" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC84" class="react-file-line html-div" data-testid="code-cell" data-line-number="84" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_ERR_WARNING</span>  0</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC85" class="react-file-line html-div" data-testid="code-cell" data-line-number="85" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_ERR_ERROR</span>    1</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC86" class="react-file-line html-div" data-testid="code-cell" data-line-number="86" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_ERR_FATAL</span>    2</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC87" class="react-file-line html-div" data-testid="code-cell" data-line-number="87" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC88" class="react-file-line html-div" data-testid="code-cell" data-line-number="88" style="position:relative"><span class="pl-c">/* ---------- Error handling ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC89" class="react-file-line html-div" data-testid="code-cell" data-line-number="89" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC90" class="react-file-line html-div" data-testid="code-cell" data-line-number="90" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC91" class="react-file-line html-div" data-testid="code-cell" data-line-number="91" style="position:relative"><span class="pl-c"> * Returns the last error message, or NULL if no error occurred.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC92" class="react-file-line html-div" data-testid="code-cell" data-line-number="92" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC93" class="react-file-line html-div" data-testid="code-cell" data-line-number="93" style="position:relative"><span class="pl-c"> * The returned string is owned by the library and must NOT be freed.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC94" class="react-file-line html-div" data-testid="code-cell" data-line-number="94" style="position:relative"><span class="pl-c"> * It is valid until the next xmloxide FFI call on the same thread.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC95" class="react-file-line html-div" data-testid="code-cell" data-line-number="95" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC96" class="react-file-line html-div" data-testid="code-cell" data-line-number="96" style="position:relative"><span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_last_error</span>(<span class="pl-smi">void</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC97" class="react-file-line html-div" data-testid="code-cell" data-line-number="97" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC98" class="react-file-line html-div" data-testid="code-cell" data-line-number="98" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC99" class="react-file-line html-div" data-testid="code-cell" data-line-number="99" style="position:relative"><span class="pl-c"> * Returns the line number where the last error occurred, or 0 if unknown.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC100" class="react-file-line html-div" data-testid="code-cell" data-line-number="100" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC101" class="react-file-line html-div" data-testid="code-cell" data-line-number="101" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_last_error_line</span>(<span class="pl-smi">void</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC102" class="react-file-line html-div" data-testid="code-cell" data-line-number="102" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC103" class="react-file-line html-div" data-testid="code-cell" data-line-number="103" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC104" class="react-file-line html-div" data-testid="code-cell" data-line-number="104" style="position:relative"><span class="pl-c"> * Returns the column number where the last error occurred, or 0 if unknown.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC105" class="react-file-line html-div" data-testid="code-cell" data-line-number="105" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC106" class="react-file-line html-div" data-testid="code-cell" data-line-number="106" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_last_error_column</span>(<span class="pl-smi">void</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC107" class="react-file-line html-div" data-testid="code-cell" data-line-number="107" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC108" class="react-file-line html-div" data-testid="code-cell" data-line-number="108" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC109" class="react-file-line html-div" data-testid="code-cell" data-line-number="109" style="position:relative"><span class="pl-c"> * Returns the severity of the last error.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC110" class="react-file-line html-div" data-testid="code-cell" data-line-number="110" style="position:relative"><span class="pl-c"> * Returns XMLOXIDE_ERR_WARNING (0), XMLOXIDE_ERR_ERROR (1),</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC111" class="react-file-line html-div" data-testid="code-cell" data-line-number="111" style="position:relative"><span class="pl-c"> * or XMLOXIDE_ERR_FATAL (2). Returns -1 if no error occurred.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC112" class="react-file-line html-div" data-testid="code-cell" data-line-number="112" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC113" class="react-file-line html-div" data-testid="code-cell" data-line-number="113" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_last_error_severity</span>(<span class="pl-smi">void</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC114" class="react-file-line html-div" data-testid="code-cell" data-line-number="114" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC115" class="react-file-line html-div" data-testid="code-cell" data-line-number="115" style="position:relative"><span class="pl-c">/* ---------- Document lifecycle ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC116" class="react-file-line html-div" data-testid="code-cell" data-line-number="116" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC117" class="react-file-line html-div" data-testid="code-cell" data-line-number="117" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC118" class="react-file-line html-div" data-testid="code-cell" data-line-number="118" style="position:relative"><span class="pl-c"> * Parses a null-terminated UTF-8 XML string into a document.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC119" class="react-file-line html-div" data-testid="code-cell" data-line-number="119" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC120" class="react-file-line html-div" data-testid="code-cell" data-line-number="120" style="position:relative"><span class="pl-c"> * Returns a document pointer on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC121" class="react-file-line html-div" data-testid="code-cell" data-line-number="121" style="position:relative"><span class="pl-c"> * The returned document must be freed with xmloxide_free_doc().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC122" class="react-file-line html-div" data-testid="code-cell" data-line-number="122" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC123" class="react-file-line html-div" data-testid="code-cell" data-line-number="123" style="position:relative"><span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_parse_str</span>(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">input</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC124" class="react-file-line html-div" data-testid="code-cell" data-line-number="124" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC125" class="react-file-line html-div" data-testid="code-cell" data-line-number="125" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC126" class="react-file-line html-div" data-testid="code-cell" data-line-number="126" style="position:relative"><span class="pl-c"> * Parses raw bytes as XML, with automatic encoding detection.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC127" class="react-file-line html-div" data-testid="code-cell" data-line-number="127" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC128" class="react-file-line html-div" data-testid="code-cell" data-line-number="128" style="position:relative"><span class="pl-c"> * Returns a document pointer on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC129" class="react-file-line html-div" data-testid="code-cell" data-line-number="129" style="position:relative"><span class="pl-c"> * The returned document must be freed with xmloxide_free_doc().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC130" class="react-file-line html-div" data-testid="code-cell" data-line-number="130" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC131" class="react-file-line html-div" data-testid="code-cell" data-line-number="131" style="position:relative"><span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_parse_bytes</span>(<span class="pl-k">const</span> <span class="pl-smi">uint8_t</span> <span class="pl-c1">*</span><span class="pl-s1">data</span>, <span class="pl-smi">size_t</span> <span class="pl-s1">len</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC132" class="react-file-line html-div" data-testid="code-cell" data-line-number="132" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC133" class="react-file-line html-div" data-testid="code-cell" data-line-number="133" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC134" class="react-file-line html-div" data-testid="code-cell" data-line-number="134" style="position:relative"><span class="pl-c"> * Parses an HTML string into a document.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC135" class="react-file-line html-div" data-testid="code-cell" data-line-number="135" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC136" class="react-file-line html-div" data-testid="code-cell" data-line-number="136" style="position:relative"><span class="pl-c"> * Returns a document pointer on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC137" class="react-file-line html-div" data-testid="code-cell" data-line-number="137" style="position:relative"><span class="pl-c"> * The returned document must be freed with xmloxide_free_doc().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC138" class="react-file-line html-div" data-testid="code-cell" data-line-number="138" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC139" class="react-file-line html-div" data-testid="code-cell" data-line-number="139" style="position:relative"><span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_parse_html</span>(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">input</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC140" class="react-file-line html-div" data-testid="code-cell" data-line-number="140" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC141" class="react-file-line html-div" data-testid="code-cell" data-line-number="141" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC142" class="react-file-line html-div" data-testid="code-cell" data-line-number="142" style="position:relative"><span class="pl-c"> * Parses an HTML5 string using the WHATWG parsing algorithm.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC143" class="react-file-line html-div" data-testid="code-cell" data-line-number="143" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC144" class="react-file-line html-div" data-testid="code-cell" data-line-number="144" style="position:relative"><span class="pl-c"> * Returns a document pointer on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC145" class="react-file-line html-div" data-testid="code-cell" data-line-number="145" style="position:relative"><span class="pl-c"> * The returned document must be freed with xmloxide_free_doc().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC146" class="react-file-line html-div" data-testid="code-cell" data-line-number="146" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC147" class="react-file-line html-div" data-testid="code-cell" data-line-number="147" style="position:relative"><span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_parse_html5</span>(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">input</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC148" class="react-file-line html-div" data-testid="code-cell" data-line-number="148" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC149" class="react-file-line html-div" data-testid="code-cell" data-line-number="149" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC150" class="react-file-line html-div" data-testid="code-cell" data-line-number="150" style="position:relative"><span class="pl-c"> * Parses an HTML5 fragment with a context element (the innerHTML algorithm).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC151" class="react-file-line html-div" data-testid="code-cell" data-line-number="151" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC152" class="react-file-line html-div" data-testid="code-cell" data-line-number="152" style="position:relative"><span class="pl-c"> * context_element is the tag name of the context (e.g., &quot;body&quot;, &quot;div&quot;, &quot;table&quot;).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC153" class="react-file-line html-div" data-testid="code-cell" data-line-number="153" style="position:relative"><span class="pl-c"> * Returns a document pointer on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC154" class="react-file-line html-div" data-testid="code-cell" data-line-number="154" style="position:relative"><span class="pl-c"> * The returned document must be freed with xmloxide_free_doc().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC155" class="react-file-line html-div" data-testid="code-cell" data-line-number="155" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC156" class="react-file-line html-div" data-testid="code-cell" data-line-number="156" style="position:relative"><span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_parse_html5_fragment</span>(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">input</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC157" class="react-file-line html-div" data-testid="code-cell" data-line-number="157" style="position:relative">                                                  <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">context_element</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC158" class="react-file-line html-div" data-testid="code-cell" data-line-number="158" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC159" class="react-file-line html-div" data-testid="code-cell" data-line-number="159" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC160" class="react-file-line html-div" data-testid="code-cell" data-line-number="160" style="position:relative"><span class="pl-c"> * Parses an XML file from a filesystem path.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC161" class="react-file-line html-div" data-testid="code-cell" data-line-number="161" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC162" class="react-file-line html-div" data-testid="code-cell" data-line-number="162" style="position:relative"><span class="pl-c"> * Returns a document pointer on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC163" class="react-file-line html-div" data-testid="code-cell" data-line-number="163" style="position:relative"><span class="pl-c"> * The returned document must be freed with xmloxide_free_doc().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC164" class="react-file-line html-div" data-testid="code-cell" data-line-number="164" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC165" class="react-file-line html-div" data-testid="code-cell" data-line-number="165" style="position:relative"><span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_parse_file</span>(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">path</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC166" class="react-file-line html-div" data-testid="code-cell" data-line-number="166" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC167" class="react-file-line html-div" data-testid="code-cell" data-line-number="167" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC168" class="react-file-line html-div" data-testid="code-cell" data-line-number="168" style="position:relative"><span class="pl-c"> * Frees a document previously returned by a parse function.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC169" class="react-file-line html-div" data-testid="code-cell" data-line-number="169" style="position:relative"><span class="pl-c"> * Passing NULL is safe and does nothing.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC170" class="react-file-line html-div" data-testid="code-cell" data-line-number="170" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC171" class="react-file-line html-div" data-testid="code-cell" data-line-number="171" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_free_doc</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC172" class="react-file-line html-div" data-testid="code-cell" data-line-number="172" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC173" class="react-file-line html-div" data-testid="code-cell" data-line-number="173" style="position:relative"><span class="pl-c">/* ---------- Document properties ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC174" class="react-file-line html-div" data-testid="code-cell" data-line-number="174" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC175" class="react-file-line html-div" data-testid="code-cell" data-line-number="175" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC176" class="react-file-line html-div" data-testid="code-cell" data-line-number="176" style="position:relative"><span class="pl-c"> * Returns the XML version string (e.g., &quot;1.0&quot;), or NULL if not declared.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC177" class="react-file-line html-div" data-testid="code-cell" data-line-number="177" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC178" class="react-file-line html-div" data-testid="code-cell" data-line-number="178" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC179" class="react-file-line html-div" data-testid="code-cell" data-line-number="179" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_doc_version</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC180" class="react-file-line html-div" data-testid="code-cell" data-line-number="180" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC181" class="react-file-line html-div" data-testid="code-cell" data-line-number="181" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC182" class="react-file-line html-div" data-testid="code-cell" data-line-number="182" style="position:relative"><span class="pl-c"> * Returns the encoding string (e.g., &quot;UTF-8&quot;), or NULL if not declared.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC183" class="react-file-line html-div" data-testid="code-cell" data-line-number="183" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC184" class="react-file-line html-div" data-testid="code-cell" data-line-number="184" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC185" class="react-file-line html-div" data-testid="code-cell" data-line-number="185" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_doc_encoding</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC186" class="react-file-line html-div" data-testid="code-cell" data-line-number="186" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC187" class="react-file-line html-div" data-testid="code-cell" data-line-number="187" style="position:relative"><span class="pl-c">/* ---------- Document diagnostics ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC188" class="react-file-line html-div" data-testid="code-cell" data-line-number="188" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC189" class="react-file-line html-div" data-testid="code-cell" data-line-number="189" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC190" class="react-file-line html-div" data-testid="code-cell" data-line-number="190" style="position:relative"><span class="pl-c"> * Returns the number of parse diagnostics (warnings + recovered errors)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC191" class="react-file-line html-div" data-testid="code-cell" data-line-number="191" style="position:relative"><span class="pl-c"> * on a document. Returns 0 if the document has no diagnostics.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC192" class="react-file-line html-div" data-testid="code-cell" data-line-number="192" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC193" class="react-file-line html-div" data-testid="code-cell" data-line-number="193" style="position:relative"><span class="pl-smi">size_t</span> <span class="pl-en">xmloxide_doc_diagnostic_count</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC194" class="react-file-line html-div" data-testid="code-cell" data-line-number="194" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC195" class="react-file-line html-div" data-testid="code-cell" data-line-number="195" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC196" class="react-file-line html-div" data-testid="code-cell" data-line-number="196" style="position:relative"><span class="pl-c"> * Returns the error message of the diagnostic at the given index.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC197" class="react-file-line html-div" data-testid="code-cell" data-line-number="197" style="position:relative"><span class="pl-c"> * Returns NULL if out of range.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC198" class="react-file-line html-div" data-testid="code-cell" data-line-number="198" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC199" class="react-file-line html-div" data-testid="code-cell" data-line-number="199" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC200" class="react-file-line html-div" data-testid="code-cell" data-line-number="200" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_doc_diagnostic_message</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">size_t</span> <span class="pl-s1">index</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC201" class="react-file-line html-div" data-testid="code-cell" data-line-number="201" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC202" class="react-file-line html-div" data-testid="code-cell" data-line-number="202" style="position:relative"><span class="pl-c">/** Returns the line number of the diagnostic at the given index (0 if unknown). */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC203" class="react-file-line html-div" data-testid="code-cell" data-line-number="203" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_doc_diagnostic_line</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">size_t</span> <span class="pl-s1">index</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC204" class="react-file-line html-div" data-testid="code-cell" data-line-number="204" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC205" class="react-file-line html-div" data-testid="code-cell" data-line-number="205" style="position:relative"><span class="pl-c">/** Returns the column number of the diagnostic at the given index (0 if unknown). */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC206" class="react-file-line html-div" data-testid="code-cell" data-line-number="206" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_doc_diagnostic_column</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">size_t</span> <span class="pl-s1">index</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC207" class="react-file-line html-div" data-testid="code-cell" data-line-number="207" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC208" class="react-file-line html-div" data-testid="code-cell" data-line-number="208" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC209" class="react-file-line html-div" data-testid="code-cell" data-line-number="209" style="position:relative"><span class="pl-c"> * Returns the severity of the diagnostic at the given index.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC210" class="react-file-line html-div" data-testid="code-cell" data-line-number="210" style="position:relative"><span class="pl-c"> * Returns XMLOXIDE_ERR_WARNING, XMLOXIDE_ERR_ERROR, or XMLOXIDE_ERR_FATAL.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC211" class="react-file-line html-div" data-testid="code-cell" data-line-number="211" style="position:relative"><span class="pl-c"> * Returns -1 if out of range.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC212" class="react-file-line html-div" data-testid="code-cell" data-line-number="212" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC213" class="react-file-line html-div" data-testid="code-cell" data-line-number="213" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_doc_diagnostic_severity</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">size_t</span> <span class="pl-s1">index</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC214" class="react-file-line html-div" data-testid="code-cell" data-line-number="214" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC215" class="react-file-line html-div" data-testid="code-cell" data-line-number="215" style="position:relative"><span class="pl-c">/* ---------- Tree navigation ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC216" class="react-file-line html-div" data-testid="code-cell" data-line-number="216" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC217" class="react-file-line html-div" data-testid="code-cell" data-line-number="217" style="position:relative"><span class="pl-c">/*</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC218" class="react-file-line html-div" data-testid="code-cell" data-line-number="218" style="position:relative"><span class="pl-c"> * Node IDs are uint32_t values. A value of 0 means &quot;no node&quot;</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC219" class="react-file-line html-div" data-testid="code-cell" data-line-number="219" style="position:relative"><span class="pl-c"> * (invalid/missing).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC220" class="react-file-line html-div" data-testid="code-cell" data-line-number="220" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC221" class="react-file-line html-div" data-testid="code-cell" data-line-number="221" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC222" class="react-file-line html-div" data-testid="code-cell" data-line-number="222" style="position:relative"><span class="pl-c">/** Returns the document root node id. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC223" class="react-file-line html-div" data-testid="code-cell" data-line-number="223" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_doc_root</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC224" class="react-file-line html-div" data-testid="code-cell" data-line-number="224" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC225" class="react-file-line html-div" data-testid="code-cell" data-line-number="225" style="position:relative"><span class="pl-c">/** Returns the root element of the document, or 0 if none. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC226" class="react-file-line html-div" data-testid="code-cell" data-line-number="226" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_doc_root_element</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC227" class="react-file-line html-div" data-testid="code-cell" data-line-number="227" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC228" class="react-file-line html-div" data-testid="code-cell" data-line-number="228" style="position:relative"><span class="pl-c">/** Returns the parent of a node, or 0 if none. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC229" class="react-file-line html-div" data-testid="code-cell" data-line-number="229" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_node_parent</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC230" class="react-file-line html-div" data-testid="code-cell" data-line-number="230" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC231" class="react-file-line html-div" data-testid="code-cell" data-line-number="231" style="position:relative"><span class="pl-c">/** Returns the first child of a node, or 0 if none. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC232" class="react-file-line html-div" data-testid="code-cell" data-line-number="232" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_node_first_child</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC233" class="react-file-line html-div" data-testid="code-cell" data-line-number="233" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC234" class="react-file-line html-div" data-testid="code-cell" data-line-number="234" style="position:relative"><span class="pl-c">/** Returns the last child of a node, or 0 if none. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC235" class="react-file-line html-div" data-testid="code-cell" data-line-number="235" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_node_last_child</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC236" class="react-file-line html-div" data-testid="code-cell" data-line-number="236" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC237" class="react-file-line html-div" data-testid="code-cell" data-line-number="237" style="position:relative"><span class="pl-c">/** Returns the next sibling of a node, or 0 if none. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC238" class="react-file-line html-div" data-testid="code-cell" data-line-number="238" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_node_next_sibling</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC239" class="react-file-line html-div" data-testid="code-cell" data-line-number="239" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC240" class="react-file-line html-div" data-testid="code-cell" data-line-number="240" style="position:relative"><span class="pl-c">/** Returns the previous sibling of a node, or 0 if none. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC241" class="react-file-line html-div" data-testid="code-cell" data-line-number="241" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_node_prev_sibling</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC242" class="react-file-line html-div" data-testid="code-cell" data-line-number="242" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC243" class="react-file-line html-div" data-testid="code-cell" data-line-number="243" style="position:relative"><span class="pl-c">/* ---------- Node inspection ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC244" class="react-file-line html-div" data-testid="code-cell" data-line-number="244" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC245" class="react-file-line html-div" data-testid="code-cell" data-line-number="245" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC246" class="react-file-line html-div" data-testid="code-cell" data-line-number="246" style="position:relative"><span class="pl-c"> * Returns the node type as an integer constant.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC247" class="react-file-line html-div" data-testid="code-cell" data-line-number="247" style="position:relative"><span class="pl-c"> * Returns -1 if the document or node is invalid.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC248" class="react-file-line html-div" data-testid="code-cell" data-line-number="248" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC249" class="react-file-line html-div" data-testid="code-cell" data-line-number="249" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_node_type</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC250" class="react-file-line html-div" data-testid="code-cell" data-line-number="250" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC251" class="react-file-line html-div" data-testid="code-cell" data-line-number="251" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC252" class="react-file-line html-div" data-testid="code-cell" data-line-number="252" style="position:relative"><span class="pl-c"> * Returns the name of a node (element local name or PI target).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC253" class="react-file-line html-div" data-testid="code-cell" data-line-number="253" style="position:relative"><span class="pl-c"> * Returns NULL for node types that have no name.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC254" class="react-file-line html-div" data-testid="code-cell" data-line-number="254" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC255" class="react-file-line html-div" data-testid="code-cell" data-line-number="255" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC256" class="react-file-line html-div" data-testid="code-cell" data-line-number="256" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_node_name</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC257" class="react-file-line html-div" data-testid="code-cell" data-line-number="257" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC258" class="react-file-line html-div" data-testid="code-cell" data-line-number="258" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC259" class="react-file-line html-div" data-testid="code-cell" data-line-number="259" style="position:relative"><span class="pl-c"> * Returns the direct text content of a text, comment, CDATA, or PI node.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC260" class="react-file-line html-div" data-testid="code-cell" data-line-number="260" style="position:relative"><span class="pl-c"> * Returns NULL for element and document nodes.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC261" class="react-file-line html-div" data-testid="code-cell" data-line-number="261" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC262" class="react-file-line html-div" data-testid="code-cell" data-line-number="262" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC263" class="react-file-line html-div" data-testid="code-cell" data-line-number="263" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_node_text</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC264" class="react-file-line html-div" data-testid="code-cell" data-line-number="264" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC265" class="react-file-line html-div" data-testid="code-cell" data-line-number="265" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC266" class="react-file-line html-div" data-testid="code-cell" data-line-number="266" style="position:relative"><span class="pl-c"> * Returns the concatenated text content of a node and all descendants.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC267" class="react-file-line html-div" data-testid="code-cell" data-line-number="267" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC268" class="react-file-line html-div" data-testid="code-cell" data-line-number="268" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC269" class="react-file-line html-div" data-testid="code-cell" data-line-number="269" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_node_text_content</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC270" class="react-file-line html-div" data-testid="code-cell" data-line-number="270" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC271" class="react-file-line html-div" data-testid="code-cell" data-line-number="271" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC272" class="react-file-line html-div" data-testid="code-cell" data-line-number="272" style="position:relative"><span class="pl-c"> * Returns the namespace URI of an element node, or NULL if none.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC273" class="react-file-line html-div" data-testid="code-cell" data-line-number="273" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC274" class="react-file-line html-div" data-testid="code-cell" data-line-number="274" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC275" class="react-file-line html-div" data-testid="code-cell" data-line-number="275" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_node_namespace</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC276" class="react-file-line html-div" data-testid="code-cell" data-line-number="276" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC277" class="react-file-line html-div" data-testid="code-cell" data-line-number="277" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC278" class="react-file-line html-div" data-testid="code-cell" data-line-number="278" style="position:relative"><span class="pl-c"> * Returns the namespace prefix of an element node (e.g., &quot;svg&quot; for &lt;svg:rect&gt;).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC279" class="react-file-line html-div" data-testid="code-cell" data-line-number="279" style="position:relative"><span class="pl-c"> * Returns NULL if no prefix. The returned string must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC280" class="react-file-line html-div" data-testid="code-cell" data-line-number="280" style="position:relative"><span class="pl-c"> * xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC281" class="react-file-line html-div" data-testid="code-cell" data-line-number="281" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC282" class="react-file-line html-div" data-testid="code-cell" data-line-number="282" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_node_prefix</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC283" class="react-file-line html-div" data-testid="code-cell" data-line-number="283" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC284" class="react-file-line html-div" data-testid="code-cell" data-line-number="284" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC285" class="react-file-line html-div" data-testid="code-cell" data-line-number="285" style="position:relative"><span class="pl-c"> * Returns the value of an attribute by name on an element node.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC286" class="react-file-line html-div" data-testid="code-cell" data-line-number="286" style="position:relative"><span class="pl-c"> * Returns NULL if the attribute is not present.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC287" class="react-file-line html-div" data-testid="code-cell" data-line-number="287" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC288" class="react-file-line html-div" data-testid="code-cell" data-line-number="288" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC289" class="react-file-line html-div" data-testid="code-cell" data-line-number="289" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_node_attribute</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC290" class="react-file-line html-div" data-testid="code-cell" data-line-number="290" style="position:relative">                              <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">name</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC291" class="react-file-line html-div" data-testid="code-cell" data-line-number="291" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC292" class="react-file-line html-div" data-testid="code-cell" data-line-number="292" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC293" class="react-file-line html-div" data-testid="code-cell" data-line-number="293" style="position:relative"><span class="pl-c"> * Returns the number of attributes on an element node.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC294" class="react-file-line html-div" data-testid="code-cell" data-line-number="294" style="position:relative"><span class="pl-c"> * Returns 0 for non-element nodes.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC295" class="react-file-line html-div" data-testid="code-cell" data-line-number="295" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC296" class="react-file-line html-div" data-testid="code-cell" data-line-number="296" style="position:relative"><span class="pl-smi">size_t</span> <span class="pl-en">xmloxide_node_attribute_count</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC297" class="react-file-line html-div" data-testid="code-cell" data-line-number="297" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC298" class="react-file-line html-div" data-testid="code-cell" data-line-number="298" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC299" class="react-file-line html-div" data-testid="code-cell" data-line-number="299" style="position:relative"><span class="pl-c"> * Returns the name of the attribute at the given index.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC300" class="react-file-line html-div" data-testid="code-cell" data-line-number="300" style="position:relative"><span class="pl-c"> * Returns NULL if the index is out of range.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC301" class="react-file-line html-div" data-testid="code-cell" data-line-number="301" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC302" class="react-file-line html-div" data-testid="code-cell" data-line-number="302" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC303" class="react-file-line html-div" data-testid="code-cell" data-line-number="303" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_node_attribute_name_at</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC304" class="react-file-line html-div" data-testid="code-cell" data-line-number="304" style="position:relative">                                      <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>, <span class="pl-smi">size_t</span> <span class="pl-s1">index</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC305" class="react-file-line html-div" data-testid="code-cell" data-line-number="305" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC306" class="react-file-line html-div" data-testid="code-cell" data-line-number="306" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC307" class="react-file-line html-div" data-testid="code-cell" data-line-number="307" style="position:relative"><span class="pl-c"> * Returns the value of the attribute at the given index.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC308" class="react-file-line html-div" data-testid="code-cell" data-line-number="308" style="position:relative"><span class="pl-c"> * Returns NULL if the index is out of range.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC309" class="react-file-line html-div" data-testid="code-cell" data-line-number="309" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC310" class="react-file-line html-div" data-testid="code-cell" data-line-number="310" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC311" class="react-file-line html-div" data-testid="code-cell" data-line-number="311" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_node_attribute_value_at</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC312" class="react-file-line html-div" data-testid="code-cell" data-line-number="312" style="position:relative">                                       <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>, <span class="pl-smi">size_t</span> <span class="pl-s1">index</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC313" class="react-file-line html-div" data-testid="code-cell" data-line-number="313" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC314" class="react-file-line html-div" data-testid="code-cell" data-line-number="314" style="position:relative"><span class="pl-c">/* ---------- Tree mutation ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC315" class="react-file-line html-div" data-testid="code-cell" data-line-number="315" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC316" class="react-file-line html-div" data-testid="code-cell" data-line-number="316" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC317" class="react-file-line html-div" data-testid="code-cell" data-line-number="317" style="position:relative"><span class="pl-c"> * Creates a new element node and returns its id (0 on failure).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC318" class="react-file-line html-div" data-testid="code-cell" data-line-number="318" style="position:relative"><span class="pl-c"> * The node is detached — use xmloxide_append_child() to add it to the tree.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC319" class="react-file-line html-div" data-testid="code-cell" data-line-number="319" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC320" class="react-file-line html-div" data-testid="code-cell" data-line-number="320" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_create_element</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">name</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC321" class="react-file-line html-div" data-testid="code-cell" data-line-number="321" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC322" class="react-file-line html-div" data-testid="code-cell" data-line-number="322" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC323" class="react-file-line html-div" data-testid="code-cell" data-line-number="323" style="position:relative"><span class="pl-c"> * Creates a new text node and returns its id (0 on failure).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC324" class="react-file-line html-div" data-testid="code-cell" data-line-number="324" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC325" class="react-file-line html-div" data-testid="code-cell" data-line-number="325" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_create_text</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">content</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC326" class="react-file-line html-div" data-testid="code-cell" data-line-number="326" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC327" class="react-file-line html-div" data-testid="code-cell" data-line-number="327" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC328" class="react-file-line html-div" data-testid="code-cell" data-line-number="328" style="position:relative"><span class="pl-c"> * Creates a new comment node and returns its id (0 on failure).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC329" class="react-file-line html-div" data-testid="code-cell" data-line-number="329" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC330" class="react-file-line html-div" data-testid="code-cell" data-line-number="330" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_create_comment</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">content</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC331" class="react-file-line html-div" data-testid="code-cell" data-line-number="331" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC332" class="react-file-line html-div" data-testid="code-cell" data-line-number="332" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC333" class="react-file-line html-div" data-testid="code-cell" data-line-number="333" style="position:relative"><span class="pl-c"> * Appends a child node to a parent. Returns 1 on success, 0 on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC334" class="react-file-line html-div" data-testid="code-cell" data-line-number="334" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC335" class="react-file-line html-div" data-testid="code-cell" data-line-number="335" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_append_child</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">parent</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC336" class="react-file-line html-div" data-testid="code-cell" data-line-number="336" style="position:relative">                              <span class="pl-smi">uint32_t</span> <span class="pl-s1">child</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC337" class="react-file-line html-div" data-testid="code-cell" data-line-number="337" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC338" class="react-file-line html-div" data-testid="code-cell" data-line-number="338" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC339" class="react-file-line html-div" data-testid="code-cell" data-line-number="339" style="position:relative"><span class="pl-c"> * Removes a node from the tree. Returns 1 on success, 0 on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC340" class="react-file-line html-div" data-testid="code-cell" data-line-number="340" style="position:relative"><span class="pl-c"> * The node remains in the arena but is detached from the tree.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC341" class="react-file-line html-div" data-testid="code-cell" data-line-number="341" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC342" class="react-file-line html-div" data-testid="code-cell" data-line-number="342" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_remove_node</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC343" class="react-file-line html-div" data-testid="code-cell" data-line-number="343" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC344" class="react-file-line html-div" data-testid="code-cell" data-line-number="344" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC345" class="react-file-line html-div" data-testid="code-cell" data-line-number="345" style="position:relative"><span class="pl-c"> * Clones a node (and optionally its descendants). Returns the new node id.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC346" class="react-file-line html-div" data-testid="code-cell" data-line-number="346" style="position:relative"><span class="pl-c"> * Set deep=1 for a deep clone, deep=0 for a shallow clone.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC347" class="react-file-line html-div" data-testid="code-cell" data-line-number="347" style="position:relative"><span class="pl-c"> * Returns 0 on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC348" class="react-file-line html-div" data-testid="code-cell" data-line-number="348" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC349" class="react-file-line html-div" data-testid="code-cell" data-line-number="349" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_clone_node</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>, <span class="pl-smi">int32_t</span> <span class="pl-s1">deep</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC350" class="react-file-line html-div" data-testid="code-cell" data-line-number="350" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC351" class="react-file-line html-div" data-testid="code-cell" data-line-number="351" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC352" class="react-file-line html-div" data-testid="code-cell" data-line-number="352" style="position:relative"><span class="pl-c"> * Sets an attribute on an element node. Returns 1 on success, 0 on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC353" class="react-file-line html-div" data-testid="code-cell" data-line-number="353" style="position:relative"><span class="pl-c"> * If the attribute already exists, its value is updated.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC354" class="react-file-line html-div" data-testid="code-cell" data-line-number="354" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC355" class="react-file-line html-div" data-testid="code-cell" data-line-number="355" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_set_attribute</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC356" class="react-file-line html-div" data-testid="code-cell" data-line-number="356" style="position:relative">                               <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">name</span>, <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">value</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC357" class="react-file-line html-div" data-testid="code-cell" data-line-number="357" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC358" class="react-file-line html-div" data-testid="code-cell" data-line-number="358" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC359" class="react-file-line html-div" data-testid="code-cell" data-line-number="359" style="position:relative"><span class="pl-c"> * Sets the text content of a node. Returns 1 on success, 0 on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC360" class="react-file-line html-div" data-testid="code-cell" data-line-number="360" style="position:relative"><span class="pl-c"> * For text/CDATA/comment nodes, updates content directly.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC361" class="react-file-line html-div" data-testid="code-cell" data-line-number="361" style="position:relative"><span class="pl-c"> * For element nodes, removes all children and replaces with a text node.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC362" class="react-file-line html-div" data-testid="code-cell" data-line-number="362" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC363" class="react-file-line html-div" data-testid="code-cell" data-line-number="363" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_set_text_content</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC364" class="react-file-line html-div" data-testid="code-cell" data-line-number="364" style="position:relative">                                  <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">content</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC365" class="react-file-line html-div" data-testid="code-cell" data-line-number="365" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC366" class="react-file-line html-div" data-testid="code-cell" data-line-number="366" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC367" class="react-file-line html-div" data-testid="code-cell" data-line-number="367" style="position:relative"><span class="pl-c"> * Inserts a node before a reference sibling. Returns 1 on success, 0 on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC368" class="react-file-line html-div" data-testid="code-cell" data-line-number="368" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC369" class="react-file-line html-div" data-testid="code-cell" data-line-number="369" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_insert_before</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">reference</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC370" class="react-file-line html-div" data-testid="code-cell" data-line-number="370" style="position:relative">                               <span class="pl-smi">uint32_t</span> <span class="pl-s1">new_child</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC371" class="react-file-line html-div" data-testid="code-cell" data-line-number="371" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC372" class="react-file-line html-div" data-testid="code-cell" data-line-number="372" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC373" class="react-file-line html-div" data-testid="code-cell" data-line-number="373" style="position:relative"><span class="pl-c"> * Inserts a node after a reference sibling. Returns 1 on success, 0 on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC374" class="react-file-line html-div" data-testid="code-cell" data-line-number="374" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC375" class="react-file-line html-div" data-testid="code-cell" data-line-number="375" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_insert_after</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">reference</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC376" class="react-file-line html-div" data-testid="code-cell" data-line-number="376" style="position:relative">                              <span class="pl-smi">uint32_t</span> <span class="pl-s1">new_child</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC377" class="react-file-line html-div" data-testid="code-cell" data-line-number="377" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC378" class="react-file-line html-div" data-testid="code-cell" data-line-number="378" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC379" class="react-file-line html-div" data-testid="code-cell" data-line-number="379" style="position:relative"><span class="pl-c"> * Replaces a node in the tree with another. Returns 1 on success, 0 on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC380" class="react-file-line html-div" data-testid="code-cell" data-line-number="380" style="position:relative"><span class="pl-c"> * The old node is detached and the new node takes its position.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC381" class="react-file-line html-div" data-testid="code-cell" data-line-number="381" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC382" class="react-file-line html-div" data-testid="code-cell" data-line-number="382" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_replace_node</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">old_node</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC383" class="react-file-line html-div" data-testid="code-cell" data-line-number="383" style="position:relative">                              <span class="pl-smi">uint32_t</span> <span class="pl-s1">new_node</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC384" class="react-file-line html-div" data-testid="code-cell" data-line-number="384" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC385" class="react-file-line html-div" data-testid="code-cell" data-line-number="385" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC386" class="react-file-line html-div" data-testid="code-cell" data-line-number="386" style="position:relative"><span class="pl-c"> * Removes an attribute by name from an element node.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC387" class="react-file-line html-div" data-testid="code-cell" data-line-number="387" style="position:relative"><span class="pl-c"> * Returns 1 if removed, 0 if not found or not an element.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC388" class="react-file-line html-div" data-testid="code-cell" data-line-number="388" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC389" class="react-file-line html-div" data-testid="code-cell" data-line-number="389" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_remove_attribute</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC390" class="react-file-line html-div" data-testid="code-cell" data-line-number="390" style="position:relative">                                  <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">name</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC391" class="react-file-line html-div" data-testid="code-cell" data-line-number="391" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC392" class="react-file-line html-div" data-testid="code-cell" data-line-number="392" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC393" class="react-file-line html-div" data-testid="code-cell" data-line-number="393" style="position:relative"><span class="pl-c"> * Creates a new processing instruction node and returns its id (0 on failure).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC394" class="react-file-line html-div" data-testid="code-cell" data-line-number="394" style="position:relative"><span class="pl-c"> * data may be NULL.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC395" class="react-file-line html-div" data-testid="code-cell" data-line-number="395" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC396" class="react-file-line html-div" data-testid="code-cell" data-line-number="396" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_create_pi</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">target</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC397" class="react-file-line html-div" data-testid="code-cell" data-line-number="397" style="position:relative">                            <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">data</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC398" class="react-file-line html-div" data-testid="code-cell" data-line-number="398" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC399" class="react-file-line html-div" data-testid="code-cell" data-line-number="399" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC400" class="react-file-line html-div" data-testid="code-cell" data-line-number="400" style="position:relative"><span class="pl-c"> * Renames an element node. Returns 1 on success, 0 on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC401" class="react-file-line html-div" data-testid="code-cell" data-line-number="401" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC402" class="react-file-line html-div" data-testid="code-cell" data-line-number="402" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_rename_element</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC403" class="react-file-line html-div" data-testid="code-cell" data-line-number="403" style="position:relative">                                <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">new_name</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC404" class="react-file-line html-div" data-testid="code-cell" data-line-number="404" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC405" class="react-file-line html-div" data-testid="code-cell" data-line-number="405" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC406" class="react-file-line html-div" data-testid="code-cell" data-line-number="406" style="position:relative"><span class="pl-c"> * Returns the element with the given ID attribute, or 0 if not found.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC407" class="react-file-line html-div" data-testid="code-cell" data-line-number="407" style="position:relative"><span class="pl-c"> * The document&#039;s id_map must be populated first (typically via DTD validation).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC408" class="react-file-line html-div" data-testid="code-cell" data-line-number="408" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC409" class="react-file-line html-div" data-testid="code-cell" data-line-number="409" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_element_by_id</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">id</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC410" class="react-file-line html-div" data-testid="code-cell" data-line-number="410" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC411" class="react-file-line html-div" data-testid="code-cell" data-line-number="411" style="position:relative"><span class="pl-c">/* ---------- Serialization ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC412" class="react-file-line html-div" data-testid="code-cell" data-line-number="412" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC413" class="react-file-line html-div" data-testid="code-cell" data-line-number="413" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC414" class="react-file-line html-div" data-testid="code-cell" data-line-number="414" style="position:relative"><span class="pl-c"> * Serializes a document to an XML string.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC415" class="react-file-line html-div" data-testid="code-cell" data-line-number="415" style="position:relative"><span class="pl-c"> * Returns a caller-owned C string that must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC416" class="react-file-line html-div" data-testid="code-cell" data-line-number="416" style="position:relative"><span class="pl-c"> * xmloxide_free_string(). Returns NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC417" class="react-file-line html-div" data-testid="code-cell" data-line-number="417" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC418" class="react-file-line html-div" data-testid="code-cell" data-line-number="418" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_serialize</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC419" class="react-file-line html-div" data-testid="code-cell" data-line-number="419" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC420" class="react-file-line html-div" data-testid="code-cell" data-line-number="420" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC421" class="react-file-line html-div" data-testid="code-cell" data-line-number="421" style="position:relative"><span class="pl-c"> * Serializes a document to a pretty-printed XML string with two-space indent.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC422" class="react-file-line html-div" data-testid="code-cell" data-line-number="422" style="position:relative"><span class="pl-c"> * Returns a caller-owned C string that must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC423" class="react-file-line html-div" data-testid="code-cell" data-line-number="423" style="position:relative"><span class="pl-c"> * xmloxide_free_string(). Returns NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC424" class="react-file-line html-div" data-testid="code-cell" data-line-number="424" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC425" class="react-file-line html-div" data-testid="code-cell" data-line-number="425" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_serialize_pretty</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC426" class="react-file-line html-div" data-testid="code-cell" data-line-number="426" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC427" class="react-file-line html-div" data-testid="code-cell" data-line-number="427" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC428" class="react-file-line html-div" data-testid="code-cell" data-line-number="428" style="position:relative"><span class="pl-c"> * Serializes a document to a pretty-printed XML string with a custom indent.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC429" class="react-file-line html-div" data-testid="code-cell" data-line-number="429" style="position:relative"><span class="pl-c"> * indent_str is the string used for each level (e.g., &quot;\t&quot; or &quot;    &quot;).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC430" class="react-file-line html-div" data-testid="code-cell" data-line-number="430" style="position:relative"><span class="pl-c"> * Returns a caller-owned C string that must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC431" class="react-file-line html-div" data-testid="code-cell" data-line-number="431" style="position:relative"><span class="pl-c"> * xmloxide_free_string(). Returns NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC432" class="react-file-line html-div" data-testid="code-cell" data-line-number="432" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC433" class="react-file-line html-div" data-testid="code-cell" data-line-number="433" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_serialize_pretty_custom</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC434" class="react-file-line html-div" data-testid="code-cell" data-line-number="434" style="position:relative">                                       <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">indent_str</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC435" class="react-file-line html-div" data-testid="code-cell" data-line-number="435" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC436" class="react-file-line html-div" data-testid="code-cell" data-line-number="436" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC437" class="react-file-line html-div" data-testid="code-cell" data-line-number="437" style="position:relative"><span class="pl-c"> * Serializes a document to an HTML string.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC438" class="react-file-line html-div" data-testid="code-cell" data-line-number="438" style="position:relative"><span class="pl-c"> * Returns a caller-owned C string that must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC439" class="react-file-line html-div" data-testid="code-cell" data-line-number="439" style="position:relative"><span class="pl-c"> * xmloxide_free_string(). Returns NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC440" class="react-file-line html-div" data-testid="code-cell" data-line-number="440" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC441" class="react-file-line html-div" data-testid="code-cell" data-line-number="441" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_serialize_html</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC442" class="react-file-line html-div" data-testid="code-cell" data-line-number="442" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC443" class="react-file-line html-div" data-testid="code-cell" data-line-number="443" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC444" class="react-file-line html-div" data-testid="code-cell" data-line-number="444" style="position:relative"><span class="pl-c"> * Serializes a document to an HTML5 string (WHATWG algorithm).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC445" class="react-file-line html-div" data-testid="code-cell" data-line-number="445" style="position:relative"><span class="pl-c"> * Returns a caller-owned C string that must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC446" class="react-file-line html-div" data-testid="code-cell" data-line-number="446" style="position:relative"><span class="pl-c"> * xmloxide_free_string(). Returns NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC447" class="react-file-line html-div" data-testid="code-cell" data-line-number="447" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC448" class="react-file-line html-div" data-testid="code-cell" data-line-number="448" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_serialize_html5</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC449" class="react-file-line html-div" data-testid="code-cell" data-line-number="449" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC450" class="react-file-line html-div" data-testid="code-cell" data-line-number="450" style="position:relative"><span class="pl-c">/* ---------- Validation ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC451" class="react-file-line html-div" data-testid="code-cell" data-line-number="451" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC452" class="react-file-line html-div" data-testid="code-cell" data-line-number="452" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC453" class="react-file-line html-div" data-testid="code-cell" data-line-number="453" style="position:relative"><span class="pl-c"> * Parses a DTD from a null-terminated UTF-8 string.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC454" class="react-file-line html-div" data-testid="code-cell" data-line-number="454" style="position:relative"><span class="pl-c"> * Returns a DTD pointer on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC455" class="react-file-line html-div" data-testid="code-cell" data-line-number="455" style="position:relative"><span class="pl-c"> * The returned DTD must be freed with xmloxide_free_dtd().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC456" class="react-file-line html-div" data-testid="code-cell" data-line-number="456" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC457" class="react-file-line html-div" data-testid="code-cell" data-line-number="457" style="position:relative"><span class="pl-smi">xmloxide_dtd</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_parse_dtd</span>(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">input</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC458" class="react-file-line html-div" data-testid="code-cell" data-line-number="458" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC459" class="react-file-line html-div" data-testid="code-cell" data-line-number="459" style="position:relative"><span class="pl-c">/** Frees a DTD. Passing NULL is safe and does nothing. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC460" class="react-file-line html-div" data-testid="code-cell" data-line-number="460" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_free_dtd</span>(<span class="pl-smi">xmloxide_dtd</span> <span class="pl-c1">*</span><span class="pl-s1">dtd</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC461" class="react-file-line html-div" data-testid="code-cell" data-line-number="461" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC462" class="react-file-line html-div" data-testid="code-cell" data-line-number="462" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC463" class="react-file-line html-div" data-testid="code-cell" data-line-number="463" style="position:relative"><span class="pl-c"> * Validates a document against a DTD.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC464" class="react-file-line html-div" data-testid="code-cell" data-line-number="464" style="position:relative"><span class="pl-c"> * Note: DTD validation may populate the document&#039;s id_map (requires mutable doc).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC465" class="react-file-line html-div" data-testid="code-cell" data-line-number="465" style="position:relative"><span class="pl-c"> * Returns a validation result that must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC466" class="react-file-line html-div" data-testid="code-cell" data-line-number="466" style="position:relative"><span class="pl-c"> * xmloxide_free_validation_result().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC467" class="react-file-line html-div" data-testid="code-cell" data-line-number="467" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC468" class="react-file-line html-div" data-testid="code-cell" data-line-number="468" style="position:relative"><span class="pl-smi">xmloxide_validation_result</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_validate_dtd</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC469" class="react-file-line html-div" data-testid="code-cell" data-line-number="469" style="position:relative">                                                  <span class="pl-k">const</span> <span class="pl-smi">xmloxide_dtd</span> <span class="pl-c1">*</span><span class="pl-s1">dtd</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC470" class="react-file-line html-div" data-testid="code-cell" data-line-number="470" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC471" class="react-file-line html-div" data-testid="code-cell" data-line-number="471" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC472" class="react-file-line html-div" data-testid="code-cell" data-line-number="472" style="position:relative"><span class="pl-c"> * Parses a RelaxNG schema from a null-terminated UTF-8 XML string.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC473" class="react-file-line html-div" data-testid="code-cell" data-line-number="473" style="position:relative"><span class="pl-c"> * Returns a schema pointer on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC474" class="react-file-line html-div" data-testid="code-cell" data-line-number="474" style="position:relative"><span class="pl-c"> * The returned schema must be freed with xmloxide_free_relaxng().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC475" class="react-file-line html-div" data-testid="code-cell" data-line-number="475" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC476" class="react-file-line html-div" data-testid="code-cell" data-line-number="476" style="position:relative"><span class="pl-smi">xmloxide_relaxng_schema</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_parse_relaxng</span>(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">input</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC477" class="react-file-line html-div" data-testid="code-cell" data-line-number="477" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC478" class="react-file-line html-div" data-testid="code-cell" data-line-number="478" style="position:relative"><span class="pl-c">/** Frees a RelaxNG schema. Passing NULL is safe and does nothing. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC479" class="react-file-line html-div" data-testid="code-cell" data-line-number="479" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_free_relaxng</span>(<span class="pl-smi">xmloxide_relaxng_schema</span> <span class="pl-c1">*</span><span class="pl-s1">schema</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC480" class="react-file-line html-div" data-testid="code-cell" data-line-number="480" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC481" class="react-file-line html-div" data-testid="code-cell" data-line-number="481" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC482" class="react-file-line html-div" data-testid="code-cell" data-line-number="482" style="position:relative"><span class="pl-c"> * Validates a document against a RelaxNG schema.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC483" class="react-file-line html-div" data-testid="code-cell" data-line-number="483" style="position:relative"><span class="pl-c"> * Returns a validation result that must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC484" class="react-file-line html-div" data-testid="code-cell" data-line-number="484" style="position:relative"><span class="pl-c"> * xmloxide_free_validation_result().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC485" class="react-file-line html-div" data-testid="code-cell" data-line-number="485" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC486" class="react-file-line html-div" data-testid="code-cell" data-line-number="486" style="position:relative"><span class="pl-smi">xmloxide_validation_result</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_validate_relaxng</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC487" class="react-file-line html-div" data-testid="code-cell" data-line-number="487" style="position:relative">                                                      <span class="pl-k">const</span> <span class="pl-smi">xmloxide_relaxng_schema</span> <span class="pl-c1">*</span><span class="pl-s1">schema</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC488" class="react-file-line html-div" data-testid="code-cell" data-line-number="488" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC489" class="react-file-line html-div" data-testid="code-cell" data-line-number="489" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC490" class="react-file-line html-div" data-testid="code-cell" data-line-number="490" style="position:relative"><span class="pl-c"> * Parses an XSD schema from a null-terminated UTF-8 XML string.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC491" class="react-file-line html-div" data-testid="code-cell" data-line-number="491" style="position:relative"><span class="pl-c"> * Returns a schema pointer on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC492" class="react-file-line html-div" data-testid="code-cell" data-line-number="492" style="position:relative"><span class="pl-c"> * The returned schema must be freed with xmloxide_free_xsd().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC493" class="react-file-line html-div" data-testid="code-cell" data-line-number="493" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC494" class="react-file-line html-div" data-testid="code-cell" data-line-number="494" style="position:relative"><span class="pl-smi">xmloxide_xsd_schema</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_parse_xsd</span>(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">input</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC495" class="react-file-line html-div" data-testid="code-cell" data-line-number="495" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC496" class="react-file-line html-div" data-testid="code-cell" data-line-number="496" style="position:relative"><span class="pl-c">/** Frees an XSD schema. Passing NULL is safe and does nothing. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC497" class="react-file-line html-div" data-testid="code-cell" data-line-number="497" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_free_xsd</span>(<span class="pl-smi">xmloxide_xsd_schema</span> <span class="pl-c1">*</span><span class="pl-s1">schema</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC498" class="react-file-line html-div" data-testid="code-cell" data-line-number="498" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC499" class="react-file-line html-div" data-testid="code-cell" data-line-number="499" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC500" class="react-file-line html-div" data-testid="code-cell" data-line-number="500" style="position:relative"><span class="pl-c"> * Validates a document against an XSD schema.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC501" class="react-file-line html-div" data-testid="code-cell" data-line-number="501" style="position:relative"><span class="pl-c"> * Returns a validation result that must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC502" class="react-file-line html-div" data-testid="code-cell" data-line-number="502" style="position:relative"><span class="pl-c"> * xmloxide_free_validation_result().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC503" class="react-file-line html-div" data-testid="code-cell" data-line-number="503" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC504" class="react-file-line html-div" data-testid="code-cell" data-line-number="504" style="position:relative"><span class="pl-smi">xmloxide_validation_result</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_validate_xsd</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC505" class="react-file-line html-div" data-testid="code-cell" data-line-number="505" style="position:relative">                                                  <span class="pl-k">const</span> <span class="pl-smi">xmloxide_xsd_schema</span> <span class="pl-c1">*</span><span class="pl-s1">schema</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC506" class="react-file-line html-div" data-testid="code-cell" data-line-number="506" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC507" class="react-file-line html-div" data-testid="code-cell" data-line-number="507" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC508" class="react-file-line html-div" data-testid="code-cell" data-line-number="508" style="position:relative"><span class="pl-c"> * Parses an ISO Schematron schema from a null-terminated UTF-8 XML string.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC509" class="react-file-line html-div" data-testid="code-cell" data-line-number="509" style="position:relative"><span class="pl-c"> * Returns a schema pointer on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC510" class="react-file-line html-div" data-testid="code-cell" data-line-number="510" style="position:relative"><span class="pl-c"> * The returned schema must be freed with xmloxide_free_schematron().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC511" class="react-file-line html-div" data-testid="code-cell" data-line-number="511" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC512" class="react-file-line html-div" data-testid="code-cell" data-line-number="512" style="position:relative"><span class="pl-smi">xmloxide_schematron_schema</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_parse_schematron</span>(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">input</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC513" class="react-file-line html-div" data-testid="code-cell" data-line-number="513" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC514" class="react-file-line html-div" data-testid="code-cell" data-line-number="514" style="position:relative"><span class="pl-c">/** Frees a Schematron schema. Passing NULL is safe and does nothing. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC515" class="react-file-line html-div" data-testid="code-cell" data-line-number="515" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_free_schematron</span>(<span class="pl-smi">xmloxide_schematron_schema</span> <span class="pl-c1">*</span><span class="pl-s1">schema</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC516" class="react-file-line html-div" data-testid="code-cell" data-line-number="516" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC517" class="react-file-line html-div" data-testid="code-cell" data-line-number="517" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC518" class="react-file-line html-div" data-testid="code-cell" data-line-number="518" style="position:relative"><span class="pl-c"> * Validates a document against an ISO Schematron schema.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC519" class="react-file-line html-div" data-testid="code-cell" data-line-number="519" style="position:relative"><span class="pl-c"> * Returns a validation result that must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC520" class="react-file-line html-div" data-testid="code-cell" data-line-number="520" style="position:relative"><span class="pl-c"> * xmloxide_free_validation_result().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC521" class="react-file-line html-div" data-testid="code-cell" data-line-number="521" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC522" class="react-file-line html-div" data-testid="code-cell" data-line-number="522" style="position:relative"><span class="pl-smi">xmloxide_validation_result</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_validate_schematron</span>(</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC523" class="react-file-line html-div" data-testid="code-cell" data-line-number="523" style="position:relative">    <span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC524" class="react-file-line html-div" data-testid="code-cell" data-line-number="524" style="position:relative">    <span class="pl-k">const</span> <span class="pl-smi">xmloxide_schematron_schema</span> <span class="pl-c1">*</span><span class="pl-s1">schema</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC525" class="react-file-line html-div" data-testid="code-cell" data-line-number="525" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC526" class="react-file-line html-div" data-testid="code-cell" data-line-number="526" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC527" class="react-file-line html-div" data-testid="code-cell" data-line-number="527" style="position:relative"><span class="pl-c"> * Validates a document against a Schematron schema using a specific phase.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC528" class="react-file-line html-div" data-testid="code-cell" data-line-number="528" style="position:relative"><span class="pl-c"> * phase is the name of the phase to activate (NULL for all patterns).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC529" class="react-file-line html-div" data-testid="code-cell" data-line-number="529" style="position:relative"><span class="pl-c"> * Returns a validation result that must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC530" class="react-file-line html-div" data-testid="code-cell" data-line-number="530" style="position:relative"><span class="pl-c"> * xmloxide_free_validation_result().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC531" class="react-file-line html-div" data-testid="code-cell" data-line-number="531" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC532" class="react-file-line html-div" data-testid="code-cell" data-line-number="532" style="position:relative"><span class="pl-smi">xmloxide_validation_result</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_validate_schematron_with_phase</span>(</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC533" class="react-file-line html-div" data-testid="code-cell" data-line-number="533" style="position:relative">    <span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC534" class="react-file-line html-div" data-testid="code-cell" data-line-number="534" style="position:relative">    <span class="pl-k">const</span> <span class="pl-smi">xmloxide_schematron_schema</span> <span class="pl-c1">*</span><span class="pl-s1">schema</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC535" class="react-file-line html-div" data-testid="code-cell" data-line-number="535" style="position:relative">    <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">phase</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC536" class="react-file-line html-div" data-testid="code-cell" data-line-number="536" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC537" class="react-file-line html-div" data-testid="code-cell" data-line-number="537" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC538" class="react-file-line html-div" data-testid="code-cell" data-line-number="538" style="position:relative"><span class="pl-c"> * Returns whether the validation result indicates a valid document.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC539" class="react-file-line html-div" data-testid="code-cell" data-line-number="539" style="position:relative"><span class="pl-c"> * Returns 1 for valid, 0 for invalid or NULL.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC540" class="react-file-line html-div" data-testid="code-cell" data-line-number="540" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC541" class="react-file-line html-div" data-testid="code-cell" data-line-number="541" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_validation_is_valid</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_validation_result</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC542" class="react-file-line html-div" data-testid="code-cell" data-line-number="542" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC543" class="react-file-line html-div" data-testid="code-cell" data-line-number="543" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC544" class="react-file-line html-div" data-testid="code-cell" data-line-number="544" style="position:relative"><span class="pl-c"> * Returns the number of validation errors.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC545" class="react-file-line html-div" data-testid="code-cell" data-line-number="545" style="position:relative"><span class="pl-c"> * Returns 0 if the result is NULL.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC546" class="react-file-line html-div" data-testid="code-cell" data-line-number="546" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC547" class="react-file-line html-div" data-testid="code-cell" data-line-number="547" style="position:relative"><span class="pl-smi">size_t</span> <span class="pl-en">xmloxide_validation_error_count</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_validation_result</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC548" class="react-file-line html-div" data-testid="code-cell" data-line-number="548" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC549" class="react-file-line html-div" data-testid="code-cell" data-line-number="549" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC550" class="react-file-line html-div" data-testid="code-cell" data-line-number="550" style="position:relative"><span class="pl-c"> * Returns the error message at the given index.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC551" class="react-file-line html-div" data-testid="code-cell" data-line-number="551" style="position:relative"><span class="pl-c"> * Returns NULL if the index is out of range.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC552" class="react-file-line html-div" data-testid="code-cell" data-line-number="552" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC553" class="react-file-line html-div" data-testid="code-cell" data-line-number="553" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC554" class="react-file-line html-div" data-testid="code-cell" data-line-number="554" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_validation_error_message</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_validation_result</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC555" class="react-file-line html-div" data-testid="code-cell" data-line-number="555" style="position:relative">                                        <span class="pl-smi">size_t</span> <span class="pl-s1">index</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC556" class="react-file-line html-div" data-testid="code-cell" data-line-number="556" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC557" class="react-file-line html-div" data-testid="code-cell" data-line-number="557" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC558" class="react-file-line html-div" data-testid="code-cell" data-line-number="558" style="position:relative"><span class="pl-c"> * Returns the number of validation warnings.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC559" class="react-file-line html-div" data-testid="code-cell" data-line-number="559" style="position:relative"><span class="pl-c"> * Returns 0 if the result is NULL.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC560" class="react-file-line html-div" data-testid="code-cell" data-line-number="560" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC561" class="react-file-line html-div" data-testid="code-cell" data-line-number="561" style="position:relative"><span class="pl-smi">size_t</span> <span class="pl-en">xmloxide_validation_warning_count</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_validation_result</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC562" class="react-file-line html-div" data-testid="code-cell" data-line-number="562" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC563" class="react-file-line html-div" data-testid="code-cell" data-line-number="563" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC564" class="react-file-line html-div" data-testid="code-cell" data-line-number="564" style="position:relative"><span class="pl-c"> * Returns the warning message at the given index.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC565" class="react-file-line html-div" data-testid="code-cell" data-line-number="565" style="position:relative"><span class="pl-c"> * Returns NULL if the index is out of range.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC566" class="react-file-line html-div" data-testid="code-cell" data-line-number="566" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC567" class="react-file-line html-div" data-testid="code-cell" data-line-number="567" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC568" class="react-file-line html-div" data-testid="code-cell" data-line-number="568" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_validation_warning_message</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_validation_result</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC569" class="react-file-line html-div" data-testid="code-cell" data-line-number="569" style="position:relative">                                          <span class="pl-smi">size_t</span> <span class="pl-s1">index</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC570" class="react-file-line html-div" data-testid="code-cell" data-line-number="570" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC571" class="react-file-line html-div" data-testid="code-cell" data-line-number="571" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC572" class="react-file-line html-div" data-testid="code-cell" data-line-number="572" style="position:relative"><span class="pl-c"> * Frees a validation result. Passing NULL is safe and does nothing.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC573" class="react-file-line html-div" data-testid="code-cell" data-line-number="573" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC574" class="react-file-line html-div" data-testid="code-cell" data-line-number="574" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_free_validation_result</span>(<span class="pl-smi">xmloxide_validation_result</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC575" class="react-file-line html-div" data-testid="code-cell" data-line-number="575" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC576" class="react-file-line html-div" data-testid="code-cell" data-line-number="576" style="position:relative"><span class="pl-c">/* ---------- XPath ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC577" class="react-file-line html-div" data-testid="code-cell" data-line-number="577" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC578" class="react-file-line html-div" data-testid="code-cell" data-line-number="578" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC579" class="react-file-line html-div" data-testid="code-cell" data-line-number="579" style="position:relative"><span class="pl-c"> * Evaluates an XPath expression against a context node.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC580" class="react-file-line html-div" data-testid="code-cell" data-line-number="580" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC581" class="react-file-line html-div" data-testid="code-cell" data-line-number="581" style="position:relative"><span class="pl-c"> * Returns a pointer to the result on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC582" class="react-file-line html-div" data-testid="code-cell" data-line-number="582" style="position:relative"><span class="pl-c"> * Use context_node=0 to use the document root as context.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC583" class="react-file-line html-div" data-testid="code-cell" data-line-number="583" style="position:relative"><span class="pl-c"> * The returned result must be freed with xmloxide_xpath_free_result().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC584" class="react-file-line html-div" data-testid="code-cell" data-line-number="584" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC585" class="react-file-line html-div" data-testid="code-cell" data-line-number="585" style="position:relative"><span class="pl-smi">xmloxide_xpath_value</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_xpath_eval</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC586" class="react-file-line html-div" data-testid="code-cell" data-line-number="586" style="position:relative">                                          <span class="pl-smi">uint32_t</span> <span class="pl-s1">context_node</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC587" class="react-file-line html-div" data-testid="code-cell" data-line-number="587" style="position:relative">                                          <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">expr</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC588" class="react-file-line html-div" data-testid="code-cell" data-line-number="588" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC589" class="react-file-line html-div" data-testid="code-cell" data-line-number="589" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC590" class="react-file-line html-div" data-testid="code-cell" data-line-number="590" style="position:relative"><span class="pl-c"> * Returns the type of an XPath result.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC591" class="react-file-line html-div" data-testid="code-cell" data-line-number="591" style="position:relative"><span class="pl-c"> * Returns one of the XMLOXIDE_XPATH_* constants, or -1 on error.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC592" class="react-file-line html-div" data-testid="code-cell" data-line-number="592" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC593" class="react-file-line html-div" data-testid="code-cell" data-line-number="593" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_xpath_result_type</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_xpath_value</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC594" class="react-file-line html-div" data-testid="code-cell" data-line-number="594" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC595" class="react-file-line html-div" data-testid="code-cell" data-line-number="595" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC596" class="react-file-line html-div" data-testid="code-cell" data-line-number="596" style="position:relative"><span class="pl-c"> * Returns the boolean value of an XPath result.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC597" class="react-file-line html-div" data-testid="code-cell" data-line-number="597" style="position:relative"><span class="pl-c"> * Converts non-boolean results using XPath type coercion rules.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC598" class="react-file-line html-div" data-testid="code-cell" data-line-number="598" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC599" class="react-file-line html-div" data-testid="code-cell" data-line-number="599" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_xpath_result_boolean</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_xpath_value</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC600" class="react-file-line html-div" data-testid="code-cell" data-line-number="600" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC601" class="react-file-line html-div" data-testid="code-cell" data-line-number="601" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC602" class="react-file-line html-div" data-testid="code-cell" data-line-number="602" style="position:relative"><span class="pl-c"> * Returns the numeric value of an XPath result.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC603" class="react-file-line html-div" data-testid="code-cell" data-line-number="603" style="position:relative"><span class="pl-c"> * Converts non-number results using XPath type coercion rules.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC604" class="react-file-line html-div" data-testid="code-cell" data-line-number="604" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC605" class="react-file-line html-div" data-testid="code-cell" data-line-number="605" style="position:relative"><span class="pl-smi">double</span> <span class="pl-en">xmloxide_xpath_result_number</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_xpath_value</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC606" class="react-file-line html-div" data-testid="code-cell" data-line-number="606" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC607" class="react-file-line html-div" data-testid="code-cell" data-line-number="607" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC608" class="react-file-line html-div" data-testid="code-cell" data-line-number="608" style="position:relative"><span class="pl-c"> * Returns the string value of an XPath result.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC609" class="react-file-line html-div" data-testid="code-cell" data-line-number="609" style="position:relative"><span class="pl-c"> * Converts non-string results using XPath type coercion rules.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC610" class="react-file-line html-div" data-testid="code-cell" data-line-number="610" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC611" class="react-file-line html-div" data-testid="code-cell" data-line-number="611" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC612" class="react-file-line html-div" data-testid="code-cell" data-line-number="612" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_xpath_result_string</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_xpath_value</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC613" class="react-file-line html-div" data-testid="code-cell" data-line-number="613" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC614" class="react-file-line html-div" data-testid="code-cell" data-line-number="614" style="position:relative"><span class="pl-c">/** Returns the number of nodes in an XPath nodeset result. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC615" class="react-file-line html-div" data-testid="code-cell" data-line-number="615" style="position:relative"><span class="pl-smi">size_t</span> <span class="pl-en">xmloxide_xpath_nodeset_count</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_xpath_value</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC616" class="react-file-line html-div" data-testid="code-cell" data-line-number="616" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC617" class="react-file-line html-div" data-testid="code-cell" data-line-number="617" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC618" class="react-file-line html-div" data-testid="code-cell" data-line-number="618" style="position:relative"><span class="pl-c"> * Returns the node id at the given index in an XPath nodeset result.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC619" class="react-file-line html-div" data-testid="code-cell" data-line-number="619" style="position:relative"><span class="pl-c"> * For attribute nodes, returns the id of the owner element (use the</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC620" class="react-file-line html-div" data-testid="code-cell" data-line-number="620" style="position:relative"><span class="pl-c"> * item_is_attribute / item_attr_name / item_attr_value accessors to</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC621" class="react-file-line html-div" data-testid="code-cell" data-line-number="621" style="position:relative"><span class="pl-c"> * inspect the attribute itself).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC622" class="react-file-line html-div" data-testid="code-cell" data-line-number="622" style="position:relative"><span class="pl-c"> * Returns 0 if the result is not a nodeset or the index is out of bounds.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC623" class="react-file-line html-div" data-testid="code-cell" data-line-number="623" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC624" class="react-file-line html-div" data-testid="code-cell" data-line-number="624" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_xpath_nodeset_item</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_xpath_value</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC625" class="react-file-line html-div" data-testid="code-cell" data-line-number="625" style="position:relative">                                     <span class="pl-smi">size_t</span> <span class="pl-s1">index</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC626" class="react-file-line html-div" data-testid="code-cell" data-line-number="626" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC627" class="react-file-line html-div" data-testid="code-cell" data-line-number="627" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC628" class="react-file-line html-div" data-testid="code-cell" data-line-number="628" style="position:relative"><span class="pl-c"> * Returns 1 if the nodeset entry at the given index is an attribute node,</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC629" class="react-file-line html-div" data-testid="code-cell" data-line-number="629" style="position:relative"><span class="pl-c"> * 0 otherwise (including out-of-bounds and non-nodeset results).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC630" class="react-file-line html-div" data-testid="code-cell" data-line-number="630" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC631" class="react-file-line html-div" data-testid="code-cell" data-line-number="631" style="position:relative"><span class="pl-smi">int</span> <span class="pl-en">xmloxide_xpath_nodeset_item_is_attribute</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_xpath_value</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC632" class="react-file-line html-div" data-testid="code-cell" data-line-number="632" style="position:relative">                                             <span class="pl-smi">size_t</span> <span class="pl-s1">index</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC633" class="react-file-line html-div" data-testid="code-cell" data-line-number="633" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC634" class="react-file-line html-div" data-testid="code-cell" data-line-number="634" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC635" class="react-file-line html-div" data-testid="code-cell" data-line-number="635" style="position:relative"><span class="pl-c"> * Returns the qualified name (prefix:local) of the attribute at the given</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC636" class="react-file-line html-div" data-testid="code-cell" data-line-number="636" style="position:relative"><span class="pl-c"> * index in a nodeset result, or NULL if the entry is not an attribute.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC637" class="react-file-line html-div" data-testid="code-cell" data-line-number="637" style="position:relative"><span class="pl-c"> * `doc` must be the document the result was evaluated against.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC638" class="react-file-line html-div" data-testid="code-cell" data-line-number="638" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC639" class="react-file-line html-div" data-testid="code-cell" data-line-number="639" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC640" class="react-file-line html-div" data-testid="code-cell" data-line-number="640" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_xpath_nodeset_item_attr_name</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC641" class="react-file-line html-div" data-testid="code-cell" data-line-number="641" style="position:relative">                                            <span class="pl-k">const</span> <span class="pl-smi">xmloxide_xpath_value</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC642" class="react-file-line html-div" data-testid="code-cell" data-line-number="642" style="position:relative">                                            <span class="pl-smi">size_t</span> <span class="pl-s1">index</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC643" class="react-file-line html-div" data-testid="code-cell" data-line-number="643" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC644" class="react-file-line html-div" data-testid="code-cell" data-line-number="644" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC645" class="react-file-line html-div" data-testid="code-cell" data-line-number="645" style="position:relative"><span class="pl-c"> * Returns the value of the attribute at the given index in a nodeset</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC646" class="react-file-line html-div" data-testid="code-cell" data-line-number="646" style="position:relative"><span class="pl-c"> * result, or NULL if the entry is not an attribute.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC647" class="react-file-line html-div" data-testid="code-cell" data-line-number="647" style="position:relative"><span class="pl-c"> * `doc` must be the document the result was evaluated against.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC648" class="react-file-line html-div" data-testid="code-cell" data-line-number="648" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC649" class="react-file-line html-div" data-testid="code-cell" data-line-number="649" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC650" class="react-file-line html-div" data-testid="code-cell" data-line-number="650" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_xpath_nodeset_item_attr_value</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC651" class="react-file-line html-div" data-testid="code-cell" data-line-number="651" style="position:relative">                                             <span class="pl-k">const</span> <span class="pl-smi">xmloxide_xpath_value</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC652" class="react-file-line html-div" data-testid="code-cell" data-line-number="652" style="position:relative">                                             <span class="pl-smi">size_t</span> <span class="pl-s1">index</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC653" class="react-file-line html-div" data-testid="code-cell" data-line-number="653" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC654" class="react-file-line html-div" data-testid="code-cell" data-line-number="654" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC655" class="react-file-line html-div" data-testid="code-cell" data-line-number="655" style="position:relative"><span class="pl-c"> * Frees an XPath result previously returned by xmloxide_xpath_eval().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC656" class="react-file-line html-div" data-testid="code-cell" data-line-number="656" style="position:relative"><span class="pl-c"> * Passing NULL is safe and does nothing.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC657" class="react-file-line html-div" data-testid="code-cell" data-line-number="657" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC658" class="react-file-line html-div" data-testid="code-cell" data-line-number="658" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_xpath_free_result</span>(<span class="pl-smi">xmloxide_xpath_value</span> <span class="pl-c1">*</span><span class="pl-s1">result</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC659" class="react-file-line html-div" data-testid="code-cell" data-line-number="659" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC660" class="react-file-line html-div" data-testid="code-cell" data-line-number="660" style="position:relative"><span class="pl-c">/* ---------- Canonical XML (C14N) ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC661" class="react-file-line html-div" data-testid="code-cell" data-line-number="661" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC662" class="react-file-line html-div" data-testid="code-cell" data-line-number="662" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC663" class="react-file-line html-div" data-testid="code-cell" data-line-number="663" style="position:relative"><span class="pl-c"> * Canonicalizes a document using inclusive C14N with comments.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC664" class="react-file-line html-div" data-testid="code-cell" data-line-number="664" style="position:relative"><span class="pl-c"> * Returns a caller-owned C string that must be freed with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC665" class="react-file-line html-div" data-testid="code-cell" data-line-number="665" style="position:relative"><span class="pl-c"> * xmloxide_free_string(). Returns NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC666" class="react-file-line html-div" data-testid="code-cell" data-line-number="666" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC667" class="react-file-line html-div" data-testid="code-cell" data-line-number="667" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_canonicalize</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC668" class="react-file-line html-div" data-testid="code-cell" data-line-number="668" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC669" class="react-file-line html-div" data-testid="code-cell" data-line-number="669" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC670" class="react-file-line html-div" data-testid="code-cell" data-line-number="670" style="position:relative"><span class="pl-c"> * Canonicalizes a document with options.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC671" class="react-file-line html-div" data-testid="code-cell" data-line-number="671" style="position:relative"><span class="pl-c"> * with_comments: 1 to include comments, 0 to strip.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC672" class="react-file-line html-div" data-testid="code-cell" data-line-number="672" style="position:relative"><span class="pl-c"> * exclusive: 1 for exclusive C14N, 0 for inclusive.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC673" class="react-file-line html-div" data-testid="code-cell" data-line-number="673" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC674" class="react-file-line html-div" data-testid="code-cell" data-line-number="674" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_canonicalize_opts</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC675" class="react-file-line html-div" data-testid="code-cell" data-line-number="675" style="position:relative">                                 <span class="pl-smi">int32_t</span> <span class="pl-s1">with_comments</span>, <span class="pl-smi">int32_t</span> <span class="pl-s1">exclusive</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC676" class="react-file-line html-div" data-testid="code-cell" data-line-number="676" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC677" class="react-file-line html-div" data-testid="code-cell" data-line-number="677" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC678" class="react-file-line html-div" data-testid="code-cell" data-line-number="678" style="position:relative"><span class="pl-c"> * Canonicalizes a subtree rooted at the given node.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC679" class="react-file-line html-div" data-testid="code-cell" data-line-number="679" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC680" class="react-file-line html-div" data-testid="code-cell" data-line-number="680" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_canonicalize_subtree</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC681" class="react-file-line html-div" data-testid="code-cell" data-line-number="681" style="position:relative">                                    <span class="pl-smi">uint32_t</span> <span class="pl-s1">node</span>, <span class="pl-smi">int32_t</span> <span class="pl-s1">with_comments</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC682" class="react-file-line html-div" data-testid="code-cell" data-line-number="682" style="position:relative">                                    <span class="pl-smi">int32_t</span> <span class="pl-s1">exclusive</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC683" class="react-file-line html-div" data-testid="code-cell" data-line-number="683" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC684" class="react-file-line html-div" data-testid="code-cell" data-line-number="684" style="position:relative"><span class="pl-c">/* ---------- XInclude ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC685" class="react-file-line html-div" data-testid="code-cell" data-line-number="685" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC686" class="react-file-line html-div" data-testid="code-cell" data-line-number="686" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC687" class="react-file-line html-div" data-testid="code-cell" data-line-number="687" style="position:relative"><span class="pl-c"> * Processes XInclude elements in a document using file-based resolution.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC688" class="react-file-line html-div" data-testid="code-cell" data-line-number="688" style="position:relative"><span class="pl-c"> * Returns the number of successful inclusions, or -1 on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC689" class="react-file-line html-div" data-testid="code-cell" data-line-number="689" style="position:relative"><span class="pl-c"> * Errors are stored in the thread-local error (retrievable via xmloxide_last_error).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC690" class="react-file-line html-div" data-testid="code-cell" data-line-number="690" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC691" class="react-file-line html-div" data-testid="code-cell" data-line-number="691" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_process_xincludes</span>(<span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC692" class="react-file-line html-div" data-testid="code-cell" data-line-number="692" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC693" class="react-file-line html-div" data-testid="code-cell" data-line-number="693" style="position:relative"><span class="pl-c">/* ---------- XML Catalogs ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC694" class="react-file-line html-div" data-testid="code-cell" data-line-number="694" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC695" class="react-file-line html-div" data-testid="code-cell" data-line-number="695" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC696" class="react-file-line html-div" data-testid="code-cell" data-line-number="696" style="position:relative"><span class="pl-c"> * Parses an XML Catalog from a null-terminated UTF-8 XML string.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC697" class="react-file-line html-div" data-testid="code-cell" data-line-number="697" style="position:relative"><span class="pl-c"> * Returns a catalog pointer on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC698" class="react-file-line html-div" data-testid="code-cell" data-line-number="698" style="position:relative"><span class="pl-c"> * The returned catalog must be freed with xmloxide_free_catalog().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC699" class="react-file-line html-div" data-testid="code-cell" data-line-number="699" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC700" class="react-file-line html-div" data-testid="code-cell" data-line-number="700" style="position:relative"><span class="pl-smi">xmloxide_catalog</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_parse_catalog</span>(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">input</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC701" class="react-file-line html-div" data-testid="code-cell" data-line-number="701" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC702" class="react-file-line html-div" data-testid="code-cell" data-line-number="702" style="position:relative"><span class="pl-c">/** Frees a catalog. Passing NULL is safe and does nothing. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC703" class="react-file-line html-div" data-testid="code-cell" data-line-number="703" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_free_catalog</span>(<span class="pl-smi">xmloxide_catalog</span> <span class="pl-c1">*</span><span class="pl-s1">catalog</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC704" class="react-file-line html-div" data-testid="code-cell" data-line-number="704" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC705" class="react-file-line html-div" data-testid="code-cell" data-line-number="705" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC706" class="react-file-line html-div" data-testid="code-cell" data-line-number="706" style="position:relative"><span class="pl-c"> * Resolves a system identifier using the catalog.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC707" class="react-file-line html-div" data-testid="code-cell" data-line-number="707" style="position:relative"><span class="pl-c"> * Returns a caller-owned URI string, or NULL if not found.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC708" class="react-file-line html-div" data-testid="code-cell" data-line-number="708" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC709" class="react-file-line html-div" data-testid="code-cell" data-line-number="709" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_catalog_resolve_system</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_catalog</span> <span class="pl-c1">*</span><span class="pl-s1">catalog</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC710" class="react-file-line html-div" data-testid="code-cell" data-line-number="710" style="position:relative">                                      <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">system_id</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC711" class="react-file-line html-div" data-testid="code-cell" data-line-number="711" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC712" class="react-file-line html-div" data-testid="code-cell" data-line-number="712" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC713" class="react-file-line html-div" data-testid="code-cell" data-line-number="713" style="position:relative"><span class="pl-c"> * Resolves a public identifier using the catalog.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC714" class="react-file-line html-div" data-testid="code-cell" data-line-number="714" style="position:relative"><span class="pl-c"> * Returns a caller-owned URI string, or NULL if not found.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC715" class="react-file-line html-div" data-testid="code-cell" data-line-number="715" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC716" class="react-file-line html-div" data-testid="code-cell" data-line-number="716" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_catalog_resolve_public</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_catalog</span> <span class="pl-c1">*</span><span class="pl-s1">catalog</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC717" class="react-file-line html-div" data-testid="code-cell" data-line-number="717" style="position:relative">                                      <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">public_id</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC718" class="react-file-line html-div" data-testid="code-cell" data-line-number="718" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC719" class="react-file-line html-div" data-testid="code-cell" data-line-number="719" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC720" class="react-file-line html-div" data-testid="code-cell" data-line-number="720" style="position:relative"><span class="pl-c"> * Resolves a URI using the catalog.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC721" class="react-file-line html-div" data-testid="code-cell" data-line-number="721" style="position:relative"><span class="pl-c"> * Returns a caller-owned URI string, or NULL if not found.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC722" class="react-file-line html-div" data-testid="code-cell" data-line-number="722" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC723" class="react-file-line html-div" data-testid="code-cell" data-line-number="723" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_catalog_resolve_uri</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_catalog</span> <span class="pl-c1">*</span><span class="pl-s1">catalog</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC724" class="react-file-line html-div" data-testid="code-cell" data-line-number="724" style="position:relative">                                   <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">uri</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC725" class="react-file-line html-div" data-testid="code-cell" data-line-number="725" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC726" class="react-file-line html-div" data-testid="code-cell" data-line-number="726" style="position:relative"><span class="pl-c">/* ---------- Push parser (incremental) ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC727" class="react-file-line html-div" data-testid="code-cell" data-line-number="727" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC728" class="react-file-line html-div" data-testid="code-cell" data-line-number="728" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC729" class="react-file-line html-div" data-testid="code-cell" data-line-number="729" style="position:relative"><span class="pl-c"> * Creates a new push parser with default options.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC730" class="react-file-line html-div" data-testid="code-cell" data-line-number="730" style="position:relative"><span class="pl-c"> * The returned parser must be consumed via xmloxide_push_parser_finish()</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC731" class="react-file-line html-div" data-testid="code-cell" data-line-number="731" style="position:relative"><span class="pl-c"> * or freed with xmloxide_push_parser_free().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC732" class="react-file-line html-div" data-testid="code-cell" data-line-number="732" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC733" class="react-file-line html-div" data-testid="code-cell" data-line-number="733" style="position:relative"><span class="pl-smi">xmloxide_push_parser</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_push_parser_new</span>(<span class="pl-smi">void</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC734" class="react-file-line html-div" data-testid="code-cell" data-line-number="734" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC735" class="react-file-line html-div" data-testid="code-cell" data-line-number="735" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC736" class="react-file-line html-div" data-testid="code-cell" data-line-number="736" style="position:relative"><span class="pl-c"> * Feeds a chunk of raw bytes into the push parser.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC737" class="react-file-line html-div" data-testid="code-cell" data-line-number="737" style="position:relative"><span class="pl-c"> * Data can be split at arbitrary byte boundaries.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC738" class="react-file-line html-div" data-testid="code-cell" data-line-number="738" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC739" class="react-file-line html-div" data-testid="code-cell" data-line-number="739" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_push_parser_push</span>(<span class="pl-smi">xmloxide_push_parser</span> <span class="pl-c1">*</span><span class="pl-s1">parser</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC740" class="react-file-line html-div" data-testid="code-cell" data-line-number="740" style="position:relative">                                <span class="pl-k">const</span> <span class="pl-smi">uint8_t</span> <span class="pl-c1">*</span><span class="pl-s1">data</span>, <span class="pl-smi">size_t</span> <span class="pl-s1">len</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC741" class="react-file-line html-div" data-testid="code-cell" data-line-number="741" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC742" class="react-file-line html-div" data-testid="code-cell" data-line-number="742" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC743" class="react-file-line html-div" data-testid="code-cell" data-line-number="743" style="position:relative"><span class="pl-c"> * Finalizes parsing and returns the constructed document.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC744" class="react-file-line html-div" data-testid="code-cell" data-line-number="744" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC745" class="react-file-line html-div" data-testid="code-cell" data-line-number="745" style="position:relative"><span class="pl-c"> * This CONSUMES the parser — the parser pointer becomes invalid after</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC746" class="react-file-line html-div" data-testid="code-cell" data-line-number="746" style="position:relative"><span class="pl-c"> * this call. Do NOT call xmloxide_push_parser_free() after finish.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC747" class="react-file-line html-div" data-testid="code-cell" data-line-number="747" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC748" class="react-file-line html-div" data-testid="code-cell" data-line-number="748" style="position:relative"><span class="pl-c"> * Returns a document pointer on success, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC749" class="react-file-line html-div" data-testid="code-cell" data-line-number="749" style="position:relative"><span class="pl-c"> * The returned document must be freed with xmloxide_free_doc().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC750" class="react-file-line html-div" data-testid="code-cell" data-line-number="750" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC751" class="react-file-line html-div" data-testid="code-cell" data-line-number="751" style="position:relative"><span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_push_parser_finish</span>(<span class="pl-smi">xmloxide_push_parser</span> <span class="pl-c1">*</span><span class="pl-s1">parser</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC752" class="react-file-line html-div" data-testid="code-cell" data-line-number="752" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC753" class="react-file-line html-div" data-testid="code-cell" data-line-number="753" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC754" class="react-file-line html-div" data-testid="code-cell" data-line-number="754" style="position:relative"><span class="pl-c"> * Returns the number of bytes currently buffered in the push parser.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC755" class="react-file-line html-div" data-testid="code-cell" data-line-number="755" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC756" class="react-file-line html-div" data-testid="code-cell" data-line-number="756" style="position:relative"><span class="pl-smi">size_t</span> <span class="pl-en">xmloxide_push_parser_buffered_bytes</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_push_parser</span> <span class="pl-c1">*</span><span class="pl-s1">parser</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC757" class="react-file-line html-div" data-testid="code-cell" data-line-number="757" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC758" class="react-file-line html-div" data-testid="code-cell" data-line-number="758" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC759" class="react-file-line html-div" data-testid="code-cell" data-line-number="759" style="position:relative"><span class="pl-c"> * Resets the push parser, discarding all buffered data.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC760" class="react-file-line html-div" data-testid="code-cell" data-line-number="760" style="position:relative"><span class="pl-c"> * The parser can then be reused for a new document.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC761" class="react-file-line html-div" data-testid="code-cell" data-line-number="761" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC762" class="react-file-line html-div" data-testid="code-cell" data-line-number="762" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_push_parser_reset</span>(<span class="pl-smi">xmloxide_push_parser</span> <span class="pl-c1">*</span><span class="pl-s1">parser</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC763" class="react-file-line html-div" data-testid="code-cell" data-line-number="763" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC764" class="react-file-line html-div" data-testid="code-cell" data-line-number="764" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC765" class="react-file-line html-div" data-testid="code-cell" data-line-number="765" style="position:relative"><span class="pl-c"> * Frees a push parser without finishing it.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC766" class="react-file-line html-div" data-testid="code-cell" data-line-number="766" style="position:relative"><span class="pl-c"> * Use this to discard a parser whose data you no longer need.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC767" class="react-file-line html-div" data-testid="code-cell" data-line-number="767" style="position:relative"><span class="pl-c"> * Passing NULL is safe. Do NOT call after finish().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC768" class="react-file-line html-div" data-testid="code-cell" data-line-number="768" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC769" class="react-file-line html-div" data-testid="code-cell" data-line-number="769" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_push_parser_free</span>(<span class="pl-smi">xmloxide_push_parser</span> <span class="pl-c1">*</span><span class="pl-s1">parser</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC770" class="react-file-line html-div" data-testid="code-cell" data-line-number="770" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC771" class="react-file-line html-div" data-testid="code-cell" data-line-number="771" style="position:relative"><span class="pl-c">/* ---------- XmlReader (pull-based streaming) ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC772" class="react-file-line html-div" data-testid="code-cell" data-line-number="772" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC773" class="react-file-line html-div" data-testid="code-cell" data-line-number="773" style="position:relative"><span class="pl-c">/*</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC774" class="react-file-line html-div" data-testid="code-cell" data-line-number="774" style="position:relative"><span class="pl-c"> * Reader node type constants (matching libxml2&#039;s xmlReaderTypes).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC775" class="react-file-line html-div" data-testid="code-cell" data-line-number="775" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC776" class="react-file-line html-div" data-testid="code-cell" data-line-number="776" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_READER_NONE</span>             0</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC777" class="react-file-line html-div" data-testid="code-cell" data-line-number="777" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_READER_ELEMENT</span>          1</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC778" class="react-file-line html-div" data-testid="code-cell" data-line-number="778" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_READER_ATTRIBUTE</span>        2</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC779" class="react-file-line html-div" data-testid="code-cell" data-line-number="779" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_READER_TEXT</span>             3</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC780" class="react-file-line html-div" data-testid="code-cell" data-line-number="780" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_READER_CDATA</span>            4</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC781" class="react-file-line html-div" data-testid="code-cell" data-line-number="781" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_READER_PI</span>               7</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC782" class="react-file-line html-div" data-testid="code-cell" data-line-number="782" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_READER_COMMENT</span>          8</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC783" class="react-file-line html-div" data-testid="code-cell" data-line-number="783" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_READER_DOCUMENT_TYPE</span>   10</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC784" class="react-file-line html-div" data-testid="code-cell" data-line-number="784" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_READER_WHITESPACE</span>      13</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC785" class="react-file-line html-div" data-testid="code-cell" data-line-number="785" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_READER_END_ELEMENT</span>     15</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC786" class="react-file-line html-div" data-testid="code-cell" data-line-number="786" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_READER_XML_DECLARATION</span> 17</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC787" class="react-file-line html-div" data-testid="code-cell" data-line-number="787" style="position:relative"><span class="pl-k">#define</span> <span class="pl-c1">XMLOXIDE_READER_END_DOCUMENT</span>    (-1)</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC788" class="react-file-line html-div" data-testid="code-cell" data-line-number="788" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC789" class="react-file-line html-div" data-testid="code-cell" data-line-number="789" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC790" class="react-file-line html-div" data-testid="code-cell" data-line-number="790" style="position:relative"><span class="pl-c"> * Creates a new XmlReader from a null-terminated UTF-8 string.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC791" class="react-file-line html-div" data-testid="code-cell" data-line-number="791" style="position:relative"><span class="pl-c"> * Returns an opaque reader pointer, or NULL on failure.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC792" class="react-file-line html-div" data-testid="code-cell" data-line-number="792" style="position:relative"><span class="pl-c"> * The reader must be freed with xmloxide_reader_free().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC793" class="react-file-line html-div" data-testid="code-cell" data-line-number="793" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC794" class="react-file-line html-div" data-testid="code-cell" data-line-number="794" style="position:relative"><span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_reader_new</span>(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">input</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC795" class="react-file-line html-div" data-testid="code-cell" data-line-number="795" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC796" class="react-file-line html-div" data-testid="code-cell" data-line-number="796" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC797" class="react-file-line html-div" data-testid="code-cell" data-line-number="797" style="position:relative"><span class="pl-c"> * Advances the reader to the next node.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC798" class="react-file-line html-div" data-testid="code-cell" data-line-number="798" style="position:relative"><span class="pl-c"> * Returns 1 if a node was read, 0 at end of document, -1 on error.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC799" class="react-file-line html-div" data-testid="code-cell" data-line-number="799" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC800" class="react-file-line html-div" data-testid="code-cell" data-line-number="800" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_reader_read</span>(<span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC801" class="react-file-line html-div" data-testid="code-cell" data-line-number="801" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC802" class="react-file-line html-div" data-testid="code-cell" data-line-number="802" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC803" class="react-file-line html-div" data-testid="code-cell" data-line-number="803" style="position:relative"><span class="pl-c"> * Returns the node type of the current node.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC804" class="react-file-line html-div" data-testid="code-cell" data-line-number="804" style="position:relative"><span class="pl-c"> * Returns one of the XMLOXIDE_READER_* constants.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC805" class="react-file-line html-div" data-testid="code-cell" data-line-number="805" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC806" class="react-file-line html-div" data-testid="code-cell" data-line-number="806" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_reader_node_type</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC807" class="react-file-line html-div" data-testid="code-cell" data-line-number="807" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC808" class="react-file-line html-div" data-testid="code-cell" data-line-number="808" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC809" class="react-file-line html-div" data-testid="code-cell" data-line-number="809" style="position:relative"><span class="pl-c"> * Returns the qualified name of the current node, or NULL.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC810" class="react-file-line html-div" data-testid="code-cell" data-line-number="810" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC811" class="react-file-line html-div" data-testid="code-cell" data-line-number="811" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC812" class="react-file-line html-div" data-testid="code-cell" data-line-number="812" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_reader_name</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC813" class="react-file-line html-div" data-testid="code-cell" data-line-number="813" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC814" class="react-file-line html-div" data-testid="code-cell" data-line-number="814" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC815" class="react-file-line html-div" data-testid="code-cell" data-line-number="815" style="position:relative"><span class="pl-c"> * Returns the local name of the current node (without prefix), or NULL.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC816" class="react-file-line html-div" data-testid="code-cell" data-line-number="816" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC817" class="react-file-line html-div" data-testid="code-cell" data-line-number="817" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC818" class="react-file-line html-div" data-testid="code-cell" data-line-number="818" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_reader_local_name</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC819" class="react-file-line html-div" data-testid="code-cell" data-line-number="819" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC820" class="react-file-line html-div" data-testid="code-cell" data-line-number="820" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC821" class="react-file-line html-div" data-testid="code-cell" data-line-number="821" style="position:relative"><span class="pl-c"> * Returns the namespace prefix of the current node, or NULL.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC822" class="react-file-line html-div" data-testid="code-cell" data-line-number="822" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC823" class="react-file-line html-div" data-testid="code-cell" data-line-number="823" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC824" class="react-file-line html-div" data-testid="code-cell" data-line-number="824" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_reader_prefix</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC825" class="react-file-line html-div" data-testid="code-cell" data-line-number="825" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC826" class="react-file-line html-div" data-testid="code-cell" data-line-number="826" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC827" class="react-file-line html-div" data-testid="code-cell" data-line-number="827" style="position:relative"><span class="pl-c"> * Returns the namespace URI of the current node, or NULL.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC828" class="react-file-line html-div" data-testid="code-cell" data-line-number="828" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC829" class="react-file-line html-div" data-testid="code-cell" data-line-number="829" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC830" class="react-file-line html-div" data-testid="code-cell" data-line-number="830" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_reader_namespace_uri</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC831" class="react-file-line html-div" data-testid="code-cell" data-line-number="831" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC832" class="react-file-line html-div" data-testid="code-cell" data-line-number="832" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC833" class="react-file-line html-div" data-testid="code-cell" data-line-number="833" style="position:relative"><span class="pl-c"> * Returns the value of the current node (text, comment, attribute value),</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC834" class="react-file-line html-div" data-testid="code-cell" data-line-number="834" style="position:relative"><span class="pl-c"> * or NULL for elements and end elements.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC835" class="react-file-line html-div" data-testid="code-cell" data-line-number="835" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC836" class="react-file-line html-div" data-testid="code-cell" data-line-number="836" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC837" class="react-file-line html-div" data-testid="code-cell" data-line-number="837" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_reader_value</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC838" class="react-file-line html-div" data-testid="code-cell" data-line-number="838" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC839" class="react-file-line html-div" data-testid="code-cell" data-line-number="839" style="position:relative"><span class="pl-c">/** Returns the depth of the current node in the document tree. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC840" class="react-file-line html-div" data-testid="code-cell" data-line-number="840" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_reader_depth</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC841" class="react-file-line html-div" data-testid="code-cell" data-line-number="841" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC842" class="react-file-line html-div" data-testid="code-cell" data-line-number="842" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC843" class="react-file-line html-div" data-testid="code-cell" data-line-number="843" style="position:relative"><span class="pl-c"> * Returns 1 if the current element is self-closing (empty), 0 otherwise.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC844" class="react-file-line html-div" data-testid="code-cell" data-line-number="844" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC845" class="react-file-line html-div" data-testid="code-cell" data-line-number="845" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_reader_is_empty_element</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC846" class="react-file-line html-div" data-testid="code-cell" data-line-number="846" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC847" class="react-file-line html-div" data-testid="code-cell" data-line-number="847" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC848" class="react-file-line html-div" data-testid="code-cell" data-line-number="848" style="position:relative"><span class="pl-c"> * Returns 1 if the current node has a value, 0 otherwise.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC849" class="react-file-line html-div" data-testid="code-cell" data-line-number="849" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC850" class="react-file-line html-div" data-testid="code-cell" data-line-number="850" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_reader_has_value</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC851" class="react-file-line html-div" data-testid="code-cell" data-line-number="851" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC852" class="react-file-line html-div" data-testid="code-cell" data-line-number="852" style="position:relative"><span class="pl-c">/** Returns the number of attributes on the current element. */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC853" class="react-file-line html-div" data-testid="code-cell" data-line-number="853" style="position:relative"><span class="pl-smi">size_t</span> <span class="pl-en">xmloxide_reader_attribute_count</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC854" class="react-file-line html-div" data-testid="code-cell" data-line-number="854" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC855" class="react-file-line html-div" data-testid="code-cell" data-line-number="855" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC856" class="react-file-line html-div" data-testid="code-cell" data-line-number="856" style="position:relative"><span class="pl-c"> * Returns the value of an attribute by name on the current element, or NULL.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC857" class="react-file-line html-div" data-testid="code-cell" data-line-number="857" style="position:relative"><span class="pl-c"> * The returned string must be freed with xmloxide_free_string().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC858" class="react-file-line html-div" data-testid="code-cell" data-line-number="858" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC859" class="react-file-line html-div" data-testid="code-cell" data-line-number="859" style="position:relative"><span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_reader_get_attribute</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC860" class="react-file-line html-div" data-testid="code-cell" data-line-number="860" style="position:relative">                                     <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">name</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC861" class="react-file-line html-div" data-testid="code-cell" data-line-number="861" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC862" class="react-file-line html-div" data-testid="code-cell" data-line-number="862" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC863" class="react-file-line html-div" data-testid="code-cell" data-line-number="863" style="position:relative"><span class="pl-c"> * Moves the reader to the first attribute of the current element.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC864" class="react-file-line html-div" data-testid="code-cell" data-line-number="864" style="position:relative"><span class="pl-c"> * Returns 1 if successful, 0 if no attributes or not on an element.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC865" class="react-file-line html-div" data-testid="code-cell" data-line-number="865" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC866" class="react-file-line html-div" data-testid="code-cell" data-line-number="866" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_reader_move_to_first_attribute</span>(<span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC867" class="react-file-line html-div" data-testid="code-cell" data-line-number="867" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC868" class="react-file-line html-div" data-testid="code-cell" data-line-number="868" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC869" class="react-file-line html-div" data-testid="code-cell" data-line-number="869" style="position:relative"><span class="pl-c"> * Moves the reader to the next attribute.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC870" class="react-file-line html-div" data-testid="code-cell" data-line-number="870" style="position:relative"><span class="pl-c"> * Returns 1 if successful, 0 if no more attributes.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC871" class="react-file-line html-div" data-testid="code-cell" data-line-number="871" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC872" class="react-file-line html-div" data-testid="code-cell" data-line-number="872" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_reader_move_to_next_attribute</span>(<span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC873" class="react-file-line html-div" data-testid="code-cell" data-line-number="873" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC874" class="react-file-line html-div" data-testid="code-cell" data-line-number="874" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC875" class="react-file-line html-div" data-testid="code-cell" data-line-number="875" style="position:relative"><span class="pl-c"> * Moves the reader back to the element from an attribute.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC876" class="react-file-line html-div" data-testid="code-cell" data-line-number="876" style="position:relative"><span class="pl-c"> * Returns 1 if moved back, 0 if not on an attribute.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC877" class="react-file-line html-div" data-testid="code-cell" data-line-number="877" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC878" class="react-file-line html-div" data-testid="code-cell" data-line-number="878" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_reader_move_to_element</span>(<span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC879" class="react-file-line html-div" data-testid="code-cell" data-line-number="879" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC880" class="react-file-line html-div" data-testid="code-cell" data-line-number="880" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC881" class="react-file-line html-div" data-testid="code-cell" data-line-number="881" style="position:relative"><span class="pl-c"> * Frees a reader. Passing NULL is safe and does nothing.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC882" class="react-file-line html-div" data-testid="code-cell" data-line-number="882" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC883" class="react-file-line html-div" data-testid="code-cell" data-line-number="883" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_reader_free</span>(<span class="pl-smi">xmloxide_reader</span> <span class="pl-c1">*</span><span class="pl-s1">reader</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC884" class="react-file-line html-div" data-testid="code-cell" data-line-number="884" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC885" class="react-file-line html-div" data-testid="code-cell" data-line-number="885" style="position:relative"><span class="pl-c">/* ---------- SAX2 streaming parser ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC886" class="react-file-line html-div" data-testid="code-cell" data-line-number="886" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC887" class="react-file-line html-div" data-testid="code-cell" data-line-number="887" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC888" class="react-file-line html-div" data-testid="code-cell" data-line-number="888" style="position:relative"><span class="pl-c"> * C function pointer type for start_element events.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC889" class="react-file-line html-div" data-testid="code-cell" data-line-number="889" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC890" class="react-file-line html-div" data-testid="code-cell" data-line-number="890" style="position:relative"><span class="pl-c"> * Parameters:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC891" class="react-file-line html-div" data-testid="code-cell" data-line-number="891" style="position:relative"><span class="pl-c"> *   local_name  - element local name (never NULL)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC892" class="react-file-line html-div" data-testid="code-cell" data-line-number="892" style="position:relative"><span class="pl-c"> *   prefix      - namespace prefix (may be NULL)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC893" class="react-file-line html-div" data-testid="code-cell" data-line-number="893" style="position:relative"><span class="pl-c"> *   namespace   - namespace URI (may be NULL)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC894" class="react-file-line html-div" data-testid="code-cell" data-line-number="894" style="position:relative"><span class="pl-c"> *   attr_names  - array of attribute name strings</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC895" class="react-file-line html-div" data-testid="code-cell" data-line-number="895" style="position:relative"><span class="pl-c"> *   attr_values - array of attribute value strings</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC896" class="react-file-line html-div" data-testid="code-cell" data-line-number="896" style="position:relative"><span class="pl-c"> *   attr_count  - number of attributes</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC897" class="react-file-line html-div" data-testid="code-cell" data-line-number="897" style="position:relative"><span class="pl-c"> *   user_data   - opaque pointer passed through from the handler</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC898" class="react-file-line html-div" data-testid="code-cell" data-line-number="898" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC899" class="react-file-line html-div" data-testid="code-cell" data-line-number="899" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-smi">void</span> (<span class="pl-c1">*</span><span class="pl-smi">xmloxide_sax_start_element_cb</span>)(</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC900" class="react-file-line html-div" data-testid="code-cell" data-line-number="900" style="position:relative">    <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">local_name</span>, <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">prefix</span>, <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">namespace_uri</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC901" class="react-file-line html-div" data-testid="code-cell" data-line-number="901" style="position:relative">    <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-k">const</span> <span class="pl-c1">*</span><span class="pl-s1">attr_names</span>, <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-k">const</span> <span class="pl-c1">*</span><span class="pl-s1">attr_values</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC902" class="react-file-line html-div" data-testid="code-cell" data-line-number="902" style="position:relative">    <span class="pl-smi">size_t</span> <span class="pl-s1">attr_count</span>, <span class="pl-smi">void</span> <span class="pl-c1">*</span><span class="pl-s1">user_data</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC903" class="react-file-line html-div" data-testid="code-cell" data-line-number="903" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC904" class="react-file-line html-div" data-testid="code-cell" data-line-number="904" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC905" class="react-file-line html-div" data-testid="code-cell" data-line-number="905" style="position:relative"><span class="pl-c"> * C function pointer type for end_element events.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC906" class="react-file-line html-div" data-testid="code-cell" data-line-number="906" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC907" class="react-file-line html-div" data-testid="code-cell" data-line-number="907" style="position:relative"><span class="pl-c"> * Parameters:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC908" class="react-file-line html-div" data-testid="code-cell" data-line-number="908" style="position:relative"><span class="pl-c"> *   local_name  - element local name (never NULL)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC909" class="react-file-line html-div" data-testid="code-cell" data-line-number="909" style="position:relative"><span class="pl-c"> *   prefix      - namespace prefix (may be NULL)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC910" class="react-file-line html-div" data-testid="code-cell" data-line-number="910" style="position:relative"><span class="pl-c"> *   namespace   - namespace URI (may be NULL)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC911" class="react-file-line html-div" data-testid="code-cell" data-line-number="911" style="position:relative"><span class="pl-c"> *   user_data   - opaque pointer passed through from the handler</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC912" class="react-file-line html-div" data-testid="code-cell" data-line-number="912" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC913" class="react-file-line html-div" data-testid="code-cell" data-line-number="913" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-smi">void</span> (<span class="pl-c1">*</span><span class="pl-smi">xmloxide_sax_end_element_cb</span>)(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">local_name</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC914" class="react-file-line html-div" data-testid="code-cell" data-line-number="914" style="position:relative">                                             <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">prefix</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC915" class="react-file-line html-div" data-testid="code-cell" data-line-number="915" style="position:relative">                                             <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">namespace_uri</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC916" class="react-file-line html-div" data-testid="code-cell" data-line-number="916" style="position:relative">                                             <span class="pl-smi">void</span> <span class="pl-c1">*</span><span class="pl-s1">user_data</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC917" class="react-file-line html-div" data-testid="code-cell" data-line-number="917" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC918" class="react-file-line html-div" data-testid="code-cell" data-line-number="918" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC919" class="react-file-line html-div" data-testid="code-cell" data-line-number="919" style="position:relative"><span class="pl-c"> * C function pointer type for characters, CDATA, and comment events.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC920" class="react-file-line html-div" data-testid="code-cell" data-line-number="920" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC921" class="react-file-line html-div" data-testid="code-cell" data-line-number="921" style="position:relative"><span class="pl-c"> * Parameters:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC922" class="react-file-line html-div" data-testid="code-cell" data-line-number="922" style="position:relative"><span class="pl-c"> *   content   - text content (never NULL)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC923" class="react-file-line html-div" data-testid="code-cell" data-line-number="923" style="position:relative"><span class="pl-c"> *   user_data - opaque pointer passed through from the handler</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC924" class="react-file-line html-div" data-testid="code-cell" data-line-number="924" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC925" class="react-file-line html-div" data-testid="code-cell" data-line-number="925" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-smi">void</span> (<span class="pl-c1">*</span><span class="pl-smi">xmloxide_sax_text_cb</span>)(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">content</span>, <span class="pl-smi">void</span> <span class="pl-c1">*</span><span class="pl-s1">user_data</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC926" class="react-file-line html-div" data-testid="code-cell" data-line-number="926" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC927" class="react-file-line html-div" data-testid="code-cell" data-line-number="927" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC928" class="react-file-line html-div" data-testid="code-cell" data-line-number="928" style="position:relative"><span class="pl-c"> * C function pointer type for processing instruction events.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC929" class="react-file-line html-div" data-testid="code-cell" data-line-number="929" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC930" class="react-file-line html-div" data-testid="code-cell" data-line-number="930" style="position:relative"><span class="pl-c"> * Parameters:</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC931" class="react-file-line html-div" data-testid="code-cell" data-line-number="931" style="position:relative"><span class="pl-c"> *   target    - PI target (never NULL)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC932" class="react-file-line html-div" data-testid="code-cell" data-line-number="932" style="position:relative"><span class="pl-c"> *   data      - PI data (may be NULL)</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC933" class="react-file-line html-div" data-testid="code-cell" data-line-number="933" style="position:relative"><span class="pl-c"> *   user_data - opaque pointer passed through from the handler</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC934" class="react-file-line html-div" data-testid="code-cell" data-line-number="934" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC935" class="react-file-line html-div" data-testid="code-cell" data-line-number="935" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-smi">void</span> (<span class="pl-c1">*</span><span class="pl-smi">xmloxide_sax_pi_cb</span>)(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">target</span>, <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">data</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC936" class="react-file-line html-div" data-testid="code-cell" data-line-number="936" style="position:relative">                                    <span class="pl-smi">void</span> <span class="pl-c1">*</span><span class="pl-s1">user_data</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC937" class="react-file-line html-div" data-testid="code-cell" data-line-number="937" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC938" class="react-file-line html-div" data-testid="code-cell" data-line-number="938" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC939" class="react-file-line html-div" data-testid="code-cell" data-line-number="939" style="position:relative"><span class="pl-c"> * SAX handler with C function pointer callbacks.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC940" class="react-file-line html-div" data-testid="code-cell" data-line-number="940" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC941" class="react-file-line html-div" data-testid="code-cell" data-line-number="941" style="position:relative"><span class="pl-c"> * Set any callback to NULL to ignore that event type.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC942" class="react-file-line html-div" data-testid="code-cell" data-line-number="942" style="position:relative"><span class="pl-c"> * user_data is passed through to every callback.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC943" class="react-file-line html-div" data-testid="code-cell" data-line-number="943" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC944" class="react-file-line html-div" data-testid="code-cell" data-line-number="944" style="position:relative"><span class="pl-k">typedef</span> <span class="pl-k">struct</span> {</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC945" class="react-file-line html-div" data-testid="code-cell" data-line-number="945" style="position:relative">    <span class="pl-smi">xmloxide_sax_start_element_cb</span> <span class="pl-c1">start_element</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC946" class="react-file-line html-div" data-testid="code-cell" data-line-number="946" style="position:relative">    <span class="pl-smi">xmloxide_sax_end_element_cb</span> <span class="pl-c1">end_element</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC947" class="react-file-line html-div" data-testid="code-cell" data-line-number="947" style="position:relative">    <span class="pl-smi">xmloxide_sax_text_cb</span> <span class="pl-c1">characters</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC948" class="react-file-line html-div" data-testid="code-cell" data-line-number="948" style="position:relative">    <span class="pl-smi">xmloxide_sax_text_cb</span> <span class="pl-c1">cdata</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC949" class="react-file-line html-div" data-testid="code-cell" data-line-number="949" style="position:relative">    <span class="pl-smi">xmloxide_sax_text_cb</span> <span class="pl-c1">comment</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC950" class="react-file-line html-div" data-testid="code-cell" data-line-number="950" style="position:relative">    <span class="pl-smi">xmloxide_sax_pi_cb</span> <span class="pl-c1">processing_instruction</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC951" class="react-file-line html-div" data-testid="code-cell" data-line-number="951" style="position:relative">    <span class="pl-smi">void</span> <span class="pl-c1">*</span><span class="pl-c1">user_data</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC952" class="react-file-line html-div" data-testid="code-cell" data-line-number="952" style="position:relative">} <span class="pl-smi">xmloxide_sax_handler</span>;</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC953" class="react-file-line html-div" data-testid="code-cell" data-line-number="953" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC954" class="react-file-line html-div" data-testid="code-cell" data-line-number="954" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC955" class="react-file-line html-div" data-testid="code-cell" data-line-number="955" style="position:relative"><span class="pl-c"> * Parses XML with SAX streaming, dispatching events to C function pointers.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC956" class="react-file-line html-div" data-testid="code-cell" data-line-number="956" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC957" class="react-file-line html-div" data-testid="code-cell" data-line-number="957" style="position:relative"><span class="pl-c"> * xml must be a valid null-terminated UTF-8 C string.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC958" class="react-file-line html-div" data-testid="code-cell" data-line-number="958" style="position:relative"><span class="pl-c"> * handler must point to a valid xmloxide_sax_handler struct.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC959" class="react-file-line html-div" data-testid="code-cell" data-line-number="959" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC960" class="react-file-line html-div" data-testid="code-cell" data-line-number="960" style="position:relative"><span class="pl-c"> * Returns 0 on success, -1 on error. Use xmloxide_last_error() for details.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC961" class="react-file-line html-div" data-testid="code-cell" data-line-number="961" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC962" class="react-file-line html-div" data-testid="code-cell" data-line-number="962" style="position:relative"><span class="pl-smi">int32_t</span> <span class="pl-en">xmloxide_sax_parse</span>(<span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">xml</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC963" class="react-file-line html-div" data-testid="code-cell" data-line-number="963" style="position:relative">                            <span class="pl-k">const</span> <span class="pl-smi">xmloxide_sax_handler</span> <span class="pl-c1">*</span><span class="pl-s1">handler</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC964" class="react-file-line html-div" data-testid="code-cell" data-line-number="964" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC965" class="react-file-line html-div" data-testid="code-cell" data-line-number="965" style="position:relative"><span class="pl-c">/* ---------- CSS selectors ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC966" class="react-file-line html-div" data-testid="code-cell" data-line-number="966" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC967" class="react-file-line html-div" data-testid="code-cell" data-line-number="967" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC968" class="react-file-line html-div" data-testid="code-cell" data-line-number="968" style="position:relative"><span class="pl-c"> * Evaluates a CSS selector against a subtree and returns matching node IDs.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC969" class="react-file-line html-div" data-testid="code-cell" data-line-number="969" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC970" class="react-file-line html-div" data-testid="code-cell" data-line-number="970" style="position:relative"><span class="pl-c"> * scope is the node to search within (typically the root element).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC971" class="react-file-line html-div" data-testid="code-cell" data-line-number="971" style="position:relative"><span class="pl-c"> * selector is a null-terminated CSS selector string (e.g., &quot;div.class &gt; p&quot;).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC972" class="react-file-line html-div" data-testid="code-cell" data-line-number="972" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC973" class="react-file-line html-div" data-testid="code-cell" data-line-number="973" style="position:relative"><span class="pl-c"> * On success, sets *out_count to the number of matching nodes and returns</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC974" class="react-file-line html-div" data-testid="code-cell" data-line-number="974" style="position:relative"><span class="pl-c"> * a heap-allocated array of node IDs. The caller must free the array with</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC975" class="react-file-line html-div" data-testid="code-cell" data-line-number="975" style="position:relative"><span class="pl-c"> * xmloxide_free_nodeid_array(ptr, count).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC976" class="react-file-line html-div" data-testid="code-cell" data-line-number="976" style="position:relative"><span class="pl-c"> *</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC977" class="react-file-line html-div" data-testid="code-cell" data-line-number="977" style="position:relative"><span class="pl-c"> * Returns NULL on failure (invalid selector or null arguments).</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC978" class="react-file-line html-div" data-testid="code-cell" data-line-number="978" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC979" class="react-file-line html-div" data-testid="code-cell" data-line-number="979" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-c1">*</span><span class="pl-en">xmloxide_css_select</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">scope</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC980" class="react-file-line html-div" data-testid="code-cell" data-line-number="980" style="position:relative">                               <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">selector</span>, <span class="pl-smi">size_t</span> <span class="pl-c1">*</span><span class="pl-s1">out_count</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC981" class="react-file-line html-div" data-testid="code-cell" data-line-number="981" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC982" class="react-file-line html-div" data-testid="code-cell" data-line-number="982" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC983" class="react-file-line html-div" data-testid="code-cell" data-line-number="983" style="position:relative"><span class="pl-c"> * Frees a node ID array returned by xmloxide_css_select().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC984" class="react-file-line html-div" data-testid="code-cell" data-line-number="984" style="position:relative"><span class="pl-c"> * Passing NULL is safe and does nothing.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC985" class="react-file-line html-div" data-testid="code-cell" data-line-number="985" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC986" class="react-file-line html-div" data-testid="code-cell" data-line-number="986" style="position:relative"><span class="pl-smi">void</span> <span class="pl-en">xmloxide_free_nodeid_array</span>(<span class="pl-smi">uint32_t</span> <span class="pl-c1">*</span><span class="pl-s1">ptr</span>, <span class="pl-smi">size_t</span> <span class="pl-s1">count</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC987" class="react-file-line html-div" data-testid="code-cell" data-line-number="987" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC988" class="react-file-line html-div" data-testid="code-cell" data-line-number="988" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC989" class="react-file-line html-div" data-testid="code-cell" data-line-number="989" style="position:relative"><span class="pl-c"> * Returns the first node matching a CSS selector, or 0 if none found.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC990" class="react-file-line html-div" data-testid="code-cell" data-line-number="990" style="position:relative"><span class="pl-c"> * This is a convenience wrapper around xmloxide_css_select().</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC991" class="react-file-line html-div" data-testid="code-cell" data-line-number="991" style="position:relative"><span class="pl-c"> */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC992" class="react-file-line html-div" data-testid="code-cell" data-line-number="992" style="position:relative"><span class="pl-smi">uint32_t</span> <span class="pl-en">xmloxide_css_select_first</span>(<span class="pl-k">const</span> <span class="pl-smi">xmloxide_document</span> <span class="pl-c1">*</span><span class="pl-s1">doc</span>, <span class="pl-smi">uint32_t</span> <span class="pl-s1">scope</span>,</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC993" class="react-file-line html-div" data-testid="code-cell" data-line-number="993" style="position:relative">                                    <span class="pl-k">const</span> <span class="pl-smi">char</span> <span class="pl-c1">*</span><span class="pl-s1">selector</span>);</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC994" class="react-file-line html-div" data-testid="code-cell" data-line-number="994" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC995" class="react-file-line html-div" data-testid="code-cell" data-line-number="995" style="position:relative"><span class="pl-c">/* ---------- String lifecycle ---------- */</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC996" class="react-file-line html-div" data-testid="code-cell" data-line-number="996" style="position:relative">
</div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC997" class="react-file-line html-div" data-testid="code-cell" data-line-number="997" style="position:relative"><span class="pl-c">/**</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC998" class="react-file-line html-div" data-testid="code-cell" data-line-number="998" style="position:relative"><span class="pl-c"> * Frees a string previously returned by an xmloxide FFI function.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC999" class="react-file-line html-div" data-testid="code-cell" data-line-number="999" style="position:relative"><span class="pl-c"> * Passing NULL is safe and does nothing.</span></div></div></div><div class="react-code-text react-code-line-contents" style="min-height:auto"><div><div id="LC1000" class="react-file-line html-div" data-testid="code-cell" data-line-number="1000" style="position:relative"><span class="pl-c"> */</span></div></div></div></div></div><div class="CodeLinesSSR-module__viewRemainderLink__pd3EU"><a class="prc-Link-Link-9ZwDx" data-component="Link" href="https://github.com/jonwiggins/xmloxide/raw/refs/heads/main/include/xmloxide.h">View remainder of file in raw view</a></div></div><div id="copilot-button-container"></div></div><div id="highlighted-line-menu-container"></div><div class="HighlightedLineMenu-module__overlayPortalRoot__QDpCt"></div></div></div><!--/$--><div class="d-none"></div></section></div></div></div> </div> <!-- --> </div></div></div></div></div></div><div class="ScrollMarksContainer-module__scrollMarksContainer__Eu7uU" id="find-result-marks-container"></div><div class="d-none"></div><div class="d-none"></div></div> <!-- --> <!-- --> </div>
</react-app>




  </div>

</turbo-frame>

    </main>
  </div>

  </div>

          <footer class="footer f6 color-fg-muted color-border-subtle tmp-pt-7 tmp-pb-6 p-responsive" role="contentinfo"  >
  <h2 class='sr-only'>Footer</h2>

  


  <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap">
    <div class="d-flex flex-items-center flex-shrink-0 mx-2">
      <a aria-label="GitHub Homepage" class="footer-octicon mr-2" href="https://github.com">
        <svg aria-hidden="true" data-component="Octicon" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github">
    <path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path>
</svg>
</a>
      <span>
        &copy; 2026 GitHub,&nbsp;Inc.
      </span>
    </div>

    <nav aria-label="Footer">
      <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3>

      <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading">


          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Terms&quot;,&quot;label&quot;:&quot;text:terms&quot;}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a>
          </li>


            <li class="mx-2">
              <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a>
            </li>

            <li class="mx-2">
              <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a>
            </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to community&quot;,&quot;label&quot;:&quot;text:community&quot;}" href="https://github.community/" data-view-component="true" class="Link--secondary Link">Community</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to docs&quot;,&quot;label&quot;:&quot;text:docs&quot;}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a>
          </li>

          
<li class="mx-2" >
  <cookie-consent-link>
    <button
      type="button"
      class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent"
      data-action="click:cookie-consent-link#showConsentManagement"
      data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;cookies&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;cookies_link_subfooter_footer&quot;}"
    >
      Manage cookies
    </button>
  </cookie-consent-link>
</li>

  <li class="mx-2">
    <cookie-consent-link>
      <button
        type="button"
        class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent text-left"
        data-action="click:cookie-consent-link#showConsentManagement"
        data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;dont_share_info&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;dont_share_info_link_subfooter_footer&quot;}"
      >
        Do not share my personal information
      </button>
    </cookie-consent-link>
  </li>

      </ul>
    </nav>
  </div>
</footer>



    <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999"
      data-locale="en"
      data-initial-cookie-consent-allowed=""
      data-cookie-consent-required="true"
    ></ghcc-consent>




  <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden>
    <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>
    You can’t perform that action at this time.
  </div>

    <template id="site-details-dialog">
  <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open>
    <summary role="button" aria-label="Close dialog"></summary>
    <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
      <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
        <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
      </button>
      <div class="octocat-spinner tmp-my-6 js-details-dialog-spinner"></div>
    </details-dialog>
  </details>
</template>

    <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;">
  <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;">
  </div>
</div>

    <template id="snippet-clipboard-copy-button">
  <div class="zeroclipboard-container position-absolute right-0 top-0">
    <clipboard-copy aria-label="Copy code to clipboard" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2 tmp-m-2">
    <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2 tmp-m-2">
    <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
    </clipboard-copy>
  </div>
</template>
<template id="snippet-clipboard-copy-button-unpositioned">
  <div class="zeroclipboard-container">
    <clipboard-copy aria-label="Copy code to clipboard" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon">
    <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none">
    <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
    </clipboard-copy>
  </div>
</template>




    </div>
    <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div>
    <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div>
  </body>
</html>

