



  

<!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_web_integration_cutover","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_expanded_file_types","issues_hide_closed_sub_issues","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","octocaptcha_origin_optimization","primer_react_css_anchor_positioning","primer_react_merged_forwarded_refs","primer_react_timeline_list_semantics","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-ecea76118deb7aaa.js"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-runtime-ae2c923ed3fb42c7.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-foundation-e30e053a2ec05810.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-runtime-43a736cfb17bfc3b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fetch-utilities-63626b86ca960a13.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ser-a0f837900b980022.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tp-daaf4baff8a79901.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/environment-0ab7314d757363cf.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-runtime.7ee70a9cd769c13f.module.css" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/catalyst-42724bfdecdcf111.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-ccaf30a6d91f2f83.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/github-elements-88cfe118d5489440.js" defer="defer"></script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/element-registry-085c10092566a106.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-827ce46b7ade1744.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hotkey-9080b92ee55ecdce.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-core-181fffe35f64a86b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a9-c3ca0fbca57ec92e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/urv-054283cae3e84e4a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4t-b7957415f663bc13.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pb-1b8646f441999bcd.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-1e9837c8e3c294ac.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ix-db979d3ffe7f4c37.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tw-dd6dc4caea8bef08.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/qyq-3e7962e375ef7004.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/bcs-f35fbf8e2ea6dbe7.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/7l-560ecaad1259d656.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jl-e8dc4e5499c418bf.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/85-45c9403416d395d4.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/behaviors-99a3920e2db317c9.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/react-core.be84e87b659d3b98.module.css" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-menu-380374377b31f5ad.js" defer="defer"></script>
  
  <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/primer-react-b8b1f4173243006b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/nc-602186f274c7f83c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/qmp-16b258ea4c9e9207.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j6-e2974066e87682ac.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t7l-07b4d1555e9567f3.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4u-1fa5e65b146a8e59.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/s0-ef17fe8bd07a3b4d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/y5-1b30b762023d3e89.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/n4u-f85b84521e1734c3.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j8s-48e0fe20eefd980e.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-58ac501be176845a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gru-90582bf85fdae29b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a0-62a325e8a801c241.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/vy-77fa71d04f920b10.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/gb-6acc3941ce05eb8d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/f7-0866cc20e1a6e4a3.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/csq-a4622df32bd3f47f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ssg-cf5ac52afa782913.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/lk-079e9de06c3be0af.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/x00-344c6e66a12fe4b8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wsu-447e9f95188c7974.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/038-7e759dd92b23180b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/qmq-b7fd747ac0dec1dc.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hwq-eba66f3e802ed05e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/lcf-c3749f061b720d7a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/meu-720cfd8779ef970d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tg-0262af28cee91950.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/is-72fb9279eae70f4e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/dc-9a4f5284b4d6b55b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/w9-183da1d030133670.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/r09-6a8e9e38bd26e4b8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/642-0c34f01503252c51.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/45z-500ac78bc30b1f49.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/61-99828705784c9574.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ioz-e202cd57dfb0dbae.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/kwg-1568470998026677.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/1mc-0231984e8f3f4958.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pc-986abafaf53b769e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/1e-f3794268c20cd18d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/uu-6b8bc874d43973a0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/2sj-a0b3d11863f57a1e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/oj-79a85dac88e9d3f4.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ys-eeb95a3084a8716b.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-view-a6e093b12b2a5e7b.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/45z.922f816fb2d6b268.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/oj.ecb4903dbaae6412.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-view.206bdff86ecd228e.module.css" />


  <title>PslyAlgorithm/ConcurrentLinkedQueue.java at master · Pslydhh/PslyAlgorithm · 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:86b01f90-f4d9-f1c5-4a58-30858ad93967">

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


  <meta name="request-id" content="CCCC:21E677:37A9B8:4DC091:6AC85CB8" data-pjax-transient="true"/><meta name="html-safe-nonce" content="a5da03a5584d8ce4d206f0a4df6a437f26b6c8e742956acdba02aec68dcb17f9" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQ0NDOjIxRTY3NzozN0E5Qjg6NERDMDkxOjZBQzg1Q0I4IiwidmlzaXRvcl9pZCI6IjY2NjAwNjA2OTUxMTM1MjIzNjAiLCJyZWdpb25fZWRnZSI6ImZyYSIsInJlZ2lvbl9yZW5kZXIiOiJmcmEifQ==" data-pjax-transient="true"/><meta name="visitor-hmac" content="7a9ef9ca8bda99a806a34d8d531b901959f6c28bdfbffe8701d0da6af193f345" data-pjax-transient="true"/>


    <meta name="hovercard-subject-tag" content="repository:86577454" 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="Programming thinking. Contribute to Pslydhh/PslyAlgorithm 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/Pslydhh/PslyAlgorithm/blob/master/ConcurrentLinkedQueue.java" />

      <meta name="twitter:image" content="https://opengraph.githubassets.com/b235e8fd4cb1b45db5471f8682d02a70b55a0d70937ce8231f65ae8ccf3857f3/Pslydhh/PslyAlgorithm" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="PslyAlgorithm/ConcurrentLinkedQueue.java at master · Pslydhh/PslyAlgorithm" /><meta name="twitter:description" content="Programming thinking. Contribute to Pslydhh/PslyAlgorithm development by creating an account on GitHub." />
  <meta property="og:image" content="https://opengraph.githubassets.com/b235e8fd4cb1b45db5471f8682d02a70b55a0d70937ce8231f65ae8ccf3857f3/Pslydhh/PslyAlgorithm" /><meta property="og:image:alt" content="Programming thinking. Contribute to Pslydhh/PslyAlgorithm 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="PslyAlgorithm/ConcurrentLinkedQueue.java at master · Pslydhh/PslyAlgorithm" /><meta property="og:url" content="https://github.com/Pslydhh/PslyAlgorithm/blob/master/ConcurrentLinkedQueue.java" /><meta property="og:description" content="Programming thinking. Contribute to Pslydhh/PslyAlgorithm 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="a32d59659161670c11d8e96bef14462ce3a919034c4f0e460dd991bb77cc7a8e" 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="62c694dbfccd36668466b597ca6355de7647b48d3ef1ba1c805e3ac89f6c2c64" 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/Pslydhh/PslyAlgorithm git https://github.com/Pslydhh/PslyAlgorithm.git">

  <meta name="octolytics-dimension-user_id" content="26759882" /><meta name="octolytics-dimension-user_login" content="Pslydhh" /><meta name="octolytics-dimension-repository_id" content="86577454" /><meta name="octolytics-dimension-repository_nwo" content="Pslydhh/PslyAlgorithm" /><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="86577454" /><meta name="octolytics-dimension-repository_network_root_nwo" content="Pslydhh/PslyAlgorithm" />
  



    

    <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="8d63c7709da41fbaec6a3a2c34ee9f1785dc2937" 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/no-1cf75929f17e3028.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-a7b1e720c8d8dc36.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.ac351e8516148495.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-90fc15644d34d442.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.4ea51448c4f973db.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/2lp-a40e70e520dbe650.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/rwd-7b2c7e3d5830b9e9.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fz5-26e9f173be523540.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jag-e8b94ef4bf214893.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/l19-ab9291460ccba23f.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/5nx-54af91826ad57196.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/zn-f168d65b85b3e44a.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/marketing-header-0c7e99a55d76a9f8.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/zn.9fc2e923e926de87.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%2FPslydhh%2FPslyAlgorithm%2Fblob%2Fmaster%2FConcurrentLinkedQueue.java","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=Pslydhh%2FPslyAlgorithm","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/Pslydhh/PslyAlgorithm/blob/master/ConcurrentLinkedQueue.java\",\"user_id\":null}}","auth_hydro_click_hmac":"9c3c5a99d887a36a182f8d43ed510d7b3638877bd14d409a6c56b1cc9a463842","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%2FPslydhh%2FPslyAlgorithm%2Fblob%2Fmaster%2FConcurrentLinkedQueue.java" 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/Pslydhh/PslyAlgorithm/blob/master/ConcurrentLinkedQueue.java&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9c3c5a99d887a36a182f8d43ed510d7b3638877bd14d409a6c56b1cc9a463842"><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%2FPslydhh%2FPslyAlgorithm%2Fblob%2Fmaster%2FConcurrentLinkedQueue.java" 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/Pslydhh/PslyAlgorithm/blob/master/ConcurrentLinkedQueue.java&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9c3c5a99d887a36a182f8d43ed510d7b3638877bd14d409a6c56b1cc9a463842"><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=Pslydhh%2FPslyAlgorithm" 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/Pslydhh/PslyAlgorithm/blob/master/ConcurrentLinkedQueue.java&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="9c3c5a99d887a36a182f8d43ed510d7b3638877bd14d409a6c56b1cc9a463842"><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-2988a14e-1239-4aaf-864c-a953ea0a276f" aria-labelledby="tooltip-ec767d88-39fb-44aa-aa4d-2f678da66c48" 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-ec767d88-39fb-44aa-aa4d-2f678da66c48" for="icon-button-2988a14e-1239-4aaf-864c-a953ea0a276f" 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-4c4d2b70d5b17037.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/mng-af5547fcfd291f53.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t5-8ffaa093c3420000.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j24-43443b443f213349.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/vw-9a8839ba1b0498ae.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ac-330683e1e1b3028b.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/f4t-6a4e2ce1a3f6bcd5.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/36-e7bb48b69e86f71b.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tps-84accc305677e828.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/e8k-f5cca939ef074708.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/nx-e5a4a427b19a5363.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3s-7ab43a292b98ba5f.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a1w-8b2cb4a1188ed337.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/nr-79588a4a563e6198.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/global-nav-bar-2b07b8ab08f594ac.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/45z.922f816fb2d6b268.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-nav-bar.b71e2cfbb18d6882.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":"Pslydhh","is_root":false,"href":"/Pslydhh"},{"crumb_type":"repository","label":"PslyAlgorithm","is_root":false,"href":"/Pslydhh/PslyAlgorithm"}],"localNavigation":[{"id":"code","icon":"code","label":"Code","href":"/Pslydhh/PslyAlgorithm","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":"/Pslydhh/PslyAlgorithm/issues","selectedLinks":["repo_issues","repo_labels","repo_milestones"],"count":0,"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":"/Pslydhh/PslyAlgorithm/pulls","selectedLinks":["repo_pulls","checks"],"count":2,"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":"/Pslydhh/PslyAlgorithm/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":"/Pslydhh/PslyAlgorithm/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":"wiki","icon":"book","label":"Wiki","href":"/Pslydhh/PslyAlgorithm/wiki","selectedLinks":["repo_wiki"],"popoverTarget":false,"commandId":"repositories:go-to-wiki","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"security-and-quality","icon":"shield","label":"Security and quality","href":"/Pslydhh/PslyAlgorithm/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":"/Pslydhh/PslyAlgorithm/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:Pslydhh/PslyAlgorithm","current_repo_name":"PslyAlgorithm","current_repo_nwo":"Pslydhh/PslyAlgorithm","user_id":"Pslydhh"}},"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="/Pslydhh" data-discover="true"><span class="">Pslydhh</span></a></li><li class="prc-Breadcrumbs-ItemWrapper-k0NLn"><a class="styles-module__contextCrumb__IzGIq prc-Breadcrumbs-Item-jcraJ" data-component="Breadcrumbs.Item" href="/Pslydhh/PslyAlgorithm" data-discover="true"><span class="styles-module__contextCrumbLast__tI2e3">PslyAlgorithm</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="/Pslydhh/PslyAlgorithm" 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="/Pslydhh/PslyAlgorithm/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></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="/Pslydhh/PslyAlgorithm/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">2</span><span class="prc-VisuallyHidden-VisuallyHidden-Q0qSB"> (<!-- -->2<!-- -->)</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="/Pslydhh/PslyAlgorithm/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="/Pslydhh/PslyAlgorithm/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="wiki" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/Pslydhh/PslyAlgorithm/wiki" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-book" 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.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.743 3.743 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574ZM8.755 4.75l-.004 7.322a3.752 3.752 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25Z"></path></svg></span><span data-component="text" data-content="Wiki">Wiki</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="/Pslydhh/PslyAlgorithm/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="/Pslydhh/PslyAlgorithm/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="/Pslydhh/PslyAlgorithm/blob/master/ConcurrentLinkedQueue.java"
  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":false,"not_analyzed":false,"symbols":[{"name":"ConcurrentLinkedQueue","fully_qualified_name":"ConcurrentLinkedQueue","kind":"class","ident_start":3390,"ident_end":3411,"extent_start":3377,"extent_end":34856,"ident_utf16":{"start":{"line_number":80,"utf16_col":13},"end":{"line_number":80,"utf16_col":34}},"extent_utf16":{"start":{"line_number":80,"utf16_col":0},"end":{"line_number":936,"utf16_col":1}}},{"name":"serialVersionUID","fully_qualified_name":"ConcurrentLinkedQueue::serialVersionUID","kind":"field","ident_start":3522,"ident_end":3538,"extent_start":3496,"extent_end":3561,"ident_utf16":{"start":{"line_number":82,"utf16_col":30},"end":{"line_number":82,"utf16_col":46}},"extent_utf16":{"start":{"line_number":82,"utf16_col":4},"end":{"line_number":82,"utf16_col":69}}},{"name":"Node","fully_qualified_name":"ConcurrentLinkedQueue::Node","kind":"class","ident_start":7419,"ident_end":7423,"extent_start":7398,"extent_end":8721,"ident_utf16":{"start":{"line_number":155,"utf16_col":25},"end":{"line_number":155,"utf16_col":29}},"extent_utf16":{"start":{"line_number":155,"utf16_col":4},"end":{"line_number":197,"utf16_col":5}}},{"name":"item","fully_qualified_name":"ConcurrentLinkedQueue::Node::item","kind":"field","ident_start":7448,"ident_end":7452,"extent_start":7437,"extent_end":7453,"ident_utf16":{"start":{"line_number":156,"utf16_col":19},"end":{"line_number":156,"utf16_col":23}},"extent_utf16":{"start":{"line_number":156,"utf16_col":8},"end":{"line_number":156,"utf16_col":24}}},{"name":"next","fully_qualified_name":"ConcurrentLinkedQueue::Node::next","kind":"field","ident_start":7479,"ident_end":7483,"extent_start":7462,"extent_end":7484,"ident_utf16":{"start":{"line_number":157,"utf16_col":25},"end":{"line_number":157,"utf16_col":29}},"extent_utf16":{"start":{"line_number":157,"utf16_col":8},"end":{"line_number":157,"utf16_col":30}}},{"name":"Node","fully_qualified_name":"ConcurrentLinkedQueue::Node::Node","kind":"method","ident_start":7644,"ident_end":7648,"extent_start":7644,"extent_end":7722,"ident_utf16":{"start":{"line_number":163,"utf16_col":8},"end":{"line_number":163,"utf16_col":12}},"extent_utf16":{"start":{"line_number":163,"utf16_col":8},"end":{"line_number":165,"utf16_col":9}}},{"name":"casItem","fully_qualified_name":"ConcurrentLinkedQueue::Node::casItem","kind":"method","ident_start":7740,"ident_end":7747,"extent_start":7732,"extent_end":7849,"ident_utf16":{"start":{"line_number":167,"utf16_col":16},"end":{"line_number":167,"utf16_col":23}},"extent_utf16":{"start":{"line_number":167,"utf16_col":8},"end":{"line_number":169,"utf16_col":9}}},{"name":"lazySetNext","fully_qualified_name":"ConcurrentLinkedQueue::Node::lazySetNext","kind":"method","ident_start":7864,"ident_end":7875,"extent_start":7859,"extent_end":7960,"ident_utf16":{"start":{"line_number":171,"utf16_col":13},"end":{"line_number":171,"utf16_col":24}},"extent_utf16":{"start":{"line_number":171,"utf16_col":8},"end":{"line_number":173,"utf16_col":9}}},{"name":"casNext","fully_qualified_name":"ConcurrentLinkedQueue::Node::casNext","kind":"method","ident_start":7978,"ident_end":7985,"extent_start":7970,"extent_end":8099,"ident_utf16":{"start":{"line_number":175,"utf16_col":16},"end":{"line_number":175,"utf16_col":23}},"extent_utf16":{"start":{"line_number":175,"utf16_col":8},"end":{"line_number":177,"utf16_col":9}}},{"name":"UNSAFE","fully_qualified_name":"ConcurrentLinkedQueue::Node::UNSAFE","kind":"field","ident_start":8175,"ident_end":8181,"extent_start":8138,"extent_end":8182,"ident_utf16":{"start":{"line_number":181,"utf16_col":45},"end":{"line_number":181,"utf16_col":51}},"extent_utf16":{"start":{"line_number":181,"utf16_col":8},"end":{"line_number":181,"utf16_col":52}}},{"name":"itemOffset","fully_qualified_name":"ConcurrentLinkedQueue::Node::itemOffset","kind":"field","ident_start":8217,"ident_end":8227,"extent_start":8191,"extent_end":8228,"ident_utf16":{"start":{"line_number":182,"utf16_col":34},"end":{"line_number":182,"utf16_col":44}},"extent_utf16":{"start":{"line_number":182,"utf16_col":8},"end":{"line_number":182,"utf16_col":45}}},{"name":"nextOffset","fully_qualified_name":"ConcurrentLinkedQueue::Node::nextOffset","kind":"field","ident_start":8263,"ident_end":8273,"extent_start":8237,"extent_end":8274,"ident_utf16":{"start":{"line_number":183,"utf16_col":34},"end":{"line_number":183,"utf16_col":44}},"extent_utf16":{"start":{"line_number":183,"utf16_col":8},"end":{"line_number":183,"utf16_col":45}}},{"name":"head","fully_qualified_name":"ConcurrentLinkedQueue::head","kind":"field","ident_start":9209,"ident_end":9213,"extent_start":9174,"extent_end":9214,"ident_utf16":{"start":{"line_number":211,"utf16_col":39},"end":{"line_number":211,"utf16_col":43}},"extent_utf16":{"start":{"line_number":211,"utf16_col":4},"end":{"line_number":211,"utf16_col":44}}},{"name":"tail","fully_qualified_name":"ConcurrentLinkedQueue::tail","kind":"field","ident_start":9747,"ident_end":9751,"extent_start":9712,"extent_end":9752,"ident_utf16":{"start":{"line_number":225,"utf16_col":39},"end":{"line_number":225,"utf16_col":43}},"extent_utf16":{"start":{"line_number":225,"utf16_col":4},"end":{"line_number":225,"utf16_col":44}}},{"name":"ConcurrentLinkedQueue","fully_qualified_name":"ConcurrentLinkedQueue::ConcurrentLinkedQueue","kind":"method","ident_start":9853,"ident_end":9874,"extent_start":9846,"extent_end":9925,"ident_utf16":{"start":{"line_number":230,"utf16_col":11},"end":{"line_number":230,"utf16_col":32}},"extent_utf16":{"start":{"line_number":230,"utf16_col":4},"end":{"line_number":232,"utf16_col":5}}},{"name":"ConcurrentLinkedQueue","fully_qualified_name":"ConcurrentLinkedQueue::ConcurrentLinkedQueue","kind":"method","ident_start":10311,"ident_end":10332,"extent_start":10304,"extent_end":10772,"ident_utf16":{"start":{"line_number":243,"utf16_col":11},"end":{"line_number":243,"utf16_col":32}},"extent_utf16":{"start":{"line_number":243,"utf16_col":4},"end":{"line_number":259,"utf16_col":5}}},{"name":"add","fully_qualified_name":"ConcurrentLinkedQueue::add","kind":"method","ident_start":11195,"ident_end":11198,"extent_start":11180,"extent_end":11236,"ident_utf16":{"start":{"line_number":271,"utf16_col":19},"end":{"line_number":271,"utf16_col":22}},"extent_utf16":{"start":{"line_number":271,"utf16_col":4},"end":{"line_number":273,"utf16_col":5}}},{"name":"updateHead","fully_qualified_name":"ConcurrentLinkedQueue::updateHead","kind":"method","ident_start":11380,"ident_end":11390,"extent_start":11369,"extent_end":11487,"ident_utf16":{"start":{"line_number":279,"utf16_col":15},"end":{"line_number":279,"utf16_col":25}},"extent_utf16":{"start":{"line_number":279,"utf16_col":4},"end":{"line_number":282,"utf16_col":5}}},{"name":"succ","fully_qualified_name":"ConcurrentLinkedQueue::succ","kind":"method","ident_start":11709,"ident_end":11713,"extent_start":11695,"extent_end":11805,"ident_utf16":{"start":{"line_number":289,"utf16_col":18},"end":{"line_number":289,"utf16_col":22}},"extent_utf16":{"start":{"line_number":289,"utf16_col":4},"end":{"line_number":292,"utf16_col":5}}},{"name":"offer","fully_qualified_name":"ConcurrentLinkedQueue::offer","kind":"method","ident_start":12127,"ident_end":12132,"extent_start":12112,"extent_end":13746,"ident_utf16":{"start":{"line_number":301,"utf16_col":19},"end":{"line_number":301,"utf16_col":24}},"extent_utf16":{"start":{"line_number":301,"utf16_col":4},"end":{"line_number":336,"utf16_col":5}}},{"name":"poll","fully_qualified_name":"ConcurrentLinkedQueue::poll","kind":"method","ident_start":13761,"ident_end":13765,"extent_start":13752,"extent_end":15161,"ident_utf16":{"start":{"line_number":338,"utf16_col":13},"end":{"line_number":338,"utf16_col":17}},"extent_utf16":{"start":{"line_number":338,"utf16_col":4},"end":{"line_number":373,"utf16_col":5}}},{"name":"peek","fully_qualified_name":"ConcurrentLinkedQueue::peek","kind":"method","ident_start":15176,"ident_end":15180,"extent_start":15167,"extent_end":15616,"ident_utf16":{"start":{"line_number":375,"utf16_col":13},"end":{"line_number":375,"utf16_col":17}},"extent_utf16":{"start":{"line_number":375,"utf16_col":4},"end":{"line_number":390,"utf16_col":5}}},{"name":"first","fully_qualified_name":"ConcurrentLinkedQueue::first","kind":"method","ident_start":16045,"ident_end":16050,"extent_start":16037,"extent_end":16514,"ident_utf16":{"start":{"line_number":400,"utf16_col":12},"end":{"line_number":400,"utf16_col":17}},"extent_utf16":{"start":{"line_number":400,"utf16_col":4},"end":{"line_number":415,"utf16_col":5}}},{"name":"isEmpty","fully_qualified_name":"ConcurrentLinkedQueue::isEmpty","kind":"method","ident_start":16685,"ident_end":16692,"extent_start":16670,"extent_end":16734,"ident_utf16":{"start":{"line_number":422,"utf16_col":19},"end":{"line_number":422,"utf16_col":26}},"extent_utf16":{"start":{"line_number":422,"utf16_col":4},"end":{"line_number":424,"utf16_col":5}}},{"name":"size","fully_qualified_name":"ConcurrentLinkedQueue::size","kind":"method","ident_start":17478,"ident_end":17482,"extent_start":17467,"extent_end":17762,"ident_utf16":{"start":{"line_number":442,"utf16_col":15},"end":{"line_number":442,"utf16_col":19}},"extent_utf16":{"start":{"line_number":442,"utf16_col":4},"end":{"line_number":450,"utf16_col":5}}},{"name":"contains","fully_qualified_name":"ConcurrentLinkedQueue::contains","kind":"method","ident_start":18167,"ident_end":18175,"extent_start":18152,"extent_end":18428,"ident_utf16":{"start":{"line_number":460,"utf16_col":19},"end":{"line_number":460,"utf16_col":27}},"extent_utf16":{"start":{"line_number":460,"utf16_col":4},"end":{"line_number":468,"utf16_col":5}}},{"name":"remove","fully_qualified_name":"ConcurrentLinkedQueue::remove","kind":"method","ident_start":18999,"ident_end":19005,"extent_start":18984,"extent_end":19515,"ident_utf16":{"start":{"line_number":481,"utf16_col":19},"end":{"line_number":481,"utf16_col":25}},"extent_utf16":{"start":{"line_number":481,"utf16_col":4},"end":{"line_number":497,"utf16_col":5}}},{"name":"addAll","fully_qualified_name":"ConcurrentLinkedQueue::addAll","kind":"method","ident_start":20155,"ident_end":20161,"extent_start":20140,"extent_end":22159,"ident_utf16":{"start":{"line_number":511,"utf16_col":19},"end":{"line_number":511,"utf16_col":25}},"extent_utf16":{"start":{"line_number":511,"utf16_col":4},"end":{"line_number":560,"utf16_col":5}}},{"name":"toArray","fully_qualified_name":"ConcurrentLinkedQueue::toArray","kind":"method","ident_start":22704,"ident_end":22711,"extent_start":22688,"extent_end":23003,"ident_utf16":{"start":{"line_number":575,"utf16_col":20},"end":{"line_number":575,"utf16_col":27}},"extent_utf16":{"start":{"line_number":575,"utf16_col":4},"end":{"line_number":584,"utf16_col":5}}},{"name":"toArray","fully_qualified_name":"ConcurrentLinkedQueue::toArray","kind":"method","ident_start":24897,"ident_end":24904,"extent_start":24847,"extent_end":25563,"ident_utf16":{"start":{"line_number":622,"utf16_col":19},"end":{"line_number":622,"utf16_col":26}},"extent_utf16":{"start":{"line_number":621,"utf16_col":4},"end":{"line_number":645,"utf16_col":5}}},{"name":"iterator","fully_qualified_name":"ConcurrentLinkedQueue::iterator","kind":"method","ident_start":25965,"ident_end":25973,"extent_start":25946,"extent_end":26009,"ident_utf16":{"start":{"line_number":656,"utf16_col":23},"end":{"line_number":656,"utf16_col":31}},"extent_utf16":{"start":{"line_number":656,"utf16_col":4},"end":{"line_number":658,"utf16_col":5}}},{"name":"Itr","fully_qualified_name":"ConcurrentLinkedQueue::Itr","kind":"class","ident_start":26029,"ident_end":26032,"extent_start":26015,"extent_end":28186,"ident_utf16":{"start":{"line_number":660,"utf16_col":18},"end":{"line_number":660,"utf16_col":21}},"extent_utf16":{"start":{"line_number":660,"utf16_col":4},"end":{"line_number":737,"utf16_col":5}}},{"name":"nextNode","fully_qualified_name":"ConcurrentLinkedQueue::Itr::nextNode","kind":"field","ident_start":26147,"ident_end":26155,"extent_start":26131,"extent_end":26156,"ident_utf16":{"start":{"line_number":664,"utf16_col":24},"end":{"line_number":664,"utf16_col":32}},"extent_utf16":{"start":{"line_number":664,"utf16_col":8},"end":{"line_number":664,"utf16_col":33}}},{"name":"nextItem","fully_qualified_name":"ConcurrentLinkedQueue::Itr::nextItem","kind":"field","ident_start":26457,"ident_end":26465,"extent_start":26447,"extent_end":26466,"ident_utf16":{"start":{"line_number":672,"utf16_col":18},"end":{"line_number":672,"utf16_col":26}},"extent_utf16":{"start":{"line_number":672,"utf16_col":8},"end":{"line_number":672,"utf16_col":27}}},{"name":"lastRet","fully_qualified_name":"ConcurrentLinkedQueue::Itr::lastRet","kind":"field","ident_start":26578,"ident_end":26585,"extent_start":26562,"extent_end":26586,"ident_utf16":{"start":{"line_number":677,"utf16_col":24},"end":{"line_number":677,"utf16_col":31}},"extent_utf16":{"start":{"line_number":677,"utf16_col":8},"end":{"line_number":677,"utf16_col":32}}},{"name":"Itr","fully_qualified_name":"ConcurrentLinkedQueue::Itr::Itr","kind":"method","ident_start":26596,"ident_end":26599,"extent_start":26596,"extent_end":26636,"ident_utf16":{"start":{"line_number":679,"utf16_col":8},"end":{"line_number":679,"utf16_col":11}},"extent_utf16":{"start":{"line_number":679,"utf16_col":8},"end":{"line_number":681,"utf16_col":9}}},{"name":"advance","fully_qualified_name":"ConcurrentLinkedQueue::Itr::advance","kind":"method","ident_start":26786,"ident_end":26793,"extent_start":26776,"extent_end":27715,"ident_utf16":{"start":{"line_number":687,"utf16_col":18},"end":{"line_number":687,"utf16_col":25}},"extent_utf16":{"start":{"line_number":687,"utf16_col":8},"end":{"line_number":719,"utf16_col":9}}},{"name":"hasNext","fully_qualified_name":"ConcurrentLinkedQueue::Itr::hasNext","kind":"method","ident_start":27740,"ident_end":27747,"extent_start":27725,"extent_end":27798,"ident_utf16":{"start":{"line_number":721,"utf16_col":23},"end":{"line_number":721,"utf16_col":30}},"extent_utf16":{"start":{"line_number":721,"utf16_col":8},"end":{"line_number":723,"utf16_col":9}}},{"name":"next","fully_qualified_name":"ConcurrentLinkedQueue::Itr::next","kind":"method","ident_start":27817,"ident_end":27821,"extent_start":27808,"extent_end":27935,"ident_utf16":{"start":{"line_number":725,"utf16_col":17},"end":{"line_number":725,"utf16_col":21}},"extent_utf16":{"start":{"line_number":725,"utf16_col":8},"end":{"line_number":728,"utf16_col":9}}},{"name":"remove","fully_qualified_name":"ConcurrentLinkedQueue::Itr::remove","kind":"method","ident_start":27957,"ident_end":27963,"extent_start":27945,"extent_end":28180,"ident_utf16":{"start":{"line_number":730,"utf16_col":20},"end":{"line_number":730,"utf16_col":26}},"extent_utf16":{"start":{"line_number":730,"utf16_col":8},"end":{"line_number":736,"utf16_col":9}}},{"name":"writeObject","fully_qualified_name":"ConcurrentLinkedQueue::writeObject","kind":"method","ident_start":28481,"ident_end":28492,"extent_start":28468,"extent_end":28934,"ident_utf16":{"start":{"line_number":747,"utf16_col":17},"end":{"line_number":747,"utf16_col":28}},"extent_utf16":{"start":{"line_number":747,"utf16_col":4},"end":{"line_number":762,"utf16_col":5}}},{"name":"readObject","fully_qualified_name":"ConcurrentLinkedQueue::readObject","kind":"method","ident_start":29236,"ident_end":29246,"extent_start":29223,"extent_end":29910,"ident_utf16":{"start":{"line_number":771,"utf16_col":17},"end":{"line_number":771,"utf16_col":27}},"extent_utf16":{"start":{"line_number":771,"utf16_col":4},"end":{"line_number":792,"utf16_col":5}}},{"name":"CLQSpliterator","fully_qualified_name":"ConcurrentLinkedQueue::CLQSpliterator","kind":"class","ident_start":30003,"ident_end":30017,"extent_start":29984,"extent_end":33106,"ident_utf16":{"start":{"line_number":795,"utf16_col":23},"end":{"line_number":795,"utf16_col":37}},"extent_utf16":{"start":{"line_number":795,"utf16_col":4},"end":{"line_number":878,"utf16_col":5}}},{"name":"MAX_BATCH","fully_qualified_name":"ConcurrentLinkedQueue::CLQSpliterator::MAX_BATCH","kind":"field","ident_start":30074,"ident_end":30083,"extent_start":30057,"extent_end":30094,"ident_utf16":{"start":{"line_number":796,"utf16_col":25},"end":{"line_number":796,"utf16_col":34}},"extent_utf16":{"start":{"line_number":796,"utf16_col":8},"end":{"line_number":796,"utf16_col":45}}},{"name":"queue","fully_qualified_name":"ConcurrentLinkedQueue::CLQSpliterator::queue","kind":"field","ident_start":30160,"ident_end":30165,"extent_start":30129,"extent_end":30166,"ident_utf16":{"start":{"line_number":797,"utf16_col":39},"end":{"line_number":797,"utf16_col":44}},"extent_utf16":{"start":{"line_number":797,"utf16_col":8},"end":{"line_number":797,"utf16_col":45}}},{"name":"current","fully_qualified_name":"ConcurrentLinkedQueue::CLQSpliterator::current","kind":"field","ident_start":30183,"ident_end":30190,"extent_start":30175,"extent_end":30191,"ident_utf16":{"start":{"line_number":798,"utf16_col":16},"end":{"line_number":798,"utf16_col":23}},"extent_utf16":{"start":{"line_number":798,"utf16_col":8},"end":{"line_number":798,"utf16_col":24}}},{"name":"batch","fully_qualified_name":"ConcurrentLinkedQueue::CLQSpliterator::batch","kind":"field","ident_start":30247,"ident_end":30252,"extent_start":30243,"extent_end":30253,"ident_utf16":{"start":{"line_number":799,"utf16_col":12},"end":{"line_number":799,"utf16_col":17}},"extent_utf16":{"start":{"line_number":799,"utf16_col":8},"end":{"line_number":799,"utf16_col":18}}},{"name":"exhausted","fully_qualified_name":"ConcurrentLinkedQueue::CLQSpliterator::exhausted","kind":"field","ident_start":30304,"ident_end":30313,"extent_start":30296,"extent_end":30314,"ident_utf16":{"start":{"line_number":800,"utf16_col":16},"end":{"line_number":800,"utf16_col":25}},"extent_utf16":{"start":{"line_number":800,"utf16_col":8},"end":{"line_number":800,"utf16_col":26}}},{"name":"CLQSpliterator","fully_qualified_name":"ConcurrentLinkedQueue::CLQSpliterator::CLQSpliterator","kind":"method","ident_start":30351,"ident_end":30365,"extent_start":30351,"extent_end":30441,"ident_utf16":{"start":{"line_number":801,"utf16_col":8},"end":{"line_number":801,"utf16_col":22}},"extent_utf16":{"start":{"line_number":801,"utf16_col":8},"end":{"line_number":803,"utf16_col":9}}},{"name":"trySplit","fully_qualified_name":"ConcurrentLinkedQueue::CLQSpliterator::trySplit","kind":"method","ident_start":30473,"ident_end":30481,"extent_start":30451,"extent_end":31487,"ident_utf16":{"start":{"line_number":805,"utf16_col":30},"end":{"line_number":805,"utf16_col":38}},"extent_utf16":{"start":{"line_number":805,"utf16_col":8},"end":{"line_number":831,"utf16_col":9}}},{"name":"forEachRemaining","fully_qualified_name":"ConcurrentLinkedQueue::CLQSpliterator::forEachRemaining","kind":"method","ident_start":31509,"ident_end":31525,"extent_start":31497,"extent_end":32112,"ident_utf16":{"start":{"line_number":833,"utf16_col":20},"end":{"line_number":833,"utf16_col":36}},"extent_utf16":{"start":{"line_number":833,"utf16_col":8},"end":{"line_number":848,"utf16_col":9}}},{"name":"tryAdvance","fully_qualified_name":"ConcurrentLinkedQueue::CLQSpliterator::tryAdvance","kind":"method","ident_start":32137,"ident_end":32147,"extent_start":32122,"extent_end":32884,"ident_utf16":{"start":{"line_number":850,"utf16_col":23},"end":{"line_number":850,"utf16_col":33}},"extent_utf16":{"start":{"line_number":850,"utf16_col":8},"end":{"line_number":870,"utf16_col":9}}},{"name":"estimateSize","fully_qualified_name":"ConcurrentLinkedQueue::CLQSpliterator::estimateSize","kind":"method","ident_start":32906,"ident_end":32918,"extent_start":32894,"extent_end":32947,"ident_utf16":{"start":{"line_number":872,"utf16_col":20},"end":{"line_number":872,"utf16_col":32}},"extent_utf16":{"start":{"line_number":872,"utf16_col":8},"end":{"line_number":872,"utf16_col":61}}},{"name":"characteristics","fully_qualified_name":"ConcurrentLinkedQueue::CLQSpliterator::characteristics","kind":"method","ident_start":32968,"ident_end":32983,"extent_start":32957,"extent_end":33100,"ident_utf16":{"start":{"line_number":874,"utf16_col":19},"end":{"line_number":874,"utf16_col":34}},"extent_utf16":{"start":{"line_number":874,"utf16_col":8},"end":{"line_number":877,"utf16_col":9}}},{"name":"spliterator","fully_qualified_name":"ConcurrentLinkedQueue::spliterator","kind":"method","ident_start":33719,"ident_end":33730,"extent_start":33683,"extent_end":33784,"ident_utf16":{"start":{"line_number":897,"utf16_col":26},"end":{"line_number":897,"utf16_col":37}},"extent_utf16":{"start":{"line_number":896,"utf16_col":4},"end":{"line_number":899,"utf16_col":5}}},{"name":"checkNotNull","fully_qualified_name":"ConcurrentLinkedQueue::checkNotNull","kind":"method","ident_start":33917,"ident_end":33929,"extent_start":33897,"extent_end":34016,"ident_utf16":{"start":{"line_number":906,"utf16_col":24},"end":{"line_number":906,"utf16_col":36}},"extent_utf16":{"start":{"line_number":906,"utf16_col":4},"end":{"line_number":909,"utf16_col":5}}},{"name":"casTail","fully_qualified_name":"ConcurrentLinkedQueue::casTail","kind":"method","ident_start":34038,"ident_end":34045,"extent_start":34022,"extent_end":34151,"ident_utf16":{"start":{"line_number":911,"utf16_col":20},"end":{"line_number":911,"utf16_col":27}},"extent_utf16":{"start":{"line_number":911,"utf16_col":4},"end":{"line_number":913,"utf16_col":5}}},{"name":"casHead","fully_qualified_name":"ConcurrentLinkedQueue::casHead","kind":"method","ident_start":34173,"ident_end":34180,"extent_start":34157,"extent_end":34286,"ident_utf16":{"start":{"line_number":915,"utf16_col":20},"end":{"line_number":915,"utf16_col":27}},"extent_utf16":{"start":{"line_number":915,"utf16_col":4},"end":{"line_number":917,"utf16_col":5}}},{"name":"UNSAFE","fully_qualified_name":"ConcurrentLinkedQueue::UNSAFE","kind":"field","ident_start":34354,"ident_end":34360,"extent_start":34317,"extent_end":34361,"ident_utf16":{"start":{"line_number":921,"utf16_col":41},"end":{"line_number":921,"utf16_col":47}},"extent_utf16":{"start":{"line_number":921,"utf16_col":4},"end":{"line_number":921,"utf16_col":48}}},{"name":"headOffset","fully_qualified_name":"ConcurrentLinkedQueue::headOffset","kind":"field","ident_start":34392,"ident_end":34402,"extent_start":34366,"extent_end":34403,"ident_utf16":{"start":{"line_number":922,"utf16_col":30},"end":{"line_number":922,"utf16_col":40}},"extent_utf16":{"start":{"line_number":922,"utf16_col":4},"end":{"line_number":922,"utf16_col":41}}},{"name":"tailOffset","fully_qualified_name":"ConcurrentLinkedQueue::tailOffset","kind":"field","ident_start":34434,"ident_end":34444,"extent_start":34408,"extent_end":34445,"ident_utf16":{"start":{"line_number":923,"utf16_col":30},"end":{"line_number":923,"utf16_col":40}},"extent_utf16":{"start":{"line_number":923,"utf16_col":4},"end":{"line_number":923,"utf16_col":41}}}]}},"codeViewLayoutRoute":{"repo":{"id":86577454,"defaultBranch":"master","name":"PslyAlgorithm","ownerLogin":"Pslydhh","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-03-29T12:06:30.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/26759882?v=4","public":true,"private":false,"isOrgOwned":false,"isArchived":false},"currentUser":null,"uploadToken":"vkQTAsBiAVRb0Gdm7z_ehm2ZKzKCujZICNhfr27Nt2cvCHUDEYMe0ab0Yc7upkkhzDBxXug39frARSYvHy1qew","allShortcutsEnabled":false,"treeExpanded":true,"path":"ConcurrentLinkedQueue.java","symbolsExpanded":false,"refInfo":{"name":"master","listCacheKey":"v0:1602550632.0","canEdit":false,"currentOid":"830489a8320c88e087def8f9cad65b1b9fe348b9"},"helpUrl":"https://docs.github.com","githubDevUrl":null},"codeViewFileTreeLayoutRoute":{"fileTree":{"":{"items":[{"name":"PslyMaxAllocatedArraySize","path":"PslyMaxAllocatedArraySize","contentType":"directory"},{"name":"cfilesforhazardpointer","path":"cfilesforhazardpointer","contentType":"directory"},{"name":"git-tutorial","path":"git-tutorial","contentType":"directory"},{"name":".editorconfig","path":".editorconfig","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":"ConcurrentLinkedQueue.java","path":"ConcurrentLinkedQueue.java","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"LinkedTransferQueueFix.java","path":"LinkedTransferQueueFix.java","contentType":"file"},{"name":"LockFreeLinkedList.java","path":"LockFreeLinkedList.java","contentType":"file"},{"name":"LockFreeLinkedListWithRefCount.java","path":"LockFreeLinkedListWithRefCount.java","contentType":"file"},{"name":"LockFreeLinkedListWithRefCount2.java","path":"LockFreeLinkedListWithRefCount2.java","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"StampedLock.java","path":"StampedLock.java","contentType":"file"},{"name":"TestForMultiverse.java","path":"TestForMultiverse.java","contentType":"file"},{"name":"TestForStampedLock.java","path":"TestForStampedLock.java","contentType":"file"},{"name":"UnsafeSupport.java","path":"UnsafeSupport.java","contentType":"file"},{"name":"WaitFreeGetAndIncrement.java","path":"WaitFreeGetAndIncrement.java","contentType":"file"},{"name":"WaitFreeQueue.java","path":"WaitFreeQueue.java","contentType":"file"},{"name":"WaitFreeQueueFastPath.java","path":"WaitFreeQueueFastPath.java","contentType":"file"},{"name":"list.rs","path":"list.rs","contentType":"file"}],"totalCount":20}},"fileTreeProcessingTime":41.730229,"foldersToFetch":[]},"codeViewBlobLayoutRoute":{"codeLineWrapEnabled":false,"refInfo":{"name":"master","listCacheKey":"v0:1602550632.0","canEdit":false,"refType":"branch","currentOid":"830489a8320c88e087def8f9cad65b1b9fe348b9","canEditOnDefaultBranch":false,"fileExistsOnDefault":true},"path":"ConcurrentLinkedQueue.java","blob":{"copilotSWEAgentEnabled":false,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/Pslydhh/PslyAlgorithm/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"ConcurrentLinkedQueue.java","displayUrl":"https://github.com/Pslydhh/PslyAlgorithm/blob/master/ConcurrentLinkedQueue.java?raw=true","headerInfo":{"blobSize":"34 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":"503a697","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2FPslydhh%2FPslyAlgorithm%2Fblob%2Fmaster%2FConcurrentLinkedQueue.java","isCSV":false,"isRichtext":false,"lineInfo":{"truncatedLoc":"937","truncatedSloc":"870"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"isIssueTemplate":false,"isDiscussionTemplate":false,"language":"Java","languageID":181,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/Pslydhh/PslyAlgorithm/blob/master/ConcurrentLinkedQueue.java","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/Pslydhh/PslyAlgorithm/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/Pslydhh/PslyAlgorithm/raw/refs/heads/master/ConcurrentLinkedQueue.java","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":["/*"," *"," *"," *"," *"," *"," * Written by Doug Lea and Martin Buchholz with assistance from members of"," * JCP JSR-166 Expert Group and released to the public domain, as explained"," * at http://creativecommons.org/publicdomain/zero/1.0/"," */","","","import java.util.AbstractQueue;","import java.util.ArrayList;","import java.util.Collection;","import java.util.Iterator;","import java.util.NoSuchElementException;","import java.util.Queue;","import java.util.Spliterator;","import java.util.Spliterators;","import java.util.function.Consumer;","","","/**"," * An unbounded thread-safe {@linkplain Queue queue} based on linked nodes."," * This queue orders elements FIFO (first-in-first-out)."," * The \u003cem\u003ehead\u003c/em\u003e of the queue is that element that has been on the"," * queue the longest time."," * The \u003cem\u003etail\u003c/em\u003e of the queue is that element that has been on the"," * queue the shortest time. New elements"," * are inserted at the tail of the queue, and the queue retrieval"," * operations obtain elements at the head of the queue."," * A {@code ConcurrentLinkedQueue} is an appropriate choice when"," * many threads will share access to a common collection."," * Like most other concurrent collection implementations, this class"," * does not permit the use of {@code null} elements."," *"," * \u003cp\u003eThis implementation employs an efficient \u003cem\u003enon-blocking\u003c/em\u003e"," * algorithm based on one described in \u003ca"," * href=\"http://www.cs.rochester.edu/u/michael/PODC96.html\"\u003e Simple,"," * Fast, and Practical Non-Blocking and Blocking Concurrent Queue"," * Algorithms\u003c/a\u003e by Maged M. Michael and Michael L. Scott."," *"," * \u003cp\u003eIterators are \u003ci\u003eweakly consistent\u003c/i\u003e, returning elements"," * reflecting the state of the queue at some point at or since the"," * creation of the iterator.  They do \u003cem\u003enot\u003c/em\u003e throw {@link"," * java.util.ConcurrentModificationException}, and may proceed concurrently"," * with other operations.  Elements contained in the queue since the creation"," * of the iterator will be returned exactly once."," *"," * \u003cp\u003eBeware that, unlike in most collections, the {@code size} method"," * is \u003cem\u003eNOT\u003c/em\u003e a constant-time operation. Because of the"," * asynchronous nature of these queues, determining the current number"," * of elements requires a traversal of the elements, and so may report"," * inaccurate results if this collection is modified during traversal."," * Additionally, the bulk operations {@code addAll},"," * {@code removeAll}, {@code retainAll}, {@code containsAll},"," * {@code equals}, and {@code toArray} are \u003cem\u003enot\u003c/em\u003e guaranteed"," * to be performed atomically. For example, an iterator operating"," * concurrently with an {@code addAll} operation might view only some"," * of the added elements."," *"," * \u003cp\u003eThis class and its iterator implement all of the \u003cem\u003eoptional\u003c/em\u003e"," * methods of the {@link Queue} and {@link Iterator} interfaces."," *"," * \u003cp\u003eMemory consistency effects: As with other concurrent"," * collections, actions in a thread prior to placing an object into a"," * {@code ConcurrentLinkedQueue}"," * \u003ca href=\"package-summary.html#MemoryVisibility\"\u003e\u003ci\u003ehappen-before\u003c/i\u003e\u003c/a\u003e"," * actions subsequent to the access or removal of that element from"," * the {@code ConcurrentLinkedQueue} in another thread."," *"," * \u003cp\u003eThis class is a member of the"," * \u003ca href=\"{@docRoot}/../technotes/guides/collections/index.html\"\u003e"," * Java Collections Framework\u003c/a\u003e."," *"," * @since 1.5"," * @author Doug Lea"," * @param \u003cE\u003e the type of elements held in this collection"," */","public class ConcurrentLinkedQueue\u003cE\u003e extends AbstractQueue\u003cE\u003e","        implements Queue\u003cE\u003e, java.io.Serializable {","    private static final long serialVersionUID = 196745693267521676L;","","    /*","     * This is a modification of the Michael \u0026 Scott algorithm,","     * adapted for a garbage-collected environment, with support for","     * interior node deletion (to support remove(Object)).  For","     * explanation, read the paper.","     *","     * Note that like most non-blocking algorithms in this package,","     * this implementation relies on the fact that in garbage","     * collected systems, there is no possibility of ABA problems due","     * to recycled nodes, so there is no need to use \"counted","     * pointers\" or related techniques seen in versions used in","     * non-GC'ed settings.","     *","     * The fundamental invariants are:","     * - There is exactly one (last) Node with a null next reference,","     *   which is CASed when enqueueing.  This last Node can be","     *   reached in O(1) time from tail, but tail is merely an","     *   optimization - it can always be reached in O(N) time from","     *   head as well.","     * - The elements contained in the queue are the non-null items in","     *   Nodes that are reachable from head.  CASing the item","     *   reference of a Node to null atomically removes it from the","     *   queue.  Reachability of all elements from head must remain","     *   true even in the case of concurrent modifications that cause","     *   head to advance.  A dequeued Node may remain in use","     *   indefinitely due to creation of an Iterator or simply a","     *   poll() that has lost its time slice.","     *","     * The above might appear to imply that all Nodes are GC-reachable","     * from a predecessor dequeued Node.  That would cause two problems:","     * - allow a rogue Iterator to cause unbounded memory retention","     * - cause cross-generational linking of old Nodes to new Nodes if","     *   a Node was tenured while live, which generational GCs have a","     *   hard time dealing with, causing repeated major collections.","     * However, only non-deleted Nodes need to be reachable from","     * dequeued Nodes, and reachability does not necessarily have to","     * be of the kind understood by the GC.  We use the trick of","     * linking a Node that has just been dequeued to itself.  Such a","     * self-link implicitly means to advance to head.","     *","     * Both head and tail are permitted to lag.  In fact, failing to","     * update them every time one could is a significant optimization","     * (fewer CASes). As with LinkedTransferQueue (see the internal","     * documentation for that class), we use a slack threshold of two;","     * that is, we update head/tail when the current pointer appears","     * to be two or more steps away from the first/last node.","     *","     * Since head and tail are updated concurrently and independently,","     * it is possible for tail to lag behind head (why not)?","     *","     * CASing a Node's item reference to null atomically removes the","     * element from the queue.  Iterators skip over Nodes with null","     * items.  Prior implementations of this class had a race between","     * poll() and remove(Object) where the same element would appear","     * to be successfully removed by two concurrent operations.  The","     * method remove(Object) also lazily unlinks deleted Nodes, but","     * this is merely an optimization.","     *","     * When constructing a Node (before enqueuing it) we avoid paying","     * for a volatile write to item by using Unsafe.putObject instead","     * of a normal write.  This allows the cost of enqueue to be","     * \"one-and-a-half\" CASes.","     *","     * Both head and tail may or may not point to a Node with a","     * non-null item.  If the queue is empty, all items must of course","     * be null.  Upon creation, both head and tail refer to a dummy","     * Node with null item.  Both head and tail are only updated using","     * CAS, so they never regress, although again this is merely an","     * optimization.","     */","","    private static class Node\u003cE\u003e {","        volatile E item;","        volatile Node\u003cE\u003e next;","","        /**","         * Constructs a new node.  Uses relaxed write because item can","         * only be seen after publication via casNext.","         */","        Node(E item) {","            UNSAFE.putObject(this, itemOffset, item);","        }","","        boolean casItem(E cmp, E val) {","            return UNSAFE.compareAndSwapObject(this, itemOffset, cmp, val);","        }","","        void lazySetNext(Node\u003cE\u003e val) {","            UNSAFE.putOrderedObject(this, nextOffset, val);","        }","","        boolean casNext(Node\u003cE\u003e cmp, Node\u003cE\u003e val) {","            return UNSAFE.compareAndSwapObject(this, nextOffset, cmp, val);","        }","","        // Unsafe mechanics","","        private static final sun.misc.Unsafe UNSAFE;","        private static final long itemOffset;","        private static final long nextOffset;","","        static {","            try {","                UNSAFE = UnsafeSupport.getUnsafeInstance();","                Class\u003c?\u003e k = Node.class;","                itemOffset = UNSAFE.objectFieldOffset","                    (k.getDeclaredField(\"item\"));","                nextOffset = UNSAFE.objectFieldOffset","                    (k.getDeclaredField(\"next\"));","            } catch (Exception e) {","                throw new Error(e);","            }","        }","    }","","    /**","     * A node from which the first live (non-deleted) node (if any)","     * can be reached in O(1) time.","     * Invariants:","     * - all live nodes are reachable from head via succ()","     * - head != null","     * - (tmp = head).next != tmp || tmp != head","     * Non-invariants:","     * - head.item may or may not be null.","     * - it is permitted for tail to lag behind head, that is, for tail","     *   to not be reachable from head!","     */","    private transient volatile Node\u003cE\u003e head;","","    /**","     * A node from which the last node on list (that is, the unique","     * node with node.next == null) can be reached in O(1) time.","     * Invariants:","     * - the last node is always reachable from tail via succ()","     * - tail != null","     * Non-invariants:","     * - tail.item may or may not be null.","     * - it is permitted for tail to lag behind head, that is, for tail","     *   to not be reachable from head!","     * - tail.next may or may not be self-pointing to tail.","     */","    private transient volatile Node\u003cE\u003e tail;","","    /**","     * Creates a {@code ConcurrentLinkedQueue} that is initially empty.","     */","    public ConcurrentLinkedQueue() {","        head = tail = new Node\u003cE\u003e(null);","    }","","    /**","     * Creates a {@code ConcurrentLinkedQueue}","     * initially containing the elements of the given collection,","     * added in traversal order of the collection's iterator.","     *","     * @param c the collection of elements to initially contain","     * @throws NullPointerException if the specified collection or any","     *         of its elements are null","     */","    public ConcurrentLinkedQueue(Collection\u003c? extends E\u003e c) {","        Node\u003cE\u003e h = null, t = null;","        for (E e : c) {","            checkNotNull(e);","            Node\u003cE\u003e newNode = new Node\u003cE\u003e(e);","            if (h == null)","                h = t = newNode;","            else {","                t.lazySetNext(newNode);","                t = newNode;","            }","        }","        if (h == null)","            h = t = new Node\u003cE\u003e(null);","        head = h;","        tail = t;","    }","","    // Have to override just to update the javadoc","","    /**","     * Inserts the specified element at the tail of this queue.","     * As the queue is unbounded, this method will never throw","     * {@link IllegalStateException} or return {@code false}.","     *","     * @return {@code true} (as specified by {@link Collection#add})","     * @throws NullPointerException if the specified element is null","     */","    public boolean add(E e) {","        return offer(e);","    }","","    /**","     * Tries to CAS head to p. If successful, repoint old head to itself","     * as sentinel for succ(), below.","     */","    final void updateHead(Node\u003cE\u003e h, Node\u003cE\u003e p) {","        if (h != p \u0026\u0026 casHead(h, p))","            h.lazySetNext(h);","    }","","    /**","     * Returns the successor of p, or the head node if p.next has been","     * linked to self, which will only be true if traversing with a","     * stale pointer that is now off the list.","     */","    final Node\u003cE\u003e succ(Node\u003cE\u003e p) {","        Node\u003cE\u003e next = p.next;","        return (p == next) ? head : next;","    }","","    /**","     * Inserts the specified element at the tail of this queue.","     * As the queue is unbounded, this method will never return {@code false}.","     *","     * @return {@code true} (as specified by {@link Queue#offer})","     * @throws NullPointerException if the specified element is null","     */","    public boolean offer(E e) {","        checkNotNull(e);","        Node\u003cE\u003e newNode = new Node\u003cE\u003e(e);","","        for (Node\u003cE\u003e t = tail, p = t;;) {","            Node\u003cE\u003e q = p.next;","            if (q == null) {","                // p is last node","                if (p.casNext(null, newNode)) {","                    // Successful CAS is the linearization point","                    // for e to become an element of this queue,","                    // and for newNode to become \"live\".","/*                    if (p != t) // hop two nodes at a time","                        casTail(t, newNode);  // Failure is OK.","*/                    ","                    if (p != t) {                 // update if slack now \u003e= 2","                        while ((tail != t || !casTail(t, newNode)) \u0026\u0026","                               (t = tail)   != null \u0026\u0026","                               (newNode = t.next) != null \u0026\u0026 // advance and retry","                               (newNode = newNode.next) != null \u0026\u0026 newNode != t);","                    }","                    return true;","                }","                // Lost CAS race to another thread; re-read next","            }","            else if (p == q)","                // We have fallen off list.  If tail is unchanged, it","                // will also be off-list, in which case we need to","                // jump to head, from which all live nodes are always","                // reachable.  Else the new tail is a better bet.","                p = (t != (t = tail)) ? t : head;","            else","                // Check for tail updates after two hops.","                p = (p != t \u0026\u0026 t != (t = tail)) ? t : q;","        }","    }","","    public E poll() {","        restartFromHead:","        for (;;) {","            for (Node\u003cE\u003e h = head, p = h, q;;) {","                E item = p.item;","","                if (item != null \u0026\u0026 p.casItem(item, null)) {","                    // Successful CAS is the linearization point","                    // for item to be removed from this queue.","/*                    if (p != h) // hop two nodes at a time","                        updateHead(h, ((q = p.next) != null) ? q : p);","*/","                    ","                    for (Node\u003cE\u003e r = p; r != h;) { // hop two nodes at a time","                    \tNode\u003cE\u003e n = r.next;  // update by 2 unless singleton","                        if (head == h \u0026\u0026 casHead(h, n == null ? r : n)) {","                            h.lazySetNext(h);","                            break;","                        }                 // advance and retry","                        if ((h = head) == null ||","                            ((r = h.next) ==null || r.item != null)) ","                            break;        // unless slack \u003c 2","                    }","                    return item;","                }","                else if ((q = p.next) == null) {","                    updateHead(h, p);","                    return null;","                }","                else if (p == q)","                    continue restartFromHead;","                else","                    p = q;","            }","        }","    }","","    public E peek() {","        restartFromHead:","        for (;;) {","            for (Node\u003cE\u003e h = head, p = h, q;;) {","                E item = p.item;","                if (item != null || (q = p.next) == null) {","                    updateHead(h, p);","                    return item;","                }","                else if (p == q)","                    continue restartFromHead;","                else","                    p = q;","            }","        }","    }","","    /**","     * Returns the first live (non-deleted) node on list, or null if none.","     * This is yet another variant of poll/peek; here returning the","     * first node, not element.  We could make peek() a wrapper around","     * first(), but that would cost an extra volatile read of item,","     * and the need to add a retry loop to deal with the possibility","     * of losing a race to a concurrent poll().","     */","    Node\u003cE\u003e first() {","        restartFromHead:","        for (;;) {","            for (Node\u003cE\u003e h = head, p = h, q;;) {","                boolean hasItem = (p.item != null);","                if (hasItem || (q = p.next) == null) {","                    updateHead(h, p);","                    return hasItem ? p : null;","                }","                else if (p == q)","                    continue restartFromHead;","                else","                    p = q;","            }","        }","    }","","    /**","     * Returns {@code true} if this queue contains no elements.","     *","     * @return {@code true} if this queue contains no elements","     */","    public boolean isEmpty() {","        return first() == null;","    }","","    /**","     * Returns the number of elements in this queue.  If this queue","     * contains more than {@code Integer.MAX_VALUE} elements, returns","     * {@code Integer.MAX_VALUE}.","     *","     * \u003cp\u003eBeware that, unlike in most collections, this method is","     * \u003cem\u003eNOT\u003c/em\u003e a constant-time operation. Because of the","     * asynchronous nature of these queues, determining the current","     * number of elements requires an O(n) traversal.","     * Additionally, if elements are added or removed during execution","     * of this method, the returned result may be inaccurate.  Thus,","     * this method is typically not very useful in concurrent","     * applications.","     *","     * @return the number of elements in this queue","     */","    public int size() {","        int count = 0;","        for (Node\u003cE\u003e p = first(); p != null; p = succ(p))","            if (p.item != null)","                // Collection.size() spec says to max out","                if (++count == Integer.MAX_VALUE)","                    break;","        return count;","    }","","    /**","     * Returns {@code true} if this queue contains the specified element.","     * More formally, returns {@code true} if and only if this queue contains","     * at least one element {@code e} such that {@code o.equals(e)}.","     *","     * @param o object to be checked for containment in this queue","     * @return {@code true} if this queue contains the specified element","     */","    public boolean contains(Object o) {","        if (o == null) return false;","        for (Node\u003cE\u003e p = first(); p != null; p = succ(p)) {","            E item = p.item;","            if (item != null \u0026\u0026 o.equals(item))","                return true;","        }","        return false;","    }","","    /**","     * Removes a single instance of the specified element from this queue,","     * if it is present.  More formally, removes an element {@code e} such","     * that {@code o.equals(e)}, if this queue contains one or more such","     * elements.","     * Returns {@code true} if this queue contained the specified element","     * (or equivalently, if this queue changed as a result of the call).","     *","     * @param o element to be removed from this queue, if present","     * @return {@code true} if this queue changed as a result of the call","     */","    public boolean remove(Object o) {","        if (o == null) return false;","        Node\u003cE\u003e pred = null;","        for (Node\u003cE\u003e p = first(); p != null; p = succ(p)) {","            E item = p.item;","            if (item != null \u0026\u0026","                o.equals(item) \u0026\u0026","                p.casItem(item, null)) {","                Node\u003cE\u003e next = succ(p);","                if (pred != null \u0026\u0026 next != null)","                    pred.casNext(p, next);","                return true;","            }","            pred = p;","        }","        return false;","    }","","    /**","     * Appends all of the elements in the specified collection to the end of","     * this queue, in the order that they are returned by the specified","     * collection's iterator.  Attempts to {@code addAll} of a queue to","     * itself result in {@code IllegalArgumentException}.","     *","     * @param c the elements to be inserted into this queue","     * @return {@code true} if this queue changed as a result of the call","     * @throws NullPointerException if the specified collection or any","     *         of its elements are null","     * @throws IllegalArgumentException if the collection is this queue","     */","    public boolean addAll(Collection\u003c? extends E\u003e c) {","        if (c == this)","            // As historically specified in AbstractQueue#addAll","            throw new IllegalArgumentException();","","        // Copy c into a private chain of Nodes","        Node\u003cE\u003e beginningOfTheEnd = null, last = null;","        for (E e : c) {","            checkNotNull(e);","            Node\u003cE\u003e newNode = new Node\u003cE\u003e(e);","            if (beginningOfTheEnd == null)","                beginningOfTheEnd = last = newNode;","            else {","                last.lazySetNext(newNode);","                last = newNode;","            }","        }","        if (beginningOfTheEnd == null)","            return false;","","        // Atomically append the chain at the tail of this collection","        for (Node\u003cE\u003e t = tail, p = t;;) {","            Node\u003cE\u003e q = p.next;","            if (q == null) {","                // p is last node","                if (p.casNext(null, beginningOfTheEnd)) {","                    // Successful CAS is the linearization point","                    // for all elements to be added to this queue.","                    if (!casTail(t, last)) {","                        // Try a little harder to update tail,","                        // since we may be adding many elements.","                        t = tail;","                        if (last.next == null)","                            casTail(t, last);","                    }","                    return true;","                }","                // Lost CAS race to another thread; re-read next","            }","            else if (p == q)","                // We have fallen off list.  If tail is unchanged, it","                // will also be off-list, in which case we need to","                // jump to head, from which all live nodes are always","                // reachable.  Else the new tail is a better bet.","                p = (t != (t = tail)) ? t : head;","            else","                // Check for tail updates after two hops.","                p = (p != t \u0026\u0026 t != (t = tail)) ? t : q;","        }","    }","","    /**","     * Returns an array containing all of the elements in this queue, in","     * proper sequence.","     *","     * \u003cp\u003eThe returned array will be \"safe\" in that no references to it are","     * maintained by this queue.  (In other words, this method must allocate","     * a new array).  The caller is thus free to modify the returned array.","     *","     * \u003cp\u003eThis method acts as bridge between array-based and collection-based","     * APIs.","     *","     * @return an array containing all of the elements in this queue","     */","    public Object[] toArray() {","        // Use ArrayList to deal with resizing.","        ArrayList\u003cE\u003e al = new ArrayList\u003cE\u003e();","        for (Node\u003cE\u003e p = first(); p != null; p = succ(p)) {","            E item = p.item;","            if (item != null)","                al.add(item);","        }","        return al.toArray();","    }","","    /**","     * Returns an array containing all of the elements in this queue, in","     * proper sequence; the runtime type of the returned array is that of","     * the specified array.  If the queue fits in the specified array, it","     * is returned therein.  Otherwise, a new array is allocated with the","     * runtime type of the specified array and the size of this queue.","     *","     * \u003cp\u003eIf this queue fits in the specified array with room to spare","     * (i.e., the array has more elements than this queue), the element in","     * the array immediately following the end of the queue is set to","     * {@code null}.","     *","     * \u003cp\u003eLike the {@link #toArray()} method, this method acts as bridge between","     * array-based and collection-based APIs.  Further, this method allows","     * precise control over the runtime type of the output array, and may,","     * under certain circumstances, be used to save allocation costs.","     *","     * \u003cp\u003eSuppose {@code x} is a queue known to contain only strings.","     * The following code can be used to dump the queue into a newly","     * allocated array of {@code String}:","     *","     *  \u003cpre\u003e {@code String[] y = x.toArray(new String[0]);}\u003c/pre\u003e","     *","     * Note that {@code toArray(new Object[0])} is identical in function to","     * {@code toArray()}.","     *","     * @param a the array into which the elements of the queue are to","     *          be stored, if it is big enough; otherwise, a new array of the","     *          same runtime type is allocated for this purpose","     * @return an array containing all of the elements in this queue","     * @throws ArrayStoreException if the runtime type of the specified array","     *         is not a supertype of the runtime type of every element in","     *         this queue","     * @throws NullPointerException if the specified array is null","     */","    @SuppressWarnings(\"unchecked\")","    public \u003cT\u003e T[] toArray(T[] a) {","        // try to use sent-in array","        int k = 0;","        Node\u003cE\u003e p;","        for (p = first(); p != null \u0026\u0026 k \u003c a.length; p = succ(p)) {","            E item = p.item;","            if (item != null)","                a[k++] = (T)item;","        }","        if (p == null) {","            if (k \u003c a.length)","                a[k] = null;","            return a;","        }","","        // If won't fit, use ArrayList version","        ArrayList\u003cE\u003e al = new ArrayList\u003cE\u003e();","        for (Node\u003cE\u003e q = first(); q != null; q = succ(q)) {","            E item = q.item;","            if (item != null)","                al.add(item);","        }","        return al.toArray(a);","    }","","    /**","     * Returns an iterator over the elements in this queue in proper sequence.","     * The elements will be returned in order from first (head) to last (tail).","     *","     * \u003cp\u003eThe returned iterator is","     * \u003ca href=\"package-summary.html#Weakly\"\u003e\u003ci\u003eweakly consistent\u003c/i\u003e\u003c/a\u003e.","     *","     * @return an iterator over the elements in this queue in proper sequence","     */","    public Iterator\u003cE\u003e iterator() {","        return new Itr();","    }","","    private class Itr implements Iterator\u003cE\u003e {","        /**","         * Next node to return item for.","         */","        private Node\u003cE\u003e nextNode;","","        /**","         * nextItem holds on to item fields because once we claim","         * that an element exists in hasNext(), we must return it in","         * the following next() call even if it was in the process of","         * being removed when hasNext() was called.","         */","        private E nextItem;","","        /**","         * Node of the last returned item, to support remove.","         */","        private Node\u003cE\u003e lastRet;","","        Itr() {","            advance();","        }","","        /**","         * Moves to next valid node and returns item to return for","         * next(), or null if no such.","         */","        private E advance() {","            lastRet = nextNode;","            E x = nextItem;","","            Node\u003cE\u003e pred, p;","            if (nextNode == null) {","                p = first();","                pred = null;","            } else {","                pred = nextNode;","                p = succ(nextNode);","            }","","            for (;;) {","                if (p == null) {","                    nextNode = null;","                    nextItem = null;","                    return x;","                }","                E item = p.item;","                if (item != null) {","                    nextNode = p;","                    nextItem = item;","                    return x;","                } else {","                    // skip over nulls","                    Node\u003cE\u003e next = succ(p);","                    if (pred != null \u0026\u0026 next != null)","                        pred.casNext(p, next);","                    p = next;","                }","            }","        }","","        public boolean hasNext() {","            return nextNode != null;","        }","","        public E next() {","            if (nextNode == null) throw new NoSuchElementException();","            return advance();","        }","","        public void remove() {","            Node\u003cE\u003e l = lastRet;","            if (l == null) throw new IllegalStateException();","            // rely on a future traversal to relink.","            l.item = null;","            lastRet = null;","        }","    }","","    /**","     * Saves this queue to a stream (that is, serializes it).","     *","     * @param s the stream","     * @throws java.io.IOException if an I/O error occurs","     * @serialData All of the elements (each an {@code E}) in","     * the proper order, followed by a null","     */","    private void writeObject(java.io.ObjectOutputStream s)","        throws java.io.IOException {","","        // Write out any hidden stuff","        s.defaultWriteObject();","","        // Write out all elements in the proper order.","        for (Node\u003cE\u003e p = first(); p != null; p = succ(p)) {","            Object item = p.item;","            if (item != null)","                s.writeObject(item);","        }","","        // Use trailing null as sentinel","        s.writeObject(null);","    }","","    /**","     * Reconstitutes this queue from a stream (that is, deserializes it).","     * @param s the stream","     * @throws ClassNotFoundException if the class of a serialized object","     *         could not be found","     * @throws java.io.IOException if an I/O error occurs","     */","    private void readObject(java.io.ObjectInputStream s)","        throws java.io.IOException, ClassNotFoundException {","        s.defaultReadObject();","","        // Read in elements until trailing null sentinel found","        Node\u003cE\u003e h = null, t = null;","        Object item;","        while ((item = s.readObject()) != null) {","            @SuppressWarnings(\"unchecked\")","            Node\u003cE\u003e newNode = new Node\u003cE\u003e((E) item);","            if (h == null)","                h = t = newNode;","            else {","                t.lazySetNext(newNode);","                t = newNode;","            }","        }","        if (h == null)","            h = t = new Node\u003cE\u003e(null);","        head = h;","        tail = t;","    }","","    /** A customized variant of Spliterators.IteratorSpliterator */","    static final class CLQSpliterator\u003cE\u003e implements Spliterator\u003cE\u003e {","        static final int MAX_BATCH = 1 \u003c\u003c 25;  // max batch array size;","        final ConcurrentLinkedQueue\u003cE\u003e queue;","        Node\u003cE\u003e current;    // current node; null until initialized","        int batch;          // batch size for splits","        boolean exhausted;  // true when no more nodes","        CLQSpliterator(ConcurrentLinkedQueue\u003cE\u003e queue) {","            this.queue = queue;","        }","","        public Spliterator\u003cE\u003e trySplit() {","            Node\u003cE\u003e p;","            final ConcurrentLinkedQueue\u003cE\u003e q = this.queue;","            int b = batch;","            int n = (b \u003c= 0) ? 1 : (b \u003e= MAX_BATCH) ? MAX_BATCH : b + 1;","            if (!exhausted \u0026\u0026","                ((p = current) != null || (p = q.first()) != null) \u0026\u0026","                p.next != null) {","                Object[] a = new Object[n];","                int i = 0;","                do {","                    if ((a[i] = p.item) != null)","                        ++i;","                    if (p == (p = p.next))","                        p = q.first();","                } while (p != null \u0026\u0026 i \u003c n);","                if ((current = p) == null)","                    exhausted = true;","                if (i \u003e 0) {","                    batch = i;","                    return Spliterators.spliterator","                        (a, 0, i, Spliterator.ORDERED | Spliterator.NONNULL |","                         Spliterator.CONCURRENT);","                }","            }","            return null;","        }","","        public void forEachRemaining(Consumer\u003c? super E\u003e action) {","            Node\u003cE\u003e p;","            if (action == null) throw new NullPointerException();","            final ConcurrentLinkedQueue\u003cE\u003e q = this.queue;","            if (!exhausted \u0026\u0026","                ((p = current) != null || (p = q.first()) != null)) {","                exhausted = true;","                do {","                    E e = p.item;","                    if (p == (p = p.next))","                        p = q.first();","                    if (e != null)","                        action.accept(e);","                } while (p != null);","            }","        }","","        public boolean tryAdvance(Consumer\u003c? super E\u003e action) {","            Node\u003cE\u003e p;","            if (action == null) throw new NullPointerException();","            final ConcurrentLinkedQueue\u003cE\u003e q = this.queue;","            if (!exhausted \u0026\u0026","                ((p = current) != null || (p = q.first()) != null)) {","                E e;","                do {","                    e = p.item;","                    if (p == (p = p.next))","                        p = q.first();","                } while (e == null \u0026\u0026 p != null);","                if ((current = p) == null)","                    exhausted = true;","                if (e != null) {","                    action.accept(e);","                    return true;","                }","            }","            return false;","        }","","        public long estimateSize() { return Long.MAX_VALUE; }","","        public int characteristics() {","            return Spliterator.ORDERED | Spliterator.NONNULL |","                Spliterator.CONCURRENT;","        }","    }","","    /**","     * Returns a {@link Spliterator} over the elements in this queue.","     *","     * \u003cp\u003eThe returned spliterator is","     * \u003ca href=\"package-summary.html#Weakly\"\u003e\u003ci\u003eweakly consistent\u003c/i\u003e\u003c/a\u003e.","     *","     * \u003cp\u003eThe {@code Spliterator} reports {@link Spliterator#CONCURRENT},","     * {@link Spliterator#ORDERED}, and {@link Spliterator#NONNULL}.","     *","     * @implNote","     * The {@code Spliterator} implements {@code trySplit} to permit limited","     * parallelism.","     *","     * @return a {@code Spliterator} over the elements in this queue","     * @since 1.8","     */","    @Override","    public Spliterator\u003cE\u003e spliterator() {","        return new CLQSpliterator\u003cE\u003e(this);","    }","","    /**","     * Throws NullPointerException if argument is null.","     *","     * @param v the element","     */","    private static void checkNotNull(Object v) {","        if (v == null)","            throw new NullPointerException();","    }","","    private boolean casTail(Node\u003cE\u003e cmp, Node\u003cE\u003e val) {","        return UNSAFE.compareAndSwapObject(this, tailOffset, cmp, val);","    }","","    private boolean casHead(Node\u003cE\u003e cmp, Node\u003cE\u003e val) {","        return UNSAFE.compareAndSwapObject(this, headOffset, cmp, val);","    }","","    // Unsafe mechanics","","    private static final sun.misc.Unsafe UNSAFE;","    private static final long headOffset;","    private static final long tailOffset;","    static {","        try {","            UNSAFE = UnsafeSupport.getUnsafeInstance();","            Class\u003c?\u003e k = ConcurrentLinkedQueue.class;","            headOffset = UNSAFE.objectFieldOffset","                (k.getDeclaredField(\"head\"));","            tailOffset = UNSAFE.objectFieldOffset","                (k.getDeclaredField(\"tail\"));","        } catch (Exception e) {","            throw new Error(e);","        }","    }","}"],"stylingDirectives":[[[0,2,"pl-c"]],[[0,2,"pl-c"]],[[0,2,"pl-c"]],[[0,2,"pl-c"]],[[0,2,"pl-c"]],[[0,2,"pl-c"]],[[0,74,"pl-c"]],[[0,75,"pl-c"]],[[0,55,"pl-c"]],[[0,3,"pl-c"]],[],[],[[0,6,"pl-k"],[7,11,"pl-s1"],[12,16,"pl-s1"],[17,30,"pl-s1"]],[[0,6,"pl-k"],[7,11,"pl-s1"],[12,16,"pl-s1"],[17,26,"pl-s1"]],[[0,6,"pl-k"],[7,11,"pl-s1"],[12,16,"pl-s1"],[17,27,"pl-s1"]],[[0,6,"pl-k"],[7,11,"pl-s1"],[12,16,"pl-s1"],[17,25,"pl-s1"]],[[0,6,"pl-k"],[7,11,"pl-s1"],[12,16,"pl-s1"],[17,39,"pl-s1"]],[[0,6,"pl-k"],[7,11,"pl-s1"],[12,16,"pl-s1"],[17,22,"pl-s1"]],[[0,6,"pl-k"],[7,11,"pl-s1"],[12,16,"pl-s1"],[17,28,"pl-s1"]],[[0,6,"pl-k"],[7,11,"pl-s1"],[12,16,"pl-s1"],[17,29,"pl-s1"]],[[0,6,"pl-k"],[7,11,"pl-s1"],[12,16,"pl-s1"],[17,25,"pl-s1"],[26,34,"pl-s1"]],[],[],[[0,3,"pl-c"]],[[0,75,"pl-c"]],[[0,56,"pl-c"]],[[0,70,"pl-c"]],[[0,26,"pl-c"]],[[0,70,"pl-c"]],[[0,40,"pl-c"]],[[0,65,"pl-c"]],[[0,55,"pl-c"]],[[0,64,"pl-c"]],[[0,57,"pl-c"]],[[0,68,"pl-c"]],[[0,52,"pl-c"]],[[0,2,"pl-c"]],[[0,68,"pl-c"]],[[0,41,"pl-c"]],[[0,68,"pl-c"]],[[0,65,"pl-c"]],[[0,59,"pl-c"]],[[0,2,"pl-c"]],[[0,64,"pl-c"]],[[0,66,"pl-c"]],[[0,63,"pl-c"]],[[0,75,"pl-c"]],[[0,77,"pl-c"]],[[0,49,"pl-c"]],[[0,2,"pl-c"]],[[0,70,"pl-c"]],[[0,60,"pl-c"]],[[0,70,"pl-c"]],[[0,70,"pl-c"]],[[0,70,"pl-c"]],[[0,52,"pl-c"]],[[0,61,"pl-c"]],[[0,66,"pl-c"]],[[0,65,"pl-c"]],[[0,69,"pl-c"]],[[0,25,"pl-c"]],[[0,2,"pl-c"]],[[0,72,"pl-c"]],[[0,64,"pl-c"]],[[0,2,"pl-c"]],[[0,58,"pl-c"]],[[0,69,"pl-c"]],[[0,32,"pl-c"]],[[0,75,"pl-c"]],[[0,67,"pl-c"]],[[0,55,"pl-c"]],[[0,2,"pl-c"]],[[0,35,"pl-c"]],[[0,67,"pl-c"]],[[0,34,"pl-c"]],[[0,2,"pl-c"]],[[0,13,"pl-c"]],[[0,19,"pl-c"]],[[0,58,"pl-c"]],[[0,3,"pl-c"]],[[0,6,"pl-k"],[7,12,"pl-k"],[13,34,"pl-smi"],[35,36,"pl-smi"],[38,45,"pl-k"],[46,59,"pl-smi"],[60,61,"pl-smi"]],[[8,18,"pl-k"],[19,24,"pl-smi"],[25,26,"pl-smi"],[29,33,"pl-smi"],[34,36,"pl-smi"],[37,49,"pl-smi"]],[[4,11,"pl-k"],[12,18,"pl-k"],[19,24,"pl-k"],[25,29,"pl-smi"],[30,46,"pl-s1"],[49,68,"pl-c1"]],[],[[4,6,"pl-c"]],[[0,63,"pl-c"]],[[0,68,"pl-c"]],[[0,63,"pl-c"]],[[0,35,"pl-c"]],[[0,6,"pl-c"]],[[0,67,"pl-c"]],[[0,61,"pl-c"]],[[0,69,"pl-c"]],[[0,61,"pl-c"]],[[0,63,"pl-c"]],[[0,26,"pl-c"]],[[0,6,"pl-c"]],[[0,38,"pl-c"]],[[0,69,"pl-c"]],[[0,63,"pl-c"]],[[0,62,"pl-c"]],[[0,66,"pl-c"]],[[0,22,"pl-c"]],[[0,70,"pl-c"]],[[0,61,"pl-c"]],[[0,67,"pl-c"]],[[0,67,"pl-c"]],[[0,69,"pl-c"]],[[0,60,"pl-c"]],[[0,64,"pl-c"]],[[0,45,"pl-c"]],[[0,6,"pl-c"]],[[0,70,"pl-c"]],[[0,72,"pl-c"]],[[0,67,"pl-c"]],[[0,70,"pl-c"]],[[0,69,"pl-c"]],[[0,68,"pl-c"]],[[0,64,"pl-c"]],[[0,68,"pl-c"]],[[0,64,"pl-c"]],[[0,68,"pl-c"]],[[0,53,"pl-c"]],[[0,6,"pl-c"]],[[0,68,"pl-c"]],[[0,69,"pl-c"]],[[0,67,"pl-c"]],[[0,70,"pl-c"]],[[0,68,"pl-c"]],[[0,61,"pl-c"]],[[0,6,"pl-c"]],[[0,70,"pl-c"]],[[0,60,"pl-c"]],[[0,6,"pl-c"]],[[0,68,"pl-c"]],[[0,67,"pl-c"]],[[0,69,"pl-c"]],[[0,68,"pl-c"]],[[0,68,"pl-c"]],[[0,67,"pl-c"]],[[0,38,"pl-c"]],[[0,6,"pl-c"]],[[0,69,"pl-c"]],[[0,69,"pl-c"]],[[0,64,"pl-c"]],[[0,30,"pl-c"]],[[0,6,"pl-c"]],[[0,63,"pl-c"]],[[0,70,"pl-c"]],[[0,67,"pl-c"]],[[0,70,"pl-c"]],[[0,67,"pl-c"]],[[0,20,"pl-c"]],[[0,7,"pl-c"]],[],[[4,11,"pl-k"],[12,18,"pl-k"],[19,24,"pl-k"],[25,29,"pl-smi"],[30,31,"pl-smi"]],[[8,16,"pl-k"],[17,18,"pl-smi"],[19,23,"pl-s1"]],[[8,16,"pl-k"],[17,21,"pl-smi"],[22,23,"pl-smi"],[25,29,"pl-s1"]],[],[[8,11,"pl-c"]],[[0,70,"pl-c"]],[[0,54,"pl-c"]],[[0,11,"pl-c"]],[[8,12,"pl-smi"],[13,14,"pl-smi"],[15,19,"pl-s1"]],[[12,18,"pl-c1"],[19,28,"pl-en"],[29,33,"pl-smi"],[35,45,"pl-s1"],[47,51,"pl-s1"]],[],[],[[8,15,"pl-smi"],[16,23,"pl-en"],[24,25,"pl-smi"],[26,29,"pl-s1"],[31,32,"pl-smi"],[33,36,"pl-s1"]],[[12,18,"pl-k"],[19,25,"pl-c1"],[26,46,"pl-en"],[47,51,"pl-smi"],[53,63,"pl-s1"],[65,68,"pl-s1"],[70,73,"pl-s1"]],[],[],[[8,12,"pl-smi"],[13,24,"pl-en"],[25,29,"pl-smi"],[30,31,"pl-smi"],[33,36,"pl-s1"]],[[12,18,"pl-c1"],[19,35,"pl-en"],[36,40,"pl-smi"],[42,52,"pl-s1"],[54,57,"pl-s1"]],[],[],[[8,15,"pl-smi"],[16,23,"pl-en"],[24,28,"pl-smi"],[29,30,"pl-smi"],[32,35,"pl-s1"],[37,41,"pl-smi"],[42,43,"pl-smi"],[45,48,"pl-s1"]],[[12,18,"pl-k"],[19,25,"pl-c1"],[26,46,"pl-en"],[47,51,"pl-smi"],[53,63,"pl-s1"],[65,68,"pl-s1"],[70,73,"pl-s1"]],[],[],[[8,27,"pl-c"]],[],[[8,15,"pl-k"],[16,22,"pl-k"],[23,28,"pl-k"],[29,32,"pl-smi"],[33,37,"pl-smi"],[38,44,"pl-smi"],[45,51,"pl-c1"]],[[8,15,"pl-k"],[16,22,"pl-k"],[23,28,"pl-k"],[29,33,"pl-smi"],[34,44,"pl-s1"]],[[8,15,"pl-k"],[16,22,"pl-k"],[23,28,"pl-k"],[29,33,"pl-smi"],[34,44,"pl-s1"]],[],[[8,14,"pl-k"]],[[12,15,"pl-k"]],[[16,22,"pl-c1"],[25,38,"pl-smi"],[39,56,"pl-en"]],[[16,21,"pl-smi"],[25,26,"pl-s1"],[29,33,"pl-smi"],[34,39,"pl-k"]],[[16,26,"pl-s1"],[29,35,"pl-c1"],[36,53,"pl-en"]],[[21,22,"pl-s1"],[23,39,"pl-en"],[40,46,"pl-s"]],[[16,26,"pl-s1"],[29,35,"pl-c1"],[36,53,"pl-en"]],[[21,22,"pl-s1"],[23,39,"pl-en"],[40,46,"pl-s"]],[[14,19,"pl-k"],[21,30,"pl-smi"],[31,32,"pl-s1"]],[[16,21,"pl-k"],[22,25,"pl-k"],[26,31,"pl-smi"],[32,33,"pl-s1"]],[],[],[],[],[[4,7,"pl-c"]],[[0,67,"pl-c"]],[[0,35,"pl-c"]],[[0,18,"pl-c"]],[[0,58,"pl-c"]],[[0,21,"pl-c"]],[[0,48,"pl-c"]],[[0,22,"pl-c"]],[[0,42,"pl-c"]],[[0,71,"pl-c"]],[[0,39,"pl-c"]],[[0,7,"pl-c"]],[[4,11,"pl-k"],[12,21,"pl-k"],[22,30,"pl-k"],[31,35,"pl-smi"],[36,37,"pl-smi"],[39,43,"pl-s1"]],[],[[4,7,"pl-c"]],[[0,67,"pl-c"]],[[0,64,"pl-c"]],[[0,18,"pl-c"]],[[0,63,"pl-c"]],[[0,21,"pl-c"]],[[0,22,"pl-c"]],[[0,42,"pl-c"]],[[0,71,"pl-c"]],[[0,39,"pl-c"]],[[0,59,"pl-c"]],[[0,7,"pl-c"]],[[4,11,"pl-k"],[12,21,"pl-k"],[22,30,"pl-k"],[31,35,"pl-smi"],[36,37,"pl-smi"],[39,43,"pl-s1"]],[],[[4,7,"pl-c"]],[[0,71,"pl-c"]],[[0,7,"pl-c"]],[[4,10,"pl-k"],[11,32,"pl-smi"]],[[8,12,"pl-s1"],[15,19,"pl-s1"],[22,25,"pl-k"],[26,30,"pl-smi"],[31,32,"pl-smi"],[34,38,"pl-c1"]],[],[],[[4,7,"pl-c"]],[[0,46,"pl-c"]],[[0,65,"pl-c"]],[[0,61,"pl-c"]],[[0,6,"pl-c"]],[[0,63,"pl-c"]],[[0,70,"pl-c"]],[[0,39,"pl-c"]],[[0,7,"pl-c"]],[[4,10,"pl-k"],[11,32,"pl-smi"],[33,43,"pl-smi"],[46,53,"pl-k"],[54,55,"pl-smi"],[57,58,"pl-s1"]],[[8,12,"pl-smi"],[13,14,"pl-smi"],[16,17,"pl-s1"],[20,24,"pl-c1"],[26,27,"pl-s1"],[30,34,"pl-c1"]],[[8,11,"pl-k"],[13,14,"pl-smi"],[15,16,"pl-s1"],[19,20,"pl-s1"]],[[12,24,"pl-en"],[25,26,"pl-s1"]],[[12,16,"pl-smi"],[17,18,"pl-smi"],[20,27,"pl-s1"],[30,33,"pl-k"],[34,38,"pl-smi"],[39,40,"pl-smi"],[42,43,"pl-s1"]],[[12,14,"pl-k"],[16,17,"pl-s1"],[21,25,"pl-c1"]],[[16,17,"pl-s1"],[20,21,"pl-s1"],[24,31,"pl-s1"]],[[12,16,"pl-k"]],[[16,17,"pl-s1"],[18,29,"pl-en"],[30,37,"pl-s1"]],[[16,17,"pl-s1"],[20,27,"pl-s1"]],[],[],[[8,10,"pl-k"],[12,13,"pl-s1"],[17,21,"pl-c1"]],[[12,13,"pl-s1"],[16,17,"pl-s1"],[20,23,"pl-k"],[24,28,"pl-smi"],[29,30,"pl-smi"],[32,36,"pl-c1"]],[[8,12,"pl-s1"],[15,16,"pl-s1"]],[[8,12,"pl-s1"],[15,16,"pl-s1"]],[],[],[[4,50,"pl-c"]],[],[[4,7,"pl-c"]],[[0,63,"pl-c"]],[[0,62,"pl-c"]],[[0,61,"pl-c"]],[[0,6,"pl-c"]],[[0,68,"pl-c"]],[[0,68,"pl-c"]],[[0,7,"pl-c"]],[[4,10,"pl-k"],[11,18,"pl-smi"],[19,22,"pl-en"],[23,24,"pl-smi"],[25,26,"pl-s1"]],[[8,14,"pl-k"],[15,20,"pl-en"],[21,22,"pl-s1"]],[],[],[[4,7,"pl-c"]],[[0,72,"pl-c"]],[[0,37,"pl-c"]],[[0,7,"pl-c"]],[[4,9,"pl-k"],[10,14,"pl-smi"],[15,25,"pl-en"],[26,30,"pl-smi"],[31,32,"pl-smi"],[34,35,"pl-s1"],[37,41,"pl-smi"],[42,43,"pl-smi"],[45,46,"pl-s1"]],[[8,10,"pl-k"],[12,13,"pl-s1"],[17,18,"pl-s1"],[22,29,"pl-en"],[30,31,"pl-s1"],[33,34,"pl-s1"]],[[12,13,"pl-s1"],[14,25,"pl-en"],[26,27,"pl-s1"]],[],[],[[4,7,"pl-c"]],[[0,70,"pl-c"]],[[0,67,"pl-c"]],[[0,46,"pl-c"]],[[0,7,"pl-c"]],[[4,9,"pl-k"],[10,14,"pl-smi"],[15,16,"pl-smi"],[18,22,"pl-en"],[23,27,"pl-smi"],[28,29,"pl-smi"],[31,32,"pl-s1"]],[[8,12,"pl-smi"],[13,14,"pl-smi"],[16,20,"pl-s1"],[23,24,"pl-s1"],[25,29,"pl-s1"]],[[8,14,"pl-k"],[16,17,"pl-s1"],[21,25,"pl-s1"],[29,33,"pl-s1"],[36,40,"pl-s1"]],[],[],[[4,7,"pl-c"]],[[0,63,"pl-c"]],[[0,78,"pl-c"]],[[0,6,"pl-c"]],[[0,65,"pl-c"]],[[0,68,"pl-c"]],[[0,7,"pl-c"]],[[4,10,"pl-k"],[11,18,"pl-smi"],[19,24,"pl-en"],[25,26,"pl-smi"],[27,28,"pl-s1"]],[[8,20,"pl-en"],[21,22,"pl-s1"]],[[8,12,"pl-smi"],[13,14,"pl-smi"],[16,23,"pl-s1"],[26,29,"pl-k"],[30,34,"pl-smi"],[35,36,"pl-smi"],[38,39,"pl-s1"]],[],[[8,11,"pl-k"],[13,17,"pl-smi"],[18,19,"pl-smi"],[21,22,"pl-s1"],[25,29,"pl-s1"],[31,32,"pl-s1"],[35,36,"pl-s1"]],[[12,16,"pl-smi"],[17,18,"pl-smi"],[20,21,"pl-s1"],[24,25,"pl-s1"],[26,30,"pl-s1"]],[[12,14,"pl-k"],[16,17,"pl-s1"],[21,25,"pl-c1"]],[[16,33,"pl-c"]],[[16,18,"pl-k"],[20,21,"pl-s1"],[22,29,"pl-en"],[30,34,"pl-c1"],[36,43,"pl-s1"]],[[20,64,"pl-c"]],[[20,64,"pl-c"]],[[20,56,"pl-c"]],[[0,60,"pl-c"]],[[0,63,"pl-c"]],[[0,2,"pl-c"]],[[20,22,"pl-k"],[24,25,"pl-s1"],[29,30,"pl-s1"],[50,77,"pl-c"]],[[24,29,"pl-k"],[32,36,"pl-s1"],[40,41,"pl-s1"],[46,53,"pl-en"],[54,55,"pl-s1"],[57,64,"pl-s1"]],[[32,33,"pl-s1"],[36,40,"pl-s1"],[47,51,"pl-c1"]],[[32,39,"pl-s1"],[42,43,"pl-s1"],[44,48,"pl-s1"],[53,57,"pl-c1"],[61,81,"pl-c"]],[[32,39,"pl-s1"],[42,49,"pl-s1"],[50,54,"pl-s1"],[59,63,"pl-c1"],[67,74,"pl-s1"],[78,79,"pl-s1"]],[],[[20,26,"pl-k"],[27,31,"pl-c1"]],[],[[16,64,"pl-c"]],[],[[12,16,"pl-k"],[17,19,"pl-k"],[21,22,"pl-s1"],[26,27,"pl-s1"]],[[16,69,"pl-c"]],[[16,66,"pl-c"]],[[16,69,"pl-c"]],[[16,65,"pl-c"]],[[16,17,"pl-s1"],[21,22,"pl-s1"],[27,28,"pl-s1"],[31,35,"pl-s1"],[40,41,"pl-s1"],[44,48,"pl-s1"]],[[12,16,"pl-k"]],[[16,57,"pl-c"]],[[16,17,"pl-s1"],[21,22,"pl-s1"],[26,27,"pl-s1"],[31,32,"pl-s1"],[37,38,"pl-s1"],[41,45,"pl-s1"],[50,51,"pl-s1"],[54,55,"pl-s1"]],[],[],[],[[4,10,"pl-k"],[11,12,"pl-smi"],[13,17,"pl-en"]],[[8,23,"pl-s1"]],[[8,11,"pl-k"]],[[12,15,"pl-k"],[17,21,"pl-smi"],[22,23,"pl-smi"],[25,26,"pl-s1"],[29,33,"pl-s1"],[35,36,"pl-s1"],[39,40,"pl-s1"],[42,43,"pl-s1"]],[[16,17,"pl-smi"],[18,22,"pl-s1"],[25,26,"pl-s1"],[27,31,"pl-s1"]],[],[[16,18,"pl-k"],[20,24,"pl-s1"],[28,32,"pl-c1"],[36,37,"pl-s1"],[38,45,"pl-en"],[46,50,"pl-s1"],[52,56,"pl-c1"]],[[20,64,"pl-c"]],[[20,62,"pl-c"]],[[0,60,"pl-c"]],[[0,70,"pl-c"]],[[0,2,"pl-c"]],[],[[20,23,"pl-k"],[25,29,"pl-smi"],[30,31,"pl-smi"],[33,34,"pl-s1"],[37,38,"pl-s1"],[40,41,"pl-s1"],[45,46,"pl-s1"],[51,77,"pl-c"]],[[21,25,"pl-smi"],[26,27,"pl-smi"],[29,30,"pl-s1"],[33,34,"pl-s1"],[35,39,"pl-s1"],[42,73,"pl-c"]],[[24,26,"pl-k"],[28,32,"pl-s1"],[36,37,"pl-s1"],[41,48,"pl-en"],[49,50,"pl-s1"],[52,53,"pl-s1"],[57,61,"pl-c1"],[64,65,"pl-s1"],[68,69,"pl-s1"]],[[28,29,"pl-s1"],[30,41,"pl-en"],[42,43,"pl-s1"]],[[28,33,"pl-k"]],[[42,62,"pl-c"]],[[24,26,"pl-k"],[29,30,"pl-s1"],[33,37,"pl-s1"],[42,46,"pl-c1"]],[[30,31,"pl-s1"],[34,35,"pl-s1"],[36,40,"pl-s1"],[44,48,"pl-c1"],[52,53,"pl-s1"],[54,58,"pl-s1"],[62,66,"pl-c1"]],[[28,33,"pl-k"],[42,61,"pl-c"]],[],[[20,26,"pl-k"],[27,31,"pl-s1"]],[],[[16,20,"pl-k"],[21,23,"pl-k"],[26,27,"pl-s1"],[30,31,"pl-s1"],[32,36,"pl-s1"],[41,45,"pl-c1"]],[[20,30,"pl-en"],[31,32,"pl-s1"],[34,35,"pl-s1"]],[[20,26,"pl-k"],[27,31,"pl-c1"]],[],[[16,20,"pl-k"],[21,23,"pl-k"],[25,26,"pl-s1"],[30,31,"pl-s1"]],[[20,28,"pl-k"],[29,44,"pl-s1"]],[[16,20,"pl-k"]],[[20,21,"pl-s1"],[24,25,"pl-s1"]],[],[],[],[],[[4,10,"pl-k"],[11,12,"pl-smi"],[13,17,"pl-en"]],[[8,23,"pl-s1"]],[[8,11,"pl-k"]],[[12,15,"pl-k"],[17,21,"pl-smi"],[22,23,"pl-smi"],[25,26,"pl-s1"],[29,33,"pl-s1"],[35,36,"pl-s1"],[39,40,"pl-s1"],[42,43,"pl-s1"]],[[16,17,"pl-smi"],[18,22,"pl-s1"],[25,26,"pl-s1"],[27,31,"pl-s1"]],[[16,18,"pl-k"],[20,24,"pl-s1"],[28,32,"pl-c1"],[37,38,"pl-s1"],[41,42,"pl-s1"],[43,47,"pl-s1"],[52,56,"pl-c1"]],[[20,30,"pl-en"],[31,32,"pl-s1"],[34,35,"pl-s1"]],[[20,26,"pl-k"],[27,31,"pl-s1"]],[],[[16,20,"pl-k"],[21,23,"pl-k"],[25,26,"pl-s1"],[30,31,"pl-s1"]],[[20,28,"pl-k"],[29,44,"pl-s1"]],[[16,20,"pl-k"]],[[20,21,"pl-s1"],[24,25,"pl-s1"]],[],[],[],[],[[4,7,"pl-c"]],[[0,74,"pl-c"]],[[0,67,"pl-c"]],[[0,70,"pl-c"]],[[0,67,"pl-c"]],[[0,68,"pl-c"]],[[0,47,"pl-c"]],[[0,7,"pl-c"]],[[4,8,"pl-smi"],[9,10,"pl-smi"],[12,17,"pl-en"]],[[8,23,"pl-s1"]],[[8,11,"pl-k"]],[[12,15,"pl-k"],[17,21,"pl-smi"],[22,23,"pl-smi"],[25,26,"pl-s1"],[29,33,"pl-s1"],[35,36,"pl-s1"],[39,40,"pl-s1"],[42,43,"pl-s1"]],[[16,23,"pl-smi"],[24,31,"pl-s1"],[35,36,"pl-s1"],[37,41,"pl-s1"],[45,49,"pl-c1"]],[[16,18,"pl-k"],[20,27,"pl-s1"],[32,33,"pl-s1"],[36,37,"pl-s1"],[38,42,"pl-s1"],[47,51,"pl-c1"]],[[20,30,"pl-en"],[31,32,"pl-s1"],[34,35,"pl-s1"]],[[20,26,"pl-k"],[27,34,"pl-s1"],[37,38,"pl-s1"],[41,45,"pl-c1"]],[],[[16,20,"pl-k"],[21,23,"pl-k"],[25,26,"pl-s1"],[30,31,"pl-s1"]],[[20,28,"pl-k"],[29,44,"pl-s1"]],[[16,20,"pl-k"]],[[20,21,"pl-s1"],[24,25,"pl-s1"]],[],[],[],[],[[4,7,"pl-c"]],[[0,63,"pl-c"]],[[0,6,"pl-c"]],[[0,62,"pl-c"]],[[0,7,"pl-c"]],[[4,10,"pl-k"],[11,18,"pl-smi"],[19,26,"pl-en"]],[[8,14,"pl-k"],[15,20,"pl-en"],[26,30,"pl-c1"]],[],[],[[4,7,"pl-c"]],[[0,67,"pl-c"]],[[0,69,"pl-c"]],[[0,33,"pl-c"]],[[0,6,"pl-c"]],[[0,65,"pl-c"]],[[0,61,"pl-c"]],[[0,67,"pl-c"]],[[0,53,"pl-c"]],[[0,70,"pl-c"]],[[0,68,"pl-c"]],[[0,61,"pl-c"]],[[0,20,"pl-c"]],[[0,6,"pl-c"]],[[0,51,"pl-c"]],[[0,7,"pl-c"]],[[4,10,"pl-k"],[11,14,"pl-smi"],[15,19,"pl-en"]],[[8,11,"pl-smi"],[12,17,"pl-s1"],[20,21,"pl-c1"]],[[8,11,"pl-k"],[13,17,"pl-smi"],[18,19,"pl-smi"],[21,22,"pl-s1"],[25,30,"pl-en"],[34,35,"pl-s1"],[39,43,"pl-c1"],[45,46,"pl-s1"],[49,53,"pl-en"],[54,55,"pl-s1"]],[[12,14,"pl-k"],[16,17,"pl-s1"],[18,22,"pl-s1"],[26,30,"pl-c1"]],[[16,57,"pl-c"]],[[16,18,"pl-k"],[22,27,"pl-s1"],[31,38,"pl-smi"],[39,48,"pl-c1"]],[[20,25,"pl-k"]],[[8,14,"pl-k"],[15,20,"pl-s1"]],[],[],[[4,7,"pl-c"]],[[0,73,"pl-c"]],[[0,77,"pl-c"]],[[0,68,"pl-c"]],[[0,6,"pl-c"]],[[0,66,"pl-c"]],[[0,72,"pl-c"]],[[0,7,"pl-c"]],[[4,10,"pl-k"],[11,18,"pl-smi"],[19,27,"pl-en"],[28,34,"pl-smi"],[35,36,"pl-s1"]],[[8,10,"pl-k"],[12,13,"pl-s1"],[17,21,"pl-c1"],[23,29,"pl-k"],[30,35,"pl-c1"]],[[8,11,"pl-k"],[13,17,"pl-smi"],[18,19,"pl-smi"],[21,22,"pl-s1"],[25,30,"pl-en"],[34,35,"pl-s1"],[39,43,"pl-c1"],[45,46,"pl-s1"],[49,53,"pl-en"],[54,55,"pl-s1"]],[[12,13,"pl-smi"],[14,18,"pl-s1"],[21,22,"pl-s1"],[23,27,"pl-s1"]],[[12,14,"pl-k"],[16,20,"pl-s1"],[24,28,"pl-c1"],[32,33,"pl-s1"],[34,40,"pl-en"],[41,45,"pl-s1"]],[[16,22,"pl-k"],[23,27,"pl-c1"]],[],[[8,14,"pl-k"],[15,20,"pl-c1"]],[],[],[[4,7,"pl-c"]],[[0,74,"pl-c"]],[[0,74,"pl-c"]],[[0,72,"pl-c"]],[[0,16,"pl-c"]],[[0,73,"pl-c"]],[[0,72,"pl-c"]],[[0,6,"pl-c"]],[[0,65,"pl-c"]],[[0,73,"pl-c"]],[[0,7,"pl-c"]],[[4,10,"pl-k"],[11,18,"pl-smi"],[19,25,"pl-en"],[26,32,"pl-smi"],[33,34,"pl-s1"]],[[8,10,"pl-k"],[12,13,"pl-s1"],[17,21,"pl-c1"],[23,29,"pl-k"],[30,35,"pl-c1"]],[[8,12,"pl-smi"],[13,14,"pl-smi"],[16,20,"pl-s1"],[23,27,"pl-c1"]],[[8,11,"pl-k"],[13,17,"pl-smi"],[18,19,"pl-smi"],[21,22,"pl-s1"],[25,30,"pl-en"],[34,35,"pl-s1"],[39,43,"pl-c1"],[45,46,"pl-s1"],[49,53,"pl-en"],[54,55,"pl-s1"]],[[12,13,"pl-smi"],[14,18,"pl-s1"],[21,22,"pl-s1"],[23,27,"pl-s1"]],[[12,14,"pl-k"],[16,20,"pl-s1"],[24,28,"pl-c1"]],[[16,17,"pl-s1"],[18,24,"pl-en"],[25,29,"pl-s1"]],[[16,17,"pl-s1"],[18,25,"pl-en"],[26,30,"pl-s1"],[32,36,"pl-c1"]],[[16,20,"pl-smi"],[21,22,"pl-smi"],[24,28,"pl-s1"],[31,35,"pl-en"],[36,37,"pl-s1"]],[[16,18,"pl-k"],[20,24,"pl-s1"],[28,32,"pl-c1"],[36,40,"pl-s1"],[44,48,"pl-c1"]],[[20,24,"pl-s1"],[25,32,"pl-en"],[33,34,"pl-s1"],[36,40,"pl-s1"]],[[16,22,"pl-k"],[23,27,"pl-c1"]],[],[[12,16,"pl-s1"],[19,20,"pl-s1"]],[],[[8,14,"pl-k"],[15,20,"pl-c1"]],[],[],[[4,7,"pl-c"]],[[0,76,"pl-c"]],[[0,71,"pl-c"]],[[0,71,"pl-c"]],[[0,57,"pl-c"]],[[0,6,"pl-c"]],[[0,59,"pl-c"]],[[0,73,"pl-c"]],[[0,70,"pl-c"]],[[0,39,"pl-c"]],[[0,71,"pl-c"]],[[0,7,"pl-c"]],[[4,10,"pl-k"],[11,18,"pl-smi"],[19,25,"pl-en"],[26,36,"pl-smi"],[39,46,"pl-k"],[47,48,"pl-smi"],[50,51,"pl-s1"]],[[8,10,"pl-k"],[12,13,"pl-s1"],[17,21,"pl-smi"]],[[12,64,"pl-c"]],[[12,17,"pl-k"],[18,21,"pl-k"],[22,46,"pl-smi"]],[],[[8,47,"pl-c"]],[[8,12,"pl-smi"],[13,14,"pl-smi"],[16,33,"pl-s1"],[36,40,"pl-c1"],[42,46,"pl-s1"],[49,53,"pl-c1"]],[[8,11,"pl-k"],[13,14,"pl-smi"],[15,16,"pl-s1"],[19,20,"pl-s1"]],[[12,24,"pl-en"],[25,26,"pl-s1"]],[[12,16,"pl-smi"],[17,18,"pl-smi"],[20,27,"pl-s1"],[30,33,"pl-k"],[34,38,"pl-smi"],[39,40,"pl-smi"],[42,43,"pl-s1"]],[[12,14,"pl-k"],[16,33,"pl-s1"],[37,41,"pl-c1"]],[[16,33,"pl-s1"],[36,40,"pl-s1"],[43,50,"pl-s1"]],[[12,16,"pl-k"]],[[16,20,"pl-s1"],[21,32,"pl-en"],[33,40,"pl-s1"]],[[16,20,"pl-s1"],[23,30,"pl-s1"]],[],[],[[8,10,"pl-k"],[12,29,"pl-s1"],[33,37,"pl-c1"]],[[12,18,"pl-k"],[19,24,"pl-c1"]],[],[[8,69,"pl-c"]],[[8,11,"pl-k"],[13,17,"pl-smi"],[18,19,"pl-smi"],[21,22,"pl-s1"],[25,29,"pl-s1"],[31,32,"pl-s1"],[35,36,"pl-s1"]],[[12,16,"pl-smi"],[17,18,"pl-smi"],[20,21,"pl-s1"],[24,25,"pl-s1"],[26,30,"pl-s1"]],[[12,14,"pl-k"],[16,17,"pl-s1"],[21,25,"pl-c1"]],[[16,33,"pl-c"]],[[16,18,"pl-k"],[20,21,"pl-s1"],[22,29,"pl-en"],[30,34,"pl-c1"],[36,53,"pl-s1"]],[[20,64,"pl-c"]],[[20,66,"pl-c"]],[[20,22,"pl-k"],[25,32,"pl-en"],[33,34,"pl-s1"],[36,40,"pl-s1"]],[[24,62,"pl-c"]],[[24,64,"pl-c"]],[[24,25,"pl-s1"],[28,32,"pl-s1"]],[[24,26,"pl-k"],[28,32,"pl-s1"],[33,37,"pl-s1"],[41,45,"pl-c1"]],[[28,35,"pl-en"],[36,37,"pl-s1"],[39,43,"pl-s1"]],[],[[20,26,"pl-k"],[27,31,"pl-c1"]],[],[[16,64,"pl-c"]],[],[[12,16,"pl-k"],[17,19,"pl-k"],[21,22,"pl-s1"],[26,27,"pl-s1"]],[[16,69,"pl-c"]],[[16,66,"pl-c"]],[[16,69,"pl-c"]],[[16,65,"pl-c"]],[[16,17,"pl-s1"],[21,22,"pl-s1"],[27,28,"pl-s1"],[31,35,"pl-s1"],[40,41,"pl-s1"],[44,48,"pl-s1"]],[[12,16,"pl-k"]],[[16,57,"pl-c"]],[[16,17,"pl-s1"],[21,22,"pl-s1"],[26,27,"pl-s1"],[31,32,"pl-s1"],[37,38,"pl-s1"],[41,45,"pl-s1"],[50,51,"pl-s1"],[54,55,"pl-s1"]],[],[],[],[[4,7,"pl-c"]],[[0,72,"pl-c"]],[[0,23,"pl-c"]],[[0,6,"pl-c"]],[[0,75,"pl-c"]],[[0,76,"pl-c"]],[[0,75,"pl-c"]],[[0,6,"pl-c"]],[[0,77,"pl-c"]],[[0,12,"pl-c"]],[[0,6,"pl-c"]],[[0,68,"pl-c"]],[[0,7,"pl-c"]],[[4,10,"pl-k"],[11,17,"pl-smi"],[20,27,"pl-en"]],[[8,47,"pl-c"]],[[8,17,"pl-smi"],[18,19,"pl-smi"],[21,23,"pl-s1"],[26,29,"pl-k"],[30,39,"pl-smi"],[40,41,"pl-smi"]],[[8,11,"pl-k"],[13,17,"pl-smi"],[18,19,"pl-smi"],[21,22,"pl-s1"],[25,30,"pl-en"],[34,35,"pl-s1"],[39,43,"pl-c1"],[45,46,"pl-s1"],[49,53,"pl-en"],[54,55,"pl-s1"]],[[12,13,"pl-smi"],[14,18,"pl-s1"],[21,22,"pl-s1"],[23,27,"pl-s1"]],[[12,14,"pl-k"],[16,20,"pl-s1"],[24,28,"pl-c1"]],[[16,18,"pl-s1"],[19,22,"pl-en"],[23,27,"pl-s1"]],[],[[8,14,"pl-k"],[15,17,"pl-s1"],[18,25,"pl-en"]],[],[],[[4,7,"pl-c"]],[[0,72,"pl-c"]],[[0,73,"pl-c"]],[[0,73,"pl-c"]],[[0,73,"pl-c"]],[[0,70,"pl-c"]],[[0,6,"pl-c"]],[[0,70,"pl-c"]],[[0,74,"pl-c"]],[[0,69,"pl-c"]],[[0,20,"pl-c"]],[[0,6,"pl-c"]],[[0,80,"pl-c"]],[[0,74,"pl-c"]],[[0,74,"pl-c"]],[[0,69,"pl-c"]],[[0,6,"pl-c"]],[[0,69,"pl-c"]],[[0,68,"pl-c"]],[[0,41,"pl-c"]],[[0,6,"pl-c"]],[[0,66,"pl-c"]],[[0,6,"pl-c"]],[[0,75,"pl-c"]],[[0,25,"pl-c"]],[[0,6,"pl-c"]],[[0,69,"pl-c"]],[[0,77,"pl-c"]],[[0,63,"pl-c"]],[[0,68,"pl-c"]],[[0,77,"pl-c"]],[[0,73,"pl-c"]],[[0,25,"pl-c"]],[[0,66,"pl-c"]],[[0,7,"pl-c"]],[[4,5,"pl-c1"],[5,21,"pl-c1"],[22,33,"pl-s"]],[[4,10,"pl-k"],[12,13,"pl-smi"],[15,16,"pl-smi"],[19,26,"pl-en"],[27,28,"pl-smi"],[31,32,"pl-s1"]],[[8,35,"pl-c"]],[[8,11,"pl-smi"],[12,13,"pl-s1"],[16,17,"pl-c1"]],[[8,12,"pl-smi"],[13,14,"pl-smi"],[16,17,"pl-s1"]],[[8,11,"pl-k"],[13,14,"pl-s1"],[17,22,"pl-en"],[26,27,"pl-s1"],[31,35,"pl-c1"],[39,40,"pl-s1"],[43,44,"pl-s1"],[45,51,"pl-s1"],[53,54,"pl-s1"],[57,61,"pl-en"],[62,63,"pl-s1"]],[[12,13,"pl-smi"],[14,18,"pl-s1"],[21,22,"pl-s1"],[23,27,"pl-s1"]],[[12,14,"pl-k"],[16,20,"pl-s1"],[24,28,"pl-c1"]],[[16,17,"pl-s1"],[18,19,"pl-s1"],[26,27,"pl-smi"],[28,32,"pl-s1"]],[],[[8,10,"pl-k"],[12,13,"pl-s1"],[17,21,"pl-c1"]],[[12,14,"pl-k"],[16,17,"pl-s1"],[20,21,"pl-s1"],[22,28,"pl-s1"]],[[16,17,"pl-s1"],[18,19,"pl-s1"],[23,27,"pl-c1"]],[[12,18,"pl-k"],[19,20,"pl-s1"]],[],[],[[8,46,"pl-c"]],[[8,17,"pl-smi"],[18,19,"pl-smi"],[21,23,"pl-s1"],[26,29,"pl-k"],[30,39,"pl-smi"],[40,41,"pl-smi"]],[[8,11,"pl-k"],[13,17,"pl-smi"],[18,19,"pl-smi"],[21,22,"pl-s1"],[25,30,"pl-en"],[34,35,"pl-s1"],[39,43,"pl-c1"],[45,46,"pl-s1"],[49,53,"pl-en"],[54,55,"pl-s1"]],[[12,13,"pl-smi"],[14,18,"pl-s1"],[21,22,"pl-s1"],[23,27,"pl-s1"]],[[12,14,"pl-k"],[16,20,"pl-s1"],[24,28,"pl-c1"]],[[16,18,"pl-s1"],[19,22,"pl-en"],[23,27,"pl-s1"]],[],[[8,14,"pl-k"],[15,17,"pl-s1"],[18,25,"pl-en"],[26,27,"pl-s1"]],[],[],[[4,7,"pl-c"]],[[0,78,"pl-c"]],[[0,79,"pl-c"]],[[0,6,"pl-c"]],[[0,34,"pl-c"]],[[0,74,"pl-c"]],[[0,6,"pl-c"]],[[0,77,"pl-c"]],[[0,7,"pl-c"]],[[4,10,"pl-k"],[11,19,"pl-smi"],[20,21,"pl-smi"],[23,31,"pl-en"]],[[8,14,"pl-k"],[15,18,"pl-k"],[19,22,"pl-smi"]],[],[],[[4,11,"pl-k"],[12,17,"pl-k"],[18,21,"pl-smi"],[22,32,"pl-k"],[33,41,"pl-smi"],[42,43,"pl-smi"]],[[8,11,"pl-c"]],[[0,40,"pl-c"]],[[0,11,"pl-c"]],[[8,15,"pl-k"],[16,20,"pl-smi"],[21,22,"pl-smi"],[24,32,"pl-s1"]],[],[[8,11,"pl-c"]],[[0,65,"pl-c"]],[[0,68,"pl-c"]],[[0,69,"pl-c"]],[[0,51,"pl-c"]],[[0,11,"pl-c"]],[[8,15,"pl-k"],[16,17,"pl-smi"],[18,26,"pl-s1"]],[],[[8,11,"pl-c"]],[[0,61,"pl-c"]],[[0,11,"pl-c"]],[[8,15,"pl-k"],[16,20,"pl-smi"],[21,22,"pl-smi"],[24,31,"pl-s1"]],[],[[8,11,"pl-smi"]],[[12,19,"pl-en"]],[],[],[[8,11,"pl-c"]],[[0,66,"pl-c"]],[[0,38,"pl-c"]],[[0,11,"pl-c"]],[[8,15,"pl-k"],[16,17,"pl-smi"],[18,25,"pl-en"]],[[12,19,"pl-s1"],[22,30,"pl-s1"]],[[12,13,"pl-smi"],[14,15,"pl-s1"],[18,26,"pl-s1"]],[],[[12,16,"pl-smi"],[17,18,"pl-smi"],[20,24,"pl-s1"],[26,27,"pl-s1"]],[[12,14,"pl-k"],[16,24,"pl-s1"],[28,32,"pl-c1"]],[[16,17,"pl-s1"],[20,25,"pl-en"]],[[16,20,"pl-s1"],[23,27,"pl-c1"]],[[14,18,"pl-k"]],[[16,20,"pl-s1"],[23,31,"pl-s1"]],[[16,17,"pl-s1"],[20,24,"pl-en"],[25,33,"pl-s1"]],[],[],[[12,15,"pl-k"]],[[16,18,"pl-k"],[20,21,"pl-s1"],[25,29,"pl-c1"]],[[20,28,"pl-s1"],[31,35,"pl-c1"]],[[20,28,"pl-s1"],[31,35,"pl-c1"]],[[20,26,"pl-k"],[27,28,"pl-s1"]],[],[[16,17,"pl-smi"],[18,22,"pl-s1"],[25,26,"pl-s1"],[27,31,"pl-s1"]],[[16,18,"pl-k"],[20,24,"pl-s1"],[28,32,"pl-c1"]],[[20,28,"pl-s1"],[31,32,"pl-s1"]],[[20,28,"pl-s1"],[31,35,"pl-s1"]],[[20,26,"pl-k"],[27,28,"pl-s1"]],[[18,22,"pl-k"]],[[20,38,"pl-c"]],[[20,24,"pl-smi"],[25,26,"pl-smi"],[28,32,"pl-s1"],[35,39,"pl-en"],[40,41,"pl-s1"]],[[20,22,"pl-k"],[24,28,"pl-s1"],[32,36,"pl-c1"],[40,44,"pl-s1"],[48,52,"pl-c1"]],[[24,28,"pl-s1"],[29,36,"pl-en"],[37,38,"pl-s1"],[40,44,"pl-s1"]],[[20,21,"pl-s1"],[24,28,"pl-s1"]],[],[],[],[],[[8,14,"pl-k"],[15,22,"pl-smi"],[23,30,"pl-en"]],[[12,18,"pl-k"],[19,27,"pl-s1"],[31,35,"pl-c1"]],[],[],[[8,14,"pl-k"],[15,16,"pl-smi"],[17,21,"pl-en"]],[[12,14,"pl-k"],[16,24,"pl-s1"],[28,32,"pl-c1"],[34,39,"pl-k"],[40,43,"pl-k"],[44,66,"pl-smi"]],[[12,18,"pl-k"],[19,26,"pl-en"]],[],[],[[8,14,"pl-k"],[15,19,"pl-smi"],[20,26,"pl-en"]],[[12,16,"pl-smi"],[17,18,"pl-smi"],[20,21,"pl-s1"],[24,31,"pl-s1"]],[[12,14,"pl-k"],[16,17,"pl-s1"],[21,25,"pl-c1"],[27,32,"pl-k"],[33,36,"pl-k"],[37,58,"pl-smi"]],[[12,52,"pl-c"]],[[12,13,"pl-s1"],[14,18,"pl-s1"],[21,25,"pl-c1"]],[[12,19,"pl-s1"],[22,26,"pl-c1"]],[],[],[],[[4,7,"pl-c"]],[[0,61,"pl-c"]],[[0,6,"pl-c"]],[[0,26,"pl-c"]],[[0,57,"pl-c"]],[[0,61,"pl-c"]],[[0,43,"pl-c"]],[[0,7,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-smi"],[17,28,"pl-en"],[29,33,"pl-smi"],[34,36,"pl-smi"],[37,55,"pl-smi"],[56,57,"pl-s1"]],[[8,14,"pl-k"],[15,19,"pl-smi"],[20,22,"pl-smi"],[23,34,"pl-smi"]],[],[[8,37,"pl-c"]],[[8,9,"pl-s1"],[10,28,"pl-en"]],[],[[8,54,"pl-c"]],[[8,11,"pl-k"],[13,17,"pl-smi"],[18,19,"pl-smi"],[21,22,"pl-s1"],[25,30,"pl-en"],[34,35,"pl-s1"],[39,43,"pl-c1"],[45,46,"pl-s1"],[49,53,"pl-en"],[54,55,"pl-s1"]],[[12,18,"pl-smi"],[19,23,"pl-s1"],[26,27,"pl-s1"],[28,32,"pl-s1"]],[[12,14,"pl-k"],[16,20,"pl-s1"],[24,28,"pl-c1"]],[[16,17,"pl-s1"],[18,29,"pl-en"],[30,34,"pl-s1"]],[],[],[[8,40,"pl-c"]],[[8,9,"pl-s1"],[10,21,"pl-en"],[22,26,"pl-c1"]],[],[],[[4,7,"pl-c"]],[[0,73,"pl-c"]],[[0,26,"pl-c"]],[[0,73,"pl-c"]],[[0,33,"pl-c"]],[[0,57,"pl-c"]],[[0,7,"pl-c"]],[[4,11,"pl-k"],[12,16,"pl-smi"],[17,27,"pl-en"],[28,32,"pl-smi"],[33,35,"pl-smi"],[36,53,"pl-smi"],[54,55,"pl-s1"]],[[8,14,"pl-k"],[15,19,"pl-smi"],[20,22,"pl-smi"],[23,34,"pl-smi"],[36,58,"pl-smi"]],[[8,9,"pl-s1"],[10,27,"pl-en"]],[],[[8,62,"pl-c"]],[[8,12,"pl-smi"],[13,14,"pl-smi"],[16,17,"pl-s1"],[20,24,"pl-c1"],[26,27,"pl-s1"],[30,34,"pl-c1"]],[[8,14,"pl-smi"],[15,19,"pl-s1"]],[[8,13,"pl-k"],[16,20,"pl-s1"],[23,24,"pl-s1"],[25,35,"pl-en"],[42,46,"pl-c1"]],[[12,13,"pl-c1"],[13,29,"pl-c1"],[30,41,"pl-s"]],[[12,16,"pl-smi"],[17,18,"pl-smi"],[20,27,"pl-s1"],[30,33,"pl-k"],[34,38,"pl-smi"],[39,40,"pl-smi"],[43,44,"pl-smi"],[46,50,"pl-s1"]],[[12,14,"pl-k"],[16,17,"pl-s1"],[21,25,"pl-c1"]],[[16,17,"pl-s1"],[20,21,"pl-s1"],[24,31,"pl-s1"]],[[12,16,"pl-k"]],[[16,17,"pl-s1"],[18,29,"pl-en"],[30,37,"pl-s1"]],[[16,17,"pl-s1"],[20,27,"pl-s1"]],[],[],[[8,10,"pl-k"],[12,13,"pl-s1"],[17,21,"pl-c1"]],[[12,13,"pl-s1"],[16,17,"pl-s1"],[20,23,"pl-k"],[24,28,"pl-smi"],[29,30,"pl-smi"],[32,36,"pl-c1"]],[[8,12,"pl-s1"],[15,16,"pl-s1"]],[[8,12,"pl-s1"],[15,16,"pl-s1"]],[],[],[[4,67,"pl-c"]],[[4,10,"pl-k"],[11,16,"pl-k"],[17,22,"pl-k"],[23,37,"pl-smi"],[38,39,"pl-smi"],[41,51,"pl-k"],[52,63,"pl-smi"],[64,65,"pl-smi"]],[[8,14,"pl-k"],[15,20,"pl-k"],[21,24,"pl-smi"],[25,34,"pl-c1"],[37,38,"pl-c1"],[42,44,"pl-c1"],[47,71,"pl-c"]],[[8,13,"pl-k"],[14,35,"pl-smi"],[36,37,"pl-smi"],[39,44,"pl-s1"]],[[8,12,"pl-smi"],[13,14,"pl-smi"],[16,23,"pl-s1"],[28,67,"pl-c"]],[[8,11,"pl-smi"],[12,17,"pl-s1"],[28,52,"pl-c"]],[[8,15,"pl-smi"],[16,25,"pl-s1"],[28,54,"pl-c"]],[[8,22,"pl-smi"],[23,44,"pl-smi"],[45,46,"pl-smi"],[48,53,"pl-s1"]],[[12,16,"pl-smi"],[17,22,"pl-s1"],[25,30,"pl-s1"]],[],[],[[8,14,"pl-k"],[15,26,"pl-smi"],[27,28,"pl-smi"],[30,38,"pl-en"]],[[12,16,"pl-smi"],[17,18,"pl-smi"],[20,21,"pl-s1"]],[[12,17,"pl-k"],[18,39,"pl-smi"],[40,41,"pl-smi"],[43,44,"pl-s1"],[47,51,"pl-smi"],[52,57,"pl-s1"]],[[12,15,"pl-smi"],[16,17,"pl-s1"],[20,25,"pl-s1"]],[[12,15,"pl-smi"],[16,17,"pl-s1"],[21,22,"pl-s1"],[26,27,"pl-c1"],[31,32,"pl-c1"],[36,37,"pl-s1"],[41,50,"pl-c1"],[54,63,"pl-c1"],[66,67,"pl-s1"],[70,71,"pl-c1"]],[[12,14,"pl-k"],[17,26,"pl-s1"]],[[18,19,"pl-s1"],[22,29,"pl-s1"],[34,38,"pl-c1"],[43,44,"pl-s1"],[47,48,"pl-s1"],[49,54,"pl-en"],[61,65,"pl-c1"]],[[16,17,"pl-s1"],[18,22,"pl-s1"],[26,30,"pl-c1"]],[[16,22,"pl-smi"],[25,26,"pl-s1"],[29,32,"pl-k"],[33,39,"pl-smi"],[40,41,"pl-s1"]],[[16,19,"pl-smi"],[20,21,"pl-s1"],[24,25,"pl-c1"]],[[16,18,"pl-k"]],[[20,22,"pl-k"],[25,26,"pl-s1"],[27,28,"pl-s1"],[32,33,"pl-s1"],[34,38,"pl-s1"],[43,47,"pl-c1"]],[[26,27,"pl-s1"]],[[20,22,"pl-k"],[24,25,"pl-s1"],[30,31,"pl-s1"],[34,35,"pl-s1"],[36,40,"pl-s1"]],[[24,25,"pl-s1"],[28,29,"pl-s1"],[30,35,"pl-en"]],[[18,23,"pl-k"],[25,26,"pl-s1"],[30,34,"pl-c1"],[38,39,"pl-s1"],[42,43,"pl-s1"]],[[16,18,"pl-k"],[21,28,"pl-s1"],[31,32,"pl-s1"],[37,41,"pl-c1"]],[[20,29,"pl-s1"],[32,36,"pl-c1"]],[[16,18,"pl-k"],[20,21,"pl-s1"],[24,25,"pl-c1"]],[[20,25,"pl-s1"],[28,29,"pl-s1"]],[[20,26,"pl-k"],[27,39,"pl-smi"],[40,51,"pl-en"]],[[25,26,"pl-s1"],[28,29,"pl-c1"],[31,32,"pl-s1"],[34,45,"pl-smi"],[46,53,"pl-c1"],[56,67,"pl-smi"],[68,75,"pl-c1"]],[[25,36,"pl-smi"],[37,47,"pl-c1"]],[],[],[[12,18,"pl-k"],[19,23,"pl-c1"]],[],[],[[8,14,"pl-k"],[15,19,"pl-smi"],[20,36,"pl-en"],[37,45,"pl-smi"],[48,53,"pl-en"],[54,55,"pl-smi"],[57,63,"pl-s1"]],[[12,16,"pl-smi"],[17,18,"pl-smi"],[20,21,"pl-s1"]],[[12,14,"pl-k"],[16,22,"pl-s1"],[26,30,"pl-c1"],[32,37,"pl-k"],[38,41,"pl-k"],[42,62,"pl-smi"]],[[12,17,"pl-k"],[18,39,"pl-smi"],[40,41,"pl-smi"],[43,44,"pl-s1"],[47,51,"pl-smi"],[52,57,"pl-s1"]],[[12,14,"pl-k"],[17,26,"pl-s1"]],[[18,19,"pl-s1"],[22,29,"pl-s1"],[34,38,"pl-c1"],[43,44,"pl-s1"],[47,48,"pl-s1"],[49,54,"pl-en"],[61,65,"pl-c1"]],[[16,25,"pl-s1"],[28,32,"pl-c1"]],[[16,18,"pl-k"]],[[20,21,"pl-smi"],[22,23,"pl-s1"],[26,27,"pl-s1"],[28,32,"pl-s1"]],[[20,22,"pl-k"],[24,25,"pl-s1"],[30,31,"pl-s1"],[34,35,"pl-s1"],[36,40,"pl-s1"]],[[24,25,"pl-s1"],[28,29,"pl-s1"],[30,35,"pl-en"]],[[20,22,"pl-k"],[24,25,"pl-s1"],[29,33,"pl-c1"]],[[24,30,"pl-s1"],[31,37,"pl-en"],[38,39,"pl-s1"]],[[18,23,"pl-k"],[25,26,"pl-s1"],[30,34,"pl-c1"]],[],[],[],[[8,14,"pl-k"],[15,22,"pl-smi"],[23,33,"pl-en"],[34,42,"pl-smi"],[45,50,"pl-en"],[51,52,"pl-smi"],[54,60,"pl-s1"]],[[12,16,"pl-smi"],[17,18,"pl-smi"],[20,21,"pl-s1"]],[[12,14,"pl-k"],[16,22,"pl-s1"],[26,30,"pl-c1"],[32,37,"pl-k"],[38,41,"pl-k"],[42,62,"pl-smi"]],[[12,17,"pl-k"],[18,39,"pl-smi"],[40,41,"pl-smi"],[43,44,"pl-s1"],[47,51,"pl-smi"],[52,57,"pl-s1"]],[[12,14,"pl-k"],[17,26,"pl-s1"]],[[18,19,"pl-s1"],[22,29,"pl-s1"],[34,38,"pl-c1"],[43,44,"pl-s1"],[47,48,"pl-s1"],[49,54,"pl-en"],[61,65,"pl-c1"]],[[16,17,"pl-smi"],[18,19,"pl-s1"]],[[16,18,"pl-k"]],[[20,21,"pl-s1"],[24,25,"pl-s1"],[26,30,"pl-s1"]],[[20,22,"pl-k"],[24,25,"pl-s1"],[30,31,"pl-s1"],[34,35,"pl-s1"],[36,40,"pl-s1"]],[[24,25,"pl-s1"],[28,29,"pl-s1"],[30,35,"pl-en"]],[[18,23,"pl-k"],[25,26,"pl-s1"],[30,34,"pl-c1"],[38,39,"pl-s1"],[43,47,"pl-c1"]],[[16,18,"pl-k"],[21,28,"pl-s1"],[31,32,"pl-s1"],[37,41,"pl-c1"]],[[20,29,"pl-s1"],[32,36,"pl-c1"]],[[16,18,"pl-k"],[20,21,"pl-s1"],[25,29,"pl-c1"]],[[20,26,"pl-s1"],[27,33,"pl-en"],[34,35,"pl-s1"]],[[20,26,"pl-k"],[27,31,"pl-c1"]],[],[],[[12,18,"pl-k"],[19,24,"pl-c1"]],[],[],[[8,14,"pl-k"],[15,19,"pl-smi"],[20,32,"pl-en"],[37,43,"pl-k"],[44,48,"pl-smi"],[49,58,"pl-c1"]],[],[[8,14,"pl-k"],[15,18,"pl-smi"],[19,34,"pl-en"]],[[12,18,"pl-k"],[19,30,"pl-smi"],[31,38,"pl-c1"],[41,52,"pl-smi"],[53,60,"pl-c1"]],[[16,27,"pl-smi"],[28,38,"pl-c1"]],[],[],[],[[4,7,"pl-c"]],[[0,69,"pl-c"]],[[0,6,"pl-c"]],[[0,37,"pl-c"]],[[0,74,"pl-c"]],[[0,6,"pl-c"]],[[0,73,"pl-c"]],[[0,68,"pl-c"]],[[0,6,"pl-c"]],[[0,16,"pl-c"]],[[0,76,"pl-c"]],[[0,19,"pl-c"]],[[0,6,"pl-c"]],[[0,68,"pl-c"]],[[0,17,"pl-c"]],[[0,7,"pl-c"]],[[4,5,"pl-c1"],[5,13,"pl-c1"]],[[4,10,"pl-k"],[11,22,"pl-smi"],[23,24,"pl-smi"],[26,37,"pl-en"]],[[8,14,"pl-k"],[15,18,"pl-k"],[19,33,"pl-smi"],[34,35,"pl-smi"],[37,41,"pl-smi"]],[],[],[[4,7,"pl-c"]],[[0,55,"pl-c"]],[[0,6,"pl-c"]],[[0,27,"pl-c"]],[[0,7,"pl-c"]],[[4,11,"pl-k"],[12,18,"pl-k"],[19,23,"pl-smi"],[24,36,"pl-en"],[37,43,"pl-smi"],[44,45,"pl-s1"]],[[8,10,"pl-k"],[12,13,"pl-s1"],[17,21,"pl-c1"]],[[12,17,"pl-k"],[18,21,"pl-k"],[22,42,"pl-smi"]],[],[],[[4,11,"pl-k"],[12,19,"pl-smi"],[20,27,"pl-en"],[28,32,"pl-smi"],[33,34,"pl-smi"],[36,39,"pl-s1"],[41,45,"pl-smi"],[46,47,"pl-smi"],[49,52,"pl-s1"]],[[8,14,"pl-k"],[15,21,"pl-c1"],[22,42,"pl-en"],[43,47,"pl-smi"],[49,59,"pl-s1"],[61,64,"pl-s1"],[66,69,"pl-s1"]],[],[],[[4,11,"pl-k"],[12,19,"pl-smi"],[20,27,"pl-en"],[28,32,"pl-smi"],[33,34,"pl-smi"],[36,39,"pl-s1"],[41,45,"pl-smi"],[46,47,"pl-smi"],[49,52,"pl-s1"]],[[8,14,"pl-k"],[15,21,"pl-c1"],[22,42,"pl-en"],[43,47,"pl-smi"],[49,59,"pl-s1"],[61,64,"pl-s1"],[66,69,"pl-s1"]],[],[],[[4,23,"pl-c"]],[],[[4,11,"pl-k"],[12,18,"pl-k"],[19,24,"pl-k"],[25,28,"pl-smi"],[29,33,"pl-smi"],[34,40,"pl-smi"],[41,47,"pl-c1"]],[[4,11,"pl-k"],[12,18,"pl-k"],[19,24,"pl-k"],[25,29,"pl-smi"],[30,40,"pl-s1"]],[[4,11,"pl-k"],[12,18,"pl-k"],[19,24,"pl-k"],[25,29,"pl-smi"],[30,40,"pl-s1"]],[[4,10,"pl-k"]],[[8,11,"pl-k"]],[[12,18,"pl-c1"],[21,34,"pl-smi"],[35,52,"pl-en"]],[[12,17,"pl-smi"],[21,22,"pl-s1"],[25,46,"pl-smi"],[47,52,"pl-k"]],[[12,22,"pl-s1"],[25,31,"pl-c1"],[32,49,"pl-en"]],[[17,18,"pl-s1"],[19,35,"pl-en"],[36,42,"pl-s"]],[[12,22,"pl-s1"],[25,31,"pl-c1"],[32,49,"pl-en"]],[[17,18,"pl-s1"],[19,35,"pl-en"],[36,42,"pl-s"]],[[10,15,"pl-k"],[17,26,"pl-smi"],[27,28,"pl-s1"]],[[12,17,"pl-k"],[18,21,"pl-k"],[22,27,"pl-smi"],[28,29,"pl-s1"]],[],[],[]],"colorizedLines":null}},"title":"PslyAlgorithm/ConcurrentLinkedQueue.java at master · Pslydhh/PslyAlgorithm","appPayload":{},"meta":{"title":"PslyAlgorithm/ConcurrentLinkedQueue.java at master · Pslydhh/PslyAlgorithm"}}</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="/Pslydhh/PslyAlgorithm" 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="master 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">master</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="/Pslydhh/PslyAlgorithm/tree/master" data-discover="true">PslyAlgorithm</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">ConcurrentLinkedQueue.java</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="/Pslydhh/PslyAlgorithm/commits/master/ConcurrentLinkedQueue.java" 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="/Pslydhh/PslyAlgorithm/commits/master/ConcurrentLinkedQueue.java" 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 KB" style="--truncate-max-width:100%"><span>937 lines (870 loc) · 34 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="master 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">master</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="/Pslydhh/PslyAlgorithm/tree/master" data-discover="true">PslyAlgorithm</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">ConcurrentLinkedQueue.java</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 KB" style="--truncate-max-width:100%"><span>937 lines (870 loc) · 34 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/Pslydhh/PslyAlgorithm/raw/refs/heads/master/ConcurrentLinkedQueue.java" 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<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="82" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">82</div><div data-line-number="83" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">83</div><div data-line-number="84" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">84</div><div data-line-number="85" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">85</div><div data-line-number="86" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">86</div><div data-line-number="87" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">87</div><div data-line-number="88" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">88</div><div data-line-number="89" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">89</div><div data-line-number="90" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">90</div><div data-line-number="91" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">91</div><div data-line-number="92" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">92</div><div data-line-number="93" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">93</div><div data-line-number="94" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">94</div><div data-line-number="95" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">95</div><div data-line-number="96" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">96</div><div data-line-number="97" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">97</div><div data-line-number="98" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">98</div><div data-line-number="99" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">99</div><div data-line-number="100" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">100</div><div data-line-number="101" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">101</div><div data-line-number="102" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">102</div><div data-line-number="103" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">103</div><div data-line-number="104" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">104</div><div data-line-number="105" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">105</div><div data-line-number="106" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">106</div><div data-line-number="107" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">107</div><div data-line-number="108" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">108</div><div data-line-number="109" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">109</div><div data-line-number="110" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">110</div><div data-line-number="111" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">111</div><div data-line-number="112" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">112</div><div data-line-number="113" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">113</div><div data-line-number="114" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">114</div><div data-line-number="115" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">115</div><div data-line-number="116" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">116</div><div data-line-number="117" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">117</div><div data-line-number="118" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">118</div><div data-line-number="119" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">119</div><div data-line-number="120" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">120</div><div data-line-number="121" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">121</div><div data-line-number="122" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">122</div><div data-line-number="123" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">123</div><div data-line-number="124" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">124</div><div data-line-number="125" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">125</div><div data-line-number="126" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">126</div><div data-line-number="127" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">127</div><div data-line-number="128" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">128</div><div data-line-number="129" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">129</div><div data-line-number="130" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">130</div><div data-line-number="131" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">131</div><div data-line-number="132" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">132</div><div data-line-number="133" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">133</div><div data-line-number="134" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">134</div><div data-line-number="135" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">135</div><div data-line-number="136" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">136</div><div data-line-number="137" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">137</div><div data-line-number="138" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">138</div><div data-line-number="139" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">139</div><div data-line-number="140" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">140</div><div data-line-number="141" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">141</div><div data-line-number="142" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">142</div><div data-line-number="143" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">143</div><div data-line-number="144" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">144</div><div data-line-number="145" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">145</div><div data-line-number="146" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">146</div><div data-line-number="147" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">147</div><div data-line-number="148" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">148</div><div data-line-number="149" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">149</div><div data-line-number="150" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">150</div><div data-line-number="151" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">151</div><div data-line-number="152" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">152</div><div data-line-number="153" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">153</div><div data-line-number="154" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">154</div><div data-line-number="155" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">155</div><div data-line-number="156" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">156<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="157" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">157</div><div data-line-number="158" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">158</div><div data-line-number="159" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">159</div><div data-line-number="160" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">160</div><div data-line-number="161" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">161</div><div data-line-number="162" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">162</div><div data-line-number="163" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">163</div><div data-line-number="164" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">164</div><div data-line-number="165" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">165</div><div data-line-number="166" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">166</div><div data-line-number="167" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">167</div><div data-line-number="168" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">168</div><div data-line-number="169" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">169</div><div data-line-number="170" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">170</div><div data-line-number="171" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">171</div><div data-line-number="172" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">172</div><div data-line-number="173" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">173</div><div data-line-number="174" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">174</div><div data-line-number="175" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">175</div><div data-line-number="176" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">176</div><div data-line-number="177" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">177</div><div data-line-number="178" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">178</div><div data-line-number="179" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">179</div><div data-line-number="180" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">180</div><div data-line-number="181" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">181</div><div data-line-number="182" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">182</div><div data-line-number="183" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">183</div><div data-line-number="184" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">184</div><div data-line-number="185" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">185</div><div data-line-number="186" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">186</div><div data-line-number="187" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">187</div><div data-line-number="188" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">188</div><div data-line-number="189" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">189</div><div data-line-number="190" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">190</div><div data-line-number="191" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">191</div><div data-line-number="192" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">192</div><div data-line-number="193" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">193</div><div data-line-number="194" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">194</div><div data-line-number="195" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">195</div><div data-line-number="196" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">196</div><div data-line-number="197" class="child-of-line-80 child-of-line-155  react-line-number react-code-text" style="padding-right:16px">197</div><div data-line-number="198" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">198</div><div data-line-number="199" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">199</div><div data-line-number="200" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">200</div><div data-line-number="201" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">201</div><div data-line-number="202" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">202</div><div data-line-number="203" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">203</div><div data-line-number="204" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">204</div><div data-line-number="205" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">205</div><div data-line-number="206" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">206</div><div data-line-number="207" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">207</div><div data-line-number="208" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">208</div><div data-line-number="209" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">209</div><div data-line-number="210" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">210</div><div data-line-number="211" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">211</div><div data-line-number="212" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">212</div><div data-line-number="213" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">213</div><div data-line-number="214" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">214</div><div data-line-number="215" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">215</div><div data-line-number="216" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">216</div><div data-line-number="217" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">217</div><div data-line-number="218" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">218</div><div data-line-number="219" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">219</div><div data-line-number="220" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">220</div><div data-line-number="221" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">221</div><div data-line-number="222" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">222</div><div data-line-number="223" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">223</div><div data-line-number="224" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">224</div><div data-line-number="225" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">225</div><div data-line-number="226" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">226</div><div data-line-number="227" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">227</div><div data-line-number="228" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">228</div><div data-line-number="229" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">229</div><div data-line-number="230" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">230</div><div data-line-number="231" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">231</div><div data-line-number="232" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">232</div><div data-line-number="233" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">233</div><div data-line-number="234" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">234</div><div data-line-number="235" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">235</div><div data-line-number="236" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">236</div><div data-line-number="237" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">237</div><div data-line-number="238" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">238</div><div data-line-number="239" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">239</div><div data-line-number="240" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">240</div><div data-line-number="241" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">241</div><div data-line-number="242" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">242</div><div data-line-number="243" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">243</div><div data-line-number="244" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">244<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="245" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">245</div><div data-line-number="246" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">246</div><div data-line-number="247" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">247</div><div data-line-number="248" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">248</div><div data-line-number="249" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">249</div><div data-line-number="250" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">250</div><div data-line-number="251" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">251</div><div data-line-number="252" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">252</div><div data-line-number="253" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">253</div><div data-line-number="254" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">254</div><div data-line-number="255" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">255</div><div data-line-number="256" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">256</div><div data-line-number="257" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">257</div><div data-line-number="258" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">258</div><div data-line-number="259" class="child-of-line-80 child-of-line-243  react-line-number react-code-text" style="padding-right:16px">259</div><div data-line-number="260" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">260</div><div data-line-number="261" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">261</div><div data-line-number="262" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">262</div><div data-line-number="263" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">263</div><div data-line-number="264" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">264</div><div data-line-number="265" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">265</div><div data-line-number="266" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">266</div><div data-line-number="267" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">267</div><div data-line-number="268" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">268</div><div data-line-number="269" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">269</div><div data-line-number="270" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">270</div><div data-line-number="271" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">271</div><div data-line-number="272" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">272</div><div data-line-number="273" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">273</div><div data-line-number="274" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">274</div><div data-line-number="275" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">275</div><div data-line-number="276" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">276</div><div data-line-number="277" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">277</div><div data-line-number="278" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">278</div><div data-line-number="279" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">279</div><div data-line-number="280" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">280</div><div data-line-number="281" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">281</div><div data-line-number="282" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">282</div><div data-line-number="283" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">283</div><div data-line-number="284" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">284</div><div data-line-number="285" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">285</div><div data-line-number="286" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">286</div><div data-line-number="287" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">287</div><div data-line-number="288" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">288</div><div data-line-number="289" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">289</div><div data-line-number="290" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">290</div><div data-line-number="291" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">291</div><div data-line-number="292" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">292</div><div data-line-number="293" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">293</div><div data-line-number="294" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">294</div><div data-line-number="295" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">295</div><div data-line-number="296" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">296</div><div data-line-number="297" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">297</div><div data-line-number="298" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">298</div><div data-line-number="299" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">299</div><div data-line-number="300" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">300</div><div data-line-number="301" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">301</div><div data-line-number="302" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">302<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="303" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">303</div><div data-line-number="304" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">304</div><div data-line-number="305" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">305</div><div data-line-number="306" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">306</div><div data-line-number="307" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">307</div><div data-line-number="308" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">308</div><div data-line-number="309" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">309</div><div data-line-number="310" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">310</div><div data-line-number="311" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">311</div><div data-line-number="312" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">312</div><div data-line-number="313" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">313</div><div data-line-number="314" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">314</div><div data-line-number="315" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">315</div><div data-line-number="316" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">316</div><div data-line-number="317" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">317</div><div data-line-number="318" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">318</div><div data-line-number="319" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">319</div><div data-line-number="320" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">320</div><div data-line-number="321" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">321</div><div data-line-number="322" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">322</div><div data-line-number="323" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">323</div><div data-line-number="324" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">324</div><div data-line-number="325" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">325</div><div data-line-number="326" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">326</div><div data-line-number="327" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">327</div><div data-line-number="328" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">328</div><div data-line-number="329" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">329</div><div data-line-number="330" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">330</div><div data-line-number="331" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">331</div><div data-line-number="332" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">332</div><div data-line-number="333" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">333</div><div data-line-number="334" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">334</div><div data-line-number="335" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">335</div><div data-line-number="336" class="child-of-line-80 child-of-line-301  react-line-number react-code-text" style="padding-right:16px">336</div><div data-line-number="337" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">337</div><div data-line-number="338" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">338</div><div data-line-number="339" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">339<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="340" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">340</div><div data-line-number="341" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">341</div><div data-line-number="342" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">342</div><div data-line-number="343" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">343</div><div data-line-number="344" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">344</div><div data-line-number="345" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">345</div><div data-line-number="346" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">346</div><div data-line-number="347" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">347</div><div data-line-number="348" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">348</div><div data-line-number="349" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">349</div><div data-line-number="350" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">350</div><div data-line-number="351" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">351</div><div data-line-number="352" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">352</div><div data-line-number="353" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">353</div><div data-line-number="354" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">354</div><div data-line-number="355" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">355</div><div data-line-number="356" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">356</div><div data-line-number="357" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">357</div><div data-line-number="358" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">358</div><div data-line-number="359" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">359</div><div data-line-number="360" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">360</div><div data-line-number="361" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">361</div><div data-line-number="362" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">362</div><div data-line-number="363" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">363</div><div data-line-number="364" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">364</div><div data-line-number="365" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">365</div><div data-line-number="366" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">366</div><div data-line-number="367" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">367</div><div data-line-number="368" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">368</div><div data-line-number="369" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">369</div><div data-line-number="370" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">370</div><div data-line-number="371" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">371</div><div data-line-number="372" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">372</div><div data-line-number="373" class="child-of-line-80 child-of-line-338  react-line-number react-code-text" style="padding-right:16px">373</div><div data-line-number="374" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">374</div><div data-line-number="375" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">375</div><div data-line-number="376" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">376<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="377" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">377</div><div data-line-number="378" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">378</div><div data-line-number="379" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">379</div><div data-line-number="380" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">380</div><div data-line-number="381" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">381</div><div data-line-number="382" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">382</div><div data-line-number="383" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">383</div><div data-line-number="384" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">384</div><div data-line-number="385" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">385</div><div data-line-number="386" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">386</div><div data-line-number="387" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">387</div><div data-line-number="388" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">388</div><div data-line-number="389" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">389</div><div data-line-number="390" class="child-of-line-80 child-of-line-375  react-line-number react-code-text" style="padding-right:16px">390</div><div data-line-number="391" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">391</div><div data-line-number="392" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">392</div><div data-line-number="393" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">393</div><div data-line-number="394" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">394</div><div data-line-number="395" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">395</div><div data-line-number="396" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">396</div><div data-line-number="397" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">397</div><div data-line-number="398" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">398</div><div data-line-number="399" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">399</div><div data-line-number="400" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">400</div><div data-line-number="401" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">401<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="402" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">402</div><div data-line-number="403" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">403</div><div data-line-number="404" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">404</div><div data-line-number="405" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">405</div><div data-line-number="406" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">406</div><div data-line-number="407" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">407</div><div data-line-number="408" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">408</div><div data-line-number="409" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">409</div><div data-line-number="410" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">410</div><div data-line-number="411" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">411</div><div data-line-number="412" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">412</div><div data-line-number="413" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">413</div><div data-line-number="414" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">414</div><div data-line-number="415" class="child-of-line-80 child-of-line-400  react-line-number react-code-text" style="padding-right:16px">415</div><div data-line-number="416" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">416</div><div data-line-number="417" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">417</div><div data-line-number="418" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">418</div><div data-line-number="419" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">419</div><div data-line-number="420" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">420</div><div data-line-number="421" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">421</div><div data-line-number="422" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">422</div><div data-line-number="423" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">423</div><div data-line-number="424" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">424</div><div data-line-number="425" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">425</div><div data-line-number="426" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">426</div><div data-line-number="427" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">427</div><div data-line-number="428" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">428</div><div data-line-number="429" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">429</div><div data-line-number="430" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">430</div><div data-line-number="431" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">431</div><div data-line-number="432" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">432</div><div data-line-number="433" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">433</div><div data-line-number="434" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">434</div><div data-line-number="435" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">435</div><div data-line-number="436" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">436</div><div data-line-number="437" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">437</div><div data-line-number="438" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">438</div><div data-line-number="439" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">439</div><div data-line-number="440" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">440</div><div data-line-number="441" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">441</div><div data-line-number="442" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">442</div><div data-line-number="443" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">443<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="444" class="child-of-line-80 child-of-line-442  react-line-number react-code-text" style="padding-right:16px">444</div><div data-line-number="445" class="child-of-line-80 child-of-line-442  react-line-number react-code-text" style="padding-right:16px">445</div><div data-line-number="446" class="child-of-line-80 child-of-line-442  react-line-number react-code-text" style="padding-right:16px">446</div><div data-line-number="447" class="child-of-line-80 child-of-line-442  react-line-number react-code-text" style="padding-right:16px">447</div><div data-line-number="448" class="child-of-line-80 child-of-line-442  react-line-number react-code-text" style="padding-right:16px">448</div><div data-line-number="449" class="child-of-line-80 child-of-line-442  react-line-number react-code-text" style="padding-right:16px">449</div><div data-line-number="450" class="child-of-line-80 child-of-line-442  react-line-number react-code-text" style="padding-right:16px">450</div><div data-line-number="451" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">451</div><div data-line-number="452" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">452</div><div data-line-number="453" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">453</div><div data-line-number="454" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">454</div><div data-line-number="455" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">455</div><div data-line-number="456" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">456</div><div data-line-number="457" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">457</div><div data-line-number="458" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">458</div><div data-line-number="459" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">459</div><div data-line-number="460" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">460</div><div data-line-number="461" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">461<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="462" class="child-of-line-80 child-of-line-460  react-line-number react-code-text" style="padding-right:16px">462</div><div data-line-number="463" class="child-of-line-80 child-of-line-460  react-line-number react-code-text" style="padding-right:16px">463</div><div data-line-number="464" class="child-of-line-80 child-of-line-460  react-line-number react-code-text" style="padding-right:16px">464</div><div data-line-number="465" class="child-of-line-80 child-of-line-460  react-line-number react-code-text" style="padding-right:16px">465</div><div data-line-number="466" class="child-of-line-80 child-of-line-460  react-line-number react-code-text" style="padding-right:16px">466</div><div data-line-number="467" class="child-of-line-80 child-of-line-460  react-line-number react-code-text" style="padding-right:16px">467</div><div data-line-number="468" class="child-of-line-80 child-of-line-460  react-line-number react-code-text" style="padding-right:16px">468</div><div data-line-number="469" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">469</div><div data-line-number="470" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">470</div><div data-line-number="471" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">471</div><div data-line-number="472" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">472</div><div data-line-number="473" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">473</div><div data-line-number="474" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">474</div><div data-line-number="475" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">475</div><div data-line-number="476" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">476</div><div data-line-number="477" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">477</div><div data-line-number="478" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">478</div><div data-line-number="479" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">479</div><div data-line-number="480" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">480</div><div data-line-number="481" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">481</div><div data-line-number="482" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">482<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="483" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">483</div><div data-line-number="484" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">484</div><div data-line-number="485" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">485</div><div data-line-number="486" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">486</div><div data-line-number="487" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">487</div><div data-line-number="488" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">488</div><div data-line-number="489" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">489</div><div data-line-number="490" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">490</div><div data-line-number="491" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">491</div><div data-line-number="492" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">492</div><div data-line-number="493" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">493</div><div data-line-number="494" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">494</div><div data-line-number="495" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">495</div><div data-line-number="496" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">496</div><div data-line-number="497" class="child-of-line-80 child-of-line-481  react-line-number react-code-text" style="padding-right:16px">497</div><div data-line-number="498" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">498</div><div data-line-number="499" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">499</div><div data-line-number="500" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">500</div><div data-line-number="501" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">501</div><div data-line-number="502" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">502</div><div data-line-number="503" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">503</div><div data-line-number="504" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">504</div><div data-line-number="505" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">505</div><div data-line-number="506" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">506</div><div data-line-number="507" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">507</div><div data-line-number="508" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">508</div><div data-line-number="509" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">509</div><div data-line-number="510" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">510</div><div data-line-number="511" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">511</div><div data-line-number="512" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">512<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="513" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">513</div><div data-line-number="514" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">514</div><div data-line-number="515" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">515</div><div data-line-number="516" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">516</div><div data-line-number="517" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">517</div><div data-line-number="518" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">518</div><div data-line-number="519" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">519</div><div data-line-number="520" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">520</div><div data-line-number="521" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">521</div><div data-line-number="522" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">522</div><div data-line-number="523" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">523</div><div data-line-number="524" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">524</div><div data-line-number="525" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">525</div><div data-line-number="526" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">526</div><div data-line-number="527" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">527</div><div data-line-number="528" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">528</div><div data-line-number="529" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">529</div><div data-line-number="530" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">530</div><div data-line-number="531" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">531</div><div data-line-number="532" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">532</div><div data-line-number="533" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">533</div><div data-line-number="534" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">534</div><div data-line-number="535" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">535</div><div data-line-number="536" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">536</div><div data-line-number="537" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">537</div><div data-line-number="538" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">538</div><div data-line-number="539" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">539</div><div data-line-number="540" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">540</div><div data-line-number="541" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">541</div><div data-line-number="542" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">542</div><div data-line-number="543" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">543</div><div data-line-number="544" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">544</div><div data-line-number="545" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">545</div><div data-line-number="546" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">546</div><div data-line-number="547" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">547</div><div data-line-number="548" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">548</div><div data-line-number="549" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">549</div><div data-line-number="550" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">550</div><div data-line-number="551" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">551</div><div data-line-number="552" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">552</div><div data-line-number="553" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">553</div><div data-line-number="554" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">554</div><div data-line-number="555" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">555</div><div data-line-number="556" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">556</div><div data-line-number="557" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">557</div><div data-line-number="558" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">558</div><div data-line-number="559" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">559</div><div data-line-number="560" class="child-of-line-80 child-of-line-511  react-line-number react-code-text" style="padding-right:16px">560</div><div data-line-number="561" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">561</div><div data-line-number="562" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">562</div><div data-line-number="563" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">563</div><div data-line-number="564" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">564</div><div data-line-number="565" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">565</div><div data-line-number="566" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">566</div><div data-line-number="567" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">567</div><div data-line-number="568" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">568</div><div data-line-number="569" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">569</div><div data-line-number="570" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">570</div><div data-line-number="571" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">571</div><div data-line-number="572" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">572</div><div data-line-number="573" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">573</div><div data-line-number="574" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">574</div><div data-line-number="575" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">575</div><div data-line-number="576" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">576<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="577" class="child-of-line-80 child-of-line-575  react-line-number react-code-text" style="padding-right:16px">577</div><div data-line-number="578" class="child-of-line-80 child-of-line-575  react-line-number react-code-text" style="padding-right:16px">578</div><div data-line-number="579" class="child-of-line-80 child-of-line-575  react-line-number react-code-text" style="padding-right:16px">579</div><div data-line-number="580" class="child-of-line-80 child-of-line-575  react-line-number react-code-text" style="padding-right:16px">580</div><div data-line-number="581" class="child-of-line-80 child-of-line-575  react-line-number react-code-text" style="padding-right:16px">581</div><div data-line-number="582" class="child-of-line-80 child-of-line-575  react-line-number react-code-text" style="padding-right:16px">582</div><div data-line-number="583" class="child-of-line-80 child-of-line-575  react-line-number react-code-text" style="padding-right:16px">583</div><div data-line-number="584" class="child-of-line-80 child-of-line-575  react-line-number react-code-text" style="padding-right:16px">584</div><div data-line-number="585" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">585</div><div data-line-number="586" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">586</div><div data-line-number="587" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">587</div><div data-line-number="588" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">588</div><div data-line-number="589" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">589</div><div data-line-number="590" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">590</div><div data-line-number="591" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">591</div><div data-line-number="592" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">592</div><div data-line-number="593" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">593</div><div data-line-number="594" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">594</div><div data-line-number="595" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">595</div><div data-line-number="596" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">596</div><div data-line-number="597" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">597</div><div data-line-number="598" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">598</div><div data-line-number="599" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">599</div><div data-line-number="600" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">600</div><div data-line-number="601" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">601</div><div data-line-number="602" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">602</div><div data-line-number="603" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">603</div><div data-line-number="604" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">604</div><div data-line-number="605" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">605</div><div data-line-number="606" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">606</div><div data-line-number="607" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">607</div><div data-line-number="608" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">608</div><div data-line-number="609" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">609</div><div data-line-number="610" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">610</div><div data-line-number="611" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">611</div><div data-line-number="612" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">612</div><div data-line-number="613" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">613</div><div data-line-number="614" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">614</div><div data-line-number="615" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">615</div><div data-line-number="616" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">616</div><div data-line-number="617" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">617</div><div data-line-number="618" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">618</div><div data-line-number="619" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">619</div><div data-line-number="620" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">620</div><div data-line-number="621" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">621</div><div data-line-number="622" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">622</div><div data-line-number="623" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">623<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="624" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">624</div><div data-line-number="625" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">625</div><div data-line-number="626" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">626</div><div data-line-number="627" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">627</div><div data-line-number="628" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">628</div><div data-line-number="629" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">629</div><div data-line-number="630" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">630</div><div data-line-number="631" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">631</div><div data-line-number="632" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">632</div><div data-line-number="633" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">633</div><div data-line-number="634" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">634</div><div data-line-number="635" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">635</div><div data-line-number="636" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">636</div><div data-line-number="637" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">637</div><div data-line-number="638" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">638</div><div data-line-number="639" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">639</div><div data-line-number="640" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">640</div><div data-line-number="641" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">641</div><div data-line-number="642" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">642</div><div data-line-number="643" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">643</div><div data-line-number="644" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">644</div><div data-line-number="645" class="child-of-line-80 child-of-line-622  react-line-number react-code-text" style="padding-right:16px">645</div><div data-line-number="646" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">646</div><div data-line-number="647" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">647</div><div data-line-number="648" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">648</div><div data-line-number="649" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">649</div><div data-line-number="650" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">650</div><div data-line-number="651" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">651</div><div data-line-number="652" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">652</div><div data-line-number="653" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">653</div><div data-line-number="654" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">654</div><div data-line-number="655" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">655</div><div data-line-number="656" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">656</div><div data-line-number="657" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">657</div><div data-line-number="658" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">658</div><div data-line-number="659" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">659</div><div data-line-number="660" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">660</div><div data-line-number="661" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">661<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="662" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">662</div><div data-line-number="663" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">663</div><div data-line-number="664" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">664</div><div data-line-number="665" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">665</div><div data-line-number="666" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">666</div><div data-line-number="667" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">667</div><div data-line-number="668" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">668</div><div data-line-number="669" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">669</div><div data-line-number="670" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">670</div><div data-line-number="671" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">671</div><div data-line-number="672" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">672</div><div data-line-number="673" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">673</div><div data-line-number="674" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">674</div><div data-line-number="675" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">675</div><div data-line-number="676" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">676</div><div data-line-number="677" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">677</div><div data-line-number="678" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">678</div><div data-line-number="679" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">679</div><div data-line-number="680" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">680</div><div data-line-number="681" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">681</div><div data-line-number="682" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">682</div><div data-line-number="683" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">683</div><div data-line-number="684" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">684</div><div data-line-number="685" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">685</div><div data-line-number="686" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">686</div><div data-line-number="687" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">687</div><div data-line-number="688" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">688<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="689" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">689</div><div data-line-number="690" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">690</div><div data-line-number="691" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">691</div><div data-line-number="692" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">692</div><div data-line-number="693" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">693</div><div data-line-number="694" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">694</div><div data-line-number="695" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">695</div><div data-line-number="696" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">696</div><div data-line-number="697" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">697</div><div data-line-number="698" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">698</div><div data-line-number="699" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">699</div><div data-line-number="700" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">700</div><div data-line-number="701" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">701</div><div data-line-number="702" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">702</div><div data-line-number="703" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">703</div><div data-line-number="704" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">704</div><div data-line-number="705" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">705</div><div data-line-number="706" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">706</div><div data-line-number="707" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">707</div><div data-line-number="708" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">708</div><div data-line-number="709" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">709</div><div data-line-number="710" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">710</div><div data-line-number="711" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">711</div><div data-line-number="712" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">712</div><div data-line-number="713" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">713</div><div data-line-number="714" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">714</div><div data-line-number="715" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">715</div><div data-line-number="716" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">716</div><div data-line-number="717" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">717</div><div data-line-number="718" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">718</div><div data-line-number="719" class="child-of-line-80 child-of-line-660 child-of-line-687  react-line-number react-code-text" style="padding-right:16px">719</div><div data-line-number="720" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">720</div><div data-line-number="721" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">721</div><div data-line-number="722" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">722</div><div data-line-number="723" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">723</div><div data-line-number="724" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">724</div><div data-line-number="725" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">725</div><div data-line-number="726" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">726</div><div data-line-number="727" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">727</div><div data-line-number="728" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">728</div><div data-line-number="729" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">729</div><div data-line-number="730" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">730</div><div data-line-number="731" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">731<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="732" class="child-of-line-80 child-of-line-660 child-of-line-730  react-line-number react-code-text" style="padding-right:16px">732</div><div data-line-number="733" class="child-of-line-80 child-of-line-660 child-of-line-730  react-line-number react-code-text" style="padding-right:16px">733</div><div data-line-number="734" class="child-of-line-80 child-of-line-660 child-of-line-730  react-line-number react-code-text" style="padding-right:16px">734</div><div data-line-number="735" class="child-of-line-80 child-of-line-660 child-of-line-730  react-line-number react-code-text" style="padding-right:16px">735</div><div data-line-number="736" class="child-of-line-80 child-of-line-660 child-of-line-730  react-line-number react-code-text" style="padding-right:16px">736</div><div data-line-number="737" class="child-of-line-80 child-of-line-660  react-line-number react-code-text" style="padding-right:16px">737</div><div data-line-number="738" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">738</div><div data-line-number="739" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">739</div><div data-line-number="740" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">740</div><div data-line-number="741" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">741</div><div data-line-number="742" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">742</div><div data-line-number="743" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">743</div><div data-line-number="744" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">744</div><div data-line-number="745" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">745</div><div data-line-number="746" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">746</div><div data-line-number="747" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">747</div><div data-line-number="748" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">748<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="749" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">749</div><div data-line-number="750" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">750</div><div data-line-number="751" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">751</div><div data-line-number="752" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">752</div><div data-line-number="753" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">753</div><div data-line-number="754" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">754</div><div data-line-number="755" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">755</div><div data-line-number="756" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">756</div><div data-line-number="757" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">757</div><div data-line-number="758" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">758</div><div data-line-number="759" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">759</div><div data-line-number="760" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">760</div><div data-line-number="761" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">761</div><div data-line-number="762" class="child-of-line-80 child-of-line-747  react-line-number react-code-text" style="padding-right:16px">762</div><div data-line-number="763" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">763</div><div data-line-number="764" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">764</div><div data-line-number="765" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">765</div><div data-line-number="766" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">766</div><div data-line-number="767" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">767</div><div data-line-number="768" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">768</div><div data-line-number="769" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">769</div><div data-line-number="770" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">770</div><div data-line-number="771" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">771</div><div data-line-number="772" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">772<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="773" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">773</div><div data-line-number="774" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">774</div><div data-line-number="775" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">775</div><div data-line-number="776" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">776</div><div data-line-number="777" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">777</div><div data-line-number="778" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">778</div><div data-line-number="779" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">779</div><div data-line-number="780" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">780</div><div data-line-number="781" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">781</div><div data-line-number="782" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">782</div><div data-line-number="783" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">783</div><div data-line-number="784" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">784</div><div data-line-number="785" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">785</div><div data-line-number="786" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">786</div><div data-line-number="787" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">787</div><div data-line-number="788" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">788</div><div data-line-number="789" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">789</div><div data-line-number="790" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">790</div><div data-line-number="791" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">791</div><div data-line-number="792" class="child-of-line-80 child-of-line-771  react-line-number react-code-text" style="padding-right:16px">792</div><div data-line-number="793" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">793</div><div data-line-number="794" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">794</div><div data-line-number="795" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">795</div><div data-line-number="796" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">796<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="797" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">797</div><div data-line-number="798" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">798</div><div data-line-number="799" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">799</div><div data-line-number="800" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">800</div><div data-line-number="801" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">801</div><div data-line-number="802" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">802</div><div data-line-number="803" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">803</div><div data-line-number="804" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">804</div><div data-line-number="805" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">805</div><div data-line-number="806" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">806<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="807" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">807</div><div data-line-number="808" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">808</div><div data-line-number="809" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">809</div><div data-line-number="810" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">810</div><div data-line-number="811" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">811</div><div data-line-number="812" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">812</div><div data-line-number="813" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">813</div><div data-line-number="814" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">814</div><div data-line-number="815" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">815</div><div data-line-number="816" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">816</div><div data-line-number="817" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">817</div><div data-line-number="818" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">818</div><div data-line-number="819" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">819</div><div data-line-number="820" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">820</div><div data-line-number="821" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">821</div><div data-line-number="822" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">822</div><div data-line-number="823" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">823</div><div data-line-number="824" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">824</div><div data-line-number="825" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">825</div><div data-line-number="826" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">826</div><div data-line-number="827" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">827</div><div data-line-number="828" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">828</div><div data-line-number="829" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">829</div><div data-line-number="830" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">830</div><div data-line-number="831" class="child-of-line-80 child-of-line-795 child-of-line-805  react-line-number react-code-text" style="padding-right:16px">831</div><div data-line-number="832" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">832</div><div data-line-number="833" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">833</div><div data-line-number="834" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">834<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="835" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">835</div><div data-line-number="836" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">836</div><div data-line-number="837" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">837</div><div data-line-number="838" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">838</div><div data-line-number="839" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">839</div><div data-line-number="840" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">840</div><div data-line-number="841" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">841</div><div data-line-number="842" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">842</div><div data-line-number="843" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">843</div><div data-line-number="844" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">844</div><div data-line-number="845" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">845</div><div data-line-number="846" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">846</div><div data-line-number="847" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">847</div><div data-line-number="848" class="child-of-line-80 child-of-line-795 child-of-line-833  react-line-number react-code-text" style="padding-right:16px">848</div><div data-line-number="849" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">849</div><div data-line-number="850" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">850</div><div data-line-number="851" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">851<span class="LineNumber-module__codeAlert__WexRo LineNumber-module__codeAlertRight__hdWmf"><button data-code-folding-chevron="true" type="button" aria-expanded="true" aria-label="Collapse code section" class="LineNumber-module__codeFoldingChevron__sY2Yt"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-chevron-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg></button></span></div><div data-line-number="852" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">852</div><div data-line-number="853" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">853</div><div data-line-number="854" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">854</div><div data-line-number="855" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">855</div><div data-line-number="856" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">856</div><div data-line-number="857" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">857</div><div data-line-number="858" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">858</div><div data-line-number="859" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">859</div><div data-line-number="860" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">860</div><div data-line-number="861" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">861</div><div data-line-number="862" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">862</div><div data-line-number="863" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">863</div><div data-line-number="864" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">864</div><div data-line-number="865" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">865</div><div data-line-number="866" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">866</div><div data-line-number="867" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">867</div><div data-line-number="868" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">868</div><div data-line-number="869" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">869</div><div data-line-number="870" class="child-of-line-80 child-of-line-795 child-of-line-850  react-line-number react-code-text" style="padding-right:16px">870</div><div data-line-number="871" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">871</div><div data-line-number="872" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">872</div><div data-line-number="873" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">873</div><div data-line-number="874" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">874</div><div data-line-number="875" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">875</div><div data-line-number="876" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">876</div><div data-line-number="877" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">877</div><div data-line-number="878" class="child-of-line-80 child-of-line-795  react-line-number react-code-text" style="padding-right:16px">878</div><div data-line-number="879" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">879</div><div data-line-number="880" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">880</div><div data-line-number="881" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">881</div><div data-line-number="882" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">882</div><div data-line-number="883" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">883</div><div data-line-number="884" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">884</div><div data-line-number="885" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">885</div><div data-line-number="886" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">886</div><div data-line-number="887" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">887</div><div data-line-number="888" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">888</div><div data-line-number="889" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">889</div><div data-line-number="890" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">890</div><div data-line-number="891" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">891</div><div data-line-number="892" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">892</div><div data-line-number="893" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">893</div><div data-line-number="894" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">894</div><div data-line-number="895" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">895</div><div data-line-number="896" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">896</div><div data-line-number="897" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">897</div><div data-line-number="898" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">898</div><div data-line-number="899" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">899</div><div data-line-number="900" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">900</div><div data-line-number="901" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">901</div><div data-line-number="902" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">902</div><div data-line-number="903" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">903</div><div data-line-number="904" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">904</div><div data-line-number="905" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">905</div><div data-line-number="906" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">906</div><div data-line-number="907" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">907</div><div data-line-number="908" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">908</div><div data-line-number="909" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">909</div><div data-line-number="910" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">910</div><div data-line-number="911" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">911</div><div data-line-number="912" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">912</div><div data-line-number="913" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">913</div><div data-line-number="914" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">914</div><div data-line-number="915" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">915</div><div data-line-number="916" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">916</div><div data-line-number="917" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">917</div><div data-line-number="918" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">918</div><div data-line-number="919" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">919</div><div data-line-number="920" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">920</div><div data-line-number="921" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">921</div><div data-line-number="922" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">922</div><div data-line-number="923" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">923</div><div data-line-number="924" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">924</div><div data-line-number="925" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">925</div><div data-line-number="926" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">926</div><div data-line-number="927" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">927</div><div data-line-number="928" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">928</div><div data-line-number="929" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">929</div><div data-line-number="930" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">930</div><div data-line-number="931" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">931</div><div data-line-number="932" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">932</div><div data-line-number="933" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">933</div><div data-line-number="934" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">934</div><div data-line-number="935" class="child-of-line-80  react-line-number react-code-text" style="padding-right:16px">935</div><div data-line-number="936" class="child-of-line-80  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><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"> *</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"> *</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"> *</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"> * Written by Doug Lea and Martin Buchholz with assistance from members of</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"> * JCP JSR-166 Expert Group and released to the public domain, as explained</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"> * at http://creativecommons.org/publicdomain/zero/1.0/</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"> */</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">
