/* Automatically generated code
** DO NOT EDIT!
**
** This file was generated by the mkindex.exe program based on
** comments in other Fossil source files.
*/
extern void wellknown_page(void);
extern void user_log_page(void);
extern void page_admin_log(void);
extern void sql_page(void);
extern void th1_page(void);
extern void ainfo_page(void);
extern void ajax_route_dispatcher(void);
extern void alert_page(void);
extern void ambiguous_page(void);
extern void annotation_page(void);
extern void announce_page(void);
extern void artifact_page(void);
extern void artifact_stats_page(void);
extern void attachadd_page(void);
extern void attachview_page(void);
extern void attachview_page(void);
extern void attachlist_page(void);
extern void attachview_page(void);
extern void background_page(void);
extern void bigbloblist_page(void);
extern void annotation_page(void);
extern void bloblist_page(void);
extern void brlist_page(void);
extern void brtimeline_page(void);
extern void builtin_webpage(void);
extern void cache_getpage(void);
extern void cache_page(void);
extern void captcha_wav_page(void);
extern void chat_webpage(void);
extern void chat_backup_webpage(void);
extern void chat_delete_webpage(void);
extern void chat_download_webpage(void);
extern void chat_fetch_one(void);
extern void chat_poll_webpage(void);
extern void chat_query_webpage(void);
extern void chat_send_webpage(void);
extern void ci_page(void);
extern void ci_edit_page(void);
extern void ci_tags_page(void);
extern void ckout_page(void);
extern void clusterlist_page(void);
extern void contact_admin_page(void);
extern void cookie_page(void);
extern void tktedit_page(void);
extern void tktnew_page(void);
extern void deltachain_page(void);
extern void page_dir(void);
extern void doc_page(void);
extern void page_docdir(void);
extern void artifact_page(void);
extern void doc_search_page(void);
extern void download_page(void);
extern void errorlog_page(void);
extern void event_page(void);
extern void eventedit_page(void);
extern void ext_page(void);
extern void ext_filelist_page(void);
extern void favicon_page(void);
extern void diff_page(void);
extern void cookie_page(void);
extern void artifact_page(void);
extern void fileage_page(void);
extern void fileedit_page(void);
extern void finfo_page(void);
extern void forum_main_page(void);
extern void forumnew_page(void);
extern void forumedit_page(void);
extern void forum_page_init(void);
extern void forum_main_page(void);
extern void forum_page_init(void);
extern void forumpost_page(void);
extern void forum_page_close(void);
extern void forum_page_close(void);
extern void forumthread_page(void);
extern void forumthreadhashlist(void);
extern void hash_collisions_webpage(void);
extern void test_hash_color_page(void);
extern void help_page(void);
extern void hexdump_page(void);
extern void home_page(void);
extern void honeypot_page(void);
extern void howtoclone_page(void);
extern void home_page(void);
extern void info_page(void);
extern void interwiki_page(void);
extern void captcha_callback(void);
extern void jchunk_page(void);
#ifdef FOSSIL_ENABLE_JSON
extern void json_page_top(void);
#endif
extern void uvlist_json_page(void);
extern void leaves_page(void);
extern void login_page(void);
extern void logo_page(void);
extern void login_page(void);
extern void markup_help_page(void);
extern void markdown_rules_page(void);
extern void mimetype_list_page(void);
extern void mlink_page(void);
extern void modreq_page(void);
extern void login_page(void);
extern void home_page(void);
extern void unsubscribe_page(void);
extern void phantom_list_page(void);
extern void pikchrshow_page(void);
extern void annotation_page(void);
extern void rawartifact_page(void);
extern void rchvdwnld_page(void);
extern void rcvfrom_page(void);
extern void rcvfromlist_page(void);
extern void re_rules_page(void);
extern void register_page(void);
extern void renewal_page(void);
extern void repo_tabsize_page(void);
extern void repo_schema_page(void);
extern void repo_stat1_page(void);
extern void view_list(void);
extern void stats_report_page(void);
extern void login_reqpwreset_page(void);
extern void login_resetpw(void);
extern void robotstxt_page(void);
extern void view_edit(void);
extern void view_edit(void);
extern void view_see_sql(void);
extern void rptview_page(void);
extern void page_script_js(void);
extern void search_page(void);
extern void secaudit0_page(void);
extern void secure_rawartifact_page(void);
#if USE_SEE
extern void db_set_see_key_page(void);
#endif
extern void setup_page(void);
extern void setup_logmenu_page(void);
extern void setup_access(void);
extern void setup_adunit(void);
extern void setup_chat(void);
extern void setup_config(void);
extern void setup_download(void);
extern void forum_setup(void);
extern void setup_login_group(void);
extern void setup_logo(void);
extern void setup_modreq(void);
extern void setup_notification(void);
extern void setup_robots(void);
extern void setup_settings(void);
extern void setup_skin(void);
extern void setup_skin_admin(void);
extern void setup_skinedit(void);
extern void setup_timeline(void);
extern void setup_ucap_list(void);
extern void user_edit(void);
extern void setup_uinfo_page(void);
extern void setup_ulist(void);
extern void setup_ulist_notes(void);
extern void setup_wiki(void);
extern void shun_page(void);
extern void sitemap_page(void);
extern void sitemap_test_page(void);
extern void sitemap_timeline_page(void);
extern void skins_page(void);
extern void baseline_zip_page(void);
extern void page_srchsetup(void);
extern void stat_page(void);
extern void page_style_css(void);
extern void subscribe_page(void);
extern void subscriber_list_page(void);
extern void taglist_page(void);
extern void tagtimeline_page(void);
extern void takeitprivate_page(void);
extern void tarball_page(void);
extern void event_page(void);
extern void eventedit_page(void);
extern void test_all_help_page(void);
extern void backlink_timeline_page(void);
extern void backlink_table_page(void);
extern void test_bgcolor_page(void);
extern void test_builtin_list_page(void);
extern void captcha_test(void);
extern void captcha_test_wav_page(void);
extern void page_test_env(void);
extern void search_data_page(void);
extern void overload_page(void);
extern void test_pid_page(void);
extern void piechart_test_page(void);
extern void test_rename_list_page(void);
extern void robot_restrict_test_page(void);
extern void page_test_title(void);
extern void test_warning_page(void);
extern void page_test_env(void);
extern void thisdayinhistory_page(void);
extern void tkt_home_page(void);
extern void page_timeline(void);
extern void page_timeline_rss(void);
extern void test_timewarp_page(void);
extern void tinfo_page(void);
extern void tktedit_page(void);
extern void tkthistory_page(void);
extern void tktnew_page(void);
extern void tktsetup_page(void);
extern void tktsetup_change_page(void);
extern void tktsetup_com_page(void);
extern void tktsetup_editpage_page(void);
extern void tktsetup_keytplt_page(void);
extern void tktsetup_newpage_page(void);
extern void tktsetup_reportlist(void);
extern void tktsetup_rpttplt_page(void);
extern void tktsetup_tab_page(void);
extern void tktsetup_timeline_page(void);
extern void tktsetup_viewpage_page(void);
extern void tkt_srchpage(void);
extern void tkttimeline_page(void);
extern void tktview_page(void);
extern void tokens_page(void);
extern void page_tree(void);
#if USE_SEE
extern void db_unset_see_key_page(void);
#endif
extern void unsubscribe_page(void);
extern void urllist_page(void);
extern void user_log_page(void);
extern void doc_page(void);
extern void uvlist_page(void);
extern void vdiff_page(void);
extern void test_version_page(void);
extern void ci_page(void);
extern void vpatch_page(void);
extern void page_waliassetup(void);
extern void wcontent_page(void);
extern void wdiff_page(void);
extern void wfind_page(void);
extern void artifact_page(void);
extern void whistory_page(void);
extern void wiki_page(void);
extern void wiki_rules_page(void);
extern void wiki_ajax_page(void);
extern void wikiappend_page(void);
extern void wikiedit_page(void);
extern void wiki_helppage(void);
extern void wikinew_page(void);
extern void wiki_srchpage(void);
extern void winfo_page(void);
extern void page_xfer(void);
extern void xfersetup_page(void);
extern void xfersetup_com_page(void);
extern void xfersetup_commit_page(void);
extern void xfersetup_push_page(void);
extern void xfersetup_ticket_page(void);
extern void baseline_zip_page(void);
extern void merge_3way_cmd(void);
extern void add_cmd(void);
extern void addremove_cmd(void);
extern void alert_cmd(void);
extern void all_cmd(void);
extern void ci_amend_cmd(void);
extern void annotate_cmd(void);
extern void artifact_cmd(void);
extern void attachment_cmd(void);
extern void backoffice_command(void);
extern void backup_cmd(void);
extern void bisect_cmd(void);
extern void annotate_cmd(void);
extern void branch_cmd(void);
extern void bundle_cmd(void);
extern void cache_cmd(void);
extern void cat_cmd(void);
extern void cmd_cgi(void);
extern void status_cmd(void);
extern void chat_command(void);
extern void checkout_cmd(void);
extern void merge_cmd(void);
extern void merge_cmd(void);
extern void commit_cmd(void);
extern void clean_cmd(void);
extern void clone_cmd(void);
extern void close_cmd(void);
extern void checkout_cmd(void);
extern void commit_cmd(void);
extern void configuration_cmd(void);
extern void dbstat_cmd(void);
extern void deconstruct_cmd(void);
extern void delete_cmd(void);
extern void descendants_cmd(void);
extern void describe_cmd(void);
extern void test_detach_cmd(void);
extern void diff_cmd(void);
extern void export_cmd(void);
extern void extras_cmd(void);
extern void fdiff_cmd(void);
extern void finfo_cmd(void);
extern void delete_cmd(void);
extern void fts_config_cmd(void);
extern void fusefs_cmd(void);
extern void diff_cmd(void);
extern void get_cmd(void);
extern void gitmirror_command(void);
extern void re_grep_cmd(void);
extern void hash_policy_command(void);
extern void help_cmd(void);
extern void hook_cmd(void);
extern void cmd_http(void);
extern void import_cmd(void);
extern void info_cmd(void);
extern void create_repository_cmd(void);
extern void interwiki_cmd(void);
#ifdef FOSSIL_ENABLE_JSON
extern void json_cmd_top(void);
#endif
extern void leaves_cmd(void);
extern void login_group_command(void);
extern void ls_cmd(void);
extern void md5sum_test(void);
extern void merge_cmd(void);
extern void merge_base_cmd(void);
extern void merge_info_cmd(void);
extern void mv_cmd(void);
extern void create_repository_cmd(void);
extern void cmd_open(void);
extern void patch_cmd(void);
extern void pikchr_cmd(void);
extern void annotate_cmd(void);
extern void publish_cmd(void);
extern void pull_cmd(void);
extern void purge_cmd(void);
extern void push_cmd(void);
extern void rebuild_database(void);
extern void reconstruct_cmd(void);
extern void undo_cmd(void);
extern void remote_url_cmd(void);
extern void remote_url_cmd(void);
extern void mv_cmd(void);
extern void repack_command(void);
extern void reparent_cmd(void);
extern void revert_cmd(void);
extern void delete_cmd(void);
extern void cmd_timeline_rss(void);
extern void scrub_cmd(void);
extern void search_cmd(void);
extern void cmd_webserver(void);
extern void setting_cmd(void);
extern void sha1sum_test(void);
extern void sha3sum_test(void);
extern void shell_cmd(void);
extern void cmd_sqlite3(void);
extern void sqlar_cmd(void);
extern void cmd_sqlite3(void);
extern void test_tlsconfig_info(void);
extern void stash_cmd(void);
extern void status_cmd(void);
extern void sync_cmd(void);
extern void xsystem_cmd(void);
extern void tag_cmd(void);
extern void tarball_cmd(void);
extern void test_add_alert_cmd(void);
extern void test_agg_cksum_cmd(void);
extern void test_alert_cmd(void);
extern void test_all_help_cmd(void);
extern void test_ambiguous_cmd(void);
extern void ancestor_path_test_cmd(void);
extern void test_approx_match_command(void);
extern void test_manifest_to_json(void);
extern void test_backlinks_cmd(void);
extern void test_backoffice_lease(void);
extern void test_builtin_get(void);
extern void test_builtin_list(void);
extern void cmd_test_canonical_name(void);
extern void test_captcha(void);
extern void test_preferred_fn(void);
extern void chat_test_formatter_cmd(void);
extern void test_ci_mini_cmd(void);
extern void test_clusters_cmd(void);
extern void test_command_stats_cmd(void);
extern void test_comment_format(void);
extern void test_commit_warning(void);
extern void compress_cmd(void);
extern void compress2_cmd(void);
extern void contains_selector_cmd(void);
extern void test_content_deltify_cmd(void);
extern void test_content_erase(void);
extern void test_content_put_cmd(void);
extern void test_content_rawget_cmd(void);
extern void test_content_undelta_cmd(void);
extern void test_convert_stext(void);
extern void test_createcluster_cmd(void);
extern void test_crosslink_cmd(void);
extern void test_cycle_compress(void);
extern void test_database_name_cmd(void);
extern void test_date_format(void);
extern void db_test_db_exec_cmd(void);
extern void db_test_db_prepare(void);
extern void test_decode64_cmd(void);
extern void cmd_test_delta(void);
extern void delta_analyze_cmd(void);
extern void delta_apply_cmd(void);
extern void delta_create_cmd(void);
extern void test_describe_artifacts_cmd(void);
extern void xdiff_cmd(void);
extern void test_dir_list_cmd(void);
extern void test_echo_cmd(void);
extern void test_email_used(void);
extern void test_encode64_cmd(void);
extern void timeline_test_endpoint(void);
extern void test_escaped_arg_command(void);
extern void test_etag_cmd(void);
extern void test_file_copy(void);
extern void cmd_test_file_environment(void);
extern void test_fileage_cmd(void);
extern void filezip_cmd(void);
extern void test_find_mx(void);
extern void test_fingerprint(void);
extern void forumthread_cmd(void);
extern void test_fossil_system_cmd(void);
extern void fuzz_command(void);
extern void test_generate_uuid(void);
extern void glob_test_cmd(void);
extern void re_test_grep(void);
extern void test_gzip_cmd(void);
extern void test_hash_color(void);
#if 0
extern void test_hash_from_path_cmd(void);
#endif
extern void user_hash_passwords_cmd(void);
extern void test_html_tidy(void);
extern void test_html_to_text(void);
extern void test_html_tokenize(void);
extern void cmd_test_http(void);
extern void test_httpmsg_command(void);
extern void test_integrity(void);
#if defined(_WIN32)
extern void test_is_normal_dir(void);
#endif
extern void test_is_repo(void);
extern void test_is_reserved_name_cmd(void);
extern void test_ishuman(void);
extern void isspace_cmd(void);
extern void test_js_once(void);
extern void leaf_ambiguity_warning_test(void);
extern void test_line_diff(void);
extern void test_dline_match(void);
extern void cmd_test_line_numbers(void);
extern void test_list_attachments(void);
extern void test_list_page(void);
extern void cmd_test_webpage_list(void);
extern void loadavg_test_cmd(void);
extern void test_looks_like_attack(void);
extern void looks_like_utf_test_cmd(void);
extern void alert_test_mailbox_hashname(void);
extern void test_manfest_setting_cmd(void);
extern void test_markdown_render(void);
extern void test_match_cmd(void);
extern void mimetype_test_cmd(void);
extern void test_missing(void);
extern void move_repo_cmd(void);
extern void test_name_change(void);
extern void test_name_to_id(void);
extern void test_obscure_cmd(void);
extern void test_orphans(void);
extern void manifest_test_parse_all_blobs_cmd(void);
extern void manifest_test_parse_cmd(void);
extern void test_phantoms_cmd(void);
extern void pqueuex_test_cmd(void);
extern void test_process_id_command(void);
extern void test_prompt_password_cmd(void);
extern void test_prompt_user_cmd(void);
extern void test_random_password(void);
extern void cmd_test_relative_name(void);
extern void test_wiki_relink_cmd(void);
extern void test_reserved_names(void);
extern void test_resetpw_url(void);
extern void test_safe_html_cmd(void);
extern void test_sanitize_name_cmd(void);
extern void test_search_stext(void);
extern void test_set_mtime(void);
extern void shortest_path_test_cmd(void);
extern void test_show_vfile_cmd(void);
extern void cmd_test_simplify_name(void);
extern void test_smtp_probe(void);
extern void test_smtp_send(void);
extern void test_smtp_senddata(void);
extern void test_ssh_needs_path(void);
extern void test_strip_comment_lines_cmd(void);
extern void test_subtree_cmd(void);
extern void test_symlink_list_cmd(void);
extern void testtag_cmd(void);
extern void test_tarball_cmd(void);
extern void file_test_tempname(void);
extern void test_th_eval(void);
#ifdef FOSSIL_ENABLE_TH1_HOOKS
extern void test_th_hook(void);
#endif
extern void test_th_render(void);
extern void test_th_source(void);
extern void test_ticket_rebuild(void);
extern void test_timespan_cmd(void);
extern void test_timewarp_cmd(void);
extern void test_topological_sort(void);
extern void cmd_test_tree_name(void);
extern void test_unclusterd_cmd(void);
extern void uncompress_cmd(void);
extern void test_unsent_cmd(void);
extern void cmd_test_url_basename(void);
extern void cmd_test_urlparser(void);
extern void test_user_caps_changed(void);
extern void test_usernames_cmd(void);
extern void file_test_valid_for_windows(void);
extern void test_var_get_cmd(void);
extern void test_var_list_cmd(void);
extern void test_var_set_cmd(void);
extern void verify_all_cmd(void);
extern void test_whatis_all_cmd(void);
extern void test_which_cmd(void);
extern void test_wiki_render(void);
extern void test_without_rowid(void);
extern void cmd_test_xfer(void);
extern void ticket_cmd(void);
extern void timeline_cmd(void);
extern void test_tlsconfig_info(void);
extern void touch_cmd(void);
extern void tree_cmd(void);
extern void cmd_webserver(void);
extern void undo_cmd(void);
extern void unpublished_cmd(void);
extern void setting_cmd(void);
extern void unversioned_cmd(void);
extern void update_cmd(void);
extern void user_cmd(void);
extern void unversioned_cmd(void);
extern void version_cmd(void);
extern void whatis_cmd(void);
extern void wiki_cmd(void);
#ifdef _WIN32
extern void cmd_win32_service(void);
#endif
extern void xdiff_cmd(void);
extern void zip_cmd(void);
static const char zHelp325[] =
  "If the \"--acme\" option was supplied to \"fossil server\" or \"fossil http\" or\n"
  "similar, then this page returns the content of files found in the\n"
  "\".well-known\" subdirectory of the same directory that contains the\n"
  "repository file.  This facilitates Automated Certificate\n"
  "Management using tools like \"certbot\".\n"
  "\n"
  "The content is returned directly, without any interpretation, using\n"
  "a generic mimetype.";
static const char zHelp593[] =
  "Show login attempts, including timestamp and IP address.\n"
  "Requires Admin privileges.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "   y=N      1: success only.  2: failure only.  3: both (default: 3)\n"
  "   n=N      Number of entries to show (default: 200)\n"
  "   o=N      Skip this many entries (default: 0)";
static const char zHelp479[] =
  "Shows the contents of the admin_log table, which is only created if\n"
  "the admin-log setting is enabled. Requires Admin or Setup ('a' or\n"
  "'s') permissions.";
static const char zHelp477[] =
  "Run raw SQL commands against the database file using the web interface.\n"
  "Requires Setup privileges.";
static const char zHelp478[] =
  "Run raw TH1 commands using the web interface.  If Tcl integration was\n"
  "enabled at compile-time and the \"tcl\" setting is enabled, Tcl commands\n"
  "may be run as well.  Requires Admin privilege.";
static const char zHelp039[] =
  "URL: /ainfo?name=ARTIFACTID\n"
  "\n"
  "Show the details of an attachment artifact.";
static const char zHelp008[] =
  "The main dispatcher for shared ajax-served routes. Requires the\n"
  "'name' parameter be the main route's name (as defined in a list in\n"
  "this function), noting that fossil automatically assigns all path\n"
  "parts after \"ajax\" to \"name\", e.g. /ajax/foo/bar assigns\n"
  "name=foo/bar.\n"
  "\n"
  "This \"page\" is only intended to be used by higher-level pages which\n"
  "have certain Ajax-driven features in common. It is not intended to\n"
  "be used by clients and NONE of its HTTP interfaces are considered\n"
  "documented/stable/supported - they may change on any given build of\n"
  "fossil.\n"
  "\n"
  "The exact response type depends on the route which gets called. In\n"
  "the case of an initialization error it emits a JSON-format response\n"
  "as documented for ajax_route_error(). Individual routes may emit\n"
  "errors in different formats, e.g. HTML.";
static const char zHelp024[] =
  "Edit email alert and notification settings.\n"
  "\n"
  "The subscriber is identified in several ways:\n"
  "\n"
  "   *    The name= query parameter contains the complete subscriberCode.\n"
  "        This only happens when the user receives a verification\n"
  "        email and clicks on the link in the email.  When a\n"
  "        compilete subscriberCode is seen on the name= query parameter,\n"
  "        that constitutes verification of the email address.\n"
  "\n"
  "   *    The sid= query parameter contains an integer subscriberId.\n"
  "        This only works for the administrator.  It allows the\n"
  "        administrator to edit any subscription.\n"
  "\n"
  "   *    The user is logged into an account other than \"nobody\" or\n"
  "        \"anonymous\".  In that case the notification settings\n"
  "        associated with that account can be edited without needing\n"
  "        to know the subscriber code.\n"
  "\n"
  "   *    The name= query parameter contains a 32-digit prefix of\n"
  "        subscriber code.  (Subscriber codes are normally 64 hex digits\n"
  "        in length.) This uniquely identifies the subscriber without\n"
  "        revealing the complete subscriber code, and hence without\n"
  "        verifying the email address.";
static const char zHelp394[] =
  "URL: /ambiguous?name=NAME&src=WEBPAGE\n"
  "\n"
  "The NAME given by the name parameter is ambiguous.  Display a page\n"
  "that shows all possible choices and let the user select between them.\n"
  "\n"
  "The src= query parameter is optional.  If omitted it defaults\n"
  "to \"info\".";
static const char zHelp238[] =
  "URL: /annotate?checkin=ID&filename=FILENAME\n"
  "URL: /blame?checkin=ID&filename=FILENAME\n"
  "URL: /praise?checkin=ID&filename=FILENAME\n"
  "\n"
  "Show the most recent change to each line of a text file.  /annotate shows\n"
  "the date of the changes and the check-in hash (with a link to the\n"
  "check-in).  /blame and /praise also show the user who made the check-in.\n"
  "\n"
  "Reverse Annotations:  Normally, these web pages look at versions of\n"
  "FILENAME moving backwards in time back toward the root check-in.  However,\n"
  "if the origin= query parameter is used to specify some future check-in\n"
  "(example: \"origin=trunk\") then these pages show changes moving towards\n"
  "that alternative origin.  Thus using \"origin=trunk\" on an historical\n"
  "version of the file shows the first time each line in the file was changed\n"
  "or removed by any subsequent check-in.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "   checkin=ID          The check-in at which to start the annotation\n"
  "   filename=FILENAME   The filename.\n"
  "   filevers=BOOLEAN    Show file versions rather than check-in versions\n"
  "   limit=LIMIT         Limit the amount of analysis.  LIMIT can be one of:\n"
  "                          none   No limit\n"
  "                          Xs     As much as can be computed in X seconds\n"
  "                          N      N versions\n"
  "   log=BOOLEAN         Show a log of versions analyzed\n"
  "   origin=ID           The origin check-in.  If unspecified, the root\n"
  "                       check-in over the entire repository is used.\n"
  "                       Specify \"origin=trunk\" or similar for a reverse\n"
  "                       annotation\n"
  "   w=BOOLEAN           Ignore whitespace";
static const char zHelp032[] =
  "A web-form, available to users with the \"Send-Announcement\" or \"A\"\n"
  "capability, that allows one to send announcements to whomever\n"
  "has subscribed to receive announcements.  The administrator can\n"
  "also send a message to an arbitrary email address and/or to all\n"
  "subscribers regardless of whether or not they have elected to\n"
  "receive announcements.";
static const char zHelp341[] =
  "Typical usage:\n"
  "\n"
  "   /artifact/HASH\n"
  "   /whatis/HASH\n"
  "   /file/NAME\n"
  "   /docfile/NAME\n"
  "\n"
  "Additional query parameters:\n"
  "\n"
  "  ln              - show line numbers\n"
  "  ln=N            - highlight line number N\n"
  "  ln=M-N          - highlight lines M through N inclusive\n"
  "  ln=M-N+Y-Z      - highlight lines M through N and Y through Z (inclusive)\n"
  "  verbose         - show more detail in the description\n"
  "  brief           - show just the document, not the metadata.  The\n"
  "                    /docfile page is an alias for /file?brief\n"
  "  download        - redirect to the download (artifact page only)\n"
  "  name=NAME       - filename or hash as a query parameter\n"
  "  filename=NAME   - alternative spelling for \"name=\"\n"
  "  fn=NAME         - alternative spelling for \"name=\"\n"
  "  ci=VERSION      - The specific check-in to use with \"name=\" to\n"
  "                    identify the file.\n"
  "  txt             - Force display of unformatted source text\n"
  "  hash            - Output only the hash of the artifact\n"
  "\n"
  "The /artifact page show the complete content of a file\n"
  "identified by HASH.  The /whatis page shows only a description\n"
  "of how the artifact is used.  The /file page shows the most recent\n"
  "version of the file or directory called NAME, or a list of the\n"
  "top-level directory if NAME is omitted.\n"
  "\n"
  "For /artifact and /whatis, the name= query parameter can refer to\n"
  "either the name of a file, or an artifact hash.  If the ci= query\n"
  "parameter is also present, then name= must refer to a file name.\n"
  "If ci= is omitted, then the hash interpretation is preferred but\n"
  "if name= cannot be understood as a hash, a default \"tip\" value is\n"
  "used for ci=.\n"
  "\n"
  "For /file, name= can only be interpreted as a filename.  As before,\n"
  "a default value of \"tip\" is used for ci= if ci= is omitted.";
static const char zHelp514[] =
  "Show information about the sizes of artifacts in this repository";
static const char zHelp038[] =
  "Add a new attachment.\n"
  "\n"
  "   tkt=HASH\n"
  "   page=WIKIPAGE\n"
  "   technote=HASH\n"
  "   from=URL";
static const char zHelp035[] =
  "Download or display an attachment.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "   tkt=HASH\n"
  "   page=WIKIPAGE\n"
  "   technote=HASH\n"
  "   file=FILENAME\n"
  "   attachid=ID";
static const char zHelp034[] =
  "List attachments.\n"
  "\n"
  "   tkt=HASH\n"
  "   page=WIKIPAGE\n"
  "   technote=HASH\n"
  "\n"
  "At most one of technote=, tkt= or page= may be supplied.\n"
  "\n"
  "If none are given, all attachments are listed.  If one is given, only\n"
  "attachments for the designated technote, ticket or wiki page are shown.\n"
  "\n"
  "HASH may be just a prefix of the relevant technical note or ticket\n"
  "artifact hash, in which case all attachments of all technical notes or\n"
  "tickets with the prefix will be listed.";
static const char zHelp260[] =
  "Return the background image.  If no background image is defined, a\n"
  "built-in 16x16 pixel white GIF is returned.";
static const char zHelp401[] =
  "Return a page showing the largest artifacts in the repository in order\n"
  "of decreasing size.\n"
  "\n"
  "  n=N         Show the top N artifacts (default: 250)";
static const char zHelp399[] =
  "Return a page showing all artifacts in the repository.  Query parameters:\n"
  "\n"
  "  n=N         Show N artifacts\n"
  "  s=S         Start with artifact number S\n"
  "  priv        Show only unpublished or private artifacts\n"
  "  phan        Show only phantom artifacts\n"
  "  hclr        Color code hash types (SHA1 vs SHA3)\n"
  "  recent      Show the most recent N artifacts";
static const char zHelp058[] =
  "Show a list of branches.  With no query parameters, a sortable table\n"
  "is used to show all branches.  If query parameters are present a\n"
  "fixed bullet list is shown.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "    all         Show all branches\n"
  "    closed      Show only closed branches\n"
  "    open        Show only open branches\n"
  "    colortest   Show all branches with automatic color\n"
  "\n"
  "When there are no query parameters, a new-style /brlist page shows\n"
  "all branches in a sortable table.  The new-style /brlist page is\n"
  "preferred and is the default.";
static const char zHelp059[] =
  "List the first check of every branch, starting with the most recent\n"
  "and going backwards in time.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "   ubg            Color the graph by user, not by branch.";
static const char zHelp068[] =
  "Return one of many built-in content files.  Query parameters:\n"
  "\n"
  "   name=FILENAME       Return the single file whose name is FILENAME.\n"
  "   mimetype=TYPE       Override the mimetype in the returned file to\n"
  "                       be TYPE.  If this query parameter is omitted\n"
  "                       (the usual case) then the mimetype is inferred\n"
  "                       from the suffix on FILENAME\n"
  "   m=IDLIST            IDLIST is a comma-separated list of integers\n"
  "                       that specify multiple javascript files to be\n"
  "                       concatenated and returned all at once.\n"
  "   id=UNIQUEID         Version number of the \"builtin\" files.  Used\n"
  "                       for cache control only.\n"
  "\n"
  "At least one of the name= or m= query parameters must be present.\n"
  "\n"
  "If the id= query parameter is present, then Fossil assumes that the\n"
  "result is immutable and sets a very large cache retention time (1 year).";
static const char zHelp075[] =
  "Usage:  /cacheget?key=KEY\n"
  "\n"
  "Download a single entry for the cache, identified by KEY.\n"
  "This page is normally a hyperlink from the /cachestat page.\n"
  "Requires Admin privilege.";
static const char zHelp074[] =
  "Show information about the webpage cache.  Requires Setup privilege.";
static const char zHelp080[] =
  "Return a WAV file that pronounces the digits of the captcha that\n"
  "is determined by the seed given in the name= query parameter.";
static const char zHelp089[] =
  "Start up a browser-based chat session.\n"
  "\n"
  "This is the main page that humans use to access the chatroom.  Simply\n"
  "point a web-browser at /chat and the screen fills with the latest\n"
  "chat messages, and waits for new ones.\n"
  "\n"
  "Other /chat-OP pages are used by XHR requests from this page to\n"
  "send new chat message, delete older messages, or poll for changes.";
static const char zHelp097[] =
  "Download an SQLite database containing all chat content with a\n"
  "message-id larger than the \"msgid\" query parameter.  Setup\n"
  "privilege is required to use this URL.\n"
  "\n"
  "This is used to implement the \"fossil chat pull\" command.";
static const char zHelp096[] =
  "Delete the chat entry identified by the name query parameter.\n"
  "Invoking fetch(\"chat-delete/\"+msgid) from javascript in the client\n"
  "will delete a chat entry from the CHAT table.\n"
  "\n"
  "This routine both deletes the identified chat entry and also inserts\n"
  "a new entry with the current timestamp and with:\n"
  "\n"
  "  *  xmsg = NULL\n"
  "\n"
  "  *  file = NULL\n"
  "\n"
  "  *  mdel = The msgid of the row that was deleted\n"
  "\n"
  "This new entry will then be propagated to all listeners so that they\n"
  "will know to delete their copies of the message too.";
static const char zHelp095[] =
  "Download the CHAT.FILE attachment associated with a single chat\n"
  "entry.  The \"name\" query parameter begins with an integer that\n"
  "identifies the particular chat message. The integer may be followed\n"
  "by a / and a filename, which will (A) indicate to the browser to\n"
  "use the indicated name when saving the file and (B) be used to\n"
  "guess the mimetype in some particular cases involving the \"render\"\n"
  "flag.\n"
  "\n"
  "If the \"render\" URL parameter is provided, the blob has a size\n"
  "greater than zero, and blob meets one of the following conditions\n"
  "then the fossil-rendered form of that content is returned, rather\n"
  "than the original:\n"
  "\n"
  "- Mimetype is text/x-markdown or text/markdown: emit HTML.\n"
  "\n"
  "- Mimetype is text/x-fossil-wiki or P(\"name\") ends with \".wiki\":\n"
  "  emit HTML.\n"
  "\n"
  "- Mimetype is text/x-pikchr or P(\"name\") ends with \".pikchr\": emit\n"
  "  image/svg+xml if rendering succeeds or text/html if rendering\n"
  "  fails.";
static const char zHelp094[] =
  "/chat-fetch-one/N\n"
  "\n"
  "Fetches a single message with the given ID, if available.\n"
  "\n"
  "Options:\n"
  "\n"
  "  raw = the xmsg field will be returned unparsed.\n"
  "\n"
  "Response is either a single object in the format returned by\n"
  "/chat-poll (without the wrapper array) or a JSON-format error\n"
  "response, as documented for ajax_route_error().";
static const char zHelp092[] =
  "The chat page generated by /chat using an XHR to this page to\n"
  "request new chat content.  A typical invocation is:\n"
  "\n"
  "    /chat-poll/N\n"
  "    /chat-poll?name=N\n"
  "\n"
  "The \"name\" argument should begin with an integer which is the largest\n"
  "\"msgid\" that the chat page currently holds. If newer content is\n"
  "available, this routine returns that content straight away. If no new\n"
  "content is available, this webpage blocks until the new content becomes\n"
  "available.  In this way, the system implements \"hanging-GET\" or \"long-poll\"\n"
  "style event notification. If no new content arrives after a delay of\n"
  "approximately chat-poll-timeout seconds (default: 420), then reply is\n"
  "sent with an empty \"msg\": field.\n"
  "\n"
  "If N is negative, then the return value is the N most recent messages.\n"
  "Hence a request like /chat-poll/-100 can be used to initialize a new\n"
  "chat session to just the most recent messages.\n"
  "\n"
  "Some webservers (althttpd) do not allow a term of the URL path to\n"
  "begin with \"-\".  Then /chat-poll/-100 cannot be used.  Instead you\n"
  "have to say \"/chat-poll?name=-100\".\n"
  "\n"
  "If the integer parameter \"before\" is passed in, it is assumed that\n"
  "the client is requesting older messages, up to (but not including)\n"
  "that message ID, in which case the next-oldest \"n\" messages\n"
  "(default=chat-initial-history setting, equivalent to n=0) are\n"
  "returned (negative n fetches all older entries). The client then\n"
  "needs to take care to inject them at the end of the history rather\n"
  "than the same place new messages go.\n"
  "\n"
  "If \"before\" is provided, \"name\" is ignored.\n"
  "\n"
  "If \"raw\" is provided, the \"xmsg\" text is sent back as-is, in\n"
  "markdown format, rather than being HTML-ized. This is not used or\n"
  "supported by fossil's own chat client but is intended for 3rd-party\n"
  "clients. (Specifically, for Brad Harder's curses-based client.)\n"
  "\n"
  "The reply from this webpage is JSON that describes the new content.\n"
  "Format of the json:\n"
  "\n"
  "|    {\n"
  "|      \"msgs\":[\n"
  "|        {\n"
  "|           \"msgid\": integer // message id\n"
  "|           \"mtime\": text    // When sent: YYYY-MM-DDTHH:MM:SSZ\n"
  "|           \"lmtime: text    // Sender's client-side YYYY-MM-DDTHH:MM:SS\n"
  "|           \"xfrom\": text    // Login name of sender\n"
  "|           \"uclr\":  text    // Color string associated with the user\n"
  "|           \"xmsg\":  text    // HTML text of the message\n"
  "|           \"fsize\": integer // file attachment size in bytes\n"
  "|           \"fname\": text    // Name of file attachment\n"
  "|           \"fmime\": text    // MIME-type of file attachment\n"
  "|           \"mdel\":  integer // message id of prior message to delete\n"
  "|        }\n"
  "|      ]\n"
  "|    }\n"
  "\n"
  "The \"fname\" and \"fmime\" fields are only present if \"fsize\" is greater\n"
  "than zero.  The \"xmsg\" field may be an empty string if \"fsize\" is zero.\n"
  "\n"
  "The \"msgid\" values will be in increasing order.\n"
  "\n"
  "The \"mdel\" will only exist if \"xmsg\" is an empty string and \"fsize\" is zero.\n"
  "\n"
  "The \"lmtime\" value might be unknown, in which case it is omitted.\n"
  "\n"
  "The messages are ordered oldest first unless \"before\" is provided, in which\n"
  "case they are sorted newest first (to facilitate the client-side UI update).\n"
  "\n"
  "As a special case, if this routine encounters an error, e.g. the user's\n"
  "permissions cannot be verified because their login cookie expired, the\n"
  "request returns a slightly modified structure:\n"
  "\n"
  "|    {\n"
  "|      \"msgs\":[\n"
  "|        {\n"
  "|          \"isError\": true,\n"
  "|          \"xfrom\": null,\n"
  "|          \"xmsg\": \"error details\"\n"
  "|          \"mtime\": as above,\n"
  "|          \"ltime\": same as mtime\n"
  "|        }\n"
  "|      ]\n"
  "|    }\n"
  "\n"
  "If the client gets such a response, it should display the message\n"
  "in a prominent manner and then stop polling for new messages.";
static const char zHelp093[] =
  "";
static const char zHelp090[] =
  "This page receives (via XHR) a new chat-message and/or a new file\n"
  "to be entered into the chat history.\n"
  "\n"
  "On success it responds with an empty response: the new message\n"
  "should be fetched via /chat-poll. On error, e.g. login expiry,\n"
  "it emits a JSON response in the same form as described for\n"
  "/chat-poll errors, but as a standalone object instead of a\n"
  "list of objects.\n"
  "\n"
  "Requests to this page should be POST, not GET.  POST parameters\n"
  "include:\n"
  "\n"
  "   msg        The (Markdown) text of the message to be sent\n"
  "\n"
  "   file       The content of the file attachment\n"
  "\n"
  "   lmtime     ISO-8601 formatted date-time string showing the local time\n"
  "              of the sender.\n"
  "\n"
  "At least one of the \"msg\" or \"file\" POST parameters must be provided.";
static const char zHelp347[] =
  "Edit a check-in.  (Check-ins are immutable and do not really change.\n"
  "This page really creates supplemental tags that affect the display\n"
  "of the check-in.)\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "    rid=INTEGER        Record ID of the check-in to edit (REQUIRED)\n"
  "\n"
  "POST parameters after pressing \"Preview\", \"Cancel\", or \"Apply\":\n"
  "\n"
  "    c=TEXT             New check-in comment\n"
  "    u=TEXT             New user name\n"
  "    newclr             Apply a background color\n"
  "    clr=TEXT           New background color (only if newclr)\n"
  "    pclr               Propagate new background color (only if newclr)\n"
  "    dt=TEXT            New check-in date/time (ISO8610 format)\n"
  "    newtag             Add a new tag to the check-in\n"
  "    tagname=TEXT       Name of the new tag to be added (only if newtag)\n"
  "    newbr              Put the check-in on a new branch\n"
  "    brname=TEXT        Name of the new branch (only if newbr)\n"
  "    close              Close this check-in\n"
  "    hide               Hide this check-in\n"
  "    cNNN               Cancel tag with tagid=NNN\n"
  "\n"
  "    cancel             Cancel the edit.  Return to the check-in view\n"
  "    preview            Show a preview of the edited check-in comment\n"
  "    apply              Apply changes";
static const char zHelp328[] =
  "URL:    /ci_tags?name=ARTIFACTID\n"
  "\n"
  "Show all tags and properties for a given check-in.\n"
  "\n"
  "This information used to be part of the main /ci page, but it is of\n"
  "marginal usefulness.  Better to factor it out into a sub-screen.";
static const char zHelp329[] =
  "Show information about the current checkout.  This page only functions\n"
  "if the web server is run on a loopback interface (in other words, was\n"
  "started using \"fossil ui\" or similar) from within an open check-out.\n"
  "\n"
  "If the \"exbase=PATH\" query parameter is provided, then the diff shown\n"
  "uses the files in PATH as the baseline.  This is the same as using\n"
  "the \"--from PATH\" argument to the \"fossil diff\" command-line.  In fact,\n"
  "when using \"fossil ui --from PATH\", the --from argument becomes the value\n"
  "of the exbase query parameter for the start page.  Note that if PATH\n"
  "is a pure hexadecimal string, it is decoded first before being used as\n"
  "the pathname.  Real pathnames should contain at least one directory\n"
  "separator character.\n"
  "\n"
  "Other query parameters related to diffs are also accepted.";
static const char zHelp407[] =
  "Show information about all cluster artifacts in the database.";
static const char zHelp031[] =
  "A web-form to send an email message to the repository administrator,\n"
  "or (with appropriate permissions) to anybody.";
static const char zHelp135[] =
  "Show all cookies associated with Fossil.  This shows the text of the\n"
  "login cookie and is hence dangerous if an adversary is looking over\n"
  "your shoulder and is able to read and reproduce that cookie.\n"
  "\n"
  "\n"
  "Show the current display settings contained in the\n"
  "\"fossil_display_settings\" cookie.";
static const char zHelp402[] =
  "Usage:  /deltachain/RID\n"
  "\n"
  "The RID query parameter is required.  Generate a page with a table\n"
  "showing storage characteristics of RID and other artifacts that are\n"
  "derived from RID via delta.";
static const char zHelp061[] =
  "Show the files and subdirectories within a single directory of the\n"
  "source tree.  Only files for a single check-in are shown if the ci=\n"
  "query parameter is present.  If ci= is missing, the union of files\n"
  "across all check-ins is shown.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "   ci=LABEL         Show only files in this check-in.  Optional.\n"
  "   name=PATH        Directory to display.  Optional.  Top-level if missing\n"
  "   re=REGEXP        Show only files matching REGEXP\n"
  "   type=TYPE        TYPE=flat: use this display\n"
  "                    TYPE=tree: use the /tree display instead\n"
  "   noreadme         Do not attempt to display the README file.\n"
  "   dx               Behave like /docdir";
static const char zHelp060[] =
  "Show the files and subdirectories within a single directory of the\n"
  "source tree.  This works similarly to /dir but with the following\n"
  "differences:\n"
  "\n"
  "   *   Links to files go to /doc (showing the file content directly,\n"
  "       depending on mimetype) rather than to /file (which always shows\n"
  "       the file embedded in a standard Fossil page frame).\n"
  "\n"
  "   *   The submenu and the page title is not shown.  The page is plain.\n"
  "\n"
  "The /docdir page is a shorthand for /dir with the \"dx\" query parameter.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "   ci=LABEL         Show only files in this check-in.  If omitted, the\n"
  "                    \"trunk\" directory is used.\n"
  "   name=PATH        Directory to display.  Optional.  Top-level if missing\n"
  "   re=REGEXP        Show only files matching REGEXP\n"
  "   noreadme         Do not attempt to display the README file.\n"
  "   dx               File links to go to /doc instead of /file or /finfo.";
static const char zHelp262[] =
  "Search for documents that match a user-supplied full-text search pattern.\n"
  "If no pattern is specified (by the s= query parameter) then the user\n"
  "is prompted to enter a search string.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "    s=PATTERN             Search for PATTERN";
static const char zHelp539[] =
  "Show a special no-graph timeline of recent important check-ins with\n"
  "an opportunity to pull tarballs and ZIPs.";
static const char zHelp460[] =
  "Show the content of the error log.  Only the administrator can view\n"
  "this page.\n"
  "\n"
  "   y=0x001          Show only hack attempts\n"
  "   y=0x002          Show only panics and assertion faults\n"
  "   y=0x004          Show hung backoffice processes\n"
  "   y=0x008          Show POST requests from a different origin\n"
  "   y=0x010          Show SQLITE_AUTH and similar\n"
  "   y=0x020          Show SMTP error reports\n"
  "   y=0x040          Show TH1 vulnerability reports\n"
  "   y=0x080          Show SQL errors\n"
  "   y=0x100          Show timeouts\n"
  "   y=0x200          Show WAL recoveries\n"
  "   y=0x8000         Show other uncategorized messages\n"
  "\n"
  "If y is omitted or is zero, a count of the various message types is\n"
  "shown.";
static const char zHelp275[] =
  "Relay an HTTP request to secondary CGI after first checking the\n"
  "login credentials and setting auxiliary environment variables\n"
  "so that the secondary CGI can be aware of the credentials and\n"
  "capabilities of the Fossil user.\n"
  "\n"
  "The /ext page is only functional if the \"extroot: DIR\" setting is\n"
  "found in the CGI script that launched Fossil, or if the \"--extroot DIR\"\n"
  "flag is present when Fossil is launched using the \"server\", \"ui\", or\n"
  "\"http\" commands.  DIR must be an absolute pathname (relative to the\n"
  "chroot jail) of the root of the file hierarchy that implements the CGI\n"
  "functionality.  Executable files are CGI.  Non-executable files are\n"
  "static content.\n"
  "\n"
  "The path after the /ext is the path to the CGI script or static file\n"
  "relative to DIR. For security, this path may not contain characters\n"
  "other than ASCII letters or digits, \".\", \"-\", \"/\", and \"_\".  If the\n"
  "\".\" or \"-\" characters are present in the path then they may not follow\n"
  "a \"/\".\n"
  "\n"
  "If the path after /ext ends with \"/\" and is the name of a directory then\n"
  "that directory is searched for files named \"index.html\", \"index.wiki\",\n"
  "and \"index.md\" (in that order) and if found, those filenames are\n"
  "appended to the path.";
static const char zHelp276[] =
  "List all files in the extension CGI document root and its subfolders.";
static const char zHelp261[] =
  "Return the configured \"favicon.ico\" image.  If no \"favicon.ico\" image\n"
  "is defined, the returned image is for the Fossil lizard icon.\n"
  "\n"
  "The intended use case here is to supply an icon for the \"fossil ui\"\n"
  "command.  For a permanent website, the recommended process is for\n"
  "the admin to set up a project-specific icon and reference that icon\n"
  "in the HTML header using a line like:\n"
  "\n"
  "  <link rel=\"icon\" href=\"URL-FOR-YOUR-ICON\" type=\"MIMETYPE\"/>";
static const char zHelp335[] =
  "URL: fdiff?v1=HASH&v2=HASH\n"
  "\n"
  "Two arguments, v1 and v2, identify the artifacts to be diffed.\n"
  "Show diff side by side unless sbs is 0.  Generate plain text if\n"
  "\"patch\" is present, otherwise generate \"pretty\" HTML.\n"
  "\n"
  "Alternative URL:  fdiff?from=filename1&to=filename2&ci=checkin\n"
  "\n"
  "If the \"from\" and \"to\" query parameters are both present, then they are\n"
  "the names of two files within the check-in \"ci\" that are diffed.  If the\n"
  "\"ci\" parameter is omitted, then the most recent check-in (\"tip\") is\n"
  "used.\n"
  "\n"
  "Additional parameters:\n"
  "\n"
  "     dc=N             Show N lines of context around each diff\n"
  "     patch            Use the patch diff format\n"
  "     regex=REGEX      Only show differences that match REGEX\n"
  "     sbs=BOOLEAN      Turn side-by-side diffs on and off (default: on)\n"
  "     verbose=BOOLEAN  Show more detail when describing artifacts\n"
  "     w=BOOLEAN        Ignore whitespace";
static const char zHelp064[] =
  "Show all files in a single check-in (identified by the name= query\n"
  "parameter) in order of increasing age.\n"
  "\n"
  "Parameters:\n"
  "  name=VERSION   Selects the check-in version (default=tip).\n"
  "  glob=STRING    Only shows files matching this glob pattern\n"
  "                 (e.g. *.c or *.txt).\n"
  "  showid         Show RID values for debugging";
static const char zHelp293[] =
  "Enables the online editing and committing of text files. Requires\n"
  "that the user have Write permissions and that a user with setup\n"
  "permissions has set the fileedit-glob setting to a list of glob\n"
  "patterns matching files which may be edited (e.g. \"*.wiki,*.md\").\n"
  "Note that fileedit-glob, by design, is a local-only setting.\n"
  "It does not sync across repository clones, and must be explicitly\n"
  "set on any repositories where this page should be activated.\n"
  "\n"
  "Optional query parameters:\n"
  "\n"
  "   filename=FILENAME   Repo-relative path to the file.\n"
  "   checkin=VERSION     Check-in version, using any unambiguous\n"
  "                       symbolic version name.\n"
  "\n"
  "If passed a filename but no check-in then it will attempt to\n"
  "load that file from the most recent leaf check-in.\n"
  "\n"
  "Once the page is loaded, files may be selected from any open leaf\n"
  "version. The only way to edit files from non-leaf checkins is to\n"
  "pass both the filename and check-in as URL parameters to the page.\n"
  "Users with the proper permissions will be presented with \"Edit\"\n"
  "links in various file-specific contexts for files which match the\n"
  "fileedit-glob, regardless of whether they refer to leaf versions or\n"
  "not.";
static const char zHelp296[] =
  "Usage:\n"
  "  *  /finfo?name=FILENAME\n"
  "  *  /finfo?name=FILENAME&ci=HASH\n"
  "\n"
  "Show the change history for a single file.  The name=FILENAME query\n"
  "parameter gives the filename and is a required parameter.  If the\n"
  "ci=HASH parameter is also supplied, then the FILENAME,HASH combination\n"
  "identifies a particular version of a file, and in that case all changes\n"
  "to that one file version are tracked across both edits and renames.\n"
  "If only the name=FILENAME parameter is supplied (if ci=HASH is omitted)\n"
  "then the graph shows all changes to any file while it happened\n"
  "to be called FILENAME and changes are not tracked across renames.\n"
  "\n"
  "Additional query parameters:\n"
  "\n"
  "   a=DATETIME      Only show changes after DATETIME\n"
  "   b=DATETIME      Only show changes before DATETIME\n"
  "   ci=HASH         identify a particular version of a file and then\n"
  "                   track changes to that file across renames\n"
  "   m=HASH          Mark this particular file version.\n"
  "   n=NUM           Show the first NUM changes only\n"
  "   name=FILENAME   (Required) name of file whose history to show\n"
  "   brbg            Background color by branch name\n"
  "   ubg             Background color by user name\n"
  "   from=HASH       Ancestors only (not descendants) of the version of\n"
  "                   the file in this particular check-in.\n"
  "   to=HASH         If both from= and to= are supplied, only show those\n"
  "                   changes on the direct path between the two given\n"
  "                   checkins.\n"
  "   showid          Show RID values for debugging\n"
  "   showsql         Show the SQL query used to gather the data for\n"
  "                   the graph\n"
  "\n"
  "DATETIME may be in any of usual formats, including \"now\",\n"
  "\"YYYY-MM-DDTHH:MM:SS.SSS\", \"YYYYMMDDHHMM\", and others.";
static const char zHelp306[] =
  "Start a new forum thread.";
static const char zHelp307[] =
  "Edit an existing forum message.\n"
  "Query parameters:\n"
  "\n"
  "  fpid=X        Hash of the post to be edited.  REQUIRED";
static const char zHelp311[] =
  "The main page for the forum feature.  Show a list of recent forum\n"
  "threads.  Also show a search box at the top if search is enabled,\n"
  "and a button for creating a new thread, if enabled.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "   n=N             The number of threads to show on each page\n"
  "   x=X             Skip the first X threads\n"
  "   s=Y             Search for term Y.";
static const char zHelp304[] =
  "Start a new thread on the forum or reply to an existing thread.\n"
  "But first prompt to see if the user would like to log in.";
static const char zHelp300[] =
  "Show a single forum posting. The posting is shown in context with\n"
  "its entire thread.  The selected posting is enclosed within\n"
  "<div class='forumSel'>...</div>.  Javascript is used to move the\n"
  "selected posting into view after the page loads.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "  name=X        REQUIRED.  The hash of the post to display.\n"
  "  t=a           Automatic display mode, i.e. hierarchical for\n"
  "                desktop and chronological for mobile.  This is the\n"
  "                default if the \"t\" query parameter is omitted.\n"
  "  t=c           Show posts in the order they were written.\n"
  "  t=h           Show posts using hierarchical indenting.\n"
  "  t=s           Show only the post specified by \"name=X\".\n"
  "  t=r           Alias for \"t=c&unf&hist\".\n"
  "  t=y           Alias for \"t=s&unf&hist\".\n"
  "  raw           Alias for \"t=s&unf\".  Additionally, omit the border\n"
  "                around the post, and ignore \"t\" and \"hist\".\n"
  "  unf           Show the original, unformatted source text.\n"
  "  hist          Show edit history in addition to current posts.";
static const char zHelp302[] =
  "fpid=X        Hash of the post to be edited.  REQUIRED\n"
  "  reason=X      Optional reason for closure.\n"
  "\n"
  "Closes or re-opens the given forum post, within the bounds of the\n"
  "API for forumpost_close(). After (perhaps) modifying the \"closed\"\n"
  "status of the given thread, it redirects to that post's thread\n"
  "view. Requires admin privileges.";
static const char zHelp301[] =
  "Show all forum messages associated with a particular message thread.\n"
  "The result is basically the same as /forumpost except that none of\n"
  "the postings in the thread are selected.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "  name=X        REQUIRED.  The hash of any post of the thread.\n"
  "  t=a           Automatic display mode, i.e. hierarchical for\n"
  "                desktop and chronological for mobile.  This is the\n"
  "                default if the \"t\" query parameter is omitted.\n"
  "  t=c           Show posts in the order they were written.\n"
  "  t=h           Show posts using hierarchical indenting.\n"
  "  unf           Show the original, unformatted source text.\n"
  "  hist          Show edit history in addition to current posts.";
static const char zHelp299[] =
  "Usage:  /forumthreadhashlist/HASH-OF-ROOT\n"
  "\n"
  "This page (accessibly only to admins) shows a list of all artifacts\n"
  "associated with a single forum thread.  An admin might copy/paste this\n"
  "list into the /shun page in order to shun an entire thread.";
static const char zHelp406[] =
  "Show the number of hash collisions for hash prefixes of various lengths.";
static const char zHelp119[] =
  "Print out the color names associated with each tag.  Used for\n"
  "testing the hash_color() function.";
static const char zHelp250[] =
  "URL: /help/CMD or  /help/www/PAGE\n"
  "\n"
  "Show the built-in help text for CMD or PAGE.  CMD can be a command-line\n"
  "interface command or a setting name.  PAGE is the name of a\n"
  "web interface.  /help//PAGE also works if the double-/ makes it through\n"
  "the main web server.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "   name=CMD        Show help for CMD where CMD is a command name or\n"
  "                   or setting name.  If CMD beings with \"/\" it is\n"
  "                   interpreted as a PAGE name.\n"
  "\n"
  "   name=www/PAGE   Show help for web page PAGE.\n"
  "\n"
  "   name=/PAGE      The initial \"www/\" on web-page help can be abbreviated as\n"
  "                   just \"/\"\n"
  "\n"
  "   plaintext       Show the help within <pre>...</pre>, as if it were\n"
  "                   displayed using the \"fossil help\" command.\n"
  "\n"
  "   raw             Show the raw help text without any formatting.\n"
  "                   (Used for debugging.)";
static const char zHelp339[] =
  "URL: /hexdump?name=ARTIFACTID\n"
  "\n"
  "Show the complete content of a file identified by ARTIFACTID\n"
  "as preformatted text.\n"
  "\n"
  "Other parameters:\n"
  "\n"
  "    verbose              Show more detail when describing the object";
static const char zHelp600[] =
  "The /home, /index, and /not_found pages all redirect to the homepage\n"
  "configured by the administrator.";
static const char zHelp078[] =
  "This page is a honeypot for spiders and bots.";
static const char zHelp115[] =
  "Provide instructions on how to clone this repository.";
static const char zHelp346[] =
  "URL: info/NAME\n"
  "\n"
  "The NAME argument is any valid artifact name: an artifact hash,\n"
  "a timestamp, a tag name, etc.\n"
  "\n"
  "Because NAME can match so many different things (commit artifacts,\n"
  "wiki pages, ticket comments, forum posts...) the format of the output\n"
  "page depends on the type of artifact that NAME matches.";
static const char zHelp352[] =
  "View and modify the interwiki tag map or \"intermap\".\n"
  "This page is visible to administrators only.";
static const char zHelp079[] =
  "This is the action for the form that is the captcha.  Not intended\n"
  "for external use.  \"ityaar\" is an acronym \"I Think You Are A Robot\".\n"
  "\n"
  "If the captcha is correctly solved, then an anonymous login cookie\n"
  "is set.  Regardless of whether or not the captcha was solved, this\n"
  "page always redirects to the fossil-goto cookie.";
static const char zHelp338[] =
  "URL: /jchunk/HASH?from=N&to=M\n"
  "\n"
  "Return lines of text from a file as a JSON array - one entry in the\n"
  "array for each line of text.\n"
  "\n"
  "The HASH is normally a sha1 or sha3 hash that identifies an artifact\n"
  "in the BLOB table of the database.  However, if HASH starts with an \"x\"\n"
  "and is followed by valid hexadecimal, and if we are running in a\n"
  "\"fossil ui\" situation (locally and with privilege), then decode the hex\n"
  "into a filename and read the file content from that name.\n"
  "\n"
  "**Warning:**  This is an internal-use-only interface that is subject to\n"
  "change at any moment.  External application should not use this interface\n"
  "since the application will break when this interface changes, and this\n"
  "interface will undoubtedly change.\n"
  "\n"
  "This page is intended to be used in an XHR from javascript on a\n"
  "diff page, to return unseen context to fill in additional context\n"
  "when the user clicks on the appropriate button. The response is\n"
  "always in JSON form and errors are reported as documented for\n"
  "ajax_route_error().";
#ifdef FOSSIL_ENABLE_JSON
static const char zHelp353[] =
  "Pages under /json/... must be entered into JsonPageDefs.\n"
  "This function dispatches them, and is the HTTP equivalent of\n"
  "json_cmd_top().";
#endif
static const char zHelp583[] =
  "Return a complete list of unversioned files as JSON.  The JSON\n"
  "looks like this:\n"
  "\n"
  "[{\"name\":NAME,\n"
  "  \"mtime\":MTIME,\n"
  "  \"hash\":HASH,\n"
  "  \"size\":SIZE,\n"
  "  \"user\":USER}]";
static const char zHelp232[] =
  "Show leaf check-ins in a timeline.  By default only open leaves\n"
  "are listed.\n"
  "\n"
  "A \"leaf\" is a check-in with no children in the same branch.  A\n"
  "\"closed leaf\" is a leaf that has a \"closed\" tag.  An \"open leaf\"\n"
  "is a leaf without a \"closed\" tag.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "    all           Show all leaves\n"
  "    closed        Show only closed leaves\n"
  "    ng            No graph\n"
  "    nohidden      Hide check-ins with \"hidden\" tag\n"
  "    onlyhidden    Show only check-ins with \"hidden\" tag\n"
  "    brbg          Background color by branch name\n"
  "    ubg           Background color by user name";
static const char zHelp360[] =
  "The login/logout page.  Parameters:\n"
  "\n"
  "   g=URL             Jump back to this URL after login completes\n"
  "   anon              The g=URL is not accessible by \"nobody\" but is\n"
  "                     accessible by \"anonymous\"";
static const char zHelp259[] =
  "Return the logo image.  This image is available to anybody who can see\n"
  "the login page.  It is designed for use in the upper left-hand corner\n"
  "of the header.";
static const char zHelp605[] =
  "Show links to the md_rules and wiki_rules pages.";
static const char zHelp603[] =
  "Show a summary of the Markdown wiki formatting rules.";
static const char zHelp256[] =
  "Show the built-in table used to guess embedded document mimetypes\n"
  "from file suffixes.";
static const char zHelp297[] =
  "URL: /mlink?name=FILENAME\n"
  "URL: /mlink?ci=NAME\n"
  "\n"
  "Show all MLINK table entries for a particular file, or for\n"
  "a particular check-in.\n"
  "\n"
  "This screen is intended for use by Fossil developers to help\n"
  "in debugging Fossil itself.  Ordinary Fossil users are not\n"
  "expected to know what the MLINK table is or why it is important.\n"
  "\n"
  "To avoid confusing ordinary users, this page is only available\n"
  "to administrators.";
static const char zHelp392[] =
  "Show all pending moderation request";
static const char zHelp400[] =
  "Show a list of all \"phantom\" artifacts that are not marked as \"private\".\n"
  "\n"
  "A \"phantom\" artifact is an artifact whose hash named appears in some\n"
  "artifact but whose content is unknown.  For example, if a manifest\n"
  "references a particular SHA3 hash of a file, but that SHA3 hash is\n"
  "not on the shunning list and is not in the database, then the file\n"
  "is a phantom.  We know it exists, but we do not know its content.\n"
  "\n"
  "Whenever a sync occurs, both each party looks at its phantom list\n"
  "and for every phantom that is not also marked private, it asks the\n"
  "other party to send it the content.  This mechanism helps keep all\n"
  "repositories synced up.\n"
  "\n"
  "This page is similar to the /bloblist page in that it lists artifacts.\n"
  "But this page is a special case in that it only shows phantoms that\n"
  "are not private.  In other words, this page shows all phantoms that\n"
  "generate extra network traffic on every sync request.";
static const char zHelp414[] =
  "A pikchr code editor and previewer, allowing users to experiment\n"
  "with pikchr code or prototype it for use in copy/pasting into forum\n"
  "posts, wiki pages, or embedded docs. This version of pikchrshow\n"
  "uses WebAssembly to run entirely in the client browser, without a\n"
  "need for back-and-forth client/server traffic to perform the\n"
  "rendering. The \"legacy\" version of this application, which sends\n"
  "all input to the server for rendering, can be accessed by adding\n"
  "the \"legacy\" URL argument.\n"
  "\n"
  "It optionally accepts a p=pikchr-script-code URL parameter or POST\n"
  "value to pre-populate the editor with that code.";
static const char zHelp336[] =
  "URL: /raw/ARTIFACTID\n"
  "URL: /raw?ci=BRANCH&filename=NAME\n"
  "\n"
  "Additional query parameters:\n"
  "\n"
  "   m=MIMETYPE       The mimetype is MIMETYPE\n"
  "   at=FILENAME      Content-disposition; attachment; filename=FILENAME;\n"
  "\n"
  "Return the uninterpreted content of an artifact.  Used primarily\n"
  "to view artifacts that are images.";
static const char zHelp540[] =
  "Short for \"archive download\".  This page should have a single name=\n"
  "query parameter that is a check-in hash or symbolic name.  The resulting\n"
  "page offers a menu of possible download options for that check-in,\n"
  "including tarball, ZIP, or SQLAR.\n"
  "\n"
  "This is a utility page.  The /dir and /tree pages sometimes have a\n"
  "\"Download\" option in their submenu which redirects here.  Those pages\n"
  "used to have separate \"Tarball\" and \"ZIP\" submenu entries, but as\n"
  "submenu entries appear in alphabetical order, that caused the two\n"
  "submenu entries to be separated from one another, which is distracting.\n"
  "\n"
  "If the name= does not have a unique resolution, no error is generated.\n"
  "Instead, a redirect to the home page for the repository is made.\n"
  "\n"
  "Robots are excluded from this page if either of the keywords\n"
  "\"zip\" or \"download\" appear in the [[robot-restrict]] setting.";
static const char zHelp492[] =
  "Show a single RCVFROM table entry identified by the rcvid= query\n"
  "parameters.  Requires Admin privilege.";
static const char zHelp491[] =
  "Show a listing of RCVFROM table entries.\n"
  "\n"
  "The RCVFROM table records where this repository received each\n"
  "artifact, including the time of receipt, user, and IP address.\n"
  "\n"
  "Access requires Admin privilege.";
static const char zHelp435[] =
  "Show a summary of the regular expression matching rules for Fossil.";
static const char zHelp366[] =
  "Page to allow users to self-register.  The \"self-register\" setting\n"
  "must be enabled for this page to operate.";
static const char zHelp025[] =
  "Users visit this page to update the last-contact date on their\n"
  "subscription.  The last-contact date is the day that the subscriber\n"
  "last interacted with the repository.  If the name= query parameter\n"
  "(or POST parameter) contains a valid subscriber code, then the last-contact\n"
  "subscription associated with that subscriber code is updated to be the\n"
  "current date.";
static const char zHelp513[] =
  "Show relative sizes of tables in the repository database.";
static const char zHelp511[] =
  "Show the repository schema";
static const char zHelp512[] =
  "Show the sqlite_stat1 table for the repository schema";
static const char zHelp438[] =
  "Main menu for Tickets.";
static const char zHelp515[] =
  "Shows activity reports for the repository.\n"
  "\n"
  "Query Parameters:\n"
  "\n"
  "  view=REPORT_NAME  Valid REPORT_NAME values:\n"
  "                       * byyear\n"
  "                       * bymonth\n"
  "                       * byweek\n"
  "                       * byweekday\n"
  "                       * byhour\n"
  "                       * byuser\n"
  "                       * byfile\n"
  "                       * lastchng\n"
  "  user=NAME         Restricts statistics to the given user\n"
  "  type=TYPE         Restricts the report to a specific event type:\n"
  "                       * all (everything),\n"
  "                       * ci  (check-in)\n"
  "                       * m   (merge check-in),\n"
  "                       * n   (non-merge check-in)\n"
  "                       * f   (forum post)\n"
  "                       * w   (wiki page change)\n"
  "                       * t   (ticket change)\n"
  "                       * g   (tag added or removed)\n"
  "                    Defaulting to all event types.\n"
  "  from=DATETIME     Consider only events after this timestamp (requires to)\n"
  "  to=DATETIME       Consider only events before this timestamp (requires from)\n"
  "\n"
  "\n"
  "The view-specific query parameters include:\n"
  "\n"
  "view=byweek:\n"
  "\n"
  "  y=YYYY            The year to report (default is the server's\n"
  "                    current year).";
static const char zHelp367[] =
  "A web page to request a password reset.\n"
  "\n"
  "A form is presented where the user can enter their email address\n"
  "and a captcha.  If the email address entered corresponds to a known\n"
  "users, an email is sent to that address that contains a link to the\n"
  "/resetpw page that allows the users to enter a new password.\n"
  "\n"
  "This page is only available if the self-pw-reset property is enabled\n"
  "and email notifications are configured and operating.  Password resets\n"
  "are not available to users with Admin or Setup privilege.";
static const char zHelp364[] =
  "The URL format must be like this:\n"
  "\n"
  "     /resetpw/UID-TIMESTAMP-HASH\n"
  "\n"
  "Where UID is the uid of the user whose password is to be reset,\n"
  "TIMESTAMP is the unix timestamp when the request was made, and\n"
  "HASH is a hash based on UID, TIMESTAMP, and other information that\n"
  "is unavailable to an attacher.\n"
  "\n"
  "With no other arguments, a form is present which allows the user to\n"
  "enter a new password.  When the SUBMIT button is pressed, a POST request\n"
  "back to the same URL that will change the password.";
static const char zHelp523[] =
  "Return text/plain which is the content of the \"robots-txt\" setting, if\n"
  "such a setting exists and is non-empty.  Or construct an RFC-9309 complaint\n"
  "robots.txt file and return that if there is not \"robots.txt\" setting.\n"
  "\n"
  "This is useful for robot exclusion in cases where Fossil is run as a\n"
  "stand-alone server in its own domain.  For the more common case where\n"
  "Fossil is run as a CGI, or SCGI, or a server that responding to a reverse\n"
  "proxy, the returns robots.txt file will not be at the top level of the\n"
  "domain, and so it will be pointless.";
static const char zHelp440[] =
  "Create (/rptnew) or edit (/rptedit) a ticket report format.\n"
  "Query parameters:\n"
  "\n"
  "    name=N         Ticket report number or tag.\n"
  "    rn=N           Ticket report number (legacy).\n"
  "                      ^^^-- one of the two previous is required.\n"
  "    t=TITLE        Title of the report format\n"
  "    w=USER         Owner of the report format\n"
  "    s=SQL          SQL text used to implement the report\n"
  "    k=KEY          Color key\n"
  "    d=DESC         Optional descriptive text\n"
  "    m=MIMETYPE     Mimetype for DESC\n"
  "    x=TAG          Symbolic name for the report";
static const char zHelp439[] =
  "URL: /rptsql/N\n"
  "\n"
  "Display the SQL query used to generate a ticket report.  The N value\n"
  "is either the report number of a report tag.";
static const char zHelp442[] =
  "Generate a report.  The rn query parameter is the report number\n"
  "corresponding to REPORTFMT.RN.  If the tablist query parameter exists,\n"
  "then the output consists of lines of tab-separated fields instead of\n"
  "an HTML table.";
static const char zHelp517[] =
  "Return the \"Javascript\" content for the current skin (if there is any)";
static const char zHelp453[] =
  "Search for check-in comments, documents, tickets, or wiki that\n"
  "match a user-supplied pattern.\n"
  "\n"
  "   s=PATTERN       Specify the full-text pattern to search for\n"
  "   y=TYPE          What to search.\n"
  "                     c -> check-ins,\n"
  "                     d -> documentation,\n"
  "                     t -> tickets,\n"
  "                     w -> wiki,\n"
  "                     e -> tech notes,\n"
  "                     f -> forum,\n"
  "                     h -> built-in help,\n"
  "                   all -> everything.";
static const char zHelp458[] =
  "Run a security audit of the current Fossil setup, looking\n"
  "for configuration problems that might allow unauthorized\n"
  "access to the repository.\n"
  "\n"
  "This page requires administrator access.  It is usually\n"
  "accessed using the Admin/Security-Audit menu option\n"
  "from any of the default skins.";
static const char zHelp337[] =
  "URL: /secureraw/HASH?m=TYPE\n"
  "\n"
  "Return the uninterpreted content of an artifact.  This is similar\n"
  "to /raw except in this case the only way to specify the artifact\n"
  "is by the full-length SHA1 or SHA3 hash.  Abbreviations are not\n"
  "accepted.";
#if USE_SEE
static const char zHelp140[] =
  "Sets the sets the saved database encryption key to one that gets passed\n"
  "via the \"key\" query string parameter.  If the saved database encryption\n"
  "key has already been set, does nothing.  This web page does not produce\n"
  "any output on success or failure.  No permissions are required and none\n"
  "are checked (partially due to lack of encrypted database access).\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "  key                 The string to set as the saved database encryption\n"
  "                      key.";
#endif
static const char zHelp461[] =
  "Main menu for the administrative pages.  Requires Admin or Setup\n"
  "privileges.  Links to sub-pages only usable by Setup users are\n"
  "shown only to Setup users.";
static const char zHelp462[] =
  "Show a menu of available log renderings accessible to an administrator,\n"
  "together with a succinct explanation of each.\n"
  "\n"
  "This page is only accessible by administrators.";
static const char zHelp464[] =
  "The access-control settings page.  Requires Setup privileges.";
static const char zHelp475[] =
  "Administrative page for configuring and controlling ad units\n"
  "and how they are displayed.";
static const char zHelp473[] =
  "The \"Admin/Chat\" page.  Requires Setup privilege.";
static const char zHelp470[] =
  "The \"Admin/Configuration\" page.  Requires Setup privilege.";
static const char zHelp471[] =
  "The \"Admin/Download\" page.  Requires Setup privilege.";
static const char zHelp310[] =
  "Forum configuration and metrics.";
static const char zHelp465[] =
  "Change how the current repository participates in a login\n"
  "group.";
static const char zHelp476[] =
  "Administrative page for changing the logo, background, and icon images.";
static const char zHelp474[] =
  "Admin page for setting up moderation of tickets and wiki.";
static const char zHelp009[] =
  "Administrative page for configuring and controlling email notification.\n"
  "Normally accessible via the /Admin/Notification menu.";
static const char zHelp463[] =
  "Settings associated with defense against robots.  Requires setup privilege.";
static const char zHelp467[] =
  "Change or view miscellaneous settings.  Part of the\n"
  "/setup pages requiring Setup privileges.";
static const char zHelp499[] =
  "Generate a page showing the steps needed to create or edit\n"
  "a custom skin.";
static const char zHelp497[] =
  "Administrative actions on skins.  For administrators only.";
static const char zHelp498[] =
  "Edit aspects of a skin determined by the w= query parameter.\n"
  "Requires Admin or Setup privileges.\n"
  "\n"
  "   w=NUM     -- 0=CSS, 1=footer, 2=header, 3=details, 4=js\n"
  "   sk=NUM    -- the draft skin number";
static const char zHelp466[] =
  "Edit administrative settings controlling the display of\n"
  "timelines.";
static const char zHelp484[] =
  "A documentation page showing the meaning of the various user capabilities\n"
  "code letters.";
static const char zHelp486[] =
  "Edit information about a user or create a new user.\n"
  "Requires Admin privileges.";
static const char zHelp487[] =
  "Detailed information about a user account, available to administrators\n"
  "only.\n"
  "\n"
  "   u=UID\n"
  "   l=LOGIN";
static const char zHelp482[] =
  "Show a list of users.  Clicking on any user jumps to the edit\n"
  "screen for that user.  Requires Admin privileges.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "  with=CAP         Only show users that have one or more capabilities in CAP.\n"
  "  ubg              Color backgrounds by username hash";
static const char zHelp483[] =
  "A documentation page showing notes about user configuration.  This\n"
  "information used to be a side-bar on the user list page, but has been\n"
  "factored out for improved presentation.";
static const char zHelp472[] =
  "The \"Admin/Wiki\" page.  Requires Setup privilege.";
static const char zHelp490[] =
  "View the hashes of all shunned artifacts.  Add new hashes\n"
  "to the shun set.  Requires Admin privilege.";
static const char zHelp493[] =
  "List some of the web pages offered by the Fossil web engine.  This\n"
  "page is intended as a supplement to the menu bar on the main screen.\n"
  "That is, this page is designed to hold links that are omitted from\n"
  "the main menu due to lack of space.\n"
  "\n"
  "Additional entries defined by the \"sitemap-extra\" setting are included\n"
  "in the sitemap.  \"sitemap-extra\" should be a TCL script with three\n"
  "values per entry:\n"
  "\n"
  "   *    The displayed text\n"
  "\n"
  "   *    The URL\n"
  "\n"
  "   *    A \"capexpr\" expression that determines whether or not to include\n"
  "        the entry based on user capabilities.  \"*\" means always include\n"
  "        the entry and \"{}\" means never.\n"
  "\n"
  "If the \"e=1\" query parameter is present, then the standard content\n"
  "is omitted and only the sitemap-extra content is shown.  If \"e=2\" is\n"
  "present, then only the standard content is shown and sitemap-extra\n"
  "content is omitted.\n"
  "\n"
  "If the \"popup\" query parameter is present and this is a POST request\n"
  "from the same origin, then the normal HTML header and footer information\n"
  "is omitted and the HTML text returned is just a raw \"<ul>...</ul>\".";
static const char zHelp494[] =
  "List some of the web pages offered by the Fossil web engine for testing\n"
  "purposes.  This is similar to /sitemap, but is focused only on showing\n"
  "pages associated with testing.";
static const char zHelp495[] =
  "Generate a list of hyperlinks to various (obscure) variations on\n"
  "the /timeline page.";
static const char zHelp500[] =
  "Show a list of all of the built-in skins, plus the repository skin,\n"
  "and provide the user with an opportunity to change to any of them.";
static const char zHelp637[] =
  "URLs:\n"
  "\n"
  "    /zip/[VERSION/]NAME.zip\n"
  "    /sqlar/[VERSION/]NAME.sqlar\n"
  "\n"
  "Generate a ZIP Archive or an SQL Archive for the check-in specified by\n"
  "VERSION.  The archive is called NAME.zip or NAME.sqlar and has a top-level\n"
  "directory called NAME.\n"
  "\n"
  "The optional VERSION element defaults to the name of the main branch\n"
  "(usually \"trunk\") per the r= rules below.\n"
  "All of the following URLs are equivalent:\n"
  "\n"
  "     /zip/release/xyz.zip\n"
  "     /zip?r=release&name=xyz.zip\n"
  "     /zip/xyz.zip?r=release\n"
  "     /zip?name=release/xyz.zip\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "  name=[CKIN/]NAME    The optional CKIN component of the name= parameter\n"
  "                      identifies the check-in from which the archive is\n"
  "                      constructed.  If CKIN is omitted and there is no\n"
  "                      r= query parameter, then use the name of the main\n"
  "                      branch (usually \"trunk\").  NAME is the\n"
  "                      name of the download file.  The top-level directory\n"
  "                      in the generated archive is called by NAME with the\n"
  "                      file extension removed.\n"
  "\n"
  "  r=TAG               TAG identifies the check-in that is turned into an\n"
  "                      SQL or ZIP archive.  The default value is the name\n"
  "                      of the main branch (usually \"trunk\").\n"
  "                      If r= is omitted and if the name= query parameter\n"
  "                      contains one \"/\" character then the of part the\n"
  "                      name= value before the / becomes the TAG and the\n"
  "                      part of the name= value  after the / is the download\n"
  "                      filename.  If no check-in is specified by either\n"
  "                      name= or r=, then the name of the main branch\n"
  "                      (usually \"trunk\") is used.\n"
  "\n"
  "  in=PATTERN          Only include files that match the comma-separated\n"
  "                      list of GLOB patterns in PATTERN, as with ex=\n"
  "\n"
  "  ex=PATTERN          Omit any file that match PATTERN.  PATTERN is a\n"
  "                      comma-separated list of GLOB patterns, where each\n"
  "                      pattern can optionally be quoted using \"..\" or '..'.\n"
  "                      Any file matching both ex= and in= is excluded.\n"
  "\n"
  "Robot Defenses:\n"
  "\n"
  "  *    If \"zip\" appears in the robot-restrict setting, then robots are\n"
  "       not allowed to access this page.  Suspected robots will be\n"
  "       presented with a captcha.\n"
  "\n"
  "  *    If \"zipX\" appears in the robot-restrict setting, then robots are\n"
  "       restricted in the same way as with \"zip\", but with exceptions.\n"
  "       If the check-in for which an archive is requested is a leaf check-in\n"
  "       and if the robot-zip-leaf setting is true, then the request is\n"
  "       allowed.  Or if the check-in has a tag that matches any of the\n"
  "       GLOB patterns on the list in the robot-zip-tag setting, then the\n"
  "       request is allowed.  Otherwise, the usual robot defenses are\n"
  "       activated.";
static const char zHelp480[] =
  "Configure the search engine.  Requires Admin privilege.";
static const char zHelp508[] =
  "Show statistics and global information about the repository.";
static const char zHelp518[] =
  "Return the style sheet.   The style sheet is assembled from\n"
  "multiple sources, in order:\n"
  "\n"
  "   (1)   The built-in \"default.css\" style sheet containing basic defaults.\n"
  "\n"
  "   (2)   The page-specific style sheet taken from the built-in\n"
  "         called \"PAGENAME.css\" where PAGENAME is the value of the name=\n"
  "         or page= query parameters.  If neither name= nor page= exist,\n"
  "         then this section is a no-op.\n"
  "\n"
  "   (3)   The skin-specific \"css.txt\" file, if there one.\n"
  "\n"
  "All of (1), (2), and (3) above (or as many as exist) are concatenated.\n"
  "The result is then run through TH1 with the following variables set:\n"
  "\n"
  "   *   $basename\n"
  "   *   $secureurl\n"
  "   *   $home\n"
  "   *   $logo\n"
  "   *   $background\n"
  "\n"
  "The output from TH1 becomes the style sheet.  Fossil always reports\n"
  "that the style sheet is cacheable.";
static const char zHelp023[] =
  "Allow users to subscribe to email notifications.\n"
  "\n"
  "This page is usually run by users who are not logged in.\n"
  "A logged-in user can add email notifications on the /alerts page.\n"
  "Access to this page by a logged in user (other than an\n"
  "administrator) results in a redirect to the /alerts page.\n"
  "\n"
  "Administrators can visit this page in order to sign up other\n"
  "users.\n"
  "\n"
  "The Alerts permission (\"7\") is required to access this\n"
  "page.  To allow anonymous passers-by to sign up for email\n"
  "notification, set Email-Alerts on user \"nobody\" or \"anonymous\".";
static const char zHelp028[] =
  "This page, accessible to administrators only,\n"
  "shows a list of subscriber email addresses.\n"
  "Clicking on an email takes one to the /alerts page\n"
  "for that email where the delivery settings can be\n"
  "modified.";
static const char zHelp533[] =
  "List all non-propagating symbolic tags.";
static const char zHelp534[] =
  "Render a timeline with all check-ins that contain non-propagating\n"
  "symbolic tags.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "    ng            No graph\n"
  "    nohidden      Hide check-ins with \"hidden\" tag\n"
  "    onlyhidden    Show only check-ins with \"hidden\" tag\n"
  "    brbg          Background color by branch name\n"
  "    ubg           Background color by user name";
static const char zHelp459[] =
  "Disable anonymous access to this website";
static const char zHelp537[] =
  "URL: /tarball/NAME.tar.gz\n"
  " or: /tarball/VERSION/NAME.tar.gz\n"
  " or: /tarball/TAG/VERSION/NAME.tar.gz\n"
  "\n"
  "Generate a compressed tarball for the check-in specified by VERSION.\n"
  "The tarball is called NAME.tar.gz and has a top-level directory called\n"
  "NAME.  If TAG is provided, then VERSION must hold TAG or else an error\n"
  "is returned.\n"
  "\n"
  "The optional VERSION element defaults to the name of the main branch\n"
  "(usually \"trunk\") per the r= rules below.\n"
  "All of the following URLs are equivalent:\n"
  "\n"
  "     /tarball/release/xyz.tar.gz\n"
  "     /tarball?r=release&name=xyz.tar.gz\n"
  "     /tarball/xyz.tar.gz?r=release\n"
  "     /tarball?name=release/xyz.tar.gz\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "  name=[CKIN/]NAME    The optional CKIN component of the name= parameter\n"
  "                      identifies the check-in from which the tarball is\n"
  "                      constructed.  If CKIN is omitted and there is no\n"
  "                      r= query parameter, then use the name of the main\n"
  "                      branch (usually \"trunk\").  NAME is the\n"
  "                      name of the download file.  The top-level directory\n"
  "                      in the generated tarball is called by NAME with the\n"
  "                      file extension removed.\n"
  "\n"
  "  r=TAG               TAG identifies the check-in that is turned into a\n"
  "                      compressed tarball.  The default value is the name of\n"
  "                      the main branch (usually \"trunk\").\n"
  "                      If r= is omitted and if the name= query parameter\n"
  "                      contains one \"/\" character then the of part the\n"
  "                      name= value before the / becomes the TAG and the\n"
  "                      part of the name= value  after the / is the download\n"
  "                      filename.  If no check-in is specified by either\n"
  "                      name= or r=, then the name of the main branch\n"
  "                      (usually \"trunk\") is used.\n"
  "\n"
  "  in=PATTERN          Only include files that match the comma-separated\n"
  "                      list of GLOB patterns in PATTERN, as with ex=\n"
  "\n"
  "  ex=PATTERN          Omit any file that match PATTERN.  PATTERN is a\n"
  "                      comma-separated list of GLOB patterns, where each\n"
  "                      pattern can optionally be quoted using \"..\" or '..'.\n"
  "                      Any file matching both ex= and in= is excluded.\n"
  "\n"
  "Robot Defenses:\n"
  "\n"
  "  *    If \"zip\" appears in the robot-restrict setting, then robots are\n"
  "       not allowed to access this page.  Suspected robots will be\n"
  "       presented with a captcha.\n"
  "\n"
  "  *    If \"zipX\" appears in the robot-restrict setting, then robots are\n"
  "       restricted in the same way as with \"zip\", but with exceptions.\n"
  "       If the check-in for which an archive is requested is a leaf check-in\n"
  "       and if the robot-zip-leaf setting is true, then the request is\n"
  "       allowed.  Or if the check-in has a tag that matches any of the\n"
  "       GLOB patterns on the list in the robot-zip-tag setting, then the\n"
  "       request is allowed.  Otherwise, the usual robot defenses are\n"
  "       activated.";
static const char zHelp267[] =
  "Display a technical note (formerly called an \"event\").\n"
  "\n"
  "PARAMETERS:\n"
  "\n"
  " name=ID           Identify the technical note to display. ID must be\n"
  "                   complete.\n"
  " aid=ARTIFACTID    Which specific version of the tech-note.  Optional.\n"
  " v=BOOLEAN         Show details if TRUE.  Default is FALSE.  Optional.\n"
  "\n"
  "Display an existing tech-note identified by its ID, optionally at a\n"
  "specific version, and optionally with additional details.";
static const char zHelp269[] =
  "Revise or create a technical note (formerly called an \"event\").\n"
  "\n"
  "Required query parameter:\n"
  "\n"
  "   name=ID           Hex hash ID of the technote. If omitted, a new\n"
  "                     tech-note is created.\n"
  "\n"
  "POST parameters from the \"Cancel\", \"Preview\", or \"Submit\" buttons:\n"
  "\n"
  "   w=TEXT            Complete text of the technote.\n"
  "   t=TEXT            Time of the technote on the timeline (ISO 8601)\n"
  "   c=TEXT            Timeline comment\n"
  "   g=TEXT            Tags associated with this technote\n"
  "   mimetype=TEXT     Mimetype for w= text\n"
  "   newclr            Use a background color\n"
  "   clr=TEXT          Background color to use if newclr\n"
  "\n"
  "For GET requests, when editing an existing technote newclr and clr\n"
  "are implied if a custom color has been set on the previous version\n"
  "of the technote.";
static const char zHelp251[] =
  "Show all help text on a single page.  Useful for proof-reading.";
static const char zHelp042[] =
  "Show a timeline of all check-ins and other events that have entries\n"
  "in the backlink table.  This is used for testing the rendering\n"
  "of the \"References\" section of the /info page.";
static const char zHelp043[] =
  "Show a table of all backlinks.  Admin access only.";
static const char zHelp120[] =
  "Show how user-specified background colors will be rendered\n"
  "using the reasonable_bg_color() algorithm.";
static const char zHelp066[] =
  "Show all built-in text files.";
static const char zHelp077[] =
  "If the name query parameter is provided, then render the hex value of\n"
  "the name using the captcha font.\n"
  "\n"
  "Otherwise render the captcha screen.  The \"show-button\" parameter causes\n"
  "the submit button to be rendered.";
static const char zHelp081[] =
  "Return a WAV file that pronounces the hex digits of the name=\n"
  "query parameter.";
static const char zHelp520[] =
  "Display CGI-variables and other aspects of the run-time\n"
  "environment, for debugging and trouble-shooting purposes.";
static const char zHelp457[] =
  "Show a table of all documents currently in the search index.";
static const char zHelp357[] =
  "Generate the response that would normally be shown only when\n"
  "service is denied due to an overload condition.  This is for\n"
  "testing of the overload warning page.";
static const char zHelp374[] =
  "Return the process identifier of the running Fossil server instance.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "  usepidkey           When present and available, also return the\n"
  "                      address and size, within this server process,\n"
  "                      of the saved database encryption key.  This\n"
  "                      is only supported when using SEE on Windows\n"
  "                      or Linux.";
static const char zHelp413[] =
  "Generate a pie-chart based on data input from a form.";
static const char zHelp412[] =
  "Print a list of all file rename operations throughout history.\n"
  "This page is intended for testing purposes only and may change\n"
  "or be discontinued without notice.";
static const char zHelp447[] =
  "Run the robot_restrict() function using the value of the \"name=\"\n"
  "query parameter as an argument.  Used for testing the robot_restrict()\n"
  "logic.\n"
  "\n"
  "Whenever this page is successfully rendered (when it doesn't go to\n"
  "the captcha) it deletes the proof-of-work cookie.  So reloading the\n"
  "page will reset the cookie and restart the verification.\n"
  "\n"
  "If the zip=CHECKIN query parameter is provided, then also invoke\n"
  "robot_restrict_archive() on the RID of CHECKIN.";
static const char zHelp519[] =
  "Render a test page in which the page title is set by the \"title\"\n"
  "query parameter.  This can be used to show that HTML or Javascript\n"
  "content in the title does not leak through into generated page, resulting\n"
  "in an XSS issue.\n"
  "\n"
  "Due to the potential for abuse, this webpage is only available to\n"
  "administrators.";
static const char zHelp380[] =
  "Test error and warning log operation.  This webpage is accessible to\n"
  "the administrator only.\n"
  "\n"
  "    case=1           Issue a fossil_warning() while generating the page.\n"
  "    case=2           Extra db_begin_transaction()\n"
  "    case=3           Extra db_end_transaction()\n"
  "    case=4           Error during SQL processing\n"
  "    case=5           Call the segfault handler\n"
  "    case=6           Call webpage_assert()\n"
  "    case=7           Call webpage_error()\n"
  "    case=8           Simulate a timeout\n"
  "    case=9           Simulate a TH1 XSS vulnerability\n"
  "    case=10          Simulate a TH1 SQL-injection vulnerability";
static const char zHelp553[] =
  "Generate a vanity page that shows project activity for the current\n"
  "day of the year for various years in the history of the project.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "   today=DATE             Use DATE as today's date";
static const char zHelp565[] =
  "This is intended to be the primary \"Ticket\" page.  Render as\n"
  "either ticket-search (if search is enabled) or as the\n"
  "/reportlist page (if ticket search is disabled).";
static const char zHelp551[] =
  "Query parameters:\n"
  "\n"
  "   a=TIMEORTAG     Show events after TIMEORTAG.\n"
  "   b=TIMEORTAG     Show events before TIMEORTAG.\n"
  "   c=TIMEORTAG     Show events that happen \"circa\" TIMEORTAG\n"
  "   cf=FILEHASH     Show events around the time of the first use of\n"
  "                   the file with FILEHASH.\n"
  "   m=TIMEORTAG     Highlight the event at TIMEORTAG, or the closest available\n"
  "                   event if TIMEORTAG is not part of the timeline.  If\n"
  "                   the t= or r= is used, the m event is added to the timeline\n"
  "                   if it isn't there already.\n"
  "   x=LIST          Show check-ins in the comma- or space-separated LIST\n"
  "                   in addition to check-ins specified by other parameters.\n"
  "   sel1=TIMEORTAG  Highlight the check-in at TIMEORTAG if it is part of\n"
  "                   the timeline.  Similar to m= except TIMEORTAG must\n"
  "                   match a check-in that is already in the timeline.\n"
  "   sel2=TIMEORTAG  Like sel1= but use the secondary highlight.\n"
  "   n=COUNT         Maximum number of events. \"all\" for no limit\n"
  "   n1=COUNT        Same as \"n\" but doesn't set the display-preference cookie\n"
  "                      Use \"n1=COUNT\" for a one-time display change\n"
  "   p=CHECKIN       Parents and ancestors of CHECKIN\n"
  "                      bt=PRIOR   ... going back to PRIOR\n"
  "                      p2=CKIN2   ... use CKIN2 if CHECKIN is not found\n"
  "   d=CHECKIN       Children and descendants of CHECKIN\n"
  "                      d2=CKIN2        ... Use CKIN2 if CHECKIN is not found\n"
  "                      ft=DESCENDANT   ... going forward to DESCENDANT\n"
  "   dp=CHECKIN      Same as 'd=CHECKIN&p=CHECKIN'\n"
  "   dp2=CKIN2       Same as 'd2=CKIN2&p2=CKIN2'\n"
  "   df=CHECKIN      Same as 'd=CHECKIN&n1=all&nd'.  Mnemonic: \"Derived From\"\n"
  "   bt=CHECKIN      \"Back To\".  Show ancestors going back to CHECKIN\n"
  "                      p=CX       ... from CX back to time of CHECKIN\n"
  "                      from=CX    ... path from CX back to CHECKIN\n"
  "   ft=CHECKIN      \"Forward To\":  Show descendants forward to CHECKIN\n"
  "                      d=CX       ... from CX up to the time of CHECKIN\n"
  "                      from=CX    ... path from CX up to CHECKIN\n"
  "   t=TAG           Show only check-ins with the given TAG\n"
  "   r=TAG           Same as 't=TAG&rel'.  Mnemonic: \"Related\"\n"
  "   tl=TAGLIST      Same as 't=TAGLIST&ms=brlist'.  Mnemonic: \"Tag List\"\n"
  "   rl=TAGLIST      Same as 'r=TAGLIST&ms=brlist'.  Mnemonic: \"Related List\"\n"
  "   ml=TAGLIST      Same as 'tl=TAGLIST&mionly'.  Mnemonic: \"Merge-in List\"\n"
  "   sl=TAGLIST      \"Sort List\". Draw TAGLIST branches ordered left to right.\n"
  "   rel             Show related check-ins as well as those matching t=TAG\n"
  "   mionly          Show related parents but not related children.\n"
  "   nowiki          Do not show wiki associated with branch or tag\n"
  "   ms=MATCHSTYLE   Set tag name match algorithm.  One of \"exact\", \"glob\",\n"
  "                   \"like\", or \"regexp\".\n"
  "   u=USER          Only show items associated with USER\n"
  "   y=TYPE          'ci', 'w', 't', 'n', 'e', 'f', or 'all'.\n"
  "   ss=VIEWSTYLE    c: \"Compact\", v: \"Verbose\", m: \"Modern\", j: \"Columnar\",\n"
  "                   x: \"Classic\".\n"
  "   advm            Use the \"Advanced\" or \"Busy\" menu design.\n"
  "   ng              No Graph.\n"
  "   ncp             Omit cherrypick merges\n"
  "   nd              Do not highlight the focus check-in\n"
  "   nsm             Omit the submenu\n"
  "   nc              Omit all graph colors other than highlights\n"
  "   v               Show details of files changed\n"
  "   vfx             Show complete text of forum messages\n"
  "   f=CHECKIN       Family (immediate parents and children) of CHECKIN\n"
  "   from=CHECKIN    Path through common ancestor from CHECKIN...\n"
  "                      to=CHECKIN   ... to this\n"
  "                      to2=CHECKIN  ... backup name if to= doesn't resolve\n"
  "                      shortest     ... pick path with least number of nodes\n"
  "                      rel          ... also show related checkins\n"
  "                      min          ... hide long sequences along same branch\n"
  "                      bt=PRIOR     ... path from CHECKIN back to PRIOR\n"
  "                      ft=LATER     ... path from CHECKIN forward to LATER\n"
  "   me=CHECKIN      Most direct path from CHECKIN...\n"
  "                      you=CHECKIN  ... to this\n"
  "                      rel          ... also show related checkins\n"
  "   uf=FILE_HASH    Show only check-ins that contain the given file version\n"
  "                   All qualifying check-ins are shown unless there is\n"
  "                   also an n= or n1= query parameter.\n"
  "   chng=GLOBLIST   Show only check-ins that involve changes to a file whose\n"
  "                   name matches one of the comma-separated GLOBLIST\n"
  "   brbg            Background color determined by branch name\n"
  "   ubg             Background color determined by user\n"
  "   deltabg         Background color red for delta manifests or green\n"
  "                   for baseline manifests\n"
  "   namechng        Show only check-ins that have filename changes\n"
  "   forks           Show only forks and their children\n"
  "   cherrypicks     Show all cherrypicks\n"
  "   ym=YYYYMM       Show only events for the given year/month\n"
  "   yw=YYYYWW       Show only events for the given week of the given year\n"
  "   yw=YYYYMMDD     Show events for the week that includes the given day\n"
  "   ymd=YYYYMMDD    Show only events on the given day. The use \"ymd=now\"\n"
  "                   to see all changes for the current week.  Add \"z\" at end\n"
  "                   to divide days at UTC instead of localtime days.\n"
  "                   Use ymd=YYYYMMDD-YYYYMMDD (with optional \"z\") for a range.\n"
  "   year=YYYY       Show only events on the given year. The use \"year=0\"\n"
  "                   to see all changes for the current year.\n"
  "   days=N          Show events over the previous N days\n"
  "   datefmt=N       Override the date format:  0=HH:MM, 1=HH:MM:SS,\n"
  "                   2=YYYY-MM-DD HH:MM:SS, 3=YYMMDD HH:MM, and 4 means \"off\".\n"
  "   bisect          Show the check-ins that are in the current bisect\n"
  "   oldestfirst     Show events oldest first.\n"
  "   showid          Show RIDs\n"
  "   showsql         Show the SQL used to generate the report\n"
  "\n"
  "p= and d= can appear individually or together.  If either p= or d=\n"
  "appear, then u=, y=, a=, and b= are ignored.\n"
  "\n"
  "If both a= and b= appear then both upper and lower bounds are honored.\n"
  "\n"
  "When multiple time-related filters are used, e.g. ym, yw, and ymd,\n"
  "which one(s) is/are applied is unspecified and may change between\n"
  "fossil versions.\n"
  "\n"
  "CHECKIN or TIMEORTAG can be a check-in hash prefix, or a tag, or the\n"
  "name of a branch.";
static const char zHelp449[] =
  "URL:  /timeline.rss?y=TYPE&n=LIMIT&tkt=HASH&tag=TAG&wiki=NAME&name=FILENAME\n"
  "\n"
  "Produce an RSS feed of the timeline.\n"
  "\n"
  "TYPE may be: all, ci (show check-ins only), t (show ticket changes only),\n"
  "w (show wiki only), e (show tech notes only), f (show forum posts only),\n"
  "g (show tag/branch changes only).\n"
  "\n"
  "LIMIT is the number of items to show.\n"
  "\n"
  "tkt=HASH filters for only those events for the specified ticket. tag=TAG\n"
  "filters for a tag, and wiki=NAME for a wiki page. Only one may be used.\n"
  "\n"
  "In addition, name=FILENAME filters for a specific file. This may be\n"
  "combined with one of the other filters (useful for looking at a specific\n"
  "branch).";
static const char zHelp555[] =
  "Show all check-ins that are \"timewarps\".  A timewarp is a\n"
  "check-in that occurs before its parent, according to the\n"
  "timestamp information on the check-in.  This can only actually\n"
  "happen, of course, if a users system clock is set incorrectly.";
static const char zHelp345[] =
  "URL: /tinfo?name=ARTIFACTID\n"
  "\n"
  "Show the details of a ticket change control artifact.";
static const char zHelp560[] =
  "Edit a ticket.  The ticket is identified by the name CGI parameter.\n"
  "/tktedit is the official page.  The /debug_tktedit page does the same\n"
  "thing except that it does not save the ticket change record when you\n"
  "press submit - it instead prints the ticket change record at the top\n"
  "of the page.  The /debug_tktedit page is intended to be used when\n"
  "debugging ticket configurations.";
static const char zHelp563[] =
  "URL: /tkthistory/TICKETUUID\n"
  "\n"
  "Show the complete change history for a single ticket.  Or (to put it\n"
  "another way) show a list of artifacts associated with a single ticket.\n"
  "\n"
  "By default, the artifacts are decoded and formatted.  Text fields\n"
  "are formatted as text/plain, since in the general case Fossil does\n"
  "not have knowledge of the encoding.  If the \"raw\" query parameter\n"
  "is present, then the undecoded and unformatted text of each artifact\n"
  "is displayed.\n"
  "\n"
  "Reassignments of a field of the TICKET table that has a corresponding\n"
  "\"baseline for ...\" companion are rendered as unified diffs.";
static const char zHelp558[] =
  "Enter a new ticket.  The tktnew_template script in the ticket\n"
  "configuration is used.  The /tktnew page is the official ticket\n"
  "entry page.  The /debug_tktnew page is used for debugging the\n"
  "tktnew_template in the ticket configuration.  /debug_tktnew works\n"
  "just like /tktnew except that it does not really save the new ticket\n"
  "when you press submit - it just prints the ticket artifact at the\n"
  "top of the screen.";
static const char zHelp567[] =
  "Main sub-menu for configuring the ticketing system.";
static const char zHelp570[] =
  "Administrative screen used to view or edit the TH1 script\n"
  "that shows ticket changes.";
static const char zHelp569[] =
  "Administrative page used to define TH1 script that is\n"
  "common to all ticket screens.";
static const char zHelp573[] =
  "Administrative page for viewing or editing the TH1 script that\n"
  "drives the ticket editing page.";
static const char zHelp576[] =
  "Administrative page used to view or edit the Key template\n"
  "for tickets.";
static const char zHelp571[] =
  "Administrative page used to view or edit the TH1 script used\n"
  "to enter new tickets.";
static const char zHelp574[] =
  "Administrative page used to view or edit the TH1 script that\n"
  "defines the \"report list\" page.";
static const char zHelp575[] =
  "Administrative page used to view or edit the ticket report\n"
  "template.";
static const char zHelp568[] =
  "Administrative page for defining the \"ticket\" table used\n"
  "to hold ticket information.";
static const char zHelp577[] =
  "Administrative page used to configure how tickets are\n"
  "rendered on timeline views.";
static const char zHelp572[] =
  "Administrative page used to view or edit the TH1 script that\n"
  "displays individual tickets.";
static const char zHelp566[] =
  "Usage:  /tktsrch?s=PATTERN\n"
  "\n"
  "Full-text search of all current tickets";
static const char zHelp562[] =
  "URL: /tkttimeline/TICKETUUID\n"
  "\n"
  "Show the change history for a single ticket in timeline format.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "    y=ci          Show only check-ins associated with the ticket";
static const char zHelp557[] =
  "URL:  tktview/HASH\n"
  "\n"
  "View a ticket identified by the name= query parameter.\n"
  "Other query parameters:\n"
  "\n"
  "     tl               Show a timeline of the ticket above the status";
static const char zHelp448[] =
  "Allow users to create, delete, and view their access token.\n"
  "\n"
  "The access token is a string TOKEN which if included in a query\n"
  "parameter like \"token=TOKEN\" authenticates a request as coming\n"
  "from an authorized agent.  This can be used, for example, by\n"
  "script to access content without running into problems with\n"
  "robot defenses.";
static const char zHelp062[] =
  "Show the files using a tree-view.  If the ci= query parameter is present\n"
  "then show only the files for the check-in identified.  If ci= is omitted,\n"
  "then show the union of files over all check-ins.\n"
  "\n"
  "The type=tree query parameter is required or else the /dir format is\n"
  "used.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "   type=tree        Required to prevent use of /dir format\n"
  "   name=PATH        Directory to display.  Optional\n"
  "   ci=LABEL         Show only files in this check-in.  Optional.\n"
  "   re=REGEXP        Show only files matching REGEXP.  Optional.\n"
  "   expand           Begin with the tree fully expanded.\n"
  "   nofiles          Show directories (folders) only.  Omit files.\n"
  "   sort             0: by filename, 1: by mtime, 2: by size";
#if USE_SEE
static const char zHelp141[] =
  "Sets the saved database encryption key to zeros in the current and parent\n"
  "Fossil processes.  This web page does not produce any output on success\n"
  "or failure.  Setup permission is required.";
#endif
static const char zHelp026[] =
  "Users visit this page to be delisted from email alerts.\n"
  "\n"
  "If a valid subscriber code is supplied in the name= query parameter,\n"
  "then that subscriber is delisted.\n"
  "\n"
  "Otherwise, if the users are logged in, then they are redirected\n"
  "to the /alerts page where they have an unsubscribe button.\n"
  "\n"
  "Non-logged-in users with no name= query parameter are invited to enter\n"
  "an email address to which will be sent the unsubscribe link that\n"
  "contains the correct subscriber code.\n"
  "\n"
  "The /unsubscribe page requires comfirmation.  The /oneclickunsub\n"
  "page unsubscribes immediately without any need to confirm.";
static const char zHelp510[] =
  "Show ways in which this repository has been accessed";
static const char zHelp257[] =
  "URL: /uv/FILE\n"
  "URL: /doc/CHECKIN/FILE\n"
  "\n"
  "CHECKIN can be either tag or hash prefix or timestamp identifying a\n"
  "particular check-in, or the name of a branch (meaning the most recent\n"
  "check-in on that branch) or one of various magic words:\n"
  "\n"
  "    \"tip\"      means the most recent check-in\n"
  "\n"
  "    \"ckout\"    means the current check-out, if the server is run from\n"
  "               within a check-out, otherwise it is the same as \"tip\"\n"
  "\n"
  "    \"latest\"   means use the most recent check-in for the document\n"
  "               regardless of what branch it occurs on.\n"
  "\n"
  "FILE is the name of a file to delivered up as a webpage.  FILE is relative\n"
  "to the root of the source tree of the repository. The FILE must\n"
  "be a part of CHECKIN, except when CHECKIN==\"ckout\" when FILE is read\n"
  "directly from disk and need not be a managed file.  For /uv, FILE\n"
  "can also be the hash of the unversioned file.\n"
  "\n"
  "The \"ckout\" CHECKIN is intended for development - to provide a mechanism\n"
  "for looking at what a file will look like using the /doc webpage after\n"
  "it gets checked in.  Some commands like \"fossil ui\", \"fossil server\",\n"
  "and \"fossil http\" accept an argument \"--ckout-alias NAME\" when allows\n"
  "NAME to be understood as an alias for \"ckout\".  On a site with many\n"
  "embedded hyperlinks to /doc/trunk/... one can run with \"--ckout-alias trunk\"\n"
  "to simulate what the pending changes will look like after they are\n"
  "checked in.  The NAME alias is stored in g.zCkoutAlias.\n"
  "\n"
  "The file extension is used to decide how to render the file.\n"
  "\n"
  "If FILE ends in \"/\" then the names \"FILE/index.html\", \"FILE/index.wiki\",\n"
  "and \"FILE/index.md\" are tried in that order.  If the binary was compiled\n"
  "with TH1 embedded documentation support and the \"th1-docs\" setting is\n"
  "enabled, the name \"FILE/index.th1\" is also tried.  If none of those are\n"
  "found, then FILE is completely replaced by \"404.md\" and tried.  If that\n"
  "is not found, then a default 404 screen is generated.\n"
  "\n"
  "If the file's mimetype is \"text/x-fossil-wiki\" or \"text/x-markdown\"\n"
  "then headers and footers are added. If the document has mimetype\n"
  "text/html then headers and footers are usually not added.  However,\n"
  "if a \"text/html\" document begins with the following div:\n"
  "\n"
  "      <div class='fossil-doc' data-title='TEXT'>\n"
  "\n"
  "then headers and footers are supplied.  The optional data-title field\n"
  "specifies the title of the document in that case.\n"
  "\n"
  "For fossil-doc documents and for markdown documents, text of the\n"
  "form:  \"href='$ROOT/\" or \"action='$ROOT\" has the $ROOT name expanded\n"
  "to the top-level of the repository.";
static const char zHelp582[] =
  "Display a list of all unversioned files in the repository.\n"
  "Query parameters:\n"
  "\n"
  "   byage=1          Order the initial display be decreasing age\n"
  "   showdel=0        Show deleted files";
static const char zHelp333[] =
  "URL: /vdiff?from=TAG&to=TAG\n"
  "\n"
  "Show the difference between two check-ins identified by the from= and\n"
  "to= query parameters.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "  from=TAG        Left side of the comparison\n"
  "  to=TAG          Right side of the comparison\n"
  "  branch=TAG      Show all changes on a particular branch\n"
  "  diff=INTEGER    0: none, 1: unified, 2: side-by-side\n"
  "  glob=STRING     only diff files matching this glob\n"
  "  dc=N            show N lines of context around each diff\n"
  "  w=BOOLEAN       ignore whitespace when computing diffs\n"
  "  nohdr           omit the description at the top of the page\n"
  "  nc              omit branch coloration from the header graph\n"
  "  inv             \"Invert\".  Exchange the roles of from= and to=\n"
  "\n"
  "Show all differences between two check-ins.";
static const char zHelp372[] =
  "Show the version information for Fossil.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "   verbose       Show details";
static const char zHelp330[] =
  "URL:  /ci/ARTIFACTID\n"
  " OR:  /ci?name=ARTIFACTID\n"
  "\n"
  "Display information about a particular check-in.  The exact\n"
  "same information is shown on the /info page if the name query\n"
  "parameter to /info describes a check-in.\n"
  "\n"
  "The ARTIFACTID can be a unique prefix for the HASH of the check-in,\n"
  "or a tag or branch name that identifies the check-in.";
static const char zHelp246[] =
  "URL: /vpatch?from=FROM&to=TO\n"
  "\n"
  "Show a patch that goes from check-in FROM to check-in TO.";
static const char zHelp481[] =
  "Configure the URL aliases";
static const char zHelp615[] =
  "all=1         Show deleted pages\n"
  "    showid        Show rid values for each page.\n"
  "\n"
  "List all available wiki pages with date created and last modified.";
static const char zHelp614[] =
  "Show the changes to a wiki page.\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "     id=HASH           Hash prefix for the child version to be diffed.\n"
  "     rid=INTEGER       RecordID for the child version\n"
  "     pid=HASH          Hash prefix for the parent.\n"
  "\n"
  "The \"id\" query parameter is required.  \"pid\" is optional.  If \"pid\"\n"
  "is omitted, then the diff is against the first parent of the child.";
static const char zHelp616[] =
  "URL: /wfind?title=TITLE\n"
  "List all wiki pages whose titles contain the search text";
static const char zHelp613[] =
  "URL: /whistory?name=PAGENAME\n"
  "\n"
  "Additional parameters:\n"
  "\n"
  "    showid          Show RID values\n"
  "\n"
  "Show the complete change history for a single wiki page.";
static const char zHelp608[] =
  "Display a wiki page.  Example:  /wiki?name=PAGENAME\n"
  "\n"
  "Query parameters:\n"
  "\n"
  "   name=NAME        Name of the wiki page to display.  Required.\n"
  "   nsm              Omit the submenu if present.  (Mnemonic: No SubMenu)\n"
  "   p                Always show just the wiki page.  For special\n"
  "                    pages for check-ins, branches, or tags, there will\n"
  "                    be a redirect to the associated /info page unless\n"
  "                    this query parameter is present.\n"
  "   popup            Suppress the header and footer and other page\n"
  "                    boilerplate and only return the formatted content\n"
  "                    of the wiki page.";
static const char zHelp604[] =
  "Show a summary of the wiki formatting rules.";
static const char zHelp609[] =
  "An internal dispatcher for wiki AJAX operations. Not for direct\n"
  "client use. All routes defined by this interface are app-internal,\n"
  "subject to change";
static const char zHelp612[] =
  "URL: /wikiappend?name=PAGENAME&mimetype=MIMETYPE\n"
  "\n"
  "Append text to the end of a wiki page.";
static const char zHelp610[] =
  "URL: /wikedit?name=PAGENAME\n"
  "\n"
  "The main front-end for the Ajax-based wiki editor app. Passing\n"
  "in the name of an unknown page will trigger the creation\n"
  "of a new page (which is not actually created in the database\n"
  "until the user explicitly saves it). If passed no page name,\n"
  "the user may select a page from the list on the first UI tab.\n"
  "\n"
  "When creating a new page, the mimetype URL parameter may optionally\n"
  "be used to set its mimetype to one of text/x-fossil-wiki,\n"
  "text/x-markdown, or text/plain, defaulting to the former.";
static const char zHelp606[] =
  "A generic landing page for wiki.";
static const char zHelp611[] =
  "URL /wikinew\n"
  "\n"
  "Prompt the user to enter the name of a new wiki page.  Then redirect\n"
  "to the wikiedit screen for that new page.";
static const char zHelp607[] =
  "Usage:  /wikisrch?s=PATTERN\n"
  "\n"
  "Full-text search of all current wiki text";
static const char zHelp332[] =
  "URL:  /winfo?name=HASH\n"
  "\n"
  "Display information about a wiki page.";
static const char zHelp626[] =
  "This is the transfer handler on the server side.  The transfer\n"
  "message has been uncompressed and placed in the g.cgiIn blob.\n"
  "Process this message and form an appropriate reply.";
static const char zHelp628[] =
  "Main sub-menu for configuring the transfer system.";
static const char zHelp629[] =
  "View or edit the TH1 script that runs prior to receiving a\n"
  "transfer.";
static const char zHelp631[] =
  "View or edit the TH1 script that runs when a transfer commit\n"
  "is processed.";
static const char zHelp630[] =
  "View or edit the TH1 script that runs after receiving a \"push\".";
static const char zHelp632[] =
  "View or edit the TH1 script that runs when a ticket change artifact\n"
  "is processed during a transfer.";
static const char zHelp391[] =
  "Usage: %fossil 3-way-merge BASELINE V1 V2 [MERGED]\n"
  "\n"
  "Inputs are files BASELINE, V1, and V2.  The file MERGED is generated\n"
  "as output.  If no MERGED file is specified, output is sent to\n"
  "stdout.\n"
  "\n"
  "BASELINE is a common ancestor of two files V1 and V2 that have diverging\n"
  "edits.  The generated output file MERGED is the combination of all\n"
  "changes in both V1 and V2.\n"
  "\n"
  "This command has no effect on the Fossil repository.  It is a utility\n"
  "command made available for the convenience of users.  This command can\n"
  "be used, for example, to help import changes from an upstream project.\n"
  "\n"
  "Suppose an upstream project has a file named \"Xup.c\" which is imported\n"
  "with modifications to the local project as \"Xlocal.c\".  Suppose further\n"
  "that the \"Xbase.c\" is an exact copy of the last imported \"Xup.c\".\n"
  "Then to import the latest \"Xup.c\" while preserving all the local changes:\n"
  "\n"
  "     fossil 3-way-merge Xbase.c Xlocal.c Xup.c Xlocal.c\n"
  "     cp Xup.c Xbase.c\n"
  "     # Verify that everything still works\n"
  "     fossil commit";
static const char zHelp148[] =
  "When the access-log setting is enabled, all login attempts (successful\n"
  "and unsuccessful) on the web interface are recorded in the \"access\" table\n"
  "of the repository.";
static const char zHelp001[] =
  "Usage: %fossil add ?OPTIONS? FILE1 ?FILE2 ...?\n"
  "\n"
  "Make arrangements to add one or more files or directories to the\n"
  "current check-out at the next [[commit]].\n"
  "\n"
  "When adding files or directories recursively, filenames that begin\n"
  "with \".\" are excluded by default.  To include such files, add\n"
  "the \"--dotfiles\" option to the command-line.\n"
  "\n"
  "The --ignore and --clean options are comma-separated lists of glob patterns\n"
  "for files to be excluded.  Example:  '*.o,*.obj,*.exe'  If the --ignore\n"
  "option does not appear on the command line then the \"ignore-glob\" setting\n"
  "is used.  If the --clean option does not appear on the command line then\n"
  "the \"clean-glob\" setting is used.\n"
  "\n"
  "When attempting to explicitly add files on the command line, and if those\n"
  "match \"ignore-glob\", a confirmation is asked first. This can be prevented\n"
  "using the -f|--force option.\n"
  "\n"
  "The --case-sensitive option determines whether or not filenames should\n"
  "be treated case sensitive or not. If the option is not given, the default\n"
  "depends on the global setting, or the operating system default, if not set.\n"
  "\n"
  "Options:\n"
  "   --case-sensitive BOOL   Override the case-sensitive setting\n"
  "   --dotfiles              Include files beginning with a dot (\".\")\n"
  "   -f|--force              Add files without prompting\n"
  "   --ignore CSG            Ignore unmanaged files matching patterns from\n"
  "                           the Comma Separated Glob (CSG) pattern list\n"
  "   --clean CSG             Also ignore files matching patterns from\n"
  "                           the Comma Separated Glob (CSG) list\n"
  "   --reset                 Reset the ADDED state of a check-out, such\n"
  "                           that all newly-added (but not yet committed)\n"
  "                           files are no longer added. No flags other\n"
  "                           than --verbose and --dry-run may be used\n"
  "                           with --reset.\n"
  "   --allow-reserved        Permit filenames which are reserved on\n"
  "                           Windows platforms. Such files cannot be\n"
  "                           checked out on Windows, so use with care.\n"
  "\n"
  "The following options are only valid with --reset:\n"
  "   -v|--verbose            Output information about each --reset file\n"
  "   -n|--dry-run            Display instead of run actions\n"
  "\n"
  "See also: [[addremove]], [[rm]]";
static const char zHelp005[] =
  "Usage: %fossil addremove ?OPTIONS?\n"
  "\n"
  "Do all necessary \"[[add]]\" and \"[[rm]]\" commands to synchronize the\n"
  "repository with the content of the working check-out:\n"
  "\n"
  " *  All files in the check-out but not in the repository (that is,\n"
  "    all files displayed using the \"extras\" command) are added as\n"
  "    if by the \"[[add]]\" command.\n"
  "\n"
  " *  All files in the repository but missing from the check-out (that is,\n"
  "    all files that show as MISSING with the \"status\" command) are\n"
  "    removed as if by the \"[[rm]]\" command.\n"
  "\n"
  "Note that this command does not \"commit\", as that is a separate step.\n"
  "\n"
  "Files and directories whose names begin with \".\" are ignored unless\n"
  "the --dotfiles option is used.\n"
  "\n"
  "The --ignore option overrides the \"ignore-glob\" setting, as do the\n"
  "--case-sensitive option with the \"case-sensitive\" setting and the\n"
  "--clean option with the \"clean-glob\" setting. See the documentation\n"
  "on the \"settings\" command for further information.\n"
  "\n"
  "The -n|--dry-run option shows what would happen without actually doing\n"
  "anything.\n"
  "\n"
  "This command can be used to track third party software.\n"
  "\n"
  "Options:\n"
  "  --case-sensitive BOOL   Override the case-sensitive setting\n"
  "  --dotfiles              Include files beginning with a dot (\".\")\n"
  "  --ignore CSG            Ignore unmanaged files matching patterns from\n"
  "                          the Comma Separated Glob (CSG) list\n"
  "  --clean CSG             Also ignore files matching patterns from\n"
  "                          the Comma Separated Glob (CSG) list\n"
  "  -n|--dry-run            If given, display instead of run actions\n"
  "  --reset                 Reset the ADDED/DELETED state of a check-out,\n"
  "                          such that all newly-added (but not yet committed)\n"
  "                          files are no longer added and all newly-removed\n"
  "                          (but not yet committed) files are no longer\n"
  "                          removed. No flags other than --verbose and\n"
  "                          --dry-run may be used with --reset.\n"
  "  -v|--verbose            Outputs information about each --reset file.\n"
  "                          Only usable with --reset.\n"
  "\n"
  "See also: [[add]], [[rm]]";
static const char zHelp149[] =
  "When the admin-log setting is enabled, configuration changes are recorded\n"
  "in the \"admin_log\" table of the repository.";
static const char zHelp022[] =
  "Usage: %fossil alerts SUBCOMMAND ARGS...\n"
  "\n"
  "Subcommands:\n"
  "\n"
  "   pending                 Show all pending alerts.  Useful for debugging.\n"
  "\n"
  "   reset                   Hard reset of all email notification tables\n"
  "                           in the repository.  This erases all subscription\n"
  "                           information.  ** Use with extreme care **\n"
  "\n"
  "   send                    Compose and send pending email alerts.\n"
  "                           Some installations may want to do this via\n"
  "                           a cron-job to make sure alerts are sent\n"
  "                           in a timely manner.\n"
  "\n"
  "                           Options:\n"
  "                              --digest     Send digests\n"
  "                              --renewal    Send subscription renewal\n"
  "                                           notices\n"
  "                              --test       Write to standard output\n"
  "\n"
  "   settings [NAME VALUE]   With no arguments, list all email settings.\n"
  "                           Or change the value of a single email setting.\n"
  "\n"
  "   status                  Report on the status of the email alert\n"
  "                           subsystem\n"
  "\n"
  "   subscribers [PATTERN]   List all subscribers matching PATTERN.  Either\n"
  "                           LIKE or GLOB wildcards can be used in PATTERN.\n"
  "\n"
  "   test-message TO [OPTS]  Send a single email message using whatever\n"
  "                           email sending mechanism is currently configured.\n"
  "                           Use this for testing the email notification\n"
  "                           configuration.\n"
  "\n"
  "                           Options:\n"
  "                             --body FILENAME         Content from FILENAME\n"
  "                             --smtp-trace            Trace SMTP processing\n"
  "                             --stdout                Send msg to stdout\n"
  "                             -S|--subject SUBJECT    Message \"subject:\"\n"
  "\n"
  "   unsubscribe EMAIL       Remove a single subscriber with the given EMAIL.";
static const char zHelp033[] =
  "Usage: %fossil all SUBCOMMAND ...\n"
  "\n"
  "The ~/.fossil file records the location of all repositories for a\n"
  "user.  This command performs certain operations on all repositories\n"
  "that can be useful before or after a period of disconnected operation.\n"
  "\n"
  "On Win32 systems, the file is named \"_fossil\" and is located in\n"
  "%LOCALAPPDATA%, %APPDATA% or %HOMEPATH%.\n"
  "\n"
  "Available operations are:\n"
  "\n"
  "   backup      Backup all repositories.  The argument must be the name of\n"
  "               a directory into which all backup repositories are written.\n"
  "\n"
  "   cache       Manages the cache used for potentially expensive web\n"
  "               pages.  Any additional arguments are passed on verbatim\n"
  "               to the cache command.\n"
  "\n"
  "   changes     Shows all local check-outs that have uncommitted changes.\n"
  "               This operation has no additional options.\n"
  "\n"
  "   clean       Delete all \"extra\" files in all local check-outs.  Extreme\n"
  "               caution should be exercised with this command because its\n"
  "               effects cannot be undone.  Use of the --dry-run option to\n"
  "               carefully review the local check-outs to be operated upon\n"
  "               and the --whatif option to carefully review the files to\n"
  "               be deleted beforehand is highly recommended.  The command\n"
  "               line options supported by the clean command itself, if any\n"
  "               are present, are passed along verbatim.\n"
  "\n"
  "   config      Only the \"config pull AREA\" command works.\n"
  "\n"
  "   dbstat      Run the \"dbstat\" command on all repositories.\n"
  "\n"
  "   extras      Shows \"extra\" files from all local check-outs.  The command\n"
  "               line options supported by the extra command itself, if any\n"
  "               are present, are passed along verbatim.\n"
  "\n"
  "   fts-config  Run the \"fts-config\" command on all repositories.\n"
  "\n"
  "   git CMD     Do the \"git export\" or \"git status\" command (whichever\n"
  "               is specified by CMD) on all repositories for which\n"
  "               a Git mirror has been previously established.\n"
  "\n"
  "   info        Run the \"info\" command on all repositories.\n"
  "\n"
  "   pull        Run a \"pull\" operation on all repositories.  Only the\n"
  "               --verbose and --share-links options are supported.\n"
  "\n"
  "   push        Run a \"push\" on all repositories.  Only the --verbose\n"
  "               option is supported.\n"
  "\n"
  "   rebuild     Rebuild on all repositories.  The command line options\n"
  "               supported by the rebuild command itself, if any are\n"
  "               present, are passed along verbatim.  The --force option\n"
  "               is not supported.\n"
  "\n"
  "   remote      Show remote hosts for all repositories.\n"
  "\n"
  "   repack      Look for extra compression in all repositories.\n"
  "\n"
  "   sync        Run a \"sync\" on all repositories.  Only the --verbose\n"
  "               and --unversioned and --share-links options are supported.\n"
  "\n"
  "   set[tings]  Run the \"settings\" command on all repositories.\n"
  "               This command is useful for settings like \"max-loadavg\" which\n"
  "               you usually want to be the same across all repositories\n"
  "               on a server.\n"
  "\n"
  "   unset       Run the \"unset\" command on all repositories\n"
  "\n"
  "   server      Run the \"server\" commands on all repositories.\n"
  "               The root URI gives a listing of all repos.\n"
  "\n"
  "   ui          Run the \"ui\" command on all repositories.  Like \"server\"\n"
  "               but bind to the loopback TCP address only, enable\n"
  "               the --localauth option and automatically launch a\n"
  "               web-browser\n"
  "\n"
  "   whatis      Run the \"whatis\" command on all repositories.  Only\n"
  "               show output for repositories that have a match.\n"
  "\n"
  "\n"
  "In addition, the following maintenance operations are supported:\n"
  "\n"
  "   add         Add all the repositories named to the set of repositories\n"
  "               tracked by Fossil.  Normally Fossil is able to keep up with\n"
  "               this list by itself, but sometimes it can benefit from this\n"
  "               hint if you rename repositories.\n"
  "\n"
  "   ignore      Arguments are repositories that should be ignored by\n"
  "               subsequent clean, extras, list, pull, push, rebuild, and\n"
  "               sync operations.  The -c|--ckout option causes the listed\n"
  "               local check-outs to be ignored instead.\n"
  "\n"
  "   list | ls   Display the location of all repositories.  The -c|--ckout\n"
  "               option causes all local check-outs to be listed instead.\n"
  "\n"
  "Repositories are automatically added to the set of known repositories\n"
  "when one of the following commands are run against the repository:\n"
  "clone, info, pull, push, or sync.  Even previously ignored repositories\n"
  "are added back to the list of repositories by these commands.\n"
  "\n"
  "Options:\n"
  "  --dry-run         Just display commands that would have run\n"
  "  --showfile        Show the repository or check-out being operated upon\n"
  "  --stop-on-error   Halt immediately if any subprocess fails\n"
  "  -s|--stop         Shorthand for \"--stop-on-error\"";
static const char zHelp150[] =
  "When allow-symlinks is OFF, Fossil does not see symbolic links\n"
  "(a.k.a \"symlinks\") on disk as a separate class of object.  Instead Fossil\n"
  "sees the object that the symlink points to.  Fossil will only manage files\n"
  "and directories, not symlinks.  When a symlink is added to a repository,\n"
  "the object that the symlink points to is added, not the symlink itself.\n"
  "\n"
  "When allow-symlinks is ON, Fossil sees symlinks on disk as a separate\n"
  "object class that is distinct from files and directories.  When a symlink\n"
  "is added to a repository, Fossil stores the target filename. In other\n"
  "words, Fossil stores the symlink itself, not the object that the symlink\n"
  "points to.\n"
  "\n"
  "Symlinks are not cross-platform. They are not available on all\n"
  "operating systems and file systems. Hence the allow-symlinks setting is\n"
  "OFF by default, for portability.";
static const char zHelp348[] =
  "Usage: %fossil amend HASH OPTION ?OPTION ...?\n"
  "\n"
  "Amend the tags on check-in HASH to change how it displays in the timeline.\n"
  "\n"
  "Options:\n"
  "   --author USER              Make USER the author for check-in\n"
  "   --bgcolor COLOR            Apply COLOR to this check-in\n"
  "   --branch NAME              Rename branch of check-in to NAME\n"
  "   --branchcolor COLOR        Apply and propagate COLOR to the branch\n"
  "   --cancel TAG               Cancel TAG from this check-in\n"
  "   --close                    Mark this \"leaf\" as closed\n"
  "   --date DATETIME            Make DATETIME the check-in time\n"
  "   --date-override DATETIME   Set the change time on the control artifact\n"
  "   -e|--edit-comment          Launch editor to revise comment\n"
  "   --editor NAME              Text editor to use for check-in comment\n"
  "   --hide                     Hide branch starting from this check-in\n"
  "   -m|--comment COMMENT       Make COMMENT the check-in comment\n"
  "   -M|--message-file FILE     Read the amended comment from FILE\n"
  "   -n|--dry-run               Print control artifact, but make no changes\n"
  "   --no-verify-comment        Do not validate the check-in comment\n"
  "   --tag TAG                  Add new TAG to this check-in\n"
  "   --user-override USER       Set the user name on the control artifact\n"
  "\n"
  "DATETIME may be \"now\" or \"YYYY-MM-DDTHH:MM:SS.SSS\". If in\n"
  "year-month-day form, it may be truncated, the \"T\" may be replaced by\n"
  "a space, and it may also name a timezone offset from UTC as \"-HH:MM\"\n"
  "(westward) or \"+HH:MM\" (eastward). Either no timezone suffix or \"Z\"\n"
  "means UTC.";
static const char zHelp241[] =
  "Usage: %fossil annotate|blame|praise ?OPTIONS? FILENAME\n"
  "\n"
  "Output the text of a file with markings to show when each line of the file\n"
  "was last modified.  The version currently checked out is shown by default.\n"
  "Other versions may be specified using the -r option.  The \"annotate\" command\n"
  "shows line numbers and omits the username.  The \"blame\" and \"praise\" commands\n"
  "show the user who made each check-in.\n"
  "\n"
  "Reverse Annotations:  Normally, these commands look at versions of\n"
  "FILENAME moving backwards in time back toward the root check-in, and\n"
  "thus the output shows the most recent change to each line.  However,\n"
  "if the -o|--origin option is used to specify some future check-in\n"
  "(example: \"-o trunk\") then these commands show changes moving towards\n"
  "that alternative origin.  Thus using \"-o trunk\" on an historical version\n"
  "of the file shows the first time each line in the file was changed or\n"
  "removed by any subsequent check-in.\n"
  "\n"
  "With -t or -T, the \"blame\" and \"praise\" commands show for each file the\n"
  "latest (relative to the revision given by -r) check-in that modified it and\n"
  "the check-in's author. If not given, the revision defaults to \"current\" for\n"
  "a check-out. Option -T additionally shows a comment snippet for the check-in.\n"
  "\n"
  "Options:\n"
  "  --filevers                  Show file version numbers rather than\n"
  "                              check-in versions\n"
  "  -r|--revision VERSION       The specific check-in containing the file\n"
  "  -l|--log                    List all versions analyzed\n"
  "  -n|--limit LIMIT            LIMIT can be one of:\n"
  "                                N      Up to N versions\n"
  "                                Xs     As much as possible in X seconds\n"
  "                                none   No limit\n"
  "  -o|--origin VERSION         The origin check-in. By default this is the\n"
  "                              root of the repository. Set to the name of\n"
  "                              the main branch (usually \"trunk\") or\n"
  "                              similar for a reverse annotation.\n"
  "  -t                          Show latest check-in and its author for each\n"
  "                              tracked file in the tree as of VERSION\n"
  "  -T                          Like -t, plus comment snippet\n"
  "  -w|--ignore-all-space       Ignore white space when comparing lines\n"
  "  -Z|--ignore-trailing-space  Ignore whitespace at line end\n"
  "\n"
  "See also: [[info]], [[finfo]], [[timeline]]";
static const char zHelp358[] =
  "The number of minutes for which an anonymous login cookie is\n"
  "valid.  Anonymous logins are prohibited if this value is zero.";
static const char zHelp126[] =
  "Usage: %fossil artifact ARTIFACT-ID ?OUTPUT-FILENAME? ?OPTIONS?\n"
  "\n"
  "Extract an artifact by its artifact hash and write the results on\n"
  "standard output, or if the optional second argument is given, in\n"
  "the named output file.\n"
  "\n"
  "Options:\n"
  "   -R|--repository REPO       Extract artifacts from repository REPO\n"
  "\n"
  "See also: [[finfo]]";
static const char zHelp040[] =
  "Usage: %fossil attachment add ?PAGENAME? FILENAME ?OPTIONS?\n"
  "\n"
  "Add an attachment to an existing wiki page or tech note.\n"
  "\n"
  "Options:\n"
  "   -t|--technote DATETIME      Specifies the timestamp of\n"
  "                               the technote to which the attachment\n"
  "                               is to be made. The attachment will be\n"
  "                               to the most recently modified tech note\n"
  "                               with the specified timestamp.\n"
  "   -t|--technote TECHNOTE-ID   Specifies the technote to be\n"
  "                               updated by its technote id\n"
  "\n"
  "One of PAGENAME, DATETIME or TECHNOTE-ID must be specified.\n"
  "\n"
  "DATETIME may be \"now\" or \"YYYY-MM-DDTHH:MM:SS.SSS\". If in\n"
  "year-month-day form, it may be truncated, the \"T\" may be replaced by\n"
  "a space, and it may also name a timezone offset from UTC as \"-HH:MM\"\n"
  "(westward) or \"+HH:MM\" (eastward). Either no timezone suffix or \"Z\"\n"
  "means UTC.";
static const char zHelp151[] =
  "If enabled, the /login page provides a button that will automatically\n"
  "fill in the captcha password.  This makes things easier for human users,\n"
  "at the expense of also making logins easier for malicious robots.";
static const char zHelp152[] =
  "If non-zero, enable hyperlinks on web pages even for users that lack\n"
  "the \"h\" privilege as long as the UserAgent string in the HTTP request\n"
  "(The HTTP_USER_AGENT cgi variable) looks like it comes from a human and\n"
  "not a robot.  Details depend on the value of the setting.\n"
  "\n"
  "  (0)  Off:  No adjustments are made to the 'h' privilege based on\n"
  "       the user agent.\n"
  "\n"
  "  (1)  UserAgent and Javascript:  The the href= values of hyperlinks\n"
  "       initially point to /honeypot and are changed to point to the\n"
  "       correct target by javascript that runs after the page loads.\n"
  "       The auto-hyperlink-delay and auto-hyperlink-mouseover settings\n"
  "       influence that javascript.\n"
  "\n"
  "  (2)  UserAgent only:  If the HTTP_USER_AGENT looks human\n"
  "       then generate hyperlinks, otherwise do not.\n"
  "\n"
  "Better robot exclusion is obtained when this setting is 1 versus 2.\n"
  "However, a value of 1 causes the visited/unvisited colors of hyperlinks\n"
  "to stop working on Safari-derived web browsers.  When this setting is 2,\n"
  "the hyperlinks work better on Safari, but more robots are able to sneak\n"
  "in.";
static const char zHelp153[] =
  "When the auto-hyperlink setting is 1, the javascript that runs to set\n"
  "the href= attributes of hyperlinks delays by this many milliseconds\n"
  "after the page load.  Suggested values:  50 to 200.";
static const char zHelp154[] =
  "When the auto-hyperlink setting is 1 and this setting is on, the\n"
  "javascript that runs to set the href= attributes of hyperlinks waits\n"
  "until either a mousedown or mousemove event is seen.  This helps\n"
  "to distinguish real users from robots. For maximum robot defense,\n"
  "the recommended setting is ON.";
static const char zHelp155[] =
  "If enabled, automatically pull the shunning list\n"
  "from a server to which the client autosyncs.";
static const char zHelp156[] =
  "This setting determines when autosync occurs.  The setting is a\n"
  "string that provides a lot of flexibility for determining when and\n"
  "when not to autosync.  Examples:\n"
  "\n"
  "   on                     Always autosync for command where autosync\n"
  "                          makes sense (\"commit\", \"merge\", \"open\", \"update\")\n"
  "\n"
  "   off                    Never autosync.\n"
  "\n"
  "   pullonly               Only to pull autosyncs\n"
  "\n"
  "   all                    Sync with all remotes\n"
  "\n"
  "   on,open=off            Autosync for most commands, but not for \"open\"\n"
  "\n"
  "   off,commit=pullonly    Do not autosync, except do a pull before each\n"
  "                          \"commit\", presumably to avoid undesirable\n"
  "                          forks.\n"
  "\n"
  "The syntax is a comma-separated list of VALUE and COMMAND=VALUE entries.\n"
  "A plain VALUE entry is the default that is used if no COMMAND matches.\n"
  "Otherwise, the VALUE of the matching command is used.\n"
  "\n"
  "The \"all\" value is special in that it applies to the \"sync\" command in\n"
  "addition to \"commit\", \"merge\", \"open\", and \"update\".";
static const char zHelp157[] =
  "If autosync is enabled setting this to a value greater\n"
  "than zero will cause autosync to try no more than this\n"
  "number of attempts if there is a sync failure.";
static const char zHelp048[] =
  "Usage: %fossil backoffice [OPTIONS...] [REPOSITORIES...]\n"
  "\n"
  "Run backoffice processing on the repositories listed.  If no\n"
  "repository is specified, run it on the repository of the local check-out.\n"
  "\n"
  "This might be done by a cron job or similar to make sure backoffice\n"
  "processing happens periodically.  Or, the --poll option can be used\n"
  "to run this command as a daemon that will periodically invoke backoffice\n"
  "on a collection of repositories.\n"
  "\n"
  "If only a single repository is named and --poll is omitted, then the\n"
  "backoffice work is done in-process.  But if there are multiple repositories\n"
  "or if --poll is used, a separate sub-process is started for each poll of\n"
  "each repository.\n"
  "\n"
  "Standard options:\n"
  "\n"
  "   --debug                 Show what this command is doing\n"
  "\n"
  "   --logfile FILE          Append a log of backoffice actions onto FILE\n"
  "\n"
  "   --min N                 When polling, invoke backoffice at least\n"
  "                           once every N seconds even if the repository\n"
  "                           never changes.  0 or negative means disable\n"
  "                           this feature.  Default: 3600 (once per hour).\n"
  "\n"
  "   --poll N                Repeat backoffice calls for repositories that\n"
  "                           change in approximately N-second intervals.\n"
  "                           N less than 1 turns polling off (the default).\n"
  "                           Recommended polling interval: 60 seconds.\n"
  "\n"
  "   --trace                 Enable debugging output on stderr\n"
  "\n"
  "Options intended for internal use only which may change or be\n"
  "discontinued in future releases:\n"
  "\n"
  "   --nodelay               Do not queue up or wait for a backoffice job\n"
  "                           to complete. If no work is available or if\n"
  "                           backoffice has run recently, return immediately.\n"
  "\n"
  "   --nolease               Always run backoffice, even if there is a lease\n"
  "                           conflict.  This option implies --nodelay.  This\n"
  "                           option is added to secondary backoffice commands\n"
  "                           that are invoked by the --poll option.";
static const char zHelp159[] =
  "If backoffice-disable is true, then the automatic backoffice\n"
  "processing is disabled.  Automatic backoffice processing is the\n"
  "backoffice work that normally runs after each web page is\n"
  "rendered.  Backoffice processing that is triggered by the\n"
  "\"fossil backoffice\" command is unaffected by this setting.\n"
  "\n"
  "Backoffice processing does things such as delivering\n"
  "email notifications.  So if this setting is true, and if\n"
  "there is no cron job periodically running \"fossil backoffice\",\n"
  "email notifications and other work normally done by the\n"
  "backoffice will not occur.";
static const char zHelp160[] =
  "If backoffice-logfile is not an empty string and is a valid\n"
  "filename, then a one-line message is appended to that file\n"
  "every time the backoffice runs.  This can be used for debugging,\n"
  "to ensure that backoffice is running appropriately.";
static const char zHelp158[] =
  "If backoffice-nodelay is true, then the backoffice processing\n"
  "will never invoke sleep().  If it has nothing useful to do,\n"
  "it simply exits.";
static const char zHelp529[] =
  "Usage: %fossil backup ?OPTIONS? FILE|DIRECTORY\n"
  "\n"
  "Make a backup of the repository into the named file or into the named\n"
  "directory.  This backup is guaranteed to be consistent even if there are\n"
  "concurrent changes taking place on the repository.  In other words, it\n"
  "is safe to run \"fossil backup\" on a repository that is in active use.\n"
  "\n"
  "Only the main repository database is backed up by this command.  The\n"
  "open check-out file (if any) is not saved.  Nor is the global configuration\n"
  "database.\n"
  "\n"
  "Options:\n"
  "   --overwrite              OK to overwrite an existing file\n"
  "   -R NAME                  Filename of the repository to backup";
static const char zHelp161[] =
  "The VALUE of this setting is a list of GLOB patterns matching files\n"
  "that should be treated as \"binary\" for committing and merging\n"
  "purposes.  Example: *.jpg,*.png  The parsing rules are complex;\n"
  "see https://fossil-scm.org/home/doc/trunk/www/globs.md#syntax";
static const char zHelp049[] =
  "Usage: %fossil bisect SUBCOMMAND ...\n"
  "\n"
  "Run various subcommands useful for searching back through the change\n"
  "history for a particular check-in that causes or fixes a problem.\n"
  "\n"
  "> fossil bisect bad ?VERSION?\n"
  "\n"
  "      Identify version VERSION as non-working.  If VERSION is omitted,\n"
  "      the current check-out is marked as non-working.\n"
  "\n"
  "> fossil bisect good ?VERSION?\n"
  "\n"
  "      Identify version VERSION as working.  If VERSION is omitted,\n"
  "      the current check-out is marked as working.\n"
  "\n"
  "> fossil bisect log\n"
  "> fossil bisect chart\n"
  "\n"
  "      Show a log of \"good\", \"bad\", and \"skip\" versions.  \"bisect log\"\n"
  "      shows the  events in the order that they were tested.\n"
  "      \"bisect chart\" shows them in order of check-in.\n"
  "\n"
  "> fossil bisect next\n"
  "\n"
  "      Update to the next version that is halfway between the working and\n"
  "      non-working versions.\n"
  "\n"
  "> fossil bisect options ?NAME? ?VALUE?\n"
  "\n"
  "      List all bisect options, or the value of a single option, or set the\n"
  "      value of a bisect option.\n"
  "\n"
  "> fossil bisect reset\n"
  "\n"
  "      Reinitialize a bisect session.  This cancels prior bisect history\n"
  "      and allows a bisect session to start over from the beginning.\n"
  "\n"
  "> fossil bisect run [OPTIONS] COMMAND\n"
  "\n"
  "      Invoke COMMAND repeatedly to run the bisect.  The exit code for\n"
  "      COMMAND should be 0 for \"good\", 125 for \"skip\", and any other value\n"
  "      for \"bad\".\n"
  "\n"
  "      Options:\n"
  "         -i|--interactive    Prompt the user for the good/bad/skip decision\n"
  "                             after each step, rather than using the exit\n"
  "                             code from COMMAND\n"
  "\n"
  "> fossil bisect skip ?VERSION?\n"
  "\n"
  "      Cause VERSION (or the current check-out if VERSION is omitted) to\n"
  "      be ignored for the purpose of the current bisect.  This might\n"
  "      be done, for example, because VERSION does not compile correctly\n"
  "      or is otherwise unsuitable to participate in this bisect.\n"
  "\n"
  "> fossil bisect vlist|ls|status ?-a|--all?\n"
  "\n"
  "      List the versions in between the inner-most \"bad\" and \"good\".\n"
  "\n"
  "> fossil bisect ui ?HOST@USER:PATH?\n"
  "\n"
  "      Like \"fossil ui\" except start on a timeline that shows only the\n"
  "      check-ins that are part of the current bisect.  If the optional\n"
  "      fourth term is added, then information is shown for the bisect that\n"
  "      occurred in the PATH directory by USER on remote machine HOST.\n"
  "\n"
  "> fossil bisect undo\n"
  "\n"
  "      Undo the most recent \"good\", \"bad\", or \"skip\" command.";
static const char zHelp057[] =
  "Usage: %fossil branch SUBCOMMAND ... ?OPTIONS?\n"
  "\n"
  "Run various subcommands to manage branches of the open repository or\n"
  "of the repository identified by the -R or --repository option.\n"
  "\n"
  "> fossil branch close|reopen ?OPTIONS? BRANCH-NAME ?...BRANCH-NAMES?\n"
  "\n"
  "      Adds or cancels the \"closed\" tag to one or more branches.\n"
  "      It accepts arbitrary unambiguous symbolic names but\n"
  "      will only resolve check-in names and skips any which resolve\n"
  "      to non-leaf check-ins.\n"
  "\n"
  "      Options:\n"
  "        -n|--dry-run          Do not commit changes, but dump artifact\n"
  "                              to stdout\n"
  "        -v|--verbose          Output more information\n"
  "        --date-override DATE  DATE to use instead of 'now'\n"
  "        --user-override USER  USER to use instead of the current default\n"
  "\n"
  "> fossil branch current\n"
  "\n"
  "       Print the name of the branch for the current check-out\n"
  "\n"
  "> fossil branch hide|unhide ?OPTIONS? BRANCH-NAME ?...BRANCH-NAMES?\n"
  "\n"
  "      Adds or cancels the \"hidden\" tag for the specified branches or\n"
  "      or check-in IDs. Accepts the same options as the close\n"
  "      subcommand.\n"
  "\n"
  "> fossil branch info BRANCH-NAME\n"
  "\n"
  "       Print information about a branch\n"
  "\n"
  "> fossil branch list|ls ?OPTIONS? ?GLOB?\n"
  "> fossil branch lsh ?OPTIONS? ?LIMIT?\n"
  "\n"
  "       List all branches.\n"
  "\n"
  "       Options:\n"
  "         -a|--all         List all branches.  Default show only open branches\n"
  "         -c|--closed      List closed branches\n"
  "         -m|--merged      List branches merged into the current branch\n"
  "         -M|--unmerged    List branches not merged into the current branch\n"
  "         -p               List only private branches\n"
  "         -r               Reverse the sort order\n"
  "         -t               Show recently changed branches first\n"
  "         --self           List only branches where you participate\n"
  "         --username USER  List only branches where USER participates\n"
  "         --users N        List up to N users participating\n"
  "\n"
  "       The current branch is marked with an asterisk.  Private branches are\n"
  "       marked with a hash sign.\n"
  "\n"
  "       If GLOB is given, show only branches matching the pattern.\n"
  "\n"
  "       The \"lsh\" variant of this subcommand shows recently changed branches,\n"
  "       and accepts an optional LIMIT argument (defaults to 5) to cap output,\n"
  "       but no GLOB argument.  All other options are supported, with -t being\n"
  "       an implied no-op.\n"
  "\n"
  "> fossil branch new BRANCH-NAME BASIS ?OPTIONS?\n"
  "\n"
  "       Create a new branch BRANCH-NAME off of check-in BASIS.\n"
  "\n"
  "       This command is available for people who want to create a branch\n"
  "       in advance.  But  the use of this command is discouraged.  The\n"
  "       preferred idiom in Fossil is to create new branches at the point\n"
  "       of need, using the \"--branch NAME\" option to the \"fossil commit\"\n"
  "       command.\n"
  "\n"
  "       Options:\n"
  "         --private             Branch is private (i.e., remains local)\n"
  "         --bgcolor COLOR       Use COLOR instead of automatic background\n"
  "         --nosign              Do not sign the manifest for the check-in\n"
  "                               that creates this branch\n"
  "         --nosync              Do not auto-sync prior to creating the branch\n"
  "         --date-override DATE  DATE to use instead of 'now'\n"
  "         --user-override USER  USER to use instead of the current default\n"
  "\n"
  "Options:\n"
  "   -R|--repository REPO       Run commands on repository REPO";
static const char zHelp071[] =
  "Usage: %fossil bundle SUBCOMMAND ARGS...\n"
  "\n"
  "> fossil bundle append BUNDLE FILE...\n"
  "\n"
  "     Add files named on the command line to BUNDLE.  This subcommand has\n"
  "     little practical use and is mostly intended for testing.\n"
  "\n"
  "> fossil bundle cat BUNDLE HASH...\n"
  "\n"
  "     Extract one or more artifacts from the bundle and write them\n"
  "     consecutively on standard output.  This subcommand was designed\n"
  "     for testing and introspection of bundles and is not something\n"
  "     commonly used.\n"
  "\n"
  "> fossil bundle export BUNDLE ?OPTIONS?\n"
  "\n"
  "     Generate a new bundle, in the file named BUNDLE, that contains a\n"
  "     subset of the check-ins in the repository (usually a single branch)\n"
  "     described by the --branch, --from, --to, and/or --checkin options,\n"
  "     at least one of which is required.  If BUNDLE already exists, the\n"
  "     specified content is added to the bundle.\n"
  "\n"
  "        --branch BRANCH            Package all check-ins on BRANCH\n"
  "        --from TAG1 --to TAG2      Package check-ins between TAG1 and TAG2\n"
  "        --checkin TAG              Package the single check-in TAG\n"
  "        --standalone               Do no use delta-encoding against\n"
  "                                   artifacts not in the bundle\n"
  "\n"
  "> fossil bundle extend BUNDLE\n"
  "\n"
  "     The BUNDLE must already exist.  This subcommand adds to the bundle\n"
  "     any check-ins that are descendants of check-ins already in the bundle,\n"
  "     and any tags that apply to artifacts in the bundle.\n"
  "\n"
  "> fossil bundle import BUNDLE ?--publish?\n"
  "\n"
  "     Import all content from BUNDLE into the repository.  By default, the\n"
  "     imported files are private and will not sync.  Use the --publish\n"
  "     option to make the import public.\n"
  "\n"
  "> fossil bundle ls BUNDLE\n"
  "\n"
  "     List the contents of BUNDLE on standard output\n"
  "\n"
  "> fossil bundle purge BUNDLE\n"
  "\n"
  "     Remove from the repository all files that are used exclusively\n"
  "     by check-ins in BUNDLE.  This has the effect of undoing a\n"
  "     \"fossil bundle import\".\n"
  "\n"
  "See also: [[publish]]";
static const char zHelp073[] =
  "Usage: %fossil cache SUBCOMMAND\n"
  "\n"
  "Manage the cache used for potentially expensive web pages such as\n"
  "/zip and /tarball.   SUBCOMMAND can be:\n"
  "\n"
  "   clear        Remove all entries from the cache.\n"
  "\n"
  "   init         Create the cache file if it does not already exist.\n"
  "\n"
  "   list|ls      List the keys and content sizes and other stats for\n"
  "                all entries currently in the cache.\n"
  "\n"
  "   size ?N?     Query or set the maximum number of entries in the cache.\n"
  "\n"
  "   status       Show a summary of the cache status.\n"
  "\n"
  "The cache is stored in a file that is distinct from the repository\n"
  "but that is held in the same directory as the repository.  The cache\n"
  "file can be deleted in order to completely disable the cache.";
#if defined(_WIN32)||defined(__CYGWIN__)||defined(__DARWIN__)
static const char zHelp162[] =
  "If TRUE, the files whose names differ only in case\n"
  "are considered distinct.  If FALSE files whose names\n"
  "differ only in case are the same file.  Defaults to\n"
  "TRUE for unix and FALSE for Cygwin, Mac and Windows.";
#endif
#if !(defined(_WIN32)||defined(__CYGWIN__)||defined(__DARWIN__))
static const char zHelp163[] =
  "If TRUE, the files whose names differ only in case\n"
  "are considered distinct.  If FALSE files whose names\n"
  "differ only in case are the same file.  Defaults to\n"
  "TRUE for unix and FALSE for Cygwin, Mac and Windows.";
#endif
static const char zHelp295[] =
  "Usage: %fossil cat FILENAME ... ?OPTIONS?\n"
  "\n"
  "Print on standard output the content of one or more files as they exist\n"
  "in the repository.  The version currently checked out is shown by default.\n"
  "Other versions may be specified using the -r option.\n"
  "\n"
  "Options:\n"
  "   -o|--out OUTFILE         For exactly one given FILENAME, write to OUTFILE\n"
  "   -R|--repository REPO     Extract artifacts from repository REPO\n"
  "   -r VERSION               The specific check-in containing the file\n"
  "\n"
  "See also: [[finfo]]";
static const char zHelp373[] =
  "Usage: %fossil ?cgi? FILE\n"
  "\n"
  "This command causes Fossil to generate reply to a CGI request.\n"
  "\n"
  "The FILE argument is the name of a control file that provides Fossil\n"
  "with important information such as where to find its repository.  In\n"
  "a typical CGI deployment, FILE is the name of the CGI script and will\n"
  "typically look something like this:\n"
  "\n"
  "     #!/usr/bin/fossil\n"
  "     repository: /home/somebody/project.db\n"
  "\n"
  "The command name, \"cgi\", may be omitted if the GATEWAY_INTERFACE\n"
  "environment variable is set to \"CGI\", which should always be the\n"
  "case for CGI scripts run by a webserver.  Fossil ignores any lines\n"
  "that begin with \"#\".\n"
  "\n"
  "The following control lines are recognized:\n"
  "\n"
  "   repository: PATH         Name of the Fossil repository\n"
  "\n"
  "   directory:  PATH         Name of a directory containing many Fossil\n"
  "                            repositories whose names all end with \".fossil\".\n"
  "                            There should only be one of \"repository:\"\n"
  "                            or \"directory:\"\n"
  "\n"
  "   notfound: URL            When in \"directory:\" mode, redirect to\n"
  "                            URL if no suitable repository is found.\n"
  "\n"
  "   repolist                 When in \"directory:\" mode, display a page\n"
  "                            showing a list of available repositories if\n"
  "                            the URL is \"/\".  Some control over the display\n"
  "                            is accomplished using environment variables.\n"
  "                            FOSSIL_REPOLIST_TITLE is the tital of the page.\n"
  "                            FOSSIL_REPOLIST_SHOW cause the \"Description\"\n"
  "                            column to display if it contains \"description\" as\n"
  "                            as a substring, and causes the Login-Group column\n"
  "                            to display if it contains the \"login-group\"\n"
  "                            substring.\n"
  "\n"
  "   localauth                Grant administrator privileges to connections\n"
  "                            from 127.0.0.1 or ::1.\n"
  "\n"
  "   nossl                    Signal that no SSL connections are available.\n"
  "\n"
  "   nocompress               Do not compress HTTP replies.\n"
  "\n"
  "   skin: LABEL              Use the built-in skin called LABEL rather than\n"
  "                            the default, or the default if LABEL is empty.\n"
  "                            If there are no skins called LABEL then this\n"
  "                            line is a no-op.\n"
  "\n"
  "   files: GLOBLIST          GLOBLIST is a comma-separated list of GLOB\n"
  "                            patterns that specify files that can be\n"
  "                            returned verbatim.  This feature allows Fossil\n"
  "                            to act as a web server returning static\n"
  "                            content.\n"
  "\n"
  "   setenv: NAME VALUE       Set environment variable NAME to VALUE.  Or\n"
  "                            if VALUE is omitted, unset NAME.\n"
  "\n"
  "   HOME: PATH               Shorthand for \"setenv: HOME PATH\"\n"
  "\n"
  "   cgi-debug: FILE          Causing debugging information to be written\n"
  "                            into FILE.\n"
  "\n"
  "   errorlog: FILE           Warnings, errors, and panics written to FILE.\n"
  "\n"
  "   timeout: SECONDS         Do not run for longer than SECONDS.  The default\n"
  "                            timeout is FOSSIL_DEFAULT_TIMEOUT (600) seconds.\n"
  "\n"
  "   extroot: DIR             Directory that is the root of the sub-CGI tree\n"
  "                            on the /ext page.\n"
  "\n"
  "   redirect: REPO URL       Extract the \"name\" query parameter and search\n"
  "                            REPO for a check-in or ticket that matches the\n"
  "                            value of \"name\", then redirect to URL.  There\n"
  "                            can be multiple \"redirect:\" lines that are\n"
  "                            processed in order.  If the REPO is \"*\", then\n"
  "                            an unconditional redirect to URL is taken.\n"
  "                            When \"*\" is used a 301 permanent redirect is\n"
  "                            issued and the tail and query string from the\n"
  "                            original query are appended onto URL.\n"
  "\n"
  "   jsmode: VALUE            Specifies the delivery mode for JavaScript\n"
  "                            files. See the help text for the --jsmode\n"
  "                            flag of the http command.\n"
  "\n"
  "   mainmenu: FILE           Override the mainmenu config setting with the\n"
  "                            contents of the given file.\n"
  "\n"
  "Most CGI files contain only a \"repository:\" line.  It is uncommon to\n"
  "use any other option.\n"
  "\n"
  "The lines are processed in the order they are read, which is most\n"
  "significant for \"errorlog:\", which should be set before \"repository:\"\n"
  "so that any warnings from the database when opening the repository\n"
  "go to that log file.\n"
  "\n"
  "See also: [[http]], [[server]], [[winsrv]] [Windows only]";
static const char zHelp099[] =
  "Usage: %fossil changes|status ?OPTIONS? ?PATHS ...?\n"
  "\n"
  "Report the change status of files in the current check-out.  If one or\n"
  "more PATHS are specified, only changes among the named files and\n"
  "directories are reported.  Directories are searched recursively.\n"
  "\n"
  "The status command is similar to the changes command, except it lacks\n"
  "several of the options supported by changes and it has its own header\n"
  "and footer information.  The header information is a subset of that\n"
  "shown by the info command, and the footer shows if there are any forks.\n"
  "Change type classification is always enabled for the status command.\n"
  "\n"
  "Each line of output is the name of a changed file, with paths shown\n"
  "according to the \"relative-paths\" setting, unless overridden by the\n"
  "--abs-paths or --rel-paths options.\n"
  "\n"
  "By default, all changed files are selected for display.  This behavior\n"
  "can be overridden by using one or more filter options (listed below),\n"
  "in which case only files with the specified change type(s) are shown.\n"
  "As a special case, the --no-merge option does not inhibit this default.\n"
  "This default shows exactly the set of changes that would be checked-\n"
  "in by the commit command.\n"
  "\n"
  "If no filter options are used, or if the --merge option is used, the\n"
  "artifact hash of each merge contributor check-in version is displayed at\n"
  "the end of the report.  The --no-merge option is useful to display the\n"
  "default set of changed files without the merge contributors.\n"
  "\n"
  "If change type classification is enabled, each output line starts with\n"
  "a code describing the file's change type, e.g. EDITED or RENAMED.  It\n"
  "is enabled by default unless exactly one change type is selected.  For\n"
  "the purposes of determining the default, --changed counts as selecting\n"
  "one change type.  The default can be overridden by the --classify or\n"
  "--no-classify options.\n"
  "\n"
  "--edited and --updated produce disjoint sets.  --updated shows a file\n"
  "only when it is identical to that of its merge contributor, and the\n"
  "change type classification is UPDATED_BY_MERGE or UPDATED_BY_INTEGRATE.\n"
  "If the file had to be merged with any other changes, it is considered\n"
  "to be merged or conflicted and therefore will be shown by --edited, not\n"
  "--updated, with types EDITED or CONFLICT.  The --changed option can be\n"
  "used to display the union of --edited and --updated.\n"
  "\n"
  "--differ is so named because it lists all the differences between the\n"
  "checked-out version and the check-out directory.  In addition to the\n"
  "default changes (excluding --merge), it lists extra files which (if\n"
  "ignore-glob is set correctly) may be worth adding.  Prior to doing a\n"
  "commit, it is good practice to check --differ to see not only which\n"
  "changes would be committed but also if any files should be added.\n"
  "\n"
  "If both --merge and --no-merge are used, --no-merge has priority.  The\n"
  "same is true of --classify and --no-classify.\n"
  "\n"
  "The \"fossil changes --extra\" command is equivalent to \"fossil extras\".\n"
  "\n"
  "General options:\n"
  "   --abs-paths       Display absolute pathnames\n"
  "   -b|--brief        Show a single keyword for the status\n"
  "   --rel-paths       Display pathnames relative to the current working\n"
  "                     directory\n"
  "   --hash            Verify file status using hashing rather than\n"
  "                     relying on file mtimes\n"
  "   --case-sensitive BOOL  Override case-sensitive setting\n"
  "   --dotfiles        Include unmanaged files beginning with a dot\n"
  "   --ignore <CSG>    Ignore unmanaged files matching CSG glob patterns\n"
  "\n"
  "Options specific to the changes command:\n"
  "   --header          Identify the repository if report is non-empty\n"
  "   -v|--verbose      Say \"(none)\" if the change report is empty\n"
  "   --classify        Start each line with the file's change type\n"
  "   --no-classify     Do not print file change types\n"
  "\n"
  "Filter options:\n"
  "   --edited          Display edited, merged, and conflicted files\n"
  "   --updated         Display files updated by merge/integrate\n"
  "   --changed         Combination of the above two options\n"
  "   --missing         Display missing files\n"
  "   --added           Display added files\n"
  "   --deleted         Display deleted files\n"
  "   --renamed         Display renamed files\n"
  "   --conflict        Display files having merge conflicts\n"
  "   --meta            Display files with metadata changes\n"
  "   --unchanged       Display unchanged files\n"
  "   --all             Display all managed files, i.e. all of the above\n"
  "   --extra           Display unmanaged files\n"
  "   --differ          Display modified and extra files\n"
  "   --merge           Display merge contributors\n"
  "   --no-merge        Do not display merge contributors\n"
  "\n"
  "See also: [[extras]], [[ls]]";
static const char zHelp098[] =
  "Usage: %fossil chat [SUBCOMMAND] [--remote URL] [ARGS...]\n"
  "\n"
  "This command performs actions associated with the /chat instance\n"
  "on the default remote Fossil repository (the Fossil repository whose\n"
  "URL shows when you run the \"fossil remote\" command) or to the URL\n"
  "specified by the --remote option.  If there is no default remote\n"
  "Fossil repository and the --remote option is omitted, then this\n"
  "command fails with an error.\n"
  "\n"
  "Subcommands:\n"
  "\n"
  "> fossil chat\n"
  "\n"
  "     When there is no SUBCOMMAND (when this command is simply \"fossil chat\")\n"
  "     the response is to bring up a web-browser window to the chatroom\n"
  "     on the default system web-browser.  You can accomplish the same by\n"
  "     typing the appropriate URL into the web-browser yourself.  This\n"
  "     command is merely a convenience for command-line oriented people.\n"
  "\n"
  "> fossil chat pull\n"
  "\n"
  "     Copy chat content from the server down into the local clone,\n"
  "     as a backup or archive.  Setup privilege is required on the server.\n"
  "\n"
  "       --all                  Download all chat content. Normally only\n"
  "                              previously undownloaded content is retrieved.\n"
  "       --debug                Additional debugging output\n"
  "       --out DATABASE         Store CHAT table in separate database file\n"
  "                              DATABASE rather than adding to local clone\n"
  "       --unsafe               Allow the use of unencrypted http://\n"
  "\n"
  "> fossil chat send [ARGUMENTS]\n"
  "\n"
  "     This command sends a new message to the chatroom.  The message\n"
  "     to be sent is determined by arguments as follows:\n"
  "\n"
  "       -f|--file FILENAME     File to attach to the message\n"
  "       --as FILENAME2         Causes --file FILENAME to be sent with\n"
  "                              the attachment name FILENAME2\n"
  "       -m|--message TEXT      Text of the chat message\n"
  "       --remote URL           Send to this remote URL\n"
  "       --unsafe               Allow the use of unencrypted http://\n"
  "\n"
  "> fossil chat url\n"
  "\n"
  "     Show the default URL used to access the chat server.\n"
  "\n"
  "> fossil chat purge\n"
  "\n"
  "     Remove chat messages that are older than chat-keep-days and\n"
  "     which are not one of the most recent chat-keep-count message.\n"
  "\n"
  "> fossil chat reindex\n"
  "\n"
  "     Rebuild the full-text search index for chat\n"
  "\n"
  "Additional subcommands may be added in the future.";
static const char zHelp087[] =
  "This is the name of the builtin sound file to use for the alert tone.\n"
  "The value must be the name of a builtin WAV file.";
static const char zHelp082[] =
  "If this setting has an integer value of N, then when /chat first\n"
  "starts up it initializes the screen with the N most recent chat\n"
  "messages.  If N is zero, then all chat messages are loaded.";
static const char zHelp085[] =
  "Specifies whether posted images in /chat should default to being\n"
  "displayed inline or as downloadable links. Each chat user can\n"
  "change this value for their current chat session in the UI.";
static const char zHelp083[] =
  "When /chat is cleaning up older messages, it will always keep\n"
  "the most recent chat-keep-count messages, even if some of those\n"
  "messages are older than the discard threshold.  If this value\n"
  "is zero, then /chat is free to delete all historic messages once\n"
  "they are old enough.";
static const char zHelp084[] =
  "The /chat subsystem will try to discard messages that are older then\n"
  "chat-keep-days.  The value of chat-keep-days can be a floating point\n"
  "number.  So, for example, if you only want to keep chat messages for\n"
  "12 hours, set this value to 0.5.\n"
  "\n"
  "A value of 0.0 or less means that messages are retained forever.";
static const char zHelp086[] =
  "On an HTTP request to /chat-poll, if there is no new content available,\n"
  "the reply is delayed waiting for new content to arrive.  (This is the\n"
  "\"long poll\" strategy of event delivery to the client.)  This setting\n"
  "determines approximately how long /chat-poll will delay before giving\n"
  "up and returning an empty reply.  The default value is about 7 minutes,\n"
  "which works well for Fossil behind the althttpd web server.  Other\n"
  "server environments may choose a longer or shorter delay.\n"
  "\n"
  "For maximum efficiency, it is best to choose the longest delay that\n"
  "does not cause timeouts in intermediate proxies or web server.";
static const char zHelp088[] =
  "If this setting is defined and is not an empty string, then\n"
  "timeline events are posted to the chat as they arrive. The synthesized\n"
  "chat messages appear to come from the user identified by this setting,\n"
  "not the user on the timeline event.\n"
  "\n"
  "All chat messages that come from the chat-timeline-user are\n"
  "interpreted as text/x-fossil-wiki instead of as text/x-markdown.\n"
  "For this reason, the chat-timeline-user name should probably not be\n"
  "a real user.";
static const char zHelp110[] =
  "Usage: %fossil checkout ?VERSION | --latest? ?OPTIONS?\n"
  "   or: %fossil co ?VERSION | --latest? ?OPTIONS?\n"
  "\n"
  "NOTE: Most people use \"fossil update\" instead of \"fossil checkout\" for\n"
  "day-to-day operations.  If you are new to Fossil and trying to learn your\n"
  "way around, it is recommended that you become familiar with the\n"
  "\"fossil update\" command first.\n"
  "\n"
  "This command changes the current check-out to the version specified\n"
  "as an argument.  The command aborts if there are edited files in the\n"
  "current check-out unless the --force option is used.  The --keep option\n"
  "leaves files on disk unchanged, except the manifest and manifest.uuid\n"
  "files.\n"
  "\n"
  "The --latest flag can be used in place of VERSION to check-out the\n"
  "latest version in the repository.\n"
  "\n"
  "Options:\n"
  "   -f|--force        Ignore edited files in the current check-out\n"
  "   -k|--keep         Only update the manifest file(s)\n"
  "   --force-missing   Force check-out even if content is missing\n"
  "   --prompt          Prompt before overwriting when --force is used\n"
  "   --setmtime        Set timestamps of all files to match their SCM-side\n"
  "                     times (the timestamp of the last check-in which modified\n"
  "                     them)\n"
  "\n"
  "See also: [[update]]";
static const char zHelp108[] =
  "Usage: %fossil commit ?OPTIONS? ?FILE...?\n"
  "   or: %fossil ci ?OPTIONS? ?FILE...?\n"
  "\n"
  "Create a new check-in containing all of the changes in the current\n"
  "check-out.  All changes are committed unless some subset of files\n"
  "is specified on the command line, in which case only the named files\n"
  "become part of the new check-in.\n"
  "\n"
  "You will be prompted to enter a check-in comment unless the comment\n"
  "has been specified on the command-line using \"-m\" or \"-M\".  The\n"
  "text editor used is determined by the \"editor\" setting, or by the\n"
  "\"VISUAL\" or \"EDITOR\" environment variables.  Commit message text is\n"
  "interpreted as fossil-wiki format.  Potentially misformatted check-in\n"
  "comment text is detected and reported unless the --no-verify-comment\n"
  "option is used.\n"
  "\n"
  "The --branch option followed by a branch name causes the new\n"
  "check-in to be placed in a newly-created branch with name specified.\n"
  "\n"
  "A check-in is not permitted to fork unless the --allow-fork option\n"
  "appears.  An empty check-in (i.e. with nothing changed) is not\n"
  "allowed unless the --allow-empty option appears.  A check-in may not\n"
  "be older than its ancestor unless the --allow-older option appears.\n"
  "If any files in the check-in appear to contain unresolved merge\n"
  "conflicts, the check-in will not be allowed unless the\n"
  "--allow-conflict option is present.  In addition, the entire\n"
  "check-in process may be aborted if a file contains content that\n"
  "appears to be binary, Unicode text, or text with CR/LF line endings\n"
  "unless the interactive user chooses to proceed.  If there is no\n"
  "interactive user or these warnings should be skipped for some other\n"
  "reason, the --no-warnings option may be used.  A check-in is not\n"
  "allowed against a closed leaf.\n"
  "\n"
  "The --private option creates a private check-in that is never synced.\n"
  "Children of private check-ins are automatically private.\n"
  "\n"
  "The --tag option applies the symbolic tag name to the check-in.\n"
  "The --tag option can be repeated to assign multiple tags to a check-in.\n"
  "For example: \"... --tag release --tag version-1.2.3 ...\"\n"
  "\n"
  "Options:\n"
  "   --allow-conflict           Allow unresolved merge conflicts\n"
  "   --allow-empty              Allow a commit with no changes\n"
  "   --allow-fork               Allow the commit to fork\n"
  "   --allow-older              Allow a commit older than its ancestor\n"
  "   --baseline                 Use a baseline manifest in the commit process\n"
  "   --bgcolor COLOR            Apply COLOR to this one check-in only\n"
  "   --branch NEW-BRANCH-NAME   Check in to this new branch\n"
  "   --branchcolor COLOR        Apply given COLOR to the branch\n"
  "   --close                    Close the branch being committed\n"
  "   --date-override DATETIME   Make DATETIME the time of the check-in.\n"
  "                              Useful when importing historical check-ins\n"
  "                              from another version control system.\n"
  "   --delta                    Use a delta manifest in the commit process\n"
  "   --editor NAME              Text editor to use for check-in comment.\n"
  "   --hash                     Verify file status using hashing rather\n"
  "                              than relying on filesystem mtimes\n"
  "   --if-changes               Make this command a silent no-op if there\n"
  "                              are no changes\n"
  "   --ignore-clock-skew        If a clock skew is detected, ignore it and\n"
  "                              behave as if the user had entered 'yes' to\n"
  "                              the question of whether to proceed despite\n"
  "                              the skew.\n"
  "   --ignore-oversize          Do not warn the user about oversized files\n"
  "   --integrate                Close all merged-in branches\n"
  "   -m|--comment COMMENT-TEXT  Use COMMENT-TEXT as the check-in comment\n"
  "   -M|--message-file FILE     Read the check-in comment from FILE\n"
  "   -n|--dry-run               Do not actually create a new check-in. Just\n"
  "                              show what would have happened. For debugging.\n"
  "   -v|--verbose               Show a diff in the commit message prompt\n"
  "   --no-prompt                This option disables prompting the user for\n"
  "                              input and assumes an answer of 'No' for every\n"
  "                              question.\n"
  "   --no-warnings              Omit all warnings about file contents\n"
  "   --no-verify                Do not run before-commit hooks\n"
  "   --no-verify-comment        Do not validate the check-in comment\n"
  "   --nosign                   Do not attempt to sign this commit with gpg\n"
  "   --nosync                   Do not auto-sync prior to committing\n"
  "   --override-lock            Allow a check-in even though parent is locked\n"
  "   --private                  Never sync the resulting check-in and make\n"
  "                              all descendants private too.\n"
  "   --proxy PROXY              Use PROXY as http proxy during sync operation\n"
  "   --tag TAG-NAME             Add TAG-NAME to the check-in. May be repeated.\n"
  "   --trace                    Debug tracing\n"
  "   --user-override USER       Record USER as the login that created the\n"
  "                              new check-in, rather that the current user.\n"
  "\n"
  "See also: [[branch]], [[changes]], [[update]], [[extras]], [[sync]]";
static const char zHelp104[] =
  "Usage: %fossil clean ?OPTIONS? ?PATH ...?\n"
  "\n"
  "Delete all \"extra\" files in the source tree.  \"Extra\" files are files\n"
  "that are not officially part of the check-out.  If one or more PATH\n"
  "arguments appear, then only the files named, or files contained with\n"
  "directories named, will be removed.\n"
  "\n"
  "If the --prompt option is used, prompts are issued to confirm the\n"
  "permanent removal of each file.  Otherwise, files are backed up to the\n"
  "undo buffer prior to removal, and prompts are issued only for files\n"
  "whose removal cannot be undone due to their large size or due to\n"
  "--disable-undo being used.\n"
  "\n"
  "The --force option treats all prompts as having been answered yes,\n"
  "whereas --no-prompt treats them as having been answered no.\n"
  "\n"
  "Files matching any glob pattern specified by the --clean option are\n"
  "deleted without prompting, and the removal cannot be undone.\n"
  "\n"
  "No file that matches glob patterns specified by --ignore or --keep will\n"
  "ever be deleted.  Files and subdirectories whose names begin with \".\"\n"
  "are automatically ignored unless the --dotfiles option is used.\n"
  "\n"
  "The default values for --clean, --ignore, and --keep are determined by\n"
  "the (versionable) clean-glob, ignore-glob, and keep-glob settings.\n"
  "\n"
  "The --verily option ignores the keep-glob and ignore-glob settings and\n"
  "turns on --force, --emptydirs, --dotfiles, and --disable-undo.  Use the\n"
  "--verily option when you really want to clean up everything.  Extreme\n"
  "care should be exercised when using the --verily option.\n"
  "\n"
  "Options:\n"
  "   --allckouts            Check for empty directories within any check-outs\n"
  "                          that may be nested within the current one.  This\n"
  "                          option should be used with great care because the\n"
  "                          empty-dirs setting (and other applicable settings)\n"
  "                          belonging to the other repositories, if any, will\n"
  "                          not be checked.\n"
  "   --case-sensitive BOOL  Override case-sensitive setting\n"
  "   --dirsonly             Only remove empty directories.  No files will\n"
  "                          be removed.  Using this option will automatically\n"
  "                          enable the --emptydirs option as well.\n"
  "   --disable-undo         WARNING: This option disables use of the undo\n"
  "                          mechanism for this clean operation and should be\n"
  "                          used with extreme caution.\n"
  "   --dotfiles             Include files beginning with a dot (\".\")\n"
  "   --emptydirs            Remove any empty directories that are not\n"
  "                          explicitly exempted via the empty-dirs setting\n"
  "                          or another applicable setting or command line\n"
  "                          argument.  Matching files, if any, are removed\n"
  "                          prior to checking for any empty directories;\n"
  "                          therefore, directories that contain only files\n"
  "                          that were removed will be removed as well.\n"
  "   -f|--force             Remove files without prompting\n"
  "   -i|--prompt            Prompt before removing each file.  This option\n"
  "                          implies the --disable-undo option.\n"
  "   -x|--verily            WARNING: Removes everything that is not a managed\n"
  "                          file or the repository itself.  This option\n"
  "                          implies the --force, --emptydirs, --dotfiles, and\n"
  "                          --disable-undo options. Furthermore, it\n"
  "                          completely disregards the keep-glob\n"
  "                          and ignore-glob settings.  However, it does honor\n"
  "                          the --ignore and --keep options.\n"
  "   --clean CSG            WARNING: Never prompt to delete any files matching\n"
  "                          this comma separated list of glob patterns.  Also,\n"
  "                          deletions of any files matching this pattern list\n"
  "                          cannot be undone.\n"
  "   --ignore CSG           Ignore files matching patterns from the\n"
  "                          comma separated list of glob patterns\n"
  "   --keep <CSG>           Keep files matching this comma separated\n"
  "                          list of glob patterns\n"
  "   -n|--dry-run           Delete nothing, but display what would have been\n"
  "                          deleted\n"
  "   --no-prompt            Do not prompt the user for input and assume an\n"
  "                          answer of 'No' for every question\n"
  "   --temp                 Remove only Fossil-generated temporary files\n"
  "   -v|--verbose           Show all files as they are removed\n"
  "\n"
  "See also: [[addremove]], [[extras]], [[status]]";
static const char zHelp164[] =
  "The VALUE of this setting is a list of GLOB patterns matching files\n"
  "that the \"clean\" command will delete without prompting or allowing\n"
  "undo.  Example: *.a,*.o,*.so  The parsing rules are complex;\n"
  "see https://fossil-scm.org/home/doc/trunk/www/globs.md#syntax";
static const char zHelp165[] =
  "When enabled, fossil will attempt to sign all commits\n"
  "with gpg or ssh.  When disabled, commits will be unsigned.";
static const char zHelp114[] =
  "Usage: %fossil clone ?OPTIONS? URI ?FILENAME?\n"
  "\n"
  "Make a clone of a repository specified by URI in the local\n"
  "file named FILENAME.  If FILENAME is omitted, then an appropriate\n"
  "filename is deduced from last element of the path in the URL.\n"
  "\n"
  "URI may be one of the following forms ([...] denotes optional elements):\n"
  "\n"
  " * HTTP/HTTPS protocol:\n"
  "\n"
  "     http[s]://[userid[:password]@]host[:port][/path]\n"
  "\n"
  " * SSH protocol:\n"
  "\n"
  "     ssh://[userid@]host[:port]/path/to/repo.fossil[?fossil=path/fossil.exe]\n"
  "\n"
  " * Filesystem:\n"
  "\n"
  "     [file://]path/to/repo.fossil\n"
  "\n"
  "For ssh and filesystem, path must have an extra leading\n"
  "'/' to use an absolute path.\n"
  "\n"
  "Use %HH escapes for special characters in the userid and\n"
  "password.  For example \"%40\" in place of \"@\", \"%2f\" in place\n"
  "of \"/\", and \"%3a\" in place of \":\".\n"
  "\n"
  "Note that in Fossil (in contrast to some other DVCSes) a repository\n"
  "is distinct from a check-out.  Cloning a repository is not the same thing\n"
  "as opening a repository.  This command always clones the repository.  This\n"
  "command might also open the repository, but only if the --no-open option\n"
  "is omitted and either the --workdir option is included or the FILENAME\n"
  "argument is omitted.  Use the separate [[open]] command to open a\n"
  "repository that was previously cloned and already exists on the\n"
  "local machine.\n"
  "\n"
  "By default, the current login name is used to create the default\n"
  "admin user for the new clone. This can be overridden using\n"
  "the -A|--admin-user parameter.\n"
  "\n"
  "Options:\n"
  "   -A|--admin-user USERNAME   Make USERNAME the administrator\n"
  "   -B|--httpauth USER:PASS    Add HTTP Basic Authorization to requests\n"
  "   --nested                   Allow opening a repository inside an opened\n"
  "                              check-out\n"
  "   --nocompress               Omit extra delta compression\n"
  "   --no-open                  Clone only.  Do not open a check-out.\n"
  "   --once                     Don't remember the URI.\n"
  "   --private                  Also clone private branches\n"
  "   --proxy PROXY              Use the specified HTTP proxy\n"
  "   --save-http-password       Remember the HTTP password without asking\n"
  "   -c|--ssh-command SSH       Use SSH as the \"ssh\" command\n"
  "   --ssl-identity FILENAME    Use the SSL identity if requested by the server\n"
  "   --transport-command CMD    Use CMD to move messages to the server and back\n"
  "   -u|--unversioned           Also sync unversioned content\n"
  "   -v|--verbose               Show more statistics in output\n"
  "   --workdir DIR              Also open a check-out in DIR\n"
  "   --xverbose                 Extra debugging output\n"
  "\n"
  "See also: [[init]], [[open]]";
static const char zHelp112[] =
  "Usage: %fossil close ?OPTIONS?\n"
  "\n"
  "The opposite of \"[[open]]\".  Close the current database connection.\n"
  "Require a -f or --force flag if there are unsaved changes in the\n"
  "current check-out or if there is non-empty stash.\n"
  "\n"
  "Options:\n"
  "  -f|--force  Necessary to close a check-out with uncommitted changes\n"
  "\n"
  "See also: [[open]]";
static const char zHelp166[] =
  "Set the algorithm for printing timeline comments to the console.\n"
  "\n"
  "Possible values are:\n"
  "   1     Use the original comment printing algorithm:\n"
  "            *   Leading and trailing whitespace is removed\n"
  "            *   Internal whitespace is converted into a single space (0x20)\n"
  "            *   Line breaks occurs at whitespace or hyphens if possible\n"
  "         This is the recommended value and the default.\n"
  "\n"
  "Or a bitwise combination of the following flags:\n"
  "   2     Trim leading and trailing CR and LF characters.\n"
  "   4     Trim leading and trailing white space characters.\n"
  "   8     Attempt to break lines on word boundaries.\n"
  "  16     Break lines before the original comment embedded in other text.\n"
  "\n"
  "Note: To preserve line breaks and/or other whitespace within comment text,\n"
  "make this setting some integer value that omits the \"1\" bit.";
static const char zHelp122[] =
  "Usage: %fossil configuration METHOD ... ?OPTIONS?\n"
  "\n"
  "Where METHOD is one of: export import merge pull push reset.\n"
  "\n"
  ">  fossil configuration export AREA FILENAME\n"
  "\n"
  "        Write to FILENAME exported configuration information for AREA.\n"
  "        AREA can be one of:\n"
  "\n"
  "            all email interwiki project shun skin\n"
  "            ticket user alias subscriber\n"
  "\n"
  ">  fossil configuration import FILENAME\n"
  "\n"
  "        Read a configuration from FILENAME, overwriting the current\n"
  "        configuration.\n"
  "\n"
  ">  fossil configuration merge FILENAME\n"
  "\n"
  "        Read a configuration from FILENAME and merge its values into\n"
  "        the current configuration.  Existing values take priority over\n"
  "        values read from FILENAME.\n"
  "\n"
  ">  fossil configuration pull AREA ?URL?\n"
  "\n"
  "        Pull and install the configuration from a different server\n"
  "        identified by URL.  If no URL is specified, then the default\n"
  "        server is used.  Use the --overwrite flag to completely\n"
  "        replace local settings with content received from URL.\n"
  "\n"
  ">  fossil configuration push AREA ?URL?\n"
  "\n"
  "        Push the local configuration into the remote server identified\n"
  "        by URL.  Admin privilege is required on the remote server for\n"
  "        this to work.  When the same record exists both locally and on\n"
  "        the remote end, the one that was most recently changed wins.\n"
  "\n"
  ">  fossil configuration reset AREA\n"
  "\n"
  "        Restore the configuration to the default.  AREA as above.\n"
  "\n"
  ">  fossil configuration sync AREA ?URL?\n"
  "\n"
  "        Synchronize configuration changes in the local repository with\n"
  "        the remote repository at URL.\n"
  "\n"
  "Options:\n"
  "   --proxy PROXY              Use PROXY as http proxy during sync operation\n"
  "                              (used by pull, push and sync subcommands)\n"
  "   -R|--repository REPO       Affect repository REPO with changes\n"
  "\n"
  "See also: [[settings]], [[unset]]";
static const char zHelp167[] =
  "The VALUE of this setting is a list of GLOB patterns matching files\n"
  "in which it is allowed to have CR, CR+LF or mixed line endings,\n"
  "suppressing Fossil's normal warning about this. Set it to \"*\" to\n"
  "disable CR+LF checking entirely.  Example: *.md,*.txt\n"
  "The crnl-glob setting is a compatibility alias.";
static const char zHelp168[] =
  "This is an alias for the crlf-glob setting.";
static const char zHelp509[] =
  "Usage: %fossil dbstat OPTIONS\n"
  "\n"
  "Shows statistics and global information about the repository and/or\n"
  "verify the integrity of a repository.\n"
  "\n"
  "Options:\n"
  "  -b|--brief           Only show essential elements\n"
  "  --db-check           Run \"PRAGMA quick_check\" on the repository database\n"
  "  --db-verify          Run a full verification of the repository integrity.\n"
  "                       This involves decoding and reparsing all artifacts\n"
  "                       and can take significant time.\n"
  "  --omit-version-info  Omit the SQLite and Fossil version information";
static const char zHelp431[] =
  "Usage: %fossil deconstruct ?OPTIONS? DESTINATION\n"
  "\n"
  "This command exports all artifacts of a given repository and writes all\n"
  "artifacts to the file system.  The DESTINATION directory will be populated\n"
  "with subdirectories AA and files AA/BBBBBBBBB.., where AABBBBBBBBB.. is the\n"
  "40+ character artifact ID, AA the first 2 characters.\n"
  "If -L|--prefixlength is given, the length (default 2) of the directory prefix\n"
  "can be set to 0,1,..,9 characters.\n"
  "\n"
  "Options:\n"
  "  -R|--repository REPO        Deconstruct given REPOSITORY\n"
  "  -K|--keep-rid1              Save the filename of the artifact with RID=1 to\n"
  "                              the file .rid1 in the DESTINATION directory\n"
  "  -L|--prefixlength N         Set the length of the names of the DESTINATION\n"
  "                              subdirectories to N\n"
  "  --private                   Include private artifacts\n"
  "  -P|--keep-private           Save the list of private artifacts to the file\n"
  "                              .private in the DESTINATION directory (implies\n"
  "                              the --private option)";
static const char zHelp216[] =
  "The text of the Content Security Policy that is included\n"
  "in the Content-Security-Policy: header field of the HTTP\n"
  "reply and in the default HTML <head> section that is added when the\n"
  "skin header does not specify a <head> section.  The text \"$nonce\"\n"
  "is replaced by the random nonce that is created for each web page.\n"
  "\n"
  "If this setting is an empty string or is omitted, then\n"
  "the following default Content Security Policy is used:\n"
  "\n"
  "    default-src 'self' data:;\n"
  "    script-src 'self' 'nonce-$nonce';\n"
  "    style-src 'self' 'unsafe-inline';\n"
  "    img-src * data:;\n"
  "\n"
  "The default CSP is recommended.  The main reason to change\n"
  "this setting would be to add CDNs from which it is safe to\n"
  "load additional content.";
static const char zHelp169[] =
  "Permissions given automatically to new users.  For more\n"
  "information on permissions see the Users page in Server\n"
  "Administration of the HTTP UI.";
static const char zHelp496[] =
  "If the text value if this setting is the name of a built-in skin\n"
  "then the named skin becomes the default skin for the repository.";
static const char zHelp230[] =
  "Usage: %fossil descendants ?CHECKIN? ?OPTIONS?\n"
  "\n"
  "Find all leaf descendants of the check-in specified or if the argument\n"
  "is omitted, of the check-in currently checked out.\n"
  "\n"
  "Options:\n"
  "   -R|--repository REPO       Extract info from repository REPO\n"
  "   -W|--width N               Width of lines (default is to auto-detect).\n"
  "                              Must be greater than 20 or else 0 for no\n"
  "                              limit, resulting in a one line per entry.\n"
  "\n"
  "See also: [[finfo]], [[info]], [[leaves]]";
static const char zHelp350[] =
  "Usage: %fossil describe ?VERSION? ?OPTIONS?\n"
  "\n"
  "Provide a description of the given VERSION by showing a non-propagating\n"
  "tag of the youngest tagged ancestor, followed by the number of commits\n"
  "since that, and the short hash of VERSION.  Only tags applied to a single\n"
  "check-in are considered.\n"
  "\n"
  "If no VERSION is provided, describe the currently checked-out version.\n"
  "\n"
  "If VERSION and the found ancestor refer to the same commit, the last two\n"
  "components are omitted, unless --long is provided.  When no fitting tagged\n"
  "ancestor is found, show only the short hash of VERSION.\n"
  "\n"
  "Options:\n"
  "   --digits           Display so many hex digits of the hash\n"
  "                      (default: the larger of 6 and the 'hash-digit' setting)\n"
  "   -d|--dirty         Show whether there are changes to be committed\n"
  "   --long             Always show all three components\n"
  "   --match GLOB       Consider only non-propagating tags matching GLOB";
static const char zHelp425[] =
  "Usage: %fossil detach ?REPOSITORY?\n"
  "\n"
  "Change the project-code and make other changes to REPOSITORY so that\n"
  "it becomes a new and distinct child project.  After being detached,\n"
  "REPOSITORY will not longer be able to push and pull from other clones\n"
  "of the original project.  However REPOSITORY will still be able to pull\n"
  "from those other clones using the --from-parent-project option of the\n"
  "\"fossil pull\" command.\n"
  "\n"
  "This is an experts-only command. You should not use this command unless\n"
  "you fully understand what you are doing.\n"
  "\n"
  "The original use-case for this command was to create test repositories\n"
  "from real-world working repositories that could be safely altered by\n"
  "making strange commits or other changes, without having to worry that\n"
  "those test changes would leak back into the original project via an\n"
  "accidental auto-sync.";
static const char zHelp244[] =
  "Usage: %fossil diff|gdiff ?OPTIONS? ?FILE1? ?FILE2 ...?\n"
  "\n"
  "Show the difference between the current version of each of the FILEs\n"
  "specified (as they exist on disk) and that same file as it was checked-\n"
  "out.  Or if the FILE arguments are omitted, show all unsaved changes\n"
  "currently in the working check-out.  The \"gdiff\" variant means to\n"
  "use a GUI diff.\n"
  "\n"
  "The default output format is a \"unified patch\" (the same as the\n"
  "output of \"diff -u\" on most unix systems).  Many alternative formats\n"
  "are available.  A few of the more useful alternatives:\n"
  "\n"
  "   --tk              Pop up a Tcl/Tk-based GUI to show the diff\n"
  "   --by              Show a side-by-side diff in the default web browser\n"
  "   -b                Show a linear diff in the default web browser\n"
  "   -y                Show a text side-by-side diff\n"
  "   --webpage         Format output as HTML\n"
  "   --webpage -y      HTML output in the side-by-side format\n"
  "\n"
  "The \"--from VERSION\" option is used to specify the source check-in\n"
  "for the diff operation.  If not specified, the source check-in is the\n"
  "base check-in for the current check-out. Similarly, the \"--to VERSION\"\n"
  "option specifies the check-in from which the second version of the file\n"
  "or files is taken.  If there is no \"--to\" option then the (possibly edited)\n"
  "files in the current check-out are used.  The \"--checkin VERSION\" option\n"
  "shows the changes made by check-in VERSION relative to its primary parent.\n"
  "The \"--branch BRANCHNAME\" shows all the changes on the branch BRANCHNAME.\n"
  "\n"
  "With the \"--from VERSION\" option, if VERSION is actually a directory name\n"
  "(not a tag or check-in hash) then the files under that directory are used\n"
  "as the baseline for the diff.\n"
  "\n"
  "The \"-i\" command-line option forces the use of Fossil's own internal\n"
  "diff logic rather than any external diff program that might be configured\n"
  "using the \"setting\" command.  If no external diff program is configured,\n"
  "then the \"-i\" option is a no-op.  The \"-i\" option converts \"gdiff\" into\n"
  "\"diff\".\n"
  "\n"
  "The \"--diff-binary\" option enables or disables the inclusion of binary files\n"
  "when using an external diff program.\n"
  "\n"
  "The \"--binary\" option causes files matching the glob PATTERN to be treated\n"
  "as binary when considering if they should be used with the external diff\n"
  "program.  This option overrides the \"binary-glob\" setting.\n"
  "\n"
  "These commands show differences between managed files. Use the \"fossil xdiff\"\n"
  "command to see differences in unmanaged files.\n"
  "\n"
  "Options:\n"
  "  --binary PATTERN            Treat files that match the glob PATTERN\n"
  "                              as binary\n"
  "  --branch BRANCH             Show diff of all changes on BRANCH\n"
  "  --brief                     Show filenames only\n"
  "  -b|--browser                Show the diff output in a web-browser\n"
  "  --by                        Shorthand for \"--browser -y\"\n"
  "  -ci|--checkin VERSION       Show diff of all changes in VERSION\n"
  "  --command PROG              External diff program. Overrides \"diff-command\"\n"
  "  -c|--context N              Show N lines of context around each change,\n"
  "                              with negative N meaning show all content\n"
  "  --dark                      Use dark mode for the Tcl/Tk-based GUI and HTML\n"
  "  --diff-binary BOOL          Include binary files with external commands\n"
  "  --exec-abs-paths            Force absolute path names on external commands\n"
  "  --exec-rel-paths            Force relative path names on external commands\n"
  "  -r|--from VERSION           Use VERSION as the baseline for the diff, or\n"
  "                              if VERSION is a directory name, use files in\n"
  "                              that directory as the baseline.\n"
  "  -w|--ignore-all-space       Ignore white space when comparing lines\n"
  "  -i|--internal               Use internal diff logic\n"
  "  --invert                    Invert the diff\n"
  "  --json                      Output formatted as JSON\n"
  "  -n|--linenum                Show line numbers\n"
  "  -N|--new-file               Alias for --verbose\n"
  "  -s|--numstat                Show the number of added and deleted lines per\n"
  "                              file, omitting the diff. When combined\n"
  "                              with --brief, show only the total row.\n"
  "  -y|--side-by-side           Side-by-side diff\n"
  "  --strip-trailing-cr         Strip trailing CR\n"
  "  --tcl                       Tcl-formatted output used internally by --tk\n"
  "  --tclsh PATH                Tcl/Tk shell used for --tk (default: \"tclsh\")\n"
  "  --tk                        Launch a Tcl/Tk GUI for display\n"
  "  --to VERSION                Select VERSION as target for the diff\n"
  "  --undo                      Use the undo buffer as the baseline\n"
  "  --unified                   Unified diff\n"
  "  -v|--verbose                Output complete text of added or deleted files\n"
  "  -h|--versions               Show compared versions in the diff header\n"
  "  --webpage                   Format output as a stand-alone HTML webpage\n"
  "  -W|--width N                Width of lines in side-by-side diff\n"
  "  -Z|--ignore-trailing-space  Ignore changes to end-of-line whitespace";
static const char zHelp170[] =
  "If enabled, permit files that may be binary\n"
  "or that match the \"binary-glob\" setting to be used with\n"
  "external diff programs.  If disabled, skip these files.";
static const char zHelp171[] =
  "The value is an external command to run when performing a diff.\n"
  "If undefined, the internal text diff will be used.";
static const char zHelp172[] =
  "If enabled, prevent committing to this repository, as an extra precaution\n"
  "against accidentally checking in to a repository intended to be read-only.";
static const char zHelp173[] =
  "If enabled, prevent this repository from pushing from client to\n"
  "server.  This can be used as an extra precaution to prevent\n"
  "accidental pushes to a public server from a private clone.";
static const char zHelp174[] =
  "If enabled, include --dotfiles option for all compatible commands.";
static const char zHelp175[] =
  "The value is an external command that will launch the\n"
  "text editor command used for check-in comments.\n"
  "\n"
  "If this value is not set, then environment variables VISUAL and\n"
  "EDITOR are consulted, in that order.  If neither of those are set,\n"
  "then a search is made for common text editors, including\n"
  "\"notepad\", \"nano\", \"pico\", \"jove\", \"edit\", \"vi\", \"vim\", and \"ed\".\n"
  "\n"
  "If this setting is false (\"off\", \"no\", \"false\", or \"0\") then no\n"
  "text editor is used.";
static const char zHelp012[] =
  "This is the email address for the human administrator for the system.\n"
  "Abuse and trouble reports and password reset requests are send here.";
static const char zHelp020[] =
  "If this setting is not an empty string, then it becomes the argument to\n"
  "a \"List-ID:\" header that is added to all out-bound notification emails.\n"
  "A list ID is required for the generation of unsubscribe links in\n"
  "notifications.";
static const char zHelp014[] =
  "If this setting as an integer N that is 14 or greater then email\n"
  "notification is suspended for subscriptions that have a \"last contact\n"
  "time\" of more than N days ago.  The \"last contact time\" is recorded\n"
  "in the SUBSCRIBER.LASTCONTACT entry of the database.  Logging in,\n"
  "sending a forum post, editing a wiki page, changing subscription settings\n"
  "at /alerts, or visiting /renew all update the last contact time.\n"
  "If this setting is not an integer value or is less than 14 or undefined,\n"
  "then subscriptions never expire.";
static const char zHelp019[] =
  "This is the email address for the repository.  Outbound emails add\n"
  "this email address as the \"From:\" field.";
static const char zHelp016[] =
  "This is a command to which outbound email content is piped when the\n"
  "email-send-method is set to \"pipe\".  The command must extract\n"
  "recipient, sender, subject, and all other relevant information\n"
  "from the email header.";
static const char zHelp018[] =
  "This is an SQLite database file into which outbound emails are written\n"
  "if the email-send-method is set to \"db\".";
static const char zHelp017[] =
  "This is a directory into which outbound emails are written as individual\n"
  "files if the email-send-method is set to \"dir\".";
static const char zHelp015[] =
  "Determine the method used to send email.  Allowed values are\n"
  "\"off\", \"relay\", \"pipe\", \"dir\", \"db\", and \"stdout\".  The \"off\" value\n"
  "means no email is ever sent.  The \"relay\" value means emails are sent\n"
  "to an Mail Sending Agent using SMTP located at email-send-relayhost.\n"
  "The \"pipe\" value means email messages are piped into a command\n"
  "determined by the email-send-command setting. The \"dir\" value means\n"
  "emails are written to individual files in a directory determined\n"
  "by the email-send-dir setting.  The \"db\" value means that emails\n"
  "are added to an SQLite database named by the* email-send-db setting.\n"
  "The \"stdout\" value writes email text to standard output, for debugging.";
static const char zHelp021[] =
  "This is the hostname and TCP port to which output email messages\n"
  "are sent when email-send-method is \"relay\".  There should be an\n"
  "SMTP server configured as a Mail Submission Agent listening on the\n"
  "designated host and port and all times.";
static const char zHelp013[] =
  "This is a short name used to identifies the repository in the Subject:\n"
  "line of email alerts. Traditionally this name is included in square\n"
  "brackets. Examples: \"[fossil-src]\", \"[sqlite-src]\".";
static const char zHelp011[] =
  "This is the main URL used to access the repository for cloning or\n"
  "syncing or for operating the web interface.  It is also\n"
  "the basename for hyperlinks included in email alert text.\n"
  "Omit the trailing \"/\".  If the repository is not intended to be\n"
  "a long-running server and will not be sending email notifications,\n"
  "then leave this setting blank.";
static const char zHelp176[] =
  "The value is a list of pathnames parsed according to the same rules as\n"
  "the *-glob settings.  On update and checkout commands, if no directory\n"
  "exists with that name, an empty directory will be created, even if\n"
  "it must create one or more parent directories.";
static const char zHelp177[] =
  "The VALUE of this setting is a list of GLOB patterns matching files that\n"
  "the \"commit\" command will ignore when issuing warnings about text files\n"
  "that may use another encoding than ASCII or UTF-8. Set to \"*\" to disable\n"
  "encoding checking.  Example: *.md,*.txt  The parsing rules are complex;\n"
  "see https://fossil-scm.org/home/doc/trunk/www/globs.md#syntax";
#if defined(FOSSIL_ENABLE_EXEC_REL_PATHS)
static const char zHelp178[] =
  "When executing certain external commands (e.g. diff and\n"
  "gdiff), use relative paths.";
#endif
#if !defined(FOSSIL_ENABLE_EXEC_REL_PATHS)
static const char zHelp179[] =
  "When executing certain external commands (e.g. diff and\n"
  "gdiff), use relative paths.";
#endif
static const char zHelp271[] =
  "Usage: %fossil export --git [REPOSITORY]\n"
  "\n"
  "This command is deprecated.  Use \"fossil git export\" instead.";
static const char zHelp103[] =
  "Usage: %fossil extras ?OPTIONS? ?PATH1 ...?\n"
  "\n"
  "Print a list of all files in the source tree that are not part of the\n"
  "current check-out. See also the \"clean\" command. If paths are specified,\n"
  "only files in the given directories will be listed.\n"
  "\n"
  "Files and subdirectories whose names begin with \".\" are normally\n"
  "ignored but can be included by adding the --dotfiles option.\n"
  "\n"
  "Files whose names match any of the glob patterns in the \"ignore-glob\"\n"
  "setting are ignored. This setting can be overridden by the --ignore\n"
  "option, whose CSG argument is a comma-separated list of glob patterns.\n"
  "\n"
  "Pathnames are displayed according to the \"relative-paths\" setting,\n"
  "unless overridden by the --abs-paths or --rel-paths options.\n"
  "\n"
  "Options:\n"
  "   --abs-paths             Display absolute pathnames\n"
  "   --case-sensitive BOOL   Override case-sensitive setting\n"
  "   --dotfiles              Include files beginning with a dot (\".\")\n"
  "   --header                Identify the repository if there are extras\n"
  "   --ignore CSG            Ignore files matching patterns from the argument\n"
  "   --rel-paths             Display pathnames relative to the current working\n"
  "                           directory\n"
  "   --tree                  Show output in the tree format\n"
  "\n"
  "See also: [[changes]], [[clean]], [[status]]";
static const char zHelp237[] =
  "Usage: %fossil fdiff [options] HASH1 HASH2\n"
  "\n"
  "Compute a diff between two artifacts in a repository (either a repository\n"
  "identified by the \"-R FILENAME\" option, or the repository that contains\n"
  "the working directory).\n"
  "\n"
  "All of the usual diff formatting options (--tk, --by, -c N, etc.) apply.\n"
  "See the \"diff\" command for a full list of command-line options.";
static const char zHelp180[] =
  "The VALUE of this setting is a list of GLOB patterns matching files\n"
  "which are allowed to be edited using the /fileedit page.  An empty list\n"
  "suppresses the feature.  Example: *.md,*.txt  The parsing rules are\n"
  "complex; see https://fossil-scm.org/home/doc/trunk/www/globs.md#syntax\n"
  "Note that /fileedit cannot edit binary files, so the list should not\n"
  "contain any globs for, e.g., images or PDFs.";
static const char zHelp294[] =
  "Usage: %fossil finfo ?OPTIONS? FILENAME\n"
  "\n"
  "Print the complete change history for a single file going backwards\n"
  "in time.  The default mode is -l.\n"
  "\n"
  "For the -l|--log mode: If \"-b|--brief\" is specified one line per revision\n"
  "is printed, otherwise the full comment is printed.  The \"-n|--limit N\"\n"
  "and \"--offset P\" options limits the output to the first N changes\n"
  "after skipping P changes.\n"
  "\n"
  "The -i mode will print various facts about FILENAME, including its\n"
  "hash and the check-in and time when the current version of the file\n"
  "was created.  Use -v for additional information.  Add the -r VERSION\n"
  "option to see similar information about the same file for the check-in\n"
  "specified by VERSION.\n"
  "\n"
  "The -s mode prints the status as <status> <revision>.  This is\n"
  "a quick status and does not check for up-to-date-ness of the file.\n"
  "\n"
  "In the -p mode, there's an optional flag \"-r|--revision REVISION\".\n"
  "The specified version (or the latest checked-out version) is printed\n"
  "to stdout.  The -p mode is another form of the \"cat\" command.\n"
  "\n"
  "Options:\n"
  "  -b|--brief           Display a brief (one line / revision) summary\n"
  "  --case-sensitive B   Enable or disable case-sensitive filenames.  B is a\n"
  "                         boolean: \"yes\", \"no\", \"true\", \"false\", etc.\n"
  "  -i|--id              Print the artifact ID\n"
  "  -l|--log             Select log mode (the default)\n"
  "  -n|--limit N         Display the first N changes (default unlimited).\n"
  "                         N less than 0 means no limit.\n"
  "  --offset P           Skip P changes\n"
  "  -p|--print           Select print mode\n"
  "  -r|--revision R      Print the given revision (or ckout, if none is given)\n"
  "                         to stdout (only in print mode)\n"
  "  -s|--status          Select status mode (print a status indicator for FILE)\n"
  "  -v|--verbose         On the -i option, show all check-ins that use the\n"
  "                         file, not just the earliest check-in\n"
  "  -W|--width N         Width of lines (default is to auto-detect). Must be\n"
  "                         more than 22 or else 0 to indicate no limit.\n"
  "\n"
  "See also: [[artifact]], [[cat]], [[descendants]], [[info]], [[leaves]]";
static const char zHelp181[] =
  "If enabled on a client, new delta manifests are prohibited on\n"
  "commits.  If enabled on a server, whenever a client attempts\n"
  "to obtain a check-in lock during auto-sync, the server will\n"
  "send the \"pragma avoid-delta-manifests\" statement in its reply,\n"
  "which will cause the client to avoid generating a delta\n"
  "manifest.";
static const char zHelp308[] =
  "If true, forum moderators may close/re-open forum posts, and reply\n"
  "to closed posts. If false, only administrators may do so. Note that\n"
  "this only affects the forum web UI, not post-closing tags which\n"
  "arrive via the command-line or from synchronization with a remote.";
static const char zHelp309[] =
  "This is the name or \"title\" of the Forum for this repository.  The\n"
  "default is just \"Forum\".  But in some setups, admins might want to\n"
  "change it to \"Developer Forum\" or \"User Forum\" or whatever other name\n"
  "seems more appropriate for the particular usage.";
static const char zHelp456[] =
  "Usage: fossil fts-config ?SUBCOMMAND? ?ARGUMENT?\n"
  "\n"
  "The \"fossil fts-config\" command configures the full-text search capabilities\n"
  "of the repository.  Subcommands:\n"
  "\n"
  "   reindex            Rebuild the search index.  This is a no-op if\n"
  "                      index search is disabled\n"
  "\n"
  "   index (on|off)     Turn the search index on or off\n"
  "\n"
  "   enable TYPE ..     Enable search for TYPE.  TYPE is one of:\n"
  "                      check-in, document, ticket, wiki, technote, \n"
  "                      forum, help, or all\n"
  "\n"
  "   disable TYPE ...   Disable search for TYPE\n"
  "\n"
  "   tokenizer VALUE    Select a tokenizer for indexed search. VALUE\n"
  "                      may be one of (porter, on, off, trigram, unicode61),\n"
  "                      and \"on\" is equivalent to \"porter\". Unindexed\n"
  "                      search never uses tokenization or stemming.\n"
  "\n"
  "The current search settings are displayed after any changes are applied.\n"
  "Run this command with no arguments to simply see the settings.";
static const char zHelp314[] =
  "Usage: %fossil fusefs [--debug] DIRECTORY\n"
  "\n"
  "This command uses the Fuse Filesystem (FuseFS) to mount a directory\n"
  "at DIRECTORY that contains the content of all check-ins in the\n"
  "repository.  The names of files are DIRECTORY/checkins/VERSION/PATH\n"
  "where DIRECTORY is the root of the mount, VERSION is any valid\n"
  "check-in name (examples: \"trunk\" or \"tip\" or a tag or any unique\n"
  "prefix of an artifact hash, etc) and PATH is the pathname of the file in\n"
  "the check-in.  If DIRECTORY does not exist, then an attempt is made\n"
  "to create it.\n"
  "\n"
  "The DIRECTORY/checkins directory is not searchable so one cannot\n"
  "do \"ls DIRECTORY/checkins\" to get a listing of all possible check-in\n"
  "names.  There are countless variations on check-in names and it is\n"
  "impractical to list them all.  But all other directories are searchable\n"
  "and so the \"ls\" command will work everywhere else in the fusefs\n"
  "file hierarchy.\n"
  "\n"
  "The FuseFS typically only works on Linux, and then only on Linux\n"
  "systems that have the right kernel drivers and have installed the\n"
  "appropriate support libraries.\n"
  "\n"
  "After stopping the \"fossil fusefs\" command, it might also be necessary\n"
  "to run \"fusermount -u DIRECTORY\" to reset the FuseFS before using it\n"
  "again.";
static const char zHelp182[] =
  "The value is an external command to run when performing a graphical\n"
  "diff. If undefined, a --tk diff is done if commands \"tclsh\" and \"wish\"\n"
  "are on PATH, or a --by diff is done if \"tclsh\" or \"wish\" are unavailable.";
static const char zHelp113[] =
  "Usage: %fossil get URL ?VERSION? ?OPTIONS?\n"
  "\n"
  "Download a single check-in from a remote repository named URL and\n"
  "unpack all of the files into a subdirectory.  The specific check-in\n"
  "to download is identified by VERSION.  If VERSION is omitted, the\n"
  "latest trunk check-in is used.  The URL can be a traditional \"https:\",\n"
  "\"ssh:\", or \"file:\" URL similar to the examples shown below, or it can\n"
  "be the name of a local repository/\n"
  "\n"
  "   *   https://domain.com/project\n"
  "   *   ssh://my-server/project.fossil\n"
  "   *   file:/home/user/Fossils/project.fossil\n"
  "\n"
  "This command works by downloading an SQL archive of the requested\n"
  "check-in and then extracting all the files from the archive.\n"
  "\n"
  "Options:\n"
  "  --dest DIRECTORY   Extract files into DIRECTORY.  Use \"--dest .\" to\n"
  "                     extract into the local directory.  If this option is\n"
  "                     omitted, Fossil invents a subdirectory name derived\n"
  "                     from base filename in the URL and from the VERSION.\n"
  "  -f|--force         Overwrite existing files\n"
  "  --list             List all the files that would have been checked\n"
  "                     out but do not actually write anything to the\n"
  "                     filesystem.\n"
  "  --sqlar ARCHIVE    Leave the check-out in an SQL-archive named ARCHIVE\n"
  "                     rather than unpacking into separate files.\n"
  "  -v|--verbose       Show all files as they are extracted";
static const char zHelp274[] =
  "Usage: %fossil git SUBCOMMAND\n"
  "\n"
  "Do incremental import or export operations between Fossil and Git.\n"
  "Subcommands:\n"
  "\n"
  "> fossil git export [MIRROR] [OPTIONS]\n"
  "\n"
  "      Write content from the Fossil repository into the Git repository\n"
  "      in directory MIRROR.  The Git repository is created if it does not\n"
  "      already exist.  If the Git repository does already exist, then\n"
  "      new content added to fossil since the previous export is appended.\n"
  "\n"
  "      Repeat this command whenever new check-ins are added to the Fossil\n"
  "      repository in order to reflect those changes into the mirror.  If\n"
  "      the MIRROR option is omitted, the repository from the previous\n"
  "      invocation is used.\n"
  "\n"
  "      The MIRROR directory will contain a subdirectory named\n"
  "      \".mirror_state\" that contains information that Fossil needs to\n"
  "      do incremental exports.  Do not attempt to manage or edit the files\n"
  "      in that directory since doing so can disrupt future incremental\n"
  "      exports.\n"
  "\n"
  "      Options:\n"
  "        --autopush URL      Automatically do a 'git push' to URL.  The\n"
  "                            URL is remembered and used on subsequent exports\n"
  "                            to the same repository.  Or if URL is \"off\" the\n"
  "                            auto-push mechanism is disabled\n"
  "        --debug FILE        Write fast-export text to FILE rather than\n"
  "                            piping it into \"git fast-import\"\n"
  "        -f|--force          Do the export even if nothing has changed\n"
  "        --if-mirrored       No-op if the mirror does not already exist\n"
  "        --limit N           Add no more than N new check-ins to MIRROR.\n"
  "                            Useful for debugging\n"
  "        --mainbranch NAME   Use NAME as the name of the main branch in Git.\n"
  "                            The \"trunk\" branch of the Fossil repository is\n"
  "                            mapped into this name.  \"master\" is used if\n"
  "                            this option is omitted.\n"
  "        -q|--quiet          Reduce output. Repeat for even less output.\n"
  "        -v|--verbose        More output\n"
  "\n"
  "> fossil git import MIRROR\n"
  "\n"
  "      TBD...\n"
  "\n"
  "> fossil git status\n"
  "\n"
  "      Show the status of the current Git mirror, if there is one.\n"
  "\n"
  "        -q|--quiet         No output if there is nothing to report";
static const char zHelp183[] =
  "The value is a graphical merge conflict resolver command operating\n"
  "on four files.  Examples:\n"
  "\n"
  "    kdiff3 \"%baseline\" \"%original\" \"%merge\" -o \"%output\"\n"
  "    xxdiff \"%original\" \"%baseline\" \"%merge\" -M \"%output\"\n"
  "    meld \"%baseline\" \"%original\" \"%merge\" --output \"%output\"";
static const char zHelp434[] =
  "Usage: %fossil grep [OPTIONS] PATTERN FILENAME ...\n"
  "\n"
  "Attempt to match the given POSIX extended regular expression PATTERN over\n"
  "all historic versions of FILENAME.  The search begins with the most recent\n"
  "version of the file and moves backwards in time.  Multiple FILENAMEs can\n"
  "be specified, in which case all named files are searched in reverse\n"
  "chronological order.\n"
  "\n"
  "For details of the supported regular expression dialect, see\n"
  "https://fossil-scm.org/fossil/doc/trunk/www/grep.md\n"
  "\n"
  "Options:\n"
  "    -c|--count                 Suppress normal output; instead print a count\n"
  "                               of the number of matching files\n"
  "    -i|--ignore-case           Ignore case\n"
  "    -l|--files-with-matches    List only hash for each match\n"
  "    --once                     Stop searching after the first match\n"
  "    -s|--no-messages           Suppress error messages about nonexistent\n"
  "                               or unreadable files\n"
  "    -v|--invert-match          Invert the sense of matching.  Show only\n"
  "                               files that have no matches. Implies -l\n"
  "    --verbose                  Show each file as it is analyzed";
static const char zHelp184[] =
  "The number of hexadecimal digits of the SHA3 hash to display.";
static const char zHelp318[] =
  "Usage: fossil hash-policy ?NEW-POLICY?\n"
  "\n"
  "Query or set the hash policy for the current repository.  Available hash\n"
  "policies are as follows:\n"
  "\n"
  "  sha1              New artifact names are created using SHA1\n"
  "\n"
  "  auto              New artifact names are created using SHA1, but\n"
  "                    automatically change the policy to \"sha3\" when\n"
  "                    any SHA3 artifact enters the repository.\n"
  "\n"
  "  sha3              New artifact names are created using SHA3, but\n"
  "                    older artifacts with SHA1 names may be reused.\n"
  "\n"
  "  sha3-only         Use only SHA3 artifact names.  Do not reuse legacy\n"
  "                    SHA1 names.\n"
  "\n"
  "  shun-sha1         Shun any SHA1 artifacts received by sync operations\n"
  "                    other than clones.  Older legacy SHA1 artifacts are\n"
  "                    allowed during a clone.\n"
  "\n"
  "The default hash policy for existing repositories is \"auto\", which will\n"
  "immediately promote to \"sha3\" if the repository contains one or more\n"
  "artifacts with SHA3 names.  The default hash policy for new repositories\n"
  "is \"shun-sha1\".";
static const char zHelp254[] =
  "Usage: %fossil help [OPTIONS] [TOPIC] [SUBCOMMAND]\n"
  "\n"
  "Display information on how to use TOPIC, which may be a command, webpage, or\n"
  "setting.  Webpage names begin with \"/\".  If TOPIC is omitted, a list of\n"
  "topics is returned.  If there is an extra argument after TOPIC, it is\n"
  "the name of a subcommand, in which case only the help text for that one\n"
  "subcommand is shown.\n"
  "\n"
  "The following options can be used when TOPIC is omitted:\n"
  "\n"
  "   -a|--all          List both common and auxiliary commands\n"
  "   -e|--everything   List all help on all topics\n"
  "   -f|--full         List full set of commands (including auxiliary\n"
  "                     and unsupported \"test\" commands), options,\n"
  "                     settings, and web pages\n"
  "   -o|--options      List command-line options common to all commands\n"
  "   -s|--setting      List setting names\n"
  "   -t|--test         List unsupported \"test\" commands\n"
  "   -v|--verbose      List both names and help text\n"
  "   -x|--aux          List only auxiliary commands\n"
  "   -w|--www          List all web pages\n"
  "\n"
  "These options can be used when TOPIC is present:\n"
  "\n"
  "   -c|--commands     Restrict TOPIC search to commands\n"
  "   -h|--html         Format output as HTML rather than plain text\n"
  "   -o|--options      Show command-line options for TOPIC\n"
  "   --raw             Output raw, unformatted help text\n"
  "   -u|--usage        Show a succinct usage summary, not full help text\n"
  "\n"
  "See also:  [[usage]], [[options]], [[search]] with the -h option";
static const char zHelp320[] =
  "Usage: %fossil hook COMMAND ...\n"
  "\n"
  "Commands include:\n"
  "\n"
  "> fossil hook add --command COMMAND --type TYPE --sequence NUMBER\n"
  "\n"
  "       Create a new hook.  The --command and --type arguments are\n"
  "       required.  --sequence is optional.\n"
  "\n"
  "> fossil hook delete ID ...\n"
  "\n"
  "       Delete one or more hooks by their IDs.  ID can be \"all\"\n"
  "       to delete all hooks.  Caution:  There is no \"undo\" for\n"
  "       this operation.  Deleted hooks are permanently lost.\n"
  "\n"
  "> fossil hook edit --command COMMAND --type TYPE --sequence NUMBER ID ...\n"
  "\n"
  "       Make changes to one or more existing hooks.  The ID argument\n"
  "       is either a hook-id, or a list of hook-ids, or the keyword\n"
  "       \"all\".  For example, to disable hook number 2, use:\n"
  "\n"
  "           fossil hook edit --type disabled 2\n"
  "\n"
  "> fossil hook list\n"
  "\n"
  "       Show all current hooks\n"
  "\n"
  "> fossil hook status\n"
  "\n"
  "       Print the values of CONFIG table entries that are relevant to\n"
  "       hook processing.  Used for debugging.\n"
  "\n"
  "> fossil hook test [OPTIONS] ID\n"
  "\n"
  "       Run the hook script given by ID for testing purposes.\n"
  "       Options:\n"
  "\n"
  "           --dry-run          Print the script on stdout rather than run it\n"
  "           --base-rcvid N     Pretend that the hook-last-rcvid value is N\n"
  "           --new-rcvid M      Pretend that the last rcvid value is M\n"
  "           --aux-file NAME    NAME is substituted for %A in the script\n"
  "\n"
  "       The --base-rcvid and --new-rcvid options are silently ignored if\n"
  "       the hook type is not \"after-receive\".  The default values for\n"
  "       --base-rcvid and --new-rcvid cause the last receive to be processed.";
static const char zHelp319[] =
  "The \"hooks\" setting contains JSON that describes all defined\n"
  "hooks.  The value is an array of objects.  Each object describes\n"
  "a single hook.  Example:\n"
  "\n"
  "\n"
  "   {\n"
  "   \"type\": \"after-receive\",  // type of hook\n"
  "   \"cmd\": \"command-to-run\",  // command to run\n"
  "   \"seq\": 50                 // run in this order\n"
  "   }";
static const char zHelp375[] =
  "Usage: %fossil http ?REPOSITORY? ?OPTIONS?\n"
  "\n"
  "Handle a single HTTP request appearing on stdin.  The resulting webpage\n"
  "is delivered on stdout.  This method is used to launch an HTTP request\n"
  "handler from inetd, for example.  The REPOSITORY argument is the name of\n"
  "the repository.\n"
  "\n"
  "If REPOSITORY is a directory that contains one or more repositories,\n"
  "either directly in REPOSITORY itself or in subdirectories, and\n"
  "with names of the form \"*.fossil\" then a prefix of the URL pathname\n"
  "selects from among the various repositories.  If the pathname does\n"
  "not select a valid repository and the --notfound option is available,\n"
  "then the server redirects (HTTP code 302) to the URL of --notfound.\n"
  "When REPOSITORY is a directory, the pathname must contain only\n"
  "alphanumerics, \"_\", \"/\", \"-\" and \".\" and no \"-\" may occur after a \"/\"\n"
  "and every \".\" must be surrounded on both sides by alphanumerics or else\n"
  "a 404 error is returned.  Static content files in the directory are\n"
  "returned if they match comma-separated GLOB pattern specified by --files\n"
  "and do not match \"*.fossil*\" and have a well-known suffix.\n"
  "\n"
  "Options:\n"
  "  --acme              Deliver files from the \".well-known\" subdirectory\n"
  "  --baseurl URL       Base URL (useful with reverse proxies)\n"
  "  --cert FILE         Use TLS (HTTPS) encryption with the certificate (the\n"
  "                      fullchain.pem) taken from FILE.\n"
  "  --chroot DIR        Use directory for chroot instead of repository path.\n"
  "  --ckout-alias N     Treat URIs of the form /doc/N/... as if they were\n"
  "                         /doc/ckout/...\n"
  "  --extroot DIR       Document root for the /ext extension mechanism\n"
  "  --files GLOB        Comma-separated glob patterns for static files to serve\n"
  "  --host NAME         DNS Hostname of the server\n"
  "  --https             The HTTP request originated from https but has already\n"
  "                      been decoded by a reverse proxy.  Hence, URLs created\n"
  "                      by Fossil should use \"https:\" rather than \"http:\".\n"
  "  --in FILE           Take input from FILE instead of standard input\n"
  "  --ipaddr ADDR       Assume the request comes from the given IP address\n"
  "  --jsmode MODE       Determine how JavaScript is delivered with pages.\n"
  "                      Mode can be one of:\n"
  "                         inline       All JavaScript is inserted inline at\n"
  "                                      one or more points in the HTML file.\n"
  "                         separate     Separate HTTP requests are made for\n"
  "                                      each JavaScript file.\n"
  "                         bundled      Groups JavaScript files into one or\n"
  "                                      more bundled requests which\n"
  "                                      concatenate scripts together.\n"
  "                      Depending on the needs of any given page, inline\n"
  "                      and bundled modes might result in a single\n"
  "                      amalgamated script or several, but both approaches\n"
  "                      result in fewer HTTP requests than the separate mode.\n"
  "  --localauth         Connections from localhost are given \"setup\"\n"
  "                      privileges without having to log in\n"
  "  --mainmenu FILE     Override the mainmenu config setting with the contents\n"
  "                      of the given file\n"
  "  --nocompress        Do not compress HTTP replies\n"
  "  --nodelay           Omit backoffice processing if it would delay\n"
  "                      process exit\n"
  "  --nojail            Drop root privilege but do not enter the chroot jail\n"
  "  --nossl             Do not do http: to https: redirects, regardless of\n"
  "                      the redirect-to-https setting.\n"
  "  --notfound URL      Use URL as the \"HTTP 404, object not found\" page\n"
  "  --out FILE          Write the HTTP reply to FILE instead of to\n"
  "                      standard output\n"
  "  --pkey FILE         Read the private key used for TLS from FILE\n"
  "  --repolist          If REPOSITORY is directory, URL \"/\" lists all repos\n"
  "  --scgi              Interpret input as SCGI rather than HTTP\n"
  "  --skin LABEL        Use override skin LABEL. Use an empty string (\"\")\n"
  "                      to force use of the current local skin config.\n"
  "  --th-trace          Trace TH1 execution (for debugging purposes)\n"
  "  --usepidkey         Use saved encryption key from parent process. This is\n"
  "                      only necessary when using SEE on Windows or Linux.\n"
  "\n"
  "See also: [[cgi]], [[server]], [[winsrv]] [Windows only]";
static const char zHelp185[] =
  "The default TCP/IP port number to use by the \"server\"\n"
  "and \"ui\" commands.";
static const char zHelp186[] =
  "If true, then the Fossil web server will redirect unencrypted\n"
  "login screen requests to HTTPS.";
static const char zHelp187[] =
  "The VALUE of this setting is a list of GLOB patterns matching files that\n"
  "the \"add\", \"addremove\", \"clean\", and \"extras\" commands will ignore.\n"
  "Example: *.log,notes.txt  The parsing rules are complex; see\n"
  "https://fossil-scm.org/home/doc/trunk/www/globs.md#syntax";
static const char zHelp326[] =
  "Usage: %fossil import ?--git? ?OPTIONS? NEW-REPOSITORY ?INPUT-FILE?\n"
  "   or: %fossil import --svn ?OPTIONS? NEW-REPOSITORY ?INPUT-FILE?\n"
  "\n"
  "Read interchange format generated by another VCS and use it to\n"
  "construct a new Fossil repository named by the NEW-REPOSITORY\n"
  "argument.  If no input file is supplied the interchange format\n"
  "data is read from standard input.\n"
  "\n"
  "The following formats are currently understood by this command\n"
  "\n"
  "  --git        Import from the git-fast-export file format (default)\n"
  "               Options:\n"
  "                 --import-marks  FILE Restore marks table from FILE\n"
  "                 --export-marks  FILE Save marks table to FILE\n"
  "                 --rename-master NAME Renames the master branch to NAME\n"
  "                 --use-author    Uses author as the committer\n"
  "                 --attribute     \"EMAIL USER\" Attribute commits to USER\n"
  "                                 instead of Git committer EMAIL address\n"
  "\n"
  "  --svn        Import from the svnadmin-dump file format.  The default\n"
  "               behaviour (unless overridden by --flat) is to treat 3\n"
  "               folders in the SVN root as special, following the\n"
  "               common layout of SVN repositories.  These are (by\n"
  "               default) trunk/, branches/ and tags/.  The SVN --deltas\n"
  "               format is supported but not required.\n"
  "               Options:\n"
  "                 --trunk FOLDER     Name of trunk folder\n"
  "                 --branches FOLDER  Name of branches folder\n"
  "                 --tags FOLDER      Name of tags folder\n"
  "                 --base PATH        Path to project root in repository\n"
  "                 --flat             The whole dump is a single branch\n"
  "                 --rev-tags         Tag each revision, implied by -i\n"
  "                 --no-rev-tags      Disables tagging effect of -i\n"
  "                 --rename-rev PAT   Rev tag names, default \"svn-rev-%\"\n"
  "                 --ignore-tree DIR  Ignores subtree rooted at DIR\n"
  "\n"
  "Common Options:\n"
  "  -i|--incremental     Allow importing into an existing repository\n"
  "  -f|--force           Overwrite repository if already exists\n"
  "  -q|--quiet           Omit progress output\n"
  "  --no-rebuild         Skip the \"rebuilding metadata\" step\n"
  "  --no-vacuum          Skip the final VACUUM of the database file\n"
  "  --rename-trunk NAME  Use NAME as name of imported trunk branch\n"
  "  --rename-branch PAT  Rename all branch names using PAT pattern\n"
  "  --rename-tag PAT     Rename all tag names using PAT pattern\n"
  "  -A|--admin-user NAME Use NAME for the admin user\n"
  "\n"
  "The --incremental option allows an existing repository to be extended\n"
  "with new content.  The --rename-* options may be useful to avoid name\n"
  "conflicts when using the --incremental option. The --admin-user\n"
  "option is ignored if --incremental is specified.\n"
  "\n"
  "The argument to --rename-* contains one \"%\" character to be replaced\n"
  "with the original name.  For example, \"--rename-tag svn-%-tag\" renames\n"
  "the tag called \"release\" to \"svn-release-tag\".\n"
  "\n"
  "--ignore-tree is useful for importing Subversion repositories which\n"
  "move branches to subdirectories of \"branches/deleted\" instead of\n"
  "deleting them.  It can be supplied multiple times if necessary.\n"
  "\n"
  "The --attribute option takes a quoted string argument comprised of a\n"
  "Git committer email and the username to be attributed to corresponding\n"
  "check-ins in the Fossil repository. This option can be repeated. For\n"
  "example, --attribute \"drh@sqlite.org drh\" --attribute \"xyz@abc.net X\".\n"
  "Attributions are persisted to the repository so that subsequent\n"
  "'fossil git export' operations attribute Fossil commits to corresponding\n"
  "'Git Committer <git@committer.com>' users, and incremental imports with\n"
  "'fossil import --git --incremental' use previous --attribute records.\n"
  "\n"
  "See also: export";
static const char zHelp327[] =
  "Usage: %fossil info ?VERSION | REPOSITORY_FILENAME? ?OPTIONS?\n"
  "\n"
  "With no arguments, provide information about the current tree.\n"
  "If an argument is specified, provide information about the object\n"
  "in the repository of the current tree that the argument refers\n"
  "to.  Or if the argument is the name of a repository, show\n"
  "information about that repository.\n"
  "\n"
  "If the argument is a repository name, then the --verbose option shows\n"
  "all known check-out locations for that repository and all URLs used\n"
  "to access the repository.  The --verbose is (currently) a no-op if\n"
  "the argument is the name of an object within the repository.\n"
  "\n"
  "Use the \"finfo\" command to get information about a specific\n"
  "file in a check-out.\n"
  "\n"
  "Options:\n"
  "   -R|--repository REPO       Extract info from repository REPO\n"
  "   -v|--verbose               Show extra information about repositories\n"
  "\n"
  "See also: [[annotate]], [[artifact]], [[finfo]], [[timeline]]";
static const char zHelp351[] =
  "Usage: %fossil interwiki COMMAND ...\n"
  "\n"
  "Manage the \"intermap\" that defines the mapping from interwiki tags\n"
  "to complete URLs for interwiki links.\n"
  "\n"
  "> fossil interwiki delete TAG ...\n"
  "\n"
  "       Delete one or more interwiki maps.\n"
  "\n"
  "> fossil interwiki edit TAG --base URL --hash PATH --wiki PATH\n"
  "\n"
  "       Create an interwiki referenced call TAG.  The base URL is\n"
  "       the --base option, which is required.  The --hash and --wiki\n"
  "       paths are optional.  The TAG must be lower-case alphanumeric\n"
  "       and must be unique.  A new entry is created if it does not\n"
  "       already exit.\n"
  "\n"
  "> fossil interwiki list\n"
  "\n"
  "       Show all interwiki mappings.";
#ifdef FOSSIL_ENABLE_JSON
static const char zHelp354[] =
  "Usage: %fossil json SUBCOMMAND ?OPTIONS?\n"
  "\n"
  "In CLI mode, the -R REPO common option is supported. Due to limitations\n"
  "in the argument dispatching code, any -FLAGS must come after the final\n"
  "sub- (or subsub-) command.\n"
  "\n"
  "The -json-input FILE option can be used to read JSON data and process\n"
  "it like the HTTP interface would. For example:\n"
  "\n"
  "  %fossil json -json-input my.json\n"
  "\n"
  "The commands include:\n"
  "\n"
  "  anonymousPassword\n"
  "  artifact\n"
  "  branch\n"
  "  cap\n"
  "  config\n"
  "  diff\n"
  "  dir\n"
  "  g\n"
  "  login\n"
  "  logout\n"
  "  query\n"
  "  rebuild\n"
  "  report\n"
  "  resultCodes\n"
  "  stat\n"
  "  tag\n"
  "  timeline\n"
  "  user\n"
  "  version (alias: HAI)\n"
  "  whoami\n"
  "  wiki\n"
  "\n"
  "Run '%fossil json' without any subcommand to see the full list (but be\n"
  "aware that some listed might not yet be fully implemented).";
#endif
static const char zHelp188[] =
  "The VALUE of this setting is a list of GLOB patterns matching files that\n"
  "the \"clean\" command must not delete.  Example: build/precious.exe\n"
  "The parsing rules are complex; see\n"
  "https://fossil-scm.org/home/doc/trunk/www/globs.md#syntax";
static const char zHelp219[] =
  "Fossil considers any file whose size is greater than this value\n"
  "to be a \"large file\".  Fossil might issue warnings if you try to\n"
  "\"add\" or \"commit\" a \"large file\".  Set this value to 0 or less\n"
  "to disable all such warnings.";
static const char zHelp231[] =
  "Usage: %fossil leaves ?OPTIONS?\n"
  "\n"
  "Find leaves of all branches.  By default show only open leaves.\n"
  "The -a|--all flag causes all leaves (closed and open) to be shown.\n"
  "The -c|--closed flag shows only closed leaves.\n"
  "\n"
  "The --recompute flag causes the content of the \"leaf\" table in the\n"
  "repository database to be recomputed.\n"
  "\n"
  "Options:\n"
  "  -a|--all         Show ALL leaves\n"
  "  --bybranch       Order output by branch name\n"
  "  -c|--closed      Show only closed leaves\n"
  "  -m|--multiple    Show only cases with multiple leaves on a single branch\n"
  "  --recompute      Recompute the \"leaf\" table in the repository DB\n"
  "  -W|--width N     Width of lines (default is to auto-detect). Must be\n"
  "                   more than 39 or else 0 no limit, resulting in a single\n"
  "                   line per entry.\n"
  "\n"
  "See also: [[descendants]], [[finfo]], [[info]], [[branch]]";
static const char zHelp189[] =
  "If enabled, require that HTTP connections from the loopback\n"
  "address (127.0.0.1) be authenticated by password.  If false,\n"
  "some HTTP requests might be granted full \"Setup\" user\n"
  "privileges without having to present login credentials.\n"
  "This mechanism allows the \"fossil ui\" command to provide\n"
  "full access to the repository without requiring the user to\n"
  "log in first.\n"
  "\n"
  "In order for full \"Setup\" privilege to be granted without a\n"
  "login, the following conditions must be met:\n"
  "\n"
  "  (1)  This setting (\"localauth\") must be off\n"
  "  (2)  The HTTP request arrive over the loopback TCP/IP\n"
  "       address (127.0.01) or else via SSH.\n"
  "  (3)  The request must be HTTP, not HTTPS. (This\n"
  "       restriction is designed to help prevent accidentally\n"
  "       providing \"Setup\" privileges to requests arriving\n"
  "       over a reverse proxy.)\n"
  "  (4)  The command that launched the fossil server must be\n"
  "       one of the following:\n"
  "       (a) \"fossil ui\"\n"
  "       (b) \"fossil server\" with the --localauth option\n"
  "       (c) \"fossil http\" with the --localauth option\n"
  "       (d) CGI with the \"localauth\" setting in the cgi script.\n"
  "\n"
  "For maximum security, set \"localauth\" to 1.  However, because\n"
  "of the other restrictions (2) through (4), it should be safe\n"
  "to leave \"localauth\" set to 0 in most installations, and\n"
  "especially on cloned repositories on workstations. Leaving\n"
  "\"localauth\" at 0 makes the \"fossil ui\" command more convenient\n"
  "to use.";
static const char zHelp190[] =
  "This is the number of seconds that a check-in lock will be held on\n"
  "the server before the lock expires.  The default is a 60-second delay.\n"
  "Set this value to zero to disable the check-in lock mechanism.\n"
  "\n"
  "This value should be set on the server to which users auto-sync\n"
  "their work.  This setting has no effect on client repositories.  The\n"
  "check-in lock mechanism is only effective if all users are auto-syncing\n"
  "to the same server.\n"
  "\n"
  "Check-in locks are an advisory mechanism designed to help prevent\n"
  "accidental forks due to a check-in race in installations where many\n"
  "users are  committing to the same branch and auto-sync is enabled.\n"
  "As forks are harmless, there is no danger in disabling this mechanism.\n"
  "However, keeping check-in locks turned on can help prevent unnecessary\n"
  "confusion.";
static const char zHelp368[] =
  "Usage: %fossil login-group ?SUBCOMMAND? ?OPTIONS?\n"
  "\n"
  "Run various subcommands to manage login-group related settings of the open\n"
  "repository or of the repository identified by the -R or --repository option.\n"
  "\n"
  ">  fossil login-group ?-R REPO?\n"
  "\n"
  "    Show the login-group to which REPO, or if invoked from within a check-out\n"
  "    the repository on which the current check-out is based, belongs.\n"
  "\n"
  ">  fossil login-group join ?-R REPO? ?--name NAME? REPO2\n"
  "\n"
  "    This command will either: (1) add the repository on which the current\n"
  "    check-out is based, or the repository REPO specified with -R, to the\n"
  "    login group where REPO2 is a member, in which case the optional --name\n"
  "    argument is not required; or (2) create a new login group between the\n"
  "    repository on which the current check-out is based, or the repository\n"
  "    REPO specified with -R, and REPO2, in which case the new group NAME is\n"
  "    determined by the mandatory --name option. In both cases, the specified\n"
  "    repositories will first leave any group in which they are currently a\n"
  "    member before joining the new login group.\n"
  "\n"
  ">  fossil login-group leave ?-R REPO?\n"
  "\n"
  "    Take the repository REPO, or if invoked from within a check-out the\n"
  "    repository on which the current check-out is based, out of whatever\n"
  "    login group it is a member.\n"
  "\n"
  "About Login Groups:\n"
  "\n"
  "A login-group is a set of repositories that share user credentials.\n"
  "If a user is logged into one member of the group, then that user can\n"
  "access any other group member as long as they have an entry in the USER\n"
  "table of that member.  If a user changes their password using web\n"
  "interface, their password is also automatically changed in every other\n"
  "member of the login group.";
static const char zHelp101[] =
  "Usage: %fossil ls ?OPTIONS? ?PATHS ...?\n"
  "\n"
  "List all files in the current check-out.  If PATHS is included, only the\n"
  "named files (or their children if directories) are shown.\n"
  "\n"
  "The ls command has grown by accretion, with multiple contributors, over\n"
  "many years, and is hence a little confused.  The ls command is essentially\n"
  "two related commands in one, depending on whether or not the -r option\n"
  "is given or implied.  The -r option selects a specific check-in\n"
  "version to list, in which case -R can be used to select the repository.\n"
  "The fine behavior of the --age, -v, and -t options is altered by the -r\n"
  "option as well, as explained below.  The -h and -H options use an\n"
  "implicit \"-r current\" option if no -r is specified.\n"
  "\n"
  "The --age option displays file commit times.  Like -r, --age has the\n"
  "side effect of making -t sort by commit time, not modification time.\n"
  "\n"
  "The -v option provides extra information about each file.  Without -r,\n"
  "-v displays the change status, in the manner of the [[changes]] command.\n"
  "With -r, -v shows the commit time and size of the checked-in files.\n"
  "The -h option also shows the file hash prefix.  The -H option shows\n"
  "the check-in hash prefix.  The -v option added implicitly if either of the\n"
  "-h or -H options is used.  An implicit \"-r current\" is also added if\n"
  "-h or -H are used and no -r is specified.\n"
  "\n"
  "The -t option changes the sort order.  Without -t, files are sorted by\n"
  "path and name (case insensitive sort if -r).  If neither --age nor -r\n"
  "are used, -t sorts by modification time, otherwise by commit time.\n"
  "\n"
  "Options:\n"
  "  --age                 Show when each file was committed\n"
  "  -h                    Show file hashes.  Implies -v and -r\n"
  "  -H                    Show check-in hashes.  Implies -v and -r\n"
  "  --hash                Verify file status using hashing rather than\n"
  "                        relying on file sizes and mtimes.  Implies -v\n"
  "  -r VERSION            The specific check-in to list\n"
  "  -R|--repository REPO  Extract info from repository REPO\n"
  "  -t                    Sort output in time order\n"
  "  --tree                Tree format\n"
  "  -v|--verbose          Provide extra information about each file\n"
  "\n"
  "See also: [[changes]], [[extras]], [[status]], [[tree]]";
static const char zHelp191[] =
  "The value is the primary branch for the project.";
static const char zHelp468[] =
  "The mainmenu setting specifies the entries on the main menu\n"
  "for many skins.  The mainmenu should be a TCL list.  Each set\n"
  "of four consecutive values defines a single main menu item:\n"
  "\n"
  "  *   The first term is text that appears on the menu.\n"
  "\n"
  "  *   The second term is a hyperlink to take when a user clicks on the\n"
  "      entry.  Hyperlinks that start with \"/\" are relative to the\n"
  "      repository root.\n"
  "\n"
  "  *   The third term is an argument to the TH1 \"capexpr\" command.\n"
  "      If capexpr evaluates to true, then the entry is shown.  If not,\n"
  "      the entry is omitted.  \"*\" is always true.  \"{}\" is never true.\n"
  "\n"
  "  *   The fourth term is a list of extra class names to apply to the\n"
  "      new menu entry.  Some skins use classes \"desktoponly\" and\n"
  "      \"wideonly\" to only show the entries when the web browser\n"
  "      screen is wide or very wide, respectively.\n"
  "\n"
  "Some custom skins might not use this property.  Whether the property\n"
  "is used or not a choice made by the skin designer.  Some skins may add\n"
  "extra choices (such as the hamburger button) to the menu.";
static const char zHelp192[] =
  "If enabled, automatically create files \"manifest\" and \"manifest.uuid\"\n"
  "in every check-out.\n"
  "\n"
  "Optionally use combinations of characters 'r' for \"manifest\",\n"
  "'u' for \"manifest.uuid\" and 't' for \"manifest.tags\".  The SQLite\n"
  "and Fossil repositories both require manifests.";
static const char zHelp072[] =
  "This is the maximum number of entries to allow in the web-cache\n"
  "for tarballs, ZIP-archives, and SQL-archives.";
static const char zHelp193[] =
  "Some CPU-intensive web pages (ex: /zip, /tarball, /blame)\n"
  "are disallowed if the system load average goes above this\n"
  "value.  \"0.0\" means no limit.  This only works on unix.\n"
  "Only local settings of this value make a difference since\n"
  "when running as a web-server, Fossil does not open the\n"
  "global configuration database.";
static const char zHelp194[] =
  "A limit on the size of uplink HTTP requests.";
static const char zHelp385[] =
  "Usage: %fossil md5sum FILES....\n"
  "\n"
  "Compute an MD5 checksum of all files named on the command-line.\n"
  "If a file is named \"-\" then content is read from standard input.";
static const char zHelp388[] =
  "Usage: %fossil merge ?OPTIONS? ?VERSION ...?\n"
  "Or:    %fossil cherrypick ?OPTIONS? ?VERSION ...?\n"
  "\n"
  "The argument VERSION is a version that should be merged into the\n"
  "current check-out.  All changes from VERSION back to the nearest\n"
  "common ancestor are merged.  Except, if either of the --cherrypick\n"
  "or --backout options are used only the changes associated with the\n"
  "single check-in VERSION are merged.  The --backout option causes\n"
  "the changes associated with VERSION to be removed from the current\n"
  "check-out rather than added.  When invoked with the name\n"
  "\"cherrypick\" instead of \"merge\", this command works exactly like\n"
  "\"merge --cherrypick\".\n"
  "\n"
  "Files which are renamed in the merged-in branch will be renamed in\n"
  "the current check-out.\n"
  "\n"
  "If the VERSION argument is omitted, then Fossil attempts to find\n"
  "a recent fork on the current branch to merge.\n"
  "\n"
  "Note that this command does not commit the merge, as that is a\n"
  "separate step.\n"
  "\n"
  "If there are multiple VERSION arguments, then each VERSION is merged\n"
  "(or cherrypicked) in the order that they appear on the command-line.\n"
  "\n"
  "Options:\n"
  "  --backout               Do a reverse cherrypick merge against VERSION.\n"
  "                          In other words, back out the changes that were\n"
  "                          added by VERSION.\n"
  "  --baseline BASELINE     Use BASELINE as the \"pivot\" of the merge instead\n"
  "                          of the nearest common ancestor.  This allows\n"
  "                          a sequence of changes in a branch to be merged\n"
  "                          without having to merge the entire branch.\n"
  "  --binary GLOBPATTERN    Treat files that match GLOBPATTERN as binary\n"
  "                          and do not try to merge parallel changes.  This\n"
  "                          option overrides the \"binary-glob\" setting.\n"
  "  --cherrypick            Do a cherrypick merge VERSION into the current\n"
  "                          check-out.  A cherrypick merge pulls in the changes\n"
  "                          of the single check-in VERSION, rather than all\n"
  "                          changes back to the nearest common ancestor.\n"
  "  -f|--force              Force the merge even if it would be a no-op\n"
  "  --force-missing         Force the merge even if there is missing content\n"
  "  --integrate             Merged branch will be closed when committing\n"
  "  -K|--keep-merge-files   On merge conflict, retain the temporary files\n"
  "                          used for merging, named *-baseline, *-original,\n"
  "                          and *-merge.\n"
  "  -n|--dry-run            Do not actually change files on disk\n"
  "  --nosync                Do not auto-sync prior to merging\n"
  "  --noundo                Do not record changes in the undo log\n"
  "  -v|--verbose            Show additional details of the merge";
static const char zHelp416[] =
  "Usage: %fossil merge-base ?options? PRIMARY SECONDARY ...\n"
  "\n"
  "Find a common ancestor given two or more check-in versions to\n"
  "hypothetically merge.\n"
  "\n"
  "Options:\n"
  "   --ignore-merges       Ignore merges for discovering name pivots";
static const char zHelp386[] =
  "Usage: %fossil merge-info [OPTIONS]\n"
  "\n"
  "Display information about the most recent merge operation.\n"
  "\n"
  "Options:\n"
  "  -a|--all             Show all file changes that happened because of\n"
  "                       the merge.  Normally only MERGE, CONFLICT, and ERROR\n"
  "                       lines are shown\n"
  "  -c|--context N       Show N lines of context around each change,\n"
  "                       with negative N meaning show all content.  Only\n"
  "                       meaningful in combination with --tcl or --tk.\n"
  "  --dark               Use dark mode for the Tcl/Tk-based GUI\n"
  "  --tk                 Bring up a Tcl/Tk GUI that shows the changes\n"
  "                       associated with the most recent merge.\n"
  "\n"
  "Options used internally by --tk:\n"
  "  --diff12 FILE        Bring up a separate --tk diff for just the baseline\n"
  "                       and local variants of FILE.\n"
  "  --diff13 FILE        Like --diff12 but for baseline versus merge-in\n"
  "  --diff23 FILE        Like --diff12 but for local versus merge-in\n"
  "  --tcl FILE           Generate (to stdout) a TCL list containing\n"
  "                       information needed to display the changes to\n"
  "                       FILE caused by the most recent merge.  FILE must\n"
  "                       be a pathname relative to the root of the check-out.\n"
  "\n"
  "Debugging options available only when --tk is used:\n"
  "  --tkdebug            Show sub-commands run to implement --tk\n"
  "  --script FILE        Write script used to implement --tk into FILE";
static const char zHelp195[] =
  "A list of file extension-to-mimetype mappings, one per line. e.g.\n"
  "\"foo application/x-foo\". File extensions are compared\n"
  "case-insensitively in the order listed in this setting.  A leading\n"
  "'.' on file extensions is permitted but not required.";
static const char zHelp196[] =
  "Use file modification times (mtimes) to detect when\n"
  "files have been modified.  If disabled, all managed files\n"
  "are hashed to detect changes, which can be slow for large\n"
  "projects.";
static const char zHelp006[] =
  "Usage: %fossil mv|rename ?OPTIONS? OLDNAME NEWNAME\n"
  "   or: %fossil mv|rename ?OPTIONS? OLDNAME... DIR\n"
  "\n"
  "Move or rename one or more files or directories within the repository tree.\n"
  "You can either rename a file or directory or move it to another subdirectory.\n"
  "\n"
  "The 'mv' command does NOT normally rename or move the files on disk.\n"
  "This command merely records the fact that file names have changed so\n"
  "that appropriate notations can be made at the next [[commit]].\n"
  "However, the default behavior of this command may be overridden via\n"
  "command line options listed below and/or the 'mv-rm-files' setting.\n"
  "\n"
  "The 'rename' command never renames or moves files on disk, even when the\n"
  "command line options and/or the 'mv-rm-files' setting would otherwise\n"
  "require it to do so.\n"
  "\n"
  "WARNING: If the \"--hard\" option is specified -OR- the \"mv-rm-files\"\n"
  "         setting is non-zero, files WILL BE renamed or moved on disk\n"
  "         as well.  This does NOT apply to the 'rename' command.\n"
  "\n"
  "Options:\n"
  "  --soft                    Skip moving files within the check-out.\n"
  "                            This supersedes the --hard option.\n"
  "  --hard                    Move files within the check-out\n"
  "  --case-sensitive BOOL     Override the case-sensitive setting\n"
  "  -n|--dry-run              If given, display instead of run actions\n"
  "\n"
  "See also: [[changes]], [[status]]";
static const char zHelp197[] =
  "If enabled, the \"mv\" and \"rename\" commands will also move\n"
  "the associated files within the check-out -AND- the \"rm\"\n"
  "and \"delete\" commands will also remove the associated\n"
  "files from within the check-out.";
static const char zHelp144[] =
  "Usage: %fossil new ?OPTIONS? FILENAME\n"
  "   or: %fossil init ?OPTIONS? FILENAME\n"
  "\n"
  "Create a repository for a new project in the file named FILENAME.\n"
  "This command is distinct from \"clone\".  The \"clone\" command makes\n"
  "a copy of an existing project.  This command starts a new project.\n"
  "\n"
  "By default, your current login name is used to create the default\n"
  "admin user. This can be overridden using the -A|--admin-user\n"
  "parameter.\n"
  "\n"
  "By default, all settings will be initialized to their default values.\n"
  "This can be overridden using the --template parameter to specify a\n"
  "repository file from which to copy the initial settings.  When a template\n"
  "repository is used, almost all of the settings accessible from the setup\n"
  "page, either directly or indirectly, will be copied.  Normal users and\n"
  "their associated permissions will not be copied; however, the system\n"
  "default users \"anonymous\", \"nobody\", \"reader\", \"developer\", and their\n"
  "associated permissions will be copied.  In case of SQL errors, rebuild the\n"
  "template repository and try again.\n"
  "\n"
  "Options:\n"
  "   --template      FILE         Copy settings from repository file\n"
  "   -A|--admin-user USERNAME     Select given USERNAME as admin user\n"
  "   --date-override DATETIME     Use DATETIME as time of the initial check-in\n"
  "   --sha1                       Use an initial hash policy of \"sha1\"\n"
  "   --project-name  STRING       The name of the project \"project name in\n"
  "                                quotes\"\n"
  "   --project-desc  STRING       The description of the project \"project\n"
  "                                description in quotes\"\n"
  "\n"
  "DATETIME may be \"now\" or \"YYYY-MM-DDTHH:MM:SS.SSS\". If in\n"
  "year-month-day form, it may be truncated, the \"T\" may be replaced by\n"
  "a space, and it may also name a timezone offset from UTC as \"-HH:MM\"\n"
  "(westward) or \"+HH:MM\" (eastward). Either no timezone suffix or \"Z\"\n"
  "means UTC.\n"
  "\n"
  "See also: [[clone]]";
static const char zHelp147[] =
  "Usage: %fossil open REPOSITORY ?VERSION? ?OPTIONS?\n"
  "\n"
  "Open a new connection to the repository name REPOSITORY.  A check-out\n"
  "for the repository is created with its root at the current working\n"
  "directory, or in DIR if the \"--workdir DIR\" is used.  If VERSION is\n"
  "specified then that version is checked out.  Otherwise the most recent\n"
  "check-in on the main branch (usually \"trunk\") is used.\n"
  "\n"
  "REPOSITORY can be the filename for a repository that already exists on the\n"
  "local machine or it can be a URI for a remote repository.  If REPOSITORY\n"
  "is a URI in one of the formats recognized by the [[clone]] command, the\n"
  "remote repo is first cloned, then the clone is opened. The clone will be\n"
  "stored in the current directory, or in DIR if the \"--repodir DIR\" option\n"
  "is used. The name of the clone will be taken from the last term of the URI.\n"
  "For \"http:\" and \"https:\" URIs, you can append an extra term to the end of\n"
  "the URI to get any repository name you like. For example:\n"
  "\n"
  "    fossil open https://fossil-scm.org/home/new-name\n"
  "\n"
  "The base URI for cloning is \"https://fossil-scm.org/home\".  The extra\n"
  "\"new-name\" term means that the cloned repository will be called\n"
  "\"new-name.fossil\".\n"
  "\n"
  "Options:\n"
  "  --empty           Initialize check-out as being empty, but still connected\n"
  "                    with the local repository. If you commit this check-out,\n"
  "                    it will become a new \"initial\" commit in the repository.\n"
  "  -f|--force        Continue with the open even if the working directory is\n"
  "                    not empty, or if auto-sync fails.\n"
  "  --force-missing   Force opening a repository with missing content\n"
  "  -k|--keep         Only modify the manifest file(s)\n"
  "  --nested          Allow opening a repository inside an opened check-out\n"
  "  --nosync          Do not auto-sync the repository prior to opening even\n"
  "                    if the autosync setting is on.\n"
  "  --proxy PROXY     Use PROXY as http proxy during sync operation\n"
  "  --reopen REPO     \"Reopen\" an existing checkout to use a different\n"
  "                    repository file REPO. Useful to reconnect an existing\n"
  "                    checkout to a repository after the original repository\n"
  "                    file is moved. CAUTION: may lose stash and bisect\n"
  "                    history.\n"
  "  --repodir DIR     If REPOSITORY is a URI that will be cloned, store\n"
  "                    the clone in DIR rather than in \".\"\n"
  "  --setmtime        Set timestamps of all files to match their SCM-side\n"
  "                    times (the timestamp of the last check-in which modified\n"
  "                    them).\n"
  "  --verbose         If passed a URI then this flag is passed on to the clone\n"
  "                    operation, otherwise it has no effect\n"
  "  --workdir DIR     Use DIR as the working directory instead of \".\". The DIR\n"
  "                    directory is created if it does not exist.\n"
  "\n"
  "See also: [[close]], [[clone]]";
static const char zHelp253[] =
  "Command-line options common to all commands:\n"
  "\n"
  "  --args FILENAME         Read additional arguments and options from FILENAME\n"
  "  --case-sensitive BOOL   Set case sensitivity for file names\n"
  "  --cgitrace              Active CGI tracing\n"
  "  --chdir PATH            Change to PATH before performing any operations\n"
  "  --errorlog FILENAME     Log errors to FILENAME\n"
  "  -?|--help               Show help on the command rather than running it\n"
  "  --httptrace             Trace outbound HTTP requests\n"
  "  --localtime             Display times using the local timezone\n"
  "  --nocgi                 Do not act as CGI\n"
  "  --no-th-hook            Do not run TH1 hooks\n"
  "  -q|--quiet              Reduce the amount of output\n"
  "  --sqlstats              Show SQL usage statistics when done\n"
  "  --sqltrace              Trace all SQL commands\n"
  "  --sshtrace              Trace SSH activity\n"
  "  --ssl-identity NAME     Set the SSL identity to NAME\n"
  "  --systemtrace           Trace calls to system()\n"
  "  -U|--user USER          Make the default user be USER\n"
  "  --utc                   Display times using UTC\n"
  "  --vfs NAME              Cause SQLite to use the NAME VFS\n"
  "\n"
  "Additional options available on most commands that use network I/O:\n"
  "\n"
  "  --accept-any-cert       Disable server SSL cdert validation. Accept any SSL\n"
  "                          cert that the server provides.  WARNING: Unsafe!\n"
  "                          Testing and debugging use only!\n"
  "  --ipv4                  Use only IPv4.  Disable IPv6 support.\n"
  "  --ipv6                  Use only IPv6.  Disable IPv4 support.\n"
  "  --nosync                Disable autosync for the current command.\n"
  "  --proxy URL             Specify the HTTP proxy to use.  URL can be \"off\".";
static const char zHelp408[] =
  "Usage: %fossil patch SUBCOMMAND ?ARGS ..?\n"
  "\n"
  "This command is used to create, view, and apply Fossil binary patches.\n"
  "A Fossil binary patch is a single (binary) file that captures all of the\n"
  "uncommitted changes of a check-out.  Use Fossil binary patches to transfer\n"
  "proposed or incomplete changes between machines for testing or analysis.\n"
  "\n"
  "> fossil patch alias add|rm|ls|list ?ARGS?\n"
  "\n"
  "      Manage remote-name aliases, which act as short-form\n"
  "      equivalents to REMOTE-CHECKOUT strings. Aliases are local to\n"
  "      a given repository and do not sync. Subcommands:\n"
  "\n"
  "        ... add ALIAS REMOTE-CHECKOUT       Add ALIAS as an alias\n"
  "                                            for REMOTE-CHECKOUT.\n"
  "        ... ls|list                         List all local aliases.\n"
  "        ... rm ALIAS [ALIAS...]             Remove named aliases\n"
  "        ... rm --all                        Remove all aliases\n"
  "\n"
  "> fossil patch create [DIRECTORY] PATCHFILE\n"
  "\n"
  "      Create a new binary patch in PATCHFILE that captures all uncommitted\n"
  "      changes in the check-out at DIRECTORY, or the current directory if\n"
  "      DIRECTORY is omitted.  If PATCHFILE is \"-\" then the binary patch\n"
  "      is written to standard output.\n"
  "\n"
  "      Options:\n"
  "          -f|--force     Overwrite an existing patch with the same name\n"
  "\n"
  "> fossil patch apply [DIRECTORY] PATCHFILE\n"
  "\n"
  "      Apply the changes in PATCHFILE to the check-out at DIRECTORY, or\n"
  "      in the current directory if DIRECTORY is omitted.\n"
  "\n"
  "      Options:\n"
  "          -f|--force     Apply the patch even though there are unsaved\n"
  "                         changes in the current check-out.  Unsaved changes\n"
  "                         are reverted and permanently lost.\n"
  "          -n|--dry-run   Do nothing, but print what would have happened\n"
  "          -v|--verbose   Extra output explaining what happens\n"
  "\n"
  "> fossil patch diff [DIRECTORY] PATCHFILE\n"
  "> fossil patch gdiff [DIRECTORY] PATCHFILE\n"
  "\n"
  "      Show a human-readable diff for the patch in PATCHFILE and associated\n"
  "      with the repository checked out in DIRECTORY.  The current\n"
  "      directory is used if DIRECTORY is omitted. All the usual\n"
  "      diff flags described at \"fossil help diff\" apply. With gdiff,\n"
  "      gdiff-command is used instead of internal diff logic.  In addition:\n"
  "\n"
  "          -f|--force     Continue trying to perform the diff even if\n"
  "                         baseline information is missing from the current\n"
  "                         repository\n"
  "\n"
  "> fossil patch push REMOTE-CHECKOUT\n"
  "\n"
  "      Create a patch for the current check-out, transfer that patch to\n"
  "      a remote machine (using ssh) and apply the patch there.  The\n"
  "      REMOTE-CHECKOUT is in one of the following formats:\n"
  "\n"
  "          *   DIRECTORY\n"
  "          *   HOST:DIRECTORY\n"
  "          *   USER@HOST:DIRECTORY\n"
  "\n"
  "      The name of the fossil executable on the remote host is specified\n"
  "      by the --fossilcmd option, or if there is no --fossilcmd, it first\n"
  "      tries \"$HOME/bin/fossil\" and if not found there it searches for any\n"
  "      executable named \"fossil\" on the default $PATH set by SSH on the\n"
  "      remote.\n"
  "\n"
  "      Command-line options:\n"
  "\n"
  "          -f|--force         Apply the patch even though there are unsaved\n"
  "                             changes in the current check-out.  Unsaved\n"
  "                             changes will be reverted and then the patch is\n"
  "                             applied.\n"
  "          --fossilcmd EXE    Name of the \"fossil\" executable on the remote\n"
  "          -n|--dry-run       Do nothing, but print what would have happened\n"
  "          -v|--verbose       Extra output explaining what happens\n"
  "\n"
  "\n"
  "> fossil patch pull REMOTE-CHECKOUT\n"
  "\n"
  "      Like \"fossil patch push\" except that the transfer is from remote\n"
  "      to local.  All the same command-line options apply.\n"
  "\n"
  "> fossil patch view PATCHFILE\n"
  "\n"
  "      View a summary of the changes in the binary patch in PATCHFILE.\n"
  "      Use \"fossil patch diff\" for detailed patch content.\n"
  "\n"
  "          -v|--verbose       Show extra detail about the patch";
static const char zHelp198[] =
  "Command used to clear-sign manifests at check-in.\n"
  "Default value is \"gpg --clearsign -o\".\n"
  "For SSH, use e.g. \"ssh-keygen -q -Y sign -n fossilscm -f ~/.ssh/id_ed25519\"";
static const char zHelp415[] =
  "Usage: %fossil pikchr [options] ?INFILE? ?OUTFILE?\n"
  "\n"
  "Accepts a pikchr script as input and outputs the rendered script as\n"
  "an SVG graphic. The INFILE and OUTFILE options default to stdin\n"
  "resp. stdout, and the names \"-\" can be used as aliases for those\n"
  "streams.\n"
  "\n"
  "Options:\n"
  "   -div       On success, add a DIV wrapper around the\n"
  "              resulting SVG output which limits its max-width to\n"
  "              its computed maximum ideal size\n"
  "\n"
  "   -div-indent  Like -div but indent the div\n"
  "\n"
  "   -div-center  Like -div but center the div\n"
  "\n"
  "   -div-left    Like -div but float the div left\n"
  "\n"
  "   -div-right   Like -div but float the div right\n"
  "\n"
  "   -div-toggle  Set the 'toggle' CSS class on the div (used by the\n"
  "                JavaScript-side post-processor)\n"
  "\n"
  "   -div-source  Set the 'source' CSS class on the div, which tells\n"
  "                CSS to hide the SVG and reveal the source by default.\n"
  "\n"
  "   -src       Store the input pikchr's source code in the output as\n"
  "              a separate element adjacent to the SVG one. Implied\n"
  "              by -div-source.\n"
  "\n"
  "   -dark      Change pikchr colors to assume a dark-mode theme.\n"
  "\n"
  "\n"
  "The -div-indent/center/left/right flags may not be combined.";
static const char zHelp334[] =
  "The preferred-diff-type setting determines the preferred diff format\n"
  "for web pages if the format is not otherwise specified, for example\n"
  "by a query parameter or cookie.  Allowed values:\n"
  "\n"
  "   1    Unified diff\n"
  "   2    Side-by-side diff\n"
  "\n"
  "If this setting is omitted or has a value of 0 or less, then it\n"
  "is ignored.";
static const char zHelp199[] =
  "URL of the HTTP proxy. If undefined or \"system\", the \"http_proxy\"\n"
  "environment variable is consulted. If \"off\", a direct HTTP connection is\n"
  "used.";
static const char zHelp421[] =
  "Usage: %fossil publish ?--only? TAGS...\n"
  "\n"
  "Cause artifacts identified by TAGS... to be published (made non-private).\n"
  "This can be used (for example) to convert a private branch into a public\n"
  "branch, or to publish a bundle that was imported privately.\n"
  "\n"
  "If any of TAGS names a branch, then all check-ins on the most recent\n"
  "instance of that branch are included, not just the most recent check-in.\n"
  "\n"
  "If any of TAGS name check-ins then all files and tags associated with\n"
  "those check-ins are also published automatically.  Except if the --only\n"
  "option is used, then only the specific artifacts identified by TAGS\n"
  "are published.\n"
  "\n"
  "If a TAG is already public, this command is a harmless no-op.";
static const char zHelp524[] =
  "Usage: %fossil pull ?URL? ?options?\n"
  "\n"
  "Pull all sharable changes from a remote repository into the local\n"
  "repository.  Sharable changes include public check-ins, edits to\n"
  "wiki pages, tickets, tech-notes, and forum posts.  Add\n"
  "the --private option to pull private branches.  Use the\n"
  "\"configuration pull\" command to pull website configuration details.\n"
  "\n"
  "If URL is not specified, then the URL from the most recent clone, push,\n"
  "pull, remote, or sync command is used.  See \"fossil help clone\" for\n"
  "details on the URL formats.\n"
  "\n"
  "Options:\n"
  "  --all                      Pull from all remotes, not just the default\n"
  "  -B|--httpauth USER:PASS    Credentials for the simple HTTP auth protocol,\n"
  "                             if required by the remote website\n"
  "  --from-parent-project      Pull content from the parent project\n"
  "  --ipv4                     Use only IPv4, not IPv6\n"
  "  --no-http-compression      Do not compress HTTP traffic\n"
  "  --once                     Do not remember URL for subsequent syncs\n"
  "  --private                  Pull private branches too\n"
  "  --project-code CODE        Use CODE as the project code\n"
  "  --proxy PROXY              Use the specified HTTP proxy\n"
  "  -R|--repository REPO       Local repository to pull into\n"
  "  --ssl-identity FILE        Local SSL credentials, if requested by remote\n"
  "  --ssh-command SSH          Use SSH as the \"ssh\" command\n"
  "  --transport-command CMD    Use external command CMD to move messages\n"
  "                             between client and server\n"
  "  -v|--verbose               Additional (debugging) output - use twice to\n"
  "                             also trace network traffic.\n"
  "  --verily                   Exchange extra information with the remote\n"
  "                             to ensure no content is overlooked\n"
  "\n"
  "See also: [[clone]], [[config]], [[push]], [[remote]], [[sync]]";
static const char zHelp422[] =
  "The purge command removes content from a repository and stores that content\n"
  "in a \"graveyard\".  The graveyard exists so that content can be recovered\n"
  "using the \"fossil purge undo\" command.  The \"fossil purge obliterate\"\n"
  "command empties the graveyard, making the content unrecoverable.\n"
  "\n"
  "WARNING: This command can potentially destroy historical data and\n"
  "leave your repository in a goofy state. Know what you are doing!\n"
  "Make a backup of your repository before using this command!\n"
  "\n"
  "FURTHER WARNING: This command is a work-in-progress and may yet\n"
  "contain bugs.\n"
  "\n"
  "> fossil purge artifacts HASH... ?OPTIONS?\n"
  "\n"
  "     Move arbitrary artifacts identified by the HASH list into the\n"
  "     graveyard.\n"
  "\n"
  "> fossil purge cat HASH...\n"
  "\n"
  "     Write the content of one or more artifacts in the graveyard onto\n"
  "     standard output.\n"
  "\n"
  "> fossil purge checkins TAGS... ?OPTIONS?\n"
  "\n"
  "     Move the check-ins or branches identified by TAGS and all of\n"
  "     their descendants out of the repository and into the graveyard.\n"
  "     If TAGS includes a branch name then it means all the check-ins\n"
  "     on the most recent occurrence of that branch.\n"
  "\n"
  "> fossil purge files NAME ... ?OPTIONS?\n"
  "\n"
  "     Move all instances of files called NAME into the graveyard.\n"
  "     NAME should be the name of the file relative to the root of the\n"
  "     repository.  If NAME is a directory, then all files within that\n"
  "     directory are moved.\n"
  "\n"
  "> fossil purge list|ls ?-l?\n"
  "\n"
  "     Show the graveyard of prior purges.  The -l option gives more\n"
  "     detail in the output.\n"
  "\n"
  "> fossil purge obliterate ID... ?--force?\n"
  "\n"
  "     Remove one or more purge events from the graveyard.  Once a purge\n"
  "     event is obliterated, it can no longer be undone.  The --force\n"
  "     option suppresses the confirmation prompt.\n"
  "\n"
  "> fossil purge tickets NAME ... ?OPTIONS?\n"
  "\n"
  "     TBD...\n"
  "\n"
  "> fossil purge undo ID\n"
  "\n"
  "     Restore the content previously removed by purge ID.\n"
  "\n"
  "> fossil purge wiki NAME ... ?OPTIONS?\n"
  "\n"
  "     TBD...\n"
  "\n"
  "COMMON OPTIONS:\n"
  "\n"
  "  --explain         Make no changes, but show what would happen\n"
  "  --dry-run         An alias for --explain";
static const char zHelp525[] =
  "Usage: %fossil push ?URL? ?options?\n"
  "\n"
  "Push all sharable changes from the local repository to a remote\n"
  "repository.  Sharable changes include public check-ins, edits to\n"
  "wiki pages, tickets, tech-notes, and forum posts.  Use\n"
  "--private to also push private branches.  Use the \"configuration\n"
  "push\" command to push website configuration details.\n"
  "\n"
  "If URL is not specified, then the URL from the most recent clone, push,\n"
  "pull, remote, or sync command is used.  See \"fossil help clone\" for\n"
  "details on the URL formats.\n"
  "\n"
  "Options:\n"
  "  --all                      Push to all remotes, not just the default\n"
  "  -B|--httpauth USER:PASS    Credentials for the simple HTTP auth protocol,\n"
  "                             if required by the remote website\n"
  "  --ipv4                     Use only IPv4, not IPv6\n"
  "  --no-http-compression      Do not compress HTTP traffic\n"
  "  --once                     Do not remember URL for subsequent syncs\n"
  "  --proxy PROXY              Use the specified HTTP proxy\n"
  "  --private                  Push private branches too\n"
  "  -R|--repository REPO       Local repository to push from\n"
  "  --ssl-identity FILE        Local SSL credentials, if requested by remote\n"
  "  --ssh-command SSH          Use SSH as the \"ssh\" command\n"
  "  --transport-command CMD    Use external command CMD to communicate with\n"
  "                             the server\n"
  "  -v|--verbose               Additional (debugging) output - use twice for\n"
  "                             network debugging\n"
  "  --verily                   Exchange extra information with the remote\n"
  "                             to ensure no content is overlooked\n"
  "\n"
  "See also: [[clone]], [[config]], [[pull]], [[remote]], [[sync]]";
static const char zHelp116[] =
  "Fossil usually tries to adjust user-specified background colors\n"
  "for check-ins so that the text is readable and so that the color\n"
  "is not too garish. This setting disables that filter.  When\n"
  "this setting is on, the user-selected background colors are shown\n"
  "exactly as requested.";
static const char zHelp424[] =
  "Usage: %fossil rebuild ?REPOSITORY? ?OPTIONS?\n"
  "\n"
  "Reconstruct the named repository database from the core\n"
  "records.  Run this command after updating the fossil\n"
  "executable in a way that changes the database schema.\n"
  "\n"
  "Options:\n"
  "  --analyze         Run ANALYZE on the database after rebuilding\n"
  "  --cluster         Compute clusters for unclustered artifacts\n"
  "  --compress        Strive to make the database as small as possible\n"
  "  --compress-only   Skip the rebuilding step. Do --compress only\n"
  "  --force           Force the rebuild to complete even if errors are seen\n"
  "  --ifneeded        Only do the rebuild if it would change the schema version\n"
  "  --index           Always add in the full-text search index\n"
  "  --noverify        Skip the verification of changes to the BLOB table\n"
  "  --noindex         Always omit the full-text search index\n"
  "  --pagesize N      Set the database pagesize to N (512..65536, power of 2)\n"
  "  --quiet           Only show output if there are errors\n"
  "  --stats           Show artifact statistics after rebuilding\n"
  "  --vacuum          Run VACUUM on the database after rebuilding\n"
  "  --wal             Set Write-Ahead-Log journalling mode on the database";
static const char zHelp430[] =
  "Usage: %fossil reconstruct ?OPTIONS? FILENAME DIRECTORY\n"
  "\n"
  "This command studies the artifacts (files) in DIRECTORY and reconstructs the\n"
  "Fossil record from them.  It places the new Fossil repository in FILENAME.\n"
  "Subdirectories are read, files with leading '.' in the filename are ignored.\n"
  "\n"
  "Options:\n"
  "  -K|--keep-rid1     Read the filename of the artifact with RID=1 from the\n"
  "                     file .rid in DIRECTORY.\n"
  "  -P|--keep-private  Mark the artifacts listed in the file .private in\n"
  "                     DIRECTORY as private in the new Fossil repository.";
static const char zHelp200[] =
  "Specifies whether or not to redirect unencrypted \"http://\" requests to\n"
  "encrypted \"https://\" URIs. A value of 0 (the default) means do not\n"
  "redirect, 1 means to redirect only the /login page, and 2\n"
  "means to always redirect.\n"
  "\n"
  "For security, a value of 2 is recommended.  The default value is 0\n"
  "because not all sites are TLS-capable.  But you should definitely enable\n"
  "TLS and change this setting to 2 for all public-facing repositories.";
static const char zHelp432[] =
  "Limit the size of the bytecode used to implement a regular expression\n"
  "to this many steps.  It is important to limit this to avoid possible\n"
  "DoS attacks.";
static const char zHelp201[] =
  "When showing changes and extras, report paths relative\n"
  "to the current working directory.";
static const char zHelp527[] =
  "Usage: %fossil remote ?SUBCOMMAND ...?\n"
  "\n"
  "View or modify the URLs of remote repositories used for syncing.\n"
  "The \"default\" remote is specially named by Fossil and corresponds to\n"
  "the URL used in the most recent \"sync\", \"push\", \"pull\", \"clone\", or\n"
  "similar command.  As such, the default remote can be updated by\n"
  "Fossil with each sync command.  Other named remotes are persistent.\n"
  "\n"
  "> fossil remote\n"
  "\n"
  "    With no arguments, this command shows the current default remote\n"
  "    URL.  If there is no default, it shows \"off\".\n"
  "\n"
  "> fossil remote add NAME URL\n"
  "\n"
  "    Add a new named URL. Afterwards, NAME can be used as a short\n"
  "    symbolic name for URL in contexts where a URL is required. The\n"
  "    URL argument can be \"default\" or a prior symbolic name to make\n"
  "    a copy of an existing URL under the new NAME. The \"default\"\n"
  "    remote cannot be defined with this subcommand; instead,\n"
  "    use 'fossil remote REF' as documented below.\n"
  "\n"
  "> fossil remote config-data\n"
  "\n"
  "    DEBUG USE ONLY - Show the name and value of every CONFIG table\n"
  "    entry in the repository that is associated with the remote URL store.\n"
  "    Passwords are obscured in the output.\n"
  "\n"
  "> fossil remote delete NAME\n"
  "\n"
  "    Delete a named URL previously created by the \"add\" subcommand.\n"
  "\n"
  "> fossil remote hyperlink ?FILENAME? ?LINENUM? ?LINENUM?\n"
  "\n"
  "    Print a URL that will access the current check-out on the remote\n"
  "    repository.  Or if the FILENAME argument is included, print the\n"
  "    URL to access that particular file within the current check-out.\n"
  "    If one or two linenumber arguments are provided after the filename,\n"
  "    then the URL is for the line or range of lines specified.\n"
  "\n"
  "> fossil remote list|ls\n"
  "\n"
  "    Show all remote repository URLs.\n"
  "\n"
  "> fossil remote off\n"
  "\n"
  "    Forget the default URL. This disables autosync.\n"
  "\n"
  "    This is a convenient way to enter \"airplane mode\".  To enter\n"
  "    airplane mode, first save the current default URL, then turn the\n"
  "    default off.  Perhaps like this:\n"
  "\n"
  "        fossil remote add main default\n"
  "        fossil remote off\n"
  "\n"
  "    To exit airplane mode and turn autosync back on again:\n"
  "\n"
  "        fossil remote main\n"
  "\n"
  "> fossil remote scrub\n"
  "\n"
  "    Forget any saved passwords for remote repositories, but continue\n"
  "    to remember the URLs themselves.  You will be prompted for the\n"
  "    password the next time it is needed.\n"
  "\n"
  "> fossil remote ui ?FILENAME? ?LINENUM? ?LINENUM?\n"
  "\n"
  "    Bring up a web browser pointing at the remote repository, and\n"
  "    specifically to the page that describes the current check-out\n"
  "    on that remote repository.  Or if FILENAME and/or LINENUM arguments\n"
  "    are provided, to the specific file and range of lines.  This\n"
  "    command is similar to \"fossil remote hyperlink\" except that instead\n"
  "    of printing the URL, it passes the URL off to the web browser.\n"
  "\n"
  "> fossil remote REF\n"
  "\n"
  "    Make REF the new default URL, replacing the prior default.\n"
  "    REF may be a URL or a NAME from a prior \"add\".";
static const char zHelp423[] =
  "Usage: %fossil repack ?REPOSITORY?\n"
  "\n"
  "Perform extra delta-compression to try to minimize the size of the\n"
  "repository.  This command is simply a short-hand for:\n"
  "\n"
  "    fossil rebuild --compress-only\n"
  "\n"
  "The name for this command is stolen from the \"git repack\" command that\n"
  "does approximately the same thing in Git.";
static const char zHelp532[] =
  "Usage: %fossil reparent [OPTIONS] CHECK-IN PARENT ...\n"
  "\n"
  "Create a \"parent\" tag that causes CHECK-IN to be interpreted as a\n"
  "child of PARENT.  If multiple PARENTs are listed, then the first is\n"
  "the primary parent and others are merge ancestors.\n"
  "\n"
  "This is an experts-only command.  It is used to patch up a repository\n"
  "that has been damaged by a shun or that has been pieced together from\n"
  "two or more separate repositories.  You should never need to reparent\n"
  "during normal operations.\n"
  "\n"
  "Reparenting is accomplished by adding a parent tag.  So to undo the\n"
  "reparenting operation, simply delete the tag.\n"
  "\n"
  "   --test           Make database entries but do not add the tag artifact.\n"
  "                    So the reparent operation will be undone by the next\n"
  "                    \"fossil rebuild\" command.\n"
  "   -n|--dry-run     Print the tag that would have been created but do not\n"
  "                    actually change the database in any way.\n"
  "   --date-override DATETIME  Set the change time on the control artifact\n"
  "   --user-override USER      Set the user name on the control artifact";
static const char zHelp202[] =
  "Compute checksums over all files in each check-out as a double-check\n"
  "of correctness.  Disable this on large repositories for a performance\n"
  "improvement.";
static const char zHelp203[] =
  "If non-zero then use this repository as the skin for a repository list\n"
  "such as created by the one of:\n"
  "\n"
  "   1)  fossil server DIRECTORY --repolist\n"
  "   2)  fossil ui DIRECTORY --repolist\n"
  "   3)  fossil http DIRECTORY --repolist\n"
  "   4)  (The \"repolist\" option in a CGI script)\n"
  "   5)  fossil all ui\n"
  "   6)  fossil all server\n"
  "\n"
  "All repositories are searched (in lexicographical order) and the first\n"
  "repository with a non-zero \"repolist-skin\" value is used as the skin\n"
  "for the repository list page.  If none of the repositories on the list\n"
  "have a non-zero \"repolist-skin\" setting then the repository list is\n"
  "displayed using unadorned HTML (\"skinless\"), with the page title taken\n"
  "from the FOSSIL_REPOLIST_TITLE environment variable.\n"
  "\n"
  "If repolist-skin has a value of 2, then the repository is omitted from\n"
  "the list in use cases 1 through 4, but not for 5 and 6.";
static const char zHelp585[] =
  "Usage: %fossil revert ?OPTIONS? ?FILE ...?\n"
  "\n"
  "Revert to the current repository version of FILE, or to\n"
  "the baseline VERSION specified with -r flag.\n"
  "\n"
  "If FILE was part of a rename operation, both the original file\n"
  "and the renamed file are reverted.\n"
  "\n"
  "Using a directory name for any of the FILE arguments is the same\n"
  "as using every subdirectory and file beneath that directory.\n"
  "\n"
  "Revert all files if no file name is provided.\n"
  "\n"
  "If a file is reverted accidentally, it can be restored using\n"
  "the \"fossil undo\" command.\n"
  "\n"
  "Options:\n"
  "  --noundo                 Do not record changes in the undo/redo log.\n"
  "  -r|--revision VERSION    Revert given FILE(s) back to given\n"
  "                           VERSION\n"
  "\n"
  "See also: [[redo]], [[undo]], [[checkout]], [[update]]";
static const char zHelp002[] =
  "Usage: %fossil rm|delete|forget FILE1 ?FILE2 ...?\n"
  "\n"
  "Remove one or more files or directories from the repository.\n"
  "\n"
  "The 'rm' and 'delete' commands do NOT normally remove the files from\n"
  "disk.  They just mark the files as no longer being part of the project.\n"
  "In other words, future changes to the named files will not be versioned.\n"
  "However, the default behavior of this command may be overridden via the\n"
  "command line options listed below and/or the 'mv-rm-files' setting.\n"
  "\n"
  "The 'forget' command never removes files from disk, even when the command\n"
  "line options and/or the 'mv-rm-files' setting would otherwise require it\n"
  "to do so.\n"
  "\n"
  "WARNING: If the \"--hard\" option is specified -OR- the \"mv-rm-files\"\n"
  "         setting is non-zero, files WILL BE removed from disk as well.\n"
  "         This does NOT apply to the 'forget' command.\n"
  "\n"
  "Options:\n"
  "  --soft                  Skip removing files from the check-out.\n"
  "                          This supersedes the --hard option.\n"
  "  --hard                  Remove files from the check-out\n"
  "  --case-sensitive BOOL   Override the case-sensitive setting\n"
  "  -n|--dry-run            If given, display instead of run actions.\n"
  "  --reset                 Reset the DELETED state of a check-out, such\n"
  "                          that all newly-rm'd (but not yet committed)\n"
  "                          files are no longer removed. No flags other\n"
  "                          than --verbose or --dry-run may be used with\n"
  "                          --reset.\n"
  "  -v|--verbose            Outputs information about each --reset file.\n"
  "                          Only usable with --reset.\n"
  "\n"
  "See also: [[addremove]], [[add]]";
static const char zHelp444[] =
  "The value of this setting should be a regular expression.\n"
  "If it matches the REQUEST_URI without the SCRIPT_NAME prefix\n"
  "matches this regular expression, then the request is an exception\n"
  "to anti-robot defenses and should be allowed through.  For\n"
  "example, to allow robots to download tarballs or ZIP archives\n"
  "for named versions and releases, you could use an expression like\n"
  "this:\n"
  "\n"
  "    ^/tarball/(version-[0-9.]+|release)/\n"
  "\n"
  "This setting can hold multiple regular expressions, one\n"
  "regular expression per line.  The input URL is exempted from\n"
  "anti-robot defenses if any of the multiple regular expressions\n"
  "matches.";
static const char zHelp443[] =
  "The VALUE of this setting is a list of GLOB patterns that match\n"
  "pages for which complex HTTP requests from unauthenticated clients\n"
  "should be disallowed.  \"Unauthenticated\" means the user is \"nobody\".\n"
  "The recommended value for this setting is:\n"
  "\n"
  "  timelineX,diff,annotate,fileage,file,finfo,reports,tree,hexdump,download\n"
  "\n"
  "Usually the tag should exactly match the page name.  The \"diff\" tag\n"
  "covers all diffing pages such as /vdiff, /fdiff, and /vpatch.  The\n"
  "\"annotate\" tag also covers /blame and /praise.  \"zip\" also covers\n"
  "/tarball and /sqlar.  If a tag has an \"X\" character appended then it\n"
  "only applies if query parameters are such that the page is particularly\n"
  "difficult to compute.  Useful \"X\" tags include \"timelineX\" and \"zipX\".\n"
  "The \"ext\" tag matches all extension, but a tag of the form \"ext/PATH\"\n"
  "only matches the extension at PATH.\n"
  "\n"
  "See the [[robot-zip-leaf]] and [[robot-zip-tag]] settings\n"
  "for additional controls associated with the \"zipX\" restriction.\n"
  "\n"
  "Change this setting \"off\" to disable all robot restrictions.";
static const char zHelp445[] =
  "If this setting is true, the robots are allowed to download tarballs,\n"
  "ZIP-archives, and SQL-archives even though \"zipX\" is found in\n"
  "the [[robot-restrict]] setting as long as the specific check-in being\n"
  "downloaded is a leaf check-in.";
static const char zHelp446[] =
  "If this setting is a list of GLOB patterns matching tags,\n"
  "then robots are allowed to download tarballs, ZIP-archives, and\n"
  "SQL-archives even though \"zipX\" appears in [[robot-restrict]], as long as\n"
  "the specific check-in being downloaded has a tags that matches\n"
  "the GLOB list of this setting.  Recommended value:  \n"
  "\"release,robot-access\".";
static const char zHelp522[] =
  "This setting is the override value for the /robots.txt file that\n"
  "Fossil returns when run as a stand-alone server for a domain.  As\n"
  "Fossil is seldom run as a stand-alone server (and is more commonly\n"
  "deployed as a CGI or SCGI or behind a reverse proxy) this setting\n"
  "rarely needed.  A reasonable default robots.txt is sent if this\n"
  "setting is empty.";
static const char zHelp450[] =
  "Usage: %fossil rss ?OPTIONS?\n"
  "\n"
  "The CLI variant of the /timeline.rss page, this produces an RSS\n"
  "feed of the timeline to stdout.\n"
  "\n"
  "Options:\n"
  "  -type|y FLAG    May be: all (default), ci (show check-ins only),\n"
  "                  t (show tickets only),  w (show wiki only)\n"
  "\n"
  "  -limit|n LIMIT  The maximum number of items to show\n"
  "\n"
  "  -tkt HASH       Filter for only those events for the specified ticket\n"
  "\n"
  "  -tag TAG        Filter for a tag\n"
  "\n"
  "  -wiki NAME      Filter on a specific wiki page\n"
  "\n"
  "Only one of -tkt, -tag, or -wiki may be used.\n"
  "\n"
  "  -name FILENAME  Filter for a specific file. This may be combined\n"
  "                  with one of the other filters (useful for looking\n"
  "                  at a specific branch).\n"
  "\n"
  "  -url STRING     Set the RSS feed's root URL to the given string.\n"
  "                  The default is \"URL-PLACEHOLDER\" (without quotes).";
static const char zHelp623[] =
  "This setting controls whether or not unsafe HTML elements\n"
  "(such as SCRIPT or STYLE tags) are allowed in Markdown-formatted\n"
  "documents.  Unsafe HTML is disabled by default.  If this setting\n"
  "exists and is a string, then letters in that string can enable\n"
  "unsafe HTML in various contexts:\n"
  "\n"
  "   - b         Unsafe HTML allowed in embedded documentation\n"
  "   - f         Unsafe HTML allowed in forum posts\n"
  "   - t         Unsafe HTML allowed in tickets\n"
  "   - w         Unsafe HTML allowed on wiki pages";
static const char zHelp428[] =
  "Usage: %fossil scrub ?OPTIONS? ?REPOSITORY?\n"
  "\n"
  "The command removes sensitive information (such as passwords) from a\n"
  "repository so that the repository can be sent to an untrusted reader.\n"
  "\n"
  "By default, only passwords are removed.  However, if the --verily option\n"
  "is added, then private branches, concealed email addresses, IP\n"
  "addresses of correspondents, and similar privacy-sensitive fields\n"
  "are also purged.  If the --private option is used, then only private\n"
  "branches are removed and all other information is left intact.\n"
  "\n"
  "This command permanently deletes the scrubbed information. THE EFFECTS\n"
  "OF THIS COMMAND ARE IRREVERSIBLE. USE WITH CAUTION!\n"
  "\n"
  "The user is prompted to confirm the scrub unless the --force option\n"
  "is used.\n"
  "\n"
  "Options:\n"
  "  --force     Do not prompt for confirmation\n"
  "  --private   Only private branches are removed from the repository\n"
  "  --verily    Scrub real thoroughly (see above)";
static const char zHelp452[] =
  "Usage: %fossil search [OPTIONS] PATTERN...\n"
  "\n"
  "Search the repository for PATTERN and show matches.  Depending on\n"
  "options and how the administrator has search configured for the\n"
  "repository, the search can cover:\n"
  "\n"
  "   *   check-in comments (-c)\n"
  "   *   embedded documentation (--docs)\n"
  "   *   forum posts (--forum)\n"
  "   *   tickets (--tickets)\n"
  "   *   tech notes (--technotes)\n"
  "   *   wiki pages (--wiki)\n"
  "   *   built-in fossil help text (-h)\n"
  "   *   all of the above (-a)\n"
  "\n"
  "Use options below to select the scope of the search.  The\n"
  "default is check-in comments only (-c).\n"
  "\n"
  "Output is colorized if writing to a TTY and if the NO_COLOR environment\n"
  "variable is not set.  Use the \"--highlight 0\" option to disable colorization\n"
  "or use \"--highlight 91\" to force it on.  Change the argument to --highlight\n"
  "to change the color.\n"
  "\n"
  "Options:\n"
  "    -a|--all          Search everything\n"
  "    -c|--checkins     Search check-in comments\n"
  "    --docs            Search embedded documentation\n"
  "    --forum           Search forum posts\n"
  "    -h|--bi-help      Search built-in help\n"
  "    --highlight N     Used VT100 color N for matching text.  0 means \"off\".\n"
  "    -n|--limit N      Limit output to N matches\n"
  "    --technotes       Search tech notes\n"
  "    --tickets         Search tickets\n"
  "    -W|--width WIDTH  Set display width to WIDTH columns, 0 for\n"
  "                      unlimited. Defaults to the terminal's width.\n"
  "    --wiki            Search wiki";
static const char zHelp204[] =
  "Allow users to request that an email containing a hyperlink\n"
  "to the /resetpw page be sent to their email address of record,\n"
  "thus allowing forgetful users to reset their forgotten passwords\n"
  "without administrator involvement.";
static const char zHelp205[] =
  "Allow users to register themselves through the HTTP UI.\n"
  "This is useful if you want to see other names than\n"
  "\"Anonymous\" in e.g. ticketing system. On the other hand\n"
  "users can not be deleted.";
static const char zHelp377[] =
  "Usage: %fossil server ?OPTIONS? ?REPOSITORY?\n"
  "   or: %fossil ui ?OPTIONS? ?REPOSITORY?\n"
  "\n"
  "Open a socket and begin listening and responding to HTTP requests on\n"
  "TCP port 8080, or on any other TCP port defined by the -P or\n"
  "--port option.  The optional REPOSITORY argument is the name of the\n"
  "Fossil repository to be served.  The REPOSITORY argument may be omitted\n"
  "if the working directory is within an open check-out, in which case the\n"
  "repository associated with that check-out is used.\n"
  "\n"
  "The \"ui\" command automatically starts a web browser after initializing\n"
  "the web server.  The \"ui\" command also binds to 127.0.0.1 and so will\n"
  "only process HTTP traffic from the local machine.\n"
  "\n"
  "If REPOSITORY is a directory name which is the root of a\n"
  "check-out, then use the repository associated with that check-out.\n"
  "This only works for the \"fossil ui\" command, not the \"fossil server\"\n"
  "command.\n"
  "\n"
  "If REPOSITORY begins with a \"HOST:\" or \"USER@HOST:\" prefix, then\n"
  "the command is run on the remote host specified and the results are\n"
  "tunneled back to the local machine via SSH.  This feature only works for\n"
  "the \"fossil ui\" command, not the \"fossil server\" command.  The name of the\n"
  "fossil executable on the remote host is specified by the --fossilcmd\n"
  "option, or if there is no --fossilcmd, it first tries \"fossil\" and if it\n"
  "is not found in the default $PATH set by SSH on the remote, it then adds\n"
  "\"$HOME/bin:/usr/local/bin:/opt/homebrew/bin\" to the PATH and tries again to\n"
  "run \"fossil\".\n"
  "\n"
  "REPOSITORY may also be a directory (aka folder) that contains one or\n"
  "more repositories with names ending in \".fossil\".  In this case, a\n"
  "prefix of the URL pathname is used to search the directory for an\n"
  "appropriate repository.  To thwart mischief, the pathname in the URL must\n"
  "contain only alphanumerics, \"_\", \"/\", \"-\", and \".\", and no \"-\" may\n"
  "occur after \"/\", and every \".\" must be surrounded on both sides by\n"
  "alphanumerics.  Any pathname that does not satisfy these constraints\n"
  "results in a 404 error.  Files in REPOSITORY that match the comma-separated\n"
  "list of glob patterns given by --files and that have known suffixes\n"
  "such as \".txt\" or \".html\" or \".jpeg\" and do not match the pattern\n"
  "\"*.fossil*\" will be served as static content.  With the \"ui\" command,\n"
  "the REPOSITORY can only be a directory if the --notfound option is\n"
  "also present.\n"
  "\n"
  "For the special case REPOSITORY name of \"/\", the global configuration\n"
  "database is consulted for a list of all known repositories.  The --repolist\n"
  "option is implied by this special case.  The \"fossil ui /\" command is\n"
  "equivalent to \"fossil all ui\".  To see all repositories owned by \"user\"\n"
  "on machine \"remote\" via ssh, run \"fossil ui user@remote:/\".\n"
  "\n"
  "By default, the \"ui\" command provides full administrative access without\n"
  "having to log in.  This can be disabled by turning off the \"localauth\"\n"
  "setting.  Automatic login for the \"server\" command is available if the\n"
  "--localauth option is present and the \"localauth\" setting is off and the\n"
  "connection is from localhost.  The \"ui\" command also enables --repolist\n"
  "by default.\n"
  "\n"
  "Options:\n"
  "  --acme              Deliver files from the \".well-known\" subdirectory\n"
  "  --baseurl URL       Use URL as the base (useful for reverse proxies)\n"
  "  --cert FILE         Use TLS (HTTPS) encryption with the certificate (the\n"
  "                      fullchain.pem) taken from FILE.\n"
  "  --chroot DIR        Use directory for chroot instead of repository path\n"
  "  --ckout-alias NAME  Treat URIs of the form /doc/NAME/... as if they were\n"
  "                      /doc/ckout/...\n"
  "  --create            Create a new REPOSITORY if it does not already exist\n"
  "  --errorlog FILE     Append HTTP error messages to FILE\n"
  "  --extpage FILE      Shortcut for \"--extroot DIR --page ext/TAIL\" where\n"
  "                      DIR is the directory holding FILE and TAIL is the\n"
  "                      filename at the end of FILE.  Only works for \"ui\".\n"
  "  --extroot DIR       Document root for the /ext extension mechanism\n"
  "  --files GLOBLIST    Comma-separated list of glob patterns for static files\n"
  "  --fossilcmd PATH    The pathname of the \"fossil\" executable on the remote\n"
  "                      system when REPOSITORY is remote.\n"
  "  --from PATH         Use PATH as the diff baseline for the /ckout page\n"
  "  --localauth         Enable automatic login for requests from localhost\n"
  "  --localhost         Listen on 127.0.0.1 only (always true for \"ui\")\n"
  "  --https             Indicates that the input is coming through a reverse\n"
  "                      proxy that has already translated HTTPS into HTTP.\n"
  "  --jsmode MODE       Determine how JavaScript is delivered with pages.\n"
  "                      Mode can be one of:\n"
  "                         inline       All JavaScript is inserted inline at\n"
  "                                      the end of the HTML file.\n"
  "                         separate     Separate HTTP requests are made for\n"
  "                                      each JavaScript file.\n"
  "                         bundled      One single separate HTTP fetches all\n"
  "                                      JavaScript concatenated together.\n"
  "                      Depending on the needs of any given page, inline\n"
  "                      and bundled modes might result in a single\n"
  "                      amalgamated script or several, but both approaches\n"
  "                      result in fewer HTTP requests than the separate mode.\n"
  "  --mainmenu FILE     Override the mainmenu config setting with the contents\n"
  "                      of the given file\n"
  "  --max-latency N     Do not let any single HTTP request run for more than N\n"
  "                      seconds (only works on unix)\n"
  "  -B|--nobrowser      Do not automatically launch a web-browser for the\n"
  "                      \"fossil ui\" command\n"
  "  --nocompress        Do not compress HTTP replies\n"
  "  --nojail            Drop root privileges but do not enter the chroot jail\n"
  "  --nossl             Do not force redirects to SSL even if the repository\n"
  "                      setting \"redirect-to-https\" requests it.  This is set\n"
  "                      by default for the \"ui\" command.\n"
  "  --notfound URL      Redirect to URL if a page is not found.\n"
  "  -p|--page PAGE      Start \"ui\" on PAGE.  ex: --page \"timeline?y=ci\"\n"
  "  --pkey FILE         Read the private key used for TLS from FILE\n"
  "  -P|--port [IP:]PORT  Listen on the given IP (optional) and port\n"
  "  --repolist          If REPOSITORY is dir, URL \"/\" lists repos\n"
  "  --scgi              Accept SCGI rather than HTTP\n"
  "  --skin LABEL        Use override skin LABEL, or the site's default skin if\n"
  "                      LABEL is an empty string.\n"
  "  --socket-mode MODE  File permissions to set for the unix socket created\n"
  "                      by the --socket-name option.\n"
  "  --socket-name NAME  Use a unix-domain socket called NAME instead of a\n"
  "                      TCP/IP socket.\n"
  "  --socket-owner USR  Try to set the owner of the unix socket to USR.\n"
  "                      USR can be of the form USER:GROUP to set both\n"
  "                      user and group.\n"
  "  --th-trace          Trace TH1 execution (for debugging purposes)\n"
  "  --usepidkey         Use saved encryption key from parent process.  This is\n"
  "                      only necessary when using SEE on Windows or Linux.\n"
  "\n"
  "See also: [[cgi]], [[http]], [[winsrv]] [Windows only]";
static const char zHelp220[] =
  "Usage: %fossil settings ?SETTING? ?VALUE? ?OPTIONS?\n"
  "   or: %fossil unset SETTING ?OPTIONS?\n"
  "\n"
  "The \"settings\" command with no arguments lists all settings and their\n"
  "values.  With just a SETTING name it shows the current value of that setting.\n"
  "With a VALUE argument it changes the property for the current repository.\n"
  "\n"
  "Settings marked as versionable are overridden by the contents of the\n"
  "file named .fossil-settings/PROPERTY in the check-out root, if that\n"
  "file exists.\n"
  "\n"
  "The \"unset\" command clears a setting.\n"
  "\n"
  "Settings can have both a \"local\" repository-only value and \"global\" value\n"
  "that applies to all repositories.  The local values are stored in the\n"
  "\"config\" table of the repository and the global values are stored in the\n"
  "configuration database.  If both a local and a global value exists for a\n"
  "setting, the local value takes precedence.  This command normally operates\n"
  "on the local settings.  Use the --global option to change global settings.\n"
  "\n"
  "Options:\n"
  "  --changed  Only show settings if the value differs from the default\n"
  "  --exact    Only consider exact name matches\n"
  "  --global   Set or unset the given property globally instead of\n"
  "             setting or unsetting it for the open repository only\n"
  "  --value    Only show the value of a given property (implies --exact)\n"
  "\n"
  "See also: [[configuration]]";
static const char zHelp488[] =
  "Usage: %fossil sha1sum FILE...\n"
  "\n"
  "Compute an SHA1 checksum of all files named on the command-line.\n"
  "If a file is named \"-\" then take its content from standard input.\n"
  "\n"
  "Options:\n"
  "   -h|--dereference     If FILE is a symbolic link, compute the hash\n"
  "                        on the object that the link points to.  Normally,\n"
  "                        the hash is over the name of the object that\n"
  "                        the link points to.\n"
  "\n"
  "See also: [[md5sum]], [[sha3sum]]";
static const char zHelp489[] =
  "Usage: %fossil sha3sum FILE...\n"
  "\n"
  "Compute an SHA3 checksum of all files named on the command-line.\n"
  "If a file is named \"-\" then take its content from standard input.\n"
  "\n"
  "To be clear:  The official NIST FIPS-202 implementation of SHA3\n"
  "with the added 01 padding is used, not the original Keccak submission.\n"
  "\n"
  "Options:\n"
  "   --224               Compute a SHA3-224 hash\n"
  "   --256               Compute a SHA3-256 hash (the default)\n"
  "   --384               Compute a SHA3-384 hash\n"
  "   --512               Compute a SHA3-512 hash\n"
  "   --size N            An N-bit hash.  N must be a multiple of 32 between\n"
  "                       128 and 512.\n"
  "   -h|--dereference    If FILE is a symbolic link, compute the hash on\n"
  "                       the object pointed to, not on the link itself.\n"
  "\n"
  "See also: [[md5sum]], [[sha1sum]]";
static const char zHelp313[] =
  "Usage: %fossil shell\n"
  "\n"
  "Prompt for lines of input from stdin.  Parse each line and evaluate\n"
  "it as a separate fossil command, in a child process.  The initial\n"
  "\"fossil\" is omitted from each line.\n"
  "\n"
  "This command only works on unix-like platforms that support fork().\n"
  "It is non-functional on Windows.";
static const char zHelp469[] =
  "The sitemap-extra setting defines extra links to appear on the\n"
  "/sitemap web page as sub-items of the \"Home Page\" entry before the\n"
  "\"Documentation Search\" entry (if any).  For skins that use the /sitemap\n"
  "page to construct a hamburger menu dropdown, new entries added here\n"
  "will appear on the hamburger menu.\n"
  "\n"
  "This setting should be a TCL list divided into triples.  Each\n"
  "triple defines a new entry:\n"
  "\n"
  "  *   The first term is the display name of the /sitemap entry\n"
  "\n"
  "  *   The second term is a hyperlink to take when a user clicks on the\n"
  "      entry.  Hyperlinks that start with \"/\" are relative to the\n"
  "      repository root.\n"
  "\n"
  "  *   The third term is an argument to the TH1 \"capexpr\" command.\n"
  "      If capexpr evaluates to true, then the entry is shown.  If not,\n"
  "      the entry is omitted.  \"*\" is always true.\n"
  "\n"
  "The default value is blank, meaning no added entries.";
static const char zHelp505[] =
  "Usage: %fossil sql ?OPTIONS?\n"
  "\n"
  "Run the sqlite3 command-line shell on the Fossil repository\n"
  "identified by the -R option, or on the current repository.\n"
  "See https://www.sqlite.org/cli.html for additional information about\n"
  "the sqlite3 command-line shell.\n"
  "\n"
  "WARNING:  Careless use of this command can corrupt a Fossil repository\n"
  "in ways that are unrecoverable.  Be sure you know what you are doing before\n"
  "running any SQL commands that modify the repository database.  Use the\n"
  "--readonly option to prevent accidental damage to the repository.\n"
  "\n"
  "Options:\n"
  "   --no-repository           Skip opening the repository database\n"
  "   --readonly                Open the repository read-only.  No changes\n"
  "                             are allowed.  This is a recommended safety\n"
  "                             precaution to prevent repository damage.\n"
  "   -R REPOSITORY             Use REPOSITORY as the repository database\n"
  "   --test                    Enable some testing and analysis features\n"
  "                             that are normally disabled.\n"
  "\n"
  "All of the standard sqlite3 command-line shell options should also\n"
  "work.\n"
  "\n"
  "The following SQL extensions are provided with this Fossil-enhanced\n"
  "version of the sqlite3 command-line shell:\n"
  "\n"
  "   builtin                   A virtual table that contains one row for\n"
  "                             each datafile that is built into the Fossil\n"
  "                             binary.\n"
  "\n"
  "   checkin_mtime(X,Y)        Return the mtime for the file Y (a BLOB.RID)\n"
  "                             found in check-in X (another BLOB.RID value).\n"
  "\n"
  "   compress(X)               Compress text X with the same algorithm used\n"
  "                             to compress artifacts in the BLOB table.\n"
  "\n"
  "   content(X)                Return the content of artifact X. X can be an\n"
  "                             artifact hash or hash prefix or a tag. Artifacts\n"
  "                             are stored compressed and deltaed. This function\n"
  "                             does all necessary decompression and undeltaing.\n"
  "\n"
  "   decompress(X)             Decompress text X.  Undoes the work of\n"
  "                             compress(X).\n"
  "\n"
  "   delta_apply(X,D)          Apply delta D to source blob X and return\n"
  "                             the result.\n"
  "\n"
  "   delta_create(X,Y)         Create and return a delta that will convert\n"
  "                             X into Y.\n"
  "\n"
  "   delta_output_size(D)      Return the number of bytes of output to expect\n"
  "                             when applying delta D\n"
  "\n"
  "   delta_parse(D)            A table-valued function that deconstructs\n"
  "                             delta D and returns rows for each element of\n"
  "                             that delta.\n"
  "\n"
  "   files_of_checkin(X)       A table-valued function that returns info on\n"
  "                             all files contained in check-in X.  Example:\n"
  "\n"
  "                                 SELECT * FROM files_of_checkin('trunk');\n"
  "\n"
  "   helptext                  A virtual table with one row for each command,\n"
  "                             webpage, and setting together with the built-in\n"
  "                             help text.\n"
  "\n"
  "   now()                     Return the number of seconds since 1970.\n"
  "\n"
  "   obscure(T)                Obfuscate the text password T so that its\n"
  "                             original value is not readily visible.  Fossil\n"
  "                             uses this same algorithm when storing passwords\n"
  "                             of remote URLs.\n"
  "\n"
  "   regexp                    The REGEXP operator works, unlike in\n"
  "                             standard SQLite.\n"
  "\n"
  "   symbolic_name_to_rid(X)   Return the BLOB.RID corresponding to symbolic\n"
  "                             name X.";
static const char zHelp636[] =
  "Usage: %fossil sqlar VERSION OUTPUTFILE [OPTIONS]\n"
  "\n"
  "Generate an SQLAR archive for a check-in.  If the --name option is\n"
  "used, its argument becomes the name of the top-level directory in the\n"
  "resulting SQLAR archive.  If --name is omitted, the top-level directory\n"
  "name is derived from the project name, the check-in date and time, and\n"
  "the artifact ID of the check-in.\n"
  "\n"
  "The GLOBLIST argument to --exclude and --include can be a comma-separated\n"
  "list of glob patterns, where each glob pattern may optionally be enclosed\n"
  "in \"...\" or '...' so that it may contain commas.  If a file matches both\n"
  "--include and --exclude then it is excluded.\n"
  "\n"
  "If OUTPUTFILE is an empty string or \"/dev/null\" then no SQLAR archive is\n"
  "actually generated.  This feature can be used in combination with\n"
  "the --list option to get a list of the filenames that would be in the\n"
  "SQLAR archive had it actually been generated.\n"
  "\n"
  "Options:\n"
  "  -X|--exclude GLOBLIST   Comma-separated list of GLOBs of files to exclude\n"
  "  --include GLOBLIST      Comma-separated list of GLOBs of files to include\n"
  "  -l|--list               Show archive content on stdout\n"
  "  --name DIRECTORYNAME    The name of the top-level directory in the archive\n"
  "  -R REPOSITORY           Specify a Fossil repository";
static const char zHelp206[] =
  "The command used to talk to a remote machine with  the \"ssh://\" protocol.";
static const char zHelp207[] =
  "The full pathname to a file containing PEM encoded\n"
  "CA root certificates, or a directory of certificates\n"
  "with filenames formed from the certificate hashes as\n"
  "required by OpenSSL.\n"
  "\n"
  "If set, this will override the OS default list of\n"
  "OpenSSL CAs. If unset, the default list will be used.\n"
  "Some platforms may add additional certificates.\n"
  "Checking your platform behaviour is required if the\n"
  "exact contents of the CA root is critical for your\n"
  "application.\n"
  "\n"
  "This setting is overridden by environment variables\n"
  "SSL_CERT_FILE and SSL_CERT_DIR.";
static const char zHelp208[] =
  "The full pathname to a file containing a certificate\n"
  "and private key in PEM format. Create by concatenating\n"
  "the certificate and private key files.\n"
  "\n"
  "This identity will be presented to SSL servers to\n"
  "authenticate this client, in addition to the normal\n"
  "password authentication.";
static const char zHelp507[] =
  "Usage: %fossil stash SUBCOMMAND ARGS...\n"
  "\n"
  "> fossil stash\n"
  "> fossil stash save ?FILES...?\n"
  "> fossil stash snapshot ?FILES...?\n"
  "\n"
  "     Save the current changes in the working tree as a new stash.\n"
  "     Then revert the changes back to the last check-in.  If FILES\n"
  "     are listed, then only stash and revert the named files.  The\n"
  "     \"save\" verb can be omitted if and only if there are no other\n"
  "     arguments.  The \"snapshot\" verb works the same as \"save\" but\n"
  "     omits the revert, keeping the check-out unchanged.\n"
  "\n"
  "     Options:\n"
  "        --editor NAME                  Use the NAME editor to enter comment\n"
  "        -m|--comment COMMENT           Comment text for the new stash\n"
  "\n"
  "\n"
  "> fossil stash list|ls ?-v|--verbose? ?-W|--width NUM?\n"
  "\n"
  "     List all changes sets currently stashed.  Show information about\n"
  "     individual files in each changeset if -v or --verbose is used.\n"
  "\n"
  "> fossil stash show|cat ?STASHID? ?DIFF-OPTIONS?\n"
  "> fossil stash gshow|gcat ?STASHID? ?DIFF-OPTIONS?\n"
  "\n"
  "     Show the contents of a stash as a diff against its baseline.\n"
  "     With gshow and gcat, gdiff-command is used instead of internal\n"
  "     diff logic.\n"
  "\n"
  "> fossil stash pop\n"
  "> fossil stash apply ?STASHID?\n"
  "\n"
  "     Apply STASHID or the most recently created stash to the current\n"
  "     working check-out.  The \"pop\" command deletes that changeset from\n"
  "     the stash after applying it but the \"apply\" command retains the\n"
  "     changeset.\n"
  "\n"
  "> fossil stash goto ?STASHID?\n"
  "\n"
  "     Update to the baseline check-out for STASHID then apply the\n"
  "     changes of STASHID.  Keep STASHID so that it can be reused\n"
  "     This command is undoable.\n"
  "\n"
  "> fossil stash drop|rm ?STASHIDs...? ?-a|--all?\n"
  "\n"
  "     Forget everything about the given STASHIDs.  Forget the whole\n"
  "     stash if the -a|--all flag is used.  Individual drops are\n"
  "     undoable but -a|--all is not.\n"
  "\n"
  "> fossil stash diff ?STASHID? ?DIFF-OPTIONS?\n"
  "> fossil stash gdiff ?STASHID? ?DIFF-OPTIONS?\n"
  "\n"
  "     Show diffs of the current working directory and what that\n"
  "     directory would be if STASHID were applied. With gdiff,\n"
  "     gdiff-command is used instead of internal diff logic.\n"
  "\n"
  "> fossil stash rename STASHID NEW-NAME\n"
  "\n"
  "     Change the description of the given STASHID entry to NEW-NAME.";
static const char zHelp538[] =
  "This setting controls the suggested tarball/ZIP downloads on the\n"
  "[[/download]] page.  The value is a TCL list.  Each set of four items\n"
  "defines a set of check-ins to be added to the suggestion list.\n"
  "The items in each group are:\n"
  "\n"
  "|    COUNT   TAG   MAX_AGE    COMMENT\n"
  "\n"
  "COUNT is the number of check-ins to match, starting with the most\n"
  "recent and working bacwards in time.  Check-ins match if they contain\n"
  "the tag TAG.  If MAX_AGE is not an empty string, then it specifies\n"
  "the maximum age of any matching check-in.  COMMENT is an optional\n"
  "comment for each match.\n"
  "\n"
  "The special value of \"OPEN-LEAF\" for TAG matches any check-in that\n"
  "is an open leaf.\n"
  "\n"
  "MAX_AGE is of the form \"{AMT UNITS}\"  where AMT is a floating point\n"
  "value and UNITS is one of \"seconds\", \"hours\", \"days\", \"weeks\", \"months\",\n"
  "or \"years\".  If MAX_AGE is an empty string then there is no age limit.\n"
  "\n"
  "If COMMENT is not an empty string, then it is an additional comment\n"
  "added to the output description of the suggested download.  The idea of\n"
  "COMMENT is to explain to the reader why a check-in is a suggested\n"
  "download.  \n"
  "\n"
  "Example:\n"
  "\n"
  "|       1   trunk     {}         {Latest Trunk Check-in}\n"
  "|       5   OPEN-LEAF {1 month}  {Active Branch}\n"
  "|       999 release   {1 year}   {Official Release}\n"
  "\n"
  "The value causes the /download page to show the union of the most\n"
  "recent trunk check-in of any age, the five most recent\n"
  "open leaves within the past month, and essentially\n"
  "all releases within the past year.  If the same check-in matches more\n"
  "than one rule, the COMMENT of the first match is used.";
static const char zHelp526[] =
  "Usage: %fossil sync ?REMOTE? ?options?\n"
  "\n"
  "Synchronize all sharable changes between the local repository and a\n"
  "remote repository, with the remote provided as a URL or a\n"
  "configured remote name (see the [[remote]] command).  Sharable\n"
  "changes include public check-ins and edits to wiki pages, tickets,\n"
  "forum posts, and technical notes.\n"
  "\n"
  "If REMOTE is not specified, then the URL from the most recent clone, push,\n"
  "pull, remote, or sync command is used.  See \"fossil help clone\" for\n"
  "details on the URL formats.\n"
  "\n"
  "Options:\n"
  "  --all                      Sync with all remotes, not just the default\n"
  "  -B|--httpauth USER:PASS    Credentials for the simple HTTP auth protocol,\n"
  "                             if required by the remote website\n"
  "  --ipv4                     Use only IPv4, not IPv6\n"
  "  --no-http-compression      Do not compress HTTP traffic\n"
  "  --once                     Do not remember URL for subsequent syncs\n"
  "  --ping                     Just verify that the server is alive\n"
  "  --proxy PROXY              Use the specified HTTP proxy\n"
  "  --private                  Sync private branches too\n"
  "  -q|--quiet                 Omit all output\n"
  "  -R|--repository REPO       Local repository to sync with\n"
  "  --ssl-identity FILE        Local SSL credentials, if requested by remote\n"
  "  --ssh-command SSH          Use SSH as the \"ssh\" command\n"
  "  --transport-command CMD    Use external command CMD to move message\n"
  "                             between the client and the server\n"
  "  -u|--unversioned           Also sync unversioned content\n"
  "  -v|--verbose               Additional (debugging) output - use twice to\n"
  "                             get network debug info\n"
  "  --verily                   Exchange extra information with the remote\n"
  "                             to ensure no content is overlooked\n"
  "\n"
  "See also: [[clone]], [[pull]], [[push]], [[remote]]";
static const char zHelp633[] =
  "Usage: %fossil system COMMAND ARGS...\n"
  "\n"
  "Often abbreviated as just \"fossil sys\", this command provides primitive,\n"
  "low-level unix-like commands for use on systems that lack those commands\n"
  "natively.\n"
  "\n"
  "Type \"fossil sys help\" for a list of available commands.\n"
  "\n"
  "Type \"fossil sys help COMMAND\" for detailed help on a particular\n"
  "command.";
static const char zHelp531[] =
  "Usage: %fossil tag SUBCOMMAND ...\n"
  "\n"
  "Run various subcommands to control tags and properties.\n"
  "\n"
  "> fossil tag add ?OPTIONS? TAGNAME ARTIFACT-ID ?VALUE?\n"
  "\n"
  "        Add a new tag or property to an artifact referenced by\n"
  "        ARTIFACT-ID. For check-ins, the tag will be usable instead\n"
  "        of a CHECK-IN in commands such as update and merge. If the\n"
  "        --propagate flag is present and ARTIFACT-ID refers to a\n"
  "        wiki page, forum post, technote, or check-in, the tag\n"
  "        propagates to all descendants of that artifact.\n"
  "\n"
  "        Options:\n"
  "          --date-override DATETIME   Set date and time added\n"
  "          -n|--dry-run               Display the tag text, but do not\n"
  "                                     actually insert it into the database\n"
  "          --propagate                Propagating tag\n"
  "          --raw                      Raw tag name. Ignored for\n"
  "                                     non-CHECK-IN artifacts.\n"
  "          --user-override USER       Name USER when adding the tag\n"
  "\n"
  "        The --date-override and --user-override options support\n"
  "        importing history from other SCM systems. DATETIME has\n"
  "        the form 'YYYY-MM-DD HH:MM:SS'.\n"
  "\n"
  "        Note that fossil uses some tag prefixes internally and this\n"
  "        command will reject tags with these prefixes to avoid\n"
  "        causing problems or confusion: \"wiki-\", \"tkt-\", \"event-\".\n"
  "\n"
  "> fossil tag cancel ?--raw? TAGNAME ARTIFACT-ID\n"
  "\n"
  "        Remove the tag TAGNAME from the artifact referenced by\n"
  "        ARTIFACT-ID, and also remove the propagation of the tag to\n"
  "        any descendants.  Use the -n|--dry-run option to see\n"
  "        what would have happened. Certain tag name prefixes are\n"
  "        forbidden, as documented for the 'add' subcommand.\n"
  "\n"
  "        Options:\n"
  "          --date-override DATETIME    Set date and time deleted\n"
  "          -n|--dry-run                Display the control artifact, but do\n"
  "                                      not insert it into the database\n"
  "          --raw                       Raw tag name. Ignored for\n"
  "                                      non-CHECK-IN artifacts.\n"
  "          --user-override USER        Name USER when deleting the tag\n"
  "\n"
  "> fossil tag find ?OPTIONS? TAGNAME\n"
  "\n"
  "        List all objects that use TAGNAME.\n"
  "\n"
  "        Options:\n"
  "          -n|--limit N    Limit to N results\n"
  "          --raw           Interprets tag as a raw name instead of a\n"
  "                          branch name and matches any type of artifact.\n"
  "                          Changes the output to include only the\n"
  "                          hashes of matching objects.\n"
  "          -t|--type TYPE  One of: ci (check-in), w (wiki),\n"
  "                          e (event/technote), f (forum post),\n"
  "                          t (ticket). Default is all types. Ignored\n"
  "                          if --raw is used.\n"
  "\n"
  "> fossil tag list|ls ?OPTIONS? ?ARTIFACT-ID?\n"
  "\n"
  "        List all tags or, if ARTIFACT-ID is supplied, all tags and\n"
  "        their values for that artifact. The tagtype option accepts\n"
  "        one of: propagated, singleton, cancel.  For historical\n"
  "        scripting compatibility, the internal tag types \"wiki-\",\n"
  "        \"tkt-\", and \"event-\" (technote) are elided by default\n"
  "        unless the --raw or --prefix options are used.\n"
  "\n"
  "        Options:\n"
  "          -v|--inverse    Inverse the meaning of --tagtype TYPE\n"
  "          --prefix        List only tags with the given prefix\n"
  "                          Fossil-internal prefixes include \"sym-\"\n"
  "                          (branch name), \"wiki-\", \"event-\"\n"
  "                          (technote), and \"tkt-\" (ticket). The\n"
  "                          prefix is stripped from the resulting\n"
  "                          list unless --raw is provided. Ignored if\n"
  "                          ARTIFACT-ID is provided.\n"
  "          --raw           List raw names of tags\n"
  "          --sep SEP       Separator when concatenating values\n"
  "          --tagtype TYPE  List only tags of type TYPE, which must\n"
  "                          be one of: cancel, singleton, propagated\n"
  "          --values        List tag values\n"
  "                          If --sep is supplied, list all values of a tag on\n"
  "                          the same line, separated by SEP; otherwise list\n"
  "                          each value on its own line.\n"
  "\n"
  "The option --raw allows the manipulation of all types of tags\n"
  "used for various internal purposes in fossil. It also shows\n"
  "\"cancel\" tags for the \"find\" and \"list\" subcommands. You should\n"
  "not use this option to make changes unless you are sure what\n"
  "you are doing.\n"
  "\n"
  "If you need to use a tagname that might be confused with\n"
  "a hexadecimal baseline or artifact ID, you can explicitly\n"
  "disambiguate it by prefixing it with \"tag:\". For instance:\n"
  "\n"
  "  fossil update decaf\n"
  "\n"
  "will be taken as an artifact or baseline ID and fossil will\n"
  "probably complain that no such revision was found. However\n"
  "\n"
  "  fossil update tag:decaf\n"
  "\n"
  "will assume that \"decaf\" is a tag/branch name.";
static const char zHelp536[] =
  "Usage: %fossil tarball VERSION OUTPUTFILE [OPTIONS]\n"
  "\n"
  "Generate a compressed tarball for a specified version.  If the --name\n"
  "option is used, its argument becomes the name of the top-level directory\n"
  "in the resulting tarball.  If --name is omitted, the top-level directory\n"
  "name is derived from the project name, the check-in date and time, and\n"
  "the artifact ID of the check-in.\n"
  "\n"
  "The GLOBLIST argument to --exclude and --include can be a comma-separated\n"
  "list of glob patterns, where each glob pattern may optionally be enclosed\n"
  "in \"...\" or '...' so that it may contain commas.  If a file matches both\n"
  "--include and --exclude then it is excluded.\n"
  "\n"
  "If OUTPUTFILE is an empty string or \"/dev/null\" then no tarball is\n"
  "actually generated.  This feature can be used in combination with\n"
  "the --list option to get a list of the filenames that would be in the\n"
  "tarball had it actually been generated.  Note that --list shows only\n"
  "filenames.  \"tar tzf\" shows both filenames and subdirectory names.\n"
  "\n"
  "Options:\n"
  "  -X|--exclude GLOBLIST   Comma-separated list of GLOBs of files to exclude\n"
  "  --include GLOBLIST      Comma-separated list of GLOBs of files to include\n"
  "  -l|--list               Show archive content on stdout\n"
  "  --name DIRECTORYNAME    The name of the top-level directory in the archive\n"
  "  -R REPOSITORY           Specify a Fossil repository";
#ifdef FOSSIL_ENABLE_TCL
static const char zHelp209[] =
  "If enabled Tcl integration commands will be added to the TH1\n"
  "interpreter, allowing arbitrary Tcl expressions and\n"
  "scripts to be evaluated from TH1.  Additionally, the Tcl\n"
  "interpreter will be able to evaluate arbitrary TH1\n"
  "expressions and scripts.";
#endif
#ifdef FOSSIL_ENABLE_TCL
static const char zHelp210[] =
  "This is the setup script to be evaluated after creating\n"
  "and initializing the Tcl interpreter.  By default, this\n"
  "is empty and no extra setup is performed.";
#endif
static const char zHelp211[] =
  "Name of the external TCL interpreter used for such things\n"
  "as running the GUI diff viewer launched by the --tk option\n"
  "of the various \"diff\" commands.";
static const char zHelp030[] =
  "Usage: %fossil test-add-alerts [OPTIONS] EVENTID ...\n"
  "\n"
  "Add one or more events to the pending_alert queue.  Use this\n"
  "command during testing to force email notifications for specific\n"
  "events.\n"
  "\n"
  "EVENTIDs are text.  The first character is 'c', 'f', 't', or 'w'\n"
  "for check-in, forum, ticket, or wiki.  The remaining text is a\n"
  "integer that references the EVENT.OBJID value for the event.\n"
  "Run /timeline?showid to see these OBJID values.\n"
  "\n"
  "Options:\n"
  "   --backoffice        Run alert_backoffice() after all alerts have\n"
  "                       been added.  This will cause the alerts to be\n"
  "                       sent out with the SENDALERT_TRACE option.\n"
  "   --debug             Like --backoffice, but add the SENDALERT_STDOUT\n"
  "                       so that emails are printed to standard output\n"
  "                       rather than being sent.\n"
  "   --digest            Process emails using SENDALERT_DIGEST";
static const char zHelp599[] =
  "Display the aggregate checksum for content computed in several\n"
  "different ways.  The aggregate checksum is used during \"fossil commit\"\n"
  "to double-check that the information about to be committed to the\n"
  "repository exactly matches the information currently in the check-out.";
static const char zHelp029[] =
  "Usage: %fossil test-alert EVENTID ...\n"
  "\n"
  "Generate the text of an email alert for all of the EVENTIDs\n"
  "listed on the command-line.  Or if no events are listed on the\n"
  "command line, generate text for all events named in the\n"
  "pending_alert table.  The text of the email alerts appears on\n"
  "standard output.\n"
  "\n"
  "This command is intended for testing and debugging Fossil itself,\n"
  "for example when enhancing the email alert system or fixing bugs\n"
  "in the email alert system.  If you are not making changes to the\n"
  "Fossil source code, this command is probably not useful to you.\n"
  "\n"
  "EVENTIDs are text.  The first character is 'c', 'f', 't', or 'w'\n"
  "for check-in, forum, ticket, or wiki.  The remaining text is a\n"
  "integer that references the EVENT.OBJID value for the event.\n"
  "Run /timeline?showid to see these OBJID values.\n"
  "\n"
  "Options:\n"
  "     --digest           Generate digest alert text\n"
  "     --needmod          Assume all events are pending moderator approval";
static const char zHelp247[] =
  "Usage: %fossil test-all-help ?OPTIONS?\n"
  "\n"
  "Show help text for commands and pages.  Useful for proof-reading.\n"
  "Defaults to just the CLI commands.  Specify --www to see only the\n"
  "web pages, or --everything to see both commands and pages.\n"
  "\n"
  "Options:\n"
  "   -a|--aliases      Show aliases\n"
  "   -c|--topics       Show help topics\n"
  "   -e|--everything   Show all commands and pages.  Omit aliases to\n"
  "                     avoid duplicates.\n"
  "   -h|--html         Transform output to HTML\n"
  "   -o|--options      Show global options\n"
  "   -r|--raw          No output formatting\n"
  "   -s|--settings     Show settings\n"
  "   -t|--test         Include test- commands\n"
  "   -w|--www          Show WWW pages";
static const char zHelp397[] =
  "Usage: %fossil test-ambiguous [--minsize N]\n"
  "\n"
  "Show a list of ambiguous artifact hash abbreviations of N characters or\n"
  "more where N defaults to 4.  Change N to a different value using\n"
  "the \"--minsize N\" command-line option.";
static const char zHelp410[] =
  "Usage: %fossil test-ancestor-path VERSION1 VERSION2\n"
  "\n"
  "Report the path from VERSION1 to VERSION2 through their most recent\n"
  "common ancestor.";
static const char zHelp249[] =
  "Test the approximate match algorithm";
static const char zHelp384[] =
  "Usage:  %fossil test-artifact-to-json ?-pretty|-p? symbolic-name [...names]\n"
  "\n"
  "Tests the artifact_to_json() and artifact_to_json_by_name() APIs.";
static const char zHelp044[] =
  "Usage: %fossil test-backlinks SRCTYPE SRCID ?OPTIONS? INPUT-FILE\n"
  "\n"
  "Read the content of INPUT-FILE and pass it into the backlink_extract()\n"
  "routine.  But instead of adding backlinks to the backlink table,\n"
  "just print them on stdout.  SRCID and SRCTYPE are integers.\n"
  "\n"
  "Options:\n"
  "   --mtime DATETIME        Use an alternative date/time.  Defaults to the\n"
  "                           current date/time.\n"
  "   --mimetype TYPE         Use an alternative mimetype";
static const char zHelp047[] =
  "Usage: %fossil test-backoffice-lease ?--reset?\n"
  "\n"
  "Print out information about the backoffice \"lease\" entry in the\n"
  "config table that controls whether or not backoffice should run.\n"
  "\n"
  "If the --reset option is given, the backoffice lease is reset.\n"
  "The use of the --reset option can be disruptive.  It can cause two\n"
  "or more backoffice processes to be run simultaneously.  Use it with\n"
  "caution.";
static const char zHelp067[] =
  "Usage: %fossil test-builtin-get NAME ?OUTPUT-FILE?";
static const char zHelp065[] =
  "If -verbose is used, it outputs a line at the end\n"
  "with the total item count and size.\n"
  "\n"
  "List the names and sizes of all built-in resources.";
static const char zHelp284[] =
  "Usage: %fossil test-canonical-name FILENAME...\n"
  "\n"
  "Test the operation of the canonical name generator.\n"
  "Also test Fossil's ability to measure attributes of a file.";
static const char zHelp076[] =
  "Render an ASCII-art captcha for numbers given on the command line.";
static const char zHelp281[] =
  "Usage: fossil test-case-filename DIRECTORY PATH PATH PATH ....\n"
  "\n"
  "All the PATH arguments (there must be one at least one) are pathnames\n"
  "relative to DIRECTORY.  This test command prints the OS-preferred name\n"
  "for each PATH in filesystems where case is not significant.";
static const char zHelp091[] =
  "Usage: %fossil test-chat-formatter ?OPTIONS? STRING ...\n"
  "\n"
  "Transform each argument string into HTML that will display the\n"
  "chat message.  This is used to test the formatter and to verify\n"
  "that a malicious message text will not cause HTML or JS injection\n"
  "into the chat display in a browser.\n"
  "\n"
  "Options:\n"
  "\n"
  "    -w|--wiki     Assume fossil wiki format instead of markdown";
static const char zHelp292[] =
  "Usage: %fossil test-ci-mini ?OPTIONS? FILENAME\n"
  "\n"
  "where FILENAME is a repo-relative name as it would appear in the\n"
  "vfile table.\n"
  "\n"
  "Options:\n"
  "  -R|--repository REPO      The repository file to commit to\n"
  "  --as FILENAME             The repository-side name of the input\n"
  "                            file, relative to the top of the\n"
  "                            repository. Default is the same as the\n"
  "                            input file name.\n"
  "  -m|--comment COMMENT      Required check-in comment\n"
  "  -M|--comment-file FILE    Reads check-in comment from the given file\n"
  "  -r|--revision VERSION     Commit from this version. Default is\n"
  "                            the check-out version (if available) or\n"
  "                            trunk (if used without a check-out).\n"
  "  --allow-fork              Allows the commit to be made against a\n"
  "                            non-leaf parent. Note that no autosync\n"
  "                            is performed beforehand.\n"
  "  --allow-merge-conflict    Allows check-in of a file even if it\n"
  "                            appears to contain a fossil merge conflict\n"
  "                            marker\n"
  "  --user-override USER      USER to use instead of the current\n"
  "                            default\n"
  "  --date-override DATETIME  DATE to use instead of 'now'\n"
  "  --allow-older             Allow a commit to be older than its\n"
  "                            ancestor\n"
  "  --convert-eol-inherit     Convert EOL style of the check-in to match\n"
  "                            the previous version's content\n"
  "  --convert-eol-unix        Convert the EOL style to Unix\n"
  "  --convert-eol-windows     Convert the EOL style to Windows.\n"
  "  (Only one of the --convert-eol-X options may be used and they only\n"
  "   modified the saved blob, not the input file.)\n"
  "  --delta                   Prefer to generate a delta manifest, if\n"
  "                            able. The forbid-delta-manifests repo\n"
  "                            config option trumps this, as do certain\n"
  "                            heuristics.\n"
  "  --allow-new-file          Allow addition of a new file this way.\n"
  "                            Disabled by default to avoid that case-\n"
  "                            sensitivity errors inadvertently lead to\n"
  "                            adding a new file where an update is\n"
  "                            intended.\n"
  "  -d|--dump-manifest        Dumps the generated manifest to stdout\n"
  "                            immediately after it's generated\n"
  "  --save-manifest FILE      Saves the generated manifest to a file\n"
  "                            after successfully processing it\n"
  "  --wet-run                 Disables the default dry-run mode\n"
  "\n"
  "Example:\n"
  "\n"
  "%fossil test-ci-mini -R REPO -m ... -r foo --as src/myfile.c myfile.c";
static const char zHelp427[] =
  "Verify that all non-private and non-shunned artifacts are accessible\n"
  "through the cluster chain.";
static const char zHelp248[] =
  "Print statistics about the built-in command dispatch table.";
static const char zHelp121[] =
  "Usage: %fossil test-comment-format [OPTIONS] TEXT [PREFIX] [ORIGTEXT]\n"
  "\n"
  "Test comment formatting and printing.  Use for testing only.\n"
  "\n"
  "The default (canonical) formatting algorithm is:\n"
  "\n"
  "   *  Omit leading/trailing whitespace\n"
  "   *  Collapse internal whitespace into a single space character.\n"
  "   *  Attempt to break lines at whitespace or at a hyphen.\n"
  "\n"
  "Use --whitespace, --origbreak, --trimcrlf, --trimspace,\n"
  "and/or --wordbreak to disable the canonical processing and do\n"
  "the special processing specified by those other options.\n"
  "\n"
  "Options:\n"
  "  --decode           Decode the text using the same method used when\n"
  "                     handling the value of a C-card from a manifest.\n"
  "  --file FILE        Omit the TEXT argument and read the comment text\n"
  "                     from FILE.\n"
  "  --indent           Number of spaces to indent (default (-1) is to\n"
  "                     auto-detect).  Zero means no indent.\n"
  "  --orig FILE        Take the value for the ORIGTEXT argument from FILE.\n"
  "  --origbreak        Attempt to break when the original comment text\n"
  "                     is detected.\n"
  "  --trimcrlf         Enable trimming of leading/trailing CR/LF.\n"
  "  --trimspace        Enable trimming of leading/trailing spaces.\n"
  "  --whitespace       Keep all internal whitespace.\n"
  "  --wordbreak        Attempt to break lines on word boundaries.\n"
  "  -W|--width NUM     Width of lines (default (-1) is to auto-detect).\n"
  "                     Zero means no limit.";
static const char zHelp106[] =
  "Usage: %fossil test-commit-warning ?OPTIONS?\n"
  "\n"
  "Check each file in the check-out, including unmodified ones, using all\n"
  "the pre-commit checks.\n"
  "\n"
  "Options:\n"
  "   --no-settings     Do not consider any glob settings.\n"
  "   -v|--verbose      Show per-file results for all pre-commit checks.\n"
  "\n"
  "See also: commit, extras";
static const char zHelp052[] =
  "Usage: %fossil test-compress INPUTFILE OUTPUTFILE\n"
  "\n"
  "Run compression on INPUTFILE and write the result into OUTPUTFILE.\n"
  "\n"
  "This is used to test and debug the blob_compress() routine.";
static const char zHelp053[] =
  "Usage: %fossil test-compress-2 IN1 IN2 OUT\n"
  "\n"
  "Read files IN1 and IN2, concatenate the content, compress the\n"
  "content, then write results into OUT.\n"
  "\n"
  "This is used to test and debug the blob_compress2() routine.";
static const char zHelp516[] =
  "Usage: %fossil test-contains-selector FILENAME SELECTOR\n"
  "\n"
  "Determine if the CSS stylesheet FILENAME contains SELECTOR.\n"
  "\n"
  "Note that as of 2020-05-28, the default rules are always emitted,\n"
  "so the containsSelector() logic is no longer applied when emitting\n"
  "style.css. It is unclear whether this test command is now obsolete\n"
  "or whether it may still serve a purpose.";
static const char zHelp130[] =
  "Usage:  %fossil RID SRCID SRCID ...  [-force]\n"
  "\n"
  "Convert the content at RID into a delta one of the from SRCIDs.";
static const char zHelp134[] =
  "Usage: %fossil test-content-erase RID ....\n"
  "\n"
  "Remove all traces of one or more artifacts from the local repository.\n"
  "\n"
  "WARNING: This command destroys data and can cause you to lose work.\n"
  "Make sure you have a backup copy before using this command!\n"
  "\n"
  "WARNING: You must run \"fossil rebuild\" after this command to rebuild\n"
  "the metadata.\n"
  "\n"
  "Note that the arguments are the integer raw RID values from the BLOB table,\n"
  "not artifact hashes or labels.";
static const char zHelp128[] =
  "Usage: %fossil test-content-put FILE\n"
  "\n"
  "Read the content of FILE and add it to the Blob table as a new\n"
  "artifact using a direct call to content_put().";
static const char zHelp127[] =
  "Extract a blob from the database and write it into a file.  This\n"
  "version does not expand the delta.";
static const char zHelp129[] =
  "Make sure the content at RECORDID is not a delta";
static const char zHelp455[] =
  "Usage: fossil test-convert-stext FILE MIMETYPE\n"
  "\n"
  "Read the content of FILE and convert it to stext according to MIMETYPE.\n"
  "Send the result to standard output.";
static const char zHelp426[] =
  "Create clusters for all unclustered artifacts if the number of unclustered\n"
  "artifacts exceeds the current clustering threshold.";
static const char zHelp383[] =
  "Usage:  %fossil test-crosslink RECORDID\n"
  "\n"
  "Run the manifest_crosslink() routine on the artifact with the given\n"
  "record ID.  This is typically done in the debugger.";
static const char zHelp055[] =
  "Compress and uncompress each file named on the command line.\n"
  "Verify that the original content is recovered.";
static const char zHelp224[] =
  "Print the names of the various database files:\n"
  "(1) The main repository database\n"
  "(2) The local check-out database\n"
  "(3) The global configuration database";
static const char zHelp105[] =
  "Usage: %fossil test-date-format DATE-STRING...\n"
  "\n"
  "Convert the DATE-STRING into the standard format used in artifacts\n"
  "and display the result.";
static const char zHelp137[] =
  "Usage: %fossil test-db-exec-error\n"
  "\n"
  "Invoke the db_exec() interface with an erroneous SQL statement\n"
  "in order to verify the error handling logic.";
static const char zHelp138[] =
  "Usage: %fossil test-db-prepare ?OPTIONS? SQL-STATEMENT\n"
  "\n"
  "Options:\n"
  "  --auth-report   Enable the ticket report query authorizer\n"
  "  --auth-ticket   Enable the ticket schema query authorizer\n"
  "\n"
  "Invoke db_prepare() on the SQL input.  Report any errors encountered.\n"
  "This command is used to verify error detection logic in the db_prepare()\n"
  "utility routine.";
static const char zHelp264[] =
  "Usage: %fossil test-decode64 STRING";
static const char zHelp229[] =
  "Usage: %fossil test-delta FILE1 FILE2\n"
  "\n"
  "Read two files named on the command-line.  Create and apply deltas\n"
  "going in both directions.  Verify that the original files are\n"
  "correctly recovered.";
static const char zHelp227[] =
  "Usage: %fossil test-delta-analyze FILE1 FILE2\n"
  "\n"
  "Create and a delta that carries FILE1 into FILE2.  Print the\n"
  "number bytes copied and the number of bytes inserted.";
static const char zHelp228[] =
  "Usage: %fossil test-delta-apply FILE1 DELTA FILE2\n"
  "\n"
  "Apply DELTA to FILE1 and output the result in FILE2.";
static const char zHelp226[] =
  "Usage: %fossil test-delta-create FILE1 FILE2 DELTA\n"
  "\n"
  "Create and output a delta that carries FILE1 into FILE2.\n"
  "Store the result in DELTA.";
static const char zHelp398[] =
  "Usage: %fossil test-describe-artifacts [--from S] [--count N]\n"
  "\n"
  "Display a one-line description of every artifact.";
static const char zHelp235[] =
  "Usage: %fossil xdiff [options] FILE1 FILE2\n"
  "\n"
  "Compute an \"external diff\" between two files. By \"external diff\" we mean\n"
  "a diff between two disk files that are not necessarily under management.\n"
  "In other words, this command provides a mechanism to use Fossil's file\n"
  "difference engine on arbitrary disk files.  See the \"diff\" command for\n"
  "computing differences between files that are under management.\n"
  "\n"
  "This command prints the differences between the two files FILE1 and FILE2.\n"
  "all of the usual diff formatting options (--tk, --by, -c N, etc.) apply.\n"
  "See the \"diff\" command for a full list of command-line options.";
static const char zHelp289[] =
  "Usage: %fossil test-dir-list NAME [GLOB] [OPTIONS]\n"
  "\n"
  "Return the names of up to N objects in the directory NAME.  If GLOB is\n"
  "provided, then only show objects that match the GLOB pattern.\n"
  "\n"
  "This command is intended for testing the file_directory_list() function.\n"
  "\n"
  "Options:\n"
  "\n"
  "     --count           Only count files, do not list them.\n"
  "     --limit N         Only show the first N files seen\n"
  "     --nodots          Do not show or count files that start with '.'";
static const char zHelp379[] =
  "Usage:  %fossil test-echo [--hex] ARGS...\n"
  "\n"
  "Echo all command-line arguments (enclosed in [...]) to the screen so that\n"
  "wildcard expansion behavior of the host shell can be investigated.\n"
  "\n"
  "With the --hex option, show the output as hexadecimal.  This can be used\n"
  "to verify the fossil_path_to_utf8() routine on Windows and Mac.";
static const char zHelp365[] =
  "Usage:  fossil test-email-used EMAIL ...\n"
  "\n"
  "Given a list of email addresses, show the UID and LOGIN associated\n"
  "with each one.";
static const char zHelp263[] =
  "Usage: %fossil test-encode64 STRING";
static const char zHelp550[] =
  "Usage: fossil test-endpoint BASE TAG ?OPTIONS?\n"
  "\n"
  "Show the first check-in with TAG that is a descendant or ancestor\n"
  "of BASE.  The first descendant check-in is shown by default.  Use\n"
  "the --backto to see the first ancestor check-in.\n"
  "\n"
  "Options:\n"
  "\n"
  "     --backto            Show ancestor.  Others defaults to descendants.";
static const char zHelp056[] =
  "Usage %fossil ARGS ...\n"
  "\n"
  "Run each argument through blob_append_escaped_arg() and show the\n"
  "result.  Append each argument to \"fossil test-echo\" and run that\n"
  "using fossil_system() to verify that it really does get escaped\n"
  "correctly.\n"
  "\n"
  "Other options:\n"
  "\n"
  "   --filename-args BOOL      Subsequent arguments are assumed to be\n"
  "                             filenames if BOOL is true, or not if BOOL\n"
  "                             is false.  Defaults on.\n"
  "\n"
  "   --hex HEX                 Skip the --hex flag and instead decode HEX\n"
  "                             into ascii.  This provides a way to insert\n"
  "                             unusual characters as an argument for testing.\n"
  "\n"
  "   --compare HEX ASCII       Verify that argument ASCII is identical to\n"
  "                             to decoded HEX.\n"
  "\n"
  "   --fuzz N                  Run N fuzz cases.  Each case is a call\n"
  "                             to \"fossil test-escaped-arg --compare HEX ARG\"\n"
  "                             where HEX and ARG are the same argument.\n"
  "                             The argument is chosen at random.";
static const char zHelp266[] =
  "Usage:  fossil test-etag -key KEY-NUMBER  -hash HASH\n"
  "\n"
  "Generate an etag given a KEY-NUMBER and/or a HASH.\n"
  "\n"
  "KEY-NUMBER is some combination of:\n"
  "\n"
  "   1   ETAG_CONFIG   The config table version number\n"
  "   2   ETAG_DATA     The event table version number\n"
  "   4   ETAG_COOKIE   The display cookie";
static const char zHelp277[] =
  "Usage: %fossil test-file-copy SOURCE DESTINATION\n"
  "\n"
  "Make a copy of the file at SOURCE into a new name DESTINATION.  Any\n"
  "directories in the path leading up to DESTINATION that do not already\n"
  "exist are created automatically.";
static const char zHelp283[] =
  "Usage: %fossil test-file-environment FILENAME...\n"
  "\n"
  "Display the effective file handling subsystem \"settings\" and then\n"
  "display file system information about the files specified, if any.\n"
  "\n"
  "Options:\n"
  "    --allow-symlinks BOOLEAN     Temporarily turn allow-symlinks on/off\n"
  "    --open-config                Open the configuration database first\n"
  "    --reset                      Reset cached stat() info for each file\n"
  "    --root ROOT                  Use ROOT as the root of the check-out\n"
  "    --slash                      Trailing slashes, if any, are retained";
static const char zHelp063[] =
  "Usage: %fossil test-fileage CHECKIN";
static const char zHelp634[] =
  "Usage: %fossil test-filezip [OPTIONS] ZIPFILE [FILENAME...]\n"
  "\n"
  "This command uses Fossil infrastructure or read or create a ZIP\n"
  "archive named by the ZIPFILE argument.  With no options, a new\n"
  "ZIP archive is created and there must be at least one FILENAME\n"
  "argument. If the -l option is used, the contents of the named ZIP\n"
  "archive are listed on standard output.  With the -x argument, the\n"
  "contents of the ZIP archive are extracted.\n"
  "\n"
  "There are two purposes for this command:  (1) To server as a test\n"
  "platform for the Fossil ZIP archive generator, and (2) to provide\n"
  "rudimentary ZIP archive creation capabilities on platforms that do\n"
  "not have the \"zip\" command installed.\n"
  "\n"
  "Options:\n"
  "\n"
  "   -h|--dereference    Follow symlinks\n"
  "   -l|--list           List the contents of the ZIP archive\n"
  "   -x|--extract        Extract files from a ZIP archive";
static const char zHelp501[] =
  "Usage: %fossil test-find-mx DOMAIN ...\n"
  "\n"
  "Do a DNS MX lookup to find the hostname for sending email for\n"
  "DOMAIN.";
static const char zHelp225[] =
  "Usage: %fossil test-fingerprint ?RCVID?\n"
  "\n"
  "Display the repository fingerprint using the supplied RCVID or\n"
  "using the latest RCVID if none is given on the command line.\n"
  "Show both the legacy and the newer version of the fingerprint,\n"
  "and the currently stored fingerprint if there is one.";
static const char zHelp298[] =
  "Usage: %fossil test-forumthread [THREADID]\n"
  "\n"
  "Display a summary of all messages on a thread THREADID.  If the\n"
  "THREADID argument is omitted, then show a list of all threads.\n"
  "\n"
  "This command is intended for testing an analysis only.";
static const char zHelp595[] =
  "Read lines of input and send them to fossil_system() for evaluation.\n"
  "Use this command to verify that fossil_system() will not run \"unsafe\"\n"
  "commands.";
static const char zHelp315[] =
  "Usage: %fossil test-fuzz [-fuzztype TYPE] INPUTFILE...\n"
  "\n"
  "Run a fuzz test using INPUTFILE as the test data.  TYPE can be one of:\n"
  "\n"
  "    comformat             Fuzz the comment_print() routine\n"
  "    wiki                  Fuzz the Fossil-wiki translator\n"
  "    markdown              Fuzz the markdown translator\n"
  "    artifact              Fuzz the artifact parser\n"
  "    wiki2                 Fuzz the Fossil-wiki and markdown translator";
static const char zHelp597[] =
  "Usage: %fossil test-generate-uuid\n"
  "\n"
  "Generate a version 4 (\"random\"), variant 1 UUID (RFC 9562, Section 5.4):\n"
  "\n"
  "    xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx  - where  M=4  and  N=8, 9, a, or b";
static const char zHelp316[] =
  "Usage:  %fossil test-glob PATTERN STRING...\n"
  "\n"
  "PATTERN is a comma- and whitespace-separated list of optionally\n"
  "quoted glob patterns.  Show which of the STRINGs that follow match\n"
  "the PATTERN.\n"
  "\n"
  "If PATTERN begins with \"@\" the rest of the pattern is understood\n"
  "to be a setting name (such as binary-glob, crln-glob, or encoding-glob)\n"
  "and the value of that setting is used as the actually glob pattern.\n"
  "\n"
  "The output consists of two numbers and a STRING.  The first number\n"
  "is the result of glob_match() and the second is the result of\n"
  "glob_multi_match().";
static const char zHelp433[] =
  "Usage: %fossil test-grep REGEXP [FILE...]\n"
  "\n"
  "Run a regular expression match over the named disk files, or against\n"
  "standard input if no disk files are named on the command-line.\n"
  "\n"
  "Options:\n"
  "  -i|--ignore-case    Ignore case\n"
  "  --robot-exception   Use the robot-exception setting as the REGEXP";
static const char zHelp317[] =
  "Usage: %fossil test-gzip FILENAME\n"
  "\n"
  "Compress a file using gzip.";
static const char zHelp118[] =
  "Usage: %fossil test-hash-color TAG ...\n"
  "\n"
  "Print out the color names associated with each tag.  Used for\n"
  "testing the hash_color() function.";
#if 0
static const char zHelp429[] =
  "Usage: %fossil test-hash-from-path ?OPTIONS? DESTINATION UUID\n"
  "\n"
  "Generate a sample path name from DESTINATION and UUID, as the `deconstruct'\n"
  "command would do.  Then try to guess the hash policy from the path name, as\n"
  "the `reconstruct' command would do.\n"
  "\n"
  "No files or directories will be created.\n"
  "\n"
  "Options:\n"
  "  -L|--prefixlength N     Set the length of the names of the DESTINATION\n"
  "                          subdirectories to N";
#endif
static const char zHelp590[] =
  "Usage: %fossil test-hash-passwords REPOSITORY\n"
  "\n"
  "Convert all local password storage to use a SHA1 hash of the password\n"
  "rather than cleartext.  Passwords that are already stored as the SHA1\n"
  "has are unchanged.";
static const char zHelp621[] =
  "Run the htmlTidy() routine on the content of all files named on\n"
  "the command-line and write the results to standard output.";
static const char zHelp622[] =
  "Usage: %fossil test-html-to-text [OPTIONS] FILE ...\n"
  "\n"
  "Read all files named on the command-line.  Convert the file\n"
  "content from HTML to text and write the results on standard\n"
  "output.\n"
  "\n"
  "This command is intended as a test and debug interface for\n"
  "the html_to_plaintext() routine.\n"
  "\n"
  "Options:\n"
  "\n"
  "    --vt100              Translate <mark> and </mark> into ANSI/VT100\n"
  "                         escapes to highlight the contained text.";
static const char zHelp620[] =
  "Tokenize an HTML file.  Return the offset and length and text of\n"
  "each token - one token per line.  Omit white-space tokens.";
static const char zHelp376[] =
  "Works like the [[http]] command but gives setup permission to all users,\n"
  "or whatever permission is described by \"--usercap CAP\".\n"
  "\n"
  "This command can used for interactive debugging of web pages.  For\n"
  "example, one can put a simple HTTP request in a file like this:\n"
  "\n"
  "    echo 'GET /timeline' >request.txt\n"
  "\n"
  "Then run (in a debugger) a command like this:\n"
  "\n"
  "    fossil test-http <request.txt\n"
  "\n"
  "This command is also used internally by the \"ssh\" sync protocol.  Some\n"
  "special processing to support sync happens when this command is run\n"
  "and the SSH_CONNECTION environment variable is set.  Use the --test\n"
  "option on interactive sessions to avoid that special processing when\n"
  "using this command interactively over SSH.  A better solution would be\n"
  "to use a different command for \"ssh\" sync, but we cannot do that without\n"
  "breaking legacy.\n"
  "\n"
  "Options:\n"
  "  --csrf-safe N       Set cgi_csrf_safe() to return N\n"
  "  --nobody            Pretend to be user \"nobody\"\n"
  "  --ssh-sim           Pretend to be over an SSH connection\n"
  "  --test              Do not do special \"sync\" processing when operating\n"
  "                      over an SSH link\n"
  "  --th-trace          Trace TH1 execution (for debugging purposes)\n"
  "  --usercap   CAP     User capability string (Default: \"sxy\")";
static const char zHelp322[] =
  "Usage: %fossil test-httpmsg ?OPTIONS? URL ?PAYLOAD? ?OUTPUT?\n"
  "\n"
  "Send an HTTP message to URL and get the reply. PAYLOAD is a file containing\n"
  "the payload, or \"-\" to read payload from standard input.  A POST message\n"
  "is sent if PAYLOAD is specified and is non-empty.  If PAYLOAD is omitted\n"
  "or is an empty file, then a GET message is sent.\n"
  "\n"
  "If a second filename (OUTPUT) is given after PAYLOAD, then the reply\n"
  "is written into that second file instead of being written on standard\n"
  "output.  Use the \"--out OUTPUT\" option to specify an output file for\n"
  "a GET request where there is no PAYLOAD.\n"
  "\n"
  "Options:\n"
  "    --compress                 Use ZLIB compression on the payload\n"
  "    --mimetype TYPE            Mimetype of the payload\n"
  "    --no-cert-verify           Disable TLS cert verification\n"
  "    --out FILE                 Store the reply in FILE\n"
  "    --subpath PATH             HTTP request path for ssh: and file: URLs\n"
  "    -v                         Verbose output\n"
  "    --xfer                     PAYLOAD in a Fossil xfer protocol message";
static const char zHelp131[] =
  "Verify that all content can be extracted from the BLOB table correctly.\n"
  "If the BLOB table is correct, then the repository can always be\n"
  "successfully reconstructed using \"fossil rebuild\".\n"
  "\n"
  "Options:\n"
  "   -d|--db-only       Run \"PRAGMA integrity_check\" on the database only.\n"
  "                      No other validation is performed.\n"
  "   --parse            Parse all manifests, wikis, tickets, events, and\n"
  "                      so forth, reporting any errors found.\n"
  "   --quick            Run \"PRAGMA quick_check\" on the database only.\n"
  "                      No other validation is performed.";
#if defined(_WIN32)
static const char zHelp279[] =
  "Usage: %fossil test-is-normal-dir NAME...\n"
  "\n"
  "Returns non-zero if the specified names represent real directories, i.e.\n"
  "not junctions, symbolic links, etc.";
#endif
static const char zHelp142[] =
  "Usage: %fossil test-is-repo FILENAME...\n"
  "\n"
  "Test whether the specified files look like a SQLite database\n"
  "containing a Fossil repository schema.";
static const char zHelp291[] =
  "Usage: %fossil test-is-reserved-name FILENAMES...\n"
  "\n"
  "Passes each given name to file_is_reserved_name() and outputs one\n"
  "line per file: the result value of that function followed by the\n"
  "name.";
static const char zHelp359[] =
  "Read lines of text from standard input.  Interpret each line of text\n"
  "as a User-Agent string from an HTTP header.  Label each line as HUMAN\n"
  "or ROBOT.";
static const char zHelp050[] =
  "Verify that the fossil_isspace() routine is working correctly by\n"
  "testing it on all possible inputs.";
static const char zHelp069[] =
  "Usage: %fossil test-js-once filename";
static const char zHelp355[] =
  "Usage: %fossil NAME ...\n"
  "\n"
  "Resolve each name on the command line and call leaf_ambiguity_warning()\n"
  "for each resulting RID.";
static const char zHelp233[] =
  "Usage: %fossil% test-line-diff STRING1 STRING2\n"
  "\n"
  "Show the differences between the two strings.  Used for testing\n"
  "the oneLineChange() routine in the diff logic.";
static const char zHelp234[] =
  "Usage: %fossil test-line-match STRING1 STRING2\n"
  "\n"
  "Return a score from 0 to 100 that is how similar STRING1 is to\n"
  "STRING2.  Smaller numbers mean more similar.  0 is an exact match.\n"
  "\n"
  "This command is used to test to match_dline() function in the\n"
  "internal Fossil diff logic.";
static const char zHelp340[] =
  "Usage: %fossil test-line-numbers FILE ?LN-SPEC?";
static const char zHelp041[] =
  "Usage: %fossil test-list-attachments ?-latest? ?TargetName(s)...?\n"
  "\n"
  "List attachments for one or more attachment targets. The target\n"
  "name arguments are glob prefixes for the attachment.target\n"
  "field. If no names are provided then a prefix of [a-zA-Z] is used,\n"
  "which will match most wiki page names and some ticket hashes.\n"
  "\n"
  "Options:\n"
  "   -latest    List only the latest version of a given attachment";
static const char zHelp436[] =
  "Usage: %fossil test-list-page DIRECTORY\n"
  "\n"
  "Show all repositories underneath DIRECTORY.  Or if DIRECTORY is \"/\"\n"
  "show all repositories in the ~/.fossil file.";
static const char zHelp252[] =
  "List all web pages.";
static const char zHelp356[] =
  "%fossil test-loadavg\n"
  "\n"
  "Print the load average on the host machine.";
static const char zHelp370[] =
  "Read lines of input from files named as arguments (or from standard\n"
  "input if no arguments are provided) and print those that look like they\n"
  "might be part of an SQL injection attack.\n"
  "\n"
  "Used to test the looks_lile_attack() utility subroutine, possibly\n"
  "by piping in actual server log data.";
static const char zHelp369[] =
  "Usage:  %fossil test-looks-like-utf FILENAME\n"
  "\n"
  "Options:\n"
  "   -n|--limit N     Repeat looks-like function N times, for\n"
  "                    performance measurement. Default = 1\n"
  "   --utf8           Ignoring BOM and file size, force UTF-8 checking\n"
  "   --utf16          Ignoring BOM and file size, force UTF-16 checking\n"
  "\n"
  "FILENAME is the name of a file to check for textual content in the UTF-8\n"
  "and/or UTF-16 encodings.";
static const char zHelp010[] =
  "Usage: %fossil test-mailbox-hashname HUMAN-NAME ...\n"
  "\n"
  "Return the mailbox hash name corresponding to each human-readable\n"
  "name on the command line.  This is a test interface for the\n"
  "alert_mailbox_name() function.";
static const char zHelp146[] =
  "Usage: %fossil test-manifest-setting VERSION VERSION ...\n"
  "\n"
  "Display the value for the \"manifest\" setting for various versions\n"
  "of the repository.";
static const char zHelp619[] =
  "Usage: %fossil test-markdown-render FILE ...\n"
  "\n"
  "Render markdown in FILE as HTML on stdout.\n"
  "Options:\n"
  "\n"
  "   --dark-pikchr     Render pikchrs in dark mode\n"
  "   --lint-footnotes  Print stats for footnotes-related issues\n"
  "   --safe            Restrict the output to use only \"safe\" HTML\n"
  "   --text            Run the output through html_to_plaintext().";
static const char zHelp451[] =
  "Usage: %fossil test-match SEARCHSTRING FILE1 FILE2 ...\n"
  "\n"
  "Run the full-scan search algorithm using SEARCHSTRING against\n"
  "the text of the files listed.  Output matches and snippets.\n"
  "\n"
  "Options:\n"
  "   --begin TEXT        Text to insert before each match\n"
  "   --end TEXT          Text to insert after each match\n"
  "   --gap TEXT          Text to indicate elided content\n"
  "   --html              Input is HTML\n"
  "   --static            Use the static Search object";
static const char zHelp255[] =
  "Usage: %fossil test-mimetype FILENAME...\n"
  "\n"
  "Return the deduced mimetype for each file listed.\n"
  "\n"
  "If Fossil is compiled with -DFOSSIL_DEBUG then the \"mimetype-test\"\n"
  "filename is special and verifies the integrity of the mimetype table.\n"
  "It should return \"ok\".";
static const char zHelp133[] =
  "Usage: %fossil test-missing\n"
  "\n"
  "Look at every artifact in the repository and verify that\n"
  "all references are satisfied.  Report any referenced artifacts\n"
  "that are missing or shunned.\n"
  "\n"
  "Options:\n"
  "   --notshunned          Do not report shunned artifacts\n"
  "   -q|--quiet            Only show output if there are errors";
static const char zHelp143[] =
  "Usage: %fossil test-move-repository PATHNAME\n"
  "\n"
  "Change the location of the repository database on a local check-out.\n"
  "Use this command to avoid having to close and reopen a check-out\n"
  "when relocating the repository database.";
static const char zHelp411[] =
  "Usage: %fossil test-name-changes [--debug] VERSION1 VERSION2\n"
  "\n"
  "Show all filename changes that occur going from VERSION1 to VERSION2";
static const char zHelp393[] =
  "Usage:  %fossil test-name-to-id [--count N] [--type ARTIFACT_TYPE] NAME\n"
  "\n"
  "Convert a NAME to a full artifact ID.  Repeat the conversion N\n"
  "times (for timing purposes) if the --count option is given.";
static const char zHelp265[] =
  "For each command-line argument X, run both obscure(X) and\n"
  "unobscure(obscure(X)) and print the results.  This is used for testing\n"
  "and debugging of the obscure() and unobscure() functions.";
static const char zHelp132[] =
  "Search the repository for orphaned artifacts.";
static const char zHelp382[] =
  "Usage: %fossil test-parse-all-blobs ?OPTIONS?\n"
  "\n"
  "Parse all entries in the BLOB table that are believed to be non-data\n"
  "artifacts and report any errors.  Run this test command on historical\n"
  "repositories after making any changes to the manifest_parse()\n"
  "implementation to confirm that the changes did not break anything.\n"
  "\n"
  "Options:\n"
  "  --limit N            Parse no more than N artifacts before stopping\n"
  "  --wellformed         Use all BLOB table entries as input, not just\n"
  "                       those entries that are believed to be valid\n"
  "                       artifacts, and verify that the result the\n"
  "                       manifest_is_well_formed() agrees with the\n"
  "                       result of manifest_parse().";
static const char zHelp381[] =
  "Usage: %fossil test-parse-manifest FILENAME ?N?\n"
  "\n"
  "Parse the manifest(s) given on the command-line and report any\n"
  "errors.  If the N argument is given, run the parsing N times.";
static const char zHelp405[] =
  "Usage: %fossil test-phantoms\n"
  "\n"
  "Show all phantom artifacts.  A phantom artifact is one for which there\n"
  "is no content. Options:\n"
  "\n"
  "  --count            Show only a count of the number of phantoms.\n"
  "  --delta            Show all delta-phantoms.  A delta-phantom is a\n"
  "                     artifact for which there is a delta but the delta\n"
  "                     source is a phantom.\n"
  "  --list             Just list the phantoms.  Do not try to describe them.";
static const char zHelp417[] =
  "This command is used for testing the PQueue object.  There are one\n"
  "or more arguments, each of the form:\n"
  "\n"
  "    (1)    NUMBER/TEXT\n"
  "    (2)    ^\n"
  "    (3)    -v\n"
  "\n"
  "Form (1) arguments add an entry to the queue with value NUMBER and\n"
  "content TEXT.  Form (2) pops off the queue entry with the smallest\n"
  "value.  Form (3) (the -v option) causes the heap to be displayed after\n"
  "each subsequent operation.";
static const char zHelp046[] =
  "Usage: %fossil [--sleep N] PROCESS-ID ...\n"
  "\n"
  "Show the current process id, and also tell whether or not all other\n"
  "processes IDs on the command line are running or not.  If the --sleep N\n"
  "option is provide, then sleep for N seconds before exiting.";
static const char zHelp592[] =
  "Usage: %fossil test-prompt-password PROMPT VERIFY\n"
  "\n"
  "Prompts the user for a password and then prints it verbatim.\n"
  "\n"
  "Behavior is controlled by the VERIFY parameter:\n"
  "\n"
  "    0     Just ask once.\n"
  "\n"
  "    1     If the first answer is a non-empty string, ask for\n"
  "          verification.  Repeat if the two strings do not match.\n"
  "\n"
  "    2     Ask twice, repeat if the strings do not match.";
static const char zHelp591[] =
  "Usage: %fossil test-prompt-user PROMPT\n"
  "\n"
  "Prompts the user for input and then prints it verbatim (i.e. without\n"
  "a trailing line terminator).";
static const char zHelp596[] =
  "Usage: %fossil test-random-password [N] [--entropy]\n"
  "\n"
  "Generate a random password string of approximately N characters in length.\n"
  "If N is omitted, use 12.  Values of N less than 8 are changed to 8\n"
  "and greater than 57 and changed to 57.\n"
  "\n"
  "If the --entropy flag is included, the number of bits of entropy in\n"
  "the password is show as well.";
static const char zHelp285[] =
  "Test the operation of the relative name generator.";
static const char zHelp045[] =
  "Usage: %fossil test-relink-wiki  WIKI-PAGE-NAME\n"
  "\n"
  "Run the backlink_wiki_refresh() procedure on the wiki page\n"
  "named.  WIKI-PAGE-NAME can be a glob pattern or a prefix\n"
  "of the wiki page.";
static const char zHelp000[] =
  "Usage: %fossil test-reserved-names [-omitrepo]\n"
  "\n"
  "Show all reserved filenames for the current check-out.";
static const char zHelp363[] =
  "Usage: fossil test-resetpw-url UID\n"
  "\n"
  "Generate and verify a /resetpw URL for user UID.\n"
  "\n"
  "This command is intended for unit testing the login_resetpw_suffix()\n"
  "and login_resetpw_suffix_is_valid() functions.";
static const char zHelp624[] =
  "Usage: %fossil test-safe-html FILE ...\n"
  "\n"
  "Read files named on the command-line.  Send the text of each file\n"
  "through safe_html_append() and then write the result on\n"
  "standard output.";
static const char zHelp273[] =
  "Usage: %fossil ARG...\n"
  "\n"
  "This sanitizes each argument and make it part of an \"echo\" command\n"
  "run by the shell.";
static const char zHelp454[] =
  "Usage: fossil test-search-stext TYPE RID NAME\n"
  "\n"
  "Compute the search text for document TYPE-RID whose name is NAME.\n"
  "The TYPE is one of \"c\", \"d\", \"t\", \"w\", or \"e\".  The RID is the document\n"
  "ID.  The NAME is used to figure out a mimetype to use for formatting\n"
  "the raw document text.";
static const char zHelp278[] =
  "Usage: %fossil test-set-mtime FILENAME DATE/TIME\n"
  "\n"
  "Sets the mtime of the named file to the date/time shown.";
static const char zHelp409[] =
  "Usage: %fossil test-shortest-path [OPTIONS] VERSION1 VERSION2\n"
  "\n"
  "Report the shortest path between two check-ins.  Options:\n"
  "\n"
  "   --branch-cost N    Additional cost N for changing branches\n"
  "   --debug            Show debugging output\n"
  "   --one-way          One-way forwards in time, parent->child only\n"
  "   --no-merge         Follow only direct parent-child paths and omit\n"
  "                      merge links.";
static const char zHelp387[] =
  "Usage:  %fossil test-show-vfile\n"
  "\n"
  "Show the content of the VFILE table in a local check-out.";
static const char zHelp280[] =
  "Usage: %fossil test-simplify-name FILENAME...\n"
  "\n"
  "Print the simplified versions of each FILENAME.  This is used to test\n"
  "the file_simplify_name() routine.\n"
  "\n"
  "If FILENAME is of the form \"HOST:PATH\" or \"USER@HOST:PATH\", then remove\n"
  "and print the remote host prefix first.  This is used to test the\n"
  "file_skip_userhost() interface.";
static const char zHelp502[] =
  "Usage: %fossil test-smtp-probe DOMAIN [ME]\n"
  "\n"
  "Interact with the SMTP server for DOMAIN by setting up a connection\n"
  "and then immediately shutting it back down.  Log all interaction\n"
  "on the console.  Use ME as the domain name of the sender.\n"
  "\n"
  "Options:\n"
  "   --direct              Use DOMAIN directly without going through MX\n"
  "   --port N              Talk on TCP port N";
static const char zHelp504[] =
  "Usage: %fossil test-smtp-send EMAIL FROM TO ...\n"
  "\n"
  "Use SMTP to send the email message contained in the file named EMAIL\n"
  "to the list of users TO.  FROM is the sender of the email.\n"
  "\n"
  "Options:\n"
  "     --direct              Go directly to the TO domain.  Bypass MX lookup\n"
  "     --relayhost R         Use R as relay host directly for delivery.\n"
  "     --port N              Use TCP port N instead of 25\n"
  "     --trace               Show the SMTP conversation on the console";
static const char zHelp503[] =
  "Usage: %fossil test-smtp-senddata FILE\n"
  "\n"
  "Read content from FILE, then send it to stdout encoded as if sent\n"
  "to the DATA portion of an SMTP session.  This command is used to\n"
  "test the encoding logic.";
static const char zHelp321[] =
  "Usage: fossil test-ssh-needs-path ?HOSTNAME? ?BOOLEAN?\n"
  "\n"
  "With one argument, show whether or not the PATH= argument is included\n"
  "by default for HOSTNAME.  If the second argument is a boolean, then\n"
  "change the value.\n"
  "\n"
  "With no arguments, show all hosts for which ssh-needs-path is true.";
static const char zHelp051[] =
  "Usage: %fossil test-strip-comment-lines ?OPTIONS? INPUTFILE\n"
  "\n"
  "Read INPUTFILE and print it without comment lines (starting with '#').\n"
  "Keep lines starting with \"\\#\" but remove the initial backslash.\n"
  "\n"
  "This is used to test and debug the blob_strip_comment_lines() routine.\n"
  "\n"
  "Options:\n"
  "  -y|--side-by-side    Show diff of INPUTFILE and output side-by-side\n"
  "  -W|--width N         Width of lines in side-by-side diff";
static const char zHelp070[] =
  "Usage: %fossil test-subtree ?OPTIONS?\n"
  "\n"
  "Show the subset of check-ins that match the supplied options.  This\n"
  "command is used to test the subtree_from_options() subroutine in the\n"
  "implementation and does not really have any other practical use that\n"
  "we know of.\n"
  "\n"
  "Options:\n"
  "   --branch BRANCH           Include only check-ins on BRANCH\n"
  "   --from TAG                Start the subtree at TAG\n"
  "   --to TAG                  End the subtree at TAG\n"
  "   --checkin TAG             The subtree is the single check-in TAG\n"
  "   --all                     Include FILE and TAG artifacts\n"
  "   --exclusive               Include FILES exclusively on check-ins";
static const char zHelp349[] =
  "Show all symlinks that have been checked into a Fossil repository.\n"
  "\n"
  "This command does a linear scan through all check-ins and so might take\n"
  "several seconds on a large repository.";
static const char zHelp530[] =
  "Usage: %fossil test-tag (+|*|-)TAGNAME ARTIFACT-ID ?VALUE?\n"
  "\n"
  "Add a tag or anti-tag to the rebuildable tables of the local repository.\n"
  "No tag artifact is created so the new tag is erased the next\n"
  "time the repository is rebuilt.  This routine is for testing\n"
  "use only.";
static const char zHelp535[] =
  "Generate a GZIP-compressed tarball in the file given by the first argument\n"
  "that contains files given in the second and subsequent arguments.\n"
  "\n"
  "  -h|--dereference   Follow symlinks and archive the files they point to";
static const char zHelp287[] =
  "Usage:  fossil test-name [--time SUFFIX] [--tag NAME] BASENAME ...\n"
  "\n"
  "Generate temporary filenames derived from BASENAME.  Use the --time\n"
  "option to generate temp names based on the time of day.  If --tag NAME\n"
  "is specified, try to use NAME as the differentiator in the temp file.\n"
  "\n"
  "If --time is used, file_time_tempname() generates the filename.\n"
  "If BASENAME is present, file_tempname() generates the filename.\n"
  "Without --time or BASENAME, fossil_temp_filename() generates the filename.";
static const char zHelp543[] =
  "Usage: %fossil test-th-eval SCRIPT\n"
  "\n"
  "Evaluate SCRIPT as if it were a header or footer or ticket rendering\n"
  "script and show the results on standard output. SCRIPT may be either\n"
  "a filename or a string of th1 script code.\n"
  "\n"
  "Options:\n"
  "    --cgi                Include a CGI response header in the output\n"
  "    --http               Include an HTTP response header in the output\n"
  "    --open-config        Open the configuration database\n"
  "    --set-anon-caps      Set anonymous login capabilities\n"
  "    --set-user-caps      Set user login capabilities\n"
  "    --th-trace           Trace TH1 execution (for debugging purposes)";
#ifdef FOSSIL_ENABLE_TH1_HOOKS
static const char zHelp545[] =
  "Usage: %fossil test-th-hook TYPE NAME FLAGS\n"
  "\n"
  "Evaluates the TH1 script configured for the pre-operation (i.e. a command\n"
  "or web page) \"hook\" or post-operation \"notification\".  The results of the\n"
  "script evaluation, if any, will be printed to the standard output channel.\n"
  "The NAME argument must be the name of a command or web page; however, it\n"
  "does not necessarily have to be a command or web page that is normally\n"
  "recognized by Fossil.  The FLAGS argument will be used to set the value\n"
  "of the \"cmd_flags\" and/or \"web_flags\" TH1 variables, if applicable.  The\n"
  "TYPE argument must be one of the following:\n"
  "\n"
  "    cmdhook              Executes the TH1 procedure [command_hook], after\n"
  "                         setting the TH1 variables \"cmd_name\", \"cmd_args\",\n"
  "                         and \"cmd_flags\" to appropriate values.\n"
  "\n"
  "    cmdnotify            Executes the TH1 procedure [command_notify], after\n"
  "                         setting the TH1 variables \"cmd_name\", \"cmd_args\",\n"
  "                         and \"cmd_flags\" to appropriate values.\n"
  "\n"
  "    webhook              Executes the TH1 procedure [webpage_hook], after\n"
  "                         setting the TH1 variables \"web_name\", \"web_args\",\n"
  "                         and \"web_flags\" to appropriate values.\n"
  "\n"
  "    webnotify            Executes the TH1 procedure [webpage_notify], after\n"
  "                         setting the TH1 variables \"web_name\", \"web_args\",\n"
  "                         and \"web_flags\" to appropriate values.\n"
  "\n"
  "Options:\n"
  "    --cgi                Include a CGI response header in the output\n"
  "    --http               Include an HTTP response header in the output\n"
  "    --th-trace           Trace TH1 execution (for debugging purposes)";
#endif
static const char zHelp542[] =
  "Usage: %fossil test-th-render FILE\n"
  "\n"
  "Read the content of the file named \"FILE\" as if it were a header or\n"
  "footer or ticket rendering script, evaluate it, and show the results\n"
  "on standard output.\n"
  "\n"
  "Options:\n"
  "    --cgi                Include a CGI response header in the output\n"
  "    --http               Include an HTTP response header in the output\n"
  "    --open-config        Open the configuration database\n"
  "    --set-anon-caps      Set anonymous login capabilities\n"
  "    --set-user-caps      Set user login capabilities\n"
  "    --th-trace           Trace TH1 execution (for debugging purposes)";
static const char zHelp544[] =
  "Usage: %fossil test-th-source FILE\n"
  "\n"
  "Evaluate the contents of the file named \"FILE\" as if it were a header\n"
  "or footer or ticket rendering script and show the results on standard\n"
  "output.\n"
  "\n"
  "Options:\n"
  "    --cgi                Include a CGI response header in the output\n"
  "    --http               Include an HTTP response header in the output\n"
  "    --open-config        Open the configuration database\n"
  "    --set-anon-caps      Set anonymous login capabilities\n"
  "    --set-user-caps      Set user login capabilities\n"
  "    --th-trace           Trace TH1 execution (for debugging purposes)\n"
  "    --no-print-result    Do not output the final result. Use if it\n"
  "                         interferes with script output.";
static const char zHelp556[] =
  "Usage: %fossil test-ticket-rebuild TICKETID|all\n"
  "\n"
  "Rebuild the TICKET and TICKETCHNG tables for the given ticket ID\n"
  "or for ALL.";
static const char zHelp222[] =
  "Usage: %fossil test-timespan TIMESTAMP\n"
  "\n"
  "Print the approximate span of time from now to TIMESTAMP.";
static const char zHelp554[] =
  "Usage: %fossil test-timewarp-list ?-v|---verbose?\n"
  "\n"
  "Display all instances of child check-ins that appear earlier in time\n"
  "than their parent.  If the -v|--verbose option is provided, both the\n"
  "parent and child check-ins and their times are shown.";
static const char zHelp272[] =
  "Invoke the topological_sort_checkins() interface for testing\n"
  "purposes.";
static const char zHelp286[] =
  "Test the operation of the tree name generator.\n"
  "\n"
  "Options:\n"
  "  --absolute           Return an absolute path instead of a relative one\n"
  "  --case-sensitive B   Enable or disable case-sensitive filenames.  B is\n"
  "                       a boolean: \"yes\", \"no\", \"true\", \"false\", etc.";
static const char zHelp404[] =
  "Usage: %fossil test-unclustered\n"
  "\n"
  "Show all artifacts in the unclustered table";
static const char zHelp054[] =
  "Usage: %fossil test-uncompress IN OUT\n"
  "\n"
  "Read the content of file IN, uncompress that content, and write the\n"
  "result into OUT.  This command is intended for testing of the\n"
  "blob_compress() function.";
static const char zHelp403[] =
  "Usage: %fossil test-unsent\n"
  "\n"
  "Show all artifacts in the unsent table";
static const char zHelp587[] =
  "Usage: %fossil test-url-basenames URL ...\n"
  "\n"
  "This command is used for unit testing of the url_to_repo_basename()\n"
  "routine.  The command-line arguments are URL, presumably for remote\n"
  "Fossil repositories.  This command runs url_to_repo_basename() on each\n"
  "of those inputs and displays the result.";
static const char zHelp586[] =
  "Usage: %fossil test-urlparser URL ?options?\n"
  "\n"
  "   --prompt-pw     Prompt for password if missing\n"
  "   --remember      Store results in last-sync-url\n"
  "   --show-pw       Show the CONFIG-derived password in the output\n"
  "   --use-config    Pull URL and password from the CONFIG table\n"
  "   --use-parent    Use the parent project URL";
static const char zHelp485[] =
  "Usage: %fossil test-user-caps-changed caps1 caps2";
static const char zHelp589[] =
  "Usage: %fossil test-usernames\n"
  "\n"
  "Print details about sources of fossil usernames.";
static const char zHelp288[] =
  "Usage:  fossil test-valid-for-windows FILENAME ....\n"
  "\n"
  "Show which filenames are not valid for Windows";
static const char zHelp124[] =
  "Usage: %fossil test-var-get VAR ?FILE?\n"
  "\n"
  "Write the text of the VAR variable into FILE.  If FILE is \"-\"\n"
  "or is omitted then output goes to standard output.  VAR can be a\n"
  "GLOB pattern.\n"
  "\n"
  "If not in an open check-out, use the -R REPO option to specify a\n"
  "a repository.";
static const char zHelp123[] =
  "Usage: %fossil test-var-list ?PATTERN? ?--unset? ?--mtime?\n"
  "\n"
  "Show the content of the CONFIG table in a repository.  If PATTERN is\n"
  "specified, then only show the entries that match that glob pattern.\n"
  "Last modification time is shown if the --mtime option is present.\n"
  "\n"
  "If the --unset option is included, then entries are deleted rather than\n"
  "being displayed.  WARNING! This cannot be undone.  Be sure you know what\n"
  "you are doing!  The --unset option only works if there is a PATTERN.\n"
  "Probably you should run the command once without --unset to make sure\n"
  "you know exactly what is being deleted.\n"
  "\n"
  "If not in an open check-out, use the -R REPO option to specify a\n"
  "a repository.";
static const char zHelp125[] =
  "Usage: %fossil test-var-set VAR ?VALUE? ?--file FILE?\n"
  "\n"
  "Store VALUE or the content of FILE (exactly one of which must be\n"
  "supplied) into variable VAR.  Use a FILE of \"-\" to read from\n"
  "standard input.\n"
  "\n"
  "WARNING: changing the value of a variable can interfere with the\n"
  "operation of Fossil.  Be sure you know what you are doing.\n"
  "\n"
  "Use \"--blob FILE\" instead of \"--file FILE\" to load a binary blob\n"
  "such as a GIF.";
static const char zHelp598[] =
  "Verify all records in the repository.";
static const char zHelp396[] =
  "Usage: %fossil test-whatis-all\n"
  "\n"
  "Show \"whatis\" information about every artifact in the repository";
static const char zHelp282[] =
  "Usage: %fossil test-which ARGS...\n"
  "\n"
  "For each argument, search the PATH for the executable with the name\n"
  "and print its full pathname.\n"
  "\n"
  "See also the \"which\" command (without the \"test-\" prefix).  The plain\n"
  "\"which\" command is more convenient to use since it provides the -a/-all\n"
  "option, and because it is shorter.  The \"fossil which\" command without\n"
  "the \"test-\" prefix is recommended for day-to-day use.  This command is\n"
  "retained because it tests the internal file_fullexename() function\n"
  "whereas plain \"which\" does not.";
static const char zHelp618[] =
  "Usage: %fossil test-wiki-render FILE [OPTIONS]\n"
  "\n"
  "Translate the input FILE from Fossil-wiki into HTML and write\n"
  "the resulting HTML on standard output.\n"
  "\n"
  "Options:\n"
  "   --buttons        Set the WIKI_BUTTONS flag\n"
  "   --dark-pikchr    Render pikchrs in dark mode\n"
  "   --flow           Render as text using comment_format\n"
  "   --htmlonly       Set the WIKI_HTMLONLY flag\n"
  "   --inline         Set the WIKI_INLINE flag\n"
  "   --linksonly      Set the WIKI_LINKSONLY flag\n"
  "   -m TEXT          Use TEXT in place of the content of FILE\n"
  "   --mark           Add <mark>...</mark> around problems\n"
  "   --nobadlinks     Set the WIKI_NOBADLINKS flag\n"
  "   --text           Run the output through html_to_plaintext()\n"
  "   --type           Break down the return code from wiki_convert()";
static const char zHelp223[] =
  "Usage: %fossil test-without-rowid FILENAME...\n"
  "\n"
  "Change the Fossil repository FILENAME to make use of the WITHOUT ROWID\n"
  "optimization.  FILENAME can also be the configuration database file\n"
  "(~/.fossil or ~/.config/fossil.db) or a local .fslckout or _FOSSIL_ file.\n"
  "\n"
  "The purpose of this command is for testing the WITHOUT ROWID capabilities\n"
  "of SQLite.  There is no big advantage to using WITHOUT ROWID in Fossil.\n"
  "\n"
  "Options:\n"
  "   -n|--dry-run     No changes.  Just print what would happen.";
static const char zHelp627[] =
  "Usage: %fossil test-xfer ?OPTIONS? XFERFILE\n"
  "\n"
  "Pass the sync-protocol input file XFERFILE into the server-side sync\n"
  "protocol handler.  Generate a reply on standard output.\n"
  "\n"
  "This command was original created to help debug the server side of\n"
  "sync messages.  The XFERFILE is the uncompressed content of an\n"
  "\"xfer\" HTTP request from client to server.  This command interprets\n"
  "that message and generates the content of an HTTP reply (without any\n"
  "encoding and without the HTTP reply headers) and writes that reply\n"
  "on standard output.\n"
  "\n"
  "One possible usages scenario is to capture some XFERFILE examples\n"
  "using a command like:\n"
  "\n"
  "    fossil push http://bogus/ --httptrace\n"
  "\n"
  "The complete HTTP requests are stored in files named \"http-request-N.txt\".\n"
  "Find one of those requests, remove the HTTP header, and make other edits\n"
  "as necessary to generate an appropriate XFERFILE test case.  Then run:\n"
  "\n"
  "    fossil test-xfer xferfile.txt\n"
  "\n"
  "Options:\n"
  "   --host  HOSTNAME             Supply a server hostname used to populate\n"
  "                                g.zBaseURL and similar.";
#ifdef FOSSIL_ENABLE_TH1_DOCS
static const char zHelp212[] =
  "If enabled, this allows embedded documentation files to contain\n"
  "arbitrary TH1 scripts that are evaluated on the server.  If native\n"
  "Tcl integration is also enabled, this setting has the\n"
  "potential to allow anybody with check-in privileges to\n"
  "do almost anything that the associated operating system\n"
  "user account could do.  Extreme caution should be used\n"
  "when enabling this setting.";
#endif
#ifdef FOSSIL_ENABLE_TH1_HOOKS
static const char zHelp213[] =
  "If enabled, special TH1 commands will be called before and\n"
  "after any Fossil command or web page.";
#endif
static const char zHelp214[] =
  "This is the setup script to be evaluated after creating\n"
  "and initializing the TH1 interpreter.  By default, this\n"
  "is empty and no extra setup is performed.";
static const char zHelp215[] =
  "Specify which URI's are allowed in HTTP requests from\n"
  "TH1 scripts.  If empty, no HTTP requests are allowed\n"
  "whatsoever.";
static const char zHelp564[] =
  "Usage: %fossil ticket SUBCOMMAND ...\n"
  "\n"
  "Run various subcommands to control tickets\n"
  "\n"
  "> fossil ticket show (REPORTTITLE|REPORTNR) ?TICKETFILTER? ?OPTIONS?\n"
  "\n"
  "    Options:\n"
  "      -l|--limit LIMITCHAR\n"
  "      --quote\n"
  "      -R|--repository REPO\n"
  "\n"
  "    Run the ticket report, identified by the report format title\n"
  "    used in the GUI. The data is written as flat file on stdout,\n"
  "    using TAB as separator. The separator can be changed using\n"
  "    the -l or --limit option.\n"
  "\n"
  "    If TICKETFILTER is given on the command line, the query is\n"
  "    limited with a new WHERE-condition.\n"
  "      example:  Report lists a column # with the uuid\n"
  "                TICKETFILTER may be [#]='uuuuuuuuu'\n"
  "      example:  Report only lists rows with status not open\n"
  "                TICKETFILTER: status != 'open'\n"
  "\n"
  "    If --quote is used, the tickets are encoded by quoting special\n"
  "    chars (space -> \\s, tab -> \\t, newline -> \\n, cr -> \\r,\n"
  "    formfeed -> \\f, vtab -> \\v, nul -> \\0, \\ -> \\\\).\n"
  "    Otherwise, the simplified encoding as on the show report raw page\n"
  "    in the GUI is used. This has no effect in JSON mode.\n"
  "\n"
  "    Instead of the report title it's possible to use the report\n"
  "    number; the special report number 0 lists all columns defined in\n"
  "    the ticket table.\n"
  "\n"
  "> fossil ticket list fields\n"
  "> fossil ticket ls fields\n"
  "\n"
  "    List all fields defined for ticket in the fossil repository.\n"
  "\n"
  "> fossil ticket list reports\n"
  "> fossil ticket ls reports\n"
  "\n"
  "    List all ticket reports defined in the fossil repository.\n"
  "\n"
  "> fossil ticket set TICKETUUID (FIELD VALUE)+ ?--quote?\n"
  "> fossil ticket change TICKETUUID (FIELD VALUE)+ ?--quote?\n"
  "\n"
  "    Change ticket identified by TICKETUUID to set the values of\n"
  "    each field FIELD to VALUE.\n"
  "\n"
  "    Field names as defined in the TICKET table.  By default, these\n"
  "    names include: type, status, subsystem, priority, severity, foundin,\n"
  "    resolution, title, and comment, but other field names can be added\n"
  "    or substituted in customized installations.\n"
  "\n"
  "    If you use +FIELD, the VALUE is appended to the field FIELD.  You\n"
  "    can use more than one field/value pair on the command line.  Using\n"
  "    --quote enables the special character decoding as in \"ticket\n"
  "    show\", which allows setting multiline text or text with special\n"
  "    characters.\n"
  "\n"
  "> fossil ticket add FIELD VALUE ?FIELD VALUE .. ? ?--quote?\n"
  "\n"
  "    Like set, but create a new ticket with the given values.\n"
  "\n"
  "> fossil ticket history TICKETUUID\n"
  "\n"
  "    Show the complete change history for the ticket\n"
  "\n"
  "Note that the values in set|add are not validated against the\n"
  "definitions given in \"Ticket Common Script\".";
static const char zHelp437[] =
  "If this setting has a string value, then when the ticket\n"
  "search page query is blank, the report with this title is shown.\n"
  "If the setting is blank (default), then no report is shown.";
static const char zHelp552[] =
  "Usage: %fossil timeline ?WHEN? ?CHECKIN|DATETIME? ?OPTIONS?\n"
  "\n"
  "Print a summary of activity going backwards in date and time\n"
  "specified or from the current date and time if no arguments\n"
  "are given.  The WHEN argument can be any unique abbreviation\n"
  "of one of these keywords:\n"
  "\n"
  "    before\n"
  "    after\n"
  "    descendants | children\n"
  "    ancestors | parents\n"
  "\n"
  "The CHECKIN can be any unique prefix of 4 characters or more. You\n"
  "can also say \"current\" for the current version.\n"
  "\n"
  "DATETIME may be \"now\" or \"YYYY-MM-DDTHH:MM:SS.SSS\". If in\n"
  "year-month-day form, it may be truncated, the \"T\" may be replaced by\n"
  "a space, and it may also name a timezone offset from UTC as \"-HH:MM\"\n"
  "(westward) or \"+HH:MM\" (eastward). Either no timezone suffix or \"Z\"\n"
  "means UTC.\n"
  "\n"
  "\n"
  "Options:\n"
  "  -b|--branch BRANCH   Show only items on the branch named BRANCH\n"
  "  -c|--current-branch  Show only items on the current branch\n"
  "  -F|--format          Entry format. Values \"oneline\", \"medium\", and \"full\"\n"
  "                       get mapped to the full options below. Otherwise a\n"
  "                       string which can contain these placeholders:\n"
  "                           %n  newline\n"
  "                           %%  a raw %\n"
  "                           %H  commit hash\n"
  "                           %h  abbreviated commit hash\n"
  "                           %a  author name\n"
  "                           %d  date\n"
  "                           %c  comment (NL, TAB replaced by space, LF erased)\n"
  "                           %b  branch\n"
  "                           %t  tags\n"
  "                           %p  phase: zero or more of *CURRENT*, *MERGE*,\n"
  "                                     *FORK*, *UNPUBLISHED*, *LEAF*, *BRANCH*\n"
  "  --oneline            Show only short hash and comment for each entry\n"
  "  --medium             Medium-verbose entry formatting\n"
  "  --full               Extra verbose entry formatting\n"
  "  -n|--limit N         If N is positive, output the first N entries.  If\n"
  "                       N is negative, output the first -N lines.  If N is\n"
  "                       zero, no limit.  Default is -20 meaning 20 lines.\n"
  "  --offset P           Skip P changes\n"
  "  -p|--path PATH       Output items affecting PATH only.\n"
  "                       PATH can be a file or a subdirectory.\n"
  "  -q|--quiet           Do not print notifications at the end of the timeline. \n"
  "  -r|--reverse         Show items in chronological order.\n"
  "  -R REPO_FILE         Specifies the repository db to use. Default is\n"
  "                       the current check-out's repository.\n"
  "  --sql                Show the SQL used to generate the timeline\n"
  "  -t|--type TYPE       Output items from the given types only, such as:\n"
  "                           ci = file commits only\n"
  "                           e  = technical notes only\n"
  "                           f  = forum posts only\n"
  "                           t  = tickets only\n"
  "                           w  = wiki commits only\n"
  "  -u|--for-user USER   Only show items associated with USER\n"
  "  -v|--verbose         Output the list of files changed by each commit\n"
  "                       and the type of each change (edited, deleted,\n"
  "                       etc.) after the check-in comment.\n"
  "  -W|--width N         Width of lines (default is to auto-detect). N must be\n"
  "                       either greater than 20 or it must be zero 0 to\n"
  "                       indicate no limit, resulting in a single line per\n"
  "                       entry.";
static const char zHelp549[] =
  "This setting determines the default \"view style\" for timelines.\n"
  "The setting should be a single character, one of the following:\n"
  "\n"
  "   c     Compact\n"
  "   j     Columnar\n"
  "   m     Modern\n"
  "   s     Simple\n"
  "   v     Verbose\n"
  "   x     Classic\n"
  "\n"
  "The default value is m (Modern).";
static const char zHelp419[] =
  "If enabled, the timeline honors newline characters in check-in comments.\n"
  "In other words, newlines are converted into <br> for HTML display.\n"
  "The default behavior, when this setting is off, is that newlines are\n"
  "treated like any other whitespace character.";
static const char zHelp548[] =
  "Determine whether or not leaf check-ins are marked as such in the\n"
  "details section of the timeline.  The value is an integer between 0\n"
  "and 2:\n"
  "\n"
  "   0   Do not show any special marking for leaf check-ins.\n"
  "\n"
  "   1   Show just \"leaf\" or \"closed\"\n"
  "\n"
  "   2   Show \"Leaf\" or \"Closed-Leaf\" with emphasis\n"
  "\n"
  "The default is currently 1.  Prior to 2025-10-19, the default was 2.\n"
  "This setting has no effect on the \"Classic\" view, which always behaves\n"
  "as if the setting were 2.";
static const char zHelp418[] =
  "If enabled, no wiki-formatting is done for timeline comment messages.\n"
  "Hyperlinks are activated, but they show up on screen using the \n"
  "complete input text, not just the display text.  No other formatting\n"
  "is done.";
static const char zHelp546[] =
  "If enabled, check-in comments displayed on the timeline are truncated\n"
  "at the first blank line of the comment text.  The comment text after\n"
  "the first blank line is only seen in the /info or similar pages that\n"
  "show details about the check-in.";
static const char zHelp547[] =
  "The hyperlink on the timestamp associated with each timeline entry,\n"
  "on the far left-hand side of the screen, normally targets another\n"
  "/timeline page that shows the entry in context.  However, if this\n"
  "option is turned on, that hyperlink targets the /info page showing\n"
  "the details of the entry.";
static const char zHelp139[] =
  "If the timeline-utc setting is true, then Fossil tries to understand\n"
  "and display all time values using UTC.  If this setting is false, Fossil\n"
  "tries to understand and display time values using the local timezone.\n"
  "\n"
  "The word \"timeline\" in the name of this setting is historical.\n"
  "This setting applies to all user interfaces of Fossil,\n"
  "not just the timeline.\n"
  "\n"
  "Note that when accessing Fossil using the web interface, the localtime\n"
  "used is the localtime on the server, not on the client.";
static const char zHelp323[] =
  "Usage: %fossil ssl-config [SUBCOMMAND] [OPTIONS...] [ARGS...]\n"
  "\n"
  "This command is used to view or modify the TLS (Transport Layer\n"
  "Security) configuration for Fossil.  TLS (formerly SSL) is the\n"
  "encryption technology used for secure HTTPS transport.\n"
  "\n"
  "Sub-commands:\n"
  "\n"
  "   remove-exception DOMAINS    Remove TLS cert exceptions for the domains\n"
  "                               listed.  Or remove them all if the --all\n"
  "                               option is specified.\n"
  "\n"
  "   scrub ?--force?             Remove all SSL configuration data from the\n"
  "                               repository. Use --force to omit the\n"
  "                               confirmation.\n"
  "\n"
  "   show ?-v?                   Show the TLS configuration. Add -v to see\n"
  "                               additional explanation";
static const char zHelp290[] =
  "Usage: %fossil touch ?OPTIONS? ?FILENAME...?\n"
  "\n"
  "For each file in the current check-out matching one of the provided\n"
  "list of glob patterns and/or file names, the file's mtime is\n"
  "updated to a value specified by one of the flags --checkout,\n"
  "--checkin, or --now.\n"
  "\n"
  "If neither glob patterns nor filenames are provided, it operates on\n"
  "all files managed by the currently checked-out version.\n"
  "\n"
  "This command gets its name from the conventional Unix \"touch\"\n"
  "command.\n"
  "\n"
  "Options:\n"
  "  --now          Stamp each affected file with the current time.\n"
  "                 This is the default behavior.\n"
  "  -c|--checkin   Stamp each affected file with the time of the\n"
  "                 most recent check-in which modified that file\n"
  "  -C|--checkout  Stamp each affected file with the time of the\n"
  "                 currently checked-out version\n"
  "  -g GLOBLIST    Comma-separated list of glob patterns\n"
  "  -G GLOBFILE    Similar to -g but reads its globs from a\n"
  "                 fossil-conventional glob list file\n"
  "  -v|--verbose   Outputs extra information about its globs\n"
  "                 and each file it touches\n"
  "  -n|--dry-run   Outputs which files would require touching,\n"
  "                 but does not touch them\n"
  "  -q|--quiet     Suppress warnings, e.g. when skipping unmanaged\n"
  "                 or out-of-tree files\n"
  "\n"
  "Only one of --now, --checkin, and --checkout may be used. The\n"
  "default is --now.\n"
  "\n"
  "Only one of -g or -G may be used. If neither is provided and no\n"
  "additional filenames are provided, the effect is as if a glob of\n"
  "'*' were provided, i.e. all files belonging to the\n"
  "currently checked-out version. Note that all glob patterns provided\n"
  "via these flags are always evaluated as if they are relative to the\n"
  "top of the source tree, not the current working (sub)directory.\n"
  "Filenames provided without these flags, on the other hand, are\n"
  "treated as relative to the current directory.\n"
  "\n"
  "As a special case, files currently undergoing an uncommitted merge\n"
  "might not get timestamped with --checkin because it may be\n"
  "impossible for fossil to choose between multiple potential\n"
  "timestamps. A non-fatal warning is emitted for such cases.";
static const char zHelp102[] =
  "Usage: %fossil tree ?OPTIONS? ?PATHS ...?\n"
  "\n"
  "List all files in the current check-out much like the \"tree\"\n"
  "command does.  If PATHS is included, only the named files\n"
  "(or their children if directories) are shown.\n"
  "\n"
  "Options:\n"
  "  -r VERSION            The specific check-in to list\n"
  "  -R|--repository REPO  Extract info from repository REPO\n"
  "\n"
  "See also: [[ls]]";
static const char zHelp578[] =
  "Usage: %fossil undo ?OPTIONS? ?FILENAME...?\n"
  "   or: %fossil redo ?OPTIONS? ?FILENAME...?\n"
  "\n"
  "The undo command reverts the changes caused by the previous command\n"
  "if the previous command is one of the following:\n"
  " * fossil update\n"
  " * fossil merge\n"
  " * fossil revert\n"
  " * fossil stash pop\n"
  " * fossil stash apply\n"
  " * fossil stash drop\n"
  " * fossil stash goto\n"
  " * fossil clean (*see note below*)\n"
  "\n"
  "Note: The \"fossil clean\" command only saves state for files less than\n"
  "10MiB in size and so if fossil clean deleted files larger than that,\n"
  "then \"fossil undo\" will not recover the larger files.\n"
  "\n"
  "If FILENAME is specified then restore the content of the named\n"
  "file(s) but otherwise leave the update or merge or revert in effect.\n"
  "The redo command undoes the effect of the most recent undo.\n"
  "\n"
  "If the -n|--dry-run option is present, no changes are made and instead\n"
  "the undo or redo command explains what actions the undo or redo would\n"
  "have done had the -n|--dry-run been omitted.\n"
  "\n"
  "If the most recent command is not one of those listed as undoable,\n"
  "then the undo command might try to restore the state to be what it was\n"
  "prior to the last undoable command, or it might be a no-op.  If in\n"
  "doubt about what the undo command will do, first run it with the -n\n"
  "option.\n"
  "\n"
  "A single level of undo/redo is supported.  The undo/redo stack\n"
  "is cleared by the commit and check-out commands.  Other commands may\n"
  "or may not clear the undo stack.\n"
  "\n"
  "Future versions of Fossil might add new commands to the set of commands\n"
  "that are undoable.\n"
  "\n"
  "Options:\n"
  "  -n|--dry-run   Do not make changes, but show what would be done\n"
  "\n"
  "See also: [[commit]], [[status]]";
static const char zHelp420[] =
  "Usage: %fossil unpublished ?OPTIONS?\n"
  "\n"
  "Show a list of unpublished or \"private\" artifacts.  Unpublished artifacts\n"
  "will never push and hence will not be shared with collaborators.\n"
  "\n"
  "By default, this command only shows unpublished check-ins.  To show\n"
  "all unpublished artifacts, use the --all command-line option.\n"
  "\n"
  "Options:\n"
  "    --all                   Show all artifacts, not just check-ins";
static const char zHelp584[] =
  "Usage: %fossil update ?OPTIONS? ?VERSION? ?FILES...?\n"
  "\n"
  "Change the version of the current check-out to VERSION.  Any\n"
  "uncommitted changes are retained and applied to the new check-out.\n"
  "\n"
  "The VERSION argument can be a specific version or tag or branch\n"
  "name.  If the VERSION argument is omitted, then the leaf of the\n"
  "subtree that begins at the current version is used, if there is\n"
  "only a single leaf.  VERSION can also be \"current\" to select the\n"
  "leaf of the current version or \"latest\" to select the most recent\n"
  "check-in.\n"
  "\n"
  "If one or more FILES are listed after the VERSION then only the\n"
  "named files are candidates to be updated, and any updates to them\n"
  "will be treated as edits to the current version. Using a directory\n"
  "name for one of the FILES arguments is the same as using every\n"
  "subdirectory and file beneath that directory.\n"
  "\n"
  "If FILES is omitted, all files in the current check-out are subject\n"
  "to being updated and the version of the current check-out is changed\n"
  "to VERSION. Any uncommitted changes are retained and applied to the\n"
  "new check-out.\n"
  "\n"
  "The -n or --dry-run option causes this command to do a \"dry run\".\n"
  "It prints out what would have happened but does not actually make\n"
  "any changes to the current check-out or the repository.\n"
  "\n"
  "The -v or --verbose option prints status information about\n"
  "unchanged files in addition to those files that actually do change.\n"
  "\n"
  "Options:\n"
  "  --case-sensitive BOOL   Override case-sensitive setting\n"
  "  --debug                 Print debug information on stdout\n"
  "  -n|--dry-run            If given, display instead of run actions\n"
  "  --force-missing         Force update if missing content after sync\n"
  "  -K|--keep-merge-files   On merge conflict, retain the temporary files\n"
  "                          used for merging, named *-baseline, *-original,\n"
  "                          and *-merge.\n"
  "  --latest                Acceptable in place of VERSION, update to\n"
  "                          latest version\n"
  "  --nosync                Do not auto-sync prior to update\n"
  "  --proxy PROXY           Use PROXY as http proxy during sync operation\n"
  "  --setmtime              Set timestamps of all files to match their\n"
  "                          SCM-side times (the timestamp of the last\n"
  "                          check-in which modified them).\n"
  "  -v|--verbose            Print status information about all files\n"
  "  -W|--width WIDTH        Width of lines (default is to auto-detect).\n"
  "                          Must be more than 20 or 0 (= no limit,\n"
  "                          resulting in a single line per entry).\n"
  "\n"
  "See also: [[revert]]";
static const char zHelp588[] =
  "Usage: %fossil user SUBCOMMAND ...  ?-R|--repository REPO?\n"
  "\n"
  "Run various subcommands on users of the open repository or of\n"
  "the repository identified by the -R or --repository option.\n"
  "\n"
  "> fossil user capabilities USERNAME ?STRING?\n"
  "\n"
  "       Query or set the capabilities for user USERNAME\n"
  "\n"
  "> fossil user contact USERNAME ?CONTACT-INFO?\n"
  "\n"
  "       Query or set contact information for user USERNAME\n"
  "\n"
  "> fossil user default ?OPTIONS? ?USERNAME?\n"
  "\n"
  "       Query or set the default user.  The default user is the\n"
  "       user for command-line interaction.  If USERNAME is an\n"
  "       empty string, then the default user is unset from the\n"
  "       repository and will subsequently be determined by the -U\n"
  "       command-line option or by environment variables\n"
  "       FOSSIL_USER, USER, LOGNAME, or USERNAME, in that order.\n"
  "       OPTIONS:\n"
  "\n"
  "           -v|--verbose        Show how the default user is computed\n"
  "\n"
  "> fossil user list | ls\n"
  "\n"
  "       List all users known to the repository\n"
  "\n"
  "> fossil user new ?USERNAME? ?CONTACT-INFO? ?PASSWORD?\n"
  "\n"
  "       Create a new user in the repository.  Users can never be\n"
  "       deleted.  They can be denied all access but they must continue\n"
  "       to exist in the database.\n"
  "\n"
  "> fossil user password USERNAME ?PASSWORD?\n"
  "\n"
  "       Change the web access password for a user.";
static const char zHelp117[] =
  "The user-color-map setting can be used to override user color choices.\n"
  "The setting is a list of space-separated words pairs.  The first word\n"
  "of each pair is a login name.  The second word is an alternative name\n"
  "used by the color chooser algorithm.\n"
  "\n"
  "This list is intended to be relatively short.  The idea is to only use\n"
  "this map to resolve color collisions between common users.\n"
  "\n"
  "Visit /hash-color-test?rand for a list of suggested names for the\n"
  "second word of each pair in the list.";
static const char zHelp580[] =
  "Usage: %fossil unversioned SUBCOMMAND ARGS...\n"
  "   or: %fossil uv SUBCOMMAND ARGS..\n"
  "\n"
  "Unversioned files (UV-files) are artifacts that are synced and are available\n"
  "for download but which do not preserve history.  Only the most recent version\n"
  "of each UV-file is retained.  Changes to an UV-file are permanent and cannot\n"
  "be undone, so use appropriate caution with this command.\n"
  "\n"
  "Subcommands:\n"
  "\n"
  "   add FILE ...           Add or update one or more unversioned files in\n"
  "                          the local repository so that they match FILEs\n"
  "                          on disk. Changes are not pushed to other\n"
  "                          repositories until the next sync.\n"
  "\n"
  "   add FILE --as UVFILE   Add or update a single file named FILE on disk\n"
  "                          and UVFILE in the repository unversioned file\n"
  "                          namespace. This variant of the 'add' command allows\n"
  "                          the name to be different in the repository versus\n"
  "                          what appears on disk, but it only allows adding\n"
  "                          a single file at a time.\n"
  "\n"
  "   cat FILE ...           Concatenate the content of FILEs to stdout.\n"
  "\n"
  "   edit FILE              Bring up FILE in a text editor for modification.\n"
  "                          Options:\n"
  "                            --editor NAME     Name of the text editor to use\n"
  "\n"
  "   export FILE OUTPUT     Write the content of FILE into OUTPUT on disk\n"
  "\n"
  "   list | ls              Show all unversioned files held in the local\n"
  "                          repository.\n"
  "\n"
  "                          Options:\n"
  "                             --glob PATTERN   Show only files that match\n"
  "                             --like PATTERN   Show only files that match\n"
  "                             -l               Show additional details for\n"
  "                                              files that match. Implied\n"
  "                                              when 'list' is used.\n"
  "\n"
  "   revert ?URL?           Restore the state of all unversioned files in the\n"
  "                          local repository to match the remote repository\n"
  "                          URL.\n"
  "\n"
  "                          Options:\n"
  "                             -v|--verbose     Extra diagnostic output\n"
  "                             -n|--dry-run     Show what would have happened\n"
  "                             --proxy PROXY    Use the specified HTTP proxy\n"
  "\n"
  "   remove|rm|delete FILE ...\n"
  "                          Remove unversioned files from the local repository.\n"
  "                          Changes are not pushed to other repositories until\n"
  "                          the next sync.\n"
  "\n"
  "                          Options:\n"
  "                             --glob PATTERN   Remove files that match\n"
  "                             --like PATTERN   Remove files that match\n"
  "\n"
  "   sync ?URL?             Synchronize the state of all unversioned files with\n"
  "                          the remote repository URL.  The most recent version\n"
  "                          of each file is propagated to all repositories and\n"
  "                          all prior versions are permanently forgotten.\n"
  "                          The remote account requires the 'y' capability.\n"
  "\n"
  "                          Options:\n"
  "                             -v|--verbose     Extra diagnostic output\n"
  "                             -n|--dry-run     Show what would have happened\n"
  "                             --proxy PROXY    Use the specified HTTP proxy\n"
  "\n"
  "   touch FILE ...         Update the TIMESTAMP on all of the listed files\n"
  "\n"
  "Options:\n"
  "  --mtime TIMESTAMP       Use TIMESTAMP instead of \"now\" for the \"add\",\n"
  "                          \"edit\", \"remove\", and \"touch\" subcommands.\n"
  "  -R|--repository REPO    Use REPO as the repository";
static const char zHelp217[] =
  "If true, automatically send unversioned files as part\n"
  "of a \"fossil clone\" or \"fossil sync\" command.  The\n"
  "default is false, in which case the -u option is\n"
  "needed to clone or sync unversioned files.";
static const char zHelp107[] =
  "This setting determines how much sanity checking, if any, the \n"
  "\"fossil commit\" and \"fossil amend\" commands do against check-in\n"
  "comments. Recognized values:\n"
  "\n"
  "    on         (Default) Check for bad syntax and/or broken hyperlinks\n"
  "               in check-in comments and offer the user a chance to\n"
  "               continue editing for interactive sessions, or simply\n"
  "               abort the commit if the comment was entered using -m or -M\n"
  "\n"
  "    off        Do not do syntax checking of any kind\n"
  "\n"
  "    preview    Do all the same checks as \"on\" but also always preview the\n"
  "               check-in comment to the user during interactive sessions\n"
  "               even if no obvious errors are found, and provide an\n"
  "               opportunity to accept or re-edit";
static const char zHelp371[] =
  "Usage: %fossil version ?-v|--verbose?\n"
  "\n"
  "Print the source code version number for the fossil executable.\n"
  "If the verbose option is specified, additional details will\n"
  "be output about what optional features this binary was compiled\n"
  "with.\n"
  "\n"
  "Repeat the -v option or use -vv for even more information.";
static const char zHelp541[] =
  "This setting controls Fossil's behavior when it encounters a potential\n"
  "XSS or SQL-injection vulnerability due to misuse of TH1 configuration\n"
  "scripts.  Choices are:\n"
  "\n"
  "   off            Do nothing.  Ignore the vulnerability.\n"
  "\n"
  "   log            Write a report of the problem into the error log.\n"
  "\n"
  "   block          Like \"log\" but also prevent the offending TH1 command\n"
  "                  from running.\n"
  "\n"
  "   fatal          Render an error message page instead of the requested\n"
  "                  page.";
static const char zHelp218[] =
  "A shell command used to launch your preferred\n"
  "web browser when given a URL as an argument.\n"
  "Defaults to \"start\" on windows, \"open\" on Mac,\n"
  "and \"firefox\" on Unix.";
static const char zHelp395[] =
  "Usage: %fossil whatis NAME\n"
  "\n"
  "Resolve the symbol NAME into its canonical artifact hash\n"
  "artifact name and provide a description of what role that artifact\n"
  "plays.\n"
  "\n"
  "Options:\n"
  "   -f|--file            Find artifacts with the same hash as file NAME.\n"
  "                        If NAME is \"-\", read content from standard input.\n"
  "   -h|--hash            Show only the hash of matching artifacts.\n"
  "   -q|--quiet           Show nothing if NAME is not found\n"
  "   -R REPO_FILE         Specifies the repository db to use. Default is\n"
  "                        the current check-out's repository.\n"
  "   --type TYPE          Only find artifacts of TYPE (one of: 'ci', 't',\n"
  "                        'w', 'g', or 'e')\n"
  "   -v|--verbose         Provide extra information (such as the RID)";
static const char zHelp617[] =
  "Usage: %fossil wiki (export|create|commit|list) WikiName\n"
  "\n"
  "Run various subcommands to work with wiki entries or tech notes.\n"
  "\n"
  "> fossil wiki export ?OPTIONS? PAGENAME ?FILE?\n"
  "> fossil wiki export ?OPTIONS? -t|--technote DATETIME|TECHNOTE-ID|TAG ?FILE?\n"
  "\n"
  "      Sends the latest version of either a wiki page or of a tech\n"
  "      note to the given file or standard output.  A filename of \"-\"\n"
  "      writes the output to standard output.  The directory parts of\n"
  "      the output filename are created if needed.\n"
  "      If PAGENAME is provided, the named wiki page will be output.\n"
  "\n"
  "      Options:\n"
  "        -t|--technote DATETIME|TECHNOTE-ID|TAG\n"
  "                   Specifies that a technote, rather than a wiki page,\n"
  "                   will be exported. If DATETIME is used, the most\n"
  "                   recently modified tech note with that DATETIME will\n"
  "                   output. If TAG is used, the most recently modified\n"
  "                   tech note with that TAG will be output.\n"
  "        -h|--html  The body (only) is rendered in HTML form, without\n"
  "                   any page header/foot or HTML/BODY tag wrappers.\n"
  "        -H|--HTML  Works like -h|-html but wraps the output in\n"
  "                   <html><body>...</body></html>.\n"
  "        -p|--pre   If -h|-H is used and the page or technote has\n"
  "                   the text/plain mimetype, its HTML-escaped output\n"
  "                   will be wrapped in <pre>...</pre>.\n"
  "\n"
  "> fossil wiki (create|commit) (PAGENAME | TECHNOTE-COMMENT) ?FILE? ?OPTIONS?\n"
  "\n"
  "      Create a new or commit changes to an existing wiki page or\n"
  "      technote from FILE or from standard input. PAGENAME is the\n"
  "      name of the wiki entry. TECHNOTE-COMMENT is the timeline comment of\n"
  "      the technote.\n"
  "\n"
  "      Options:\n"
  "        -M|--mimetype TEXT-FORMAT   The mime type of the update.\n"
  "                                    Defaults to the type used by\n"
  "                                    the previous version of the\n"
  "                                    page, or text/x-fossil-wiki.\n"
  "                                    Valid values are: text/x-fossil-wiki,\n"
  "                                    text/x-markdown and text/plain. fossil,\n"
  "                                    markdown or plain can be specified as\n"
  "                                    synonyms of these values.\n"
  "        -t|--technote DATETIME      Specifies the timestamp of\n"
  "                                    the technote to be created or\n"
  "                                    updated. The timestamp specifies when\n"
  "                                    this technote appears in the timeline\n"
  "                                    and is its permanent handle although\n"
  "                                    it may not be unique. When updating\n"
  "                                    a technote the most recently modified\n"
  "                                    tech note with the specified timestamp\n"
  "                                    will be updated.\n"
  "        -t|--technote TECHNOTE-ID   Specifies the technote to be\n"
  "                                    updated by its technote id, which is\n"
  "                                    its UUID.\n"
  "        --technote-tags TAGS        The set of tags for a technote.\n"
  "        --technote-bgcolor COLOR    The color used for the technote\n"
  "                                    on the timeline.\n"
  "\n"
  "> fossil wiki list ?OPTIONS?\n"
  "> fossil wiki ls ?OPTIONS?\n"
  "\n"
  "      Lists all wiki entries, one per line, ordered\n"
  "      case-insensitively by name.  Wiki pages associated with\n"
  "      check-ins and branches are NOT shown, unless -a is given.\n"
  "\n"
  "      Options:\n"
  "        --all                       Include \"deleted\" pages in output.\n"
  "                                    By default deleted pages are elided.\n"
  "        -t|--technote               Technotes will be listed instead of\n"
  "                                    pages. The technotes will be in order\n"
  "                                    of timestamp with the most recent\n"
  "                                    first.\n"
  "        -a|--show-associated        Show wiki pages associated with\n"
  "                                    check-ins and branches.\n"
  "        -s|--show-technote-ids      The id of the tech note will be listed\n"
  "                                    alongside the timestamp. The tech note\n"
  "                                    id will be the first word on each line.\n"
  "                                    This option only applies if the\n"
  "                                    --technote option is also specified.\n"
  "\n"
  "DATETIME may be \"now\" or \"YYYY-MM-DDTHH:MM:SS.SSS\". If in\n"
  "year-month-day form, it may be truncated, the \"T\" may be replaced by\n"
  "a space, and it may also name a timezone offset from UTC as \"-HH:MM\"\n"
  "(westward) or \"+HH:MM\" (eastward). Either no timezone suffix or \"Z\"\n"
  "means UTC.\n"
  "\n"
  "The \"Sandbox\" wiki pseudo-page is a special case. Its name is\n"
  "checked case-insensitively and either \"create\" or \"commit\" may be\n"
  "used to update its contents.";
#ifdef _WIN32
static const char zHelp625[] =
  "Usage: %fossil winsrv METHOD ?SERVICE-NAME? ?OPTIONS?\n"
  "\n"
  "Where METHOD is one of: create delete show start stop.\n"
  "\n"
  "The winsrv command manages Fossil as a Windows service.  This allows\n"
  "(for example) Fossil to be running in the background when no user\n"
  "is logged in.\n"
  "\n"
  "In the following description of the methods, \"Fossil-DSCM\" will be\n"
  "used as the default SERVICE-NAME:\n"
  "\n"
  "   %fossil winsrv create ?SERVICE-NAME? ?OPTIONS?\n"
  "\n"
  "        Creates a service. Available options include:\n"
  "\n"
  "        -D|--display DISPLAY-NAME\n"
  "\n"
  "             Sets the display name of the service. This name is shown\n"
  "             by graphical interface programs. By default, the display name\n"
  "             is equal to the service name.\n"
  "\n"
  "        -S|--start TYPE\n"
  "\n"
  "             Sets the start type of the service. TYPE can be \"manual\",\n"
  "             which means you need to start the service yourself with the\n"
  "             'fossil winsrv start' command or with the \"net start\" command\n"
  "             from the operating system. If TYPE is set to \"auto\", the service\n"
  "             will be started automatically by the system during startup.\n"
  "\n"
  "        --username USERNAME\n"
  "\n"
  "             Specifies the user account which will be used to run the\n"
  "             service. The account needs the \"Logon as a service\" right\n"
  "             enabled in its profile. Specify local accounts as follows:\n"
  "             \".\\USERNAME\". By default, the \"LocalSystem\" account will be\n"
  "             used.\n"
  "\n"
  "        -W|--password PASSWORD\n"
  "\n"
  "             Password for the user account.\n"
  "\n"
  "        The following options are more or less the same as for the \"server\"\n"
  "        command and influence the behavior of the http server:\n"
  "\n"
  "        --baseurl URL\n"
  "\n"
  "             Use URL as the base (useful for reverse proxies)\n"
  "\n"
  "        -P|--port TCPPORT\n"
  "\n"
  "             Specifies the TCP port (default port is 8080) on which the\n"
  "             server should listen.\n"
  "\n"
  "        -R|--repository REPO\n"
  "\n"
  "             Specifies the name of the repository to be served.\n"
  "             The repository option may be omitted if the working directory\n"
  "             is within an open check-out.\n"
  "             The REPOSITORY can be a directory (aka folder) that contains\n"
  "             one or more repositories with names ending in \".fossil\".\n"
  "             In that case, the first element of the URL is used to select\n"
  "             among the various repositories.\n"
  "\n"
  "        --notfound URL\n"
  "\n"
  "             If REPOSITORY is a directory that contains one or more\n"
  "             repositories with names of the form \"*.fossil\" then the\n"
  "             first element of the URL  pathname selects among the various\n"
  "             repositories. If the pathname does not select a valid\n"
  "             repository and the --notfound option is available,\n"
  "             then the server redirects (HTTP code 302) to the URL of\n"
  "             --notfound.\n"
  "\n"
  "        --localauth\n"
  "\n"
  "             Enables automatic login if the --localauth option is present\n"
  "             and the \"localauth\" setting is off and the connection is from\n"
  "             localhost.\n"
  "\n"
  "        --repolist\n"
  "\n"
  "             If REPOSITORY is directory, URL \"/\" lists all repositories.\n"
  "\n"
  "        --scgi\n"
  "\n"
  "             Create an SCGI server instead of an HTTP server\n"
  "\n"
  "\n"
  "   %fossil winsrv delete ?SERVICE-NAME?\n"
  "\n"
  "        Deletes a service. If the service is currently running, it will be\n"
  "        stopped first and then deleted.\n"
  "\n"
  "\n"
  "   %fossil winsrv show ?SERVICE-NAME?\n"
  "\n"
  "        Shows how the service is configured and its current state.\n"
  "\n"
  "\n"
  "   %fossil winsrv start ?SERVICE-NAME?\n"
  "\n"
  "        Start the service.\n"
  "\n"
  "\n"
  "   %fossil winsrv stop ?SERVICE-NAME?\n"
  "\n"
  "        Stop the service.\n"
  "\n"
  "\n"
  "NOTE: This command is available on Windows operating systems only and\n"
  "      requires administrative rights on the machine executed.";
#endif
static const char zHelp635[] =
  "Usage: %fossil zip VERSION OUTPUTFILE [OPTIONS]\n"
  "\n"
  "Generate a ZIP archive for a check-in.  If the --name option is\n"
  "used, its argument becomes the name of the top-level directory in the\n"
  "resulting ZIP archive.  If --name is omitted, the top-level directory\n"
  "name is derived from the project name, the check-in date and time, and\n"
  "the artifact ID of the check-in.\n"
  "\n"
  "The GLOBLIST argument to --exclude and --include can be a comma-separated\n"
  "list of glob patterns, where each glob pattern may optionally be enclosed\n"
  "in \"...\" or '...' so that it may contain commas.  If a file matches both\n"
  "--include and --exclude then it is excluded.\n"
  "\n"
  "If OUTPUTFILE is an empty string or \"/dev/null\" then no ZIP archive is\n"
  "actually generated.  This feature can be used in combination with\n"
  "the --list option to get a list of the filenames that would be in the\n"
  "ZIP archive had it actually been generated.\n"
  "\n"
  "Options:\n"
  "  -X|--exclude GLOBLIST   Comma-separated list of GLOBs of files to exclude\n"
  "  --include GLOBLIST      Comma-separated list of GLOBs of files to include\n"
  "  -l|--list               Show archive content on stdout\n"
  "  --name DIRECTORYNAME    The name of the top-level directory in the archive\n"
  "  -R REPOSITORY           Specify a Fossil repository";
static const CmdOrPage aCommand[] = {
  { "/.well-known",             wellknown_page,               zHelp325, 325, 0x00008 },
  { "/access_log",              user_log_page,                zHelp593, 593, 0x00008 },
  { "/admin_log",               page_admin_log,               zHelp479, 479, 0x00008 },
  { "/admin_sql",               sql_page,                     zHelp477, 477, 0x00008 },
  { "/admin_th1",               th1_page,                     zHelp478, 478, 0x00008 },
  { "/ainfo",                   ainfo_page,                   zHelp039,  39, 0x00008 },
  { "/ajax",                    ajax_route_dispatcher,        zHelp008,   8, 0x00808 },
  { "/alerts",                  alert_page,                   zHelp024,  24, 0x00008 },
  { "/ambiguous",               ambiguous_page,               zHelp394, 394, 0x00008 },
  { "/annotate",                annotation_page,              zHelp238, 238, 0x00008 },
  { "/announce",                announce_page,                zHelp032,  32, 0x00008 },
  { "/artifact",                artifact_page,                zHelp341, 341, 0x00008 },
  { "/artifact_stats",          artifact_stats_page,          zHelp514, 514, 0x00008 },
  { "/attachadd",               attachadd_page,               zHelp038,  38, 0x00008 },
  { "/attachdownload",          attachview_page,              zHelp035,  35, 0x00008 },
  { "/attachimage",             attachview_page,              zHelp035,  35, 0x00008 },
  { "/attachlist",              attachlist_page,              zHelp034,  34, 0x00008 },
  { "/attachview",              attachview_page,              zHelp035,  35, 0x00008 },
  { "/background",              background_page,              zHelp260, 260, 0x00008 },
  { "/bigbloblist",             bigbloblist_page,             zHelp401, 401, 0x00008 },
  { "/blame",                   annotation_page,              zHelp238, 238, 0x00008 },
  { "/bloblist",                bloblist_page,                zHelp399, 399, 0x00008 },
  { "/brlist",                  brlist_page,                  zHelp058,  58, 0x00008 },
  { "/brtimeline",              brtimeline_page,              zHelp059,  59, 0x00008 },
  { "/builtin",                 builtin_webpage,              zHelp068,  68, 0x01008 },
  { "/cacheget",                cache_getpage,                zHelp075,  75, 0x00008 },
  { "/cachestat",               cache_page,                   zHelp074,  74, 0x00008 },
  { "/captcha-audio",           captcha_wav_page,             zHelp080,  80, 0x00008 },
  { "/chat",                    chat_webpage,                 zHelp089,  89, 0x01008 },
  { "/chat-backup",             chat_backup_webpage,          zHelp097,  97, 0x00808 },
  { "/chat-delete",             chat_delete_webpage,          zHelp096,  96, 0x01808 },
  { "/chat-download",           chat_download_webpage,        zHelp095,  95, 0x01808 },
  { "/chat-fetch-one",          chat_fetch_one,               zHelp094,  94, 0x01808 },
  { "/chat-poll",               chat_poll_webpage,            zHelp092,  92, 0x01808 },
  { "/chat-query",              chat_query_webpage,           zHelp093,  93, 0x01808 },
  { "/chat-send",               chat_send_webpage,            zHelp090,  90, 0x01808 },
  { "/ci",                      ci_page,                      zHelp330, 330, 0x00008 },
  { "/ci_edit",                 ci_edit_page,                 zHelp347, 347, 0x00008 },
  { "/ci_tags",                 ci_tags_page,                 zHelp328, 328, 0x00008 },
  { "/ckout",                   ckout_page,                   zHelp329, 329, 0x00008 },
  { "/clusterlist",             clusterlist_page,             zHelp407, 407, 0x00008 },
  { "/contact_admin",           contact_admin_page,           zHelp031,  31, 0x00008 },
  { "/cookies",                 cookie_page,                  zHelp135, 135, 0x00008 },
  { "/debug_tktedit",           tktedit_page,                 zHelp560, 560, 0x00008 },
  { "/debug_tktnew",            tktnew_page,                  zHelp558, 558, 0x00008 },
  { "/deltachain",              deltachain_page,              zHelp402, 402, 0x00008 },
  { "/dir",                     page_dir,                     zHelp061,  61, 0x00008 },
  { "/doc",                     doc_page,                     zHelp257, 257, 0x00008 },
  { "/docdir",                  page_docdir,                  zHelp060,  60, 0x00008 },
  { "/docfile",                 artifact_page,                zHelp341, 341, 0x00008 },
  { "/docsrch",                 doc_search_page,              zHelp262, 262, 0x00008 },
  { "/download",                download_page,                zHelp539, 539, 0x00008 },
  { "/errorlog",                errorlog_page,                zHelp460, 460, 0x00008 },
  { "/event",                   event_page,                   zHelp267, 267, 0x00008 },
  { "/eventedit",               eventedit_page,               zHelp269, 269, 0x00008 },
  { "/ext",                     ext_page,                     zHelp275, 275, 0x00208 },
  { "/extfilelist",             ext_filelist_page,            zHelp276, 276, 0x00008 },
  { "/favicon.ico",             favicon_page,                 zHelp261, 261, 0x00008 },
  { "/fdiff",                   diff_page,                    zHelp335, 335, 0x00008 },
  { "/fdscookie",               cookie_page,                  zHelp135, 135, 0x00008 },
  { "/file",                    artifact_page,                zHelp341, 341, 0x00008 },
  { "/fileage",                 fileage_page,                 zHelp064,  64, 0x00008 },
  { "/fileedit",                fileedit_page,                zHelp293, 293, 0x00008 },
  { "/finfo",                   finfo_page,                   zHelp296, 296, 0x00008 },
  { "/forum",                   forum_main_page,              zHelp311, 311, 0x00008 },
  { "/forume1",                 forumnew_page,                zHelp306, 306, 0x00008 },
  { "/forume2",                 forumedit_page,               zHelp307, 307, 0x00008 },
  { "/forumedit",               forum_page_init,              zHelp304, 304, 0x00008 },
  { "/forummain",               forum_main_page,              zHelp311, 311, 0x00008 },
  { "/forumnew",                forum_page_init,              zHelp304, 304, 0x00008 },
  { "/forumpost",               forumpost_page,               zHelp300, 300, 0x00008 },
  { "/forumpost_close",         forum_page_close,             zHelp302, 302, 0x00808 },
  { "/forumpost_reopen",        forum_page_close,             zHelp302, 302, 0x00808 },
  { "/forumthread",             forumthread_page,             zHelp301, 301, 0x00008 },
  { "/forumthreadhashlist",     forumthreadhashlist,          zHelp299, 299, 0x00008 },
  { "/hash-collisions",         hash_collisions_webpage,      zHelp406, 406, 0x00008 },
  { "/hash-color-test",         test_hash_color_page,         zHelp119, 119, 0x00008 },
  { "/help",                    help_page,                    zHelp250, 250, 0x00008 },
  { "/hexdump",                 hexdump_page,                 zHelp339, 339, 0x00008 },
  { "/home",                    home_page,                    zHelp600, 600, 0x00008 },
  { "/honeypot",                honeypot_page,                zHelp078,  78, 0x00008 },
  { "/howtoclone",              howtoclone_page,              zHelp115, 115, 0x00008 },
  { "/index",                   home_page,                    zHelp600, 600, 0x00008 },
  { "/info",                    info_page,                    zHelp346, 346, 0x00008 },
  { "/intermap",                interwiki_page,               zHelp352, 352, 0x00008 },
  { "/ityaar",                  captcha_callback,             zHelp079,  79, 0x00008 },
  { "/jchunk",                  jchunk_page,                  zHelp338, 338, 0x00808 },
#ifdef FOSSIL_ENABLE_JSON
  { "/json",                    json_page_top,                zHelp353, 353, 0x00008 },
#endif
  { "/juvlist",                 uvlist_json_page,             zHelp583, 583, 0x00008 },
  { "/leaves",                  leaves_page,                  zHelp232, 232, 0x00008 },
  { "/login",                   login_page,                   zHelp360, 360, 0x00008 },
  { "/logo",                    logo_page,                    zHelp259, 259, 0x00008 },
  { "/logout",                  login_page,                   zHelp360, 360, 0x00008 },
  { "/markup_help",             markup_help_page,             zHelp605, 605, 0x00008 },
  { "/md_rules",                markdown_rules_page,          zHelp603, 603, 0x00008 },
  { "/mimetype_list",           mimetype_list_page,           zHelp256, 256, 0x00008 },
  { "/mlink",                   mlink_page,                   zHelp297, 297, 0x00008 },
  { "/modreq",                  modreq_page,                  zHelp392, 392, 0x00008 },
  { "/my",                      login_page,                   zHelp360, 360, 0x00008 },
  { "/not_found",               home_page,                    zHelp600, 600, 0x00008 },
  { "/oneclickunsub",           unsubscribe_page,             zHelp026,  26, 0x00008 },
  { "/phantoms",                phantom_list_page,            zHelp400, 400, 0x00008 },
  { "/pikchrshow",              pikchrshow_page,              zHelp414, 414, 0x00008 },
  { "/praise",                  annotation_page,              zHelp238, 238, 0x00008 },
  { "/raw",                     rawartifact_page,             zHelp336, 336, 0x00008 },
  { "/rchvdwnld",               rchvdwnld_page,               zHelp540, 540, 0x00008 },
  { "/rcvfrom",                 rcvfrom_page,                 zHelp492, 492, 0x00008 },
  { "/rcvfromlist",             rcvfromlist_page,             zHelp491, 491, 0x00008 },
  { "/re_rules",                re_rules_page,                zHelp435, 435, 0x00008 },
  { "/register",                register_page,                zHelp366, 366, 0x00008 },
  { "/renew",                   renewal_page,                 zHelp025,  25, 0x00008 },
  { "/repo-tabsize",            repo_tabsize_page,            zHelp513, 513, 0x00008 },
  { "/repo_schema",             repo_schema_page,             zHelp511, 511, 0x00008 },
  { "/repo_stat1",              repo_stat1_page,              zHelp512, 512, 0x00008 },
  { "/reportlist",              view_list,                    zHelp438, 438, 0x00008 },
  { "/reports",                 stats_report_page,            zHelp515, 515, 0x00008 },
  { "/reqpwreset",              login_reqpwreset_page,        zHelp367, 367, 0x00008 },
  { "/resetpw",                 login_resetpw,                zHelp364, 364, 0x00008 },
  { "/robots.txt",              robotstxt_page,               zHelp523, 523, 0x00008 },
  { "/rptedit",                 view_edit,                    zHelp440, 440, 0x00008 },
  { "/rptnew",                  view_edit,                    zHelp440, 440, 0x00008 },
  { "/rptsql",                  view_see_sql,                 zHelp439, 439, 0x00008 },
  { "/rptview",                 rptview_page,                 zHelp442, 442, 0x00008 },
  { "/script.js",               page_script_js,               zHelp517, 517, 0x00008 },
  { "/search",                  search_page,                  zHelp453, 453, 0x00008 },
  { "/secaudit0",               secaudit0_page,               zHelp458, 458, 0x00008 },
  { "/secureraw",               secure_rawartifact_page,      zHelp337, 337, 0x00008 },
#if USE_SEE
  { "/setseekey",               db_set_see_key_page,          zHelp140, 140, 0x00008 },
#endif
  { "/setup",                   setup_page,                   zHelp461, 461, 0x00008 },
  { "/setup-logmenu",           setup_logmenu_page,           zHelp462, 462, 0x00008 },
  { "/setup_access",            setup_access,                 zHelp464, 464, 0x00008 },
  { "/setup_adunit",            setup_adunit,                 zHelp475, 475, 0x00008 },
  { "/setup_chat",              setup_chat,                   zHelp473, 473, 0x00008 },
  { "/setup_config",            setup_config,                 zHelp470, 470, 0x00008 },
  { "/setup_download",          setup_download,               zHelp471, 471, 0x00008 },
  { "/setup_forum",             forum_setup,                  zHelp310, 310, 0x00008 },
  { "/setup_login_group",       setup_login_group,            zHelp465, 465, 0x00008 },
  { "/setup_logo",              setup_logo,                   zHelp476, 476, 0x00008 },
  { "/setup_modreq",            setup_modreq,                 zHelp474, 474, 0x00008 },
  { "/setup_notification",      setup_notification,           zHelp009,   9, 0x00008 },
  { "/setup_robot",             setup_robots,                 zHelp463, 463, 0x00008 },
  { "/setup_settings",          setup_settings,               zHelp467, 467, 0x00008 },
  { "/setup_skin",              setup_skin,                   zHelp499, 499, 0x00008 },
  { "/setup_skin_admin",        setup_skin_admin,             zHelp497, 497, 0x00008 },
  { "/setup_skinedit",          setup_skinedit,               zHelp498, 498, 0x00008 },
  { "/setup_timeline",          setup_timeline,               zHelp466, 466, 0x00008 },
  { "/setup_ucap_list",         setup_ucap_list,              zHelp484, 484, 0x00008 },
  { "/setup_uedit",             user_edit,                    zHelp486, 486, 0x00008 },
  { "/setup_uinfo",             setup_uinfo_page,             zHelp487, 487, 0x00008 },
  { "/setup_ulist",             setup_ulist,                  zHelp482, 482, 0x00008 },
  { "/setup_ulist_notes",       setup_ulist_notes,            zHelp483, 483, 0x00008 },
  { "/setup_wiki",              setup_wiki,                   zHelp472, 472, 0x00008 },
  { "/shun",                    shun_page,                    zHelp490, 490, 0x00008 },
  { "/sitemap",                 sitemap_page,                 zHelp493, 493, 0x00008 },
  { "/sitemap-test",            sitemap_test_page,            zHelp494, 494, 0x00008 },
  { "/sitemap-timeline",        sitemap_timeline_page,        zHelp495, 495, 0x00008 },
  { "/skins",                   skins_page,                   zHelp500, 500, 0x00008 },
  { "/sqlar",                   baseline_zip_page,            zHelp637, 637, 0x00008 },
  { "/srchsetup",               page_srchsetup,               zHelp480, 480, 0x00008 },
  { "/stat",                    stat_page,                    zHelp508, 508, 0x00008 },
  { "/style.css",               page_style_css,               zHelp518, 518, 0x01008 },
  { "/subscribe",               subscribe_page,               zHelp023,  23, 0x00008 },
  { "/subscribers",             subscriber_list_page,         zHelp028,  28, 0x00008 },
  { "/taglist",                 taglist_page,                 zHelp533, 533, 0x00008 },
  { "/tagtimeline",             tagtimeline_page,             zHelp534, 534, 0x00008 },
  { "/takeitprivate",           takeitprivate_page,           zHelp459, 459, 0x00008 },
  { "/tarball",                 tarball_page,                 zHelp537, 537, 0x00008 },
  { "/technote",                event_page,                   zHelp267, 267, 0x00008 },
  { "/technoteedit",            eventedit_page,               zHelp269, 269, 0x00008 },
  { "/test-all-help",           test_all_help_page,           zHelp251, 251, 0x00008 },
  { "/test-backlink-timeline",  backlink_timeline_page,       zHelp042,  42, 0x00008 },
  { "/test-backlinks",          backlink_table_page,          zHelp043,  43, 0x00008 },
  { "/test-bgcolor",            test_bgcolor_page,            zHelp120, 120, 0x00008 },
  { "/test-builtin-files",      test_builtin_list_page,       zHelp066,  66, 0x00008 },
  { "/test-captcha",            captcha_test,                 zHelp077,  77, 0x00008 },
  { "/test-captcha-audio",      captcha_test_wav_page,        zHelp081,  81, 0x00008 },
  { "/test-env",                page_test_env,                zHelp520, 520, 0x00008 },
  { "/test-ftsdocs",            search_data_page,             zHelp457, 457, 0x00008 },
  { "/test-overload",           overload_page,                zHelp357, 357, 0x00008 },
  { "/test-pid",                test_pid_page,                zHelp374, 374, 0x00008 },
  { "/test-piechart",           piechart_test_page,           zHelp413, 413, 0x00008 },
  { "/test-rename-list",        test_rename_list_page,        zHelp412, 412, 0x00008 },
  { "/test-robotck",            robot_restrict_test_page,     zHelp447, 447, 0x00008 },
  { "/test-title",              page_test_title,              zHelp519, 519, 0x00008 },
  { "/test-warning",            test_warning_page,            zHelp380, 380, 0x00008 },
  { "/test_env",                page_test_env,                zHelp520, 520, 0x02008 },
  { "/thisdayinhistory",        thisdayinhistory_page,        zHelp553, 553, 0x00008 },
  { "/ticket",                  tkt_home_page,                zHelp565, 565, 0x00008 },
  { "/timeline",                page_timeline,                zHelp551, 551, 0x00008 },
  { "/timeline.rss",            page_timeline_rss,            zHelp449, 449, 0x00008 },
  { "/timewarps",               test_timewarp_page,           zHelp555, 555, 0x00008 },
  { "/tinfo",                   tinfo_page,                   zHelp345, 345, 0x00008 },
  { "/tktedit",                 tktedit_page,                 zHelp560, 560, 0x00008 },
  { "/tkthistory",              tkthistory_page,              zHelp563, 563, 0x00008 },
  { "/tktnew",                  tktnew_page,                  zHelp558, 558, 0x00008 },
  { "/tktsetup",                tktsetup_page,                zHelp567, 567, 0x00008 },
  { "/tktsetup_change",         tktsetup_change_page,         zHelp570, 570, 0x00008 },
  { "/tktsetup_com",            tktsetup_com_page,            zHelp569, 569, 0x00008 },
  { "/tktsetup_editpage",       tktsetup_editpage_page,       zHelp573, 573, 0x00008 },
  { "/tktsetup_keytplt",        tktsetup_keytplt_page,        zHelp576, 576, 0x00008 },
  { "/tktsetup_newpage",        tktsetup_newpage_page,        zHelp571, 571, 0x00008 },
  { "/tktsetup_reportlist",     tktsetup_reportlist,          zHelp574, 574, 0x00008 },
  { "/tktsetup_rpttplt",        tktsetup_rpttplt_page,        zHelp575, 575, 0x00008 },
  { "/tktsetup_tab",            tktsetup_tab_page,            zHelp568, 568, 0x00008 },
  { "/tktsetup_timeline",       tktsetup_timeline_page,       zHelp577, 577, 0x00008 },
  { "/tktsetup_viewpage",       tktsetup_viewpage_page,       zHelp572, 572, 0x00008 },
  { "/tktsrch",                 tkt_srchpage,                 zHelp566, 566, 0x00008 },
  { "/tkttimeline",             tkttimeline_page,             zHelp562, 562, 0x00008 },
  { "/tktview",                 tktview_page,                 zHelp557, 557, 0x00008 },
  { "/tokens",                  tokens_page,                  zHelp448, 448, 0x00008 },
  { "/tree",                    page_tree,                    zHelp062,  62, 0x00008 },
#if USE_SEE
  { "/unsetseekey",             db_unset_see_key_page,        zHelp141, 141, 0x00008 },
#endif
  { "/unsubscribe",             unsubscribe_page,             zHelp026,  26, 0x00008 },
  { "/urllist",                 urllist_page,                 zHelp510, 510, 0x00008 },
  { "/user_log",                user_log_page,                zHelp593, 593, 0x00008 },
  { "/uv",                      doc_page,                     zHelp257, 257, 0x00008 },
  { "/uvlist",                  uvlist_page,                  zHelp582, 582, 0x00008 },
  { "/vdiff",                   vdiff_page,                   zHelp333, 333, 0x00008 },
  { "/version",                 test_version_page,            zHelp372, 372, 0x00008 },
  { "/vinfo",                   ci_page,                      zHelp330, 330, 0x00008 },
  { "/vpatch",                  vpatch_page,                  zHelp246, 246, 0x00008 },
  { "/waliassetup",             page_waliassetup,             zHelp481, 481, 0x00008 },
  { "/wcontent",                wcontent_page,                zHelp615, 615, 0x00008 },
  { "/wdiff",                   wdiff_page,                   zHelp614, 614, 0x00008 },
  { "/wfind",                   wfind_page,                   zHelp616, 616, 0x00008 },
  { "/whatis",                  artifact_page,                zHelp341, 341, 0x00008 },
  { "/whistory",                whistory_page,                zHelp613, 613, 0x00008 },
  { "/wiki",                    wiki_page,                    zHelp608, 608, 0x00008 },
  { "/wiki_rules",              wiki_rules_page,              zHelp604, 604, 0x00008 },
  { "/wikiajax",                wiki_ajax_page,               zHelp609, 609, 0x00808 },
  { "/wikiappend",              wikiappend_page,              zHelp612, 612, 0x00008 },
  { "/wikiedit",                wikiedit_page,                zHelp610, 610, 0x00008 },
  { "/wikihelp",                wiki_helppage,                zHelp606, 606, 0x00008 },
  { "/wikinew",                 wikinew_page,                 zHelp611, 611, 0x00008 },
  { "/wikisrch",                wiki_srchpage,                zHelp607, 607, 0x00008 },
  { "/winfo",                   winfo_page,                   zHelp332, 332, 0x00008 },
  { "/xfer",                    page_xfer,                    zHelp626, 626, 0x01208 },
  { "/xfersetup",               xfersetup_page,               zHelp628, 628, 0x00008 },
  { "/xfersetup_com",           xfersetup_com_page,           zHelp629, 629, 0x00008 },
  { "/xfersetup_commit",        xfersetup_commit_page,        zHelp631, 631, 0x00008 },
  { "/xfersetup_push",          xfersetup_push_page,          zHelp630, 630, 0x00008 },
  { "/xfersetup_ticket",        xfersetup_ticket_page,        zHelp632, 632, 0x00008 },
  { "/zip",                     baseline_zip_page,            zHelp637, 637, 0x00008 },
  { "3-way-merge",              merge_3way_cmd,               zHelp391, 391, 0x00012 },
  { "access-log",               0,                            zHelp148, 148, 0x00120 },
  { "add",                      add_cmd,                      zHelp001,   1, 0x00011 },
  { "addremove",                addremove_cmd,                zHelp005,   5, 0x00011 },
  { "admin-log",                0,                            zHelp149, 149, 0x00120 },
  { "alerts",                   alert_cmd,                    zHelp022,  22, 0x08012 },
  { "all",                      all_cmd,                      zHelp033,  33, 0x08011 },
  { "allow-symlinks",           0,                            zHelp150, 150, 0x00520 },
  { "amend",                    ci_amend_cmd,                 zHelp348, 348, 0x00011 },
  { "annotate",                 annotate_cmd,                 zHelp241, 241, 0x00011 },
  { "anon-cookie-lifespan",     0,                            zHelp358, 358, 0x00020 },
  { "artifact",                 artifact_cmd,                 zHelp126, 126, 0x00012 },
  { "attachment",               attachment_cmd,               zHelp040,  40, 0x00012 },
  { "auto-captcha",             0,                            zHelp151, 151, 0x00120 },
  { "auto-hyperlink",           0,                            zHelp152, 152, 0x00020 },
  { "auto-hyperlink-delay",     0,                            zHelp153, 153, 0x00020 },
  { "auto-hyperlink-mouseover", 0,                            zHelp154, 154, 0x00120 },
  { "auto-shun",                0,                            zHelp155, 155, 0x00120 },
  { "autosync",                 0,                            zHelp156, 156, 0x00020 },
  { "autosync-tries",           0,                            zHelp157, 157, 0x00020 },
  { "backoffice",               backoffice_command,           zHelp048,  48, 0x00012 },
  { "backoffice-disable",       0,                            zHelp159, 159, 0x00120 },
  { "backoffice-logfile",       0,                            zHelp160, 160, 0x00420 },
  { "backoffice-nodelay",       0,                            zHelp158, 158, 0x00120 },
  { "backup",                   backup_cmd,                   zHelp529, 529, 0x00012 },
  { "binary-glob",              0,                            zHelp161, 161, 0x000e0 },
  { "bisect",                   bisect_cmd,                   zHelp049,  49, 0x00011 },
  { "blame",                    annotate_cmd,                 zHelp241, 241, 0x00011 },
  { "branch",                   branch_cmd,                   zHelp057,  57, 0x00011 },
  { "bundle",                   bundle_cmd,                   zHelp071,  71, 0x00012 },
  { "cache",                    cache_cmd,                    zHelp073,  73, 0x08012 },
#if defined(_WIN32)||defined(__CYGWIN__)||defined(__DARWIN__)
  { "case-sensitive",           0,                            zHelp162, 162, 0x00120 },
#endif
#if !(defined(_WIN32)||defined(__CYGWIN__)||defined(__DARWIN__))
  { "case-sensitive",           0,                            zHelp163, 163, 0x00120 },
#endif
  { "cat",                      cat_cmd,                      zHelp295, 295, 0x00011 },
  { "cgi",                      cmd_cgi,                      zHelp373, 373, 0x00012 },
  { "changes",                  status_cmd,                   zHelp099,  99, 0x00011 },
  { "chat",                     chat_command,                 zHelp098,  98, 0x00011 },
  { "chat-alert-sound",         0,                            zHelp087,  87, 0x00020 },
  { "chat-initial-history",     0,                            zHelp082,  82, 0x00020 },
  { "chat-inline-images",       0,                            zHelp085,  85, 0x00120 },
  { "chat-keep-count",          0,                            zHelp083,  83, 0x00020 },
  { "chat-keep-days",           0,                            zHelp084,  84, 0x00020 },
  { "chat-poll-timeout",        0,                            zHelp086,  86, 0x00020 },
  { "chat-timeline-user",       0,                            zHelp088,  88, 0x00020 },
  { "checkout",                 checkout_cmd,                 zHelp110, 110, 0x00012 },
  { "cherry-pick",              merge_cmd,                    zHelp388, 388, 0x02010 },
  { "cherrypick",               merge_cmd,                    zHelp388, 388, 0x00011 },
  { "ci",                       commit_cmd,                   zHelp108, 108, 0x02010 },
  { "clean",                    clean_cmd,                    zHelp104, 104, 0x00011 },
  { "clean-glob",               0,                            zHelp164, 164, 0x000e0 },
  { "clearsign",                0,                            zHelp165, 165, 0x00120 },
  { "clone",                    clone_cmd,                    zHelp114, 114, 0x00011 },
  { "close",                    close_cmd,                    zHelp112, 112, 0x00012 },
  { "co",                       checkout_cmd,                 zHelp110, 110, 0x02010 },
  { "comment-format",           0,                            zHelp166, 166, 0x00020 },
  { "commit",                   commit_cmd,                   zHelp108, 108, 0x00011 },
  { "configuration",            configuration_cmd,            zHelp122, 122, 0x00012 },
  { "crlf-glob",                0,                            zHelp167, 167, 0x000e0 },
  { "crnl-glob",                0,                            zHelp168, 168, 0x000e0 },
  { "dbstat",                   dbstat_cmd,                   zHelp509, 509, 0x00011 },
  { "deconstruct",              deconstruct_cmd,              zHelp431, 431, 0x00012 },
  { "default-csp",              0,                            zHelp216, 216, 0x040a0 },
  { "default-perms",            0,                            zHelp169, 169, 0x04420 },
  { "default-skin",             0,                            zHelp496, 496, 0x00020 },
  { "delete",                   delete_cmd,                   zHelp002,   2, 0x00011 },
  { "descendants",              descendants_cmd,              zHelp230, 230, 0x00012 },
  { "describe",                 describe_cmd,                 zHelp350, 350, 0x00011 },
  { "detach",                   test_detach_cmd,              zHelp425, 425, 0x00012 },
  { "diff",                     diff_cmd,                     zHelp244, 244, 0x00011 },
  { "diff-binary",              0,                            zHelp170, 170, 0x00120 },
  { "diff-command",             0,                            zHelp171, 171, 0x00420 },
  { "dont-commit",              0,                            zHelp172, 172, 0x00120 },
  { "dont-push",                0,                            zHelp173, 173, 0x00120 },
  { "dotfiles",                 0,                            zHelp174, 174, 0x00160 },
  { "editor",                   0,                            zHelp175, 175, 0x00420 },
  { "email-admin",              0,                            zHelp012,  12, 0x00020 },
  { "email-listid",             0,                            zHelp020,  20, 0x00020 },
  { "email-renew-interval",     0,                            zHelp014,  14, 0x00020 },
  { "email-self",               0,                            zHelp019,  19, 0x00020 },
  { "email-send-command",       0,                            zHelp016,  16, 0x00420 },
  { "email-send-db",            0,                            zHelp018,  18, 0x00420 },
  { "email-send-dir",           0,                            zHelp017,  17, 0x00420 },
  { "email-send-method",        0,                            zHelp015,  15, 0x00420 },
  { "email-send-relayhost",     0,                            zHelp021,  21, 0x00420 },
  { "email-subname",            0,                            zHelp013,  13, 0x00020 },
  { "email-url",                0,                            zHelp011,  11, 0x00020 },
  { "empty-dirs",               0,                            zHelp176, 176, 0x000e0 },
  { "encoding-glob",            0,                            zHelp177, 177, 0x000e0 },
#if defined(FOSSIL_ENABLE_EXEC_REL_PATHS)
  { "exec-rel-paths",           0,                            zHelp178, 178, 0x00120 },
#endif
#if !defined(FOSSIL_ENABLE_EXEC_REL_PATHS)
  { "exec-rel-paths",           0,                            zHelp179, 179, 0x00120 },
#endif
  { "export",                   export_cmd,                   zHelp271, 271, 0x00012 },
  { "extras",                   extras_cmd,                   zHelp103, 103, 0x00011 },
  { "fdiff",                    fdiff_cmd,                    zHelp237, 237, 0x00011 },
  { "fileedit-glob",            0,                            zHelp180, 180, 0x000a0 },
  { "finfo",                    finfo_cmd,                    zHelp294, 294, 0x00011 },
  { "forbid-delta-manifests",   0,                            zHelp181, 181, 0x00120 },
  { "forget",                   delete_cmd,                   zHelp002,   2, 0x00012 },
  { "forum-close-policy",       0,                            zHelp308, 308, 0x00120 },
  { "forum-title",              0,                            zHelp309, 309, 0x00020 },
  { "fts-config",               fts_config_cmd,               zHelp456, 456, 0x08012 },
  { "fusefs",                   fusefs_cmd,                   zHelp314, 314, 0x00012 },
  { "gdiff",                    diff_cmd,                     zHelp244, 244, 0x00011 },
  { "gdiff-command",            0,                            zHelp182, 182, 0x00420 },
  { "get",                      get_cmd,                      zHelp113, 113, 0x00011 },
  { "git",                      gitmirror_command,            zHelp274, 274, 0x00012 },
  { "gmerge-command",           0,                            zHelp183, 183, 0x00420 },
  { "grep",                     re_grep_cmd,                  zHelp434, 434, 0x00011 },
  { "hash-digits",              0,                            zHelp184, 184, 0x00020 },
  { "hash-policy",              hash_policy_command,          zHelp318, 318, 0x00012 },
  { "help",                     help_cmd,                     zHelp254, 254, 0x00011 },
  { "hook",                     hook_cmd,                     zHelp320, 320, 0x00012 },
  { "hooks",                    0,                            zHelp319, 319, 0x004a0 },
  { "http",                     cmd_http,                     zHelp375, 375, 0x00012 },
  { "http-port",                0,                            zHelp185, 185, 0x00020 },
  { "https-login",              0,                            zHelp186, 186, 0x00120 },
  { "ignore-glob",              0,                            zHelp187, 187, 0x000e0 },
  { "import",                   import_cmd,                   zHelp326, 326, 0x00012 },
  { "info",                     info_cmd,                     zHelp327, 327, 0x00011 },
  { "init",                     create_repository_cmd,        zHelp144, 144, 0x00011 },
  { "interwiki",                interwiki_cmd,                zHelp351, 351, 0x00012 },
#ifdef FOSSIL_ENABLE_JSON
  { "json",                     json_cmd_top,                 zHelp354, 354, 0x00011 },
#endif
  { "keep-glob",                0,                            zHelp188, 188, 0x000e0 },
  { "large-file-size",          0,                            zHelp219, 219, 0x00020 },
  { "leaves",                   leaves_cmd,                   zHelp231, 231, 0x00012 },
  { "localauth",                0,                            zHelp189, 189, 0x00120 },
  { "lock-timeout",             0,                            zHelp190, 190, 0x00020 },
  { "login-group",              login_group_command,          zHelp368, 368, 0x00012 },
  { "ls",                       ls_cmd,                       zHelp101, 101, 0x00011 },
  { "main-branch",              0,                            zHelp191, 191, 0x00020 },
  { "mainmenu",                 0,                            zHelp468, 468, 0x040a0 },
  { "manifest",                 0,                            zHelp192, 192, 0x00060 },
  { "max-cache-entry",          0,                            zHelp072,  72, 0x00020 },
  { "max-loadavg",              0,                            zHelp193, 193, 0x00020 },
  { "max-upload",               0,                            zHelp194, 194, 0x00020 },
  { "md5sum",                   md5sum_test,                  zHelp385, 385, 0x00012 },
  { "merge",                    merge_cmd,                    zHelp388, 388, 0x00011 },
  { "merge-base",               merge_base_cmd,               zHelp416, 416, 0x00011 },
  { "merge-info",               merge_info_cmd,               zHelp386, 386, 0x00011 },
  { "mimetypes",                0,                            zHelp195, 195, 0x000e0 },
  { "mtime-changes",            0,                            zHelp196, 196, 0x00120 },
  { "mv",                       mv_cmd,                       zHelp006,   6, 0x00011 },
  { "mv-rm-files",              0,                            zHelp197, 197, 0x00120 },
  { "new",                      create_repository_cmd,        zHelp144, 144, 0x02010 },
  { "open",                     cmd_open,                     zHelp147, 147, 0x00011 },
  { "options",                  0,                            zHelp253, 253, 0x10000 },
  { "patch",                    patch_cmd,                    zHelp408, 408, 0x00011 },
  { "pgp-command",              0,                            zHelp198, 198, 0x00420 },
  { "pikchr",                   pikchr_cmd,                   zHelp415, 415, 0x00012 },
  { "praise",                   annotate_cmd,                 zHelp241, 241, 0x00012 },
  { "preferred-diff-type",      0,                            zHelp334, 334, 0x00020 },
  { "proxy",                    0,                            zHelp199, 199, 0x00020 },
  { "publish",                  publish_cmd,                  zHelp421, 421, 0x00012 },
  { "pull",                     pull_cmd,                     zHelp524, 524, 0x00011 },
  { "purge",                    purge_cmd,                    zHelp422, 422, 0x00012 },
  { "push",                     push_cmd,                     zHelp525, 525, 0x00011 },
  { "raw-bgcolor",              0,                            zHelp116, 116, 0x00120 },
  { "rebuild",                  rebuild_database,             zHelp424, 424, 0x00011 },
  { "reconstruct",              reconstruct_cmd,              zHelp430, 430, 0x00012 },
  { "redirect-to-https",        0,                            zHelp200, 200, 0x00020 },
  { "redo",                     undo_cmd,                     zHelp578, 578, 0x00012 },
  { "regexp-limit",             0,                            zHelp432, 432, 0x00020 },
  { "relative-paths",           0,                            zHelp201, 201, 0x00120 },
  { "remote",                   remote_url_cmd,               zHelp527, 527, 0x00011 },
  { "remote-url",               remote_url_cmd,               zHelp527, 527, 0x00012 },
  { "rename",                   mv_cmd,                       zHelp006,   6, 0x00012 },
  { "repack",                   repack_command,               zHelp423, 423, 0x00011 },
  { "reparent",                 reparent_cmd,                 zHelp532, 532, 0x00012 },
  { "repo-cksum",               0,                            zHelp202, 202, 0x00120 },
  { "repolist-skin",            0,                            zHelp203, 203, 0x00020 },
  { "revert",                   revert_cmd,                   zHelp585, 585, 0x00011 },
  { "rm",                       delete_cmd,                   zHelp002,   2, 0x00011 },
  { "robot-exception",          0,                            zHelp444, 444, 0x000a0 },
  { "robot-restrict",           0,                            zHelp443, 443, 0x000a0 },
  { "robot-zip-leaf",           0,                            zHelp445, 445, 0x00120 },
  { "robot-zip-tag",            0,                            zHelp446, 446, 0x000a0 },
  { "robots-txt",               0,                            zHelp522, 522, 0x040a0 },
  { "rss",                      cmd_timeline_rss,             zHelp450, 450, 0x00012 },
  { "safe-html",                0,                            zHelp623, 623, 0x00020 },
  { "scrub",                    scrub_cmd,                    zHelp428, 428, 0x00012 },
  { "search",                   search_cmd,                   zHelp452, 452, 0x00012 },
  { "self-pw-reset",            0,                            zHelp204, 204, 0x00520 },
  { "self-register",            0,                            zHelp205, 205, 0x00520 },
  { "server",                   cmd_webserver,                zHelp377, 377, 0x00012 },
  { "settings",                 setting_cmd,                  zHelp220, 220, 0x00011 },
  { "sha1sum",                  sha1sum_test,                 zHelp488, 488, 0x00012 },
  { "sha3sum",                  sha3sum_test,                 zHelp489, 489, 0x00012 },
  { "shell",                    shell_cmd,                    zHelp313, 313, 0x00012 },
  { "sitemap-extra",            0,                            zHelp469, 469, 0x000a0 },
  { "sql",                      cmd_sqlite3,                  zHelp505, 505, 0x00011 },
  { "sqlar",                    sqlar_cmd,                    zHelp636, 636, 0x00012 },
  { "sqlite3",                  cmd_sqlite3,                  zHelp505, 505, 0x00012 },
  { "ssh-command",              0,                            zHelp206, 206, 0x00420 },
  { "ssl-ca-location",          0,                            zHelp207, 207, 0x00420 },
  { "ssl-config",               test_tlsconfig_info,          zHelp323, 323, 0x08011 },
  { "ssl-identity",             0,                            zHelp208, 208, 0x00420 },
  { "stash",                    stash_cmd,                    zHelp507, 507, 0x00011 },
  { "status",                   status_cmd,                   zHelp099,  99, 0x00011 },
  { "suggested-downloads",      0,                            zHelp538, 538, 0x000a0 },
  { "sync",                     sync_cmd,                     zHelp526, 526, 0x00011 },
  { "system",                   xsystem_cmd,                  zHelp633, 633, 0x00011 },
  { "tag",                      tag_cmd,                      zHelp531, 531, 0x00011 },
  { "tarball",                  tarball_cmd,                  zHelp536, 536, 0x00012 },
#ifdef FOSSIL_ENABLE_TCL
  { "tcl",                      0,                            zHelp209, 209, 0x00520 },
#endif
#ifdef FOSSIL_ENABLE_TCL
  { "tcl-setup",                0,                            zHelp210, 210, 0x004a0 },
#endif
  { "tclsh",                    0,                            zHelp211, 211, 0x00420 },
  { "test-add-alerts",          test_add_alert_cmd,           zHelp030,  30, 0x00014 },
  { "test-agg-cksum",           test_agg_cksum_cmd,           zHelp599, 599, 0x00014 },
  { "test-alert",               test_alert_cmd,               zHelp029,  29, 0x00014 },
  { "test-all-help",            test_all_help_cmd,            zHelp247, 247, 0x00014 },
  { "test-ambiguous",           test_ambiguous_cmd,           zHelp397, 397, 0x00014 },
  { "test-ancestor-path",       ancestor_path_test_cmd,       zHelp410, 410, 0x00014 },
  { "test-approx-match",        test_approx_match_command,    zHelp249, 249, 0x00014 },
  { "test-artifact-to-json",    test_manifest_to_json,        zHelp384, 384, 0x00014 },
  { "test-backlinks",           test_backlinks_cmd,           zHelp044,  44, 0x00014 },
  { "test-backoffice-lease",    test_backoffice_lease,        zHelp047,  47, 0x00014 },
  { "test-builtin-get",         test_builtin_get,             zHelp067,  67, 0x00014 },
  { "test-builtin-list",        test_builtin_list,            zHelp065,  65, 0x00014 },
  { "test-canonical-name",      cmd_test_canonical_name,      zHelp284, 284, 0x00014 },
  { "test-captcha",             test_captcha,                 zHelp076,  76, 0x00014 },
  { "test-case-filename",       test_preferred_fn,            zHelp281, 281, 0x00014 },
  { "test-chat-formatter",      chat_test_formatter_cmd,      zHelp091,  91, 0x00014 },
  { "test-ci-mini",             test_ci_mini_cmd,             zHelp292, 292, 0x00014 },
  { "test-clusters",            test_clusters_cmd,            zHelp427, 427, 0x00014 },
  { "test-command-stats",       test_command_stats_cmd,       zHelp248, 248, 0x00014 },
  { "test-comment-format",      test_comment_format,          zHelp121, 121, 0x00014 },
  { "test-commit-warning",      test_commit_warning,          zHelp106, 106, 0x00014 },
  { "test-compress",            compress_cmd,                 zHelp052,  52, 0x00014 },
  { "test-compress-2",          compress2_cmd,                zHelp053,  53, 0x00014 },
  { "test-contains-selector",   contains_selector_cmd,        zHelp516, 516, 0x00014 },
  { "test-content-deltify",     test_content_deltify_cmd,     zHelp130, 130, 0x00014 },
  { "test-content-erase",       test_content_erase,           zHelp134, 134, 0x00014 },
  { "test-content-put",         test_content_put_cmd,         zHelp128, 128, 0x00014 },
  { "test-content-rawget",      test_content_rawget_cmd,      zHelp127, 127, 0x00014 },
  { "test-content-undelta",     test_content_undelta_cmd,     zHelp129, 129, 0x00014 },
  { "test-convert-stext",       test_convert_stext,           zHelp455, 455, 0x00014 },
  { "test-create-clusters",     test_createcluster_cmd,       zHelp426, 426, 0x00014 },
  { "test-crosslink",           test_crosslink_cmd,           zHelp383, 383, 0x00014 },
  { "test-cycle-compress",      test_cycle_compress,          zHelp055,  55, 0x00014 },
  { "test-database-names",      test_database_name_cmd,       zHelp224, 224, 0x00014 },
  { "test-date-format",         test_date_format,             zHelp105, 105, 0x00014 },
  { "test-db-exec-error",       db_test_db_exec_cmd,          zHelp137, 137, 0x00014 },
  { "test-db-prepare",          db_test_db_prepare,           zHelp138, 138, 0x00014 },
  { "test-decode64",            test_decode64_cmd,            zHelp264, 264, 0x00014 },
  { "test-delta",               cmd_test_delta,               zHelp229, 229, 0x00014 },
  { "test-delta-analyze",       delta_analyze_cmd,            zHelp227, 227, 0x00014 },
  { "test-delta-apply",         delta_apply_cmd,              zHelp228, 228, 0x00014 },
  { "test-delta-create",        delta_create_cmd,             zHelp226, 226, 0x00014 },
  { "test-describe-artifacts",  test_describe_artifacts_cmd,  zHelp398, 398, 0x00014 },
  { "test-diff",                xdiff_cmd,                    zHelp235, 235, 0x00014 },
  { "test-dir-list",            test_dir_list_cmd,            zHelp289, 289, 0x00014 },
  { "test-echo",                test_echo_cmd,                zHelp379, 379, 0x00014 },
  { "test-email-used",          test_email_used,              zHelp365, 365, 0x00014 },
  { "test-encode64",            test_encode64_cmd,            zHelp263, 263, 0x00014 },
  { "test-endpoint",            timeline_test_endpoint,       zHelp550, 550, 0x00014 },
  { "test-escaped-arg",         test_escaped_arg_command,     zHelp056,  56, 0x00014 },
  { "test-etag",                test_etag_cmd,                zHelp266, 266, 0x00014 },
  { "test-file-copy",           test_file_copy,               zHelp277, 277, 0x00014 },
  { "test-file-environment",    cmd_test_file_environment,    zHelp283, 283, 0x00014 },
  { "test-fileage",             test_fileage_cmd,             zHelp063,  63, 0x00014 },
  { "test-filezip",             filezip_cmd,                  zHelp634, 634, 0x00014 },
  { "test-find-mx",             test_find_mx,                 zHelp501, 501, 0x00014 },
  { "test-fingerprint",         test_fingerprint,             zHelp225, 225, 0x00014 },
  { "test-forumthread",         forumthread_cmd,              zHelp298, 298, 0x00014 },
  { "test-fossil-system",       test_fossil_system_cmd,       zHelp595, 595, 0x00014 },
  { "test-fuzz",                fuzz_command,                 zHelp315, 315, 0x00014 },
  { "test-generate-uuid",       test_generate_uuid,           zHelp597, 597, 0x00014 },
  { "test-glob",                glob_test_cmd,                zHelp316, 316, 0x00014 },
  { "test-grep",                re_test_grep,                 zHelp433, 433, 0x00014 },
  { "test-gzip",                test_gzip_cmd,                zHelp317, 317, 0x00014 },
  { "test-hash-color",          test_hash_color,              zHelp118, 118, 0x00014 },
#if 0
  { "test-hash-from-path*",     test_hash_from_path_cmd,      zHelp429, 429, 0x00014 },
#endif
  { "test-hash-passwords",      user_hash_passwords_cmd,      zHelp590, 590, 0x00014 },
  { "test-html-tidy",           test_html_tidy,               zHelp621, 621, 0x00014 },
  { "test-html-to-text",        test_html_to_text,            zHelp622, 622, 0x00014 },
  { "test-html-tokenize",       test_html_tokenize,           zHelp620, 620, 0x00014 },
  { "test-http",                cmd_test_http,                zHelp376, 376, 0x00014 },
  { "test-httpmsg",             test_httpmsg_command,         zHelp322, 322, 0x00014 },
  { "test-integrity",           test_integrity,               zHelp131, 131, 0x00014 },
#if defined(_WIN32)
  { "test-is-normal-dir",       test_is_normal_dir,           zHelp279, 279, 0x00014 },
#endif
  { "test-is-repo",             test_is_repo,                 zHelp142, 142, 0x00014 },
  { "test-is-reserved-name",    test_is_reserved_name_cmd,    zHelp291, 291, 0x00014 },
  { "test-ishuman",             test_ishuman,                 zHelp359, 359, 0x00014 },
  { "test-isspace",             isspace_cmd,                  zHelp050,  50, 0x00014 },
  { "test-js-once",             test_js_once,                 zHelp069,  69, 0x00014 },
  { "test-leaf-ambiguity",      leaf_ambiguity_warning_test,  zHelp355, 355, 0x00014 },
  { "test-line-diff",           test_line_diff,               zHelp233, 233, 0x00014 },
  { "test-line-match",          test_dline_match,             zHelp234, 234, 0x00014 },
  { "test-line-numbers",        cmd_test_line_numbers,        zHelp340, 340, 0x00014 },
  { "test-list-attachments",    test_list_attachments,        zHelp041,  41, 0x00014 },
  { "test-list-page",           test_list_page,               zHelp436, 436, 0x00014 },
  { "test-list-webpage",        cmd_test_webpage_list,        zHelp252, 252, 0x00014 },
  { "test-loadavg",             loadavg_test_cmd,             zHelp356, 356, 0x00014 },
  { "test-looks-like-attack",   test_looks_like_attack,       zHelp370, 370, 0x00014 },
  { "test-looks-like-utf",      looks_like_utf_test_cmd,      zHelp369, 369, 0x00014 },
  { "test-mailbox-hashname",    alert_test_mailbox_hashname,  zHelp010,  10, 0x00014 },
  { "test-manifest-setting",    test_manfest_setting_cmd,     zHelp146, 146, 0x00014 },
  { "test-markdown-render",     test_markdown_render,         zHelp619, 619, 0x00014 },
  { "test-match",               test_match_cmd,               zHelp451, 451, 0x00014 },
  { "test-mimetype",            mimetype_test_cmd,            zHelp255, 255, 0x00014 },
  { "test-missing",             test_missing,                 zHelp133, 133, 0x00014 },
  { "test-move-repository",     move_repo_cmd,                zHelp143, 143, 0x00014 },
  { "test-name-changes",        test_name_change,             zHelp411, 411, 0x00014 },
  { "test-name-to-id",          test_name_to_id,              zHelp393, 393, 0x00014 },
  { "test-obscure",             test_obscure_cmd,             zHelp265, 265, 0x00014 },
  { "test-orphans",             test_orphans,                 zHelp132, 132, 0x00014 },
  { "test-parse-all-blobs",     manifest_test_parse_all_blobs_cmd,    zHelp382, 382, 0x00014 },
  { "test-parse-manifest",      manifest_test_parse_cmd,      zHelp381, 381, 0x00014 },
  { "test-phantoms",            test_phantoms_cmd,            zHelp405, 405, 0x00014 },
  { "test-pqueue",              pqueuex_test_cmd,             zHelp417, 417, 0x00014 },
  { "test-process-id",          test_process_id_command,      zHelp046,  46, 0x00014 },
  { "test-prompt-password",     test_prompt_password_cmd,     zHelp592, 592, 0x00014 },
  { "test-prompt-user",         test_prompt_user_cmd,         zHelp591, 591, 0x00014 },
  { "test-random-password",     test_random_password,         zHelp596, 596, 0x00014 },
  { "test-relative-name",       cmd_test_relative_name,       zHelp285, 285, 0x00014 },
  { "test-relink-wiki",         test_wiki_relink_cmd,         zHelp045,  45, 0x00014 },
  { "test-reserved-names",      test_reserved_names,          zHelp000,   0, 0x00014 },
  { "test-resetpw-url",         test_resetpw_url,             zHelp363, 363, 0x00014 },
  { "test-safe-html",           test_safe_html_cmd,           zHelp624, 624, 0x00014 },
  { "test-sanitize-name",       test_sanitize_name_cmd,       zHelp273, 273, 0x00014 },
  { "test-search-stext",        test_search_stext,            zHelp454, 454, 0x00014 },
  { "test-set-mtime",           test_set_mtime,               zHelp278, 278, 0x00014 },
  { "test-shortest-path",       shortest_path_test_cmd,       zHelp409, 409, 0x00014 },
  { "test-show-vfile",          test_show_vfile_cmd,          zHelp387, 387, 0x00014 },
  { "test-simplify-name",       cmd_test_simplify_name,       zHelp280, 280, 0x00014 },
  { "test-smtp-probe",          test_smtp_probe,              zHelp502, 502, 0x00014 },
  { "test-smtp-send",           test_smtp_send,               zHelp504, 504, 0x00014 },
  { "test-smtp-senddata",       test_smtp_senddata,           zHelp503, 503, 0x00014 },
  { "test-ssh-needs-path",      test_ssh_needs_path,          zHelp321, 321, 0x00014 },
  { "test-strip-comment-lines", test_strip_comment_lines_cmd, zHelp051,  51, 0x00014 },
  { "test-subtree",             test_subtree_cmd,             zHelp070,  70, 0x00014 },
  { "test-symlink-list",        test_symlink_list_cmd,        zHelp349, 349, 0x00014 },
  { "test-tag",                 testtag_cmd,                  zHelp530, 530, 0x00014 },
  { "test-tarball",             test_tarball_cmd,             zHelp535, 535, 0x00014 },
  { "test-tempname",            file_test_tempname,           zHelp287, 287, 0x00014 },
  { "test-th-eval",             test_th_eval,                 zHelp543, 543, 0x00014 },
#ifdef FOSSIL_ENABLE_TH1_HOOKS
  { "test-th-hook",             test_th_hook,                 zHelp545, 545, 0x00014 },
#endif
  { "test-th-render",           test_th_render,               zHelp542, 542, 0x00014 },
  { "test-th-source",           test_th_source,               zHelp544, 544, 0x00014 },
  { "test-ticket-rebuild",      test_ticket_rebuild,          zHelp556, 556, 0x00014 },
  { "test-timespan",            test_timespan_cmd,            zHelp222, 222, 0x00014 },
  { "test-timewarp-list",       test_timewarp_cmd,            zHelp554, 554, 0x00014 },
  { "test-topological-sort",    test_topological_sort,        zHelp272, 272, 0x00014 },
  { "test-tree-name",           cmd_test_tree_name,           zHelp286, 286, 0x00014 },
  { "test-unclustered",         test_unclusterd_cmd,          zHelp404, 404, 0x00014 },
  { "test-uncompress",          uncompress_cmd,               zHelp054,  54, 0x00014 },
  { "test-unsent",              test_unsent_cmd,              zHelp403, 403, 0x00014 },
  { "test-url-basename",        cmd_test_url_basename,        zHelp587, 587, 0x00014 },
  { "test-urlparser",           cmd_test_urlparser,           zHelp586, 586, 0x00014 },
  { "test-user-caps-changed",   test_user_caps_changed,       zHelp485, 485, 0x00014 },
  { "test-usernames",           test_usernames_cmd,           zHelp589, 589, 0x00014 },
  { "test-valid-for-windows",   file_test_valid_for_windows,  zHelp288, 288, 0x00014 },
  { "test-var-get",             test_var_get_cmd,             zHelp124, 124, 0x00014 },
  { "test-var-list",            test_var_list_cmd,            zHelp123, 123, 0x00014 },
  { "test-var-set",             test_var_set_cmd,             zHelp125, 125, 0x00014 },
  { "test-verify-all",          verify_all_cmd,               zHelp598, 598, 0x00014 },
  { "test-whatis-all",          test_whatis_all_cmd,          zHelp396, 396, 0x00014 },
  { "test-which",               test_which_cmd,               zHelp282, 282, 0x00014 },
  { "test-wiki-render",         test_wiki_render,             zHelp618, 618, 0x00014 },
  { "test-without-rowid",       test_without_rowid,           zHelp223, 223, 0x00014 },
  { "test-xfer",                cmd_test_xfer,                zHelp627, 627, 0x00014 },
#ifdef FOSSIL_ENABLE_TH1_DOCS
  { "th1-docs",                 0,                            zHelp212, 212, 0x00520 },
#endif
#ifdef FOSSIL_ENABLE_TH1_HOOKS
  { "th1-hooks",                0,                            zHelp213, 213, 0x00120 },
#endif
  { "th1-setup",                0,                            zHelp214, 214, 0x004a0 },
  { "th1-uri-regexp",           0,                            zHelp215, 215, 0x000a0 },
  { "ticket",                   ticket_cmd,                   zHelp564, 564, 0x00012 },
  { "ticket-default-report",    0,                            zHelp437, 437, 0x00020 },
  { "timeline",                 timeline_cmd,                 zHelp552, 552, 0x00011 },
  { "timeline-default-style",   0,                            zHelp549, 549, 0x00020 },
  { "timeline-hard-newlines",   0,                            zHelp419, 419, 0x00120 },
  { "timeline-mark-leaves",     0,                            zHelp548, 548, 0x00020 },
  { "timeline-plaintext",       0,                            zHelp418, 418, 0x00120 },
  { "timeline-truncate-at-blank", 0,                            zHelp546, 546, 0x00120 },
  { "timeline-tslink-info",     0,                            zHelp547, 547, 0x00120 },
  { "timeline-utc",             0,                            zHelp139, 139, 0x00120 },
  { "tls-config",               test_tlsconfig_info,          zHelp323, 323, 0x08012 },
  { "touch",                    touch_cmd,                    zHelp290, 290, 0x00012 },
  { "tree",                     tree_cmd,                     zHelp102, 102, 0x00011 },
  { "ui",                       cmd_webserver,                zHelp377, 377, 0x00011 },
  { "undo",                     undo_cmd,                     zHelp578, 578, 0x00011 },
  { "unpublished",              unpublished_cmd,              zHelp420, 420, 0x00012 },
  { "unset",                    setting_cmd,                  zHelp220, 220, 0x00012 },
  { "unversioned",              unversioned_cmd,              zHelp580, 580, 0x08011 },
  { "update",                   update_cmd,                   zHelp584, 584, 0x00011 },
  { "user",                     user_cmd,                     zHelp588, 588, 0x00012 },
  { "user-color-map",           0,                            zHelp117, 117, 0x000a0 },
  { "uv",                       unversioned_cmd,              zHelp580, 580, 0x0a010 },
  { "uv-sync",                  0,                            zHelp217, 217, 0x00120 },
  { "verify-comments",          0,                            zHelp107, 107, 0x00020 },
  { "version",                  version_cmd,                  zHelp371, 371, 0x00011 },
  { "vuln-report",              0,                            zHelp541, 541, 0x00020 },
  { "web-browser",              0,                            zHelp218, 218, 0x00420 },
  { "whatis",                   whatis_cmd,                   zHelp395, 395, 0x00012 },
  { "wiki",                     wiki_cmd,                     zHelp617, 617, 0x00012 },
#ifdef _WIN32
  { "winsrv",                   cmd_win32_service,            zHelp625, 625, 0x00012 },
#endif
  { "xdiff",                    xdiff_cmd,                    zHelp235, 235, 0x00011 },
  { "zip",                      zip_cmd,                      zHelp635, 635, 0x00012 },
};
#define FOSSIL_FIRST_CMD 240
#define FOSSIL_MX_CMDNAME 26 /* max length of any command name */
#define FOSSIL_MX_CMDIDX 639 /* max index for commands */
const Setting aSetting[] = {
  { "access-log",           0,                   0, 0, 0, 0, "on"         },
  { "admin-log",            0,                   0, 0, 0, 0, "on"         },
  { "allow-symlinks",       0,                   0, 0, 0, 1, "off"        },
  { "anon-cookie-lifespan", 0,                  10, 0, 0, 0, "480"        },
  { "auto-captcha",         "autocaptcha",       0, 0, 0, 0, "on"         },
  { "auto-hyperlink",       0,                  16, 0, 0, 0, "1"          },
  { "auto-hyperlink-delay", 0,                  16, 0, 0, 0, "0"          },
  { "auto-hyperlink-mouseover",     0,                   0, 0, 0, 0, "off"        },
  { "auto-shun",            0,                   0, 0, 0, 0, "on"         },
  { "autosync",             0,                  16, 0, 0, 0, "on"         },
  { "autosync-tries",       0,                  16, 0, 0, 0, "1"          },
  { "backoffice-disable",   0,                   0, 0, 0, 0, "off"        },
  { "backoffice-logfile",   0,                  40, 0, 0, 1, ""           },
  { "backoffice-nodelay",   0,                   0, 0, 0, 0, "off"        },
  { "binary-glob",          0,                  40, 1, 1, 0, ""           },
#if defined(_WIN32)||defined(__CYGWIN__)||defined(__DARWIN__)
  { "case-sensitive",       0,                   0, 0, 0, 0, "off"        },
#endif
#if !(defined(_WIN32)||defined(__CYGWIN__)||defined(__DARWIN__))
  { "case-sensitive",       0,                   0, 0, 0, 0, "on"         },
#endif
  { "chat-alert-sound",     0,                  10, 0, 0, 0, ""           },
  { "chat-initial-history", 0,                  10, 0, 0, 0, "50"         },
  { "chat-inline-images",   0,                   0, 0, 0, 0, "on"         },
  { "chat-keep-count",      0,                  10, 0, 0, 0, "50"         },
  { "chat-keep-days",       0,                  10, 0, 0, 0, "7"          },
  { "chat-poll-timeout",    0,                  10, 0, 0, 0, "420"        },
  { "chat-timeline-user",   0,                  10, 0, 0, 0, ""           },
  { "clean-glob",           0,                  40, 1, 1, 0, ""           },
  { "clearsign",            0,                   0, 0, 0, 0, "off"        },
  { "comment-format",       0,                  16, 0, 0, 0, "1"          },
  { "crlf-glob",            0,                  40, 1, 1, 0, ""           },
  { "crnl-glob",            0,                  40, 1, 1, 0, ""           },
  { "default-csp",          0,                  40, 0, 1, 0, ""           },
  { "default-perms",        0,                  16, 0, 0, 1, "u"          },
  { "default-skin",         0,                  16, 0, 0, 0, ""           },
  { "diff-binary",          0,                   0, 0, 0, 0, "on"         },
  { "diff-command",         0,                  40, 0, 0, 1, ""           },
  { "dont-commit",          0,                   0, 0, 0, 0, "off"        },
  { "dont-push",            0,                   0, 0, 0, 0, "off"        },
  { "dotfiles",             0,                   0, 1, 0, 0, "off"        },
  { "editor",               0,                  32, 0, 0, 1, ""           },
  { "email-admin",          0,                  40, 0, 0, 0, ""           },
  { "email-listid",         0,                  40, 0, 0, 0, ""           },
  { "email-renew-interval", 0,                  16, 0, 0, 0, ""           },
  { "email-self",           0,                  40, 0, 0, 0, ""           },
  { "email-send-command",   0,                  40, 0, 0, 1, ""           },
  { "email-send-db",        0,                  40, 0, 0, 1, ""           },
  { "email-send-dir",       0,                  40, 0, 0, 1, ""           },
  { "email-send-method",    0,                   5, 0, 0, 1, "off"        },
  { "email-send-relayhost", 0,                  40, 0, 0, 1, "127.0.0.1"  },
  { "email-subname",        0,                  16, 0, 0, 0, ""           },
  { "email-url",            0,                  40, 0, 0, 0, ""           },
  { "empty-dirs",           0,                  40, 1, 1, 0, ""           },
  { "encoding-glob",        0,                  40, 1, 1, 0, ""           },
#if defined(FOSSIL_ENABLE_EXEC_REL_PATHS)
  { "exec-rel-paths",       0,                   0, 0, 0, 0, "on"         },
#endif
#if !defined(FOSSIL_ENABLE_EXEC_REL_PATHS)
  { "exec-rel-paths",       0,                   0, 0, 0, 0, "off"        },
#endif
  { "fileedit-glob",        0,                  40, 0, 1, 0, ""           },
  { "forbid-delta-manifests",   0,                   0, 0, 0, 0, "off"        },
  { "forum-close-policy",   0,                   0, 0, 0, 0, "off"        },
  { "forum-title",          0,                  20, 0, 0, 0, "Forum"      },
  { "gdiff-command",        0,                  40, 0, 0, 1, ""           },
  { "gmerge-command",       0,                  40, 0, 0, 1, ""           },
  { "hash-digits",          0,                   5, 0, 0, 0, "10"         },
  { "hooks",                0,                  40, 0, 1, 1, ""           },
  { "http-port",            0,                  16, 0, 0, 0, "8080"       },
  { "https-login",          0,                   0, 0, 0, 0, "off"        },
  { "ignore-glob",          0,                  40, 1, 1, 0, ""           },
  { "keep-glob",            0,                  40, 1, 1, 0, ""           },
  { "large-file-size",      0,                  10, 0, 0, 0, "200000000"  },
  { "localauth",            0,                   0, 0, 0, 0, "off"        },
  { "lock-timeout",         0,                  25, 0, 0, 0, "60"         },
  { "main-branch",          0,                  40, 0, 0, 0, "trunk"      },
  { "mainmenu",             0,                  70, 0, 1, 0, ""           },
  { "manifest",             0,                   5, 1, 0, 0, ""           },
  { "max-cache-entry",      0,                  10, 0, 0, 0, "10"         },
  { "max-loadavg",          0,                  25, 0, 0, 0, "0.0"        },
  { "max-upload",           0,                  25, 0, 0, 0, "250000"     },
  { "mimetypes",            0,                  40, 1, 1, 0, ""           },
  { "mtime-changes",        0,                   0, 0, 0, 0, "on"         },
  { "mv-rm-files",          0,                   0, 0, 0, 0, "off"        },
  { "pgp-command",          0,                  40, 0, 0, 1, ""           },
  { "preferred-diff-type",  0,                  16, 0, 0, 0, "0"          },
  { "proxy",                0,                  32, 0, 0, 0, "system"     },
  { "raw-bgcolor",          0,                   0, 0, 0, 0, "off"        },
  { "redirect-to-https",    0,                   2, 0, 0, 0, "0"          },
  { "regexp-limit",         0,                   8, 0, 0, 0, "1000"       },
  { "relative-paths",       0,                   0, 0, 0, 0, "on"         },
  { "repo-cksum",           0,                   0, 0, 0, 0, "on"         },
  { "repolist-skin",        0,                   2, 0, 0, 0, "0"          },
  { "robot-exception",      0,                  40, 0, 1, 0, ""           },
  { "robot-restrict",       0,                  40, 0, 1, 0, ""           },
  { "robot-zip-leaf",       0,                   0, 0, 0, 0, ""           },
  { "robot-zip-tag",        0,                  40, 0, 1, 0, ""           },
  { "robots-txt",           0,                  70, 0, 1, 0, ""           },
  { "safe-html",            0,                   8, 0, 0, 0, ""           },
  { "self-pw-reset",        0,                   0, 0, 0, 1, "off"        },
  { "self-register",        0,                   0, 0, 0, 1, "off"        },
  { "sitemap-extra",        0,                  70, 0, 1, 0, ""           },
  { "ssh-command",          0,                  40, 0, 0, 1, ""           },
  { "ssl-ca-location",      0,                  40, 0, 0, 1, ""           },
  { "ssl-identity",         0,                  40, 0, 0, 1, ""           },
  { "suggested-downloads",  0,                  70, 0, 1, 0, ""           },
#ifdef FOSSIL_ENABLE_TCL
  { "tcl",                  0,                   0, 0, 0, 1, "off"        },
#endif
#ifdef FOSSIL_ENABLE_TCL
  { "tcl-setup",            0,                  40, 0, 1, 1, ""           },
#endif
  { "tclsh",                0,                  80, 0, 0, 1, "tclsh"      },
#ifdef FOSSIL_ENABLE_TH1_DOCS
  { "th1-docs",             0,                   0, 0, 0, 1, "off"        },
#endif
#ifdef FOSSIL_ENABLE_TH1_HOOKS
  { "th1-hooks",            0,                   0, 0, 0, 0, "off"        },
#endif
  { "th1-setup",            0,                  40, 0, 1, 1, ""           },
  { "th1-uri-regexp",       0,                  40, 0, 1, 0, ""           },
  { "ticket-default-report",  0,                  80, 0, 0, 0, ""           },
  { "timeline-default-style",   0,                   5, 0, 0, 0, "m"          },
  { "timeline-hard-newlines",   0,                   0, 0, 0, 0, "off"        },
  { "timeline-mark-leaves", 0,                   5, 0, 0, 0, "1"          },
  { "timeline-plaintext",   0,                   0, 0, 0, 0, "off"        },
  { "timeline-truncate-at-blank",       0,                   0, 0, 0, 0, "off"        },
  { "timeline-tslink-info", 0,                   0, 0, 0, 0, "off"        },
  { "timeline-utc",         0,                   0, 0, 0, 0, "on"         },
  { "user-color-map",       0,                  40, 0, 1, 0, ""           },
  { "uv-sync",              0,                   0, 0, 0, 0, "off"        },
  { "verify-comments",      0,                   8, 0, 0, 0, "on"         },
  { "vuln-report",          0,                   8, 0, 0, 0, "log"        },
  { "web-browser",          0,                  30, 0, 0, 1, ""           },
{0,0,0,0,0,0,0}};