</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">
</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-k">import</span> <span class="pl-s1">java</span>.<span class="pl-s1">util</span>.<span class="pl-s1">AbstractQueue</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-k">import</span> <span class="pl-s1">java</span>.<span class="pl-s1">util</span>.<span class="pl-s1">ArrayList</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-k">import</span> <span class="pl-s1">java</span>.<span class="pl-s1">util</span>.<span class="pl-s1">Collection</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-k">import</span> <span class="pl-s1">java</span>.<span class="pl-s1">util</span>.<span class="pl-s1">Iterator</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-k">import</span> <span class="pl-s1">java</span>.<span class="pl-s1">util</span>.<span class="pl-s1">NoSuchElementException</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-k">import</span> <span class="pl-s1">java</span>.<span class="pl-s1">util</span>.<span class="pl-s1">Queue</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-k">import</span> <span class="pl-s1">java</span>.<span class="pl-s1">util</span>.<span class="pl-s1">Spliterator</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-k">import</span> <span class="pl-s1">java</span>.<span class="pl-s1">util</span>.<span class="pl-s1">Spliterators</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"><span class="pl-k">import</span> <span class="pl-s1">java</span>.<span class="pl-s1">util</span>.<span class="pl-s1">function</span>.<span class="pl-s1">Consumer</span>;</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">
</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">
</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"><span class="pl-c">/**</span></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-c"> * An unbounded thread-safe {@linkplain Queue queue} based on linked nodes.</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-c"> * This queue orders elements FIFO (first-in-first-out).</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"><span class="pl-c"> * The &lt;em&gt;head&lt;/em&gt; of the queue is that element that has been on the</span></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-c"> * queue the longest time.</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-c"> * The &lt;em&gt;tail&lt;/em&gt; of the queue is that element that has been on the</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-c"> * queue the shortest time. New elements</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"><span class="pl-c"> * are inserted at the tail of the queue, and the queue retrieval</span></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"> * operations obtain elements at the head of the queue.</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"><span class="pl-c"> * A {@code ConcurrentLinkedQueue} is an appropriate choice when</span></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"> * many threads will share access to a common collection.</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-c"> * Like most other concurrent collection implementations, this class</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"><span class="pl-c"> * does not permit the use of {@code null} elements.</span></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"> *</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-c"> * &lt;p&gt;This implementation employs an efficient &lt;em&gt;non-blocking&lt;/em&gt;</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"><span class="pl-c"> * algorithm based on one described in &lt;a</span></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"> * href=&quot;http://www.cs.rochester.edu/u/michael/PODC96.html&quot;&gt; Simple,</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-c"> * Fast, and Practical Non-Blocking and Blocking Concurrent Queue</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"><span class="pl-c"> * Algorithms&lt;/a&gt; by Maged M. Michael and Michael L. Scott.</span></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"> *</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-c"> * &lt;p&gt;Iterators are &lt;i&gt;weakly consistent&lt;/i&gt;, returning elements</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"><span class="pl-c"> * reflecting the state of the queue at some point at or since the</span></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"> * creation of the iterator.  They do &lt;em&gt;not&lt;/em&gt; throw {@link</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-c"> * java.util.ConcurrentModificationException}, and may proceed concurrently</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"><span class="pl-c"> * with other operations.  Elements contained in the queue since the creation</span></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"> * of the iterator will be returned exactly once.</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-c"> *</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"><span class="pl-c"> * &lt;p&gt;Beware that, unlike in most collections, the {@code size} method</span></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"> * is &lt;em&gt;NOT&lt;/em&gt; a constant-time operation. Because of the</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-c"> * asynchronous nature of these queues, determining the current number</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"><span class="pl-c"> * of elements requires a traversal of the elements, and so may report</span></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"> * inaccurate results if this collection is modified during traversal.</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-c"> * Additionally, the bulk operations {@code addAll},</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"><span class="pl-c"> * {@code removeAll}, {@code retainAll}, {@code containsAll},</span></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"> * {@code equals}, and {@code toArray} are &lt;em&gt;not&lt;/em&gt; guaranteed</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-c"> * to be performed atomically. For example, an iterator operating</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"><span class="pl-c"> * concurrently with an {@code addAll} operation might view only some</span></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"> * of the added elements.</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-c"> *</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"><span class="pl-c"> * &lt;p&gt;This class and its iterator implement all of the &lt;em&gt;optional&lt;/em&gt;</span></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"> * methods of the {@link Queue} and {@link Iterator} interfaces.</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"><span class="pl-c"> *</span></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-c"> * &lt;p&gt;Memory consistency effects: As with other concurrent</span></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-c"> * collections, actions in a thread prior to placing an object into a</span></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-c"> * {@code ConcurrentLinkedQueue}</span></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-c"> * &lt;a href=&quot;package-summary.html#MemoryVisibility&quot;&gt;&lt;i&gt;happen-before&lt;/i&gt;&lt;/a&gt;</span></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-c"> * actions subsequent to the access or removal of that element from</span></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-c"> * the {@code ConcurrentLinkedQueue} in another thread.</span></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-c"> *</span></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-c"> * &lt;p&gt;This class is a member of the</span></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"><span class="pl-c"> * &lt;a href=&quot;{@docRoot}/../technotes/guides/collections/index.html&quot;&gt;</span></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"> * Java Collections Framework&lt;/a&gt;.</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"><span class="pl-c"> *</span></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-c"> * @since 1.5</span></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-c"> * @author Doug Lea</span></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-c"> * @param &lt;E&gt; the type of elements held in this collection</span></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-c"> */</span></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"><span class="pl-k">public</span> <span class="pl-k">class</span> <span class="pl-smi">ConcurrentLinkedQueue</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-k">extends</span> <span class="pl-smi">AbstractQueue</span>&lt;<span class="pl-smi">E</span>&gt;</div></div></div><div class="child-of-line-80  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-k">implements</span> <span class="pl-smi">Queue</span>&lt;<span class="pl-smi">E</span>&gt;, <span class="pl-smi">java</span>.<span class="pl-smi">io</span>.<span class="pl-smi">Serializable</span> {</div></div></div><div class="child-of-line-80  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">    <span class="pl-k">private</span> <span class="pl-k">static</span> <span class="pl-k">final</span> <span class="pl-smi">long</span> <span class="pl-s1">serialVersionUID</span> = <span class="pl-c1">196745693267521676L</span>;</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-c">/*</span></div></div></div><div class="child-of-line-80  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-c">     * This is a modification of the Michael &amp; Scott algorithm,</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * adapted for a garbage-collected environment, with support for</span></div></div></div><div class="child-of-line-80  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">     * interior node deletion (to support remove(Object)).  For</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * explanation, read the paper.</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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">     * Note that like most non-blocking algorithms in this package,</span></div></div></div><div class="child-of-line-80  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">     * this implementation relies on the fact that in garbage</span></div></div></div><div class="child-of-line-80  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">     * collected systems, there is no possibility of ABA problems due</span></div></div></div><div class="child-of-line-80  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">     * to recycled nodes, so there is no need to use &quot;counted</span></div></div></div><div class="child-of-line-80  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">     * pointers&quot; or related techniques seen in versions used in</span></div></div></div><div class="child-of-line-80  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-c">     * non-GC&#039;ed settings.</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     *</span></div></div></div><div class="child-of-line-80  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">     * The fundamental invariants are:</span></div></div></div><div class="child-of-line-80  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">     * - There is exactly one (last) Node with a null next reference,</span></div></div></div><div class="child-of-line-80  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">     *   which is CASed when enqueueing.  This last Node can be</span></div></div></div><div class="child-of-line-80  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-c">     *   reached in O(1) time from tail, but tail is merely an</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     *   optimization - it can always be reached in O(N) time from</span></div></div></div><div class="child-of-line-80  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">     *   head as well.</span></div></div></div><div class="child-of-line-80  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">     * - The elements contained in the queue are the non-null items in</span></div></div></div><div class="child-of-line-80  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">     *   Nodes that are reachable from head.  CASing the item</span></div></div></div><div class="child-of-line-80  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-c">     *   reference of a Node to null atomically removes it from the</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     *   queue.  Reachability of all elements from head must remain</span></div></div></div><div class="child-of-line-80  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">     *   true even in the case of concurrent modifications that cause</span></div></div></div><div class="child-of-line-80  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">     *   head to advance.  A dequeued Node may remain in use</span></div></div></div><div class="child-of-line-80  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">     *   indefinitely due to creation of an Iterator or simply a</span></div></div></div><div class="child-of-line-80  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">     *   poll() that has lost its time slice.</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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-c">     * The above might appear to imply that all Nodes are GC-reachable</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * from a predecessor dequeued Node.  That would cause two problems:</span></div></div></div><div class="child-of-line-80  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">     * - allow a rogue Iterator to cause unbounded memory retention</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * - cause cross-generational linking of old Nodes to new Nodes if</span></div></div></div><div class="child-of-line-80  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">     *   a Node was tenured while live, which generational GCs have a</span></div></div></div><div class="child-of-line-80  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">     *   hard time dealing with, causing repeated major collections.</span></div></div></div><div class="child-of-line-80  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">     * However, only non-deleted Nodes need to be reachable from</span></div></div></div><div class="child-of-line-80  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">     * dequeued Nodes, and reachability does not necessarily have to</span></div></div></div><div class="child-of-line-80  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">     * be of the kind understood by the GC.  We use the trick of</span></div></div></div><div class="child-of-line-80  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">     * linking a Node that has just been dequeued to itself.  Such a</span></div></div></div><div class="child-of-line-80  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-c">     * self-link implicitly means to advance to head.</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     *</span></div></div></div><div class="child-of-line-80  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">     * Both head and tail are permitted to lag.  In fact, failing to</span></div></div></div><div class="child-of-line-80  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">     * update them every time one could is a significant optimization</span></div></div></div><div class="child-of-line-80  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">     * (fewer CASes). As with LinkedTransferQueue (see the internal</span></div></div></div><div class="child-of-line-80  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">     * documentation for that class), we use a slack threshold of two;</span></div></div></div><div class="child-of-line-80  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">     * that is, we update head/tail when the current pointer appears</span></div></div></div><div class="child-of-line-80  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">     * to be two or more steps away from the first/last node.</span></div></div></div><div class="child-of-line-80  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-c">     *</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * Since head and tail are updated concurrently and independently,</span></div></div></div><div class="child-of-line-80  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">     * it is possible for tail to lag behind head (why not)?</span></div></div></div><div class="child-of-line-80  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">     *</span></div></div></div><div class="child-of-line-80  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">     * CASing a Node&#039;s item reference to null atomically removes the</span></div></div></div><div class="child-of-line-80  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">     * element from the queue.  Iterators skip over Nodes with null</span></div></div></div><div class="child-of-line-80  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">     * items.  Prior implementations of this class had a race between</span></div></div></div><div class="child-of-line-80  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">     * poll() and remove(Object) where the same element would appear</span></div></div></div><div class="child-of-line-80  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-c">     * to be successfully removed by two concurrent operations.  The</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * method remove(Object) also lazily unlinks deleted Nodes, but</span></div></div></div><div class="child-of-line-80  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">     * this is merely an optimization.</span></div></div></div><div class="child-of-line-80  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">     *</span></div></div></div><div class="child-of-line-80  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">     * When constructing a Node (before enqueuing it) we avoid paying</span></div></div></div><div class="child-of-line-80  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">     * for a volatile write to item by using Unsafe.putObject instead</span></div></div></div><div class="child-of-line-80  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">     * of a normal write.  This allows the cost of enqueue to be</span></div></div></div><div class="child-of-line-80  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">     * &quot;one-and-a-half&quot; CASes.</span></div></div></div><div class="child-of-line-80  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-c">     *</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * Both head and tail may or may not point to a Node with a</span></div></div></div><div class="child-of-line-80  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">     * non-null item.  If the queue is empty, all items must of course</span></div></div></div><div class="child-of-line-80  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">     * be null.  Upon creation, both head and tail refer to a dummy</span></div></div></div><div class="child-of-line-80  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">     * Node with null item.  Both head and tail are only updated using</span></div></div></div><div class="child-of-line-80  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">     * CAS, so they never regress, although again this is merely an</span></div></div></div><div class="child-of-line-80  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">     * optimization.</span></div></div></div><div class="child-of-line-80  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">     */</span></div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-k">private</span> <span class="pl-k">static</span> <span class="pl-k">class</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; {</div></div></div><div class="child-of-line-80 child-of-line-155  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">volatile</span> <span class="pl-smi">E</span> <span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-155  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">        <span class="pl-k">volatile</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">next</span>;</div></div></div><div class="child-of-line-80 child-of-line-155  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">
</div></div></div><div class="child-of-line-80 child-of-line-155  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">/**</span></div></div></div><div class="child-of-line-80 child-of-line-155  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">         * Constructs a new node.  Uses relaxed write because item can</span></div></div></div><div class="child-of-line-80 child-of-line-155  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">         * only be seen after publication via casNext.</span></div></div></div><div class="child-of-line-80 child-of-line-155  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">         */</span></div></div></div><div class="child-of-line-80 child-of-line-155  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-smi">Node</span>(<span class="pl-smi">E</span> <span class="pl-s1">item</span>) {</div></div></div><div class="child-of-line-80 child-of-line-155  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-c1">UNSAFE</span>.<span class="pl-en">putObject</span>(<span class="pl-smi">this</span>, <span class="pl-s1">itemOffset</span>, <span class="pl-s1">item</span>);</div></div></div><div class="child-of-line-80 child-of-line-155  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="child-of-line-80 child-of-line-155  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">
</div></div></div><div class="child-of-line-80 child-of-line-155  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-smi">boolean</span> <span class="pl-en">casItem</span>(<span class="pl-smi">E</span> <span class="pl-s1">cmp</span>, <span class="pl-smi">E</span> <span class="pl-s1">val</span>) {</div></div></div><div class="child-of-line-80 child-of-line-155  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-k">return</span> <span class="pl-c1">UNSAFE</span>.<span class="pl-en">compareAndSwapObject</span>(<span class="pl-smi">this</span>, <span class="pl-s1">itemOffset</span>, <span class="pl-s1">cmp</span>, <span class="pl-s1">val</span>);</div></div></div><div class="child-of-line-80 child-of-line-155  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">        }</div></div></div><div class="child-of-line-80 child-of-line-155  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">
</div></div></div><div class="child-of-line-80 child-of-line-155  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">        <span class="pl-smi">void</span> <span class="pl-en">lazySetNext</span>(<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">val</span>) {</div></div></div><div class="child-of-line-80 child-of-line-155  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-c1">UNSAFE</span>.<span class="pl-en">putOrderedObject</span>(<span class="pl-smi">this</span>, <span class="pl-s1">nextOffset</span>, <span class="pl-s1">val</span>);</div></div></div><div class="child-of-line-80 child-of-line-155  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="child-of-line-80 child-of-line-155  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">
</div></div></div><div class="child-of-line-80 child-of-line-155  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-smi">boolean</span> <span class="pl-en">casNext</span>(<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">cmp</span>, <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">val</span>) {</div></div></div><div class="child-of-line-80 child-of-line-155  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-k">return</span> <span class="pl-c1">UNSAFE</span>.<span class="pl-en">compareAndSwapObject</span>(<span class="pl-smi">this</span>, <span class="pl-s1">nextOffset</span>, <span class="pl-s1">cmp</span>, <span class="pl-s1">val</span>);</div></div></div><div class="child-of-line-80 child-of-line-155  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">        }</div></div></div><div class="child-of-line-80 child-of-line-155  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">
</div></div></div><div class="child-of-line-80 child-of-line-155  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">        <span class="pl-c">// Unsafe mechanics</span></div></div></div><div class="child-of-line-80 child-of-line-155  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">
</div></div></div><div class="child-of-line-80 child-of-line-155  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-k">private</span> <span class="pl-k">static</span> <span class="pl-k">final</span> <span class="pl-smi">sun</span>.<span class="pl-smi">misc</span>.<span class="pl-smi">Unsafe</span> <span class="pl-c1">UNSAFE</span>;</div></div></div><div class="child-of-line-80 child-of-line-155  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-k">private</span> <span class="pl-k">static</span> <span class="pl-k">final</span> <span class="pl-smi">long</span> <span class="pl-s1">itemOffset</span>;</div></div></div><div class="child-of-line-80 child-of-line-155  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-k">private</span> <span class="pl-k">static</span> <span class="pl-k">final</span> <span class="pl-smi">long</span> <span class="pl-s1">nextOffset</span>;</div></div></div><div class="child-of-line-80 child-of-line-155  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">
</div></div></div><div class="child-of-line-80 child-of-line-155  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">        <span class="pl-k">static</span> {</div></div></div><div class="child-of-line-80 child-of-line-155  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-k">try</span> {</div></div></div><div class="child-of-line-80 child-of-line-155  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">                <span class="pl-c1">UNSAFE</span> = <span class="pl-smi">UnsafeSupport</span>.<span class="pl-en">getUnsafeInstance</span>();</div></div></div><div class="child-of-line-80 child-of-line-155  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-smi">Class</span>&lt;?&gt; <span class="pl-s1">k</span> = <span class="pl-smi">Node</span>.<span class="pl-k">class</span>;</div></div></div><div class="child-of-line-80 child-of-line-155  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-s1">itemOffset</span> = <span class="pl-c1">UNSAFE</span>.<span class="pl-en">objectFieldOffset</span></div></div></div><div class="child-of-line-80 child-of-line-155  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-s1">k</span>.<span class="pl-en">getDeclaredField</span>(<span class="pl-s">&quot;item&quot;</span>));</div></div></div><div class="child-of-line-80 child-of-line-155  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-s1">nextOffset</span> = <span class="pl-c1">UNSAFE</span>.<span class="pl-en">objectFieldOffset</span></div></div></div><div class="child-of-line-80 child-of-line-155  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-s1">k</span>.<span class="pl-en">getDeclaredField</span>(<span class="pl-s">&quot;next&quot;</span>));</div></div></div><div class="child-of-line-80 child-of-line-155  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">            } <span class="pl-k">catch</span> (<span class="pl-smi">Exception</span> <span class="pl-s1">e</span>) {</div></div></div><div class="child-of-line-80 child-of-line-155  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-k">throw</span> <span class="pl-k">new</span> <span class="pl-smi">Error</span>(<span class="pl-s1">e</span>);</div></div></div><div class="child-of-line-80 child-of-line-155  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">            }</div></div></div><div class="child-of-line-80 child-of-line-155  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">        }</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-c">/**</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * A node from which the first live (non-deleted) node (if any)</span></div></div></div><div class="child-of-line-80  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">     * can be reached in O(1) time.</span></div></div></div><div class="child-of-line-80  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-c">     * Invariants:</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * - all live nodes are reachable from head via succ()</span></div></div></div><div class="child-of-line-80  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">     * - head != null</span></div></div></div><div class="child-of-line-80  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-c">     * - (tmp = head).next != tmp || tmp != head</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * Non-invariants:</span></div></div></div><div class="child-of-line-80  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">     * - head.item may or may not be null.</span></div></div></div><div class="child-of-line-80  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">     * - it is permitted for tail to lag behind head, that is, for tail</span></div></div></div><div class="child-of-line-80  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">     *   to not be reachable from head!</span></div></div></div><div class="child-of-line-80  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">     */</span></div></div></div><div class="child-of-line-80  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-k">private</span> <span class="pl-k">transient</span> <span class="pl-k">volatile</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">head</span>;</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">    <span class="pl-c">/**</span></div></div></div><div class="child-of-line-80  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">     * A node from which the last node on list (that is, the unique</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * node with node.next == null) can be reached in O(1) time.</span></div></div></div><div class="child-of-line-80  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">     * Invariants:</span></div></div></div><div class="child-of-line-80  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">     * - the last node is always reachable from tail via succ()</span></div></div></div><div class="child-of-line-80  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">     * - tail != null</span></div></div></div><div class="child-of-line-80  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">     * Non-invariants:</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * - tail.item may or may not be null.</span></div></div></div><div class="child-of-line-80  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">     * - it is permitted for tail to lag behind head, that is, for tail</span></div></div></div><div class="child-of-line-80  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-c">     *   to not be reachable from head!</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * - tail.next may or may not be self-pointing to tail.</span></div></div></div><div class="child-of-line-80  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">     */</span></div></div></div><div class="child-of-line-80  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-k">private</span> <span class="pl-k">transient</span> <span class="pl-k">volatile</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">tail</span>;</div></div></div><div class="child-of-line-80  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="child-of-line-80  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">/**</span></div></div></div><div class="child-of-line-80  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-c">     * Creates a {@code ConcurrentLinkedQueue} that is initially empty.</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     */</span></div></div></div><div class="child-of-line-80  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-k">public</span> <span class="pl-smi">ConcurrentLinkedQueue</span>() {</div></div></div><div class="child-of-line-80  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-s1">head</span> = <span class="pl-s1">tail</span> = <span class="pl-k">new</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt;(<span class="pl-c1">null</span>);</div></div></div><div class="child-of-line-80  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="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-c">/**</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * Creates a {@code ConcurrentLinkedQueue}</span></div></div></div><div class="child-of-line-80  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">     * initially containing the elements of the given collection,</span></div></div></div><div class="child-of-line-80  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-c">     * added in traversal order of the collection&#039;s iterator.</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     *</span></div></div></div><div class="child-of-line-80  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">     * @param c the collection of elements to initially contain</span></div></div></div><div class="child-of-line-80  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-c">     * @throws NullPointerException if the specified collection or any</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     *         of its elements are null</span></div></div></div><div class="child-of-line-80  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">     */</span></div></div></div><div class="child-of-line-80  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">    <span class="pl-k">public</span> <span class="pl-smi">ConcurrentLinkedQueue</span>(<span class="pl-smi">Collection</span>&lt;? <span class="pl-k">extends</span> <span class="pl-smi">E</span>&gt; <span class="pl-s1">c</span>) {</div></div></div><div class="child-of-line-80 child-of-line-243  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">h</span> = <span class="pl-c1">null</span>, <span class="pl-s1">t</span> = <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-243  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-k">for</span> (<span class="pl-smi">E</span> <span class="pl-s1">e</span> : <span class="pl-s1">c</span>) {</div></div></div><div class="child-of-line-80 child-of-line-243  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-en">checkNotNull</span>(<span class="pl-s1">e</span>);</div></div></div><div class="child-of-line-80 child-of-line-243  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">newNode</span> = <span class="pl-k">new</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt;(<span class="pl-s1">e</span>);</div></div></div><div class="child-of-line-80 child-of-line-243  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-k">if</span> (<span class="pl-s1">h</span> == <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-243  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">                <span class="pl-s1">h</span> = <span class="pl-s1">t</span> = <span class="pl-s1">newNode</span>;</div></div></div><div class="child-of-line-80 child-of-line-243  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-k">else</span> {</div></div></div><div class="child-of-line-80 child-of-line-243  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-s1">t</span>.<span class="pl-en">lazySetNext</span>(<span class="pl-s1">newNode</span>);</div></div></div><div class="child-of-line-80 child-of-line-243  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-s1">t</span> = <span class="pl-s1">newNode</span>;</div></div></div><div class="child-of-line-80 child-of-line-243  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">            }</div></div></div><div class="child-of-line-80 child-of-line-243  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">        }</div></div></div><div class="child-of-line-80 child-of-line-243  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-k">if</span> (<span class="pl-s1">h</span> == <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-243  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">            <span class="pl-s1">h</span> = <span class="pl-s1">t</span> = <span class="pl-k">new</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt;(<span class="pl-c1">null</span>);</div></div></div><div class="child-of-line-80 child-of-line-243  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-s1">head</span> = <span class="pl-s1">h</span>;</div></div></div><div class="child-of-line-80 child-of-line-243  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-s1">tail</span> = <span class="pl-s1">t</span>;</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">// Have to override just to update the javadoc</span></div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">    <span class="pl-c">/**</span></div></div></div><div class="child-of-line-80  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">     * Inserts the specified element at the tail of this queue.</span></div></div></div><div class="child-of-line-80  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">     * As the queue is unbounded, this method will never throw</span></div></div></div><div class="child-of-line-80  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">     * {@link IllegalStateException} or return {@code false}.</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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-c">     * @return {@code true} (as specified by {@link Collection#add})</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * @throws NullPointerException if the specified element is null</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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-k">public</span> <span class="pl-smi">boolean</span> <span class="pl-en">add</span>(<span class="pl-smi">E</span> <span class="pl-s1">e</span>) {</div></div></div><div class="child-of-line-80  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-k">return</span> <span class="pl-en">offer</span>(<span class="pl-s1">e</span>);</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">    <span class="pl-c">/**</span></div></div></div><div class="child-of-line-80  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">     * Tries to CAS head to p. If successful, repoint old head to itself</span></div></div></div><div class="child-of-line-80  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">     * as sentinel for succ(), below.</span></div></div></div><div class="child-of-line-80  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">     */</span></div></div></div><div class="child-of-line-80  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-k">final</span> <span class="pl-smi">void</span> <span class="pl-en">updateHead</span>(<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">h</span>, <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">p</span>) {</div></div></div><div class="child-of-line-80  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-k">if</span> (<span class="pl-s1">h</span> != <span class="pl-s1">p</span> &amp;&amp; <span class="pl-en">casHead</span>(<span class="pl-s1">h</span>, <span class="pl-s1">p</span>))</div></div></div><div class="child-of-line-80  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-s1">h</span>.<span class="pl-en">lazySetNext</span>(<span class="pl-s1">h</span>);</div></div></div><div class="child-of-line-80  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="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">/**</span></div></div></div><div class="child-of-line-80  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 the successor of p, or the head node if p.next has been</span></div></div></div><div class="child-of-line-80  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">     * linked to self, which will only be true if traversing with a</span></div></div></div><div class="child-of-line-80  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">     * stale pointer that is now off the list.</span></div></div></div><div class="child-of-line-80  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-c">     */</span></div></div></div><div class="child-of-line-80  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">final</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-en">succ</span>(<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">p</span>) {</div></div></div><div class="child-of-line-80  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">        <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">next</span> = <span class="pl-s1">p</span>.<span class="pl-s1">next</span>;</div></div></div><div class="child-of-line-80  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-k">return</span> (<span class="pl-s1">p</span> == <span class="pl-s1">next</span>) ? <span class="pl-s1">head</span> : <span class="pl-s1">next</span>;</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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="child-of-line-80  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-c">     * Inserts the specified element at the tail of this queue.</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * As the queue is unbounded, this method will never return {@code false}.</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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">     * @return {@code true} (as specified by {@link Queue#offer})</span></div></div></div><div class="child-of-line-80  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">     * @throws NullPointerException if the specified element is null</span></div></div></div><div class="child-of-line-80  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">     */</span></div></div></div><div class="child-of-line-80  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-k">public</span> <span class="pl-smi">boolean</span> <span class="pl-en">offer</span>(<span class="pl-smi">E</span> <span class="pl-s1">e</span>) {</div></div></div><div class="child-of-line-80 child-of-line-301  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-en">checkNotNull</span>(<span class="pl-s1">e</span>);</div></div></div><div class="child-of-line-80 child-of-line-301  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">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">newNode</span> = <span class="pl-k">new</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt;(<span class="pl-s1">e</span>);</div></div></div><div class="child-of-line-80 child-of-line-301  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="child-of-line-80 child-of-line-301  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-k">for</span> (<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">t</span> = <span class="pl-s1">tail</span>, <span class="pl-s1">p</span> = <span class="pl-s1">t</span>;;) {</div></div></div><div class="child-of-line-80 child-of-line-301  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">q</span> = <span class="pl-s1">p</span>.<span class="pl-s1">next</span>;</div></div></div><div class="child-of-line-80 child-of-line-301  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-k">if</span> (<span class="pl-s1">q</span> == <span class="pl-c1">null</span>) {</div></div></div><div class="child-of-line-80 child-of-line-301  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">// p is last node</span></div></div></div><div class="child-of-line-80 child-of-line-301  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-k">if</span> (<span class="pl-s1">p</span>.<span class="pl-en">casNext</span>(<span class="pl-c1">null</span>, <span class="pl-s1">newNode</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-301  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-c">// Successful CAS is the linearization point</span></div></div></div><div class="child-of-line-80 child-of-line-301  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-c">// for e to become an element of this queue,</span></div></div></div><div class="child-of-line-80 child-of-line-301  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">                    <span class="pl-c">// and for newNode to become &quot;live&quot;.</span></div></div></div><div class="child-of-line-80 child-of-line-301  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">/*                    if (p != t) // hop two nodes at a time</span></div></div></div><div class="child-of-line-80 child-of-line-301  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"><span class="pl-c">                        casTail(t, newNode);  // Failure is OK.</span></div></div></div><div class="child-of-line-80 child-of-line-301  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="child-of-line-80 child-of-line-301  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-k">if</span> (<span class="pl-s1">p</span> != <span class="pl-s1">t</span>) {                 <span class="pl-c">// update if slack now &gt;= 2</span></div></div></div><div class="child-of-line-80 child-of-line-301  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-k">while</span> ((<span class="pl-s1">tail</span> != <span class="pl-s1">t</span> || !<span class="pl-en">casTail</span>(<span class="pl-s1">t</span>, <span class="pl-s1">newNode</span>)) &amp;&amp;</div></div></div><div class="child-of-line-80 child-of-line-301  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-s1">t</span> = <span class="pl-s1">tail</span>)   != <span class="pl-c1">null</span> &amp;&amp;</div></div></div><div class="child-of-line-80 child-of-line-301  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-s1">newNode</span> = <span class="pl-s1">t</span>.<span class="pl-s1">next</span>) != <span class="pl-c1">null</span> &amp;&amp; <span class="pl-c">// advance and retry</span></div></div></div><div class="child-of-line-80 child-of-line-301  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">                               (<span class="pl-s1">newNode</span> = <span class="pl-s1">newNode</span>.<span class="pl-s1">next</span>) != <span class="pl-c1">null</span> &amp;&amp; <span class="pl-s1">newNode</span> != <span class="pl-s1">t</span>);</div></div></div><div class="child-of-line-80 child-of-line-301  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">                    }</div></div></div><div class="child-of-line-80 child-of-line-301  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-k">return</span> <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-80 child-of-line-301  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">                }</div></div></div><div class="child-of-line-80 child-of-line-301  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-c">// Lost CAS race to another thread; re-read next</span></div></div></div><div class="child-of-line-80 child-of-line-301  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="child-of-line-80 child-of-line-301  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-k">else</span> <span class="pl-k">if</span> (<span class="pl-s1">p</span> == <span class="pl-s1">q</span>)</div></div></div><div class="child-of-line-80 child-of-line-301  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">// We have fallen off list.  If tail is unchanged, it</span></div></div></div><div class="child-of-line-80 child-of-line-301  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">// will also be off-list, in which case we need to</span></div></div></div><div class="child-of-line-80 child-of-line-301  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-c">// jump to head, from which all live nodes are always</span></div></div></div><div class="child-of-line-80 child-of-line-301  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">                <span class="pl-c">// reachable.  Else the new tail is a better bet.</span></div></div></div><div class="child-of-line-80 child-of-line-301  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-s1">p</span> = (<span class="pl-s1">t</span> != (<span class="pl-s1">t</span> = <span class="pl-s1">tail</span>)) ? <span class="pl-s1">t</span> : <span class="pl-s1">head</span>;</div></div></div><div class="child-of-line-80 child-of-line-301  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-k">else</span></div></div></div><div class="child-of-line-80 child-of-line-301  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">// Check for tail updates after two hops.</span></div></div></div><div class="child-of-line-80 child-of-line-301  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-s1">p</span> = (<span class="pl-s1">p</span> != <span class="pl-s1">t</span> &amp;&amp; <span class="pl-s1">t</span> != (<span class="pl-s1">t</span> = <span class="pl-s1">tail</span>)) ? <span class="pl-s1">t</span> : <span class="pl-s1">q</span>;</div></div></div><div class="child-of-line-80 child-of-line-301  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">        }</div></div></div><div class="child-of-line-80  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="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-k">public</span> <span class="pl-smi">E</span> <span class="pl-en">poll</span>() {</div></div></div><div class="child-of-line-80 child-of-line-338  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-s1">restartFromHead</span>:</div></div></div><div class="child-of-line-80 child-of-line-338  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-k">for</span> (;;) {</div></div></div><div class="child-of-line-80 child-of-line-338  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-k">for</span> (<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">h</span> = <span class="pl-s1">head</span>, <span class="pl-s1">p</span> = <span class="pl-s1">h</span>, <span class="pl-s1">q</span>;;) {</div></div></div><div class="child-of-line-80 child-of-line-338  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">                <span class="pl-smi">E</span> <span class="pl-s1">item</span> = <span class="pl-s1">p</span>.<span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-338  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">
</div></div></div><div class="child-of-line-80 child-of-line-338  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-k">if</span> (<span class="pl-s1">item</span> != <span class="pl-c1">null</span> &amp;&amp; <span class="pl-s1">p</span>.<span class="pl-en">casItem</span>(<span class="pl-s1">item</span>, <span class="pl-c1">null</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-338  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">// Successful CAS is the linearization point</span></div></div></div><div class="child-of-line-80 child-of-line-338  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">// for item to be removed from this queue.</span></div></div></div><div class="child-of-line-80 child-of-line-338  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">/*                    if (p != h) // hop two nodes at a time</span></div></div></div><div class="child-of-line-80 child-of-line-338  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-c">                        updateHead(h, ((q = p.next) != null) ? q : p);</span></div></div></div><div class="child-of-line-80 child-of-line-338  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"><span class="pl-c">*/</span></div></div></div><div class="child-of-line-80 child-of-line-338  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">                    </div></div></div><div class="child-of-line-80 child-of-line-338  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-k">for</span> (<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">r</span> = <span class="pl-s1">p</span>; <span class="pl-s1">r</span> != <span class="pl-s1">h</span>;) { <span class="pl-c">// hop two nodes at a time</span></div></div></div><div class="child-of-line-80 child-of-line-338  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">n</span> = <span class="pl-s1">r</span>.<span class="pl-s1">next</span>;  <span class="pl-c">// update by 2 unless singleton</span></div></div></div><div class="child-of-line-80 child-of-line-338  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-k">if</span> (<span class="pl-s1">head</span> == <span class="pl-s1">h</span> &amp;&amp; <span class="pl-en">casHead</span>(<span class="pl-s1">h</span>, <span class="pl-s1">n</span> == <span class="pl-c1">null</span> ? <span class="pl-s1">r</span> : <span class="pl-s1">n</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-338  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-s1">h</span>.<span class="pl-en">lazySetNext</span>(<span class="pl-s1">h</span>);</div></div></div><div class="child-of-line-80 child-of-line-338  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">break</span>;</div></div></div><div class="child-of-line-80 child-of-line-338  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">                        }                 <span class="pl-c">// advance and retry</span></div></div></div><div class="child-of-line-80 child-of-line-338  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-k">if</span> ((<span class="pl-s1">h</span> = <span class="pl-s1">head</span>) == <span class="pl-c1">null</span> ||</div></div></div><div class="child-of-line-80 child-of-line-338  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-s1">r</span> = <span class="pl-s1">h</span>.<span class="pl-s1">next</span>) ==<span class="pl-c1">null</span> || <span class="pl-s1">r</span>.<span class="pl-s1">item</span> != <span class="pl-c1">null</span>)) </div></div></div><div class="child-of-line-80 child-of-line-338  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-k">break</span>;        <span class="pl-c">// unless slack &lt; 2</span></div></div></div><div class="child-of-line-80 child-of-line-338  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">                    }</div></div></div><div class="child-of-line-80 child-of-line-338  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-k">return</span> <span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-338  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">                }</div></div></div><div class="child-of-line-80 child-of-line-338  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">else</span> <span class="pl-k">if</span> ((<span class="pl-s1">q</span> = <span class="pl-s1">p</span>.<span class="pl-s1">next</span>) == <span class="pl-c1">null</span>) {</div></div></div><div class="child-of-line-80 child-of-line-338  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">                    <span class="pl-en">updateHead</span>(<span class="pl-s1">h</span>, <span class="pl-s1">p</span>);</div></div></div><div class="child-of-line-80 child-of-line-338  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-k">return</span> <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-338  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">                }</div></div></div><div class="child-of-line-80 child-of-line-338  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-k">else</span> <span class="pl-k">if</span> (<span class="pl-s1">p</span> == <span class="pl-s1">q</span>)</div></div></div><div class="child-of-line-80 child-of-line-338  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-k">continue</span> <span class="pl-s1">restartFromHead</span>;</div></div></div><div class="child-of-line-80 child-of-line-338  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-k">else</span></div></div></div><div class="child-of-line-80 child-of-line-338  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">                    <span class="pl-s1">p</span> = <span class="pl-s1">q</span>;</div></div></div><div class="child-of-line-80 child-of-line-338  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">            }</div></div></div><div class="child-of-line-80 child-of-line-338  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">        }</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-k">public</span> <span class="pl-smi">E</span> <span class="pl-en">peek</span>() {</div></div></div><div class="child-of-line-80 child-of-line-375  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">        <span class="pl-s1">restartFromHead</span>:</div></div></div><div class="child-of-line-80 child-of-line-375  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-k">for</span> (;;) {</div></div></div><div class="child-of-line-80 child-of-line-375  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-k">for</span> (<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">h</span> = <span class="pl-s1">head</span>, <span class="pl-s1">p</span> = <span class="pl-s1">h</span>, <span class="pl-s1">q</span>;;) {</div></div></div><div class="child-of-line-80 child-of-line-375  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-smi">E</span> <span class="pl-s1">item</span> = <span class="pl-s1">p</span>.<span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-375  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-k">if</span> (<span class="pl-s1">item</span> != <span class="pl-c1">null</span> || (<span class="pl-s1">q</span> = <span class="pl-s1">p</span>.<span class="pl-s1">next</span>) == <span class="pl-c1">null</span>) {</div></div></div><div class="child-of-line-80 child-of-line-375  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-en">updateHead</span>(<span class="pl-s1">h</span>, <span class="pl-s1">p</span>);</div></div></div><div class="child-of-line-80 child-of-line-375  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-k">return</span> <span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-375  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="child-of-line-80 child-of-line-375  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-k">else</span> <span class="pl-k">if</span> (<span class="pl-s1">p</span> == <span class="pl-s1">q</span>)</div></div></div><div class="child-of-line-80 child-of-line-375  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-k">continue</span> <span class="pl-s1">restartFromHead</span>;</div></div></div><div class="child-of-line-80 child-of-line-375  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-k">else</span></div></div></div><div class="child-of-line-80 child-of-line-375  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-s1">p</span> = <span class="pl-s1">q</span>;</div></div></div><div class="child-of-line-80 child-of-line-375  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">            }</div></div></div><div class="child-of-line-80 child-of-line-375  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">        }</div></div></div><div class="child-of-line-80  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="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">/**</span></div></div></div><div class="child-of-line-80  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">     * Returns the first live (non-deleted) node on list, or null if none.</span></div></div></div><div class="child-of-line-80  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">     * This is yet another variant of poll/peek; here returning the</span></div></div></div><div class="child-of-line-80  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-c">     * first node, not element.  We could make peek() a wrapper around</span></div></div></div><div class="child-of-line-80  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-c">     * first(), but that would cost an extra volatile read of item,</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * and the need to add a retry loop to deal with the possibility</span></div></div></div><div class="child-of-line-80  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">     * of losing a race to a concurrent poll().</span></div></div></div><div class="child-of-line-80  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">     */</span></div></div></div><div class="child-of-line-80  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-en">first</span>() {</div></div></div><div class="child-of-line-80 child-of-line-400  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-s1">restartFromHead</span>:</div></div></div><div class="child-of-line-80 child-of-line-400  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">for</span> (;;) {</div></div></div><div class="child-of-line-80 child-of-line-400  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">            <span class="pl-k">for</span> (<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">h</span> = <span class="pl-s1">head</span>, <span class="pl-s1">p</span> = <span class="pl-s1">h</span>, <span class="pl-s1">q</span>;;) {</div></div></div><div class="child-of-line-80 child-of-line-400  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-smi">boolean</span> <span class="pl-s1">hasItem</span> = (<span class="pl-s1">p</span>.<span class="pl-s1">item</span> != <span class="pl-c1">null</span>);</div></div></div><div class="child-of-line-80 child-of-line-400  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-k">if</span> (<span class="pl-s1">hasItem</span> || (<span class="pl-s1">q</span> = <span class="pl-s1">p</span>.<span class="pl-s1">next</span>) == <span class="pl-c1">null</span>) {</div></div></div><div class="child-of-line-80 child-of-line-400  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-en">updateHead</span>(<span class="pl-s1">h</span>, <span class="pl-s1">p</span>);</div></div></div><div class="child-of-line-80 child-of-line-400  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-k">return</span> <span class="pl-s1">hasItem</span> ? <span class="pl-s1">p</span> : <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-400  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">                }</div></div></div><div class="child-of-line-80 child-of-line-400  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">                <span class="pl-k">else</span> <span class="pl-k">if</span> (<span class="pl-s1">p</span> == <span class="pl-s1">q</span>)</div></div></div><div class="child-of-line-80 child-of-line-400  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-k">continue</span> <span class="pl-s1">restartFromHead</span>;</div></div></div><div class="child-of-line-80 child-of-line-400  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">                <span class="pl-k">else</span></div></div></div><div class="child-of-line-80 child-of-line-400  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-s1">p</span> = <span class="pl-s1">q</span>;</div></div></div><div class="child-of-line-80 child-of-line-400  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">            }</div></div></div><div class="child-of-line-80 child-of-line-400  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">        }</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-c">/**</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * Returns {@code true} if this queue contains no elements.</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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">     * @return {@code true} if this queue contains no elements</span></div></div></div><div class="child-of-line-80  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">     */</span></div></div></div><div class="child-of-line-80  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-k">public</span> <span class="pl-smi">boolean</span> <span class="pl-en">isEmpty</span>() {</div></div></div><div class="child-of-line-80  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-k">return</span> <span class="pl-en">first</span>() == <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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="child-of-line-80  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="child-of-line-80  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">     * Returns the number of elements in this queue.  If this queue</span></div></div></div><div class="child-of-line-80  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">     * contains more than {@code Integer.MAX_VALUE} elements, returns</span></div></div></div><div class="child-of-line-80  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">     * {@code Integer.MAX_VALUE}.</span></div></div></div><div class="child-of-line-80  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">     *</span></div></div></div><div class="child-of-line-80  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">     * &lt;p&gt;Beware that, unlike in most collections, this method is</span></div></div></div><div class="child-of-line-80  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-c">     * &lt;em&gt;NOT&lt;/em&gt; a constant-time operation. Because of the</span></div></div></div><div class="child-of-line-80  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-c">     * asynchronous nature of these queues, determining the current</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * number of elements requires an O(n) traversal.</span></div></div></div><div class="child-of-line-80  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">     * Additionally, if elements are added or removed during execution</span></div></div></div><div class="child-of-line-80  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">     * of this method, the returned result may be inaccurate.  Thus,</span></div></div></div><div class="child-of-line-80  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">     * this method is typically not very useful in concurrent</span></div></div></div><div class="child-of-line-80  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">     * applications.</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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-c">     * @return the number of elements in this queue</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     */</span></div></div></div><div class="child-of-line-80  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-k">public</span> <span class="pl-smi">int</span> <span class="pl-en">size</span>() {</div></div></div><div class="child-of-line-80 child-of-line-442  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-smi">int</span> <span class="pl-s1">count</span> = <span class="pl-c1">0</span>;</div></div></div><div class="child-of-line-80 child-of-line-442  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-k">for</span> (<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">p</span> = <span class="pl-en">first</span>(); <span class="pl-s1">p</span> != <span class="pl-c1">null</span>; <span class="pl-s1">p</span> = <span class="pl-en">succ</span>(<span class="pl-s1">p</span>))</div></div></div><div class="child-of-line-80 child-of-line-442  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-k">if</span> (<span class="pl-s1">p</span>.<span class="pl-s1">item</span> != <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-442  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">// Collection.size() spec says to max out</span></div></div></div><div class="child-of-line-80 child-of-line-442  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-k">if</span> (++<span class="pl-s1">count</span> == <span class="pl-smi">Integer</span>.<span class="pl-c1">MAX_VALUE</span>)</div></div></div><div class="child-of-line-80 child-of-line-442  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">                    <span class="pl-k">break</span>;</div></div></div><div class="child-of-line-80 child-of-line-442  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-k">return</span> <span class="pl-s1">count</span>;</div></div></div><div class="child-of-line-80  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="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">/**</span></div></div></div><div class="child-of-line-80  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 {@code true} if this queue contains the specified element.</span></div></div></div><div class="child-of-line-80  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">     * More formally, returns {@code true} if and only if this queue contains</span></div></div></div><div class="child-of-line-80  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">     * at least one element {@code e} such that {@code o.equals(e)}.</span></div></div></div><div class="child-of-line-80  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-c">     *</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * @param o object to be checked for containment in this queue</span></div></div></div><div class="child-of-line-80  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">     * @return {@code true} if this queue contains the specified element</span></div></div></div><div class="child-of-line-80  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-c">     */</span></div></div></div><div class="child-of-line-80  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">    <span class="pl-k">public</span> <span class="pl-smi">boolean</span> <span class="pl-en">contains</span>(<span class="pl-smi">Object</span> <span class="pl-s1">o</span>) {</div></div></div><div class="child-of-line-80 child-of-line-460  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-k">if</span> (<span class="pl-s1">o</span> == <span class="pl-c1">null</span>) <span class="pl-k">return</span> <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-80 child-of-line-460  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-k">for</span> (<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">p</span> = <span class="pl-en">first</span>(); <span class="pl-s1">p</span> != <span class="pl-c1">null</span>; <span class="pl-s1">p</span> = <span class="pl-en">succ</span>(<span class="pl-s1">p</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-460  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-smi">E</span> <span class="pl-s1">item</span> = <span class="pl-s1">p</span>.<span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-460  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-k">if</span> (<span class="pl-s1">item</span> != <span class="pl-c1">null</span> &amp;&amp; <span class="pl-s1">o</span>.<span class="pl-en">equals</span>(<span class="pl-s1">item</span>))</div></div></div><div class="child-of-line-80 child-of-line-460  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-k">return</span> <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-80 child-of-line-460  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">        }</div></div></div><div class="child-of-line-80 child-of-line-460  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-k">return</span> <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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="child-of-line-80  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="child-of-line-80  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">     * Removes a single instance of the specified element from this queue,</span></div></div></div><div class="child-of-line-80  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">     * if it is present.  More formally, removes an element {@code e} such</span></div></div></div><div class="child-of-line-80  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">     * that {@code o.equals(e)}, if this queue contains one or more such</span></div></div></div><div class="child-of-line-80  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">     * elements.</span></div></div></div><div class="child-of-line-80  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-c">     * Returns {@code true} if this queue contained the specified element</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * (or equivalently, if this queue changed as a result of the call).</span></div></div></div><div class="child-of-line-80  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">     *</span></div></div></div><div class="child-of-line-80  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-c">     * @param o element to be removed from this queue, if present</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * @return {@code true} if this queue changed as a result of the call</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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-k">public</span> <span class="pl-smi">boolean</span> <span class="pl-en">remove</span>(<span class="pl-smi">Object</span> <span class="pl-s1">o</span>) {</div></div></div><div class="child-of-line-80 child-of-line-481  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-k">if</span> (<span class="pl-s1">o</span> == <span class="pl-c1">null</span>) <span class="pl-k">return</span> <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-80 child-of-line-481  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">pred</span> = <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-481  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-k">for</span> (<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">p</span> = <span class="pl-en">first</span>(); <span class="pl-s1">p</span> != <span class="pl-c1">null</span>; <span class="pl-s1">p</span> = <span class="pl-en">succ</span>(<span class="pl-s1">p</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-481  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">E</span> <span class="pl-s1">item</span> = <span class="pl-s1">p</span>.<span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-481  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">if</span> (<span class="pl-s1">item</span> != <span class="pl-c1">null</span> &amp;&amp;</div></div></div><div class="child-of-line-80 child-of-line-481  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">                <span class="pl-s1">o</span>.<span class="pl-en">equals</span>(<span class="pl-s1">item</span>) &amp;&amp;</div></div></div><div class="child-of-line-80 child-of-line-481  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-s1">p</span>.<span class="pl-en">casItem</span>(<span class="pl-s1">item</span>, <span class="pl-c1">null</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-481  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">next</span> = <span class="pl-en">succ</span>(<span class="pl-s1">p</span>);</div></div></div><div class="child-of-line-80 child-of-line-481  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-k">if</span> (<span class="pl-s1">pred</span> != <span class="pl-c1">null</span> &amp;&amp; <span class="pl-s1">next</span> != <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-481  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-s1">pred</span>.<span class="pl-en">casNext</span>(<span class="pl-s1">p</span>, <span class="pl-s1">next</span>);</div></div></div><div class="child-of-line-80 child-of-line-481  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-k">return</span> <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-80 child-of-line-481  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">            }</div></div></div><div class="child-of-line-80 child-of-line-481  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">            <span class="pl-s1">pred</span> = <span class="pl-s1">p</span>;</div></div></div><div class="child-of-line-80 child-of-line-481  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">        }</div></div></div><div class="child-of-line-80 child-of-line-481  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-k">return</span> <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-80  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="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">/**</span></div></div></div><div class="child-of-line-80  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">     * Appends all of the elements in the specified collection to the end of</span></div></div></div><div class="child-of-line-80  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">     * this queue, in the order that they are returned by the specified</span></div></div></div><div class="child-of-line-80  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">     * collection&#039;s iterator.  Attempts to {@code addAll} of a queue to</span></div></div></div><div class="child-of-line-80  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-c">     * itself result in {@code IllegalArgumentException}.</span></div></div></div><div class="child-of-line-80  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-c">     *</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * @param c the elements to be inserted into this queue</span></div></div></div><div class="child-of-line-80  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">     * @return {@code true} if this queue changed as a result of the call</span></div></div></div><div class="child-of-line-80  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">     * @throws NullPointerException if the specified collection or any</span></div></div></div><div class="child-of-line-80  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">     *         of its elements are null</span></div></div></div><div class="child-of-line-80  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">     * @throws IllegalArgumentException if the collection is this queue</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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-k">public</span> <span class="pl-smi">boolean</span> <span class="pl-en">addAll</span>(<span class="pl-smi">Collection</span>&lt;? <span class="pl-k">extends</span> <span class="pl-smi">E</span>&gt; <span class="pl-s1">c</span>) {</div></div></div><div class="child-of-line-80 child-of-line-511  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">        <span class="pl-k">if</span> (<span class="pl-s1">c</span> == <span class="pl-smi">this</span>)</div></div></div><div class="child-of-line-80 child-of-line-511  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">// As historically specified in AbstractQueue#addAll</span></div></div></div><div class="child-of-line-80 child-of-line-511  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-k">throw</span> <span class="pl-k">new</span> <span class="pl-smi">IllegalArgumentException</span>();</div></div></div><div class="child-of-line-80 child-of-line-511  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="child-of-line-80 child-of-line-511  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">// Copy c into a private chain of Nodes</span></div></div></div><div class="child-of-line-80 child-of-line-511  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">beginningOfTheEnd</span> = <span class="pl-c1">null</span>, <span class="pl-s1">last</span> = <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-511  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-k">for</span> (<span class="pl-smi">E</span> <span class="pl-s1">e</span> : <span class="pl-s1">c</span>) {</div></div></div><div class="child-of-line-80 child-of-line-511  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-en">checkNotNull</span>(<span class="pl-s1">e</span>);</div></div></div><div class="child-of-line-80 child-of-line-511  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">newNode</span> = <span class="pl-k">new</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt;(<span class="pl-s1">e</span>);</div></div></div><div class="child-of-line-80 child-of-line-511  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-k">if</span> (<span class="pl-s1">beginningOfTheEnd</span> == <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-511  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-s1">beginningOfTheEnd</span> = <span class="pl-s1">last</span> = <span class="pl-s1">newNode</span>;</div></div></div><div class="child-of-line-80 child-of-line-511  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">else</span> {</div></div></div><div class="child-of-line-80 child-of-line-511  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">                <span class="pl-s1">last</span>.<span class="pl-en">lazySetNext</span>(<span class="pl-s1">newNode</span>);</div></div></div><div class="child-of-line-80 child-of-line-511  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-s1">last</span> = <span class="pl-s1">newNode</span>;</div></div></div><div class="child-of-line-80 child-of-line-511  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">            }</div></div></div><div class="child-of-line-80 child-of-line-511  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">        }</div></div></div><div class="child-of-line-80 child-of-line-511  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-k">if</span> (<span class="pl-s1">beginningOfTheEnd</span> == <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-511  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-k">return</span> <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-80 child-of-line-511  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">
</div></div></div><div class="child-of-line-80 child-of-line-511  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-c">// Atomically append the chain at the tail of this collection</span></div></div></div><div class="child-of-line-80 child-of-line-511  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">for</span> (<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">t</span> = <span class="pl-s1">tail</span>, <span class="pl-s1">p</span> = <span class="pl-s1">t</span>;;) {</div></div></div><div class="child-of-line-80 child-of-line-511  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">q</span> = <span class="pl-s1">p</span>.<span class="pl-s1">next</span>;</div></div></div><div class="child-of-line-80 child-of-line-511  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">if</span> (<span class="pl-s1">q</span> == <span class="pl-c1">null</span>) {</div></div></div><div class="child-of-line-80 child-of-line-511  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">                <span class="pl-c">// p is last node</span></div></div></div><div class="child-of-line-80 child-of-line-511  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-k">if</span> (<span class="pl-s1">p</span>.<span class="pl-en">casNext</span>(<span class="pl-c1">null</span>, <span class="pl-s1">beginningOfTheEnd</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-511  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">// Successful CAS is the linearization point</span></div></div></div><div class="child-of-line-80 child-of-line-511  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">// for all elements to be added to this queue.</span></div></div></div><div class="child-of-line-80 child-of-line-511  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-k">if</span> (!<span class="pl-en">casTail</span>(<span class="pl-s1">t</span>, <span class="pl-s1">last</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-511  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-c">// Try a little harder to update tail,</span></div></div></div><div class="child-of-line-80 child-of-line-511  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">                        <span class="pl-c">// since we may be adding many elements.</span></div></div></div><div class="child-of-line-80 child-of-line-511  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-s1">t</span> = <span class="pl-s1">tail</span>;</div></div></div><div class="child-of-line-80 child-of-line-511  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-k">if</span> (<span class="pl-s1">last</span>.<span class="pl-s1">next</span> == <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-511  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-en">casTail</span>(<span class="pl-s1">t</span>, <span class="pl-s1">last</span>);</div></div></div><div class="child-of-line-80 child-of-line-511  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">                    }</div></div></div><div class="child-of-line-80 child-of-line-511  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-k">return</span> <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-80 child-of-line-511  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="child-of-line-80 child-of-line-511  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">// Lost CAS race to another thread; re-read next</span></div></div></div><div class="child-of-line-80 child-of-line-511  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">            }</div></div></div><div class="child-of-line-80 child-of-line-511  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-k">else</span> <span class="pl-k">if</span> (<span class="pl-s1">p</span> == <span class="pl-s1">q</span>)</div></div></div><div class="child-of-line-80 child-of-line-511  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">// We have fallen off list.  If tail is unchanged, it</span></div></div></div><div class="child-of-line-80 child-of-line-511  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">// will also be off-list, in which case we need to</span></div></div></div><div class="child-of-line-80 child-of-line-511  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-c">// jump to head, from which all live nodes are always</span></div></div></div><div class="child-of-line-80 child-of-line-511  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-c">// reachable.  Else the new tail is a better bet.</span></div></div></div><div class="child-of-line-80 child-of-line-511  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">                <span class="pl-s1">p</span> = (<span class="pl-s1">t</span> != (<span class="pl-s1">t</span> = <span class="pl-s1">tail</span>)) ? <span class="pl-s1">t</span> : <span class="pl-s1">head</span>;</div></div></div><div class="child-of-line-80 child-of-line-511  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-k">else</span></div></div></div><div class="child-of-line-80 child-of-line-511  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">// Check for tail updates after two hops.</span></div></div></div><div class="child-of-line-80 child-of-line-511  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-s1">p</span> = (<span class="pl-s1">p</span> != <span class="pl-s1">t</span> &amp;&amp; <span class="pl-s1">t</span> != (<span class="pl-s1">t</span> = <span class="pl-s1">tail</span>)) ? <span class="pl-s1">t</span> : <span class="pl-s1">q</span>;</div></div></div><div class="child-of-line-80 child-of-line-511  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">        }</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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="child-of-line-80  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="child-of-line-80  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 an array containing all of the elements in this queue, in</span></div></div></div><div class="child-of-line-80  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">     * proper sequence.</span></div></div></div><div class="child-of-line-80  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">     *</span></div></div></div><div class="child-of-line-80  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">     * &lt;p&gt;The returned array will be &quot;safe&quot; in that no references to it are</span></div></div></div><div class="child-of-line-80  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-c">     * maintained by this queue.  (In other words, this method must allocate</span></div></div></div><div class="child-of-line-80  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-c">     * a new array).  The caller is thus free to modify the returned array.</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     *</span></div></div></div><div class="child-of-line-80  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">     * &lt;p&gt;This method acts as bridge between array-based and collection-based</span></div></div></div><div class="child-of-line-80  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">     * APIs.</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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-c">     * @return an array containing all of the elements in this queue</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     */</span></div></div></div><div class="child-of-line-80  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-k">public</span> <span class="pl-smi">Object</span>[] <span class="pl-en">toArray</span>() {</div></div></div><div class="child-of-line-80 child-of-line-575  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">        <span class="pl-c">// Use ArrayList to deal with resizing.</span></div></div></div><div class="child-of-line-80 child-of-line-575  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-smi">ArrayList</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">al</span> = <span class="pl-k">new</span> <span class="pl-smi">ArrayList</span>&lt;<span class="pl-smi">E</span>&gt;();</div></div></div><div class="child-of-line-80 child-of-line-575  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-k">for</span> (<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">p</span> = <span class="pl-en">first</span>(); <span class="pl-s1">p</span> != <span class="pl-c1">null</span>; <span class="pl-s1">p</span> = <span class="pl-en">succ</span>(<span class="pl-s1">p</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-575  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-smi">E</span> <span class="pl-s1">item</span> = <span class="pl-s1">p</span>.<span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-575  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-k">if</span> (<span class="pl-s1">item</span> != <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-575  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-s1">al</span>.<span class="pl-en">add</span>(<span class="pl-s1">item</span>);</div></div></div><div class="child-of-line-80 child-of-line-575  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">        }</div></div></div><div class="child-of-line-80 child-of-line-575  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-k">return</span> <span class="pl-s1">al</span>.<span class="pl-en">toArray</span>();</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-c">/**</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * Returns an array containing all of the elements in this queue, in</span></div></div></div><div class="child-of-line-80  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">     * proper sequence; the runtime type of the returned array is that of</span></div></div></div><div class="child-of-line-80  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">     * the specified array.  If the queue fits in the specified array, it</span></div></div></div><div class="child-of-line-80  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">     * is returned therein.  Otherwise, a new array is allocated with the</span></div></div></div><div class="child-of-line-80  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">     * runtime type of the specified array and the size of this queue.</span></div></div></div><div class="child-of-line-80  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-c">     *</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * &lt;p&gt;If this queue fits in the specified array with room to spare</span></div></div></div><div class="child-of-line-80  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">     * (i.e., the array has more elements than this queue), the element in</span></div></div></div><div class="child-of-line-80  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">     * the array immediately following the end of the queue is set to</span></div></div></div><div class="child-of-line-80  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">     * {@code null}.</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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-c">     * &lt;p&gt;Like the {@link #toArray()} method, this method acts as bridge between</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * array-based and collection-based APIs.  Further, this method allows</span></div></div></div><div class="child-of-line-80  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">     * precise control over the runtime type of the output array, and may,</span></div></div></div><div class="child-of-line-80  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">     * under certain circumstances, be used to save allocation costs.</span></div></div></div><div class="child-of-line-80  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">     *</span></div></div></div><div class="child-of-line-80  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">     * &lt;p&gt;Suppose {@code x} is a queue known to contain only strings.</span></div></div></div><div class="child-of-line-80  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-c">     * The following code can be used to dump the queue into a newly</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * allocated array of {@code String}:</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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">     *  &lt;pre&gt; {@code String[] y = x.toArray(new String[0]);}&lt;/pre&gt;</span></div></div></div><div class="child-of-line-80  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">     *</span></div></div></div><div class="child-of-line-80  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">     * Note that {@code toArray(new Object[0])} is identical in function to</span></div></div></div><div class="child-of-line-80  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">     * {@code toArray()}.</span></div></div></div><div class="child-of-line-80  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-c">     *</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * @param a the array into which the elements of the queue are to</span></div></div></div><div class="child-of-line-80  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">     *          be stored, if it is big enough; otherwise, a new array of the</span></div></div></div><div class="child-of-line-80  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-c">     *          same runtime type is allocated for this purpose</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * @return an array containing all of the elements in this queue</span></div></div></div><div class="child-of-line-80  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">     * @throws ArrayStoreException if the runtime type of the specified array</span></div></div></div><div class="child-of-line-80  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">     *         is not a supertype of the runtime type of every element in</span></div></div></div><div class="child-of-line-80  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">     *         this queue</span></div></div></div><div class="child-of-line-80  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">     * @throws NullPointerException if the specified array is null</span></div></div></div><div class="child-of-line-80  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">     */</span></div></div></div><div class="child-of-line-80  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-c1">@</span><span class="pl-c1">SuppressWarnings</span>(<span class="pl-s">&quot;unchecked&quot;</span>)</div></div></div><div class="child-of-line-80  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-k">public</span> &lt;<span class="pl-smi">T</span>&gt; <span class="pl-smi">T</span>[] <span class="pl-en">toArray</span>(<span class="pl-smi">T</span>[] <span class="pl-s1">a</span>) {</div></div></div><div class="child-of-line-80 child-of-line-622  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-c">// try to use sent-in array</span></div></div></div><div class="child-of-line-80 child-of-line-622  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">int</span> <span class="pl-s1">k</span> = <span class="pl-c1">0</span>;</div></div></div><div class="child-of-line-80 child-of-line-622  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">        <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">p</span>;</div></div></div><div class="child-of-line-80 child-of-line-622  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-k">for</span> (<span class="pl-s1">p</span> = <span class="pl-en">first</span>(); <span class="pl-s1">p</span> != <span class="pl-c1">null</span> &amp;&amp; <span class="pl-s1">k</span> &lt; <span class="pl-s1">a</span>.<span class="pl-s1">length</span>; <span class="pl-s1">p</span> = <span class="pl-en">succ</span>(<span class="pl-s1">p</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-622  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-smi">E</span> <span class="pl-s1">item</span> = <span class="pl-s1">p</span>.<span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-622  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-k">if</span> (<span class="pl-s1">item</span> != <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-622  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-s1">a</span>[<span class="pl-s1">k</span>++] = (<span class="pl-smi">T</span>)<span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-622  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">        }</div></div></div><div class="child-of-line-80 child-of-line-622  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-k">if</span> (<span class="pl-s1">p</span> == <span class="pl-c1">null</span>) {</div></div></div><div class="child-of-line-80 child-of-line-622  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">            <span class="pl-k">if</span> (<span class="pl-s1">k</span> &lt; <span class="pl-s1">a</span>.<span class="pl-s1">length</span>)</div></div></div><div class="child-of-line-80 child-of-line-622  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-s1">a</span>[<span class="pl-s1">k</span>] = <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-622  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-k">return</span> <span class="pl-s1">a</span>;</div></div></div><div class="child-of-line-80 child-of-line-622  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">        }</div></div></div><div class="child-of-line-80 child-of-line-622  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">
</div></div></div><div class="child-of-line-80 child-of-line-622  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">// If won&#039;t fit, use ArrayList version</span></div></div></div><div class="child-of-line-80 child-of-line-622  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-smi">ArrayList</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">al</span> = <span class="pl-k">new</span> <span class="pl-smi">ArrayList</span>&lt;<span class="pl-smi">E</span>&gt;();</div></div></div><div class="child-of-line-80 child-of-line-622  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-k">for</span> (<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">q</span> = <span class="pl-en">first</span>(); <span class="pl-s1">q</span> != <span class="pl-c1">null</span>; <span class="pl-s1">q</span> = <span class="pl-en">succ</span>(<span class="pl-s1">q</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-622  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-smi">E</span> <span class="pl-s1">item</span> = <span class="pl-s1">q</span>.<span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-622  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-k">if</span> (<span class="pl-s1">item</span> != <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-622  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">                <span class="pl-s1">al</span>.<span class="pl-en">add</span>(<span class="pl-s1">item</span>);</div></div></div><div class="child-of-line-80 child-of-line-622  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">        }</div></div></div><div class="child-of-line-80 child-of-line-622  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-k">return</span> <span class="pl-s1">al</span>.<span class="pl-en">toArray</span>(<span class="pl-s1">a</span>);</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">/**</span></div></div></div><div class="child-of-line-80  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">     * Returns an iterator over the elements in this queue in proper sequence.</span></div></div></div><div class="child-of-line-80  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-c">     * The elements will be returned in order from first (head) to last (tail).</span></div></div></div><div class="child-of-line-80  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-c">     *</span></div></div></div><div class="child-of-line-80  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-c">     * &lt;p&gt;The returned iterator is</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * &lt;a href=&quot;package-summary.html#Weakly&quot;&gt;&lt;i&gt;weakly consistent&lt;/i&gt;&lt;/a&gt;.</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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">     * @return an iterator over the elements in this queue in proper sequence</span></div></div></div><div class="child-of-line-80  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">     */</span></div></div></div><div class="child-of-line-80  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-k">public</span> <span class="pl-smi">Iterator</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-en">iterator</span>() {</div></div></div><div class="child-of-line-80  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-k">return</span> <span class="pl-k">new</span> <span class="pl-smi">Itr</span>();</div></div></div><div class="child-of-line-80  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="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">    <span class="pl-k">private</span> <span class="pl-k">class</span> <span class="pl-smi">Itr</span> <span class="pl-k">implements</span> <span class="pl-smi">Iterator</span>&lt;<span class="pl-smi">E</span>&gt; {</div></div></div><div class="child-of-line-80 child-of-line-660  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="child-of-line-80 child-of-line-660  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">         * Next node to return item for.</span></div></div></div><div class="child-of-line-80 child-of-line-660  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">         */</span></div></div></div><div class="child-of-line-80 child-of-line-660  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-k">private</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">nextNode</span>;</div></div></div><div class="child-of-line-80 child-of-line-660  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">
</div></div></div><div class="child-of-line-80 child-of-line-660  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-c">/**</span></div></div></div><div class="child-of-line-80 child-of-line-660  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"><span class="pl-c">         * nextItem holds on to item fields because once we claim</span></div></div></div><div class="child-of-line-80 child-of-line-660  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">         * that an element exists in hasNext(), we must return it in</span></div></div></div><div class="child-of-line-80 child-of-line-660  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">         * the following next() call even if it was in the process of</span></div></div></div><div class="child-of-line-80 child-of-line-660  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">         * being removed when hasNext() was called.</span></div></div></div><div class="child-of-line-80 child-of-line-660  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">         */</span></div></div></div><div class="child-of-line-80 child-of-line-660  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-k">private</span> <span class="pl-smi">E</span> <span class="pl-s1">nextItem</span>;</div></div></div><div class="child-of-line-80 child-of-line-660  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">
</div></div></div><div class="child-of-line-80 child-of-line-660  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-c">/**</span></div></div></div><div class="child-of-line-80 child-of-line-660  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"><span class="pl-c">         * Node of the last returned item, to support remove.</span></div></div></div><div class="child-of-line-80 child-of-line-660  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="child-of-line-80 child-of-line-660  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-k">private</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">lastRet</span>;</div></div></div><div class="child-of-line-80 child-of-line-660  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">
</div></div></div><div class="child-of-line-80 child-of-line-660  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">Itr</span>() {</div></div></div><div class="child-of-line-80 child-of-line-660  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-en">advance</span>();</div></div></div><div class="child-of-line-80 child-of-line-660  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">        }</div></div></div><div class="child-of-line-80 child-of-line-660  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="child-of-line-80 child-of-line-660  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">/**</span></div></div></div><div class="child-of-line-80 child-of-line-660  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"><span class="pl-c">         * Moves to next valid node and returns item to return for</span></div></div></div><div class="child-of-line-80 child-of-line-660  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">         * next(), or null if no such.</span></div></div></div><div class="child-of-line-80 child-of-line-660  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">         */</span></div></div></div><div class="child-of-line-80 child-of-line-660  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-k">private</span> <span class="pl-smi">E</span> <span class="pl-en">advance</span>() {</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-s1">lastRet</span> = <span class="pl-s1">nextNode</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-smi">E</span> <span class="pl-s1">x</span> = <span class="pl-s1">nextItem</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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">
</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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">            <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">pred</span>, <span class="pl-s1">p</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-k">if</span> (<span class="pl-s1">nextNode</span> == <span class="pl-c1">null</span>) {</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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">                <span class="pl-s1">p</span> = <span class="pl-en">first</span>();</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-s1">pred</span> = <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-k">else</span> {</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-s1">pred</span> = <span class="pl-s1">nextNode</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-s1">p</span> = <span class="pl-en">succ</span>(<span class="pl-s1">nextNode</span>);</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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">            }</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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">
</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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">            <span class="pl-k">for</span> (;;) {</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-k">if</span> (<span class="pl-s1">p</span> == <span class="pl-c1">null</span>) {</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-s1">nextNode</span> = <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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">                    <span class="pl-s1">nextItem</span> = <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-k">return</span> <span class="pl-s1">x</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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">                }</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-smi">E</span> <span class="pl-s1">item</span> = <span class="pl-s1">p</span>.<span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-k">if</span> (<span class="pl-s1">item</span> != <span class="pl-c1">null</span>) {</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-s1">nextNode</span> = <span class="pl-s1">p</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-s1">nextItem</span> = <span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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">                    <span class="pl-k">return</span> <span class="pl-s1">x</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-k">else</span> {</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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">// skip over nulls</span></div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">next</span> = <span class="pl-en">succ</span>(<span class="pl-s1">p</span>);</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-k">if</span> (<span class="pl-s1">pred</span> != <span class="pl-c1">null</span> &amp;&amp; <span class="pl-s1">next</span> != <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-s1">pred</span>.<span class="pl-en">casNext</span>(<span class="pl-s1">p</span>, <span class="pl-s1">next</span>);</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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-s1">p</span> = <span class="pl-s1">next</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-687  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="child-of-line-80 child-of-line-660 child-of-line-687  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">            }</div></div></div><div class="child-of-line-80 child-of-line-660  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">        }</div></div></div><div class="child-of-line-80 child-of-line-660  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">
</div></div></div><div class="child-of-line-80 child-of-line-660  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-k">public</span> <span class="pl-smi">boolean</span> <span class="pl-en">hasNext</span>() {</div></div></div><div class="child-of-line-80 child-of-line-660  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-k">return</span> <span class="pl-s1">nextNode</span> != <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-660  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">        }</div></div></div><div class="child-of-line-80 child-of-line-660  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="child-of-line-80 child-of-line-660  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-k">public</span> <span class="pl-smi">E</span> <span class="pl-en">next</span>() {</div></div></div><div class="child-of-line-80 child-of-line-660  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">            <span class="pl-k">if</span> (<span class="pl-s1">nextNode</span> == <span class="pl-c1">null</span>) <span class="pl-k">throw</span> <span class="pl-k">new</span> <span class="pl-smi">NoSuchElementException</span>();</div></div></div><div class="child-of-line-80 child-of-line-660  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-k">return</span> <span class="pl-en">advance</span>();</div></div></div><div class="child-of-line-80 child-of-line-660  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">        }</div></div></div><div class="child-of-line-80 child-of-line-660  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">
</div></div></div><div class="child-of-line-80 child-of-line-660  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-k">public</span> <span class="pl-smi">void</span> <span class="pl-en">remove</span>() {</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-730  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">l</span> = <span class="pl-s1">lastRet</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-730  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-k">if</span> (<span class="pl-s1">l</span> == <span class="pl-c1">null</span>) <span class="pl-k">throw</span> <span class="pl-k">new</span> <span class="pl-smi">IllegalStateException</span>();</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-730  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">            <span class="pl-c">// rely on a future traversal to relink.</span></div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-730  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-s1">l</span>.<span class="pl-s1">item</span> = <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-660 child-of-line-730  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-s1">lastRet</span> = <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-660  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">        }</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-c">/**</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * Saves this queue to a stream (that is, serializes it).</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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">     * @param s the stream</span></div></div></div><div class="child-of-line-80  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">     * @throws java.io.IOException if an I/O error occurs</span></div></div></div><div class="child-of-line-80  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">     * @serialData All of the elements (each an {@code E}) in</span></div></div></div><div class="child-of-line-80  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">     * the proper order, followed by a null</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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-k">private</span> <span class="pl-smi">void</span> <span class="pl-en">writeObject</span>(<span class="pl-smi">java</span>.<span class="pl-smi">io</span>.<span class="pl-smi">ObjectOutputStream</span> <span class="pl-s1">s</span>)</div></div></div><div class="child-of-line-80 child-of-line-747  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-k">throws</span> <span class="pl-smi">java</span>.<span class="pl-smi">io</span>.<span class="pl-smi">IOException</span> {</div></div></div><div class="child-of-line-80 child-of-line-747  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">
</div></div></div><div class="child-of-line-80 child-of-line-747  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-c">// Write out any hidden stuff</span></div></div></div><div class="child-of-line-80 child-of-line-747  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">        <span class="pl-s1">s</span>.<span class="pl-en">defaultWriteObject</span>();</div></div></div><div class="child-of-line-80 child-of-line-747  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">
</div></div></div><div class="child-of-line-80 child-of-line-747  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">// Write out all elements in the proper order.</span></div></div></div><div class="child-of-line-80 child-of-line-747  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-k">for</span> (<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">p</span> = <span class="pl-en">first</span>(); <span class="pl-s1">p</span> != <span class="pl-c1">null</span>; <span class="pl-s1">p</span> = <span class="pl-en">succ</span>(<span class="pl-s1">p</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-747  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">Object</span> <span class="pl-s1">item</span> = <span class="pl-s1">p</span>.<span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-747  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">            <span class="pl-k">if</span> (<span class="pl-s1">item</span> != <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-747  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-s1">s</span>.<span class="pl-en">writeObject</span>(<span class="pl-s1">item</span>);</div></div></div><div class="child-of-line-80 child-of-line-747  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">        }</div></div></div><div class="child-of-line-80 child-of-line-747  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">
</div></div></div><div class="child-of-line-80 child-of-line-747  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">// Use trailing null as sentinel</span></div></div></div><div class="child-of-line-80 child-of-line-747  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-s1">s</span>.<span class="pl-en">writeObject</span>(<span class="pl-c1">null</span>);</div></div></div><div class="child-of-line-80  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="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">/**</span></div></div></div><div class="child-of-line-80  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">     * Reconstitutes this queue from a stream (that is, deserializes it).</span></div></div></div><div class="child-of-line-80  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">     * @param s the stream</span></div></div></div><div class="child-of-line-80  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">     * @throws ClassNotFoundException if the class of a serialized object</span></div></div></div><div class="child-of-line-80  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-c">     *         could not be found</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * @throws java.io.IOException if an I/O error occurs</span></div></div></div><div class="child-of-line-80  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">     */</span></div></div></div><div class="child-of-line-80  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">    <span class="pl-k">private</span> <span class="pl-smi">void</span> <span class="pl-en">readObject</span>(<span class="pl-smi">java</span>.<span class="pl-smi">io</span>.<span class="pl-smi">ObjectInputStream</span> <span class="pl-s1">s</span>)</div></div></div><div class="child-of-line-80 child-of-line-771  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-k">throws</span> <span class="pl-smi">java</span>.<span class="pl-smi">io</span>.<span class="pl-smi">IOException</span>, <span class="pl-smi">ClassNotFoundException</span> {</div></div></div><div class="child-of-line-80 child-of-line-771  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-s1">s</span>.<span class="pl-en">defaultReadObject</span>();</div></div></div><div class="child-of-line-80 child-of-line-771  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">
</div></div></div><div class="child-of-line-80 child-of-line-771  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-c">// Read in elements until trailing null sentinel found</span></div></div></div><div class="child-of-line-80 child-of-line-771  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">h</span> = <span class="pl-c1">null</span>, <span class="pl-s1">t</span> = <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-771  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-smi">Object</span> <span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-771  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">while</span> ((<span class="pl-s1">item</span> = <span class="pl-s1">s</span>.<span class="pl-en">readObject</span>()) != <span class="pl-c1">null</span>) {</div></div></div><div class="child-of-line-80 child-of-line-771  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-c1">@</span><span class="pl-c1">SuppressWarnings</span>(<span class="pl-s">&quot;unchecked&quot;</span>)</div></div></div><div class="child-of-line-80 child-of-line-771  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">newNode</span> = <span class="pl-k">new</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt;((<span class="pl-smi">E</span>) <span class="pl-s1">item</span>);</div></div></div><div class="child-of-line-80 child-of-line-771  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">if</span> (<span class="pl-s1">h</span> == <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-771  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-s1">h</span> = <span class="pl-s1">t</span> = <span class="pl-s1">newNode</span>;</div></div></div><div class="child-of-line-80 child-of-line-771  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">else</span> {</div></div></div><div class="child-of-line-80 child-of-line-771  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-s1">t</span>.<span class="pl-en">lazySetNext</span>(<span class="pl-s1">newNode</span>);</div></div></div><div class="child-of-line-80 child-of-line-771  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-s1">t</span> = <span class="pl-s1">newNode</span>;</div></div></div><div class="child-of-line-80 child-of-line-771  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">            }</div></div></div><div class="child-of-line-80 child-of-line-771  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="child-of-line-80 child-of-line-771  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-k">if</span> (<span class="pl-s1">h</span> == <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-771  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-s1">h</span> = <span class="pl-s1">t</span> = <span class="pl-k">new</span> <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt;(<span class="pl-c1">null</span>);</div></div></div><div class="child-of-line-80 child-of-line-771  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-s1">head</span> = <span class="pl-s1">h</span>;</div></div></div><div class="child-of-line-80 child-of-line-771  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-s1">tail</span> = <span class="pl-s1">t</span>;</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">    <span class="pl-c">/** A customized variant of Spliterators.IteratorSpliterator */</span></div></div></div><div class="child-of-line-80  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-k">static</span> <span class="pl-k">final</span> <span class="pl-k">class</span> <span class="pl-smi">CLQSpliterator</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-k">implements</span> <span class="pl-smi">Spliterator</span>&lt;<span class="pl-smi">E</span>&gt; {</div></div></div><div class="child-of-line-80 child-of-line-795  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-k">static</span> <span class="pl-k">final</span> <span class="pl-smi">int</span> <span class="pl-c1">MAX_BATCH</span> = <span class="pl-c1">1</span> &lt;&lt; <span class="pl-c1">25</span>;  <span class="pl-c">// max batch array size;</span></div></div></div><div class="child-of-line-80 child-of-line-795  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-k">final</span> <span class="pl-smi">ConcurrentLinkedQueue</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">queue</span>;</div></div></div><div class="child-of-line-80 child-of-line-795  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">current</span>;    <span class="pl-c">// current node; null until initialized</span></div></div></div><div class="child-of-line-80 child-of-line-795  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">int</span> <span class="pl-s1">batch</span>;          <span class="pl-c">// batch size for splits</span></div></div></div><div class="child-of-line-80 child-of-line-795  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">        <span class="pl-smi">boolean</span> <span class="pl-s1">exhausted</span>;  <span class="pl-c">// true when no more nodes</span></div></div></div><div class="child-of-line-80 child-of-line-795  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-smi">CLQSpliterator</span>(<span class="pl-smi">ConcurrentLinkedQueue</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">queue</span>) {</div></div></div><div class="child-of-line-80 child-of-line-795  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-smi">this</span>.<span class="pl-s1">queue</span> = <span class="pl-s1">queue</span>;</div></div></div><div class="child-of-line-80 child-of-line-795  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">        }</div></div></div><div class="child-of-line-80 child-of-line-795  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">
</div></div></div><div class="child-of-line-80 child-of-line-795  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-k">public</span> <span class="pl-smi">Spliterator</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-en">trySplit</span>() {</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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">            <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">p</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-k">final</span> <span class="pl-smi">ConcurrentLinkedQueue</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">q</span> = <span class="pl-smi">this</span>.<span class="pl-s1">queue</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-smi">int</span> <span class="pl-s1">b</span> = <span class="pl-s1">batch</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-smi">int</span> <span class="pl-s1">n</span> = (<span class="pl-s1">b</span> &lt;= <span class="pl-c1">0</span>) ? <span class="pl-c1">1</span> : (<span class="pl-s1">b</span> &gt;= <span class="pl-c1">MAX_BATCH</span>) ? <span class="pl-c1">MAX_BATCH</span> : <span class="pl-s1">b</span> + <span class="pl-c1">1</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-k">if</span> (!<span class="pl-s1">exhausted</span> &amp;&amp;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-s1">p</span> = <span class="pl-s1">current</span>) != <span class="pl-c1">null</span> || (<span class="pl-s1">p</span> = <span class="pl-s1">q</span>.<span class="pl-en">first</span>()) != <span class="pl-c1">null</span>) &amp;&amp;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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">                <span class="pl-s1">p</span>.<span class="pl-s1">next</span> != <span class="pl-c1">null</span>) {</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-smi">Object</span>[] <span class="pl-s1">a</span> = <span class="pl-k">new</span> <span class="pl-smi">Object</span>[<span class="pl-s1">n</span>];</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-smi">int</span> <span class="pl-s1">i</span> = <span class="pl-c1">0</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-k">do</span> {</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-k">if</span> ((<span class="pl-s1">a</span>[<span class="pl-s1">i</span>] = <span class="pl-s1">p</span>.<span class="pl-s1">item</span>) != <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-s1">i</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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">                    <span class="pl-k">if</span> (<span class="pl-s1">p</span> == (<span class="pl-s1">p</span> = <span class="pl-s1">p</span>.<span class="pl-s1">next</span>))</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-s1">p</span> = <span class="pl-s1">q</span>.<span class="pl-en">first</span>();</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-k">while</span> (<span class="pl-s1">p</span> != <span class="pl-c1">null</span> &amp;&amp; <span class="pl-s1">i</span> &lt; <span class="pl-s1">n</span>);</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-k">if</span> ((<span class="pl-s1">current</span> = <span class="pl-s1">p</span>) == <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-s1">exhausted</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-k">if</span> (<span class="pl-s1">i</span> &gt; <span class="pl-c1">0</span>) {</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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">                    <span class="pl-s1">batch</span> = <span class="pl-s1">i</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-k">return</span> <span class="pl-smi">Spliterators</span>.<span class="pl-en">spliterator</span></div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-s1">a</span>, <span class="pl-c1">0</span>, <span class="pl-s1">i</span>, <span class="pl-smi">Spliterator</span>.<span class="pl-c1">ORDERED</span> | <span class="pl-smi">Spliterator</span>.<span class="pl-c1">NONNULL</span> |</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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-smi">Spliterator</span>.<span class="pl-c1">CONCURRENT</span>);</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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">                }</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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">            }</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-805  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">            <span class="pl-k">return</span> <span class="pl-c1">null</span>;</div></div></div><div class="child-of-line-80 child-of-line-795  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">        }</div></div></div><div class="child-of-line-80 child-of-line-795  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">
</div></div></div><div class="child-of-line-80 child-of-line-795  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-k">public</span> <span class="pl-smi">void</span> <span class="pl-en">forEachRemaining</span>(<span class="pl-smi">Consumer</span>&lt;? <span class="pl-en">super</span> <span class="pl-smi">E</span>&gt; <span class="pl-s1">action</span>) {</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">p</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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-k">if</span> (<span class="pl-s1">action</span> == <span class="pl-c1">null</span>) <span class="pl-k">throw</span> <span class="pl-k">new</span> <span class="pl-smi">NullPointerException</span>();</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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-k">final</span> <span class="pl-smi">ConcurrentLinkedQueue</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">q</span> = <span class="pl-smi">this</span>.<span class="pl-s1">queue</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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">            <span class="pl-k">if</span> (!<span class="pl-s1">exhausted</span> &amp;&amp;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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-s1">p</span> = <span class="pl-s1">current</span>) != <span class="pl-c1">null</span> || (<span class="pl-s1">p</span> = <span class="pl-s1">q</span>.<span class="pl-en">first</span>()) != <span class="pl-c1">null</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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-s1">exhausted</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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">                <span class="pl-k">do</span> {</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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-smi">E</span> <span class="pl-s1">e</span> = <span class="pl-s1">p</span>.<span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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-k">if</span> (<span class="pl-s1">p</span> == (<span class="pl-s1">p</span> = <span class="pl-s1">p</span>.<span class="pl-s1">next</span>))</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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-s1">p</span> = <span class="pl-s1">q</span>.<span class="pl-en">first</span>();</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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-k">if</span> (<span class="pl-s1">e</span> != <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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">                        <span class="pl-s1">action</span>.<span class="pl-en">accept</span>(<span class="pl-s1">e</span>);</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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-k">while</span> (<span class="pl-s1">p</span> != <span class="pl-c1">null</span>);</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-833  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">            }</div></div></div><div class="child-of-line-80 child-of-line-795  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">        }</div></div></div><div class="child-of-line-80 child-of-line-795  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">
</div></div></div><div class="child-of-line-80 child-of-line-795  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">        <span class="pl-k">public</span> <span class="pl-smi">boolean</span> <span class="pl-en">tryAdvance</span>(<span class="pl-smi">Consumer</span>&lt;? <span class="pl-en">super</span> <span class="pl-smi">E</span>&gt; <span class="pl-s1">action</span>) {</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">p</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-k">if</span> (<span class="pl-s1">action</span> == <span class="pl-c1">null</span>) <span class="pl-k">throw</span> <span class="pl-k">new</span> <span class="pl-smi">NullPointerException</span>();</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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">            <span class="pl-k">final</span> <span class="pl-smi">ConcurrentLinkedQueue</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">q</span> = <span class="pl-smi">this</span>.<span class="pl-s1">queue</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-k">if</span> (!<span class="pl-s1">exhausted</span> &amp;&amp;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-s1">p</span> = <span class="pl-s1">current</span>) != <span class="pl-c1">null</span> || (<span class="pl-s1">p</span> = <span class="pl-s1">q</span>.<span class="pl-en">first</span>()) != <span class="pl-c1">null</span>)) {</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-smi">E</span> <span class="pl-s1">e</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-k">do</span> {</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-s1">e</span> = <span class="pl-s1">p</span>.<span class="pl-s1">item</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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">if</span> (<span class="pl-s1">p</span> == (<span class="pl-s1">p</span> = <span class="pl-s1">p</span>.<span class="pl-s1">next</span>))</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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">                        <span class="pl-s1">p</span> = <span class="pl-s1">q</span>.<span class="pl-en">first</span>();</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-k">while</span> (<span class="pl-s1">e</span> == <span class="pl-c1">null</span> &amp;&amp; <span class="pl-s1">p</span> != <span class="pl-c1">null</span>);</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-k">if</span> ((<span class="pl-s1">current</span> = <span class="pl-s1">p</span>) == <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-s1">exhausted</span> = <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-k">if</span> (<span class="pl-s1">e</span> != <span class="pl-c1">null</span>) {</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-s1">action</span>.<span class="pl-en">accept</span>(<span class="pl-s1">e</span>);</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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">                    <span class="pl-k">return</span> <span class="pl-c1">true</span>;</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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">                }</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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">            }</div></div></div><div class="child-of-line-80 child-of-line-795 child-of-line-850  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-k">return</span> <span class="pl-c1">false</span>;</div></div></div><div class="child-of-line-80 child-of-line-795  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">        }</div></div></div><div class="child-of-line-80 child-of-line-795  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">
</div></div></div><div class="child-of-line-80 child-of-line-795  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">        <span class="pl-k">public</span> <span class="pl-smi">long</span> <span class="pl-en">estimateSize</span>() { <span class="pl-k">return</span> <span class="pl-smi">Long</span>.<span class="pl-c1">MAX_VALUE</span>; }</div></div></div><div class="child-of-line-80 child-of-line-795  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">
</div></div></div><div class="child-of-line-80 child-of-line-795  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-k">public</span> <span class="pl-smi">int</span> <span class="pl-en">characteristics</span>() {</div></div></div><div class="child-of-line-80 child-of-line-795  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-k">return</span> <span class="pl-smi">Spliterator</span>.<span class="pl-c1">ORDERED</span> | <span class="pl-smi">Spliterator</span>.<span class="pl-c1">NONNULL</span> |</div></div></div><div class="child-of-line-80 child-of-line-795  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-smi">Spliterator</span>.<span class="pl-c1">CONCURRENT</span>;</div></div></div><div class="child-of-line-80 child-of-line-795  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">        }</div></div></div><div class="child-of-line-80  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="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">/**</span></div></div></div><div class="child-of-line-80  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">     * Returns a {@link Spliterator} over the elements in this queue.</span></div></div></div><div class="child-of-line-80  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-c">     *</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * &lt;p&gt;The returned spliterator is</span></div></div></div><div class="child-of-line-80  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">     * &lt;a href=&quot;package-summary.html#Weakly&quot;&gt;&lt;i&gt;weakly consistent&lt;/i&gt;&lt;/a&gt;.</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     *</span></div></div></div><div class="child-of-line-80  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">     * &lt;p&gt;The {@code Spliterator} reports {@link Spliterator#CONCURRENT},</span></div></div></div><div class="child-of-line-80  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">     * {@link Spliterator#ORDERED}, and {@link Spliterator#NONNULL}.</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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">     * @implNote</span></div></div></div><div class="child-of-line-80  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">     * The {@code Spliterator} implements {@code trySplit} to permit limited</span></div></div></div><div class="child-of-line-80  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">     * parallelism.</span></div></div></div><div class="child-of-line-80  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">     *</span></div></div></div><div class="child-of-line-80  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">     * @return a {@code Spliterator} over the elements in this queue</span></div></div></div><div class="child-of-line-80  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">     * @since 1.8</span></div></div></div><div class="child-of-line-80  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">     */</span></div></div></div><div class="child-of-line-80  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-c1">@</span><span class="pl-c1">Override</span></div></div></div><div class="child-of-line-80  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-k">public</span> <span class="pl-smi">Spliterator</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-en">spliterator</span>() {</div></div></div><div class="child-of-line-80  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">return</span> <span class="pl-k">new</span> <span class="pl-smi">CLQSpliterator</span>&lt;<span class="pl-smi">E</span>&gt;(<span class="pl-smi">this</span>);</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-c">/**</span></div></div></div><div class="child-of-line-80  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"><span class="pl-c">     * Throws NullPointerException if argument is null.</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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">     * @param v the element</span></div></div></div><div class="child-of-line-80  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="child-of-line-80  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-k">private</span> <span class="pl-k">static</span> <span class="pl-smi">void</span> <span class="pl-en">checkNotNull</span>(<span class="pl-smi">Object</span> <span class="pl-s1">v</span>) {</div></div></div><div class="child-of-line-80  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-k">if</span> (<span class="pl-s1">v</span> == <span class="pl-c1">null</span>)</div></div></div><div class="child-of-line-80  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-k">throw</span> <span class="pl-k">new</span> <span class="pl-smi">NullPointerException</span>();</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-k">private</span> <span class="pl-smi">boolean</span> <span class="pl-en">casTail</span>(<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">cmp</span>, <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">val</span>) {</div></div></div><div class="child-of-line-80  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">return</span> <span class="pl-c1">UNSAFE</span>.<span class="pl-en">compareAndSwapObject</span>(<span class="pl-smi">this</span>, <span class="pl-s1">tailOffset</span>, <span class="pl-s1">cmp</span>, <span class="pl-s1">val</span>);</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-k">private</span> <span class="pl-smi">boolean</span> <span class="pl-en">casHead</span>(<span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">cmp</span>, <span class="pl-smi">Node</span>&lt;<span class="pl-smi">E</span>&gt; <span class="pl-s1">val</span>) {</div></div></div><div class="child-of-line-80  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">        <span class="pl-k">return</span> <span class="pl-c1">UNSAFE</span>.<span class="pl-en">compareAndSwapObject</span>(<span class="pl-smi">this</span>, <span class="pl-s1">headOffset</span>, <span class="pl-s1">cmp</span>, <span class="pl-s1">val</span>);</div></div></div><div class="child-of-line-80  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">    }</div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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">// Unsafe mechanics</span></div></div></div><div class="child-of-line-80  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">
</div></div></div><div class="child-of-line-80  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-k">private</span> <span class="pl-k">static</span> <span class="pl-k">final</span> <span class="pl-smi">sun</span>.<span class="pl-smi">misc</span>.<span class="pl-smi">Unsafe</span> <span class="pl-c1">UNSAFE</span>;</div></div></div><div class="child-of-line-80  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-k">private</span> <span class="pl-k">static</span> <span class="pl-k">final</span> <span class="pl-smi">long</span> <span class="pl-s1">headOffset</span>;</div></div></div><div class="child-of-line-80  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-k">private</span> <span class="pl-k">static</span> <span class="pl-k">final</span> <span class="pl-smi">long</span> <span class="pl-s1">tailOffset</span>;</div></div></div><div class="child-of-line-80  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">static</span> {</div></div></div><div class="child-of-line-80  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">        <span class="pl-k">try</span> {</div></div></div><div class="child-of-line-80  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-c1">UNSAFE</span> = <span class="pl-smi">UnsafeSupport</span>.<span class="pl-en">getUnsafeInstance</span>();</div></div></div><div class="child-of-line-80  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-smi">Class</span>&lt;?&gt; <span class="pl-s1">k</span> = <span class="pl-smi">ConcurrentLinkedQueue</span>.<span class="pl-k">class</span>;</div></div></div><div class="child-of-line-80  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-s1">headOffset</span> = <span class="pl-c1">UNSAFE</span>.<span class="pl-en">objectFieldOffset</span></div></div></div><div class="child-of-line-80  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-s1">k</span>.<span class="pl-en">getDeclaredField</span>(<span class="pl-s">&quot;head&quot;</span>));</div></div></div><div class="child-of-line-80  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-s1">tailOffset</span> = <span class="pl-c1">UNSAFE</span>.<span class="pl-en">objectFieldOffset</span></div></div></div><div class="child-of-line-80  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-s1">k</span>.<span class="pl-en">getDeclaredField</span>(<span class="pl-s">&quot;tail&quot;</span>));</div></div></div><div class="child-of-line-80  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-k">catch</span> (<span class="pl-smi">Exception</span> <span class="pl-s1">e</span>) {</div></div></div><div class="child-of-line-80  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-k">throw</span> <span class="pl-k">new</span> <span class="pl-smi">Error</span>(<span class="pl-s1">e</span>);</div></div></div><div class="child-of-line-80  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">        }</div></div></div><div class="child-of-line-80  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">    }</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></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>

