You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by wo...@apache.org on 2020/10/21 19:29:40 UTC

[couchdb] 01/01: Remove master content, point to main

This is an automated email from the ASF dual-hosted git repository.

wohali pushed a commit to branch fix-master
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 9f400b0957040bc63710ecede19cd6ef58d47190
Author: Joan Touzet <jo...@atypical.net>
AuthorDate: Wed Oct 21 15:29:20 2020 -0400

    Remove master content, point to main
---
 .asf.yaml                                          |   32 -
 .credo.exs                                         |  178 -
 .formatter.exs                                     |    9 -
 .github/ISSUE_TEMPLATE/bug_report.md               |   36 -
 .github/ISSUE_TEMPLATE/enhancement.md              |   27 -
 .github/ISSUE_TEMPLATE/rfc.md                      |   85 -
 .github/PULL_REQUEST_TEMPLATE.md                   |   35 -
 .gitignore                                         |  129 -
 .mailmap                                           |   13 -
 BUGS.md                                            |   13 -
 COMMITTERS.md                                      |   11 -
 CONTRIBUTING.md                                    |  290 -
 CONTRIBUTORS.in                                    |   97 -
 INSTALL.Unix.md                                    |  265 -
 INSTALL.Windows.md                                 |   21 -
 LICENSE                                            | 2269 -------
 Makefile                                           |  526 --
 Makefile.win                                       |  456 --
 NOTICE                                             |  195 -
 README-DEV.rst                                     |  229 -
 README.rst                                         |  110 +-
 bin/erlang-version.escript                         |    3 -
 bin/warnings_in_scope                              |  125 -
 build-aux/Jenkinsfile.full                         |  810 ---
 build-aux/Jenkinsfile.pr                           |  147 -
 build-aux/README.Jenkins                           |  149 -
 build-aux/couchdb-build-release.sh                 |   56 -
 build-aux/dist-error                               |   28 -
 build-aux/introspect                               |   73 -
 build-aux/logfile-uploader.py                      |  138 -
 build-aux/print-committerlist.sh                   |   68 -
 build-aux/show-test-results.py                     |  412 --
 build-aux/sphinx-build                             |   34 -
 build-aux/sphinx-touch                             |   24 -
 config/config.exs                                  |   30 -
 config/dev.exs                                     |    1 -
 config/integration.exs                             |   12 -
 config/prod.exs                                    |    1 -
 config/test.exs                                    |   12 -
 configure                                          |  291 -
 configure.ps1                                      |  230 -
 dev/boot_node.erl                                  |  148 -
 dev/pbkdf2.py                                      |  201 -
 dev/remsh                                          |   29 -
 dev/run                                            |  836 ---
 dev/run.cmd                                        |   15 -
 emilio.config                                      |   20 -
 make.cmd                                           |    3 -
 mix.exs                                            |  139 -
 mix.lock                                           |   18 -
 rebar.config.script                                |  217 -
 rel/apps/couch_epi.config                          |   22 -
 rel/boot_dev_cluster.sh                            |   40 -
 rel/files/README                                   |   18 -
 rel/files/couchdb.cmd.in                           |   37 -
 rel/files/couchdb.in                               |   50 -
 rel/files/eunit.config                             |   16 -
 rel/files/eunit.ini                                |   38 -
 rel/files/sys.config                               |   13 -
 rel/files/vm.args                                  |   11 -
 rel/haproxy.cfg                                    |   45 -
 rel/overlay/bin/remsh                              |  111 -
 rel/overlay/etc/default.d/README                   |   11 -
 rel/overlay/etc/default.ini                        |  631 --
 rel/overlay/etc/local.d/README                     |    8 -
 rel/overlay/etc/local.ini                          |   95 -
 rel/overlay/etc/vm.args                            |   62 -
 rel/plugins/eunit_plugin.erl                       |   59 -
 rel/reltool.config                                 |  142 -
 setup_eunit.template                               |   18 -
 share/server/60/escodegen.js                       |    1 -
 share/server/60/esprima.js                         | 6711 --------------------
 share/server/60/rewrite_fun.js                     |   56 -
 share/server/coffee-script.js                      |   12 -
 share/server/dreyfus.js                            |   62 -
 share/server/filter.js                             |   46 -
 share/server/json2.js                              |  482 --
 share/server/loop.js                               |  167 -
 share/server/mimeparse.js                          |  158 -
 share/server/render.js                             |  400 --
 share/server/rewrite_fun.js                        |   20 -
 share/server/state.js                              |   31 -
 share/server/util.js                               |  158 -
 share/server/validate.js                           |   25 -
 share/server/views.js                              |  138 -
 src/chttpd/LICENSE                                 |  202 -
 src/chttpd/include/chttpd.hrl                      |   28 -
 src/chttpd/include/chttpd_cors.hrl                 |   81 -
 src/chttpd/priv/stats_descriptions.cfg             |   24 -
 src/chttpd/rebar.config                            |    2 -
 src/chttpd/src/chttpd.app.src                      |   33 -
 src/chttpd/src/chttpd.erl                          | 1384 ----
 src/chttpd/src/chttpd_app.erl                      |   21 -
 src/chttpd/src/chttpd_auth.erl                     |   98 -
 src/chttpd/src/chttpd_auth_cache.erl               |  243 -
 src/chttpd/src/chttpd_auth_request.erl             |  155 -
 src/chttpd/src/chttpd_cors.erl                     |  409 --
 src/chttpd/src/chttpd_db.erl                       | 2305 -------
 src/chttpd/src/chttpd_epi.erl                      |   54 -
 src/chttpd/src/chttpd_external.erl                 |  185 -
 src/chttpd/src/chttpd_handlers.erl                 |   86 -
 src/chttpd/src/chttpd_httpd_handlers.erl           |   46 -
 src/chttpd/src/chttpd_misc.erl                     |  297 -
 src/chttpd/src/chttpd_node.erl                     |  287 -
 src/chttpd/src/chttpd_plugin.erl                   |   63 -
 src/chttpd/src/chttpd_prefer_header.erl            |   55 -
 src/chttpd/src/chttpd_rewrite.erl                  |  487 --
 src/chttpd/src/chttpd_show.erl                     |  279 -
 src/chttpd/src/chttpd_stats.erl                    |  107 -
 src/chttpd/src/chttpd_sup.erl                      |   97 -
 src/chttpd/src/chttpd_test_util.erl                |   27 -
 src/chttpd/src/chttpd_view.erl                     |  186 -
 src/chttpd/src/chttpd_xframe_options.erl           |   99 -
 src/chttpd/test/eunit/chttpd_auth_tests.erl        |  129 -
 src/chttpd/test/eunit/chttpd_cors_test.erl         |  564 --
 src/chttpd/test/eunit/chttpd_csp_tests.erl         |   81 -
 .../test/eunit/chttpd_db_attachment_size_tests.erl |  206 -
 .../eunit/chttpd_db_bulk_get_multipart_test.erl    |  332 -
 src/chttpd/test/eunit/chttpd_db_bulk_get_test.erl  |  345 -
 src/chttpd/test/eunit/chttpd_db_doc_size_tests.erl |  179 -
 src/chttpd/test/eunit/chttpd_db_test.erl           |  494 --
 src/chttpd/test/eunit/chttpd_dbs_info_test.erl     |  169 -
 src/chttpd/test/eunit/chttpd_delayed_test.erl      |   72 -
 src/chttpd/test/eunit/chttpd_error_info_tests.erl  |  168 -
 src/chttpd/test/eunit/chttpd_handlers_tests.erl    |   87 -
 .../test/eunit/chttpd_open_revs_error_test.erl     |  112 -
 src/chttpd/test/eunit/chttpd_plugin_tests.erl      |  187 -
 .../test/eunit/chttpd_prefer_header_test.erl       |  127 -
 src/chttpd/test/eunit/chttpd_purge_tests.erl       |  407 --
 src/chttpd/test/eunit/chttpd_security_tests.erl    |  406 --
 .../test/eunit/chttpd_socket_buffer_size_test.erl  |  127 -
 src/chttpd/test/eunit/chttpd_view_test.erl         |  124 -
 src/chttpd/test/eunit/chttpd_welcome_test.erl      |  104 -
 src/chttpd/test/eunit/chttpd_xframe_test.erl       |   97 -
 src/couch/.gitignore                               |   21 -
 src/couch/LICENSE                                  |  201 -
 src/couch/include/couch_db.hrl                     |  221 -
 src/couch/include/couch_eunit.hrl                  |   77 -
 src/couch/include/couch_eunit_proper.hrl           |   29 -
 src/couch/include/couch_js_functions.hrl           |  163 -
 .../priv/couch_ejson_compare/couch_ejson_compare.c |  451 --
 src/couch/priv/couch_js/1.8.5/help.h               |   86 -
 src/couch/priv/couch_js/1.8.5/http.c               |  701 --
 src/couch/priv/couch_js/1.8.5/http.h               |   27 -
 src/couch/priv/couch_js/1.8.5/main.c               |  489 --
 src/couch/priv/couch_js/1.8.5/utf8.c               |  297 -
 src/couch/priv/couch_js/1.8.5/utf8.h               |   19 -
 src/couch/priv/couch_js/1.8.5/util.c               |  298 -
 src/couch/priv/couch_js/1.8.5/util.h               |   37 -
 src/couch/priv/couch_js/60/help.h                  |   86 -
 src/couch/priv/couch_js/60/http.cpp                |  649 --
 src/couch/priv/couch_js/60/http.h                  |   27 -
 src/couch/priv/couch_js/60/main.cpp                |  529 --
 src/couch/priv/couch_js/60/util.cpp                |  365 --
 src/couch/priv/couch_js/60/util.h                  |   42 -
 src/couch/priv/couch_js/68/help.h                  |   86 -
 src/couch/priv/couch_js/68/http.cpp                |  650 --
 src/couch/priv/couch_js/68/http.h                  |   27 -
 src/couch/priv/couch_js/68/main.cpp                |  535 --
 src/couch/priv/couch_js/68/util.cpp                |  358 --
 src/couch/priv/couch_js/68/util.h                  |   41 -
 src/couch/priv/icu_driver/couch_icu_driver.c       |  184 -
 src/couch/priv/spawnkillable/couchspawnkillable.sh |   20 -
 .../priv/spawnkillable/couchspawnkillable_win.c    |  145 -
 src/couch/priv/stats_descriptions.cfg              |  332 -
 src/couch/rebar.config.script                      |  241 -
 src/couch/src/couch.app.src                        |   84 -
 src/couch/src/couch.erl                            |   67 -
 src/couch/src/couch_app.erl                        |   40 -
 src/couch/src/couch_att.erl                        |  956 ---
 src/couch/src/couch_auth_cache.erl                 |  172 -
 src/couch/src/couch_base32.erl                     |  127 -
 src/couch/src/couch_bt_engine.erl                  | 1246 ----
 src/couch/src/couch_bt_engine.hrl                  |   27 -
 src/couch/src/couch_bt_engine_compactor.erl        |  590 --
 src/couch/src/couch_bt_engine_header.erl           |  451 --
 src/couch/src/couch_bt_engine_stream.erl           |   70 -
 src/couch/src/couch_btree.erl                      |  855 ---
 src/couch/src/couch_changes.erl                    |  724 ---
 src/couch/src/couch_compress.erl                   |   99 -
 src/couch/src/couch_db.erl                         | 2084 ------
 src/couch/src/couch_db_engine.erl                  | 1105 ----
 src/couch/src/couch_db_epi.erl                     |   52 -
 src/couch/src/couch_db_header.erl                  |  405 --
 src/couch/src/couch_db_int.hrl                     |   76 -
 src/couch/src/couch_db_plugin.erl                  |   96 -
 src/couch/src/couch_db_split.erl                   |  503 --
 src/couch/src/couch_db_updater.erl                 |  955 ---
 src/couch/src/couch_debug.erl                      |  567 --
 src/couch/src/couch_doc.erl                        |  515 --
 src/couch/src/couch_drv.erl                        |   63 -
 src/couch/src/couch_ejson_compare.erl              |  111 -
 src/couch/src/couch_ejson_size.erl                 |   99 -
 src/couch/src/couch_emsort.erl                     |  318 -
 src/couch/src/couch_event_sup.erl                  |   74 -
 src/couch/src/couch_file.erl                       |  804 ---
 src/couch/src/couch_flags.erl                      |  135 -
 src/couch/src/couch_flags_config.erl               |  288 -
 src/couch/src/couch_hash.erl                       |   45 -
 src/couch/src/couch_hotp.erl                       |   30 -
 src/couch/src/couch_httpd.erl                      | 1310 ----
 src/couch/src/couch_httpd_auth.erl                 |  564 --
 src/couch/src/couch_httpd_db.erl                   | 1263 ----
 src/couch/src/couch_httpd_external.erl             |  146 -
 src/couch/src/couch_httpd_handlers.erl             |   21 -
 src/couch/src/couch_httpd_misc_handlers.erl        |  269 -
 src/couch/src/couch_httpd_multipart.erl            |  317 -
 src/couch/src/couch_httpd_rewrite.erl              |  484 --
 src/couch/src/couch_httpd_vhost.erl                |  415 --
 src/couch/src/couch_io_logger.erl                  |  107 -
 src/couch/src/couch_key_tree.erl                   |  561 --
 src/couch/src/couch_lru.erl                        |   64 -
 src/couch/src/couch_multidb_changes.erl            |  891 ---
 src/couch/src/couch_native_process.erl             |  452 --
 src/couch/src/couch_os_process.erl                 |  265 -
 src/couch/src/couch_partition.erl                  |  164 -
 src/couch/src/couch_passwords.erl                  |  153 -
 src/couch/src/couch_primary_sup.erl                |   42 -
 src/couch/src/couch_proc_manager.erl               |  603 --
 src/couch/src/couch_query_servers.erl              |  786 ---
 src/couch/src/couch_rand.erl                       |   27 -
 src/couch/src/couch_secondary_sup.erl              |   72 -
 src/couch/src/couch_server.erl                     |  955 ---
 src/couch/src/couch_server_int.hrl                 |   23 -
 src/couch/src/couch_stream.erl                     |  308 -
 src/couch/src/couch_sup.erl                        |  199 -
 src/couch/src/couch_task_status.erl                |  162 -
 src/couch/src/couch_totp.erl                       |   23 -
 src/couch/src/couch_users_db.erl                   |  137 -
 src/couch/src/couch_util.erl                       |  777 ---
 src/couch/src/couch_uuids.erl                      |  191 -
 src/couch/src/couch_work_queue.erl                 |  188 -
 src/couch/src/test_request.erl                     |  111 -
 src/couch/src/test_util.erl                        |  364 --
 src/couch/test/eunit/chttpd_endpoints_tests.erl    |  103 -
 src/couch/test/eunit/couch_auth_cache_tests.erl    |  349 -
 src/couch/test/eunit/couch_base32_tests.erl        |   28 -
 .../test/eunit/couch_bt_engine_compactor_tests.erl |  129 -
 src/couch/test/eunit/couch_bt_engine_tests.erl     |   20 -
 .../test/eunit/couch_bt_engine_upgrade_tests.erl   |  244 -
 src/couch/test/eunit/couch_btree_tests.erl         |  572 --
 src/couch/test/eunit/couch_changes_tests.erl       |  962 ---
 src/couch/test/eunit/couch_db_doc_tests.erl        |  121 -
 src/couch/test/eunit/couch_db_mpr_tests.erl        |  137 -
 src/couch/test/eunit/couch_db_plugin_tests.erl     |  205 -
 .../test/eunit/couch_db_props_upgrade_tests.erl    |   83 -
 src/couch/test/eunit/couch_db_split_tests.erl      |  331 -
 src/couch/test/eunit/couch_db_tests.erl            |  198 -
 src/couch/test/eunit/couch_doc_json_tests.erl      |  493 --
 src/couch/test/eunit/couch_doc_tests.erl           |  145 -
 src/couch/test/eunit/couch_ejson_size_tests.erl    |   72 -
 src/couch/test/eunit/couch_etag_tests.erl          |   30 -
 src/couch/test/eunit/couch_file_tests.erl          |  551 --
 src/couch/test/eunit/couch_flags_config_tests.erl  |  119 -
 src/couch/test/eunit/couch_flags_tests.erl         |  150 -
 src/couch/test/eunit/couch_hotp_tests.erl          |   28 -
 src/couch/test/eunit/couch_index_tests.erl         |  232 -
 src/couch/test/eunit/couch_js_tests.erl            |  172 -
 src/couch/test/eunit/couch_key_tree_prop_tests.erl |  530 --
 src/couch/test/eunit/couch_key_tree_tests.erl      |  413 --
 src/couch/test/eunit/couch_passwords_tests.erl     |   54 -
 src/couch/test/eunit/couch_query_servers_tests.erl |   95 -
 src/couch/test/eunit/couch_server_tests.erl        |  294 -
 src/couch/test/eunit/couch_stream_tests.erl        |  124 -
 src/couch/test/eunit/couch_task_status_tests.erl   |  233 -
 src/couch/test/eunit/couch_totp_tests.erl          |   55 -
 src/couch/test/eunit/couch_util_tests.erl          |  177 -
 src/couch/test/eunit/couch_uuids_tests.erl         |  125 -
 src/couch/test/eunit/couch_work_queue_tests.erl    |  402 --
 src/couch/test/eunit/couchdb_attachments_tests.erl |  765 ---
 src/couch/test/eunit/couchdb_auth_tests.erl        |  115 -
 .../test/eunit/couchdb_cookie_domain_tests.erl     |   80 -
 src/couch/test/eunit/couchdb_cors_tests.erl        |  344 -
 src/couch/test/eunit/couchdb_db_tests.erl          |   91 -
 src/couch/test/eunit/couchdb_design_doc_tests.erl  |   87 -
 .../test/eunit/couchdb_file_compression_tests.erl  |  250 -
 .../test/eunit/couchdb_location_header_tests.erl   |   78 -
 src/couch/test/eunit/couchdb_mrview_cors_tests.erl |  140 -
 src/couch/test/eunit/couchdb_mrview_tests.erl      |  261 -
 src/couch/test/eunit/couchdb_os_proc_pool.erl      |  306 -
 .../test/eunit/couchdb_update_conflicts_tests.erl  |  280 -
 src/couch/test/eunit/couchdb_vhosts_tests.erl      |  271 -
 src/couch/test/eunit/couchdb_views_tests.erl       |  668 --
 .../fixtures/6cf2c2f766f87b618edf6630b00f8736.view |  Bin 8310 -> 0 bytes
 .../test/eunit/fixtures/couch_stats_aggregates.cfg |   19 -
 .../test/eunit/fixtures/couch_stats_aggregates.ini |   20 -
 .../test/eunit/fixtures/db_non_partitioned.couch   |  Bin 12479 -> 0 bytes
 .../eunit/fixtures/db_v6_with_1_purge_req.couch    |  Bin 12470 -> 0 bytes
 .../db_v6_with_1_purge_req_for_2_docs.couch        |  Bin 16557 -> 0 bytes
 .../eunit/fixtures/db_v6_with_2_purge_req.couch    |  Bin 16566 -> 0 bytes
 .../eunit/fixtures/db_v6_without_purge_req.couch   |  Bin 61644 -> 0 bytes
 .../eunit/fixtures/db_v7_with_1_purge_req.couch    |  Bin 16617 -> 0 bytes
 .../db_v7_with_1_purge_req_for_2_docs.couch        |  Bin 20705 -> 0 bytes
 .../eunit/fixtures/db_v7_with_2_purge_req.couch    |  Bin 20713 -> 0 bytes
 .../eunit/fixtures/db_v7_without_purge_req.couch   |  Bin 65781 -> 0 bytes
 src/couch/test/eunit/fixtures/logo.png             |  Bin 3010 -> 0 bytes
 src/couch/test/eunit/fixtures/multipart.http       |   13 -
 .../test/eunit/fixtures/os_daemon_bad_perm.sh      |   17 -
 .../test/eunit/fixtures/os_daemon_can_reboot.sh    |   15 -
 .../test/eunit/fixtures/os_daemon_configer.escript |   97 -
 .../test/eunit/fixtures/os_daemon_die_on_boot.sh   |   15 -
 .../test/eunit/fixtures/os_daemon_die_quickly.sh   |   15 -
 .../test/eunit/fixtures/os_daemon_looper.escript   |   26 -
 src/couch/test/eunit/fixtures/test.couch           |  Bin 28878 -> 0 bytes
 src/couch/test/eunit/global_changes_tests.erl      |  159 -
 src/couch/test/eunit/json_stream_parse_tests.erl   |  151 -
 src/couch/test/eunit/test_web.erl                  |  114 -
 src/couch/test/exunit/couch_compress_tests.exs     |  113 -
 src/couch/test/exunit/fabric_test.exs              |  101 -
 src/couch/test/exunit/same_site_cookie_tests.exs   |   44 -
 src/couch/test/exunit/test_helper.exs              |    2 -
 src/couch_epi/.gitignore                           |    4 -
 src/couch_epi/LICENSE                              |  203 -
 src/couch_epi/README.md                            |  166 -
 src/couch_epi/rebar.config                         |    7 -
 src/couch_epi/src/couch_epi.app.src.script         |   28 -
 src/couch_epi/src/couch_epi.erl                    |  179 -
 src/couch_epi/src/couch_epi.hrl                    |   15 -
 src/couch_epi/src/couch_epi_app.erl                |   23 -
 src/couch_epi/src/couch_epi_codechange_monitor.erl |   63 -
 src/couch_epi/src/couch_epi_codegen.erl            |   85 -
 src/couch_epi/src/couch_epi_data.erl               |  117 -
 src/couch_epi/src/couch_epi_data_gen.erl           |  284 -
 src/couch_epi/src/couch_epi_functions.erl          |   49 -
 src/couch_epi/src/couch_epi_functions_gen.erl      |  402 --
 src/couch_epi/src/couch_epi_module_keeper.erl      |  161 -
 src/couch_epi/src/couch_epi_plugin.erl             |  389 --
 src/couch_epi/src/couch_epi_sup.erl                |  142 -
 src/couch_epi/src/couch_epi_util.erl               |   29 -
 src/couch_epi/test/eunit/couch_epi_basic_test.erl  |  149 -
 src/couch_epi/test/eunit/couch_epi_tests.erl       |  690 --
 src/couch_epi/test/eunit/fixtures/app_data1.cfg    |    4 -
 src/couch_epi/test/eunit/fixtures/app_data2.cfg    |    8 -
 src/couch_event/.gitignore                         |    2 -
 src/couch_event/LICENSE                            |  202 -
 src/couch_event/README.md                          |    3 -
 src/couch_event/rebar.config                       |    1 -
 src/couch_event/src/couch_event.app.src            |   22 -
 src/couch_event/src/couch_event.erl                |   65 -
 src/couch_event/src/couch_event_app.erl            |   27 -
 src/couch_event/src/couch_event_int.hrl            |   19 -
 src/couch_event/src/couch_event_listener.erl       |  238 -
 src/couch_event/src/couch_event_listener_mfa.erl   |  107 -
 src/couch_event/src/couch_event_os_listener.erl    |   76 -
 src/couch_event/src/couch_event_server.erl         |  156 -
 src/couch_event/src/couch_event_sup2.erl           |   44 -
 src/couch_index/.gitignore                         |    3 -
 src/couch_index/LICENSE                            |  202 -
 src/couch_index/rebar.config                       |    2 -
 src/couch_index/src/couch_index.app.src            |   19 -
 src/couch_index/src/couch_index.erl                |  622 --
 src/couch_index/src/couch_index_app.erl            |   21 -
 src/couch_index/src/couch_index_compactor.erl      |  135 -
 src/couch_index/src/couch_index_epi.erl            |   50 -
 src/couch_index/src/couch_index_plugin.erl         |   51 -
 .../src/couch_index_plugin_couch_db.erl            |   26 -
 src/couch_index/src/couch_index_server.erl         |  322 -
 src/couch_index/src/couch_index_sup.erl            |   24 -
 src/couch_index/src/couch_index_updater.erl        |  239 -
 src/couch_index/src/couch_index_util.erl           |   78 -
 .../test/eunit/couch_index_compaction_tests.erl    |  117 -
 .../test/eunit/couch_index_ddoc_updated_tests.erl  |  145 -
 src/couch_log/.gitignore                           |    3 -
 src/couch_log/LICENSE                              |  202 -
 src/couch_log/include/couch_log.hrl                |   22 -
 src/couch_log/priv/stats_descriptions.cfg          |   48 -
 src/couch_log/rebar.config                         |    2 -
 src/couch_log/src/couch_log.app.src                |   19 -
 src/couch_log/src/couch_log.erl                    |   76 -
 src/couch_log/src/couch_log_app.erl                |   24 -
 src/couch_log/src/couch_log_config.erl             |  100 -
 src/couch_log/src/couch_log_config_dyn.erl         |   28 -
 src/couch_log/src/couch_log_error_logger_h.erl     |   57 -
 src/couch_log/src/couch_log_formatter.erl          |  442 --
 src/couch_log/src/couch_log_monitor.erl            |   67 -
 src/couch_log/src/couch_log_server.erl             |  107 -
 src/couch_log/src/couch_log_sup.erl                |   89 -
 src/couch_log/src/couch_log_trunc_io.erl           |  838 ---
 src/couch_log/src/couch_log_trunc_io_fmt.erl       |  552 --
 src/couch_log/src/couch_log_util.erl               |  149 -
 src/couch_log/src/couch_log_writer.erl             |   83 -
 src/couch_log/src/couch_log_writer_file.erl        |  142 -
 src/couch_log/src/couch_log_writer_journald.erl    |   69 -
 src/couch_log/src/couch_log_writer_stderr.erl      |   54 -
 src/couch_log/src/couch_log_writer_syslog.erl      |  162 -
 .../test/eunit/couch_log_config_listener_test.erl  |   82 -
 src/couch_log/test/eunit/couch_log_config_test.erl |  110 -
 .../test/eunit/couch_log_error_logger_h_test.erl   |   45 -
 .../test/eunit/couch_log_formatter_test.erl        |  875 ---
 .../test/eunit/couch_log_monitor_test.erl          |   67 -
 src/couch_log/test/eunit/couch_log_server_test.erl |  118 -
 src/couch_log/test/eunit/couch_log_test.erl        |   84 -
 src/couch_log/test/eunit/couch_log_test_util.erl   |  168 -
 .../test/eunit/couch_log_trunc_io_fmt_test.erl     |   92 -
 src/couch_log/test/eunit/couch_log_util_test.erl   |   55 -
 src/couch_log/test/eunit/couch_log_writer_ets.erl  |   49 -
 .../test/eunit/couch_log_writer_file_test.erl      |  169 -
 .../test/eunit/couch_log_writer_stderr_test.erl    |   58 -
 .../test/eunit/couch_log_writer_syslog_test.erl    |  122 -
 src/couch_log/test/eunit/couch_log_writer_test.erl |   54 -
 src/couch_mrview/LICENSE                           |  202 -
 src/couch_mrview/include/couch_mrview.hrl          |  110 -
 src/couch_mrview/priv/stats_descriptions.cfg       |   24 -
 src/couch_mrview/rebar.config                      |    2 -
 src/couch_mrview/src/couch_mrview.app.src          |   18 -
 src/couch_mrview/src/couch_mrview.erl              |  701 --
 src/couch_mrview/src/couch_mrview_cleanup.erl      |   59 -
 src/couch_mrview/src/couch_mrview_compactor.erl    |  294 -
 src/couch_mrview/src/couch_mrview_http.erl         |  640 --
 src/couch_mrview/src/couch_mrview_index.erl        |  317 -
 src/couch_mrview/src/couch_mrview_show.erl         |  468 --
 src/couch_mrview/src/couch_mrview_test_util.erl    |  123 -
 .../src/couch_mrview_update_notifier.erl           |   49 -
 src/couch_mrview/src/couch_mrview_updater.erl      |  373 --
 src/couch_mrview/src/couch_mrview_util.erl         | 1180 ----
 .../test/eunit/couch_mrview_all_docs_tests.erl     |  140 -
 .../test/eunit/couch_mrview_collation_tests.erl    |  207 -
 .../test/eunit/couch_mrview_compact_tests.erl      |  115 -
 .../test/eunit/couch_mrview_ddoc_updated_tests.erl |  145 -
 .../eunit/couch_mrview_ddoc_validation_tests.erl   |  422 --
 .../test/eunit/couch_mrview_design_docs_tests.erl  |  136 -
 .../test/eunit/couch_mrview_http_tests.erl         |   28 -
 .../test/eunit/couch_mrview_index_info_tests.erl   |  111 -
 .../test/eunit/couch_mrview_local_docs_tests.erl   |  148 -
 .../test/eunit/couch_mrview_map_views_tests.erl    |  144 -
 .../eunit/couch_mrview_purge_docs_fabric_tests.erl |  286 -
 .../test/eunit/couch_mrview_purge_docs_tests.erl   |  575 --
 .../test/eunit/couch_mrview_red_views_tests.erl    |   95 -
 .../test/eunit/couch_mrview_util_tests.erl         |   39 -
 src/couch_peruser/.gitignore                       |    9 -
 src/couch_peruser/LICENSE                          |  202 -
 src/couch_peruser/README.md                        |   34 -
 src/couch_peruser/src/couch_peruser.app.src        |   20 -
 src/couch_peruser/src/couch_peruser.erl            |  412 --
 src/couch_peruser/src/couch_peruser_app.erl        |   26 -
 src/couch_peruser/src/couch_peruser_sup.erl        |   29 -
 .../test/eunit/couch_peruser_test.erl              |  538 --
 src/couch_plugins/LICENSE                          |  202 -
 src/couch_plugins/Makefile.am                      |   40 -
 src/couch_plugins/README.md                        |  159 -
 src/couch_plugins/src/couch_plugins.app.src        |   22 -
 src/couch_plugins/src/couch_plugins.erl            |  304 -
 src/couch_plugins/src/couch_plugins_httpd.erl      |   65 -
 src/couch_pse_tests/src/couch_pse_tests.app.src    |   20 -
 src/couch_pse_tests/src/cpse_gather.erl            |   95 -
 src/couch_pse_tests/src/cpse_test_attachments.erl  |   99 -
 src/couch_pse_tests/src/cpse_test_compaction.erl   |  318 -
 .../src/cpse_test_copy_purge_infos.erl             |   82 -
 src/couch_pse_tests/src/cpse_test_fold_changes.erl |  185 -
 src/couch_pse_tests/src/cpse_test_fold_docs.erl    |  400 --
 .../src/cpse_test_fold_purge_infos.erl             |  167 -
 .../src/cpse_test_get_set_props.erl                |   95 -
 .../src/cpse_test_open_close_delete.erl            |   77 -
 .../src/cpse_test_purge_bad_checkpoints.erl        |   80 -
 src/couch_pse_tests/src/cpse_test_purge_docs.erl   |  464 --
 .../src/cpse_test_purge_replication.erl            |  215 -
 src/couch_pse_tests/src/cpse_test_purge_seqs.erl   |  129 -
 .../src/cpse_test_read_write_docs.erl              |  311 -
 src/couch_pse_tests/src/cpse_test_ref_counting.erl |  113 -
 src/couch_pse_tests/src/cpse_util.erl              |  677 --
 src/couch_replicator/.gitignore                    |    4 -
 src/couch_replicator/LICENSE                       |  202 -
 src/couch_replicator/README.md                     |  285 -
 .../include/couch_replicator_api_wrap.hrl          |   31 -
 src/couch_replicator/priv/stats_descriptions.cfg   |  152 -
 src/couch_replicator/src/couch_replicator.app.src  |   37 -
 src/couch_replicator/src/couch_replicator.erl      |  416 --
 src/couch_replicator/src/couch_replicator.hrl      |   43 -
 .../src/couch_replicator_api_wrap.erl              |  946 ---
 src/couch_replicator/src/couch_replicator_app.erl  |   17 -
 src/couch_replicator/src/couch_replicator_auth.erl |  106 -
 .../src/couch_replicator_auth_noop.erl             |   52 -
 .../src/couch_replicator_auth_session.erl          |  860 ---
 .../src/couch_replicator_changes_reader.erl        |  130 -
 .../src/couch_replicator_clustering.erl            |  279 -
 .../src/couch_replicator_connection.erl            |  267 -
 .../src/couch_replicator_db_changes.erl            |  108 -
 .../src/couch_replicator_doc_processor.erl         |  962 ---
 .../src/couch_replicator_doc_processor_worker.erl  |  284 -
 src/couch_replicator/src/couch_replicator_docs.erl |  861 ---
 .../src/couch_replicator_fabric.erl                |  155 -
 .../src/couch_replicator_fabric_rpc.erl            |   97 -
 .../src/couch_replicator_filters.erl               |  213 -
 .../src/couch_replicator_httpc.erl                 |  495 --
 .../src/couch_replicator_httpc_pool.erl            |  184 -
 .../src/couch_replicator_httpd.erl                 |  173 -
 .../src/couch_replicator_httpd_util.erl            |  201 -
 src/couch_replicator/src/couch_replicator_ids.erl  |  275 -
 .../src/couch_replicator_job_sup.erl               |   34 -
 .../src/couch_replicator_js_functions.hrl          |  177 -
 .../src/couch_replicator_notifier.erl              |   58 -
 .../src/couch_replicator_rate_limiter.erl          |  262 -
 .../src/couch_replicator_rate_limiter_tables.erl   |   62 -
 .../src/couch_replicator_scheduler.erl             | 1703 -----
 .../src/couch_replicator_scheduler.hrl             |   15 -
 .../src/couch_replicator_scheduler_job.erl         | 1090 ----
 .../src/couch_replicator_scheduler_sup.erl         |   62 -
 .../src/couch_replicator_stats.erl                 |   93 -
 src/couch_replicator/src/couch_replicator_sup.erl  |   72 -
 .../src/couch_replicator_utils.erl                 |  272 -
 .../src/couch_replicator_worker.erl                |  490 --
 src/couch_replicator/src/json_stream_parse.erl     |  432 --
 .../couch_replicator_attachments_too_large.erl     |  102 -
 .../test/eunit/couch_replicator_compact_tests.erl  |  455 --
 .../eunit/couch_replicator_connection_tests.erl    |  241 -
 ...replicator_create_target_with_options_tests.erl |  143 -
 .../couch_replicator_error_reporting_tests.erl     |  271 -
 .../test/eunit/couch_replicator_filtered_tests.erl |  239 -
 .../eunit/couch_replicator_httpc_pool_tests.erl    |  174 -
 .../eunit/couch_replicator_id_too_long_tests.erl   |   90 -
 .../eunit/couch_replicator_large_atts_tests.erl    |  121 -
 .../eunit/couch_replicator_many_leaves_tests.erl   |  205 -
 .../eunit/couch_replicator_missing_stubs_tests.erl |  154 -
 .../test/eunit/couch_replicator_proxy_tests.erl    |  116 -
 .../eunit/couch_replicator_rate_limiter_tests.erl  |   89 -
 ...ch_replicator_retain_stats_between_job_runs.erl |  282 -
 .../test/eunit/couch_replicator_selector_tests.erl |  117 -
 ...ch_replicator_small_max_request_size_target.erl |  185 -
 .../test/eunit/couch_replicator_test_helper.erl    |  135 -
 .../couch_replicator_use_checkpoints_tests.erl     |  178 -
 src/couch_stats/.gitignore                         |    6 -
 src/couch_stats/LICENSE                            |  201 -
 src/couch_stats/README.md                          |   29 -
 src/couch_stats/priv/sample_descriptions.cfg       |   15 -
 src/couch_stats/src/couch_stats.app.src            |   20 -
 src/couch_stats/src/couch_stats.erl                |  130 -
 src/couch_stats/src/couch_stats.hrl                |   14 -
 src/couch_stats/src/couch_stats_aggregator.erl     |  160 -
 src/couch_stats/src/couch_stats_app.erl            |   23 -
 src/couch_stats/src/couch_stats_httpd.erl          |  113 -
 .../src/couch_stats_process_tracker.erl            |   82 -
 src/couch_stats/src/couch_stats_sup.erl            |   35 -
 src/couch_tests/.gitignore                         |    6 -
 src/couch_tests/include/couch_tests.hrl            |   28 -
 src/couch_tests/rebar.config                       |   20 -
 src/couch_tests/setups/couch_epi_dispatch.erl      |   95 -
 src/couch_tests/src/couch_tests.app.src            |   18 -
 src/couch_tests/src/couch_tests.erl                |  228 -
 src/couch_tests/src/couch_tests_combinatorics.erl  |  137 -
 src/couch_tests/test/couch_tests_app_tests.erl     |  102 -
 src/ddoc_cache/LICENSE                             |  202 -
 src/ddoc_cache/README.md                           |    4 -
 src/ddoc_cache/priv/stats_descriptions.cfg         |   12 -
 src/ddoc_cache/src/ddoc_cache.app.src              |   32 -
 src/ddoc_cache/src/ddoc_cache.erl                  |   60 -
 src/ddoc_cache/src/ddoc_cache.hrl                  |   40 -
 src/ddoc_cache/src/ddoc_cache_app.erl              |   25 -
 src/ddoc_cache/src/ddoc_cache_entry.erl            |  355 --
 src/ddoc_cache/src/ddoc_cache_entry_custom.erl     |   37 -
 src/ddoc_cache/src/ddoc_cache_entry_ddocid.erl     |   46 -
 src/ddoc_cache/src/ddoc_cache_entry_ddocid_rev.erl |   47 -
 .../src/ddoc_cache_entry_validation_funs.erl       |   44 -
 src/ddoc_cache/src/ddoc_cache_lru.erl              |  333 -
 src/ddoc_cache/src/ddoc_cache_opener.erl           |   66 -
 src/ddoc_cache/src/ddoc_cache_sup.erl              |   46 -
 src/ddoc_cache/src/ddoc_cache_value.erl            |   27 -
 .../test/eunit/ddoc_cache_basic_test.erl           |  175 -
 .../test/eunit/ddoc_cache_coverage_test.erl        |   77 -
 .../test/eunit/ddoc_cache_disabled_test.erl        |   62 -
 .../test/eunit/ddoc_cache_entry_test.erl           |  159 -
 src/ddoc_cache/test/eunit/ddoc_cache_ev.erl        |   21 -
 .../test/eunit/ddoc_cache_eviction_test.erl        |   96 -
 src/ddoc_cache/test/eunit/ddoc_cache_lru_test.erl  |  219 -
 .../test/eunit/ddoc_cache_no_cache_test.erl        |   87 -
 .../test/eunit/ddoc_cache_open_error_test.erl      |   46 -
 src/ddoc_cache/test/eunit/ddoc_cache_open_test.erl |  107 -
 .../test/eunit/ddoc_cache_opener_test.erl          |   33 -
 .../test/eunit/ddoc_cache_refresh_test.erl         |  174 -
 .../test/eunit/ddoc_cache_remove_test.erl          |  224 -
 src/ddoc_cache/test/eunit/ddoc_cache_test.hrl      |   26 -
 src/ddoc_cache/test/eunit/ddoc_cache_tutil.erl     |  111 -
 src/dreyfus/.gitignore                             |    4 -
 src/dreyfus/LICENSE.txt                            |  202 -
 src/dreyfus/README.md                              |   78 -
 src/dreyfus/include/dreyfus.hrl                    |   74 -
 src/dreyfus/priv/stats_descriptions.cfg            |   65 -
 src/dreyfus/src/clouseau_rpc.erl                   |  109 -
 src/dreyfus/src/dreyfus.app.src                    |   22 -
 src/dreyfus/src/dreyfus_app.erl                    |   24 -
 src/dreyfus/src/dreyfus_bookmark.erl               |   90 -
 src/dreyfus/src/dreyfus_config.erl                 |   15 -
 src/dreyfus/src/dreyfus_epi.erl                    |   46 -
 src/dreyfus/src/dreyfus_fabric.erl                 |  205 -
 src/dreyfus/src/dreyfus_fabric_cleanup.erl         |   78 -
 src/dreyfus/src/dreyfus_fabric_group1.erl          |  129 -
 src/dreyfus/src/dreyfus_fabric_group2.erl          |  158 -
 src/dreyfus/src/dreyfus_fabric_info.erl            |  108 -
 src/dreyfus/src/dreyfus_fabric_search.erl          |  270 -
 src/dreyfus/src/dreyfus_httpd.erl                  |  614 --
 src/dreyfus/src/dreyfus_httpd_handlers.erl         |   29 -
 src/dreyfus/src/dreyfus_index.erl                  |  367 --
 src/dreyfus/src/dreyfus_index_manager.erl          |  153 -
 src/dreyfus/src/dreyfus_index_updater.erl          |  181 -
 src/dreyfus/src/dreyfus_plugin_couch_db.erl        |   26 -
 src/dreyfus/src/dreyfus_rpc.erl                    |  130 -
 src/dreyfus/src/dreyfus_sup.erl                    |   32 -
 src/dreyfus/src/dreyfus_util.erl                   |  441 --
 src/dreyfus/test/dreyfus_blacklist_await_test.erl  |   76 -
 .../test/dreyfus_blacklist_request_test.erl        |   96 -
 src/dreyfus/test/dreyfus_config_test.erl           |   71 -
 src/dreyfus/test/dreyfus_purge_test.erl            |  867 ---
 src/dreyfus/test/dreyfus_test_util.erl             |   13 -
 src/dreyfus/test/elixir/mix.exs                    |   30 -
 src/dreyfus/test/elixir/mix.lock                   |    5 -
 src/dreyfus/test/elixir/run                        |    4 -
 .../test/elixir/test/partition_search_test.exs     |  247 -
 src/dreyfus/test/elixir/test/search_test.exs       |  226 -
 src/dreyfus/test/elixir/test/test_helper.exs       |    4 -
 src/fabric/LICENSE                                 |  202 -
 src/fabric/README.md                               |   18 -
 src/fabric/include/fabric.hrl                      |   46 -
 src/fabric/priv/stats_descriptions.cfg             |   28 -
 src/fabric/rebar.config                            |   14 -
 src/fabric/src/fabric.app.src                      |   27 -
 src/fabric/src/fabric.erl                          |  720 ---
 src/fabric/src/fabric_db_create.erl                |  228 -
 src/fabric/src/fabric_db_delete.erl                |   98 -
 src/fabric/src/fabric_db_doc_count.erl             |   62 -
 src/fabric/src/fabric_db_info.erl                  |  171 -
 src/fabric/src/fabric_db_meta.erl                  |  198 -
 src/fabric/src/fabric_db_partition_info.erl        |  155 -
 src/fabric/src/fabric_db_update_listener.erl       |  177 -
 src/fabric/src/fabric_design_doc_count.erl         |   62 -
 src/fabric/src/fabric_dict.erl                     |   61 -
 src/fabric/src/fabric_doc_attachments.erl          |  160 -
 src/fabric/src/fabric_doc_atts.erl                 |  170 -
 src/fabric/src/fabric_doc_missing_revs.erl         |   97 -
 src/fabric/src/fabric_doc_open.erl                 |  610 --
 src/fabric/src/fabric_doc_open_revs.erl            |  799 ---
 src/fabric/src/fabric_doc_purge.erl                |  571 --
 src/fabric/src/fabric_doc_update.erl               |  377 --
 src/fabric/src/fabric_group_info.erl               |  139 -
 src/fabric/src/fabric_ring.erl                     |  519 --
 src/fabric/src/fabric_rpc.erl                      |  664 --
 src/fabric/src/fabric_streams.erl                  |  273 -
 src/fabric/src/fabric_util.erl                     |  347 -
 src/fabric/src/fabric_view.erl                     |  478 --
 src/fabric/src/fabric_view_all_docs.erl            |  332 -
 src/fabric/src/fabric_view_changes.erl             |  820 ---
 src/fabric/src/fabric_view_map.erl                 |  267 -
 src/fabric/src/fabric_view_reduce.erl              |  165 -
 src/fabric/test/eunit/fabric_rpc_purge_tests.erl   |  307 -
 src/fabric/test/eunit/fabric_rpc_tests.erl         |  181 -
 src/global_changes/.gitignore                      |    2 -
 src/global_changes/LICENSE                         |  203 -
 src/global_changes/README.md                       |   27 -
 src/global_changes/priv/stats_descriptions.cfg     |   20 -
 src/global_changes/src/global_changes.app.src      |   32 -
 src/global_changes/src/global_changes_app.erl      |   28 -
 src/global_changes/src/global_changes_epi.erl      |   51 -
 src/global_changes/src/global_changes_httpd.erl    |  285 -
 .../src/global_changes_httpd_handlers.erl          |   22 -
 src/global_changes/src/global_changes_listener.erl |  165 -
 src/global_changes/src/global_changes_plugin.erl   |   40 -
 src/global_changes/src/global_changes_server.erl   |  222 -
 src/global_changes/src/global_changes_sup.erl      |   84 -
 src/global_changes/src/global_changes_util.erl     |   27 -
 .../test/eunit/global_changes_hooks_tests.erl      |  156 -
 src/ioq/.gitignore                                 |    2 -
 src/ioq/src/ioq.app.src                            |   21 -
 src/ioq/src/ioq.erl                                |  189 -
 src/ioq/src/ioq_app.erl                            |   21 -
 src/ioq/src/ioq_sup.erl                            |   24 -
 src/jwtf/.gitignore                                |    4 -
 src/jwtf/LICENSE                                   |  176 -
 src/jwtf/README.md                                 |   18 -
 src/jwtf/rebar.config                              |    2 -
 src/jwtf/src/jwtf.app.src                          |   32 -
 src/jwtf/src/jwtf.erl                              |  353 -
 src/jwtf/src/jwtf_app.erl                          |   28 -
 src/jwtf/src/jwtf_keystore.erl                     |  166 -
 src/jwtf/src/jwtf_sup.erl                          |   38 -
 src/jwtf/test/jwtf_keystore_tests.erl              |   64 -
 src/jwtf/test/jwtf_tests.erl                       |  317 -
 src/ken/README.md                                  |   12 -
 src/ken/rebar.config.script                        |   28 -
 src/ken/src/ken.app.src.script                     |   38 -
 src/ken/src/ken.erl                                |   29 -
 src/ken/src/ken_app.erl                            |   28 -
 src/ken/src/ken_event_handler.erl                  |   56 -
 src/ken/src/ken_server.erl                         |  565 --
 src/ken/src/ken_sup.erl                            |   33 -
 src/ken/test/config.ini                            |    2 -
 src/ken/test/ken_server_test.erl                   |   97 -
 src/mango/.gitignore                               |    5 -
 src/mango/LICENSE.txt                              |  202 -
 src/mango/README.md                                |  542 --
 src/mango/TODO.md                                  |   18 -
 src/mango/rebar.config                             |    2 -
 src/mango/rebar.config.script                      |   24 -
 src/mango/requirements.txt                         |    4 -
 src/mango/src/mango.app.src                        |   26 -
 src/mango/src/mango.hrl                            |   13 -
 src/mango/src/mango_app.erl                        |   21 -
 src/mango/src/mango_crud.erl                       |  177 -
 src/mango/src/mango_cursor.erl                     |  256 -
 src/mango/src/mango_cursor.hrl                     |   31 -
 src/mango/src/mango_cursor_special.erl             |   67 -
 src/mango/src/mango_cursor_text.erl                |  343 -
 src/mango/src/mango_cursor_view.erl                |  511 --
 src/mango/src/mango_doc.erl                        |  537 --
 src/mango/src/mango_epi.erl                        |   48 -
 src/mango/src/mango_error.erl                      |  381 --
 src/mango/src/mango_execution_stats.erl            |   97 -
 src/mango/src/mango_execution_stats.hrl            |   20 -
 src/mango/src/mango_fields.erl                     |   55 -
 src/mango/src/mango_httpd.erl                      |  322 -
 src/mango/src/mango_httpd_handlers.erl             |   24 -
 src/mango/src/mango_idx.erl                        |  534 --
 src/mango/src/mango_idx.hrl                        |   21 -
 src/mango/src/mango_idx_special.erl                |  107 -
 src/mango/src/mango_idx_text.erl                   |  460 --
 src/mango/src/mango_idx_view.erl                   |  542 --
 src/mango/src/mango_idx_view.hrl                   |   13 -
 src/mango/src/mango_json.erl                       |  121 -
 src/mango/src/mango_json_bookmark.erl              |   71 -
 src/mango/src/mango_native_proc.erl                |  378 --
 src/mango/src/mango_opts.erl                       |  377 --
 src/mango/src/mango_selector.erl                   | 1024 ---
 src/mango/src/mango_selector_text.erl              |  438 --
 src/mango/src/mango_sort.erl                       |   75 -
 src/mango/src/mango_sup.erl                        |   24 -
 src/mango/src/mango_util.erl                       |  429 --
 src/mango/test/01-index-crud-test.py               |  380 --
 src/mango/test/02-basic-find-test.py               |  302 -
 src/mango/test/03-operator-test.py                 |  203 -
 src/mango/test/04-key-tests.py                     |  158 -
 src/mango/test/05-index-selection-test.py          |  336 -
 src/mango/test/06-basic-text-test.py               |  602 --
 src/mango/test/06-text-default-field-test.py       |   67 -
 src/mango/test/07-text-custom-field-list-test.py   |  209 -
 src/mango/test/08-text-limit-test.py               |  145 -
 src/mango/test/09-text-sort-test.py                |  115 -
 .../test/10-disable-array-length-field-test.py     |   44 -
 src/mango/test/11-ignore-design-docs-test.py       |   27 -
 src/mango/test/12-use-correct-index-test.py        |  133 -
 src/mango/test/13-stable-update-test.py            |   51 -
 src/mango/test/13-users-db-find-test.py            |   74 -
 src/mango/test/14-json-pagination-test.py          |  269 -
 src/mango/test/15-execution-stats-test.py          |   79 -
 src/mango/test/16-index-selectors-test.py          |  265 -
 src/mango/test/17-multi-type-value-test.py         |   69 -
 src/mango/test/18-json-sort.py                     |  122 -
 src/mango/test/19-find-conflicts.py                |   33 -
 src/mango/test/20-no-timeout-test.py               |   32 -
 src/mango/test/21-empty-selector-tests.py          |   91 -
 src/mango/test/README.md                           |   34 -
 src/mango/test/friend_docs.py                      |  280 -
 src/mango/test/limit_docs.py                       |  105 -
 src/mango/test/mango.py                            |  372 --
 src/mango/test/user_docs.py                        |  387 --
 src/mem3/LICENSE                                   |  202 -
 src/mem3/README.md                                 |   43 -
 src/mem3/README_reshard.md                         |   93 -
 src/mem3/include/mem3.hrl                          |   59 -
 src/mem3/priv/stats_descriptions.cfg               |   12 -
 src/mem3/rebar.config.script                       |   22 -
 src/mem3/src/mem3.app.src                          |   40 -
 src/mem3/src/mem3.erl                              |  424 --
 src/mem3/src/mem3_app.erl                          |   21 -
 src/mem3/src/mem3_cluster.erl                      |  161 -
 src/mem3/src/mem3_epi.erl                          |   51 -
 src/mem3/src/mem3_hash.erl                         |   73 -
 src/mem3/src/mem3_httpd.erl                        |   84 -
 src/mem3/src/mem3_httpd_handlers.erl               |   25 -
 src/mem3/src/mem3_nodes.erl                        |  155 -
 src/mem3/src/mem3_plugin_couch_db.erl              |   21 -
 src/mem3/src/mem3_rep.erl                          |  998 ---
 src/mem3/src/mem3_reshard.erl                      |  918 ---
 src/mem3/src/mem3_reshard.hrl                      |   74 -
 src/mem3/src/mem3_reshard_api.erl                  |  217 -
 src/mem3/src/mem3_reshard_dbdoc.erl                |  274 -
 src/mem3/src/mem3_reshard_httpd.erl                |  317 -
 src/mem3/src/mem3_reshard_index.erl                |  164 -
 src/mem3/src/mem3_reshard_job.erl                  |  716 ---
 src/mem3/src/mem3_reshard_job_sup.erl              |   55 -
 src/mem3/src/mem3_reshard_store.erl                |  286 -
 src/mem3/src/mem3_reshard_sup.erl                  |   47 -
 src/mem3/src/mem3_reshard_validate.erl             |  126 -
 src/mem3/src/mem3_rpc.erl                          |  711 ---
 src/mem3/src/mem3_seeds.erl                        |  162 -
 src/mem3/src/mem3_shards.erl                       |  766 ---
 src/mem3/src/mem3_sup.erl                          |   40 -
 src/mem3/src/mem3_sync.erl                         |  323 -
 src/mem3/src/mem3_sync_event.erl                   |   86 -
 src/mem3/src/mem3_sync_event_listener.erl          |  353 -
 src/mem3/src/mem3_sync_nodes.erl                   |  115 -
 src/mem3/src/mem3_sync_security.erl                |  117 -
 src/mem3/src/mem3_util.erl                         |  650 --
 src/mem3/test/eunit/mem3_cluster_test.erl          |  133 -
 src/mem3/test/eunit/mem3_hash_test.erl             |   23 -
 src/mem3/test/eunit/mem3_rep_test.erl              |  321 -
 src/mem3/test/eunit/mem3_reshard_api_test.erl      |  847 ---
 .../test/eunit/mem3_reshard_changes_feed_test.erl  |  389 --
 src/mem3/test/eunit/mem3_reshard_test.erl          |  834 ---
 src/mem3/test/eunit/mem3_ring_prop_tests.erl       |  151 -
 src/mem3/test/eunit/mem3_seeds_test.erl            |   69 -
 src/mem3/test/eunit/mem3_sync_security_test.erl    |   54 -
 src/mem3/test/eunit/mem3_util_test.erl             |  130 -
 src/rexi/README.md                                 |   23 -
 src/rexi/include/rexi.hrl                          |   20 -
 src/rexi/priv/stats_descriptions.cfg               |   24 -
 src/rexi/rebar.config                              |    2 -
 src/rexi/src/rexi.app.src                          |   28 -
 src/rexi/src/rexi.erl                              |  320 -
 src/rexi/src/rexi_app.erl                          |   22 -
 src/rexi/src/rexi_buffer.erl                       |  104 -
 src/rexi/src/rexi_monitor.erl                      |   65 -
 src/rexi/src/rexi_server.erl                       |  193 -
 src/rexi/src/rexi_server_mon.erl                   |  176 -
 src/rexi/src/rexi_server_sup.erl                   |   29 -
 src/rexi/src/rexi_sup.erl                          |   64 -
 src/rexi/src/rexi_utils.erl                        |  105 -
 src/setup/.gitignore                               |    4 -
 src/setup/LICENSE                                  |  203 -
 src/setup/README.md                                |  210 -
 src/setup/src/setup.app.src                        |   27 -
 src/setup/src/setup.erl                            |  386 --
 src/setup/src/setup_app.erl                        |   28 -
 src/setup/src/setup_epi.erl                        |   49 -
 src/setup/src/setup_httpd.erl                      |  175 -
 src/setup/src/setup_httpd_handlers.erl             |   22 -
 src/setup/src/setup_sup.erl                        |   44 -
 src/setup/test/t-frontend-setup.sh                 |   71 -
 src/setup/test/t-single-node-auto-setup.sh         |   24 -
 src/setup/test/t-single-node.sh                    |   46 -
 src/setup/test/t.sh                                |   63 -
 src/smoosh/README.md                               |  140 -
 src/smoosh/operator_guide.md                       |  396 --
 src/smoosh/src/smoosh.app.src                      |   29 -
 src/smoosh/src/smoosh.erl                          |   69 -
 src/smoosh/src/smoosh_app.erl                      |   28 -
 src/smoosh/src/smoosh_channel.erl                  |  325 -
 src/smoosh/src/smoosh_priority_queue.erl           |   86 -
 src/smoosh/src/smoosh_server.erl                   |  606 --
 src/smoosh/src/smoosh_sup.erl                      |   38 -
 src/smoosh/src/smoosh_utils.erl                    |   92 -
 src/smoosh/test/exunit/scheduling_window_test.exs  |   79 -
 src/smoosh/test/exunit/test_helper.exs             |    2 -
 support/build_js.escript                           |   96 -
 test/bench/benchbulk.sh                            |   69 -
 test/build/test-configure-distclean.sh             |   15 -
 test/build/test-configure.sh                       |  372 --
 test/build/test-make-clean.sh                      |   20 -
 test/elixir/.formatter.exs                         |    6 -
 test/elixir/.gitignore                             |    2 -
 test/elixir/Makefile                               |    4 -
 test/elixir/README.md                              |  256 -
 test/elixir/config/config.exs                      |   30 -
 test/elixir/config/test.exs                        |    3 -
 test/elixir/lib/couch.ex                           |  190 -
 test/elixir/lib/couch/db_test.ex                   |  557 --
 test/elixir/lib/couch_raw.ex                       |  105 -
 test/elixir/lib/ex_unit.ex                         |   48 -
 test/elixir/lib/setup.ex                           |   97 -
 test/elixir/lib/setup/common.ex                    |   27 -
 test/elixir/lib/step.ex                            |   44 -
 test/elixir/lib/step/config.ex                     |   33 -
 test/elixir/lib/step/create_db.ex                  |   53 -
 test/elixir/lib/step/start.ex                      |   85 -
 test/elixir/lib/step/user.ex                       |  103 -
 test/elixir/lib/utils.ex                           |   61 -
 test/elixir/run.cmd                                |    7 -
 test/elixir/test/all_docs_test.exs                 |  318 -
 test/elixir/test/attachment_names_test.exs         |   98 -
 test/elixir/test/attachment_paths_test.exs         |  178 -
 test/elixir/test/attachment_ranges_test.exs        |  144 -
 test/elixir/test/attachment_views_test.exs         |  143 -
 test/elixir/test/attachments_multipart_test.exs    |  410 --
 test/elixir/test/attachments_test.exs              |  483 --
 test/elixir/test/auth_cache_test.exs               |  198 -
 test/elixir/test/basics_test.exs                   |  308 -
 test/elixir/test/batch_save_test.exs               |   43 -
 test/elixir/test/bulk_docs_test.exs                |  155 -
 test/elixir/test/changes_async_test.exs            |  443 --
 test/elixir/test/changes_test.exs                  |  452 --
 test/elixir/test/cluster_with_quorum_test.exs      |  186 -
 test/elixir/test/cluster_without_quorum_test.exs   |  185 -
 test/elixir/test/coffee_test.exs                   |   74 -
 test/elixir/test/compact_test.exs                  |   89 -
 test/elixir/test/config/test-config.ini            |    2 -
 test/elixir/test/config_test.exs                   |  185 -
 test/elixir/test/conflicts_test.exs                |  111 -
 test/elixir/test/cookie_auth_test.exs              |  396 --
 test/elixir/test/copy_doc_test.exs                 |   72 -
 test/elixir/test/data/lorem.txt                    |  103 -
 test/elixir/test/data/lorem_b64.txt                |    1 -
 test/elixir/test/design_docs_query_test.exs        |  274 -
 test/elixir/test/design_docs_test.exs              |  480 --
 test/elixir/test/design_options_test.exs           |   75 -
 test/elixir/test/design_paths_test.exs             |   77 -
 test/elixir/test/erlang_views_test.exs             |  118 -
 test/elixir/test/etags_head_test.exs               |  152 -
 test/elixir/test/form_submit_test.exs              |   30 -
 test/elixir/test/helper_test.exs                   |   34 -
 test/elixir/test/http_test.exs                     |   82 -
 test/elixir/test/invalid_docids_test.exs           |   86 -
 test/elixir/test/jsonp_test.exs                    |  117 -
 test/elixir/test/jwtauth_test.exs                  |  218 -
 test/elixir/test/large_docs_text.exs               |   42 -
 test/elixir/test/list_views_test.exs               |  581 --
 test/elixir/test/local_docs_test.exs               |  111 -
 test/elixir/test/lots_of_docs_test.exs             |  118 -
 test/elixir/test/method_override_test.exs          |   56 -
 test/elixir/test/multiple_rows_test.exs            |  137 -
 test/elixir/test/partition_all_docs_test.exs       |  207 -
 test/elixir/test/partition_crud_test.exs           |  372 --
 test/elixir/test/partition_ddoc_test.exs           |  182 -
 test/elixir/test/partition_design_docs_test.exs    |   19 -
 test/elixir/test/partition_helpers.exs             |   76 -
 test/elixir/test/partition_mango_test.exs          |  740 ---
 test/elixir/test/partition_size_limit_test.exs     |  296 -
 test/elixir/test/partition_size_test.exs           |  364 --
 test/elixir/test/partition_view_test.exs           |  377 --
 test/elixir/test/partition_view_update_test.exs    |  164 -
 test/elixir/test/proxyauth_test.exs                |  164 -
 test/elixir/test/purge_test.exs                    |  151 -
 test/elixir/test/reader_acl_test.exs               |  255 -
 test/elixir/test/recreate_doc_test.exs             |  166 -
 test/elixir/test/reduce_builtin_test.exs           |  283 -
 test/elixir/test/reduce_false_test.exs             |   51 -
 test/elixir/test/reduce_test.exs                   |  633 --
 test/elixir/test/replication_test.exs              | 1762 -----
 test/elixir/test/replicator_db_bad_rep_id_test.exs |   84 -
 test/elixir/test/replicator_db_by_doc_id_test.exs  |  124 -
 test/elixir/test/reshard_all_docs_test.exs         |   82 -
 test/elixir/test/reshard_basic_test.exs            |  177 -
 test/elixir/test/reshard_changes_feed.exs          |   84 -
 test/elixir/test/reshard_helpers.exs               |  114 -
 test/elixir/test/rev_stemming_test.exs             |  158 -
 test/elixir/test/rewrite_js_test.exs               |  411 --
 test/elixir/test/rewrite_test.exs                  |  527 --
 test/elixir/test/security_validation_test.exs      |  325 -
 test/elixir/test/show_documents_test.exs           |  448 --
 test/elixir/test/support/couch_test_case.ex        |   29 -
 test/elixir/test/test_helper.exs                   |   18 -
 test/elixir/test/update_documents_test.exs         |  327 -
 test/elixir/test/users_db_security_test.exs        |  520 --
 test/elixir/test/users_db_test.exs                 |  302 -
 test/elixir/test/utf8_test.exs                     |   66 -
 test/elixir/test/uuids_test.exs                    |   99 -
 test/elixir/test/view_collation_raw_test.exs       |  162 -
 test/elixir/test/view_collation_test.exs           |  147 -
 test/elixir/test/view_compaction_test.exs          |  109 -
 test/elixir/test/view_conflicts_test.exs           |   75 -
 test/elixir/test/view_errors_test.exs              |  301 -
 test/elixir/test/view_include_docs_test.exs        |  264 -
 test/elixir/test/view_multi_key_all_docs_test.exs  |  194 -
 test/elixir/test/view_multi_key_design_test.exs    |  319 -
 test/elixir/test/view_offsets_test.exs             |  101 -
 test/elixir/test/view_pagination_test.exs          |  190 -
 test/elixir/test/view_sandboxing_test.exs          |  194 -
 test/elixir/test/view_test.exs                     |  156 -
 test/elixir/test/view_update_seq_test.exs          |  143 -
 test/javascript/cli_runner.js                      |   63 -
 test/javascript/couch.js                           |  557 --
 test/javascript/couch_http.js                      |   73 -
 test/javascript/couch_test_runner.js               |  489 --
 test/javascript/couchdb.uri                        |    1 -
 test/javascript/json2.js                           |  482 --
 test/javascript/replicator_db_inc.js               |   97 -
 test/javascript/run                                |  284 -
 test/javascript/sha1.js                            |  202 -
 test/javascript/test_setup.js                      |  127 -
 .../tests-cluster/with-quorum/attachments.js       |   37 -
 .../with-quorum/attachments_delete.js              |   33 -
 .../attachments_delete_overridden_quorum.js        |   38 -
 .../with-quorum/attachments_overridden_quorum.js   |   42 -
 .../tests-cluster/with-quorum/db_creation.js       |   28 -
 .../with-quorum/db_creation_overridden_quorum.js   |   30 -
 .../tests-cluster/with-quorum/db_deletion.js       |   31 -
 .../with-quorum/db_deletion_overridden_quorum.js   |   24 -
 .../tests-cluster/with-quorum/doc_bulk.js          |   26 -
 .../with-quorum/doc_bulk_overridden_quorum.js      |   26 -
 .../tests-cluster/with-quorum/doc_copy.js          |   28 -
 .../with-quorum/doc_copy_overridden_quorum.js      |   32 -
 .../tests-cluster/with-quorum/doc_crud.js          |   32 -
 .../with-quorum/doc_crud_overridden_quorum.js      |   32 -
 .../tests-cluster/without-quorum/attachments.js    |   40 -
 .../without-quorum/attachments_delete.js           |   39 -
 .../attachments_delete_overridden_quorum.js        |   38 -
 .../attachments_overridden_quorum.js               |   43 -
 .../tests-cluster/without-quorum/db_creation.js    |   28 -
 .../db_creation_overridden_quorum.js               |   32 -
 .../tests-cluster/without-quorum/db_deletion.js    |   31 -
 .../db_deletion_overridden_quorum.js               |   26 -
 .../tests-cluster/without-quorum/doc_bulk.js       |   29 -
 .../without-quorum/doc_bulk_overridden_quorum.js   |   29 -
 .../tests-cluster/without-quorum/doc_copy.js       |   31 -
 .../without-quorum/doc_copy_overridden_quorum.js   |   35 -
 .../tests-cluster/without-quorum/doc_crud.js       |   36 -
 .../without-quorum/doc_crud_overridden_quorum.js   |   35 -
 test/javascript/tests/all_docs.js                  |  167 -
 test/javascript/tests/attachment_names.js          |   99 -
 test/javascript/tests/attachment_paths.js          |  156 -
 test/javascript/tests/attachment_ranges.js         |  164 -
 test/javascript/tests/attachment_views.js          |  145 -
 test/javascript/tests/attachments.js               |  358 --
 test/javascript/tests/attachments_multipart.js     |  426 --
 test/javascript/tests/auth_cache.js                |  274 -
 test/javascript/tests/basics.js                    |  302 -
 test/javascript/tests/batch_save.js                |   52 -
 test/javascript/tests/bulk_docs.js                 |  153 -
 test/javascript/tests/changes.js                   |  812 ---
 test/javascript/tests/coffee.js                    |   72 -
 test/javascript/tests/compact.js                   |   71 -
 test/javascript/tests/config.js                    |  222 -
 test/javascript/tests/conflicts.js                 |  123 -
 test/javascript/tests/cookie_auth.js               |  303 -
 test/javascript/tests/copy_doc.js                  |   70 -
 test/javascript/tests/design_docs.js               |  447 --
 test/javascript/tests/design_docs_query.js         |  156 -
 test/javascript/tests/design_options.js            |   78 -
 test/javascript/tests/design_paths.js              |   74 -
 test/javascript/tests/erlang_views.js              |  137 -
 test/javascript/tests/etags_head.js                |   87 -
 test/javascript/tests/etags_views.js               |  224 -
 test/javascript/tests/form_submit.js               |   31 -
 test/javascript/tests/http.js                      |   82 -
 test/javascript/tests/invalid_docids.js            |   82 -
 test/javascript/tests/jsonp.js                     |   87 -
 test/javascript/tests/large_docs.js                |   38 -
 test/javascript/tests/list_views.js                |  502 --
 test/javascript/tests/lorem.txt                    |  103 -
 test/javascript/tests/lorem_b64.txt                |    1 -
 test/javascript/tests/lots_of_docs.js              |   60 -
 test/javascript/tests/method_override.js           |   45 -
 test/javascript/tests/multiple_rows.js             |   85 -
 test/javascript/tests/proxyauth.js                 |  136 -
 test/javascript/tests/purge.js                     |  140 -
 test/javascript/tests/reader_acl.js                |  222 -
 test/javascript/tests/recreate_doc.js              |  157 -
 test/javascript/tests/reduce.js                    |  423 --
 test/javascript/tests/reduce_builtin.js            |  206 -
 test/javascript/tests/reduce_false.js              |   50 -
 test/javascript/tests/reduce_false_temp.js         |   41 -
 test/javascript/tests/replicator_db_bad_rep_id.js  |  104 -
 test/javascript/tests/replicator_db_by_doc_id.js   |  129 -
 .../tests/replicator_db_compact_rep_db.js          |  119 -
 test/javascript/tests/replicator_db_continuous.js  |  137 -
 .../tests/replicator_db_credential_delegation.js   |  149 -
 .../tests/replicator_db_field_validation.js        |  178 -
 test/javascript/tests/replicator_db_filtered.js    |  105 -
 test/javascript/tests/replicator_db_identical.js   |   87 -
 .../tests/replicator_db_identical_continuous.js    |  139 -
 .../tests/replicator_db_invalid_filter.js          |  119 -
 test/javascript/tests/replicator_db_security.js    |  371 --
 test/javascript/tests/replicator_db_simple.js      |  114 -
 test/javascript/tests/replicator_db_successive.js  |  127 -
 test/javascript/tests/replicator_db_survives.js    |  126 -
 test/javascript/tests/replicator_db_swap_rep_db.js |  170 -
 .../tests/replicator_db_update_security.js         |   92 -
 test/javascript/tests/replicator_db_user_ctx.js    |  272 -
 test/javascript/tests/replicator_db_write_auth.js  |  102 -
 test/javascript/tests/rev_stemming.js              |  124 -
 test/javascript/tests/rewrite.js                   |  513 --
 test/javascript/tests/rewrite_js.js                |  366 --
 test/javascript/tests/security_validation.js       |  330 -
 test/javascript/tests/show_documents.js            |  376 --
 test/javascript/tests/stats.js                     |  358 --
 test/javascript/tests/update_documents.js          |  236 -
 test/javascript/tests/users_db.js                  |  222 -
 test/javascript/tests/users_db_security.js         |  418 --
 test/javascript/tests/utf8.js                      |   46 -
 test/javascript/tests/uuids.js                     |  148 -
 test/javascript/tests/view_collation.js            |  121 -
 test/javascript/tests/view_collation_raw.js        |  134 -
 test/javascript/tests/view_compaction.js           |  112 -
 test/javascript/tests/view_conflicts.js            |   57 -
 test/javascript/tests/view_errors.js               |  211 -
 test/javascript/tests/view_include_docs.js         |  196 -
 test/javascript/tests/view_multi_key_all_docs.js   |   99 -
 test/javascript/tests/view_multi_key_design.js     |  235 -
 test/javascript/tests/view_multi_key_temp.js       |   44 -
 test/javascript/tests/view_offsets.js              |  118 -
 test/javascript/tests/view_pagination.js           |  151 -
 test/javascript/tests/view_sandboxing.js           |  169 -
 test/javascript/tests/view_update_seq.js           |  119 -
 test/random_port.ini                               |   19 -
 test/view_server/query_server_spec.rb              |  885 ---
 test/view_server/run_native_process.es             |   59 -
 version.mk                                         |    3 -
 1082 files changed, 1 insertion(+), 212257 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
deleted file mode 100644
index a3b51ff..0000000
--- a/.asf.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-# see https://cwiki.apache.org/confluence/display/INFRA/git+-+.asf.yaml+features#git.asf.yamlfeatures-GitHubsettings
-
-github:
-  description: "Seamless multi-master syncing database with an intuitive HTTP/JSON API, designed for reliability"
-  homepage: https://couchdb.apache.org/
-  labels:
-    - database
-    - content
-    - network-server
-    - http
-    - cloud
-    - erlang
-    - javascript
-    - couchdb
-    - big-data
-    - network-client
-  features:
-    issues: true
-    projects: true
-  enabled_merge_buttons:
-    squash: true
-    rebase: true
-    merge: false
-
-notifications:
-  commits: commits@couchdb.apache.org
-  issues: notifications@couchdb.apache.org
-  pullrequests: notifications@couchdb.apache.org
-  # This would send new/closed PR notifications to dev@
-  #pullrequests_status: dev@couchdb.apache.org
-  # This would send individual PR comments/reviews to notifications@
-  #pullrequests_comment: notifications@couchdb.apache.org
diff --git a/.credo.exs b/.credo.exs
deleted file mode 100644
index 64d281e..0000000
--- a/.credo.exs
+++ /dev/null
@@ -1,178 +0,0 @@
-# This file contains the configuration for Credo and you are probably reading
-# this after creating it with `mix credo.gen.config`.
-#
-# If you find anything wrong or unclear in this file, please report an
-# issue on GitHub: https://github.com/rrrene/credo/issues
-#
-%{
-  #
-  # You can have as many configs as you like in the `configs:` field.
-  configs: [
-    %{
-      #
-      # Run any exec using `mix credo -C <name>`. If no exec name is given
-      # "default" is used.
-      #
-      name: "default",
-      #
-      # These are the files included in the analysis:
-      files: %{
-        #
-        # You can give explicit globs or simply directories.
-        # In the latter case `**/*.{ex,exs}` will be used.
-        #
-        included: ["lib/", "src/", "test/", "web/", "apps/"],
-        excluded: [
-          ~r"/_build/",
-          ~r"/node_modules/",
-          ~r"/src/certifi/",
-          ~r"/src/excoveralls/",
-          ~r"/src/jason",
-          ~r"/src/hackney",
-          ~r"/src/httpotion",
-          ~r"/src/credo",
-          ~r"/src/idna",
-          ~r"/src/junit_formatter",
-          ~r"/src/bunt",
-          ~r"/src/metrics",
-          ~r"/src/minerl",
-          ~r"/src/parse_trans",
-          ~r"/src/ssl_verify_fun",
-          ~r"/test/elixir/deps/"
-        ]
-      },
-      #
-      # If you create your own checks, you must specify the source files for
-      # them here, so they can be loaded by Credo before running the analysis.
-      #
-      requires: [],
-      #
-      # If you want to enforce a style guide and need a more traditional linting
-      # experience, you can change `strict` to `true` below:
-      #
-      strict: false,
-      #
-      # If you want to use uncolored output by default, you can change `color`
-      # to `false` below:
-      #
-      color: true,
-      #
-      # You can customize the parameters of any check by adding a second element
-      # to the tuple.
-      #
-      # To disable a check put `false` as second element:
-      #
-      #     {Credo.Check.Design.DuplicatedCode, false}
-      #
-      checks: [
-        #
-        ## Consistency Checks
-        #
-        {Credo.Check.Consistency.ExceptionNames, []},
-        {Credo.Check.Consistency.LineEndings, []},
-        {Credo.Check.Consistency.ParameterPatternMatching, false},
-        {Credo.Check.Consistency.SpaceAroundOperators, []},
-        {Credo.Check.Consistency.SpaceInParentheses, []},
-        {Credo.Check.Consistency.TabsOrSpaces, []},
-
-        #
-        ## Design Checks
-        #
-        # You can customize the priority of any check
-        # Priority values are: `low, normal, high, higher`
-        #
-        {Credo.Check.Design.AliasUsage,
-         [priority: :low, if_nested_deeper_than: 2, if_called_more_often_than: 0]},
-        # You can also customize the exit_status of each check.
-        # If you don't want TODO comments to cause `mix credo` to fail, just
-        # set this value to 0 (zero).
-        #
-        {Credo.Check.Design.TagTODO, false},
-        {Credo.Check.Design.TagFIXME, []},
-
-        #
-        ## Readability Checks
-        #
-        {Credo.Check.Readability.AliasOrder, []},
-        {Credo.Check.Readability.FunctionNames, []},
-        {Credo.Check.Readability.LargeNumbers, []},
-        {Credo.Check.Readability.MaxLineLength, [priority: :normal, max_length: 90]},
-        {Credo.Check.Readability.ModuleAttributeNames, []},
-        {Credo.Check.Readability.ModuleDoc, []},
-        {Credo.Check.Readability.ModuleNames, []},
-        {Credo.Check.Readability.ParenthesesInCondition, []},
-        {Credo.Check.Readability.ParenthesesOnZeroArityDefs, []},
-        {Credo.Check.Readability.PredicateFunctionNames, []},
-        {Credo.Check.Readability.PreferImplicitTry, []},
-        {Credo.Check.Readability.RedundantBlankLines, []},
-        {Credo.Check.Readability.Semicolons, []},
-        {Credo.Check.Readability.SpaceAfterCommas, []},
-        {Credo.Check.Readability.StringSigils, []},
-        {Credo.Check.Readability.TrailingBlankLine, []},
-        {Credo.Check.Readability.TrailingWhiteSpace, []},
-        {Credo.Check.Readability.UnnecessaryAliasExpansion, []},
-        {Credo.Check.Readability.VariableNames, []},
-
-        #
-        ## Refactoring Opportunities
-        #
-        {Credo.Check.Refactor.CondStatements, []},
-        {Credo.Check.Refactor.CyclomaticComplexity, false},
-        {Credo.Check.Refactor.FunctionArity, []},
-        {Credo.Check.Refactor.LongQuoteBlocks, false},
-        {Credo.Check.Refactor.MapInto, false}, # Disabled since not compatible with Elixir > 1.9
-        {Credo.Check.Refactor.MatchInCondition, []},
-        {Credo.Check.Refactor.NegatedConditionsInUnless, []},
-        {Credo.Check.Refactor.NegatedConditionsWithElse, []},
-        {Credo.Check.Refactor.Nesting, false},
-        {Credo.Check.Refactor.PipeChainStart,
-         [
-           excluded_argument_types: [:atom, :binary, :fn, :keyword],
-           excluded_functions: []
-         ]},
-        {Credo.Check.Refactor.UnlessWithElse, []},
-        {Credo.Check.Refactor.WithClauses, []},
-
-        #
-        ## Warnings
-        #
-        {Credo.Check.Warning.BoolOperationOnSameValues, []},
-        {Credo.Check.Warning.ExpensiveEmptyEnumCheck, []},
-        {Credo.Check.Warning.IExPry, []},
-        {Credo.Check.Warning.IoInspect, []},
-        {Credo.Check.Warning.LazyLogging, false}, # Disabled since not compatible with Elixir > 1.9
-        {Credo.Check.Warning.MixEnv, []},
-        {Credo.Check.Warning.OperationOnSameValues, []},
-        {Credo.Check.Warning.OperationWithConstantResult, []},
-        {Credo.Check.Warning.RaiseInsideRescue, []},
-        {Credo.Check.Warning.UnusedEnumOperation, []},
-        {Credo.Check.Warning.UnusedFileOperation, []},
-        {Credo.Check.Warning.UnusedKeywordOperation, []},
-        {Credo.Check.Warning.UnusedListOperation, []},
-        {Credo.Check.Warning.UnusedPathOperation, []},
-        {Credo.Check.Warning.UnusedRegexOperation, []},
-        {Credo.Check.Warning.UnusedStringOperation, []},
-        {Credo.Check.Warning.UnusedTupleOperation, []},
-        {Credo.Check.Warning.UnsafeExec, []},
-
-        #
-        # Controversial and experimental checks (opt-in, just remove `, false`)
-        #
-        {Credo.Check.Readability.StrictModuleLayout, false},
-        {Credo.Check.Consistency.MultiAliasImportRequireUse, false},
-        {Credo.Check.Design.DuplicatedCode, false},
-        {Credo.Check.Readability.Specs, false},
-        {Credo.Check.Refactor.ABCSize, false},
-        {Credo.Check.Refactor.AppendSingleItem, false},
-        {Credo.Check.Refactor.DoubleBooleanNegation, false},
-        {Credo.Check.Refactor.VariableRebinding, false},
-        {Credo.Check.Warning.MapGetUnsafePass, false},
-        {Credo.Check.Warning.UnsafeToAtom, false}
-
-        #
-        # Custom checks can be created using `mix credo.gen.check`.
-        #
-      ]
-    }
-  ]
-}
diff --git a/.formatter.exs b/.formatter.exs
deleted file mode 100644
index 28b883d..0000000
--- a/.formatter.exs
+++ /dev/null
@@ -1,9 +0,0 @@
-# Used by "mix format"
-[
-  inputs: [
-    "{mix,.formatter}.exs",
-    "{config,src}/*/test/exunit/*.{ex,exs}"
-  ],
-  line_length: 90,
-  rename_deprecated_at: "1.5.0"
-]
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 360d4fa..0000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-name: Bug report
-about: Describe a scenario in which CouchDB behaves unexpectedly
-title: ''
-labels: bug, needs-triage
-assignees: ''
-
----
-
-[NOTE]: # ( ^^ Provide a general summary of the issue in the title above. ^^ )
-
-## Description
-
-[NOTE]: # ( Describe the problem you're encountering. )
-[TIP]:  # ( Do NOT give us access or passwords to your actual CouchDB! )
-
-## Steps to Reproduce
-
-[NOTE]: # ( Include commands to reproduce, if possible. curl is preferred. )
-
-## Expected Behaviour
-
-[NOTE]: # ( Tell us what you expected to happen. )
-
-## Your Environment
-
-[TIP]:  # ( Include as many relevant details about your environment as possible. )
-[TIP]:  # ( You can paste the output of curl http://YOUR-COUCHDB:5984/ here. )
-
-* CouchDB version used:
-* Browser name and version:
-* Operating system and version:
-
-## Additional Context
-
-[TIP]:  # ( Add any other context about the problem here. )
diff --git a/.github/ISSUE_TEMPLATE/enhancement.md b/.github/ISSUE_TEMPLATE/enhancement.md
deleted file mode 100644
index ca92725..0000000
--- a/.github/ISSUE_TEMPLATE/enhancement.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-name: Enhancement request
-about: Suggest an idea for a future version of CouchDB
-title: ''
-labels: enhancement, needs-triage
-assignees: ''
-
----
-
-[NOTE]: # ( ^^ Provide a general summary of the request in the title above. ^^ )
-
-## Summary
-
-[NOTE]: # ( Provide a brief overview of what the new feature is all about. )
-
-## Desired Behaviour
-
-[NOTE]: # ( Tell us how the new feature should work. Be specific. )
-[TIP]:  # ( Do NOT give us access or passwords to your actual CouchDB! )
-
-## Possible Solution
-
-[NOTE]: # ( Not required. Suggest how to implement the addition or change. )
-
-## Additional context
-
-[TIP]:  # ( Why does this feature matter to you? What unique circumstances do you have? )
diff --git a/.github/ISSUE_TEMPLATE/rfc.md b/.github/ISSUE_TEMPLATE/rfc.md
deleted file mode 100644
index 08bd054..0000000
--- a/.github/ISSUE_TEMPLATE/rfc.md
+++ /dev/null
@@ -1,85 +0,0 @@
----
-name: Formal RFC
-about: Submit a formal Request For Comments for consideration by the team.
-title: ''
-labels: rfc, discussion
-assignees: ''
-
----
-
-[NOTE]: # ( ^^ Provide a general summary of the RFC in the title above. ^^ )
-
-# Introduction
-
-## Abstract
-
-[NOTE]: # ( Provide a 1-to-3 paragraph overview of the requested change. )
-[NOTE]: # ( Describe what problem you are solving, and the general approach. )
-
-## Requirements Language
-
-[NOTE]: # ( Do not alter the section below. Follow its instructions. )
-
-The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
-"SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
-document are to be interpreted as described in
-[RFC 2119](https://www.rfc-editor.org/rfc/rfc2119.txt).
-
-## Terminology
-
-[TIP]:  # ( Provide a list of any unique terms or acronyms, and their definitions here.)
-
----
-
-# Detailed Description
-
-[NOTE]: # ( Describe the solution being proposed in greater detail. )
-[NOTE]: # ( Assume your audience has knowledge of, but not necessarily familiarity )
-[NOTE]: # ( with, the CouchDB internals. Provide enough context so that the reader )
-[NOTE]: # ( can make an informed decision about the proposal. )
-
-[TIP]:  # ( Artwork may be attached to the submission and linked as necessary. )
-[TIP]:  # ( ASCII artwork can also be included in code blocks, if desired. )
-
-# Advantages and Disadvantages
-
-[NOTE]: # ( Briefly, list the benefits and drawbacks that would be realized should )
-[NOTE]: # ( the proposal be accepted for inclusion into Apache CouchDB. )
-
-# Key Changes
-
-[TIP]: # ( If the changes will affect how a user interacts with CouchDB, explain. )
-
-## Applications and Modules affected
-
-[NOTE]: # ( List the OTP applications or functional modules in CouchDB affected by the proposal. )
-
-## HTTP API additions
-
-[NOTE]: # ( Provide *exact* detail on each new API endpoint, including: )
-[NOTE]: # (   HTTP methods [HEAD, GET, PUT, POST, DELETE, etc.] )
-[NOTE]: # (   Synopsis of functionality )
-[NOTE]: # (   Headers and parameters accepted )
-[NOTE]: # (   JSON in [if a PUT or POST type] )
-[NOTE]: # (   JSON out )
-[NOTE]: # (   Valid status codes and their defintions )
-[NOTE]: # (   A proposed Request and Response block )
-
-## HTTP API deprecations
-
-[NOTE]: # ( Provide *exact* detail on the API endpoints to be deprecated. )
-[NOTE]: # ( If these endpoints are replaced by new endpoints, list those as well. )
-[NOTE]: # ( State the proposed version in which the deprecation and removal will occur. )
-
-# Security Considerations
-
-[NOTE]: # ( Include any impact to the security of CouchDB here. )
-
-# References
-
-[TIP]:  # ( Include any references to CouchDB documentation, mailing list discussion, )
-[TIP]:  # ( external standards or other links here. )
-
-# Acknowledgements
-
-[TIP]:  # ( Who helped you write this RFC? )
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index 0d3aef6..0000000
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,35 +0,0 @@
-<!-- Thank you for your contribution!
-
-     Please file this form by replacing the Markdown comments
-     with your text. If a section needs no action - remove it.
-
-     Also remember, that CouchDB uses the Review-Then-Commit (RTC) model
-     of code collaboration. Positive feedback is represented +1 from committers
-     and negative is a -1. The -1 also means veto, and needs to be addressed
-     to proceed. Once there are no objections, the PR can be merged by a
-     CouchDB committer.
-
-     See: http://couchdb.apache.org/bylaws.html#decisions for more info. -->
-
-## Overview
-
-<!-- Please give a short brief for the pull request,
-     what problem it solves or how it makes things better. -->
-
-## Testing recommendations
-
-<!-- Describe how we can test your changes.
-     Does it provides any behaviour that the end users
-     could notice? -->
-
-## Related Issues or Pull Requests
-
-<!-- If your changes affects multiple components in different
-     repositories please put links to those issues or pull requests here.  -->
-
-## Checklist
-
-- [ ] Code is written and works correctly
-- [ ] Changes are covered by tests
-- [ ] Any new configurable parameters are documented in `rel/overlay/etc/default.ini`
-- [ ] A PR for documentation changes has been made in https://github.com/apache/couchdb-documentation
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 6223d73..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,129 +0,0 @@
-*.o
-*.sha256
-*.sha512
-*.snap
-*.so
-*.pyc
-*.swp
-*.pdb
-*~
-.venv
-.DS_Store
-.vscode
-.rebar/
-.eunit/
-cover/
-core
-debian/
-log
-apache-couchdb-*/
-bin/
-config.erl
-*.tar.gz
-*.tar.bz2
-dev/boot_node.beam
-dev/lib/
-dev/logs/
-ebin/
-erl_crash.dump
-erln8.config
-install.mk
-rel/*.config
-rel/couchdb
-rel/dev*
-rel/tmpdata
-share/server/main-coffee.js
-share/server/main.js
-share/www
-src/b64url/
-src/bear/
-src/certifi/
-src/config/
-src/couch/priv/couch_js/**/config.h
-src/couch/priv/couchjs
-src/couch/priv/couchspawnkillable
-src/couch/priv/couch_ejson_compare/couch_ejson_compare.d
-src/couch/priv/couch_js/**/*.d
-src/couch/priv/icu_driver/couch_icu_driver.d
-src/mango/src/mango_cursor_text.nocompile
-src/docs/
-src/emilio/
-src/ets_lru/
-src/excoveralls/
-src/fauxton/
-src/folsom/
-src/hackney/
-src/hqueue/
-src/hyper/
-src/ibrowse/
-src/idna/
-src/ioq/
-src/jiffy/
-src/ken/
-src/khash/
-src/meck/
-src/metrics/
-src/mimerl/
-src/mochiweb/
-src/oauth/
-src/parse_trans/
-src/proper/
-src/rebar/
-src/recon/
-src/smoosh/
-src/snappy/
-src/ssl_verify_fun/
-src/triq/
-src/unicode_util_compat/
-tmp/
-
-src/couch/*.o
-src/couch/*.so
-src/couch/ebin/
-src/couch/priv/couch_js/config.h
-src/couch/priv/couchjs
-src/couch/priv/couchspawnkillable
-src/couch/priv/*.exp
-src/couch/priv/*.lib
-src/couch/priv/*.dll
-src/couch/priv/*.exe
-src/couch/vc120.pdb
-src/couch_epi/ebin
-src/couch_epi/erl_crash.dump
-src/couch_event/deps/
-src/couch_event/ebin/
-src/couch_index/ebin
-src/couch_log/ebin
-src/couch_peruser/doc
-src/couch_peruser/ebin
-src/couch_peruser/deps
-src/couch_peruser/couchperuser-*
-src/couch_peruser/erl_crash.dump
-src/couch_peruser/TEST-*.xml
-src/couch_peruser/*.beam
-src/couch_replicator/*.beam
-src/couch_replicator/ebin/replicator.app
-src/couch_replicator/.DS_Store
-src/couch_stats/*~
-src/couch_stats/*.beam
-src/couch_stats/deps
-src/couch_stats/ebin
-src/couch_stats/doc
-src/couch_stats/.project
-src/couch_tests/*.o
-src/couch_tests/*.so
-src/couch_tests/ebin/
-src/global_changes/ebin/
-src/mango/ebin/
-src/mango/test/*.pyc
-src/mango/nosetests.xml
-src/mango/venv/
-src/jwtf/.rebar3/
-test/javascript/junit.xml
-
-/_build/
-/src/bunt
-/src/credo/
-/src/httpotion/
-/src/jason/
-/src/junit_formatter/
diff --git a/.mailmap b/.mailmap
deleted file mode 100644
index a51c763..0000000
--- a/.mailmap
+++ /dev/null
@@ -1,13 +0,0 @@
-Benoit Chesneau <be...@apache.org> <bc...@gmail.com>
-Benoit Chesneau <be...@apache.org> benoitc <be...@apache.org>
-
-Jason Smith <jh...@apache.org> Jason Smith (air) <jh...@iriscouch.com>
-Jason Smith <jh...@apache.org> Jason Smith (air) <jh...@apache.org>
-
-Filipe David Borba Manana <fd...@apache.org>
-
-Randall Leeds <ra...@apache.org> <ra...@gmail.com>
-
-Paul Joseph Davis <da...@apache.org> Paul J. Davis <da...@apache.org>
-
-Bob Dionne <bi...@apache.org> bitdiddle <bi...@apache.org>
diff --git a/BUGS.md b/BUGS.md
deleted file mode 100644
index 235b634..0000000
--- a/BUGS.md
+++ /dev/null
@@ -1,13 +0,0 @@
-Apache CouchDB BUGS
-===================
-
-Visit our issue tracker:
-
-    https://github.com/apache/couchdb/issues
-
-You can use this to report bugs, request features, or suggest enhancements.
-
-Our JIRA system no longer accepts new issues, but may have important historical
-information:
-
-    https://issues.apache.org/jira/browse/CouchDB
diff --git a/COMMITTERS.md b/COMMITTERS.md
deleted file mode 100644
index 3b25283..0000000
--- a/COMMITTERS.md
+++ /dev/null
@@ -1,11 +0,0 @@
-Apache CouchDB COMMITTERS
-=========================
-
-Committers are given a binding vote in certain project decisions, as well as
-write access to public project infrastructure. Committers are elected to the
-project in recognition of their committment to Apache CouchDB. We mean this in
-the sense of being loyal to the project and its interests.
-
-A full list of committers elected to the project is available at:
-
-    https://people.apache.org/committers-by-project.html#couchdb
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index cd3a443..0000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,290 +0,0 @@
-# Contributing to CouchDB
-
-Please take a moment to review this document in order to make the contribution
-process easy and effective for everyone involved.
-
-Following these guidelines helps to communicate that you respect the time of
-the developers managing and developing this open source project. In return,
-they should reciprocate that respect in addressing your issue, assessing
-changes, and helping you finalize your pull requests.
-
-Contributions to CouchDB are governed by our [Code of Conduct][6] and a set of
-[Project Bylaws][7]. Come join us!
-
-
-## Using the issue tracker
-
-First things first: **Do NOT report security vulnerabilities in public issues!**
-Please disclose responsibly by letting [the Apache CouchDB Security team](mailto:security@couchdb.apache.org?subject=Security)
-know upfront. We will assess the issue as soon as possible on a best-effort
-basis and will give you an estimate for when we have a fix and release available
-for an eventual public disclosure.
-
-The GitHub issue tracker is the preferred channel for [bug reports](#bugs),
-[features requests](#features) and [submitting pull requests](#pull-requests),
-but please respect the following restrictions:
-
-* Please **do not** use the issue tracker for personal support requests. Use
-  [CouchDB Chat][8] instead. Alternately, help us to help more people by
-  using our publicly archived [user][1] or [developer][5] mailing lists.
-
-* Please **do not** derail or troll issues. Keep the discussion on topic and
-  respect the opinions of others.
-
-
-## Bug reports
-
-A bug is a _demonstrable problem_ that is caused by the code in our
-repositories.  Good bug reports are extremely helpful - thank you!
-
-Guidelines for bug reports:
-
-1. **Use the GitHub issue search** &mdash; check if the issue has already been
-   reported.
-
-2. **Check if the issue has been fixed** &mdash; try to reproduce it using the
-   latest `master` or `next` branch in the repository.
-
-3. **Isolate the problem** &mdash; ideally create a reduced test case.
-
-A good bug report shouldn't leave others needing to chase you up for more
-information. Please try to be as detailed as possible in your report. What is
-your environment? What steps will reproduce the issue? What OS experiences the
-problem? What would you expect to be the outcome? All these details will help
-people to fix any potential bugs. Our issue template will help you include all
-of the relevant detail.
-
-Example:
-
-> Short and descriptive example bug report title
->
-> A summary of the issue and the browser/OS environment in which it occurs. If
-> suitable, include the steps required to reproduce the bug.
->
-> 1. This is the first step
-> 2. This is the second step
-> 3. Further steps, etc.
->
-> `<url>` - a link to the reduced test case
->
-> Any other information you want to share that is relevant to the issue being
-> reported. This might include the lines of code that you have identified as
-> causing the bug, and potential solutions (and your opinions on their
-> merits).
-
-
-## Feature requests
-
-Feature requests are welcome. But take a moment to find out whether your idea
-fits with the scope and aims of the project. It's up to *you* to make a strong
-case to convince the project's developers of the merits of this feature. Please
-provide as much detail and context as possible.
-
-
-## Pull requests
-
-Good pull requests - patches, improvements, new features - are a fantastic
-help. They should remain focused in scope and avoid containing unrelated
-commits.
-
-**Please ask first** before embarking on any significant pull request (e.g.
-implementing features, refactoring code), otherwise you risk spending a lot of
-time working on something that the project's developers might not want to merge
-into the project. You can talk with the community on our
-[developer mailing list][5].  We're always open to suggestions and will get
-back to you as soon as we can!
-
-
-### For new Contributors
-
-If you never created a pull request before, welcome :tada: :smile: [Here is a great tutorial](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github)
-on how to send one :)
-
-1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork,
-   and configure the remotes:
-
-   ```bash
-   # Clone your fork of the repo into the current directory
-   git clone https://github.com/<your-username>/<repo-name>
-   # Navigate to the newly cloned directory
-   cd <repo-name>
-   # Assign the original repo to a remote called "upstream"
-   git remote add upstream https://github.com/apache/<repo-name>
-   ```
-
-2. If you cloned a while ago, get the latest changes from upstream:
-
-   ```bash
-   git checkout master
-   git pull upstream master
-   ```
-
-3. Create a new topic branch (off the main project development branch) to
-   contain your feature, change, or fix:
-
-   ```bash
-   git checkout -b <topic-branch-name>
-   ```
-
-4. Make sure to update, or add to the tests when appropriate. Patches and
-   features will not be accepted without tests. Run `make check` to check that
-   all tests pass after you've made changes. Look for a `Testing` section in
-   the project’s README for more information.
-
-5. If you added or changed a feature, make sure to document it accordingly in
-   the [CouchDB documentation](https://github.com/apache/couchdb-documentation)
-   repository.
-
-6. Push your topic branch up to your fork:
-
-   ```bash
-   git push origin <topic-branch-name>
-   ```
-
-8. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
-    with a clear title and description.
-
-
-### For Apache CouchDB Committers
-
-1. Be sure to set up [GitHub two-factor authentication](https://help.github.com/articles/about-two-factor-authentication/),
-   then [link your Apache account to your GitHub account](https://gitbox.apache.org/setup/).
-   You will need to wait about 30 minutes after completing this process
-   for it to complete. Follow the instructions in the organisational
-   invite email you receive. Alternately, you can use the Apache mirror
-   of the repository at `https://gitbox.apache.org/repos/asf/couchdb.git`
-   if you do not agree to the GitHub Terms of Service.
-
-2. Clone the repo and create a branch.
-
-   ```bash
-   git clone https://github.com/couchdb/couchdb
-   # or git clone https://gitbox.apache.org/repos/asf/couchdb.git
-   cd couchdb
-   git checkout -b <topic-branch-name>
-   ```
-
-3. Make sure to update, or add to the tests when appropriate. Patches and
-   features will not be accepted without tests. Run `make check` to check that
-   all tests pass after you've made changes. Look for a `Testing` section in
-   the project’s README for more information.
-
-4. If you added or changed a feature, make sure to document it accordingly in
-   the [CouchDB documentation](https://github.com/apache/couchdb-documentation)
-   repository.
-
-5. Push your topic branch up to our repo
-
-   ```bash
-   git push origin <topic-branch-name>
-   ```
-
-6. Open a Pull Request using your branch with a clear title and description.
-   Please also add any appropriate labels to the pull request for clarity.
-
-Optionally, you can help us with these things. But don’t worry if they are too
-complicated, we can help you out and teach you as we go :)
-
-1. Update your branch to the latest changes in the upstream master branch. You
-   can do that locally with
-
-   ```bash
-   git pull --rebase upstream master
-   ```
-
-   Afterwards force push your changes to your remote feature branch.
-
-2. Once a pull request is good to go, you can tidy up your commit messages using
-   Git's [interactive rebase](https://help.github.com/articles/interactive-rebase).
-
-**IMPORTANT**: By submitting a patch, you agree to license your work under the
-Apache License, per your signed Apache CLA.
-
-
-## Triagers
-
-Apache CouchDB committers who have completed the GitHub account linking
-process may triage issues. This helps to speed up releases and minimises both
-user and developer pain in working through our backlog.
-
-Briefly, to triage an issue, review the report, validate that it is an actual
-issue (reproducing if possible), and add one or more labels. We have a
-[summary of our label taxonomy](https://github.com/apache/couchdb/issues/499)
-for your reference.
-
-If you are not an official committer, please reach out to our [mailing list][5]
-or [chat][8] to learn how you can assist with triaging indirectly.
-
-
-## Maintainers
-
-If you have commit access, please follow this process for merging patches and cutting new releases.
-
-### Reviewing changes
-
-1. Check that a change is within the scope and philosophy of the component.
-2. Check that a change has any necessary tests.
-3. Check that a change has any necessary documentation.
-4. If there is anything you don’t like, leave a comment below the respective
-   lines and submit a "Request changes" review. Repeat until everything has
-   been addressed.
-5. If you are not sure about something, mention specific people for help in a
-   comment.
-6. If there is only a tiny change left before you can merge it and you think
-   it’s best to fix it yourself, you can directly commit to the author’s fork.
-   Leave a comment about it so the author and others will know.
-7. Once everything looks good, add an "Approve" review. Don’t forget to say
-   something nice 👏🐶💖✨
-8. If the commit messages follow [our conventions](@commit-message-conventions)
-
-   1. If the pull request fixes one or more open issues, please include the
-      text "Fixes #472" or "Fixes apache/couchdb#472". 
-   2. Use the "Rebase and merge" button to merge the pull request.
-   3. Done! You are awesome! Thanks so much for your help 🤗
-
-9. If the commit messages _do not_ follow our conventions
-
-   1. Use the "squash and merge" button to clean up the commits and merge at
-      the same time: ✨🎩
-   2. If the pull request fixes one or more open issues, please include the
-      text "Fixes #472" or "Fixes apache/couchdb#472". 
-
-Sometimes there might be a good reason to merge changes locally. The process
-looks like this:
-
-### Reviewing and merging changes locally
-
-```
-git checkout master # or the main branch configured on github
-git pull # get latest changes
-git checkout feature-branch # replace name with your branch
-git rebase master
-git checkout master
-git merge feature-branch # replace name with your branch
-git push
-```
-
-When merging PRs from forked repositories, we recommend you install the
-[hub](https://github.com/github/hub) command line tools.
-
-This allows you to do:
-
-```
-hub checkout link-to-pull-request
-```
-
-meaning that you will automatically check out the branch for the pull request,
-without needing any other steps like setting git upstreams! :sparkles:
-
-
-## Thanks
-
-Special thanks to [Hoodie](https://github.com/hoodiehq/hoodie) for the great
-CONTRIBUTING.md template.
-
-[1]: http://mail-archives.apache.org/mod_mbox/couchdb-user/
-[5]: http://mail-archives.apache.org/mod_mbox/couchdb-dev/
-[6]: http://couchdb.apache.org/conduct.html
-[7]: http://couchdb.apache.org/bylaws.html
-[8]: http://couchdb.apache.org/#chat
-
diff --git a/CONTRIBUTORS.in b/CONTRIBUTORS.in
deleted file mode 100644
index 6edf71d..0000000
--- a/CONTRIBUTORS.in
+++ /dev/null
@@ -1,97 +0,0 @@
-Apache CouchDB CONTRIBUTORS
-===========================
-
-A number of people have made contributions to the Apache CouchDB community,
-project, documentation, or code. Some of these people are listed here.
-
- * William Beh <wi...@gmail.com>
- * Dirk Schalge <di...@epd-me.net>
- * Roger Leigh <rl...@debian.org>
- * Sam Ruby <ru...@intertwingly.net>
- * Carlos Valiente <su...@gmail.com>
- * Till Klampaeckel <ti...@klampaeckel.de>
- * Jim Lindley <we...@jimlindley.com>
- * Yoan Blanc <yo...@gmail.com>
- * Michael Gottesman <go...@reed.edu>
- * Mark Baran <me...@gmail.com>
- * Michael Hendricks <mi...@ndrix.org>
- * Antony Blakey <an...@gmail.com>
- * Paul Carey <pa...@gmail.com>
- * Hunter Morris <hu...@gmail.com>
- * Brian Palmer <ji...@brian.codekitchen.net>
- * Maximillian Dornseif <md...@hudora.de>
- * Eric Casteleijn <er...@canonical.com>
- * Maarten Thibaut <mt...@cisco.com>
- * Florian Ebeling <fl...@gmail.com>
- * Volker Mische <vo...@gmail.com>
- * Brian Candler <B....@pobox.com>
- * Brad Anderson <br...@sankatygroup.com>
- * Nick Gerakines <ni...@gerakines.net>
- * Kevin Ilchmann Jørgensen <ki...@gmail.com>
- * Sebastian Cohnen <se...@gmx.net>
- * Sven Helmberger <sv...@gmx.de>
- * Dan Walters <da...@danwalters.net>
- * Curt Arnold <ca...@apache.org>
- * Gustavo Niemeyer
- * Joshua Bronson <ja...@gmail.com>
- * Kostis Sagonas <ko...@cs.ntua.gr>
- * Matthew Hooker <mw...@gmail.com>
- * Ilia Cheishvili <il...@gmail.com>
- * Lena Herrmann <le...@zeromail.org>
- * Jack Moffit <me...@gmail.com>
- * Damjan Georgievski <gd...@gmail.com>
- * Jan Kassens <ja...@kassens.net>
- * James Marca <jm...@translab.its.uci.edu>
- * Matt Goodall <ma...@gmail.com>
- * Joel Clark <un...@yahoo.com>
- * Matt Lyon <ma...@flowerpowered.com>
- * mikeal <mi...@gmail.com>
- * Joscha Feth <jo...@feth.com>
- * Jarrod Roberson <ja...@vertigrated.com>
- * Jae Kwon <jk...@gmail.com>
- * Gavin Sherry <sw...@alcove.com.au>
- * Timothy Smith <ti...@couch.io>
- * Martin Haaß <Ma...@gmx.net>
- * Hans Ulrich Niedermann <hu...@n-dimensional.de>
- * Dmitry Unkovsky <oi...@gmail.com>
- * Zachary Zolton <za...@gmail.com>
- * Brian Jenkins <bo...@bonkydog.com>
- * Paul Bonser <pi...@paulbonser.com>
- * Caleb Land <ca...@gmail.com>
- * Juhani Ränkimies <ju...@juranki.com>
- * Kev Jackson <fo...@gmail.com>
- * Jonathan D. Knezek <jd...@gmail.com>
- * David Rose <do...@gmail.com>
- * Lim Yue Chuan <sh...@gmail.com>
- * David Davis <xa...@xantus.org>
- * Juuso Väänänen <ju...@vaananen.org>
- * Jeff Zellner <je...@gmail.com>
- * Gabriel Farrell <gs...@gmail.com>
- * Mike Leddy <mi...@loop.com.br>
- * Wayne Conrad <wa...@databill.com>
- * Thomas Vander Stichele <th...@apestaart.org>
- * Felix Hummel <ap...@felixhummel.de>
- * Tim Smith <ti...@couchbase.com>
- * Dipesh Patel <di...@googlemail.com>
- * Sam Bisbee <sa...@sbisbee.com>
- * Nathan Vander Wilt <na...@yahoo.com>
- * Caolan McMahon <ca...@googlemail.com>
- * Andrey Somov <tr...@gmail.com>
- * Chris Coulson <chrisccoulson.googlemail.com>
- * Trond Norbye <tr...@gmail.com>
- * Christopher Bonhage <qu...@me.com>
- * Christian Carter <cd...@gmail.com>
- * Lukasz Mielicki <mi...@gmail.com>
- * Omar Yasin <omarkj@gmail.com
- * Matt Cooley <ma...@mattcooley.net>
- * Simon Leblanc <si...@gmail.com>
- * Rogutės Sparnuotos <ro...@googlemail.com>
- * Gavin McDonald <gm...@apache.org>
- * Fedor Indutny <fe...@indutny.com>
- * Tim Blair
- * Tady Walsh <he...@tady.me>
- * Sam Rijs <re...@awesam.de>
- * Benjamin Anderson <b...@banjiewen.net>
-# Authors from commit 6c976bd and onwards are auto-inserted. If you are merging
-# a commit from a non-committer, you should not add an entry to this file. When
-# `bootstrap` is run, the actual CONTRIBUTORS file will be generated.
diff --git a/INSTALL.Unix.md b/INSTALL.Unix.md
deleted file mode 100644
index cb45e9a..0000000
--- a/INSTALL.Unix.md
+++ /dev/null
@@ -1,265 +0,0 @@
-# Apache CouchDB INSTALL.Unix
-
-A high-level guide to Unix-like systems, inc. Mac OS X and Ubuntu.
-
-Community installation guides are available on the wiki:
-
-    http://wiki.apache.org/couchdb/Installation
-
-If you are trying to build CouchDB from a git checkout rather than
-a .tar.gz, see the `DEVELOPERS` file.
-
-This document is the canonical source of installation
-information. However, many systems have gotchas that you need to be
-aware of. In addition, dependencies frequently change as distributions
-update their archives. If you're running into trouble, be sure to
-check out the wiki. If you have any tips to share, please also update
-the wiki so that others can benefit from your experience.
-
-## Troubleshooting
-
-There is a troubleshooting guide:
-
-    http://wiki.apache.org/couchdb/Troubleshooting
-
-There is a wiki for general documentation:
-
-    http://wiki.apache.org/couchdb/
-
-There are collection of friendly mailing lists:
-
-    http://couchdb.apache.org/community/lists.html
-
-Please work through these in order if you experience any problems.
-
-## Dependencies
-
-You should have the following installed:
-
- * Erlang OTP (>=R16B03-1, =<19.x) (http://erlang.org/)
- * ICU                          (http://icu-project.org/)
- * OpenSSL                      (http://www.openssl.org/)
- * Mozilla SpiderMonkey - either 1.8.5 or 60
-   * 60 is not supported on ARM 64-bit (aarch64) at this time.
-   * https://developer.mozilla.org/en/docs/Mozilla/Projects/SpiderMonkey/Releases/1.8.5
-   * https://archive.mozilla.org/pub/firefox/releases/60.9.0esr/source/ (src/js)
- * GNU Make                     (http://www.gnu.org/software/make/)
- * GNU Compiler Collection      (http://gcc.gnu.org/)
- * libcurl                      (http://curl.haxx.se/libcurl/)
- * help2man                     (http://www.gnu.org/s/help2man/)
- * Python (>=2.7)               (http://python.org/)
-
-To build Fauxton, you should have the following installed:
- * Node.JS (>=6.x)              (https://nodejs.org/)
-   -- obtainable from NodeSource (https://github.com/nodesource/distributions)
-
-To build the documentation, you should have the following installed:
- * Python Sphinx (>=1.5)        (http://pypi.python.org/pypi/Sphinx)
-
-It is recommended that you install Erlang OTP R16B03-1 or above where
-possible.  You will only need libcurl if you plan to run the
-JavaScript test suite. And help2man is only need if you plan on
-installing the CouchDB man pages.  Python and Sphinx are only required
-for building the online documentation. Documentation build can be disabled
-by adding the `--disable-docs` flag to the `configure` script.
-
-### Debian-based Systems
-
-You can install the dependencies by running:
-
-    sudo apt-get --no-install-recommends -y install \
-        build-essential pkg-config erlang erlang-reltool \
-        libicu-dev libmozjs185-dev libcurl4-openssl-dev
-
-You can install the Node.JS dependencies via [NodeSource](https://github.com/nodesource/distributions#installation-instructions).
-
-You can install the documentation dependencies by running:
-
-    sudo apt-get --no-install-recommends -y install \
-        python-sphinx
-        
-    sudo pip install --upgrade sphinx_rtd_theme nose requests hypothesis
-
-
-Be sure to update the version numbers to match your system's available
-packages.
-
-### RedHat-based (Fedora, Centos, RHEL) Systems
-
-You can install the dependencies by running:
-
-    sudo yum install autoconf autoconf-archive automake \
-        curl-devel erlang-asn1 erlang-erts erlang-eunit \
-        erlang-xmerl help2man \
-        js-devel-1.8.5 libicu-devel libtool perl-Test-Harness
-
-You can install the Node.JS dependencies via [NodeSource](https://github.com/nodesource/distributions#rpminstall).
-
-The built-in packages for Sphinx in RHEL repositories are too old
-to run the documentation build process. Instead, use pip:
-
-    sudo yum install python-pip
-    sudo pip install sphinx
-
-### Mac OS X
-
-To build CouchDB from source on Mac OS X, you will need to install
-the Command Line Tools:
-
-    xcode-select --install
-
-You can then install the other dependencies by running:
-
-    brew install autoconf autoconf-archive automake libtool \
-        erlang icu4c spidermonkey curl pkg-config
-
-You can install the Node.JS dependencies via the
-[official Macintosh installer](https://nodejs.org/en/download/).
-
-You can install the documentation dependencies by running:
-
-    sudo easy_install pip
-    sudo pip install sphinx
-
-You will need Homebrew installed to use the `brew` command.
-
-Learn more about Homebrew at:
-
-    http://mxcl.github.com/homebrew/
-
-Some versions of Mac OS X ship a problematic OpenSSL library. If
-you're experiencing troubles with CouchDB crashing intermittently with
-a segmentation fault or a bus error, you will need to install your own
-version of OpenSSL. See the wiki, mentioned above, for more information.
-
-### FreeBSD
-
-FreeBSD requires the use of GNU Make. Where `make` is specified in this
-documentation, substitute `gmake`.
-
-You can install this by running:
-
-    pkg install gmake
-
-You can install the remaining dependencies by running:
-
-    pkg install help2man openssl icu curl git bash \
-        autoconf automake libtool node spidermonkey185 \
-        erlang node8 npm-node8 lang/python py27-sphinx py27-pip
-    pip install --upgrade sphinx_rtd_theme nose requests hypothesis
-
-## Installing
-
-Once you have satisfied the dependencies you should run:
-
-    ./configure
-
-If you wish to customize the installation, pass `--help` to this
-script.
-
-If everything was successful you should see the following message:
-
-    You have configured Apache CouchDB, time to relax.
-
-Relax.
-
-To build CouchDB you should run:
-
-    make release
-
-Try `gmake` if `make` is giving you any problems.
-
-If everything was successful you should see the following message:
-
-    ... done
-    You can now copy the rel/couchdb directory anywhere on your system.
-    Start CouchDB with ./bin/couchdb from within that directory.
-
-Relax.
-
-## User Registration
-
-For OS X, in the steps below, substitute `/Users/couchdb` for `/home/couchdb`.
-
-You should create a special `couchdb` user for CouchDB.
-
-On many Unix-like systems you can run:
-
-    adduser --system \
-            --home /opt/couchdb \
-            --no-create-home \
-            --shell /bin/bash \
-            --group --gecos \
-            "CouchDB Administrator" couchdb
-
-On Mac OS X you can use the Workgroup Manager to create users up to version
-10.9, and dscl or sysadminctl after version 10.9. Search Apple's support
-site to find the documentation appropriate for your system. As of recent
-versions of OS X, this functionality is also included in Server.app,
-available through the App Store only as part of OS X Server.
-
-You must make sure that the user has a working POSIX shell.
-
-You can test this by:
-
-    * Trying to log in as the `couchdb` user
-
-    * Running `pwd` and checking the present working directory
-
-Copy the built couchdb release to the new user's home directory:
-
-    cp -R /path/to/couchdb/rel/couchdb /opt/couchdb
-
-Change the ownership of the CouchDB directories by running:
-
-    chown -R couchdb:couchdb /opt/couchdb
-
-Change the permission of the CouchDB directories by running:
-
-    find /opt/couchdb -type d -exec chmod 0770 {} \;
-
-Update the permissions for your ini files:
-
-    chmod 0644 /opt/couchdb/etc/*
-
-## First Run
-
-You can start the CouchDB server by running:
-
-    sudo -i -u couchdb couchdb/bin/couchdb
-
-This uses the `sudo` command to run the `couchdb` command as the
-`couchdb` user.
-
-When CouchDB starts it should eventually display the following
-message:
-
-    Apache CouchDB has started, time to relax.
-
-Relax.
-
-To check that everything has worked, point your web browser to:
-
-    http://127.0.0.1:5984/_utils/
-
-From here you should verify your installation by pointing your web browser to:
-
-    http://localhost:5984/_utils/#/verifyinstall
-
-## Running as a Daemon
-
-The couchdb team recommends [runit](http://smarden.org/runit/) to
-run CouchDB persistently and reliably. Configuration of runit is
-straightforward; if you have questions, reach out to the CouchDB
-user mailing list.
-
-Naturally, you can configure systemd, launchd or SysV-init daemons to
-launch CouchDB and keep it running using standard configuration files.
-Sample scripts are in the couchdb-pkg repository:
-
-* SysV-init (Debian-style): https://github.com/apache/couchdb-pkg/blob/master/debian/couchdb.init
-* SysV-init (RHEL-style): https://github.com/apache/couchdb-pkg/blob/master/rpm/SOURCES/couchdb.init
-* upstart: Use the Debian-style sysvinit script instead.
-* systemd: https://github.com/apache/couchdb-pkg/blob/master/debian/couchdb.service
-
-Consult your system documentation for more information.
diff --git a/INSTALL.Windows.md b/INSTALL.Windows.md
deleted file mode 100644
index 9ba84b7..0000000
--- a/INSTALL.Windows.md
+++ /dev/null
@@ -1,21 +0,0 @@
-Apache CouchDB INSTALL.Windows
-==============================
-
-Due to the complexity of building CouchDB on the Windows platform,
-full build documentation and all necessary support files are in
-the couchdb-glazier repository.
-
-Be sure to find the branch that matches the release you are building, for
-example `couchdb_2.0`.
-
-Build & Test
-------------
-Once all dependencies are built and installed per the documentation in
-couchdb-glazier, these commands will configure and build CouchDB:
-
-    powershell -ExecutionPolicy Bypass .\configure.ps1 -WithCurl
-    make -f Makefile.win check
-
-This will build couchdb, as well as run the eunit and javascript tests.
-
-As of CouchDB 2.0 RC1, all eunit and javascript tests should pass.
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index e578d36..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,2269 +0,0 @@
-
-                                Apache License
-                          Version 2.0, January 2004
-                       http://www.apache.org/licenses/
-
-  TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-  1. Definitions.
-
-     "License" shall mean the terms and conditions for use, reproduction,
-     and distribution as defined by Sections 1 through 9 of this document.
-
-     "Licensor" shall mean the copyright owner or entity authorized by
-     the copyright owner that is granting the License.
-
-     "Legal Entity" shall mean the union of the acting entity and all
-     other entities that control, are controlled by, or are under common
-     control with that entity. For the purposes of this definition,
-     "control" means (i) the power, direct or indirect, to cause the
-     direction or management of such entity, whether by contract or
-     otherwise, or (ii) ownership of fifty percent (50%) or more of the
-     outstanding shares, or (iii) beneficial ownership of such entity.
-
-     "You" (or "Your") shall mean an individual or Legal Entity
-     exercising permissions granted by this License.
-
-     "Source" form shall mean the preferred form for making modifications,
-     including but not limited to software source code, documentation
-     source, and configuration files.
-
-     "Object" form shall mean any form resulting from mechanical
-     transformation or translation of a Source form, including but
-     not limited to compiled object code, generated documentation,
-     and conversions to other media types.
-
-     "Work" shall mean the work of authorship, whether in Source or
-     Object form, made available under the License, as indicated by a
-     copyright notice that is included in or attached to the work
-     (an example is provided in the Appendix below).
-
-     "Derivative Works" shall mean any work, whether in Source or Object
-     form, that is based on (or derived from) the Work and for which the
-     editorial revisions, annotations, elaborations, or other modifications
-     represent, as a whole, an original work of authorship. For the purposes
-     of this License, Derivative Works shall not include works that remain
-     separable from, or merely link (or bind by name) to the interfaces of,
-     the Work and Derivative Works thereof.
-
-     "Contribution" shall mean any work of authorship, including
-     the original version of the Work and any modifications or additions
-     to that Work or Derivative Works thereof, that is intentionally
-     submitted to Licensor for inclusion in the Work by the copyright owner
-     or by an individual or Legal Entity authorized to submit on behalf of
-     the copyright owner. For the purposes of this definition, "submitted"
-     means any form of electronic, verbal, or written communication sent
-     to the Licensor or its representatives, including but not limited to
-     communication on electronic mailing lists, source code control systems,
-     and issue tracking systems that are managed by, or on behalf of, the
-     Licensor for the purpose of discussing and improving the Work, but
-     excluding communication that is conspicuously marked or otherwise
-     designated in writing by the copyright owner as "Not a Contribution."
-
-     "Contributor" shall mean Licensor and any individual or Legal Entity
-     on behalf of whom a Contribution has been received by Licensor and
-     subsequently incorporated within the Work.
-
-  2. Grant of Copyright License. Subject to the terms and conditions of
-     this License, each Contributor hereby grants to You a perpetual,
-     worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-     copyright license to reproduce, prepare Derivative Works of,
-     publicly display, publicly perform, sublicense, and distribute the
-     Work and such Derivative Works in Source or Object form.
-
-  3. Grant of Patent License. Subject to the terms and conditions of
-     this License, each Contributor hereby grants to You a perpetual,
-     worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-     (except as stated in this section) patent license to make, have made,
-     use, offer to sell, sell, import, and otherwise transfer the Work,
-     where such license applies only to those patent claims licensable
-     by such Contributor that are necessarily infringed by their
-     Contribution(s) alone or by combination of their Contribution(s)
-     with the Work to which such Contribution(s) was submitted. If You
-     institute patent litigation against any entity (including a
-     cross-claim or counterclaim in a lawsuit) alleging that the Work
-     or a Contribution incorporated within the Work constitutes direct
-     or contributory patent infringement, then any patent licenses
-     granted to You under this License for that Work shall terminate
-     as of the date such litigation is filed.
-
-  4. Redistribution. You may reproduce and distribute copies of the
-     Work or Derivative Works thereof in any medium, with or without
-     modifications, and in Source or Object form, provided that You
-     meet the following conditions:
-
-     (a) You must give any other recipients of the Work or
-         Derivative Works a copy of this License; and
-
-     (b) You must cause any modified files to carry prominent notices
-         stating that You changed the files; and
-
-     (c) You must retain, in the Source form of any Derivative Works
-         that You distribute, all copyright, patent, trademark, and
-         attribution notices from the Source form of the Work,
-         excluding those notices that do not pertain to any part of
-         the Derivative Works; and
-
-     (d) If the Work includes a "NOTICE" text file as part of its
-         distribution, then any Derivative Works that You distribute must
-         include a readable copy of the attribution notices contained
-         within such NOTICE file, excluding those notices that do not
-         pertain to any part of the Derivative Works, in at least one
-         of the following places: within a NOTICE text file distributed
-         as part of the Derivative Works; within the Source form or
-         documentation, if provided along with the Derivative Works; or,
-         within a display generated by the Derivative Works, if and
-         wherever such third-party notices normally appear. The contents
-         of the NOTICE file are for informational purposes only and
-         do not modify the License. You may add Your own attribution
-         notices within Derivative Works that You distribute, alongside
-         or as an addendum to the NOTICE text from the Work, provided
-         that such additional attribution notices cannot be construed
-         as modifying the License.
-
-     You may add Your own copyright statement to Your modifications and
-     may provide additional or different license terms and conditions
-     for use, reproduction, or distribution of Your modifications, or
-     for any such Derivative Works as a whole, provided Your use,
-     reproduction, and distribution of the Work otherwise complies with
-     the conditions stated in this License.
-
-  5. Submission of Contributions. Unless You explicitly state otherwise,
-     any Contribution intentionally submitted for inclusion in the Work
-     by You to the Licensor shall be under the terms and conditions of
-     this License, without any additional terms or conditions.
-     Notwithstanding the above, nothing herein shall supersede or modify
-     the terms of any separate license agreement you may have executed
-     with Licensor regarding such Contributions.
-
-  6. Trademarks. This License does not grant permission to use the trade
-     names, trademarks, service marks, or product names of the Licensor,
-     except as required for reasonable and customary use in describing the
-     origin of the Work and reproducing the content of the NOTICE file.
-
-  7. Disclaimer of Warranty. Unless required by applicable law or
-     agreed to in writing, Licensor provides the Work (and each
-     Contributor provides its Contributions) on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-     implied, including, without limitation, any warranties or conditions
-     of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-     PARTICULAR PURPOSE. You are solely responsible for determining the
-     appropriateness of using or redistributing the Work and assume any
-     risks associated with Your exercise of permissions under this License.
-
-  8. Limitation of Liability. In no event and under no legal theory,
-     whether in tort (including negligence), contract, or otherwise,
-     unless required by applicable law (such as deliberate and grossly
-     negligent acts) or agreed to in writing, shall any Contributor be
-     liable to You for damages, including any direct, indirect, special,
-     incidental, or consequential damages of any character arising as a
-     result of this License or out of the use or inability to use the
-     Work (including but not limited to damages for loss of goodwill,
-     work stoppage, computer failure or malfunction, or any and all
-     other commercial damages or losses), even if such Contributor
-     has been advised of the possibility of such damages.
-
-  9. Accepting Warranty or Additional Liability. While redistributing
-     the Work or Derivative Works thereof, You may choose to offer,
-     and charge a fee for, acceptance of support, warranty, indemnity,
-     or other liability obligations and/or rights consistent with this
-     License. However, in accepting such obligations, You may act only
-     on Your own behalf and on Your sole responsibility, not on behalf
-     of any other Contributor, and only if You agree to indemnify,
-     defend, and hold each Contributor harmless for any liability
-     incurred by, or claims asserted against, such Contributor by reason
-     of your accepting any such warranty or additional liability.
-
-  END OF TERMS AND CONDITIONS
-
-  APPENDIX: How to apply the Apache License to your work.
-
-     To apply the Apache License to your work, attach the following
-     boilerplate notice, with the fields enclosed by brackets "[]"
-     replaced with your own identifying information. (Don't include
-     the brackets!)  The text should be enclosed in the appropriate
-     comment syntax for the file format. We also recommend that a
-     file or class name and description of purpose be included on the
-     same "printed page" as the copyright notice for easier
-     identification within third-party archives.
-
-  Copyright [yyyy] [name of copyright owner]
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
-Apache CouchDB Subcomponents
-
-The Apache CouchDB project includes a number of subcomponents with separate
-copyright notices and license terms. Your use of the code for the these
-subcomponents is subject to the terms and conditions of the following licenses.
-
-
-For the share/server/json2.js component:
-
-  Public Domain
-
-  No warranty expressed or implied. Use at your own risk.
-
-
-For the share/www/favicon.ico component from https://github.com/BigBlueHat/futon2:
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-For the src/mochiweb component:
-
-  Copyright (c) 2007 Mochi Media, Inc.
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-For the src/ibrowse component:
-
-  Copyright (c) 2006, Chandrashekhar Mullaparthi
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimer in the documentation
-      and/or other materials provided with the distribution.
-    * Neither the name of the T-Mobile nor the names of its contributors may be
-      used to endorse or promote products derived from this software without
-      specific prior written permission.
-
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-  ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-For the src/couch_log/src/couch_log_trunc_io.erl and
-    the src/couch_log/src/couch_log_trunc_io_fmt.erl components
-
-ERLANG PUBLIC LICENSE
-Version 1.1
-
-1. Definitions.
-
-1.1. ``Contributor'' means each entity that creates or contributes to
-the creation of Modifications.
-
-1.2. ``Contributor Version'' means the combination of the Original
-Code, prior Modifications used by a Contributor, and the Modifications
-made by that particular Contributor.
-
-1.3. ``Covered Code'' means the Original Code or Modifications or the
-combination of the Original Code and Modifications, in each case
-including portions thereof.
-
-1.4. ``Electronic Distribution Mechanism'' means a mechanism generally
-accepted in the software development community for the electronic
-transfer of data.
-
-1.5. ``Executable'' means Covered Code in any form other than Source
-Code.
-
-1.6. ``Initial Developer'' means the individual or entity identified
-as the Initial Developer in the Source Code notice required by Exhibit
-A.
-
-1.7. ``Larger Work'' means a work which combines Covered Code or
-portions thereof with code not governed by the terms of this License.
-
-1.8. ``License'' means this document.
-
-1.9. ``Modifications'' means any addition to or deletion from the
-substance or structure of either the Original Code or any previous
-Modifications. When Covered Code is released as a series of files, a
-Modification is:
-
-A. Any addition to or deletion from the contents of a file containing
-   Original Code or previous Modifications.
-
-B. Any new file that contains any part of the Original Code or
-   previous Modifications.
-
-1.10. ``Original Code'' means Source Code of computer software code
-which is described in the Source Code notice required by Exhibit A as
-Original Code, and which, at the time of its release under this
-License is not already Covered Code governed by this License.
-
-1.11. ``Source Code'' means the preferred form of the Covered Code for
-making modifications to it, including all modules it contains, plus
-any associated interface definition files, scripts used to control
-compilation and installation of an Executable, or a list of source
-code differential comparisons against either the Original Code or
-another well known, available Covered Code of the Contributor's
-choice. The Source Code can be in a compressed or archival form,
-provided the appropriate decompression or de-archiving software is
-widely available for no charge.
-
-1.12. ``You'' means an individual or a legal entity exercising rights
-under, and complying with all of the terms of, this License. For legal
-entities,``You'' includes any entity which controls, is controlled by,
-or is under common control with You. For purposes of this definition,
-``control'' means (a) the power, direct or indirect, to cause the
-direction or management of such entity, whether by contract or
-otherwise, or (b) ownership of fifty percent (50%) or more of the
-outstanding shares or beneficial ownership of such entity.
-
-2. Source Code License.
-
-2.1. The Initial Developer Grant.
-The Initial Developer hereby grants You a world-wide, royalty-free,
-non-exclusive license, subject to third party intellectual property
-claims:
-
-(a) to use, reproduce, modify, display, perform, sublicense and
-    distribute the Original Code (or portions thereof) with or without
-    Modifications, or as part of a Larger Work; and
-
-(b) under patents now or hereafter owned or controlled by Initial
-    Developer, to make, have made, use and sell (``Utilize'') the
-    Original Code (or portions thereof), but solely to the extent that
-    any such patent is reasonably necessary to enable You to Utilize
-    the Original Code (or portions thereof) and not to any greater
-    extent that may be necessary to Utilize further Modifications or
-    combinations.
-
-2.2. Contributor Grant.
-Each Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license, subject to third party intellectual property
-claims:
-
-(a) to use, reproduce, modify, display, perform, sublicense and
-    distribute the Modifications created by such Contributor (or
-    portions thereof) either on an unmodified basis, with other
-    Modifications, as Covered Code or as part of a Larger Work; and
-
-(b) under patents now or hereafter owned or controlled by Contributor,
-    to Utilize the Contributor Version (or portions thereof), but
-    solely to the extent that any such patent is reasonably necessary
-    to enable You to Utilize the Contributor Version (or portions
-    thereof), and not to any greater extent that may be necessary to
-    Utilize further Modifications or combinations.
-
-3. Distribution Obligations.
-
-3.1. Application of License.
-The Modifications which You contribute are governed by the terms of
-this License, including without limitation Section 2.2. The Source
-Code version of Covered Code may be distributed only under the terms
-of this License, and You must include a copy of this License with
-every copy of the Source Code You distribute. You may not offer or
-impose any terms on any Source Code version that alters or restricts
-the applicable version of this License or the recipients' rights
-hereunder. However, You may include an additional document offering
-the additional rights described in Section 3.5.
-
-3.2. Availability of Source Code.
-Any Modification which You contribute must be made available in Source
-Code form under the terms of this License either on the same media as
-an Executable version or via an accepted Electronic Distribution
-Mechanism to anyone to whom you made an Executable version available;
-and if made available via Electronic Distribution Mechanism, must
-remain available for at least twelve (12) months after the date it
-initially became available, or at least six (6) months after a
-subsequent version of that particular Modification has been made
-available to such recipients. You are responsible for ensuring that
-the Source Code version remains available even if the Electronic
-Distribution Mechanism is maintained by a third party.
-
-3.3. Description of Modifications.
-You must cause all Covered Code to which you contribute to contain a
-file documenting the changes You made to create that Covered Code and
-the date of any change. You must include a prominent statement that
-the Modification is derived, directly or indirectly, from Original
-Code provided by the Initial Developer and including the name of the
-Initial Developer in (a) the Source Code, and (b) in any notice in an
-Executable version or related documentation in which You describe the
-origin or ownership of the Covered Code.
-
-3.4. Intellectual Property Matters
-
-(a) Third Party Claims.
-    If You have knowledge that a party claims an intellectual property
-    right in particular functionality or code (or its utilization
-    under this License), you must include a text file with the source
-    code distribution titled ``LEGAL'' which describes the claim and
-    the party making the claim in sufficient detail that a recipient
-    will know whom to contact. If you obtain such knowledge after You
-    make Your Modification available as described in Section 3.2, You
-    shall promptly modify the LEGAL file in all copies You make
-    available thereafter and shall take other steps (such as notifying
-    appropriate mailing lists or newsgroups) reasonably calculated to
-    inform those who received the Covered Code that new knowledge has
-    been obtained.
-
-(b) Contributor APIs.
-    If Your Modification is an application programming interface and
-    You own or control patents which are reasonably necessary to
-    implement that API, you must also include this information in the
-    LEGAL file.
-
-3.5. Required Notices.
-You must duplicate the notice in Exhibit A in each file of the Source
-Code, and this License in any documentation for the Source Code, where
-You describe recipients' rights relating to Covered Code. If You
-created one or more Modification(s), You may add your name as a
-Contributor to the notice described in Exhibit A. If it is not
-possible to put such notice in a particular Source Code file due to
-its structure, then you must include such notice in a location (such
-as a relevant directory file) where a user would be likely to look for
-such a notice. You may choose to offer, and to charge a fee for,
-warranty, support, indemnity or liability obligations to one or more
-recipients of Covered Code. However, You may do so only on Your own
-behalf, and not on behalf of the Initial Developer or any
-Contributor. You must make it absolutely clear than any such warranty,
-support, indemnity or liability obligation is offered by You alone,
-and You hereby agree to indemnify the Initial Developer and every
-Contributor for any liability incurred by the Initial Developer or
-such Contributor as a result of warranty, support, indemnity or
-liability terms You offer.
-
-3.6. Distribution of Executable Versions.
-You may distribute Covered Code in Executable form only if the
-requirements of Section 3.1-3.5 have been met for that Covered Code,
-and if You include a notice stating that the Source Code version of
-the Covered Code is available under the terms of this License,
-including a description of how and where You have fulfilled the
-obligations of Section 3.2. The notice must be conspicuously included
-in any notice in an Executable version, related documentation or
-collateral in which You describe recipients' rights relating to the
-Covered Code. You may distribute the Executable version of Covered
-Code under a license of Your choice, which may contain terms different
-from this License, provided that You are in compliance with the terms
-of this License and that the license for the Executable version does
-not attempt to limit or alter the recipient's rights in the Source
-Code version from the rights set forth in this License. If You
-distribute the Executable version under a different license You must
-make it absolutely clear that any terms which differ from this License
-are offered by You alone, not by the Initial Developer or any
-Contributor. You hereby agree to indemnify the Initial Developer and
-every Contributor for any liability incurred by the Initial Developer
-or such Contributor as a result of any such terms You offer.
-
-3.7. Larger Works.
-You may create a Larger Work by combining Covered Code with other code
-not governed by the terms of this License and distribute the Larger
-Work as a single product. In such a case, You must make sure the
-requirements of this License are fulfilled for the Covered Code.
-
-4. Inability to Comply Due to Statute or Regulation.
-If it is impossible for You to comply with any of the terms of this
-License with respect to some or all of the Covered Code due to statute
-or regulation then You must: (a) comply with the terms of this License
-to the maximum extent possible; and (b) describe the limitations and
-the code they affect. Such description must be included in the LEGAL
-file described in Section 3.4 and must be included with all
-distributions of the Source Code. Except to the extent prohibited by
-statute or regulation, such description must be sufficiently detailed
-for a recipient of ordinary skill to be able to understand it.
-
-5. Application of this License.
-
-This License applies to code to which the Initial Developer has
-attached the notice in Exhibit A, and to related Covered Code.
-
-6. CONNECTION TO MOZILLA PUBLIC LICENSE
-
-This Erlang License is a derivative work of the Mozilla Public
-License, Version 1.0. It contains terms which differ from the Mozilla
-Public License, Version 1.0.
-
-7. DISCLAIMER OF WARRANTY.
-
-COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN ``AS IS'' BASIS,
-WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
-WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
-DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR
-NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF
-THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE
-IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER
-CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR
-CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART
-OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER
-EXCEPT UNDER THIS DISCLAIMER.
-
-8. TERMINATION.
-This License and the rights granted hereunder will terminate
-automatically if You fail to comply with terms herein and fail to cure
-such breach within 30 days of becoming aware of the breach. All
-sublicenses to the Covered Code which are properly granted shall
-survive any termination of this License. Provisions which, by their
-nature, must remain in effect beyond the termination of this License
-shall survive.
-
-9. DISCLAIMER OF LIABILITY
-Any utilization of Covered Code shall not cause the Initial Developer
-or any Contributor to be liable for any damages (neither direct nor
-indirect).
-
-10. MISCELLANEOUS
-This License represents the complete agreement concerning the subject
-matter hereof. If any provision is held to be unenforceable, such
-provision shall be reformed only to the extent necessary to make it
-enforceable. This License shall be construed by and in accordance with
-the substantive laws of Sweden. Any dispute, controversy or claim
-arising out of or relating to this License, or the breach, termination
-or invalidity thereof, shall be subject to the exclusive jurisdiction
-of Swedish courts, with the Stockholm City Court as the first
-instance.
-
-EXHIBIT A.
-
-``The contents of this file are subject to the Erlang Public License,
-Version 1.1, (the "License"); you may not use this file except in
-compliance with the License. You should have received a copy of the
-Erlang Public License along with this software. If not, it can be
-retrieved via the world wide web at http://www.erlang.org/.
-
-Software distributed under the License is distributed on an "AS IS"
-basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
-the License for the specific language governing rights and limitations
-under the License.
-
-The Initial Developer of the Original Code is Ericsson Utvecklings AB.
-Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings
-AB. All Rights Reserved.''
-
-
-For the src/ejson/yajl component
-
-Copyright 2010, Lloyd Hilaiel.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- 1. Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in
-    the documentation and/or other materials provided with the
-    distribution.
-
- 3. Neither the name of Lloyd Hilaiel nor the names of its
-    contributors may be used to endorse or promote products derived
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
-IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-For the src/ejson/erl_nif_compat.h file
-
-  Copyright (c) 2010-2011 Basho Technologies, Inc.
-  With some minor modifications for Apache CouchDB.
-
-  This file is provided to you under the Apache License,
-  Version 2.0 (the "License"); you may not use this file
-  except in compliance with the License.  You may obtain
-  a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
-
-For the src/snappy/google-snappy component
-
- Copyright 2005 and onwards Google Inc.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
-     * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-     * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
-     * Neither the name of Google Inc. nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-For the share/server/coffee-script.js file
-
-  Copyright (c) 2011 Jeremy Ashkenas
-
-  Permission is hereby granted, free of charge, to any person
-  obtaining a copy of this software and associated documentation
-  files (the "Software"), to deal in the Software without
-  restriction, including without limitation the rights to use,
-  copy, modify, merge, publish, distribute, sublicense, and/or sell
-  copies of the Software, and to permit persons to whom the
-  Software is furnished to do so, subject to the following
-  conditions:
-
-  The above copyright notice and this permission notice shall be
-  included in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-  OTHER DEALINGS IN THE SOFTWARE.
-
-
-for dev/pbkdf2.py
-
-(The BSD License)
-
-Copyright (c) 2011 by Armin Ronacher, Reed O'Brien
-
-Some rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-
-    * The names of the contributors may not be used to endorse or
-      promote products derived from this software without specific
-      prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-for src/fauxton/assets/js/libs/bootstrap.js
-for share/www/js/require*
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-
-for src/fauxton/assets/js/plugins/prettify.js
-for share/www/js/require*
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-
-for src/fauxton/assets/js/plugins/beautify.js
-for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) 2007-2013 Einar Lielmanis and contributors.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation files
-(the "Software"), to deal in the Software without restriction,
-including without limitation the rights to use, copy, modify, merge,
-publish, distribute, sublicense, and/or sell copies of the Software,
-and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
-BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-for src/fauxton/assets/js/plugins/cloudant.pagingcollection.js
-for share/www/js/require*
-
-Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-
-for src/fauxton/assets/fonts/fontawesome
-for share/www/fonts/*
-
-SIL OPEN FONT LICENSE
-
-Version 1.1 - 26 February 2007
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting — in part or in whole — any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
-
-
-for share/server/60/esprima.js
-Based on https://github.com/jquery/esprima
-
-BSD License
-
-Copyright JS Foundation and other contributors, https://js.foundation/
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-  * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-share/server/60/escodegen.js
-Based on https://github.com/estools/escodegen
-
-BSD License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-  * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-  * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-for src/fauxton/assets/less/bootstrap/font-awesome/*
-for share/www/css/*
-
-The MIT License (MIT)
-
-Copyright (c) 2013  Dave Gandy
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-for src/fauxton/test/nightwatch_tests/custom-commands/waitForAttribute.js:
-
-    The MIT License (MIT)
-
-    Copyright (c) 2014 Dave Koo
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE.
-
-
-react-select for share/www/js/require*
-
-
-The MIT License (MIT)
-
-Copyright (c) 2016 Jed Watson
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-jquery for share/www/js/require*
-
-Copyright jQuery Foundation and other contributors, https://jquery.org/
-
-This software consists of voluntary contributions made by many
-individuals. For exact contribution history, see the revision history
-available at https://github.com/jquery/jquery
-
-The following license applies to all parts of this software except as
-documented below:
-
-====
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-====
-
-All files located in the node_modules and external directories are
-externally maintained libraries used by this software which have their
-own licenses; we recommend you read them, as their terms may differ from
-the terms above.
-
-
-Sizzle for jquery
-
-Copyright jQuery Foundation and other contributors, https://jquery.org/
-
-This software consists of voluntary contributions made by many
-individuals. For exact contribution history, see the revision history
-available at https://github.com/jquery/sizzle
-
-The following license applies to all parts of this software except as
-documented below:
-
-====
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-====
-
-All files located in the node_modules and external directories are
-externally maintained libraries used by this software which have their
-own licenses; we recommend you read them, as their terms may differ from
-the terms above.
-
-lodash for share/www/js/require*
-
-Copyright 2012-2015 The Dojo Foundation <http://dojofoundation.org/>
-Based on Underscore.js, copyright 2009-2015 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-backbone for share/www/js/require*
-
-Copyright (c) 2010-2016 Jeremy Ashkenas, DocumentCloud
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
-d3 for share/www/js/require*
-
-Copyright (c) 2010-2016, Michael Bostock
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* The name Michael Bostock may not be used to endorse or promote products
-  derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-moment for share/www/js/require*
-
-Copyright (c) 2011-2016 Tim Wood, Iskren Chernev, Moment.js contributors
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
-backbone.layoutmanager for share/www/js/require*
-
-Copyright (c) 2015 Tim Branyen
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-react for share/www/js/require*
-
-BSD License
-
-For React software
-
-Copyright (c) 2013-present, Facebook, Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
-
- * Neither the name Facebook nor the names of its contributors may be used to
-   endorse or promote products derived from this software without specific
-   prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-for share/www/js/require* as part of react
-
-BSD License
-
-For fbjs software
-
-Copyright (c) 2013-2015, Facebook, Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
-
- * Neither the name Facebook nor the names of its contributors may be used to
-   endorse or promote products derived from this software without specific
-   prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-object-assign for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <si...@gmail.com> (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-react-dom for share/www/js/require*
-
-BSD License
-
-For React software
-
-Copyright (c) 2013-present, Facebook, Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
-
- * Neither the name Facebook nor the names of its contributors may be used to
-   endorse or promote products derived from this software without specific
-   prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-flux for share/www/js/require*
-
-BSD License
-
-For Flux software
-
-Copyright (c) 2014-2015, Facebook, Inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
- * Neither the name Facebook nor the names of its contributors may be used to
-   endorse or promote products derived from this software without specific
-   prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-css-loader for share/www/js/require*
-
-  MIT License http://www.opensource.org/licenses/mit-license.php
-  Author Tobias Koppers @sokra
-
-
-style-loader for for share/www/js/require*
-
-  MIT License http://www.opensource.org/licenses/mit-license.php
-  Author Tobias Koppers @sokra
-
-
-zeroclipboard for share/www/js/require*
-zeroclipboard for share/www/js/zeroclipboard
-
-The MIT License (MIT)
-Copyright (c) 2009-2014 Jon Rohan, James M. Greene
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-react-bootstrap for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Stephen J. Collings, Matthew Honnibal, Pieter Vanderwerff
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-babel-runtime for share/www/js/require* (from react-bootstrap)
-
-Copyright (c) 2014-2016 Sebastian McKenzie <se...@gmail.com>
-
-MIT License
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-core-js for share/www/js/require* (from react-bootstrap)
-
-Copyright (c) 2015 Denis Pushkarev
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-react-prop-types for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) 2015 react-bootstrap
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-invariant for share/www/js/require*
-
-BSD-3-Clause
-https://opensource.org/licenses/BSD-3-Clause
-
-
-warning for share/www/js/require*
-
-BSD License
-
-For React software
-
-Copyright (c) 2013-2015, Facebook, Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
-
- * Neither the name Facebook nor the names of its contributors may be used to
-   endorse or promote products derived from this software without specific
-   prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-classnames for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) 2016 Jed Watson
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-dom-helpers for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) 2015 Jason Quense
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-react-overlays for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) 2015 react-bootstrap
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-keycode for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Tim Oxley
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-lodash-compat for share/www/js/require*
-
-Copyright 2012-2016 The Dojo Foundation <http://dojofoundation.org/>
-Based on Underscore.js, copyright 2009-2016 Jeremy Ashkenas,
-DocumentCloud and Investigative Reporters & Editors <http://underscorejs.org/>
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-uncontrollable for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) 2015 Jason Quense
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-velocity-animate for share/www/js/require*
-
-The MIT License
-
-Copyright (c) 2014 Julian Shapiro
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-react-addons-css-transition-group for share/www/js/require*
-
-BSD License
-
-For React software
-
-Copyright (c) 2013-present, Facebook, Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
-
- * Neither the name Facebook nor the names of its contributors may be used to
-   endorse or promote products derived from this software without specific
-   prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-brace for share/www/js/require*
-
-Copyright 2013 Thorsten Lorenz.
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
-w3c-blob for share/www/js/require*
-
-MIT License
-
-
-velocity-react for share/www/js/require*
-
-
-Copyright (c) 2015 Twitter and other contributors
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-react-addons-transition-group for share/www/js/require*
-
-BSD License
-
-For React software
-
-Copyright (c) 2013-present, Facebook, Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
-   list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
-   this list of conditions and the following disclaimer in the documentation
-   and/or other materials provided with the distribution.
-
- * Neither the name Facebook nor the names of its contributors may be used to
-   endorse or promote products derived from this software without specific
-   prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-react-input-autosize for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) 2016 Jed Watson
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-blacklist for share/www/js/require*
-
-
-visualizeRevTree for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) 2013 Tomasz Kołodziejski
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-pouchdb for share/www/js/require*
-
-                                Apache License
-                          Version 2.0, January 2004
-                       http://www.apache.org/licenses/
-
-process for share/www/js/require*
-
-(The MIT License)
-
-Copyright (c) 2013 Roman Shtylman <sh...@gmail.com>
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-js-extend for share/www/js/require*
-
-ISC License
-
-
-debug for share/www/js/require*
-
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-ms for share/www/js/require*
-
-(The MIT License)
-
-Copyright (c) 2014 Guillermo Rauch <ra...@gmail.com>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
-the Software, and to permit persons to whom the Software is furnished to do so,
-subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
-IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-inherits for share/www/js/require*
-
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-
-
-lie for share/www/js/require*
-
-#Copyright (c) 2014 Calvin Metcalf
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.**
-
-
-immediate for share/www/js/require*
-
-Copyright (c) 2012 Barnesandnoble.com, llc, Donavon West, Domenic Denicola, Brian Cavalier
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-pouchdb-collections for share/www/js/require*
-
-                                Apache License
-                          Version 2.0, January 2004
-                       http://www.apache.org/licenses/
-
-
-argsarray for share/www/js/require*
-
-# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
-## TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. You just DO WHAT THE FUCK YOU WANT TO.
-
-
-events for share/www/js/require*
-
-MIT
-
-Copyright Joyent, Inc. and other Node contributors.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to permit
-persons to whom the Software is furnished to do so, subject to the
-following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
-NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
-USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-scope-eval for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) 2015 Alex David
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-spark-md for share/www/js/require*
-
-            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
-                    Version 2, December 2004
-
- Copyright (C) 2015 André Cruz <am...@gmail.com>
-
- Everyone is permitted to copy and distribute verbatim or modified
- copies of this license document, and changing it is allowed as long
- as the name is changed.
-
-            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. You just DO WHAT THE FUCK YOU WANT TO.
-
-
-vuvuzela for share/www/js/require*
-
-                                Apache License
-                          Version 2.0, January 2004
-                       http://www.apache.org/licenses/
-
-
-es6-promise-pool for share/www/js/require*
-
-Copyright (c) 2015 Tim De Pauw <https://tmdpw.eu/>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-pouchdb-collate for share/www/js/require*
-
-                                Apache License
-                          Version 2.0, January 2004
-                       http://www.apache.org/licenses/
-
-
-jsondiffpatch for share/www/js/require*
-
-The MIT License
-
-Copyright (c) 2014 Benjamín Eidelman twitter.com/beneidel
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-chalk for share/www/js/require*
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
-
-
-ansi-styles for share/www/js/require*
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
-
-
-strip-ansi for share/www/js/require*
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
-
-
-ansi-regex for share/www/js/require*
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
-
-
-has-ansi for share/www/js/require*
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
-
-
-supports-color for share/www/js/require*
-
-MIT © [Sindre Sorhus](http://sindresorhus.com)
-
-
-escape-string-regexp for share/www/js/require*
-
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <si...@gmail.com> (sindresorhus.com)
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-For the src/hyper component:
-
-The MIT License (MIT)
-
-Copyright (c) 2014 Game Analytics ApS
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-For the src/recon component:
-
-Copyright (c) 2012-2017, Frédéric Trottier-Hébert
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-  Redistributions of source code must retain the above copyright notice, this
-  list of conditions and the following disclaimer.
-
-  Redistributions in binary form must reproduce the above copyright notice, this
-  list of conditions and the following disclaimer in the documentation and/or
-  other materials provided with the distribution.
-
-  The names of its contributors may not be used to endorse or promote
-  products derived from this software without specific prior written
-  permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 390aa46..0000000
--- a/Makefile
+++ /dev/null
@@ -1,526 +0,0 @@
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-
-# *******************************************************
-# WARNING! If you edit this file, also edit Makefile.win!
-# *******************************************************
-
-include version.mk
-
-REBAR?=$(shell echo `pwd`/bin/rebar)
-
-# Handle the following scenarios:
-#   1. When building from a tarball, use version.mk.
-#   2. When building from a clean release tag (#.#.#), use that tag.
-#   3. When building from a clean RC tag (#.#.#-RC#), use JUST the version
-#      number inside the tarball, but use the full name for the name of the
-#      tarball itself.
-#   4. When not on a clean tag, use version.mk + git sha + dirty status.
-
-COUCHDB_GIT_SHA=$(git_sha)
-
-IN_RELEASE = $(shell if [ ! -d .git ]; then echo true; fi)
-ifeq ($(IN_RELEASE), true)
-
-# 1. Building from tarball, use version.mk.
-COUCHDB_VERSION = $(vsn_major).$(vsn_minor).$(vsn_patch)
-
-else
-
-# Gather some additional information.
-# We do it this way so we don't bake shell-isms into Makefile
-# to make it easier to port to Windows. I know, I know. -jst
-# IN_RC contains the -RCx suffix in the name if present
-IN_RC = $(shell git describe --tags --always --first-parent \
-        | grep -Eo -- '-RC[0-9]+' 2>/dev/null)
-# ON_TAG matches *ONLY* if we are on a release or RC tag
-ON_TAG = $(shell git describe --tags --always --first-parent \
-        | grep -Eo -- '^[0-9]+\.[0-9]\.[0-9]+(-RC[0-9]+)?$$' 2>/dev/null)
-# REL_TAG contains the #.#.# from git describe, which might be used
-REL_TAG = $(shell git describe --tags --always --first-parent \
-        | grep -Eo -- '^[0-9]+\.[0-9]\.[0-9]+' 2>/dev/null)
-# DIRTY identifies if we're not on a commit
-DIRTY = $(shell git describe --dirty | grep -Eo -- '-dirty' 2>/dev/null)
-# COUCHDB_GIT_SHA is our current git hash.
-COUCHDB_GIT_SHA=$(shell git rev-parse --short=7 --verify HEAD)
-
-ifeq ($(ON_TAG),)
-# 4. Not on a tag.
-COUCHDB_VERSION_SUFFIX = $(COUCHDB_GIT_SHA)$(DIRTY)
-COUCHDB_VERSION = $(vsn_major).$(vsn_minor).$(vsn_patch)-$(COUCHDB_VERSION_SUFFIX)
-else
-# 2 and 3. On a tag.
-COUCHDB_VERSION = $(REL_TAG)$(DIRTY)
-endif
-endif
-
-# needed to do text substitutions
-comma:= ,
-empty:=
-space:= $(empty) $(empty)
-
-DESTDIR=
-
-# Rebar options
-apps=
-skip_deps=folsom,meck,mochiweb,triq,proper,snappy,bcrypt,hyper
-suites=
-tests=
-
-COMPILE_OPTS=$(shell echo "\
-	apps=$(apps) \
-	" | sed -e 's/[a-z_]\{1,\}= / /g')
-EUNIT_OPTS=$(shell echo "\
-	skip_deps=$(skip_deps) \
-	suites=$(suites) \
-	tests=$(tests) \
-	" | sed -e 's/[a-z]\{1,\}= / /g')
-DIALYZE_OPTS=$(shell echo "\
-	apps=$(apps) \
-	skip_deps=$(skip_deps) \
-	" | sed -e 's/[a-z]\{1,\}= / /g')
-EXUNIT_OPTS=$(subst $(comma),$(space),$(tests))
-
-#ignore javascript tests
-ignore_js_suites=
-
-TEST_OPTS="-c 'startup_jitter=0' -c 'default_security=admin_local'"
-
-################################################################################
-# Main commands
-################################################################################
-
-
-.PHONY: all
-# target: all - Build everything
-all: couch fauxton docs
-
-
-.PHONY: help
-# target: help - Print this help
-help:
-	@egrep "^# target: " Makefile \
-		| sed -e 's/^# target: //g' \
-		| sort \
-		| awk '{printf("    %-20s", $$1); $$1=$$2=""; print "-" $$0}'
-
-
-################################################################################
-# Building
-################################################################################
-
-
-.PHONY: couch
-# target: couch - Build CouchDB core, use ERL_OPTS to provide custom compiler's options
-couch: config.erl
-	@COUCHDB_VERSION=$(COUCHDB_VERSION) COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) $(REBAR) compile $(COMPILE_OPTS)
-	@cp src/couch/priv/couchjs bin/
-
-
-.PHONY: docs
-# target: docs - Build documentation
-ifeq ($(IN_RELEASE), true)
-docs: share/docs/html
-else
-docs: src/docs/build
-endif
-
-.PHONY: fauxton
-# target: fauxton - Build Fauxton web UI
-fauxton: share/www
-
-
-################################################################################
-# Testing
-################################################################################
-
-
-.PHONY: check
-# target: check - Test everything
-check: all python-black
-	@$(MAKE) emilio
-	@$(MAKE) eunit
-	@$(MAKE) mango-test
-	@$(MAKE) elixir
-
-ifdef apps
-subdirs = $(apps)
-else
-subdirs=$(shell ls src)
-endif
-
-.PHONY: eunit
-# target: eunit - Run EUnit tests, use EUNIT_OPTS to provide custom options
-eunit: export BUILDDIR = $(shell pwd)
-eunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config
-eunit: export COUCHDB_QUERY_SERVER_JAVASCRIPT = $(shell pwd)/bin/couchjs $(shell pwd)/share/server/main.js
-eunit: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-eunit: couch
-	@COUCHDB_VERSION=$(COUCHDB_VERSION) COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) $(REBAR) setup_eunit 2> /dev/null
-	@for dir in $(subdirs); do \
-            COUCHDB_VERSION=$(COUCHDB_VERSION) COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) $(REBAR) -r eunit $(EUNIT_OPTS) apps=$$dir || exit 1; \
-        done
-
-
-.PHONY: exunit
-# target: exunit - Run ExUnit tests
-exunit: export BUILDDIR = $(shell pwd)
-exunit: export MIX_ENV=test
-exunit: export ERL_LIBS = $(shell pwd)/src
-exunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config
-exunit: export COUCHDB_QUERY_SERVER_JAVASCRIPT = $(shell pwd)/bin/couchjs $(shell pwd)/share/server/main.js
-exunit: couch elixir-init setup-eunit elixir-check-formatted elixir-credo
-	@mix test --cover --trace $(EXUNIT_OPTS)
-
-setup-eunit: export BUILDDIR = $(shell pwd)
-setup-eunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config
-setup-eunit:
-	@$(REBAR) setup_eunit 2> /dev/null
-
-just-eunit: export BUILDDIR = $(shell pwd)
-just-eunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config
-just-eunit:
-	@$(REBAR) -r eunit $(EUNIT_OPTS)
-
-.PHONY: soak-eunit
-soak-eunit: export BUILDDIR = $(shell pwd)
-soak-eunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config
-soak-eunit: couch
-	@$(REBAR) setup_eunit 2> /dev/null
-	while [ $$? -eq 0 ] ; do $(REBAR) -r eunit $(EUNIT_OPTS) ; done
-
-emilio:
-	@bin/emilio -c emilio.config src/ | bin/warnings_in_scope -s 3
-
-.venv/bin/black:
-	@python3 -m venv .venv
-	@.venv/bin/pip3 install black || touch .venv/bin/black
-
-# Python code formatter - only runs if we're on Python 3.6 or greater
-python-black: .venv/bin/black
-	@python3 -c "import sys; exit(1 if sys.version_info < (3,6) else 0)" || \
-	       echo "Python formatter not supported on Python < 3.6; check results on a newer platform"
-	@python3 -c "import sys; exit(1 if sys.version_info >= (3,6) else 0)" || \
-		LC_ALL=C.UTF-8 LANG=C.UTF-8 .venv/bin/black --check \
-		--exclude="build/|buck-out/|dist/|_build/|\.git/|\.hg/|\.mypy_cache/|\.nox/|\.tox/|\.venv/|src/rebar/pr2relnotes.py|src/fauxton" \
-		build-aux/*.py dev/run test/javascript/run src/mango/test/*.py src/docs/src/conf.py src/docs/ext/*.py .
-
-python-black-update: .venv/bin/black
-	@python3 -c "import sys; exit(1 if sys.version_info < (3,6) else 0)" || \
-	       echo "Python formatter not supported on Python < 3.6; check results on a newer platform"
-	@python3 -c "import sys; exit(1 if sys.version_info >= (3,6) else 0)" || \
-		LC_ALL=C.UTF-8 LANG=C.UTF-8 .venv/bin/black \
-		--exclude="build/|buck-out/|dist/|_build/|\.git/|\.hg/|\.mypy_cache/|\.nox/|\.tox/|\.venv/|src/rebar/pr2relnotes.py|src/fauxton" \
-		build-aux/*.py dev/run test/javascript/run src/mango/test/*.py src/docs/src/conf.py src/docs/ext/*.py .
-
-.PHONY: elixir
-elixir: export MIX_ENV=integration
-elixir: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-elixir: elixir-init elixir-check-formatted elixir-credo devclean
-	@dev/run "$(TEST_OPTS)" -a adm:pass -n 1 \
-		--enable-erlang-views \
-		--locald-config test/elixir/test/config/test-config.ini \
-		--no-eval 'mix test --trace --exclude without_quorum_test --exclude with_quorum_test $(EXUNIT_OPTS)'
-
-.PHONY: elixir-init
-elixir-init: MIX_ENV=test
-elixir-init: config.erl
-	@mix local.rebar --force && mix local.hex --force && mix deps.get
-
-.PHONY: elixir-cluster-without-quorum
-elixir-cluster-without-quorum: export MIX_ENV=integration
-elixir-cluster-without-quorum: elixir-init elixir-check-formatted elixir-credo devclean
-	@dev/run -n 3 -q -a adm:pass \
-		--degrade-cluster 2 \
-		--no-eval 'mix test --trace --only without_quorum_test $(EXUNIT_OPTS)'
-
-.PHONY: elixir-cluster-with-quorum
-elixir-cluster-with-quorum: export MIX_ENV=integration
-elixir-cluster-with-quorum: elixir-init elixir-check-formatted elixir-credo devclean
-	@dev/run -n 3 -q -a adm:pass \
-		--degrade-cluster 1 \
-		--no-eval 'mix test --trace --only with_quorum_test $(EXUNIT_OPTS)'
-
-.PHONY: elixir-check-formatted
-elixir-check-formatted: elixir-init
-	@mix format --check-formatted
-
-# Credo is a static code analysis tool for Elixir.
-# We use it in our tests
-.PHONY: elixir-credo
-elixir-credo: elixir-init
-	@mix credo
-
-.PHONY: javascript
-# target: javascript - Run JavaScript test suites or specific ones defined by suites option
-javascript: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-javascript:
-
-	@$(MAKE) devclean
-	@mkdir -p share/www/script/test
-ifeq ($(IN_RELEASE), true)
-	@cp test/javascript/tests/lorem*.txt share/www/script/test/
-else
-	@mkdir -p src/fauxton/dist/release/test
-	@cp test/javascript/tests/lorem*.txt src/fauxton/dist/release/test/
-endif
-	@dev/run -n 1 -q --with-admin-party-please \
-            --enable-erlang-views \
-            "$(TEST_OPTS)" \
-            'test/javascript/run --suites "$(suites)" \
-            --ignore "$(ignore_js_suites)"'
-
-
-.PHONY: soak-javascript
-soak-javascript: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-soak-javascript:
-	@mkdir -p share/www/script/test
-ifeq ($(IN_RELEASE), true)
-	@cp test/javascript/tests/lorem*.txt share/www/script.test/
-else
-	@mkdir -p src/fauxton/dist/release/test
-	@cp test/javascript/tests/lorem*.txt src/fauxton/dist/release/test/
-endif
-	@rm -rf dev/lib
-	while [ $$? -eq 0 ]; do \
-		dev/run -n 1 -q --with-admin-party-please \
-				"$(TEST_OPTS)" \
-				'test/javascript/run --suites "$(suites)" \
-				--ignore "$(ignore_js_suites)"'  \
-	done
-
-.PHONY: build-report
-# target: build-report - Generate and upload a build report
-build-report:
-	build-aux/show-test-results.py --suites=10 --tests=10 > test-results.log
-	build-aux/logfile-uploader.py
-
-.PHONY: check-qs
-# target: check-qs - Run query server tests (ruby and rspec required!)
-check-qs:
-	@QS_LANG=js rspec test/view_server/query_server_spec.rb
-
-
-.PHONY: list-eunit-apps
-# target: list-eunit-apps - List EUnit target apps
-list-eunit-apps:
-	@find ./src/ -type f -name *_test.erl -o -name *_tests.erl \
-		| cut -d '/' -f 3 \
-		| sort -u
-
-
-.PHONY: list-eunit-suites
-# target: list-eunit-suites - List EUnit target test suites
-list-eunit-suites:
-	@find ./src/ -type f -name *_test.erl -o -name *_tests.erl -exec basename {} \; \
-		| cut -d '.' -f -1 \
-		| sort
-
-
-.PHONY: list-js-suites
-# target: list-js-suites - List JavaScript test suites
-list-js-suites:
-	@find ./test/javascript/tests/ -type f -name *.js -exec basename {} \; \
-		| cut -d '.' -f -1 \
-		| sort
-
-
-.PHONY: build-test
-# target: build-test - Test build script
-build-test:
-	@test/build/test-configure.sh
-
-
-.PHONY: mango-test
-# target: mango-test - Run Mango tests
-mango-test: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-mango-test: devclean all
-	@cd src/mango && \
-		python3 -m venv .venv && \
-		.venv/bin/python3 -m pip install -r requirements.txt
-	@cd src/mango && ../../dev/run "$(TEST_OPTS)" -n 1 --admin=testuser:testpass '.venv/bin/python3 -m nose --with-xunit'
-
-################################################################################
-# Developing
-################################################################################
-
-
-.PHONY: build-plt
-# target: build-plt - Build project-specific PLT
-build-plt:
-	@$(REBAR) -r build-plt $(DIALYZE_OPTS)
-
-
-.PHONY: check-plt
-# target: check-plt - Check the PLT for consistency and rebuild it if it is not up-to-date
-check-plt:
-	@$(REBAR) -r check-plt $(DIALYZE_OPTS)
-
-
-.PHONY: dialyze
-# target: dialyze - Analyze the code for discrepancies
-dialyze: .rebar
-	@$(REBAR) -r dialyze $(DIALYZE_OPTS)
-
-
-.PHONY: introspect
-# target: introspect - Check for commits difference between rebar.config and repository
-introspect:
-	@$(REBAR) -r update-deps
-	@build-aux/introspect
-
-################################################################################
-# Distributing
-################################################################################
-
-
-.PHONY: dist
-# target: dist - Make release tarball
-dist: all derived
-	@./build-aux/couchdb-build-release.sh $(COUCHDB_VERSION)
-
-	@cp -r share/www apache-couchdb-$(COUCHDB_VERSION)/share/
-	@mkdir -p apache-couchdb-$(COUCHDB_VERSION)/share/docs/html
-	@cp -r src/docs/build/html apache-couchdb-$(COUCHDB_VERSION)/share/docs/
-
-	@mkdir -p apache-couchdb-$(COUCHDB_VERSION)/share/docs/man
-	@cp src/docs/build/man/apachecouchdb.1 apache-couchdb-$(COUCHDB_VERSION)/share/docs/man/
-
-	@tar czf apache-couchdb-$(COUCHDB_VERSION)$(IN_RC).tar.gz apache-couchdb-$(COUCHDB_VERSION)
-	@echo "Done: apache-couchdb-$(COUCHDB_VERSION)$(IN_RC).tar.gz"
-
-
-.PHONY: release
-# target: release - Create an Erlang release including CouchDB!
--include install.mk
-release: all
-	@echo "Installing CouchDB into rel/couchdb/ ..."
-	@rm -rf rel/couchdb
-	@$(REBAR) generate # make full erlang release
-
-ifeq ($(with_fauxton), 1)
-	@mkdir -p rel/couchdb/share/
-	@cp -R share/www rel/couchdb/share/
-endif
-
-ifeq ($(with_docs), 1)
-ifeq ($(IN_RELEASE), true)
-	@mkdir -p rel/couchdb/share/www/docs/
-	@mkdir -p rel/couchdb/share/docs/
-	@cp -R share/docs/html/* rel/couchdb/share/www/docs/
-	@cp share/docs/man/apachecouchdb.1 rel/couchdb/share/docs/couchdb.1
-else
-	@mkdir -p rel/couchdb/share/www/docs/
-	@mkdir -p rel/couchdb/share/docs/
-	@cp -R src/docs/build/html/ rel/couchdb/share/www/docs
-	@cp src/docs/build/man/apachecouchdb.1 rel/couchdb/share/docs/couchdb.1
-endif
-endif
-
-	@echo "... done"
-	@echo
-	@echo "    You can now copy the rel/couchdb directory anywhere on your system."
-	@echo "    Start CouchDB with ./bin/couchdb from within that directory."
-	@echo
-
-.PHONY: install
-# target: install- install CouchDB :)
-install: release
-	@echo
-	@echo "Notice: There is no 'make install' command for CouchDB 2.x+."
-	@echo
-	@echo "    To install CouchDB into your system, copy the rel/couchdb"
-	@echo "    to your desired installation location. For example:"
-	@echo "    cp -r rel/couchdb /usr/local/lib"
-	@echo
-
-################################################################################
-# Cleaning
-################################################################################
-
-
-.PHONY: clean
-# target: clean - Remove build artifacts
-clean:
-	@$(REBAR) -r clean
-	@rm -rf .rebar/
-	@rm -f bin/couchjs
-	@rm -rf src/*/ebin
-	@rm -rf src/*/.rebar
-	@rm -rf src/*/priv/*.so
-	@rm -rf src/couch/priv/{couchspawnkillable,couchjs}
-	@rm -rf share/server/main.js share/server/main-coffee.js
-	@rm -rf tmp dev/data dev/lib dev/logs
-	@rm -rf src/mango/.venv
-	@rm -f src/couch/priv/couchspawnkillable
-	@rm -f src/couch/priv/couch_js/config.h
-	@rm -f dev/boot_node.beam dev/pbkdf2.pyc log/crash.log
-
-
-.PHONY: distclean
-# target: distclean - Remove build and release artifacts
-distclean: clean
-	@rm -f install.mk
-	@rm -f config.erl
-	@rm -f rel/couchdb.config
-ifneq ($(IN_RELEASE), true)
-# when we are in a release, don’t delete the
-# copied sources, generated docs, or fauxton
-	@rm -rf rel/couchdb
-	@rm -rf share/www
-	@rm -rf src/docs
-endif
-
-
-.PHONY: devclean
-# target: devclean - Remove dev cluster artifacts
-devclean:
-	@rm -rf dev/lib/*/data
-	@rm -rf dev/lib/*/etc
-
-################################################################################
-# Misc
-################################################################################
-
-
-.rebar: build-plt
-
-config.erl:
-	@echo "Apache CouchDB has not been configured."
-	@echo "Try \"./configure -h\" for help."
-	@echo
-	@false
-
-
-src/docs/build:
-ifeq ($(with_docs), 1)
-	@cd src/docs; $(MAKE)
-endif
-
-
-share/www:
-ifeq ($(with_fauxton), 1)
-	@echo "Building Fauxton"
-	@cd src/fauxton && npm install --production && ./node_modules/grunt-cli/bin/grunt couchdb
-endif
-
-
-derived:
-	@echo "COUCHDB_GIT_SHA:        $(COUCHDB_GIT_SHA)"
-	@echo "COUCHDB_VERSION:        $(COUCHDB_VERSION)"
-	@echo "COUCHDB_VERSION_SUFFIX: $(COUCHDB_VERSION_SUFFIX)"
-	@echo "DIRTY:                  $(DIRTY)"
-	@echo "IN_RC:                  $(IN_RC)"
-	@echo "IN_RELEASE:             $(IN_RELEASE)"
-	@echo "ON_TAG:                 $(ON_TAG)"
-	@echo "REL_TAG:                $(REL_TAG)"
-	@echo "SUB_VSN:                $(SUB_VSN)"
diff --git a/Makefile.win b/Makefile.win
deleted file mode 100644
index 2e0dcaa..0000000
--- a/Makefile.win
+++ /dev/null
@@ -1,456 +0,0 @@
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-
-# ***************************************************
-# WARNING! If you edit this file, also edit Makefile!
-# ***************************************************
-
-include version.mk
-
-SHELL=cmd.exe
-REBAR=bin\rebar.cmd
-MAKE=make -f Makefile.win
-# REBAR?=$(shell where rebar.cmd)
-
-# Handle the following scenarios:
-#   1. When building from a tarball, use version.mk.
-#   2. When building from a clean release tag (#.#.#), use that tag.
-#   3. When building from a clean RC tag (#.#.#-RC#), use JUST the version
-#      number inside the tarball, but use the full name for the name of the
-#      tarball itself.
-#   4. When not on a clean tag, use version.mk + git sha + dirty status.
-
-COUCHDB_GIT_SHA=$(git_sha)
-
-IN_RELEASE = $(shell if not exist .git echo true)
-
-ifeq ($(IN_RELEASE), true)
-
-# 1. Building from tarball, use version.mk.
-COUCHDB_VERSION = $(vsn_major).$(vsn_minor).$(vsn_patch)
-
-else
-
-# Gather some additional information.
-# We do it this way so we don't bake shell-isms into Makefile
-# to make it easier to port to Windows. I know, I know. -jst
-# IN_RC contains the -RCx suffix in the name if present
-IN_RC = $(shell git describe --tags --always --first-parent \
-        | grep -Eo -- '-RC[0-9]+' 2>nul)
-# ON_TAG matches *ONLY* if we are on a release or RC tag
-ON_TAG = $(shell git describe --tags --always --first-parent \
-        | grep -Eo -- '^[0-9]+\.[0-9]\.[0-9]+(-RC[0-9]+)?$$' 2>nul)
-# REL_TAG contains the #.#.# from git describe, which might be used
-REL_TAG = $(shell git describe --tags --always --first-parent \
-        | grep -Eo -- '^[0-9]+\.[0-9]\.[0-9]+' 2>nul)
-# DIRTY identifies if we're not on a commit
-DIRTY = $(shell git describe --dirty | grep -Eo -- '-dirty' 2>nul)
-# COUCHDB_GIT_SHA is our current git hash.
-COUCHDB_GIT_SHA=$(shell git rev-parse --short=7 --verify HEAD)
-
-ifeq ($(ON_TAG),)
-# 4. Not on a tag.
-COUCHDB_VERSION_SUFFIX = $(COUCHDB_GIT_SHA)$(DIRTY)
-COUCHDB_VERSION = $(vsn_major).$(vsn_minor).$(vsn_patch)-$(COUCHDB_VERSION_SUFFIX)
-else
-# 2 and 3. On a tag.
-COUCHDB_VERSION = $(REL_TAG)$(DIRTY)
-endif
-endif
-
-# needed to do text substitutions
-comma:= ,
-empty:=
-space:= $(empty) $(empty)
-
-DESTDIR=
-
-# Rebar options
-apps=
-skip_deps=folsom,meck,mochiweb,triq,proper,snappy,bcrypt,hyper
-suites=
-tests=
-
-# no sed on Windows, hard code since apps\suites\tests are empty
-EUNIT_OPTS=skip_deps=$(skip_deps)
-DIALYZE_OPTS=skip_deps=$(skip_deps)
-
-EXUNIT_OPTS=$(subst $(comma),$(space),$(tests))
-
-#ignore javascript tests
-ignore_js_suites=
-
-TEST_OPTS=-c startup_jitter=0 -c default_security=admin_local
-
-################################################################################
-# Main commands
-################################################################################
-
-
-.PHONY: all
-# target: all - Build everything
-all: couch fauxton docs
-
-
-################################################################################
-# Building
-################################################################################
-
-
-.PHONY: couch
-# target: couch - Build CouchDB core, use ERL_OPTS to provide custom compiler's options
-couch: config.erl
-	@set COUCHDB_VERSION=$(COUCHDB_VERSION) && set COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) && $(REBAR) compile $(COMPILE_OPTS)
-	@copy src\couch\priv\couchjs.exe bin
-
-
-.PHONY: docs
-# target: docs - Build documentation
-ifeq ($(IN_RELEASE), true)
-docs: share\docs\html
-else
-docs: src\docs\build
-endif
-
-.PHONY: fauxton
-# target: fauxton - Build Fauxton web UI
-fauxton: share\www
-
-
-################################################################################
-# Testing
-################################################################################
-
-
-.PHONY: check
-# target: check - Test everything
-check: all python-black
-	@$(MAKE) emilio
-	@$(MAKE) eunit
-	@$(MAKE) mango-test
-	@$(MAKE) elixir
-
-ifdef apps
-subdirs = $(apps)
-else
-subdirs=$(shell dir /b src)
-endif
-
-.PHONY: eunit
-# target: eunit - Run EUnit tests, use EUNIT_OPTS to provide custom options
-eunit: export BUILDDIR = $(shell echo %cd%)
-eunit: export ERL_AFLAGS = $(shell echo "-config rel/files/eunit.config")
-eunit: export COUCHDB_QUERY_SERVER_JAVASCRIPT = $(shell echo %cd%)/bin/couchjs $(shell echo %cd%)/share/server/main.js
-eunit: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-eunit: couch
-	@set COUCHDB_VERSION=$(COUCHDB_VERSION) && set COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) && $(REBAR) setup_eunit 2> nul
-	@cmd /c "FOR %d IN ($(subdirs)) DO set COUCHDB_VERSION=$(COUCHDB_VERSION) & set COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) & $(REBAR) -r eunit $(EUNIT_OPTS) apps=%d"
-
-.PHONY: exunit
-# target: exunit - Run ExUnit tests
-exunit: export BUILDDIR = $(shell echo %cd%)
-exunit: export MIX_ENV=test
-exunit: export ERL_LIBS = $(shell echo %cd%)\src
-exunit: export ERL_AFLAGS = -config $(shell echo %cd%)/rel/files/eunit.config
-exunit: export COUCHDB_QUERY_SERVER_JAVASCRIPT = $(shell echo %cd%)/bin/couchjs $(shell echo %cd%)/share/server/main.js
-exunit: couch elixir-init setup-eunit elixir-check-formatted elixir-credo
-	@mix test --cover --trace $(EXUNIT_OPTS)
-
-setup-eunit: export BUILDDIR = $(shell pwd)
-setup-eunit: export ERL_AFLAGS = "-config $(shell echo %cd%)/rel/files/eunit.config")
-setup-eunit:
-	@$(REBAR) setup_eunit 2> nul
-
-just-eunit: export BUILDDIR = $(shell pwd)
-just-eunit: export ERL_AFLAGS = "-config $(shell echo %cd%)/rel/files/eunit.config")
-just-eunit:
-	@$(REBAR) -r eunit $(EUNIT_OPTS)
-
-emilio:
-	@bin\emilio -c emilio.config src\ | python.exe bin\warnings_in_scope -s 3
-
-.venv/bin/black:
-	@python.exe -m venv .venv
-	@.venv\Scripts\pip3.exe install black || copy /b .venv\Scripts\black.exe +,,
-
-# Python code formatter - only runs if we're on Python 3.6 or greater
-python-black: .venv/bin/black
-	@python.exe -c "import sys; exit(1 if sys.version_info < (3,6) else 0)" || \
-		echo 'Python formatter not supported on Python < 3.6; check results on a newer platform'
-	@python.exe -c "import sys; exit(1 if sys.version_info >= (3,6) else 0)" || \
-		.venv\Scripts\black.exe --check \
-		--exclude="build/|buck-out/|dist/|_build/|\.git/|\.hg/|\.mypy_cache/|\.nox/|\.tox/|\.venv/|src/rebar/pr2relnotes.py|src/fauxton" \
-		build-aux dev\run test\javascript\run src\mango\test src\docs\src\conf.py src\docs\ext .
-
-python-black-update: .venv/bin/black
-	@python.exe -c "import sys; exit(1 if sys.version_info < (3,6) else 0)" || \
-		echo 'Python formatter not supported on Python < 3.6; check results on a newer platform'
-	@python.exe -c "import sys; exit(1 if sys.version_info >= (3,6) else 0)" || \
-		.venv\Scripts\black.exe \
-		--exclude="build/|buck-out/|dist/|_build/|\.git/|\.hg/|\.mypy_cache/|\.nox/|\.tox/|\.venv/|src/rebar/pr2relnotes.py|src/fauxton" \
-		build-aux dev\run test\javascript\run src\mango\test src\docs\src\conf.py src\docs\ext .
-
-.PHONY: elixir
-elixir: export MIX_ENV=integration
-elixir: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-elixir: elixir-init elixir-check-formatted elixir-credo devclean
-	@dev\run $(TEST_OPTS) -a adm:pass -n 1 --enable-erlang-views \
-      --locald-config test/elixir/test/config/test-config.ini \
-      --no-eval 'mix test --trace --exclude without_quorum_test --exclude with_quorum_test $(EXUNIT_OPTS)'
-
-.PHONY: elixir-init
-elixir-init: MIX_ENV=test
-elixir-init: config.erl
-	@mix local.rebar --force && mix local.hex --force && mix deps.get
-
-.PHONY: elixir-cluster-without-quorum
-elixir-cluster-without-quorum: export MIX_ENV=integration
-elixir-cluster-without-quorum: elixir-init elixir-check-formatted elixir-credo devclean
-	@dev\run -n 3 -q -a adm:pass \
-	    --degrade-cluster 2 \
-        --no-eval 'mix test --trace --only without_quorum_test $(EXUNIT_OPTS)'
-
-.PHONY: elixir-cluster-with-quorum
-elixir-cluster-with-quorum: export MIX_ENV=integration
-elixir-cluster-with-quorum: elixir-init elixir-check-formatted elixir-credo devclean
-	@dev\run -n 3 -q -a adm:pass \
-	    --degrade-cluster 1 \
-		--no-eval 'mix test --trace --only with_quorum_test $(EXUNIT_OPTS)'
-
-.PHONY: elixir-check-formatted
-elixir-check-formatted: elixir-init
-	@mix format --check-formatted
-
-# Credo is a static code analysis tool for Elixir.
-# We use it in our tests
-.PHONY: elixir-credo
-elixir-credo: elixir-init
-	@mix credo
-
-
-.PHONY: javascript
-# target: javascript - Run JavaScript test suites or specific ones defined by suites option
-javascript: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-javascript:
-	@$(MAKE) devclean
-	-@mkdir share\www\script\test
-ifeq ($(IN_RELEASE), true)
-	@copy test\javascript\tests\lorem*.txt share\www\script\test
-else
-	-@mkdir src\fauxton\dist\release\test
-	@copy test\javascript\tests\lorem*.txt src\fauxton\dist\release\test
-endif
-	@python dev\run -n 1 -q --with-admin-party-please \
-		    --enable-erlang-views \
-            $(TEST_OPTS) \
-            'python test\javascript\run --suites "$(suites)" \
-            --ignore "$(ignore_js_suites)"'
-
-
-.PHONY: check-qs
-# target: check-qs - Run query server tests (ruby and rspec required!)
-check-qs:
-	@QS_LANG=js rspec test\view_server\query_server_spec.rb
-
-
-.PHONY: mango-test
-mango-test: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1
-mango-test: devclean all
-	@cd src\mango && \
-		python.exe -m venv .venv && \
-		.venv\Scripts\pip.exe install -r requirements.txt
-	@cd src\mango && .venv\Scripts\python.exe ..\..\dev\run -n 1 --admin=testuser:testpass .venv\Scripts\nosetests
-
-
-################################################################################
-# Developing
-################################################################################
-
-
-.PHONY: build-plt
-# target: build-plt - Build project-specific PLT
-build-plt:
-	@$(REBAR) -r build-plt $(DIALYZE_OPTS)
-
-
-.PHONY: check-plt
-# target: check-plt - Check the PLT for consistency and rebuild it if it is not up-to-date
-check-plt:
-	@$(REBAR) -r check-plt $(DIALYZE_OPTS)
-
-
-.PHONY: dialyze
-# target: dialyze - Analyze the code for discrepancies
-dialyze: .rebar
-	@$(REBAR) -r dialyze $(DIALYZE_OPTS)
-
-
-.PHONY: introspect
-# target: introspect - Check for commits difference between rebar.config and repository
-introspect:
-	@$(REBAR) -r update-deps
-	@escript build-aux\introspect
-
-
-################################################################################
-# Distributing
-################################################################################
-
-
-.PHONY: dist
-# target: dist - Make release tarball
-dist: all derived
-	@.\build-aux\couchdb-build-release.sh $(COUCHDB_VERSION)
-
-	@copy -r share\www apache-couchdb-$(COUCHDB_VERSION)\share
-	@mkdir apache-couchdb-$(COUCHDB_VERSION)\share\docs\html
-	@copy -r src\docs\build\html apache-couchdb-$(COUCHDB_VERSION)\share\docs
-
-	@mkdir apache-couchdb-$(COUCHDB_VERSION)\share\docs\man
-	@copy src\docs\build\man\apachecouchdb.1 apache-couchdb-$(COUCHDB_VERSION)\share\docs\man
-
-	@tar czf apache-couchdb-$(COUCHDB_VERSION).tar.gz apache-couchdb-$(COUCHDB_VERSION)
-	@echo 'Done: apache-couchdb-$(COUCHDB_VERSION).tar.gz'
-
-
-.PHONY: release
-# target: release - Create an Erlang release including CouchDB!
--include install.mk
-release: all
-	@echo 'Installing CouchDB into rel\couchdb\ ...'
-	-@rmdir /s/q rel\couchdb
-	@$(REBAR) generate
-	@copy src\couch\priv\couchjs.exe rel\couchdb\bin
-
-ifeq ($(with_fauxton), 1)
-	-@mkdir rel\couchdb\share
-	-@xcopy share\www rel\couchdb\share\www /E/I
-endif
-
-ifeq ($(with_docs), 1)
-	-@mkdir rel\couchdb\share\www\docs
-	-@mkdir rel\couchdb\share\docs
-ifeq ($(IN_RELEASE), true)
-	@xcopy share\docs\html rel\couchdb\share\www\docs /E /I
-	@copy share\docs\man\apachecouchdb.1 rel\couchdb\share\docs\couchdb.1
-else
-	@xcopy src\docs\build\html rel\couchdb\share\www\docs /E /I
-	@copy src\docs\build\man\apachecouchdb.1 rel\couchdb\share\docs\couchdb.1
-endif
-endif
-
-	@echo ... done
-	@echo .
-	@echo     You can now copy the rel\couchdb directory anywhere on your system.
-	@echo     Start CouchDB with .\bin\couchdb.cmd from within that directory.
-	@echo .
-
-.PHONY: install
-# target: install- install CouchDB :)
-install: release
-	@echo .
-	@echo Notice: There is no 'make install' command for CouchDB 2.x+.
-	@echo .
-	@echo     To install CouchDB into your system, copy the rel\couchdb
-	@echo     to your desired installation location. For example:
-	@echo     xcopy /E rel\couchdb C:\CouchDB\
-	@echo .
-
-################################################################################
-# Cleaning
-################################################################################
-
-
-.PHONY: clean
-# target: clean - Remove build artifacts
-clean:
-	@$(REBAR) -r clean
-	-@rmdir /s/q .rebar
-	-@del /f/q bin\couchjs.exe
-	-@rmdir /s/q src\*\ebin
-	-@rmdir /s/q src\*\.rebar
-	-@del /f/q/s src\*.dll
-	-@del /f/q src\couch\priv\*.exe
-	-@del /f/q share\server\main.js share\server\main-coffee.js
-	-@rmdir /s/q tmp
-	-@rmdir /s/q dev\data
-	-@rmdir /s/q dev\lib
-	-@rmdir /s/q dev\logs
-	-@rmdir /s/q src\mango\.venv
-	-@del /f/q src\couch\priv\couch_js\config.h
-	-@del /f/q dev\boot_node.beam dev\pbkdf2.pyc log\crash.log
-
-
-.PHONY: distclean
-# target: distclean - Remove build and release artifacts
-distclean: clean
-	-@del install.mk
-	-@del config.erl
-	-@del rel\couchdb.config
-ifneq ($(IN_RELEASE), true)
-# when we are in a release, don’t delete the
-# copied sources, generated docs, or fauxton
-	-@rmdir /s/q rel\couchdb
-	-@rmdir /s/q share\www
-	-@rmdir /s/q src\docs
-endif
-
-
-.PHONY: devclean
-# target: devclean - Remove dev cluster artifacts
-devclean:
-	-@rmdir /s/q dev\lib\node1\data
-	-@rmdir /s/q dev\lib\node2\data
-	-@rmdir /s/q dev\lib\node3\data
-	-@rmdir /s/q dev\lib\node1\etc
-	-@rmdir /s/q dev\lib\node2\etc
-	-@rmdir /s/q dev\lib\node3\etc
-
-
-################################################################################
-# Misc
-################################################################################
-
-
-.rebar: build-plt
-
-config.erl:
-	@echo Apache CouchDB has not been configured.
-	@echo Try "powershell -ExecutionPolicy Bypass .\configure.ps1 -?" for help.
-	@echo You probably want "powershell -ExecutionPolicy Bypass .\configure.ps1 -WithCurl".
-	@echo.
-	@false
-
-
-src\docs\build:
-	@echo 'Building docs...'
-ifeq ($(with_docs), 1)
-	@cd src\docs && make.bat html && make.bat man
-endif
-
-
-share\www:
-ifeq ($(with_fauxton), 1)
-	@echo 'Building Fauxton'
-	@cd src\fauxton && npm install --production && .\node_modules\.bin\grunt couchdb
-endif
-
-derived:
-	@echo "COUCHDB_GIT_SHA:        $(COUCHDB_GIT_SHA)"
-	@echo "COUCHDB_VERSION:        $(COUCHDB_VERSION)"
-	@echo "COUCHDB_VERSION_SUFFIX: $(COUCHDB_VERSION_SUFFIX)"
-	@echo "DIRTY:                  $(DIRTY)"
-	@echo "IN_RC:                  $(IN_RC)"
-	@echo "IN_RELEASE:             $(IN_RELEASE)"
-	@echo "ON_TAG:                 $(ON_TAG)"
-	@echo "REL_TAG:                $(REL_TAG)"
-	@echo "SUB_VSN:                $(SUB_VSN)"
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index e37a990..0000000
--- a/NOTICE
+++ /dev/null
@@ -1,195 +0,0 @@
-Apache CouchDB
-Copyright 2009-2020 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-This product also includes the following third-party components:
-
-* jQuery (http://jquery.org/)		
-		
-   Copyright 2012 jQuery Foundation and other contributors
-
- * json2.js (http://www.json.org/)
-
-   Public domain
-
- * MochiWeb (http://code.google.com/p/mochiweb/)
-
-   Copyright 2007, Mochi Media Coporation
-
- * ibrowse (http://github.com/cmullaparthi/ibrowse/tree/master)
-
-   Copyright 2005-2012, Chandrashekhar Mullaparthi
-
- * mimeparse.js (http://code.google.com/p/mimeparse/)
-
-   Copyright 2009, Chris Anderson <jc...@apache.org>
-
- * base64.js
-
-   Copyright 1999, Masanao Izumo <iz...@onicos.co.jp>
-
- * jspec.js (http://visionmedia.github.com/jspec/)
-
-  Copyright 2010 TJ Holowaychuk <tj...@vision-media.ca>
-
- * yajl (http://lloyd.github.com/yajl/)
-
-  Copyright 2010, Lloyd Hilaiel
-
- * snappy (http://code.google.com/p/snappy/)
-
-  Copyright 2005, Google Inc.
-
- * snappy-erlang-nif (https://github.com/fdmanana/snappy-erlang-nif)
-
-  Copyright 2011, Filipe David Manana <fd...@apache.org>
-
- * CoffeeScript (http://coffeescript.org/)
-
-  Copyright 2011, Jeremy Ashkenas
-
- * Sphinx (http://sphinx-doc.org/)
- 
-   Copyright 2011, the Sphinx team
-
- * Sizzle (http://sizzlejs.com/)
- 
-   Copyright 2010, The Dojo Foundation
- 
- * Underscore.js 1.4.2 (http://underscorejs.org)
-
-   Copyright 2012, Jeremy Ashkenas
-
- * backbone.js (http://backbonejs.org/)
-
-  Copyright 2012, Jeremy Ashkenas, DocumentCloud Inc.
-
- * Bootstrap (http://twitter.github.com/bootstrap/)
-
-  Copyright 2012, Twitter, Inc.
-
- * d3.js (http://d3js.org)
-
-  Copyright 2012, Michael Bostock
-
- * Lodash (http://lodash.com/)
-
-  Copyright 2012, John-David Dalton <http://allyoucanleet.com/>
-
- * nvd3.js (http://nvd3.org/)
-
-  Copyright 2012, Novus Partners, Inc.
-
- * backbone.layoutmanager.js (https://github.com/tbranyen/backbone.layoutmanager)
-
-  Copyright 2012, Tim Branyen (@tbranyen)
-
- * prettify.js (http://code.google.com/p/google-code-prettify/)
-
-  Copyright 2011, Mike Samuel et al
-
- * PouchDB (https://github.com/daleharvey/pouchdb)
-
-  Copyright 2012, Dale Harvey et al
-
- * require.js (https://github.com/jrburke/requirejs)
-
-   Copyright (c) 2010-2011, The Dojo Foundation
-
- * mocha.js (https://github.com/visionmedia/mocha)
-  
-   Copyright (c) 2011-2013 TJ Holowaychuk <tj...@vision-media.ca>
-
- * chaijs https://github.com/chaijs
-   
-   Copyright (c) 2011-2013 Jake Luer jake@alogicalparadox.com
-
- * sinon-chai
-
-   Copyright © 2012–2013 Domenic Denicola <do...@domenicdenicola.com>
- 
- * spin.js
-
-   Copyright (c) 2011 Felix Gnass [fgnass at neteye dot de]
- 
- * font-awesome http://fortawesome.github.io/Font-Awesome/
-
-   Copyright (c) 2013 Dave Gandy
-
- * sandbox.js https://github.com/KlausTrainer/sandbox.js
-
-   (c) 2013 Klaus Trainer
-
- * ace editor https://github.com/ajaxorg/ace
-
-   Copyright (c) 2010, Ajax.org B.V.
-
- * src/fauxton/asserts/js/plugins/cloudant.pagingcollection.js
-
-   Copyright (c) 2014, Cloudant http://cloudant.com
-
- * velocity.js (https://github.com/julianshapiro/velocity)
-
-   Copyright (c) 2014 Julian Shapiro
-
-* is_base_dir function in eunit_plugin.erl (https://github.com/ChicagoBoss/ChicagoBoss/blob/master/skel/priv/rebar/boss_plugin.erl)
-
-   Copyright (c) 2009-2011 Evan Miller
-
-* ?assertNotMatch in couch_eunit.hrl (https://github.com/richcarl/eunit/blob/master/include/eunit.hrl#L200-L219)
-
-   Copyright (C) 2004-2006 Mickaël Rémond, Richard Carlsson
-
-* src/fauxton/test/nightwatch_tests/custom-commands/waitForAttribute.js
-
-   Copyright (c) 2014 Dave Koo
-
-* moment.js
-
-   Copyright (c) 2011-2014 Tim Wood, Iskren Chernev, moment.js contributors
-
-* React.js
-
-  Copyright (c) 2013-2017, Facebook, Inc.
-
-* Flux.js
-
-  Copyright (c) 2014, Facebook, Inc. All rights reserved.
-
-* es5-shim.js
-
-  Copyright (C) 2009-2014 Kristopher Michael Kowal and contributors
-
-* CSS.escape (https://github.com/mathiasbynens/CSS.escape/)
-
-  Copyright Mathias Bynens
-
-* Papaparse.js
-
-  Copyright (c) 2015 Matthew Holt
-
-* react-bootstrap.js
-
-  Copyright (c) 2014 Stephen J. Collings, Matthew Honnibal, Pieter Vanderwerff
-
-* velocity-react
-
-  Copyright (c) 2015 Twitter, Inc.
-
-* esprima.js (https://github.com/jquery/esprima)
-
-  Copyright JS Foundation and other contributors, https://js.foundation/
-
-* escodegen.js (https://github.com/estools/escodegen)
-
-  Copyright (C) 2012 Yusuke Suzuki (twitter: @Constellation) and other contributors.
-
-* hyper
-
-  Copyright (c) 2014 Game Analytics ApS
-
-* recon
-
-  Copyright (c) 2012-2017, Frédéric Trottier-Hébert
diff --git a/README-DEV.rst b/README-DEV.rst
deleted file mode 100644
index f4031b7..0000000
--- a/README-DEV.rst
+++ /dev/null
@@ -1,229 +0,0 @@
-Apache CouchDB DEVELOPERS
-=========================
-
-Before you start here, read `INSTALL.Unix` (or `INSTALL.Windows`) and
-follow the setup instructions including the installation of all the
-listed dependencies for your system.
-
-Only follow these instructions if you are building from a source checkout.
-
-If you're unsure what this means, ignore this document.
-
-Dependencies
-------------
-
-You need the following to run tests:
-
-* `Python 3               <https://www.python.org/>`_
-
-You need the following optionally to build documentation:
-
-* `Sphinx                 <http://sphinx.pocoo.org/>`_
-* `GNU help2man           <http://www.gnu.org/software/help2man/>`_
-* `GnuPG                  <http://www.gnupg.org/>`_
-
-You need the following optionally to build releases:
-
-* `md5sum                 <http://www.microbrew.org/tools/md5sha1sum/>`_
-* `sha1sum                <http://www.microbrew.org/tools/md5sha1sum/>`_
-
-You need the following optionally to build Fauxton:
-
-* `nodejs                 <http://nodejs.org/>`_
-* `npm                    <https://www.npmjs.com/>`_               
-
-You will need these optional dependencies installed if:
-
-* You are working on the documentation, or
-* You are preparing a distribution archive
-
-However, you do not need them if:
-
-* You are building from a distribution archive, or
-* You don't care about building the documentation
-
-If you intend to build Fauxton, you will also need to install its
-dependencies. After running ``./configure`` to download all of the
-dependent repositories, you can read about required dependencies in
-`src/fauxton/readme.md`. Typically, installing npm and node.js are
-sufficient to enable a Fauxton build.
-
-Here is a list of *optional* dependencies for various operating systems.
-Installation will be easiest, when you install them all.
-
-Debian-based (inc. Ubuntu) Systems
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-::
-
-    sudo apt-get install help2man python-sphinx gnupg nodejs npm \
-         python3 python3-venv
-
-Gentoo-based Systems
-~~~~~~~~~~~~~~~~~~~~
-
-::
-
-    sudo emerge gnupg coreutils pkgconfig help2man sphinx python
-    sudo pip install hypothesis requests nose
-
-Centos 7 and RHEL 7
-~~~~~~~~~~~~~~~~~~~
-
-::
-
-    sudo yum install help2man python-sphinx python-docutils \
-        python-pygments gnupg nodejs npm
-
-
-Mac OS X
-~~~~~~~~
-
-Install `Homebrew <https://github.com/mxcl/homebrew>`_, if you do not have 
-it already.
-
-Unless you want to install the optional dependencies, skip to the next section.
-
-Install what else we can with Homebrew::
-
-    brew install help2man gnupg md5sha1sum node python
-
-If you don't already have pip installed, install it::
-
-    sudo easy_install pip
-
-Now, install the required Python packages::
-
-    sudo pip install sphinx docutils pygments sphinx_rtd_theme
-
-FreeBSD
-~~~~~~~
-
-::
-
-    pkg install help2man gnupg py27-sphinx node
-    pip install nose requests hypothesis
-
-Windows
-~~~~~~~
-
-Follow the instructions in `INSTALL.Windows` and build all components from
-source, using the same Visual C++ compiler and runtime.
-
-Configuring
------------
-
-Configure the source by running::
-
-    ./configure
-
-If you intend to run the test suites::
-
-    ./configure -c
-
-If you don't want to build Fauxton or documentation specify
-``--disable-fauxton`` and/or ``--disable-docs`` arguments for ``configure`` to
-ignore their build and avoid any issues with their dependencies.
-
-See ``./configure --help`` for more information.
-
-Testing
--------
-
-To run all the tests use run::
-
-    make check
-
-You can also run each test suite individually via ``eunit`` and ``javascript``
-targets::
-
-    make eunit
-    make javascript
-
-If you need to run specific Erlang tests, you can pass special "options"
-to make targets::
-
-    # Run tests only for couch and chttpd apps
-    make eunit apps=couch,chttpd
-
-    # Run only tests from couch_btree_tests suite
-    make eunit apps=couch suites=couch_btree
-
-    # Run only only specific tests
-    make eunit tests=btree_open_test,reductions_test
-
-    # Ignore tests for specified apps
-    make eunit skip_deps=couch_log,couch_epi
-
-The ``apps``, ``suites``, ``tests`` and ``skip_deps`` could be combined in any 
-way. These are mimics to ``rebar eunit`` arguments. If you're not satisfied by 
-these, you can use EUNIT_OPT environment variable to specify exact `rebar eunit`
-options::
-
-    make eunit EUNIT_OPTS="apps=couch,chttpd"
-
-JavaScript tests accepts only `suites` option, but in the same way::
-
-    # Run all JavaScript tests
-    make javascript
-
-    # Run only basic and design_options tests
-    make javascript suites="basic design_options"
-
-    # Ignore specific test suites via command line
-    make javascript ignore_js_suites="all_docs bulk_docs"
-
-    # Ignore specific test suites in makefile
-    ignore_js_suites=all_docs,bulk_docs
-
-Note that tests on the command line are delimited here by whitespace,
-not by comma.You can get list of all possible test targets with the
-following command::
-
-    make list-js-suites
-
-Code analyzer could be run by::
-
-    make dialyze
-
-If you need to analyze only specific apps, you can specify them in familiar way
-::
-
-    make dialyze apps=couch,couch_epi
-
-See ``make help`` for more info and useful commands.
-
-Please report any problems to the developer's mailing list.
-
-Releasing
----------
-
-The release procedure is documented here::
-
-    https://cwiki.apache.org/confluence/display/COUCHDB/Release+Procedure
-
-Unix-like Systems
-~~~~~~~~~~~~~~~~~
-
-A release tarball can be built by running::
-
-    make dist
-
-An Erlang CouchDB release includes the full Erlang Run Time System and
-all dependent applications necessary to run CouchDB, standalone. The
-release created is completely relocatable on the file system, and is
-the recommended way to distribute binaries of CouchDB. A release can be
-built by running::
-
-    make release
-
-The release can then be found in the rel/couchdb directory.
-
-Microsoft Windows
-~~~~~~~~~~~~~~~~~
-
-The release tarball and Erlang CouchDB release commands work on
-Microsoft Windows the same as they do on Unix-like systems. To create
-a full installer, the separate couchdb-glazier repository is required.
-Full instructions are available in that repository's README file.
-
diff --git a/README.rst b/README.rst
index c527913..29e7acd 100644
--- a/README.rst
+++ b/README.rst
@@ -1,112 +1,4 @@
 Apache CouchDB README
 =====================
 
-+-----+
-| |1| |
-+-----+
-
-.. |1| image:: https://ci-couchdb.apache.org/job/jenkins-cm1/job/FullPlatformMatrix/job/master/badge/icon?subject=master%20build
-    :target: https://ci-couchdb.apache.org/blue/organizations/jenkins/jenkins-cm1%2FFullPlatformMatrix/activity?branch=master
-
-Installation
-------------
-
-For a high-level guide to Unix-like systems, inc. Mac OS X and Ubuntu, see:
-
-    INSTALL.Unix
-
-For a high-level guide to Microsoft Windows, see:
-
-    INSTALL.Windows
-
-Follow the proper instructions to get CouchDB installed on your system.
-
-If you're having problems, skip to the next section.
-
-Documentation
--------------
-
-We have documentation:
-
-    http://docs.couchdb.org/
-
-It includes a changelog:
-
-    http://docs.couchdb.org/en/latest/whatsnew/
-
-For troubleshooting or cryptic error messages, see:
-
-    http://docs.couchdb.org/en/latest/install/troubleshooting.html
-
-For general help, see:
-
-     http://couchdb.apache.org/#mailing-list
-     
-We also have an IRC channel:
-
-    http://webchat.freenode.net/?channels=couchdb
-
-The mailing lists provide a wealth of support and knowledge for you to tap into.
-Feel free to drop by with your questions or discussion. See the official CouchDB
-website for more information about our community resources.
-
-Verifying your Installation
----------------------------
-
-Run a basic test suite for CouchDB by browsing here:
-
-    http://127.0.0.1:5984/_utils/#verifyinstall
-
-Getting started with developing
--------------------------------
-
-For more detail, read the README-DEV.rst_ file in this directory.
-
-.. _README-DEV.rst: https://github.com/apache/couchdb/blob/master/README-DEV.rst
-
-Basically you just have to install the needed dependencies which are
-documented in the install docs and then run ``./configure && make``.
-
-You don't need to run ``make install`` after compiling, just use
-``./dev/run`` to spin up three nodes. You can add haproxy as a caching
-layer in front of this cluster by running ``./dev/run --with-haproxy
---haproxy=/path/to/haproxy`` . You will now have a local cluster
-listening on port 5984.
-
-For Fauxton developers fixing the admin-party does not work via the button in
-Fauxton. If you run ``./dev/run``, an admin user ``root`` with a random password
-is generated (see the output of the script). If you want to set an admin user, 
-start with the admin flag, e.g. ``./dev/run --admin=username:password``. If you 
-want to have an admin-party, run ``./dev/run --with-admin-party-please``. To see
-all available options, please check ``./dev/run --help``.
-
-Contributing to CouchDB
------------------------
-
-You can learn more about our contributing process here:
-
-    https://github.com/apache/couchdb/blob/master/CONTRIBUTING.md
-
-Cryptographic Software Notice
------------------------------
-
-This distribution includes cryptographic software. The country in which you
-currently reside may have restrictions on the import, possession, use, and/or
-re-export to another country, of encryption software. BEFORE using any
-encryption software, please check your country's laws, regulations and policies
-concerning the import, possession, or use, and re-export of encryption software,
-to see if this is permitted. See <http://www.wassenaar.org/> for more
-information.
-
-The U.S. Government Department of Commerce, Bureau of Industry and Security
-(BIS), has classified this software as Export Commodity Control Number (ECCN)
-5D002.C.1, which includes information security software using or performing
-cryptographic functions with asymmetric algorithms. The form and manner of this
-Apache Software Foundation distribution makes it eligible for export under the
-License Exception ENC Technology Software Unrestricted (TSU) exception (see the
-BIS Export Administration Regulations, Section 740.13) for both object code and
-source code.
-
-The following provides more details on the included cryptographic software:
-
-CouchDB includes a HTTP client (ibrowse) with SSL functionality.
+You are on the wrong branch. You want the `main` branch instead.
diff --git a/bin/erlang-version.escript b/bin/erlang-version.escript
deleted file mode 100644
index 66aae1c..0000000
--- a/bin/erlang-version.escript
+++ /dev/null
@@ -1,3 +0,0 @@
-
-main(_) ->
-  io:format("~s~n", [erlang:system_info(otp_release)]).
diff --git a/bin/warnings_in_scope b/bin/warnings_in_scope
deleted file mode 100755
index 2a85421..0000000
--- a/bin/warnings_in_scope
+++ /dev/null
@@ -1,125 +0,0 @@
-#!/usr/bin/env python3
-import os
-import subprocess
-from pathlib import Path
-import optparse
-import sys
-import re
-
-def run(command, cwd=None):
-    try:
-        return subprocess.Popen(
-            command, shell=True, cwd=cwd,
-            stdout=subprocess.PIPE,
-            stderr=subprocess.PIPE)
-    except OSError as err:
-        raise OSError("Error in command '{0}': {1}".format(command, err))
-
-def parse_location(line):
-    # take substring between @@
-    # take second part of it
-    location = line.split(b'@@')[1].strip().split(b' ')[1]
-    tokens = location.split(b',')
-    if len(tokens) == 1:
-        return (int(tokens[0][1:]), 1)
-    elif len(tokens) == 2:
-        return (int(tokens[0][1:]), int(tokens[1]))
-
-def changed_files(directory, scope):
-    result = {}
-    proc = run('git diff --no-prefix --unified={0}'.format(scope), cwd=str(directory))
-    file_path = None
-    for line in iter(proc.stdout.readline, b''):
-        if line.startswith(b'diff --git '):
-            # this would be problematic if directory has space in the name
-            file_name = line.split(b' ')[3].strip()
-            file_path = str(directory.joinpath(str(file_name, 'utf-8')))
-            result[file_path] = set()
-            continue
-        if line.startswith(b'@@'):
-            start_pos, number_of_lines = parse_location(line)
-            for line_number in range(start_pos, start_pos + number_of_lines):
-                result[file_path].add(line_number)
-    return result
-
-def print_changed(file_name, line_number):
-    print('{0}:{1}'.format(str(file_name), str(line_number)))
-
-def changes(dirs, scope):
-    result = {}
-    for directory in dirs:
-        result.update(changed_files(directory, scope))
-    return result
-
-def repositories(root):
-    for directory in Path(root).rglob('.git'):
-        if not directory.is_dir():
-            continue
-        yield directory.parent
-
-def setup_argparse():
-    parser = optparse.OptionParser(description="Filter output to remove unrelated warning")
-    parser.add_option(
-        "-r",
-        "--regexp",
-        dest="regexp",
-        default='(?P<file_name>[^:]+):(?P<line>\d+).*',
-        help="Regexp used to extract file_name and line number",
-    )
-    parser.add_option(
-        "-s",
-        "--scope",
-        dest="scope",
-        default=0,
-        help="Number of lines surrounding the change we consider relevant",
-    )
-    parser.add_option(
-        "-p",
-        "--print-only",
-        action="store_true",
-        dest="print_only",
-        default=False,
-        help="Print changed lines only",
-    )
-    return parser.parse_args()
-
-def filter_stdin(regexp, changes):
-    any_matches = False
-    for line in iter(sys.stdin.readline, ''):
-        matches = re.match(regexp, line)
-        if matches:
-            file_name = matches.group('file_name')
-            line_number = int(matches.group('line'))
-            if file_name in changes and line_number in changes[file_name]:
-                print(line, end='')
-                any_matches = True
-    return any_matches
-
-def validate_regexp(regexp):
-    index = regexp.groupindex
-    if 'file_name' in index and 'line' in index:
-        return True
-    else:
-        raise TypeError("Regexp must define following groups:\n  - file_name\n  - line")
-
-def main():
-    opts, args = setup_argparse()
-    if opts.print_only:
-        for file_name, changed_lines in changes(repositories('.'), opts.scope).items():
-            for line_number in changed_lines:
-                print_changed(file_name, line_number)
-        return 0
-    else:
-        regexp = re.compile(opts.regexp)
-        validate_regexp(regexp)
-        if filter_stdin(regexp, changes(repositories('.'), opts.scope)):
-            return 1
-        else:
-            return 0
-
-if __name__ == "__main__":
-    try:
-        sys.exit(main())
-    except KeyboardInterrupt:
-        pass
-
diff --git a/build-aux/Jenkinsfile.full b/build-aux/Jenkinsfile.full
deleted file mode 100644
index d7a7657..0000000
--- a/build-aux/Jenkinsfile.full
+++ /dev/null
@@ -1,810 +0,0 @@
-#!groovy
-//
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may not
-// use this file except in compliance with the License. You may obtain a copy of
-// the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations under
-// the License.
-
-build_and_test = '''
-mkdir -p ${COUCHDB_IO_LOG_DIR} ${platform}
-cd ${platform}
-rm -rf build
-mkdir build
-cd build
-tar -xf ${WORKSPACE}/apache-couchdb-*.tar.gz
-cd apache-couchdb-*
-./configure --with-curl --spidermonkey-version ${sm_ver}
-make check || (make build-report && false)
-'''
-
-make_packages = '''
-cd ${platform}
-git clone https://github.com/apache/couchdb-pkg
-rm -rf couchdb
-mkdir couchdb
-cp ${WORKSPACE}/apache-couchdb-*.tar.gz couchdb
-tar -xf ${WORKSPACE}/apache-couchdb-*.tar.gz -C couchdb
-cd couchdb-pkg
-make
-'''
-
-cleanup_and_save = '''
-rm -rf ${WORKSPACE}/pkgs/${platform}
-mkdir -p ${WORKSPACE}/pkgs/${platform}
-mv ${WORKSPACE}/${platform}/rpmbuild/RPMS/$(arch)/*rpm ${WORKSPACE}/pkgs/${platform} || true
-mv ${WORKSPACE}/${platform}/couchdb/*.deb ${WORKSPACE}/pkgs/${platform} || true
-'''
-
-update_qemu = '''
-docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
-'''
-
-pipeline {
-
-  // no top-level agent; agents must be declared for each stage
-  agent none
-
-  environment {
-    COUCHAUTH = credentials('couchdb_vm2_couchdb')
-    recipient = 'notifications@couchdb.apache.org'
-    COUCHDB_IO_LOG_DIR = '/tmp/couchjslogs'
-    // Following fix an issue with git <= 2.6.5 where no committer
-    // name or email are present for reflog, required for git clone
-    GIT_COMMITTER_NAME = 'Jenkins User'
-    GIT_COMMITTER_EMAIL = 'couchdb@apache.org'
-    // https://github.com/jenkins-infra/jenkins.io/blob/master/Jenkinsfile#64
-    // We need the jenkins user mapped inside of the image
-    // npm config cache below deals with /home/jenkins not mapping correctly
-    // inside the image
-    DOCKER_ARGS = '-e npm_config_cache=npm-cache -e HOME=. -v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group'
-  }
-
-  options {
-    buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '10'))
-    // This fails the build immediately if any parallel step fails
-    parallelsAlwaysFailFast()
-    preserveStashes(buildCount: 10)
-    timeout(time: 3, unit: 'HOURS')
-    timestamps()
-  }
-
-  stages {
-    stage('Build Release Tarball') {
-      agent {
-        docker {
-          label 'docker'
-          image 'couchdbdev/debian-stretch-erlang-20.3.8.25-1:latest'
-          args "${DOCKER_ARGS}"
-          alwaysPull true
-        }
-      }
-      options {
-        timeout(time: 15, unit: "MINUTES")
-      }
-      steps {
-        sh '''
-          set
-          rm -rf apache-couchdb-*
-          ./configure --with-curl
-          make dist
-          chmod -R a+w * .
-        '''
-      }
-      post {
-        success {
-          stash includes: 'apache-couchdb-*.tar.gz', name: 'tarball'
-          archiveArtifacts artifacts: 'apache-couchdb-*.tar.gz', fingerprint: true
-        }
-        cleanup {
-          // UGH see https://issues.jenkins-ci.org/browse/JENKINS-41894
-          sh 'rm -rf ${WORKSPACE}/*'
-        }
-      }
-    } // stage Build Release Tarball
-
-    // TODO Rework once Improved Docker Pipeline Engine is released
-    // https://issues.jenkins-ci.org/browse/JENKINS-47962
-    // https://issues.jenkins-ci.org/browse/JENKINS-48050
-
-    stage('Test and Package') {
-
-      options {
-        skipDefaultCheckout()
-        timeout(time: 90, unit: "MINUTES")
-      }
-
-      parallel {
-
-        stage('FreeBSD') {
-          agent {
-            label 'freebsd'
-          }
-          steps {
-            // deleteDir is OK here because we're not inside of a Docker container!
-            deleteDir()
-            unstash 'tarball'
-            withEnv(['HOME='+pwd()]) {
-              sh '''
-                mkdir -p $COUCHDB_IO_LOG_DIR
-
-                # Build CouchDB from tarball & test
-                mkdir build
-                cd build
-                tar -xf $WORKSPACE/apache-couchdb-*.tar.gz
-                cd apache-couchdb-*
-                ./configure --with-curl
-                gmake check || (build-aux/logfile-uploader.py && false)
-
-                # No package build for FreeBSD at this time
-              '''
-            } // withEnv
-          } // steps
-          post {
-            always {
-              junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-            }
-            cleanup {
-              sh 'killall -9 beam.smp || true'
-              sh 'rm -rf ${WORKSPACE}/* ${COUCHDB_IO_LOG_DIR} || true'
-            }
-          } // post
-        } // stage FreeBSD
-
-        stage('macOS') {
-          agent {
-            label 'macos'
-          }
-          steps {
-            // deleteDir is OK here because we're not inside of a Docker container!
-            deleteDir()
-            unstash 'tarball'
-            withEnv(['HOME='+pwd()]) {
-              sh '''
-                PATH=/usr/local/bin:$PATH
-                export PATH
-                mkdir -p $COUCHDB_IO_LOG_DIR
-
-                # Build CouchDB from tarball & test
-                mkdir build
-                cd build
-                tar -xzf $WORKSPACE/apache-couchdb-*.tar.gz
-                cd apache-couchdb-*
-                ./configure --with-curl --spidermonkey-version 60
-                make check || (build-aux/logfile-uploader.py && false)
-
-                # No package build for macOS at this time
-              '''
-            } // withEnv
-          } // steps
-          post {
-            always {
-              junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-            }
-            cleanup {
-              sh 'killall -9 beam.smp || true'
-              sh 'rm -rf ${WORKSPACE}/* ${COUCHDB_IO_LOG_DIR} || true'
-            }
-          } // post
-        } // stage macOS
-
-        stage('CentOS 6') {
-          agent {
-            docker {
-              image 'couchdbdev/centos-6-erlang-20.3.8.25-1:latest'
-              label 'docker'
-              args "${DOCKER_ARGS}"
-              alwaysPull true
-            }
-          }
-          environment {
-            platform = 'centos6'
-            sm_ver = '1.8.5'
-          }
-          stages {
-            stage('Build from tarball & test') {
-              steps {
-                unstash 'tarball'
-                sh( script: build_and_test )
-              }
-              post {
-                always {
-                  junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-                }
-              }
-            }
-            stage('Build CouchDB packages') {
-              steps {
-                sh( script: make_packages )
-                sh( script: cleanup_and_save )
-              }
-              post {
-                success {
-                  archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
-                }
-              }
-            }
-          } // stages
-          post {
-            cleanup {
-              sh 'rm -rf ${WORKSPACE}/*'
-            }
-          } // post
-        } // stage
-
-        stage('CentOS 7') {
-          agent {
-            docker {
-              image 'couchdbdev/centos-7-erlang-20.3.8.25-1:latest'
-              label 'docker'
-              args "${DOCKER_ARGS}"
-              alwaysPull true
-            }
-          }
-          environment {
-            platform = 'centos7'
-            sm_ver = '1.8.5'
-          }
-          stages {
-            stage('Build from tarball & test') {
-              steps {
-                unstash 'tarball'
-                sh( script: build_and_test )
-              }
-              post {
-                always {
-                  junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-                }
-              }
-            }
-            stage('Build CouchDB packages') {
-              steps {
-                unstash 'tarball'
-                sh( script: make_packages )
-                sh( script: cleanup_and_save )
-              }
-              post {
-                success {
-                  archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
-                }
-              }
-            }
-          } // stages
-          post {
-            cleanup {
-              sh 'rm -rf ${WORKSPACE}/*'
-            }
-          } // post
-        } // stage
-
-        stage('CentOS 8') {
-          agent {
-            docker {
-              image 'couchdbdev/centos-8-erlang-20.3.8.25-1:latest'
-              label 'docker'
-              args "${DOCKER_ARGS}"
-              alwaysPull true
-            }
-          }
-          environment {
-            platform = 'centos8'
-            sm_ver = '60'
-          }
-          stages {
-            stage('Build from tarball & test') {
-              steps {
-                unstash 'tarball'
-                sh( script: build_and_test )
-              }
-              post {
-                always {
-                  junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-                }
-              }
-            }
-            stage('Build CouchDB packages') {
-              steps {
-                unstash 'tarball'
-                sh( script: make_packages )
-                sh( script: cleanup_and_save )
-              }
-              post {
-                success {
-                  archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
-                }
-              }
-            }
-          } // stages
-          post {
-            cleanup {
-              sh 'rm -rf ${WORKSPACE}/*'
-            }
-          } // post
-        } // stage
-
-        stage('Ubuntu Xenial') {
-          agent {
-            docker {
-              image 'couchdbdev/ubuntu-xenial-erlang-20.3.8.25-1:latest'
-              label 'docker'
-              args "${DOCKER_ARGS}"
-              alwaysPull true
-            }
-          }
-          environment {
-            platform = 'xenial'
-            sm_ver = '1.8.5'
-          }
-          stages {
-            stage('Build from tarball & test') {
-              steps {
-                unstash 'tarball'
-                sh( script: build_and_test )
-              }
-              post {
-                always {
-                  junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-                }
-              }
-            }
-            stage('Build CouchDB packages') {
-              steps {
-                sh( script: make_packages )
-                sh( script: cleanup_and_save )
-              }
-              post {
-                success {
-                  archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
-                }
-              }
-            }
-          } // stages
-          post {
-            cleanup {
-              sh 'rm -rf ${WORKSPACE}/*'
-            }
-          } // post
-        } // stage
-
-        stage('Ubuntu Bionic') {
-          agent {
-            docker {
-              image 'couchdbdev/ubuntu-bionic-erlang-20.3.8.25-1:latest'
-              label 'docker'
-              alwaysPull true
-              args "${DOCKER_ARGS}"
-            }
-          }
-          environment {
-            platform = 'bionic'
-            sm_ver = '1.8.5'
-          }
-          stages {
-            stage('Build from tarball & test') {
-              steps {
-                unstash 'tarball'
-                sh( script: build_and_test )
-              }
-              post {
-                always {
-                  junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-                }
-              }
-            }
-            stage('Build CouchDB packages') {
-              steps {
-                sh( script: make_packages )
-                sh( script: cleanup_and_save )
-              }
-              post {
-                success {
-                  archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
-                }
-              }
-            }
-          } // stages
-          post {
-            cleanup {
-              sh 'rm -rf ${WORKSPACE}/*'
-            }
-          } // post
-        } // stage
-
-        stage('Ubuntu Focal') {
-          agent {
-            docker {
-              image 'couchdbdev/ubuntu-focal-erlang-20.3.8.25-1:latest'
-              label 'docker'
-              alwaysPull true
-              args "${DOCKER_ARGS}"
-            }
-          }
-          environment {
-            platform = 'focal'
-            sm_ver = '68'
-          }
-          stages {
-            stage('Build from tarball & test') {
-              steps {
-                unstash 'tarball'
-                sh( script: build_and_test )
-              }
-              post {
-                always {
-                  junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-                }
-              }
-            }
-            stage('Build CouchDB packages') {
-              steps {
-                sh( script: make_packages )
-                sh( script: cleanup_and_save )
-              }
-              post {
-                success {
-                  archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
-                }
-              }
-            }
-          } // stages
-          post {
-            cleanup {
-              sh 'rm -rf ${WORKSPACE}/*'
-            }
-          } // post
-        } // stage
-
-        stage('Debian Stretch') {
-          agent {
-            docker {
-              image 'couchdbdev/debian-stretch-erlang-20.3.8.25-1:latest'
-              label 'docker'
-              alwaysPull true
-              args "${DOCKER_ARGS}"
-            }
-          }
-          environment {
-            platform = 'stretch'
-            sm_ver = '1.8.5'
-          }
-          stages {
-            stage('Build from tarball & test') {
-              steps {
-                unstash 'tarball'
-                sh( script: build_and_test )
-              }
-              post {
-                always {
-                  junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-                }
-              }
-            }
-            stage('Build CouchDB packages') {
-              steps {
-                sh( script: make_packages )
-                sh( script: cleanup_and_save )
-              }
-              post {
-                success {
-                  archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
-                }
-              }
-            }
-          } // stages
-          post {
-            cleanup {
-              sh 'rm -rf ${WORKSPACE}/*'
-            }
-          } // post
-        } // stage
-
-        stage('Debian Buster amd64') {
-          agent {
-            docker {
-              image 'couchdbdev/debian-buster-erlang-20.3.8.25-1:latest'
-              label 'docker'
-              alwaysPull true
-              args "${DOCKER_ARGS}"
-            }
-          }
-          environment {
-            platform = 'buster'
-            sm_ver = '60'
-          }
-          stages {
-            stage('Build from tarball & test') {
-              steps {
-                unstash 'tarball'
-                sh( script: build_and_test )
-              }
-              post {
-                always {
-                  junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-                }
-              }
-            }
-            stage('Build CouchDB packages') {
-              steps {
-                sh( script: make_packages )
-                sh( script: cleanup_and_save )
-              }
-              post {
-                success {
-                  archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
-                }
-              }
-            }
-          } // stages
-          post {
-            cleanup {
-              sh 'rm -rf ${WORKSPACE}/*'
-            }
-          } // post
-        } // stage
-
-        stage('Debian Buster arm64v8') {
-          agent {
-            docker {
-              image 'couchdbdev/arm64v8-debian-buster-erlang-20.3.8.25-1:latest'
-              label 'arm64v8'
-              alwaysPull true
-              args "${DOCKER_ARGS}"
-            }
-          }
-          environment {
-            platform = 'buster'
-            sm_ver = '1.8.5'
-          }
-          stages {
-            stage('Build from tarball & test') {
-              steps {
-                unstash 'tarball'
-                sh( script: build_and_test )
-              }
-              post {
-                always {
-                  junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-                }
-              }
-            }
-            stage('Build CouchDB packages') {
-              steps {
-                sh( script: make_packages )
-                sh( script: cleanup_and_save )
-              }
-              post {
-                success {
-                  archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
-                }
-              }
-            }
-          } // stages
-          post {
-            cleanup {
-              sh 'rm -rf ${WORKSPACE}/*'
-            }
-          } // post
-        } // stage
-
-/*
-  - Removed 2020.09.15 - VMs are offline
-*/
-
-//        stage('Debian Buster ppc64le') {
-//          agent {
-//            docker {
-//              image 'couchdbdev/ppc64le-debian-buster-erlang-20.3.8.25-1:latest'
-//              label 'ppc64le'
-//              alwaysPull true
-//              args "${DOCKER_ARGS}"
-//            }
-//          }
-//          environment {
-//            platform = 'buster'
-//            sm_ver = '60'
-//          }
-//          stages {
-//            stage('Build from tarball & test') {
-//              steps {
-//                unstash 'tarball'
-//                sh( script: build_and_test )
-//              }
-//              post {
-//                always {
-//                  junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-//                }
-//              }
-//            }
-//            stage('Build CouchDB packages') {
-//              steps {
-//                sh( script: make_packages )
-//                sh( script: cleanup_and_save )
-//              }
-//              post {
-//                success {
-//                  archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
-//                }
-//              }
-//            }
-//          } // stages
-//          post {
-//            cleanup {
-//              sh 'rm -rf ${WORKSPACE}/*'
-//            }
-//          } // post
-//        } // stage
-
-	/*
-	 * Example of how to do a qemu-based run, please leave here
-	 */
-
-/*
-        stage('Debian Buster arm64v8') {
-          // the process is convoluted to ensure we have the latest qemu static binaries on the node first
-          // before trying to run a foreign docker container type. Alternately ensuring the `update_qemu`
-          // container is run on every Jenkins agent *after every restart of the Docker daemon* would work.
-          agent {
-            any {
-            }
-          }
-          options {
-            timeout(time: 120, unit: "MINUTES")
-          }
-          environment {
-            platform = 'aarch64-debian-stretch'
-            sm_ver = '60'
-          }
-          stages {
-            stage('Install latest qemu binaries') {
-              steps {
-                sh( script: update_qemu )
-              }
-            }
-            stage('Pull latest docker image') {
-              steps {
-                sh "docker pull couchdbdev/arm64v8-debian-buster-erlang-20.3.8.25-1:latest"
-              }
-            }
-            stage('Build from tarball & test & packages') {
-              steps {
-                withDockerContainer(image: "couchdbdev/arm64v8-debian-buster-erlang-20.3.8.25-1:latest", args: "${DOCKER_ARGS}") {
-                  unstash 'tarball'
-                  withEnv(['MIX_HOME='+pwd(), 'HEX_HOME='+pwd()]) {
-                    sh( script: build_and_test )
-                    sh( script: make_packages )
-                    sh( script: cleanup_and_save )
-                  }
-                }
-              }
-              post {
-                always {
-*/
-//                  junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-/*
-                }
-                success {
-                  archiveArtifacts artifacts: 'pkgs/**', fingerprint: true
-                }
-              }
-            }
-          } // stages
-          post {
-            cleanup {
-              sh 'rm -rf ${WORKSPACE}/*'
-            }
-          } // post
-        } // stage
-*/
-
-      } // parallel
-    } // stage "Test and Package"
-
-    stage('Publish') {
-
-      when {
-        expression { return env.BRANCH_NAME ==~ /master|2.*.x|3.*.x|4.*.x|jenkins-.*/ }
-      }
-
-      agent {
-        docker {
-          image 'couchdbdev/debian-buster-erlang-20.3.8.25-1:latest'
-          label 'docker'
-          alwaysPull true
-          args "${DOCKER_ARGS}"
-        }
-      }
-      options {
-        skipDefaultCheckout()
-        timeout(time: 90, unit: "MINUTES")
-      }
-
-      steps {
-        withCredentials([sshUserPrivateKey(credentialsId: 'jenkins-key', keyFileVariable: 'KEY')]) {
-          sh 'rm -rf ${WORKSPACE}/*'
-          unstash 'tarball'
-          unarchive mapping: ['pkgs/' : '.']
-
-          echo 'Retrieving & cleaning current repo-nightly tree...'
-          sh '''
-            rsync -avz -e "ssh -o StrictHostKeyChecking=no -i $KEY" jenkins@repo-nightly.couchdb.org:/var/www/html/$BRANCH_NAME . || mkdir -p $BRANCH_NAME
-            rm -rf $BRANCH_NAME/debian/* $BRANCH_NAME/el6/* $BRANCH_NAME/el7/* $BRANCH_NAME/el8/*
-            mkdir -p $BRANCH_NAME/debian $BRANCH_NAME/el6 $BRANCH_NAME/el7 $BRANCH_NAME/el8 $BRANCH_NAME/source
-            rsync -avz -e "ssh -o StrictHostKeyChecking=no -i $KEY" jenkins@repo-nightly.couchdb.org:/var/www/html/js .
-          '''
-
-          echo 'Building Debian repo...'
-          sh '''
-            git clone https://github.com/apache/couchdb-pkg
-            cp js/debian-stretch/*.deb pkgs/stretch
-            reprepro -b couchdb-pkg/repo includedeb stretch pkgs/stretch/*.deb
-            cp js/debian-buster/*.deb pkgs/stretch
-            reprepro -b couchdb-pkg/repo includedeb buster pkgs/buster/*.deb
-            cp js/ubuntu-xenial/*.deb pkgs/xenial
-            reprepro -b couchdb-pkg/repo includedeb xenial pkgs/xenial/*.deb
-            cp js/ubuntu-bionic/*.deb pkgs/bionic
-            reprepro -b couchdb-pkg/repo includedeb bionic pkgs/bionic/*.deb
-            reprepro -b couchdb-pkg/repo includedeb focal pkgs/focal/*.deb
-          '''
-
-          echo 'Building CentOS repos...'
-          sh '''
-            cp js/centos-6/*rpm pkgs/centos6
-            cp js/centos-7/*rpm pkgs/centos7
-            cp js/centos-8/*rpm pkgs/centos8
-            cd pkgs/centos6 && createrepo --database .
-            cd ../centos7 && createrepo --database .
-            cd ../centos8 && createrepo --database .
-          '''
-
-          echo 'Building tree to upload...'
-          sh '''
-            mv couchdb-pkg/repo/pool $BRANCH_NAME/debian
-            mv couchdb-pkg/repo/dists $BRANCH_NAME/debian
-            mv pkgs/centos6/* $BRANCH_NAME/el6
-            mv pkgs/centos7/* $BRANCH_NAME/el7
-            mv pkgs/centos8/* $BRANCH_NAME/el8
-            mv apache-couchdb-*.tar.gz $BRANCH_NAME/source
-            cd $BRANCH_NAME/source
-            ls -1tr | head -n -10 | xargs -d '\n' rm -f --
-            cd ../..
-          '''
-
-          echo 'rsyncing tree to repo-nightly...'
-          sh '''
-            rsync -avz --delete -e "ssh -o StrictHostKeyChecking=no -i $KEY" $BRANCH_NAME jenkins@repo-nightly.couchdb.org:/var/www/html
-            rm -rf $BRANCH_NAME couchdb-pkg *.tar.gz
-          '''
-        } // withCredentials
-      } // steps
-    } // stage
-  } // stages
-
-  post {
-    success {
-      mail to: "${env.recipient}",
-        replyTo: "${env.recipient}",
-        subject: "[Jenkins] SUCCESS: ${currentBuild.fullDisplayName}",
-        body: "Yay, we passed. ${env.RUN_DISPLAY_URL}"
-    }
-    unstable {
-      mail to: "${env.recipient}",
-        replyTo: "${env.recipient}",
-        subject: "[Jenkins] SUCCESS: ${currentBuild.fullDisplayName}",
-        body: "Eep! Build is unstable... ${env.RUN_DISPLAY_URL}"
-    }
-    failure {
-      mail to: "${env.recipient}",
-        replyTo: "${env.recipient}",
-        subject: "[Jenkins] FAILURE: ${currentBuild.fullDisplayName}",
-        body: "Boo, we failed. ${env.RUN_DISPLAY_URL}"
-    }
-  }
-
-} // pipeline
diff --git a/build-aux/Jenkinsfile.pr b/build-aux/Jenkinsfile.pr
deleted file mode 100644
index 8c9cbd9..0000000
--- a/build-aux/Jenkinsfile.pr
+++ /dev/null
@@ -1,147 +0,0 @@
-#!groovy
-//
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may not
-// use this file except in compliance with the License. You may obtain a copy of
-// the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations under
-// the License.
-build_and_test = '''
-mkdir -p ${COUCHDB_IO_LOG_DIR} ${ERLANG_VERSION}
-cd ${ERLANG_VERSION}
-rm -rf build
-mkdir build
-cd build
-tar -xf ${WORKSPACE}/apache-couchdb-*.tar.gz
-cd apache-couchdb-*
-. /usr/local/kerl/${KERL_VER}/activate
-./configure --with-curl --spidermonkey-version 60
-make check || (make build-report && false)
-'''
-
-pipeline {
-
-  // no top-level agent; agents must be declared for each stage
-  agent none
-
-  environment {
-    COUCHAUTH = credentials('couchdb_vm2_couchdb')
-    recipient = 'notifications@couchdb.apache.org'
-    COUCHDB_IO_LOG_DIR = '/tmp/couchjslogs'
-    // Following fix an issue with git <= 2.6.5 where no committer
-    // name or email are present for reflog, required for git clone
-    GIT_COMMITTER_NAME = 'Jenkins User'
-    GIT_COMMITTER_EMAIL = 'couchdb@apache.org'
-    // Parameters for the matrix build
-    DOCKER_IMAGE = 'couchdbdev/debian-buster-erlang-all:latest'
-    // https://github.com/jenkins-infra/jenkins.io/blob/master/Jenkinsfile#64
-    // We need the jenkins user mapped inside of the image
-    // npm config cache below deals with /home/jenkins not mapping correctly
-    // inside the image
-    DOCKER_ARGS = '-e npm_config_cache=npm-cache -e HOME=. -v=/etc/passwd:/etc/passwd -v /etc/group:/etc/group'
-    // *** BE SURE TO CHANGE THE ERLANG VERSION FARTHER DOWN S WELL ***
-    // Search for ERLANG_VERSION
-    // see https://issues.jenkins-ci.org/browse/JENKINS-40986
-    LOW_ERLANG_VER = '20.3.8.11'
-    MID_ERLANG_VER = '20.3.8.25'
-    HIGH_ERLANG_VER = '22.2.3'
-  }
-
-  options {
-    buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '10'))
-    // This fails the build immediately if any parallel step fails
-    parallelsAlwaysFailFast()
-    preserveStashes(buildCount: 10)
-    timeout(time: 3, unit: 'HOURS')
-    timestamps()
-  }
-
-  stages {
-    stage('Build Release Tarball') {
-      agent {
-        docker {
-          image "${DOCKER_IMAGE}"
-          label 'docker'
-          args "${DOCKER_ARGS}"
-          alwaysPull true
-        }
-      }
-      options {
-        timeout(time: 15, unit: "MINUTES")
-      }
-      steps {
-        sh '''
-          set
-          rm -rf apache-couchdb-*
-          . /usr/local/kerl/${LOW_ERLANG_VER}/activate
-          ./configure --with-curl
-          make dist
-          chmod -R a+w * .
-        '''
-      }
-      post {
-        success {
-          stash includes: 'apache-couchdb-*.tar.gz', name: 'tarball'
-        }
-        cleanup {
-          // UGH see https://issues.jenkins-ci.org/browse/JENKINS-41894
-          sh 'rm -rf ${WORKSPACE}/*'
-        }
-      }
-    } // stage Build Release Tarball
-
-    // TODO Rework once Improved Docker Pipeline Engine is released
-    // https://issues.jenkins-ci.org/browse/JENKINS-47962
-    // https://issues.jenkins-ci.org/browse/JENKINS-48050
-
-    stage('Make Check') {
-
-      matrix {
-        axes {
-          axis {
-            name 'ERLANG_VERSION'
-            values "20.3.8.11", "20.3.8.25", "22.2.3"
-          }
-        }
-
-        stages {
-          stage('Build and Test') {
-            agent {
-              docker {
-                image "${DOCKER_IMAGE}"
-                label 'docker'
-                args "${DOCKER_ARGS}"
-                alwaysPull true
-              }
-            }
-            environment {
-              KERL_VER = "${ERLANG_VERSION}"
-            }
-            options {
-              skipDefaultCheckout()
-              timeout(time: 90, unit: "MINUTES")
-            }
-            steps {
-              unstash 'tarball'
-              sh( script: build_and_test )
-            }
-            post {
-              always {
-                junit '**/.eunit/*.xml, **/_build/*/lib/couchdbtest/*.xml, **/src/mango/nosetests.xml, **/test/javascript/junit.xml'
-              }
-              cleanup {
-                sh 'rm -rf ${WORKSPACE}/* ${COUCHDB_IO_LOG_DIR}'
-              }
-            }
-          } // stage
-        } // stages
-      } // matrix
-    } // stage "Make Check"
-  } // stages
-} // pipeline
diff --git a/build-aux/README.Jenkins b/build-aux/README.Jenkins
deleted file mode 100644
index 014fbaa..0000000
--- a/build-aux/README.Jenkins
+++ /dev/null
@@ -1,149 +0,0 @@
-# Building with a dedicated Jenkins CI instance
-
-## History
-
-Around April 2019, once Travis CI performance became so abysmal that the
-development team couldn't tolerate it any longer. We decided to move off
-of it entirely and onto our own dedicated Jenkins instance. Performance
-was bad because:
-
-* The Travis CI VMs are severely underpowered, leading to many
-  unexpected test failures
-* The ASF wait queue for Travis was exceedingly long, with jobs
-  sometimes taking 30-45 minutes just to _launch_
-* Our test suites (all 3 of Erlang, JavaScript and Elixir) had
-  sporadic failures, requiring many re-launches of builds before
-  we could move forward
-
-We also had other reasons to want to move to a dedicated server:
-
-* Credentials on the main Jenkins instance could be reused by *anyone*
-  in the ASF
-* Credentials on the Travis CI setup should not contain credentials
-  for things such as building binaries, to ensure the best possible
-  security
-
-Other options we explored:
-
-* ASF BuildBot. This required a lot more work and couldn't guarantee
-  availability of sufficient workers.
-* Circle CI, GitHub CI, etc.: Lack of availability of alternate binary
-  platforms we've been asked to support (arm64v8, ppc64le) or alternate
-  OSes (OSX, FreeBSD, Windows), though there is some support for either
-  or both.
-
-## Cloudbees Core
-
-End of November 2019, ASF and CloudBees reached an agreement to allow
-the Foundation to use CloudBees Core to have a farm of managed Jenkins
-masters. This allows the ASF to give larger projects their own dedicated
-Jenkins master, which can be custom configured for the project. They can
-readily manage this farm of Jenkins masters centrally, including push
-updates to all masters and their plugins. Naturally, this also reduces
-contention, as well as providing increased security for project-level
-credentials.  CouchDB is the first project to use this setup, via
-https://ci-couchdb.apache.org/ (aka https://jenkins-cm1.apache.org/)
-
-Only members of the ASF LDAP group `couchdb-pmc` have write access to
-the Jenkins CI server, and all jobs are set to not trust changes to the
-Jenkinsfile from forked repos (see below).
-
-Further, IBM is sponsoring CouchDB with cloud-based worker nodes, for
-the project's exclusive use. Combined with the FreeBSD and OSX nodes the
-project already had, this will provide the necessary compute resources
-to meet the needs of the project for some time to come.
-
-# Jenkins configuration
-
-All jobs on the new Jenkins master are contained in a CouchDB folder.
-Credentials for the project are placed within this folder; this is a
-unique capability of CloudBees Core at this time.
-
-## Pull Request job configuration
-
-Blue Ocean link: https://ci-couchdb.apache.org/blue/organizations/jenkins/jenkins-cm1%2FPullRequests/activity/
-
-To implement build-a-PR functionality in the same way that Travis
-performs builds, Jenkins offers the Multibranch Pipeline job. Here's how
-it's configured for CouchDB through the GUI:
-
-* Job name: PullRequests (jobs shouldn't have spaces in them, because
-  the job name is used for workspace path naming.)
-* Display Name: "Pull Requests"
-* Description: "This job builds all GitHub pull requests against
-  apache/couchdb."
-* Branch sources: Github
-  * Credentials: a GitHub API key from wohali. These credentials are
-    stored in the top-level Jenkins CouchDB folder on the server.
-    The API token credentials are `user:email` and `repo:status`.
-  * URL https://github.com/apache/couchdb
-  * Behaviors
-    * Discover branches: Exclude branches that are also filed as PRs
-    * Discover PRs from origin: Merging the PR with the current target
-      branch revision
-    * Discover PRs from works: Merging the PR with the current target
-      branch revision, trust Nobody [2]
-    * Advanced clone behaviours:
-      * Fetch tags
-      * Clear "Shallow clone" [1]
-    * Clean before checkout [1]
-    * Prune stale remote-tracking branches
-  * Property strategy: All branches get the same properties
-* Build Configuration
-  * Mode: by Jenkinsfile
-  * Script path: `build-aux/Jenkinsfile.pr`
-* Scan Repository Triggers
-  * Periodically if not other wise run
-  * Interval: 1 day (do not set this too high, GitHub has an API token
-  throttle that can cause issues!)
-* Orphaned Item Strategy
-  * Discard old items
-  * Days to keep old items: <blank>
-  * Max # of old items to keep: 10
-* Everything else set as defaults.
-
-[1]: https://issues.jenkins-ci.org/browse/JENKINS-44598 explains why we have the build set to Clean Before Checkout every time, and why clones are not shallow.
-
-[2]: https://issues.apache.org/jira/browse/INFRA-17449 explains why "Discover pull requests from forks/Trust" has been set to "Nobody."
-
-## `master` and release branch configuration
-
-Our old Jenkins job (formerly `/Jenkinsfile`) is now
-`build-aux/Jenkinsfile.full`. This builds CouchDB on `master`, all of
-our release branches (`2.*`, `3.*`, etc.) as well as `jenkins-*` for
-testing.
-
-Settings are as follows:
-
-* Job name: FullPlatformMatrix (jobs shouldn't have spaces in them, because
-  the job name is used for workspace path naming.)
-* Display Name: "Full Platform Builds"
-* Description: "This job builds on our master and release branches,
-  and builds packages on all."
-* Branch sources: Github
-  * Credentials: a GitHub API key from wohali. These credentials are
-    stored in the top-level Jenkins CouchDB folder on the server.
-    The API token credentials are `user:email` and `repo:status`.
-  * URL https://github.com/apache/couchdb
-  * Behaviors
-    * Discover branches: All branches
-    * Filter by name (with wildcards): Include: master 2.*.x 3.*.x 4.*.x jenkins-*
-    * Advanced clone behaviours:
-      * Fetch tags
-      * Clear "Shallow clone" [1]
-    * Clean before checkout [1]
-    * Prune stale remote-tracking branches
-  * Property strategy: All branches get the same properties
-* Build Configuration
-  * Mode: by Jenkinsfile
-  * Script path: `build-aux/Jenkinsfile.pull`
-* Scan Repository Triggers
-  * none
-* Orphaned Item Strategy
-  * Discard old items
-  * Days to keep old items: <blank>
-  * Max # of old items to keep: 10
-* Everything else set as defaults.
-
-
-
diff --git a/build-aux/couchdb-build-release.sh b/build-aux/couchdb-build-release.sh
deleted file mode 100755
index dfd529d..0000000
--- a/build-aux/couchdb-build-release.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/sh -e
-
-VERSION=$1
-
-if [ -z "${VERSION}" ]; then
-  echo "NO VERSION"
-  exit 1
-fi
-
-echo "Building Apache CouchDB ${VERSION}"
-
-REL_DIR=apache-couchdb-${VERSION}
-# make release dir
-rm -rf ${REL_DIR}
-mkdir ${REL_DIR}
-
-CURRENT_BRANCH=`git rev-parse --abbrev-ref HEAD`
-
-# copy sources over
-git archive ${CURRENT_BRANCH} | tar -xC ${REL_DIR}/ -f -
-cd src/
-for repo in *; do
-  cd ${repo}
-  if [ -d ".git" ]; then
-    mkdir -p ../../${REL_DIR}/src/${repo}
-    git_ish=`git rev-parse --short HEAD`
-    git archive ${git_ish} \
-        | tar --exclude '*do_not_compile.erl' -xC ../../${REL_DIR}/src/${repo}/ -f -
-  fi
-  set +e
-  grep -rl '{vsn, git}' ../../${REL_DIR}/src/${repo}/ 2>/dev/null \
-      | xargs sed -ie "s/{vsn, git}/{vsn, \"${VERSION}\"}/" 2>/dev/null
-  set -e
-  cd ..
-done
-
-cd ..
-
-if test -e .git; then
-  # save git sha in version.mk
-  git_sha=`git rev-parse --short HEAD`
-  echo "git_sha=${git_sha}" >> ${REL_DIR}/version.mk
-  # create CONTRIBUTORS file
-  OS=`uname -s`
-
-  sed -e "/^#.*/d" CONTRIBUTORS.in > ${REL_DIR}/CONTRIBUTORS
-  CONTRIB_EMAIL_SED_COMMAND="s/^[[:blank:]]{5}[[:digit:]]+[[:blank:]]/ * /"
-  git shortlog -se 6c976bd..HEAD \
-      | grep -v @apache.org \
-      | sed -E -e "${CONTRIB_EMAIL_SED_COMMAND}" >> ${REL_DIR}/CONTRIBUTORS
-  echo "" >> ${REL_DIR}/CONTRIBUTORS # simplest portable newline
-  echo "For a list of authors see the \`AUTHORS\` file." >> ${REL_DIR}/CONTRIBUTORS
-fi
-
-# copy our rebar
-cp bin/rebar ${REL_DIR}/bin/rebar
diff --git a/build-aux/dist-error b/build-aux/dist-error
deleted file mode 100755
index 73486b5..0000000
--- a/build-aux/dist-error
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh -e
-
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-
-# This script is called by the build system and is used to provide an error
-# about missing or empty files. Some files are optional, and will be built when
-# the environment allows. But these files are required for distribution.
-
-cat << EOF
-ERROR: This file is missing or incomplete:
-
-       $1
-
-       This file is optional at build and install time,
-       but is required when preparing a distribution.
-EOF
-
-exit 1
diff --git a/build-aux/introspect b/build-aux/introspect
deleted file mode 100755
index 9b52745..0000000
--- a/build-aux/introspect
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/env escript
-%% -*- mode: erlang -*-
-
-main(_) ->
-    introspect("rebar.config.script").
-
-introspect(File) ->
-    Bindings = [{'SCRIPT', File}, {'CONFIG', []}],
-    {ok, Config} = file:script(File, Bindings),
-    {deps, Deps} = lists:keyfind(deps, 1, Config),
-    introspect_deps(Deps).
-
-introspect_deps([]) ->
-    ok;
-introspect_deps([Dep | Rest]) ->
-    introspect_dep(Dep),
-    introspect_deps(Rest).
-
-introspect_dep({App, VsnRegex, {git, Url, From}, _Raw}) ->
-    introspect_dep({App, VsnRegex, {git, Url, From}});
-introspect_dep({App, _VsnRegex, {git, _Url, From}}) ->
-    io:format(bold("~s~n"), [App]),
-    introspect_diff(App, From),
-    io:format("~n", []),
-    ok.
-
-revision({branch, Branch}) ->
-    Branch;
-revision({tag, Tag}) ->
-    Tag;
-revision(Rev) ->
-    Rev.
-
-introspect_diff(App, From) ->
-    introspect_diff(App, revision(From), "origin/master").
-
-introspect_diff(App, From, ToBranch) ->
-    {ok, Log} = sh(App, io_lib:format("git log --pretty=oneline ~s..~s", [From, ToBranch])),
-    case Log of
-        [] ->
-            io:format("  up to date on ~s~n", [bold(ToBranch)]);
-        _ ->
-            io:format("  ~B commits behind ~s~n", [length(Log), bold(ToBranch)]),
-            io:format("~s~n~n", [string:join(["    " ++ L || L <- Log], "\n")])
-    end.
-
-sh(App, Cmd) ->
-    Dir = lists:flatten(["src/", atom_to_list(App)]),
-    Port = open_port({spawn, lists:flatten(Cmd)},
-                     [{cd, Dir},
-                      {line, 16384},
-                      exit_status,
-                      stderr_to_stdout,
-                      use_stdio]),
-    read_port(Port).
-
-read_port(Port) ->
-    read_port(Port, []).
-
-read_port(Port, Acc) ->
-    receive
-        {Port, {data, {eol, Line}}} ->
-            read_port(Port, [Line | Acc]);
-        {Port, {data, {noeol, Line}}} ->
-            read_port(Port, [Line | Acc]);
-        {Port, {exit_status, 0}} ->
-            {ok, lists:reverse(Acc)};
-        {Port, {exit_status, Code}} ->
-            {error, Code, Acc}
-    end.
-
-bold(Text) ->
-    "\e[1m" ++ Text ++ "\e[0m".
diff --git a/build-aux/logfile-uploader.py b/build-aux/logfile-uploader.py
deleted file mode 100755
index 3df9e6c..0000000
--- a/build-aux/logfile-uploader.py
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/usr/bin/env python3
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-
-
-import datetime
-import glob
-import json
-import os
-import tarfile
-import time
-
-import requests
-
-COUCH_URL = "https://logs.couchdb.org/ci_errorlogs"
-TARFILE = "couchlog.tar.gz"
-
-
-def _tojson(req):
-    """Support requests v0.x as well as 1.x+"""
-    if requests.__version__[0] == "0":
-        return json.loads(req.content)
-    return req.json()
-
-
-def collect_logfiles():
-    """ Find and tarball all logfiles """
-    tb = tarfile.open(name=TARFILE, mode="w:gz")
-    # Test results
-    for log in glob.glob("test-results.log"):
-        tb.add(log)
-    # EUnit
-    for log in glob.glob("src/*/.eunit/couch.log"):
-        tb.add(log)
-    # JS harness
-    for log in glob.glob("dev/logs/node1.log"):
-        tb.add(log)
-    # couchjs OS process IO logs
-    for log in glob.glob("/tmp/couchjslogs/*"):
-        tb.add(log)
-    tb.close()
-
-
-def build_ci_doc():
-    """ Build a metadata document with relevant detail from CI env """
-    doc = {}
-    if "TRAVIS" in os.environ:
-        doc["builder"] = "travis"
-        doc["build_id"] = os.environ["TRAVIS_JOB_ID"]
-        doc["erlang"] = os.environ["TRAVIS_OTP_RELEASE"]
-        doc["url"] = (
-            "https://travis-ci.org/apache/couchdb/jobs/" + os.environ["TRAVIS_JOB_ID"]
-        )
-        doc["branch"] = os.environ["TRAVIS_BRANCH"]
-        doc["commit"] = os.environ["TRAVIS_COMMIT"]
-        doc["repo"] = "https://github.com/" + os.environ["TRAVIS_REPO_SLUG"]
-    elif "JENKINS_URL" in os.environ:
-        doc["builder"] = "jenk-ins"
-        doc["build_id"] = os.environ["BUILD_NUMBER"]
-        doc["url"] = os.environ["BUILD_URL"]
-        doc["branch"] = os.environ["BRANCH_NAME"]
-        doc["repo"] = "https://github.com/apache/couchdb"
-    else:
-        doc["builder"] = "manual"
-        # TODO: shell out to get correct repo, commit, branch info?
-        doc["repo"] = "https://github.com/apache/couchdb"
-        doc["build_id"] = str(time.time())
-
-    # shorten doc id
-    repo = doc["repo"].split("/")[-1]
-    repo = repo.replace(".git", "")
-
-    doc["_id"] = (
-        doc["builder"]
-        + "-"
-        + repo
-        + "-"
-        + doc["build_id"]
-        + "-"
-        + datetime.datetime.utcnow().isoformat()
-    )
-
-    return doc
-
-
-def upload_logs():
-    try:
-        lp = os.environ["COUCHAUTH"].split(":")
-    except KeyError as e:
-        print("ERROR: COUCHAUTH credentials unavailable! " "Unable to upload logfiles.")
-        exit(1)
-
-    creds = (lp[0], lp[1])
-    doc = build_ci_doc()
-    req = requests.post(
-        COUCH_URL,
-        data=json.dumps(doc),
-        auth=creds,
-        headers={"Content-type": "application/json"},
-    )
-    req.raise_for_status()
-    req = _tojson(req)
-    with open(TARFILE, "rb") as f:
-        # ancient versions of requests break if data is iterable
-        fdata = f.read()
-        req2 = requests.put(
-            COUCH_URL + "/" + doc["_id"] + "/" + TARFILE,
-            headers={"Content-type": "application/x-gtar"},
-            auth=creds,
-            params={"rev": req["rev"]},
-            data=fdata,
-        )
-    req2.raise_for_status()
-    return req2
-
-
-def main():
-    """ Find latest logfile and upload to Couch logfile db. """
-    print("Uploading logfiles...")
-    collect_logfiles()
-    req = upload_logs()
-    print(req.url.split("?")[0])
-    print(req.content)
-    print("Upload complete!")
-
-
-if __name__ == "__main__":
-    main()
diff --git a/build-aux/print-committerlist.sh b/build-aux/print-committerlist.sh
deleted file mode 100755
index f6abc4c..0000000
--- a/build-aux/print-committerlist.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/sh
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-
-function get_contributors {
-  local OS=`uname -s`
-  case "$OS" in
-  Linux|CYGWIN*) # GNU sed
-    local SED_ERE_FLAG=-r
-  ;;
-  *) # BSD sed
-    local SED_ERE_FLAG=-E
-  ;;
-  esac
-
-  local CONTRIB_EMAIL_SED_COMMAND="s/^[[:blank:]]{5}[[:digit:]]+[[:blank:]]/ * /"
-  if [ "$1" == "couchdb-main-repo" ]
-  then
-    git shortlog -se 6c976bd..HEAD \
-      | grep -v @apache.org \
-      | sed $SED_ERE_FLAG -e "$CONTRIB_EMAIL_SED_COMMAND"
-  else
-    cd src/$1
-    git shortlog -se HEAD \
-      | grep -v @apache.org \
-      | sed $SED_ERE_FLAG -e "$CONTRIB_EMAIL_SED_COMMAND"
-    cd .. && cd ..
-  fi
-}
-
-function print_comitter_list {
-  # list of external repos that we exclude
-  local EXCLUDE=("bear" "folsom" "goldrush" "ibrowse" "jiffy" "lager" "meck" "mochiweb" "snappy")
-  local EXCLUDE=$(printf "\|%s" "${EXCLUDE[@]}")
-  local EXCLUDE=${EXCLUDE:2}
-  local SUBREPOS=$(ls src/ | grep -v "$EXCLUDE")
-
-  if test -e .git; then
-
-    {
-      for i in $SUBREPOS; do
-        get_contributors $i
-      done;
-      get_contributors "couchdb-main-repo"
-    } | git check-mailmap --stdin | awk '
-      BEGIN {
-      }
-      {
-        $1 = "";
-        persons[$0] = $0;
-      }
-      END {
-        for (i in persons) {
-          print persons[i];
-        }
-      }'
-  fi
-}
diff --git a/build-aux/show-test-results.py b/build-aux/show-test-results.py
deleted file mode 100755
index c76a884..0000000
--- a/build-aux/show-test-results.py
+++ /dev/null
@@ -1,412 +0,0 @@
-#!/usr/bin/env python2.7
-
-import argparse
-import glob
-import json
-import os
-import re
-import xml.dom.minidom as md
-
-
-TEST_COLLECTIONS = {
-    "EUnit": "src/**/.eunit/*.xml",
-    "EXUnit": "_build/integration/lib/couchdbtest/*.xml",
-    "Mango": "src/mango/*.xml",
-    "JavaScript": "test/javascript/*.xml",
-}
-
-
-def _attrs(elem):
-    ret = {}
-    for (k, v) in elem.attributes.items():
-        ret[k.lower()] = v
-    return ret
-
-
-def _text(elem):
-    rc = []
-    for node in elem.childNodes:
-        if node.nodeType == node.TEXT_NODE:
-            rc.append(node.data)
-        else:
-            rc.append(self._text(node))
-    return "".join(rc)
-
-
-class TestCase(object):
-    def __init__(self, elem):
-        self.elem = elem
-
-        attrs = _attrs(elem)
-
-        self.name = self._name(attrs)
-        self.time = float(attrs["time"])
-
-        self.failure = False
-        self._check_failure(elem, attrs)
-
-        self.error = False
-        self._check_error(elem, attrs)
-
-        self.skipped = False
-        self._check_skipped(elem, attrs)
-
-    def _check_failure(self, elem, attrs):
-        failures = elem.getElementsByTagName("failure")
-        if not failures:
-            return
-
-        self.failure = True
-        self.failure_msg = _text(failures[0]).strip()
-
-    def _check_error(self, elem, attrs):
-        errors = elem.getElementsByTagName("error")
-        if not errors:
-            return
-
-        self.error = True
-        self.error_msg = _text(errors[0]).strip()
-
-    def _check_skipped(self, elem, attrs):
-        skipped = elem.getElementsByTagName("skipped")
-        if not skipped:
-            return
-
-        attrs = _attrs(skipped[0])
-        self.skipped = True
-        self.skipped_msg = attrs.get("message", attrs.get("type", "<unknown>"))
-
-    def _name(self, attrs):
-        klass = attrs.get("classname", "")
-        if klass.startswith("Elixir."):
-            klass = klass[len("Elixir.") :]
-        if klass:
-            return "%s - %s" % (klass, attrs["name"])
-        return attrs["name"]
-
-
-class TestSuite(object):
-    SUITE_NAME_PATTERNS = [re.compile("module '([^']+)'"), re.compile("Elixir\.(.+)")]
-
-    def __init__(self, elem):
-        self.elem = elem
-
-        attrs = _attrs(elem)
-
-        self.name = self._name(attrs)
-
-        self.time = 0.0
-        if "time" in attrs:
-            self.time = float(attrs["time"])
-
-        self.num_tests = int(attrs["tests"])
-        self.num_failures = int(attrs["failures"])
-        self.num_errors = int(attrs["errors"])
-        self.num_skipped = 0
-
-        self.tests = []
-        self.test_time = 0.0
-
-        for t_elem in elem.getElementsByTagName("testcase"):
-            self.tests.append(TestCase(t_elem))
-            self.test_time += self.tests[-1].time
-            if self.tests[-1].skipped:
-                self.num_skipped += 1
-
-        if self.time == 0.0 and self.test_time > 0.0:
-            self.time = self.test_time
-
-    def _name(self, attrs):
-        raw_name = attrs["name"]
-        for p in self.SUITE_NAME_PATTERNS:
-            match = p.match(raw_name)
-            if match:
-                return match.group(1)
-        return raw_name
-
-
-class TestCollection(object):
-    def __init__(self, name, pattern):
-        self.name = name
-        self.pattern = pattern
-        self.suites = []
-        self.bad_files = []
-
-        for fname in glob.glob(pattern):
-            self._load_file(fname)
-
-    def _load_file(self, filename):
-        try:
-            dom = md.parse(filename)
-        except:
-            self.bad_files.append(filename)
-            return
-        for elem in dom.getElementsByTagName("testsuite"):
-            self.suites.append(TestSuite(elem))
-
-
-def parse_args():
-    parser = argparse.ArgumentParser(description="Show test result summaries")
-    parser.add_argument(
-        "--ignore-failures",
-        action="store_true",
-        default=False,
-        help="Don't display test failures",
-    )
-    parser.add_argument(
-        "--ignore-errors",
-        action="store_true",
-        default=False,
-        help="Don't display test errors",
-    )
-    parser.add_argument(
-        "--ignore-skipped",
-        action="store_true",
-        default=False,
-        help="Don't display skipped tests",
-    )
-    parser.add_argument(
-        "--all", type=int, default=0, help="Number of rows to show for all groups"
-    )
-    parser.add_argument(
-        "--collection",
-        action="append",
-        default=[],
-        help="Which collection to display. May be repeated.",
-    )
-    parser.add_argument(
-        "--suites", type=int, default=0, help="Number of suites to show"
-    )
-    parser.add_argument("--tests", type=int, default=0, help="Number of tests to show")
-    parser.add_argument(
-        "--sort",
-        default="total",
-        choices=["test", "fixture", "total"],
-        help="Timing column to sort on",
-    )
-    return parser.parse_args()
-
-
-def display_failures(collections):
-    failures = []
-    for collection in collections:
-        for suite in collection.suites:
-            for test in suite.tests:
-                if not test.failure:
-                    continue
-                failures.append((test.name, test.failure_msg))
-
-    if not len(failures):
-        return
-    print "Failures"
-    print "========"
-    print
-    for failure in failures:
-        print failure[0]
-        print "-" * len(failure[0])
-        print
-        print failure[1]
-        print
-
-
-def display_errors(collections):
-    errors = []
-    for collection in collections:
-        for suite in collection.suites:
-            for test in suite.tests:
-                if not test.error:
-                    continue
-                errors.append((test.name, test.error_msg))
-
-    if not len(errors):
-        return
-    print "Errors"
-    print "======"
-    print
-    for error in errors:
-        print error[0]
-        print "-" * len(error[0])
-        print
-        print error[1]
-        print
-
-
-def display_skipped(collections):
-    skipped = []
-    for collection in collections:
-        for suite in collection.suites:
-            for test in suite.tests:
-                if not test.skipped:
-                    continue
-                name = "%s - %s - %s" % (collection.name, suite.name, test.name)
-                skipped.append((name, test.skipped_msg))
-    if not skipped:
-        return
-    print "Skipped"
-    print "======="
-    print
-    for row in sorted(skipped):
-        print "  %s: %s" % row
-    print
-
-
-def display_table(table):
-    for ridx, row in enumerate(table):
-        new_row = []
-        for col in row:
-            if isinstance(col, float):
-                new_row.append("%4.1fs" % col)
-            elif isinstance(col, int):
-                new_row.append("%d" % col)
-            else:
-                new_row.append(col)
-        table[ridx] = new_row
-    for row in table:
-        fmt = " ".join(["%10s"] * len(row))
-        print fmt % tuple(row)
-
-
-def display_collections(collections, sort):
-    rows = []
-    for collection in collections:
-        total_time = 0.0
-        test_time = 0.0
-        num_tests = 0
-        num_failures = 0
-        num_errors = 0
-        num_skipped = 0
-        for suite in collection.suites:
-            total_time += suite.time
-            test_time += suite.test_time
-            num_tests += suite.num_tests
-            num_failures += suite.num_failures
-            num_errors += suite.num_errors
-            num_skipped += suite.num_skipped
-        cols = (
-            total_time,
-            max(0.0, total_time - test_time),
-            test_time,
-            num_tests,
-            num_failures,
-            num_errors,
-            num_skipped,
-            collection.name + "        ",
-        )
-        rows.append(cols)
-
-    scol = 0
-    if sort == "fixture":
-        scol = 1
-    elif sort == "test":
-        scol = 2
-
-    def skey(row):
-        return (-1.0 * row[scol], row[-1])
-
-    rows.sort(key=skey)
-
-    print "Collections"
-    print "==========="
-    print
-    headers = ["Total", "Fixture", "Test", "Count", "Failed", "Errors", "Skipped"]
-    display_table([headers] + rows)
-    print
-
-
-def display_suites(collections, count, sort):
-    rows = []
-    for collection in collections:
-        for suite in collection.suites:
-            cols = [
-                suite.time,
-                max(0.0, suite.time - suite.test_time),
-                suite.test_time,
-                suite.num_tests,
-                suite.num_failures,
-                suite.num_errors,
-                suite.num_skipped,
-                collection.name + " - " + suite.name,
-            ]
-            rows.append(cols)
-
-    scol = 0
-    if sort == "fixture":
-        scol = 1
-    elif sort == "test":
-        scol = 2
-
-    def skey(row):
-        return (-1.0 * row[scol], row[-1])
-
-    rows.sort(key=skey)
-
-    rows = rows[:count]
-
-    print "Suites"
-    print "======"
-    print
-    headers = ["Total", "Fixture", "Test", "Count", "Failed", "Errors", "Skipped"]
-    display_table([headers] + rows)
-    print
-
-
-def display_tests(collections, count):
-    rows = []
-    for collection in collections:
-        for suite in collection.suites:
-            for test in suite.tests:
-                if test.failure or test.error or test.skipped:
-                    continue
-                fmt = "%s - %s - %s"
-                display = fmt % (collection.name, suite.name, test.name)
-                rows.append((test.time, display))
-
-    def skey(row):
-        return (-1.0 * row[0], row[-1])
-
-    rows.sort(key=skey)
-    rows = rows[:count]
-
-    print "Tests"
-    print "====="
-    print
-    display_table(rows)
-    print
-
-
-def main():
-    args = parse_args()
-
-    if not args.collection:
-        args.collection = ["eunit", "exunit", "mango", "javascript"]
-
-    collections = []
-    for (name, pattern) in TEST_COLLECTIONS.items():
-        if name.lower() not in args.collection:
-            continue
-        collections.append(TestCollection(name, pattern))
-
-    if not args.ignore_failures:
-        display_failures(collections)
-
-    if not args.ignore_errors:
-        display_errors(collections)
-
-    if not args.ignore_skipped:
-        display_skipped(collections)
-
-    display_collections(collections, args.sort)
-
-    if args.all > 0:
-        args.suites = args.all
-        args.tests = args.all
-
-    if args.suites > 0:
-        display_suites(collections, args.suites, args.sort)
-
-    if args.tests > 0:
-        display_tests(collections, args.tests)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/build-aux/sphinx-build b/build-aux/sphinx-build
deleted file mode 100755
index 8ecf43a..0000000
--- a/build-aux/sphinx-build
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh -e
-
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-
-# This script is called by the build system and is used to call sphinx-build if
-# is is available, or alternatively, emit a warning, and perform a no-op. Any
-# required directories or Makefiles are created and stubbed out as appropriate.
-
-if test -z "`which sphinx-build`"; then
-    missing=yes
-    cat << EOF
-WARNING: 'sphinx-build' is needed, and is missing on your system.
-         You might have modified some files without having the
-         proper tools for further handling them.
-EOF
-fi
-
-if test "$2" = "html"; then
-    if test "$missing" != "yes"; then
-        sphinx-build $*
-    else
-        mkdir -p html
-    fi
-fi
diff --git a/build-aux/sphinx-touch b/build-aux/sphinx-touch
deleted file mode 100755
index ed7217d..0000000
--- a/build-aux/sphinx-touch
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh -e
-
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-
-# This script is called by the build system and is used to touch the list of
-# expected output files when sphinx-build is not available. If the files exist,
-# this will satisfy make. If they do not exist, we create of empty files.
-
-if test -z "`which sphinx-build`"; then
-    for file in $*; do
-        mkdir -p `dirname $file`
-        touch $file
-    done
-fi
\ No newline at end of file
diff --git a/config/config.exs b/config/config.exs
deleted file mode 100644
index 8e52433..0000000
--- a/config/config.exs
+++ /dev/null
@@ -1,30 +0,0 @@
-# This file is responsible for configuring your application
-# and its dependencies with the aid of the Mix.Config module.
-use Mix.Config
-
-# This configuration is loaded before any dependency and is restricted
-# to this project. If another project depends on this project, this
-# file won't be loaded nor affect the parent project. For this reason,
-# if you want to provide default values for your application for
-# 3rd-party users, it should be done in your "mix.exs" file.
-
-# You can configure your application as:
-#
-#     config :couchdbtest, key: :value
-#
-# and access this configuration in your application as:
-#
-#     Application.get_env(:couchdbtest, :key)
-#
-# You can also configure a 3rd-party app:
-#
-#     config :logger, level: :info
-#
-
-# It is also possible to import configuration files, relative to this
-# directory. For example, you can emulate configuration per environment
-# by uncommenting the line below and defining dev.exs, test.exs and such.
-# Configuration from the imported file will override the ones defined
-# here (which is why it is important to import them last).
-#
-import_config "#{Mix.env}.exs"
\ No newline at end of file
diff --git a/config/dev.exs b/config/dev.exs
deleted file mode 100644
index d2d855e..0000000
--- a/config/dev.exs
+++ /dev/null
@@ -1 +0,0 @@
-use Mix.Config
diff --git a/config/integration.exs b/config/integration.exs
deleted file mode 100644
index c5a5ed2..0000000
--- a/config/integration.exs
+++ /dev/null
@@ -1,12 +0,0 @@
-use Mix.Config
-
-config :logger,
-  backends: [:console],
-  compile_time_purge_level: :debug,
-  level: :debug
-
-config :kernel,
-  error_logger: false
-
-config :sasl,
-  sasl_error_logger: false
diff --git a/config/prod.exs b/config/prod.exs
deleted file mode 100644
index d2d855e..0000000
--- a/config/prod.exs
+++ /dev/null
@@ -1 +0,0 @@
-use Mix.Config
diff --git a/config/test.exs b/config/test.exs
deleted file mode 100644
index c5a5ed2..0000000
--- a/config/test.exs
+++ /dev/null
@@ -1,12 +0,0 @@
-use Mix.Config
-
-config :logger,
-  backends: [:console],
-  compile_time_purge_level: :debug,
-  level: :debug
-
-config :kernel,
-  error_logger: false
-
-config :sasl,
-  sasl_error_logger: false
diff --git a/configure b/configure
deleted file mode 100755
index 854366c..0000000
--- a/configure
+++ /dev/null
@@ -1,291 +0,0 @@
-#!/bin/sh -e
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-
-# next steps:
-# try running this, figure out what to do with the vars in the generated files
-# in the bottom
-
-# cd into this script’s directory
-rootdir="$(cd "${0%/*}" 2>/dev/null; echo "$PWD")"
-basename=`basename $0`
-
-PACKAGE_AUTHOR_NAME="The Apache Software Foundation"
-
-# TEST=0
-WITH_CURL="false"
-WITH_PROPER="true"
-WITH_FAUXTON=1
-WITH_DOCS=1
-ERLANG_MD5="false"
-SKIP_DEPS=0
-
-COUCHDB_USER="$(whoami 2>/dev/null || echo couchdb)"
-SM_VSN="1.8.5"
-ARCH="$(uname -m)"
-
-. ${rootdir}/version.mk
-COUCHDB_VERSION=${vsn_major}.${vsn_minor}.${vsn_patch}
-
-display_help () {
-    cat << EOF
-Usage: $basename [OPTION]
-
-The $basename command is responsible for generating the build
-system for Apache CouchDB.
-
-Options:
-
-  -h | --help                 display a short help message and exit
-  -u | --user USER            set the username to run as (defaults to $COUCHDB_USER)
-  -c | --with-curl            request that couchjs is linked to cURL (default false)
-  --disable-fauxton           do not build Fauxton
-  --disable-docs              do not build any documentation or manpages
-  --erlang-md5                use erlang for md5 hash operations
-  --dev                       alias for --with-curl --disable-docs --disable-fauxton
-  --spidermonkey-version VSN  specify the version of SpiderMonkey to use (defaults to $SM_VSN)
-  --skip-deps                 do not update erlang dependencies
-  --rebar=PATH                use rebar by specified path (version >=2.6.0 && <3.0 required)
-EOF
-}
-
-parse_opts() {
-    while :; do
-        case $1 in
-            -h|--help)
-                display_help
-                exit
-                ;;
-
-            --with-curl|-c)
-                WITH_CURL="true"
-                shift
-                continue
-                ;;
-
-            --without-proper)
-                WITH_PROPER="false"
-                shift
-                continue
-                ;;
-
-            --disable-fauxton)
-                WITH_FAUXTON=0
-                shift
-                continue
-                ;;
-
-            --disable-docs)
-                WITH_DOCS=0
-                shift
-                continue
-                ;;
-
-            --erlang-md5)
-                ERLANG_MD5="true"
-                shift
-                continue
-                ;;
-
-            --dev)
-                WITH_DOCS=0
-                WITH_FAUXTON=0
-                WITH_CURL="true"
-                shift
-                continue
-                ;;
-
-            --skip-deps)
-                SKIP_DEPS=1
-                shift
-                continue
-                ;;
-
-            --rebar)
-                if [ -x "$2" ]; then
-                    version=`$2 --version 2> /dev/null | grep -o "2\.[6-9]\.[0-9]"`
-                    if [ $? -ne 0 ]; then
-                        printf 'Rebar >=2.6.0 and <3.0.0 required' >&2
-                        exit 1
-                    fi
-                    eval REBAR=$2
-                    shift 2
-                    continue
-                else
-                    printf 'ERROR: "--rebar" requires valid path to executable.\n' >&2
-                    exit 1
-                fi
-                ;;
-
-            --user|-u)
-                if [ -n "$2" ]; then
-                    eval COUCHDB_USER=$2
-                    shift 2
-                    continue
-                else
-                    printf 'ERROR: "--user" requires a non-empty argument.\n' >&2
-                    exit 1
-                fi
-                ;;
-            --user=?*)
-                eval COUCHDB_USER=${1#*=}
-                ;;
-            --user=)
-                printf 'ERROR: "--user" requires a non-empty argument.\n' >&2
-                exit 1
-                ;;
-
-            --spidermonkey-version)
-                if [ -n "$2" ]; then
-                    eval SM_VSN=$2
-                    shift 2
-                    continue
-                else
-                    printf 'ERROR: "--spidermonkey-version" requires a non-empty argument.\n' >&2
-                    exit 1
-                fi
-                ;;
-            --spidermonkey-version=?*)
-                eval SM_VSN=${1#*=}
-                ;;
-            --spidermonkey-version=)
-                printf 'ERROR: "--spidermonkey-version" requires a non-empty argument.\n' >&2
-                exit 1
-                ;;
-            --) # End of options
-                shift
-                break
-                ;;
-            -?*)
-                echo "WARNING: Unknown option '$1', ignoring" >&2
-                shift
-                ;;
-            *) # Done
-                break
-        esac
-        shift
-    done
-}
-
-parse_opts $@
-
-if [ "${ARCH}" = "aarch64" ] && [ "${SM_VSN}" != "1.8.5" ]
-then
-  echo "ERROR: SpiderMonkey 60 is known broken on ARM 64 (aarch64). Use 1.8.5 instead."
-  exit 1
-fi
-
-echo "==> configuring couchdb in rel/couchdb.config"
-cat > rel/couchdb.config << EOF
-% Licensed under the Apache License, Version 2.0 (the "License"); you may not
-% use this file except in compliance with the License. You may obtain a copy of
-% the License at
-%
-%   http://www.apache.org/licenses/LICENSE-2.0
-%
-% Unless required by applicable law or agreed to in writing, software
-% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-% License for the specific language governing permissions and limitations under
-% the License.
-%
-% The contents of this file are auto-generated by configure
-%
-{package_author_name, "$PACKAGE_AUTHOR_NAME"}.
-{prefix, "."}.
-{data_dir, "./data"}.
-{view_index_dir, "./data"}.
-{log_file, "$LOG_FILE"}.
-{fauxton_root, "./share/www"}.
-{user, "$COUCHDB_USER"}.
-{spidermonkey_version, "$SM_VSN"}.
-{node_name, "-name couchdb@127.0.0.1"}.
-{cluster_port, 5984}.
-{backend_port, 5986}.
-EOF
-
-cat > install.mk << EOF
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-#
-# The contents of this file are auto-generated by configure
-#
-package_author_name = $PACKAGE_AUTHOR_NAME
-
-with_fauxton = $WITH_FAUXTON
-with_docs = $WITH_DOCS
-
-user = $COUCHDB_USER
-spidermonkey_version = $SM_VSN
-EOF
-
-cat > $rootdir/config.erl << EOF
-{with_curl, $WITH_CURL}.
-{with_proper, $WITH_PROPER}.
-{erlang_md5, $ERLANG_MD5}.
-{spidermonkey_version, "$SM_VSN"}.
-EOF
-
-install_local_rebar() {
-    if [ ! -x "${rootdir}/bin/rebar" ]; then
-        if [ ! -d "${rootdir}/src/rebar" ]; then
-            git clone --depth 1 https://github.com/apache/couchdb-rebar.git ${rootdir}/src/rebar
-        fi
-        make -C ${rootdir}/src/rebar
-        mv ${rootdir}/src/rebar/rebar ${rootdir}/bin/rebar
-        make -C ${rootdir}/src/rebar clean
-    fi
-}
-
-install_local_emilio() {
-    if [ ! -x "${rootdir}/bin/emilio" ]; then
-        if [ ! -d "${rootdir}/src/emilio" ]; then
-            git clone --depth 1 https://github.com/cloudant-labs/emilio ${rootdir}/src/emilio
-        fi
-        cd ${rootdir}/src/emilio && ${REBAR} compile escriptize; cd ${rootdir}
-        mv ${rootdir}/src/emilio/emilio ${rootdir}/bin/emilio
-        chmod +x ${rootdir}/bin/emilio
-        cd ${rootdir}/src/emilio && ${REBAR} clean; cd ${rootdir}
-    fi
-}
-
-if [ -z "${REBAR}" ]; then
-    install_local_rebar
-    REBAR=${rootdir}/bin/rebar
-fi
-
-install_local_emilio
-
-# only update dependencies, when we are not in a release tarball
-if [ -d .git  -a $SKIP_DEPS -ne 1 ]; then
-    echo "==> updating dependencies"
-    ${REBAR} get-deps update-deps
-fi
-
-# External repos frequently become integrated with the primary repo,
-# resulting in obsolete .git directories, and possible confusion.
-# It is usually a good idea to delete these .git directories.
-for path in $(find src -name .git -type d); do
-    git ls-files --error-unmatch $(dirname $path) > /dev/null 2>&1 && \
-        echo "WARNING unexpected .git directory $path"
-done
-
-echo "You have configured Apache CouchDB, time to relax. Relax."
diff --git a/configure.ps1 b/configure.ps1
deleted file mode 100644
index 65f8517..0000000
--- a/configure.ps1
+++ /dev/null
@@ -1,230 +0,0 @@
-<#
-.SYNOPSIS
-    Configures CouchDB for building.
-.DESCRIPTION
-    This command is responsible for generating the build
-    system for Apache CouchDB.
-
-  -WithCurl                  request that couchjs is linked to cURL (default false)
-  -DisableFauxton            request build process skip building Fauxton (default false)
-  -DisableDocs               request build process skip building documentation (default false)
-  -SkipDeps                  do not update Erlang dependencies (default false)
-  -CouchDBUser USER          set the username to run as (defaults to current user)
-  -SpiderMonkeyVersion VSN   select the version of SpiderMonkey to use (defaults to 1.8.5)
-
-  Installation directories:
-  -Prefix PREFIX             install architecture-independent files in PREFIX
-                               [C:\Program Files\Apache\CouchDB]
-  -ExecPrefix EPREFIX        install architecture-dependent files in EPREFIX
-                               [same as PREFIX]
-
-  Fine tuning of the installation directories:
-  -BinDir DIR               user executables [EPREFIX\bin]
-  -LibexecDir DIR           program executables [EPREFIX\libexec]
-  -LibDir DIR               object code libraries [EPREFIX\lib]
-  -SysconfDir DIR           read-only single-machine data [PREFIX\etc]
-  -DataRootDir DIR          read-only arch.-independent data root [PREFIX\share]
-  -LocalStateDir DIR        modifiable single-machine data [PREFIX\var]
-  -RunStateDir DIR          modifiable single-machine runstate data [LOCALSTATEDIR\run]
-  -DatabaseDir DIR          specify the data directory [LOCALSTATEDIR\lib]
-  -ViewindexDir DIR         specify the view directory [LOCALSTATEDIR\lib]
-  -LogDir DIR               specify the log directory [LOCALSTATEDIR\log]
-  -DataDir DIR              read-only architecture-independent data [DATAROOTDIR]
-  -ManDir DIR               man documentation [DATAROOTDIR\man]
-  -DocDir DIR               documentation root [DATAROOTDIR\doc\apache-couchdb]
-  -HTMLDir DIR              html documentation [DOCDIR\html]
-.LINK
-    http://couchdb.apache.org/
-#>
-
-#REQUIRES -Version 2.0
-[cmdletbinding()]
-
-Param(
-    [switch]$Test = $false,
-    [switch]$WithCurl = $false, # request that couchjs is linked to cURL (default false)
-    [switch]$DisableFauxton = $false, # do not build Fauxton
-    [switch]$DisableDocs = $false, # do not build any documentation or manpages
-    [switch]$SkipDeps = $false, # do not update erlang dependencies
-
-    [ValidateNotNullOrEmpty()]
-    [string]$CouchDBUser = [Environment]::UserName, # set the username to run as (defaults to current user)
-    [ValidateNotNullOrEmpty()]
-    [string]$SpiderMonkeyVersion = "1.8.5", # select the version of SpiderMonkey to use (default 1.8.5)
-    [ValidateNotNullOrEmpty()]
-    [string]$Prefix = "C:\Program Files\Apache\CouchDB", # install architecture-independent file location (default C:\Program Files\Apache\CouchDB)
-    [ValidateNotNullOrEmpty()]
-    [string]$ExecPrefix = $Prefix, # install architecture-dependent file location (default C:\Program Files\Apache\CouchDB)
-    [ValidateNotNullOrEmpty()]
-    [string]$BinDir = "$ExecPrefix\bin", # user executable file location (default $ExecPrefix\bin)
-    [ValidateNotNullOrEmpty()]
-    [string]$LibExecDir = "$ExecPrefix\libexec", # user executable file location (default $ExecPrefix\libexec)
-    [ValidateNotNullOrEmpty()]
-    [string]$LibDir = "$ExecPrefix\lib", # object code libraries (default $ExecPrefix\lib)
-    [ValidateNotNullOrEmpty()]
-
-    [Alias("EtcDir")]
-    [string]$SysConfDir = "$Prefix\etc", # read-only single-machine data (default $Prefix\etc)
-    [ValidateNotNullOrEmpty()]
-    [string]$DataRootDir = "$Prefix\share", # read-only arch.-independent data root (default $Prefix\share)
-
-    [ValidateNotNullOrEmpty()]
-    [string]$LocalStateDir = "$Prefix\var", # modifiable single-machine data (default $Prefix\var)
-    [ValidateNotNullOrEmpty()]
-    [string]$RunStateDir = "$LocalStateDir\run", # modifiable single-machine run state (default $LocalStateDir\run)
-    [ValidateNotNullOrEmpty()]
-    [string]$DatabaseDir = "$LocalStateDir\lib", # database directory (default $LocalStateDir\lib)
-    [ValidateNotNullOrEmpty()]
-    [string]$ViewIndexDir = "$LocalStateDir\lib", # database view index directory (default $LocalStateDir\lib)
-    [ValidateNotNullOrEmpty()]
-    [string]$LogDir = "$LocalStateDir\log", # logging directory (default $LocalStateDir\log)
-
-    [ValidateNotNullOrEmpty()]
-    [string]$DataDir = "$DataRootDir", # read-only arch.-independent data (default $DataRootDir)
-    [ValidateNotNullOrEmpty()]
-    [string]$ManDir = "$DataRootDir\man", # man documentation (default $DataRootDir\man)
-    [ValidateNotNullOrEmpty()]
-
-    [string]$DocDir = "$DataRootDir\doc\apache-couchdb", # man documentation (default $DataRootDir\doc\apache-couchdb)
-    [ValidateNotNullOrEmpty()]
-    [string]$HTMLDir = "$DocDir\html" # html documentation (default $DocDir\html)
-)
-
-
-# determine this script’s directory and change to it
-$rootdir = split-path -parent $MyInvocation.MyCommand.Definition
-Push-Location $rootdir
-[Environment]::CurrentDirectory = $PWD
-
-# We use this for testing this script
-# The test script lives in test/build/test-configure.sh
-If ($Test) {
-    Write-Output @"
-"$Prefix" "$ExecPrefix" "$BinDir" "$LibExecDir" "$SysConfDir" "$DataRootDir" "$DataDir" "$LocalStateDir" "$RunStateDir" "$DocDir" "$LibDir" "$DatabaseDir" "$ViewIndexDir" "$LogDir" "$ManDir" "$HTMLDir"
-"@
-    exit 0
-}
-
-# Translate ./configure variables to CouchDB variables
-$PackageAuthorName="The Apache Software Foundation"
-$InstallDir="$LibDir\couchdb"
-$LogFile="$LogDir\couch.log"
-$BuildFauxton = [int](-not $DisableFauxton)
-$BuildDocs = [int](-not $DisableDocs)
-$Hostname = [System.Net.Dns]::GetHostEntry([string]"localhost").HostName
-
-Write-Verbose "==> configuring couchdb in rel\couchdb.config"
-$CouchDBConfig = @"
-% Licensed under the Apache License, Version 2.0 (the "License"); you may not
-% use this file except in compliance with the License. You may obtain a copy of
-% the License at
-%
-%   http://www.apache.org/licenses/LICENSE-2.0
-%
-% Unless required by applicable law or agreed to in writing, software
-% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-% License for the specific language governing permissions and limitations under
-% the License.
-%
-% The contents of this file are auto-generated by configure
-%
-{package_author_name, "$PackageAuthorName"}.
-{prefix, "."}.
-{data_dir, "./data"}.
-{view_index_dir, "./data"}.
-{log_file, ""}.
-{fauxton_root, "./share/www"}.
-{user, "$CouchDBUser"}.
-{spidermonkey_version, "$SpiderMonkeyVersion"}.
-{node_name, "-name couchdb@localhost"}.
-{cluster_port, 5984}.
-{backend_port, 5986}.
-"@
-$CouchDBConfig | Out-File "$rootdir\rel\couchdb.config" -encoding ascii
-
-#TODO: Output MS NMake file format? Stick with GNU Make?
-$InstallMk = @"
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-#
-# The contents of this file are auto-generated by configure
-#
-package_author_name = $PackageAuthorName
-install_dir = $InstallDir
-
-bin_dir = $BinDir
-libexec_dir = $LibExecDir\couchdb
-doc_dir = $DocDir\couchdb
-sysconf_dir = $SysConfDir\couchdb
-data_dir = $DataDir\couchdb
-
-database_dir = $DatabaseDir
-view_index_dir = $ViewIndexDir
-log_file = $LogFile
-
-html_dir = $HTMLDir
-man_dir = $ManDir
-
-with_fauxton = $BuildFauxton
-with_docs = $BuildDocs
-
-user = $CouchDBUser
-spidermonkey_version = $SpiderMonkeyVersion
-"@
-$InstallMk | Out-File "$rootdir\install.mk" -encoding ascii
-
-$lowercurl = "$WithCurl".ToLower()
-$ConfigERL = @"
-{with_curl, $lowercurl}.
-{spidermonkey_version, "$SpiderMonkeyVersion"}.
-"@
-$ConfigERL | Out-File "$rootdir\config.erl" -encoding ascii
-
-# check for rebar; if not found, build it and add it to our path
-if ((Get-Command "rebar.cmd" -ErrorAction SilentlyContinue) -eq $null)
-{
-   Write-Verbose "==> rebar.cmd not found; bootstrapping..."
-   if (-Not (Test-Path "src\rebar"))
-   {
-      git clone --depth 1 https://github.com/apache/couchdb-rebar.git $rootdir\src\rebar
-   }
-   cmd /c "cd src\rebar && $rootdir\src\rebar\bootstrap.bat"
-   cp $rootdir\src\rebar\rebar $rootdir\bin\rebar
-   cp $rootdir\src\rebar\rebar.cmd $rootdir\bin\rebar.cmd
-   make -C $rootdir\src\rebar clean
-   $env:Path += ";$rootdir\bin"
-}
-
-# check for emilio; if not found, get it and build it
-if ((Get-Command "emilio.cmd" -ErrorAction SilentlyContinue) -eq $null)
-{
-   Write-Verbose "==> emilio.cmd not found; bootstrapping..."
-   if (-Not (Test-Path "src\emilio"))
-   {
-      git clone --depth 1 https://github.com/wohali/emilio $rootdir\src\emilio
-   }
-   cmd /c "cd $rootdir\src\emilio && rebar compile escriptize; cd $rootdir"
-   cp $rootdir\src\emilio\emilio $rootdir\bin\emilio
-   cp $rootdir\src\emilio\bin\emilio.cmd $rootdir\bin\emilio.cmd
-   cmd /c "cd $rootdir\src\emilio && rebar clean; cd $rootdir"
-}
-
-# only update dependencies, when we are not in a release tarball
-if ( (Test-Path .git -PathType Container) -and (-not $SkipDeps) ) {
-    Write-Verbose "==> updating dependencies"
-    rebar get-deps update-deps
-}
-
-Pop-Location
-[Environment]::CurrentDirectory = $PWD
-Write-Verbose "You have configured Apache CouchDB, time to relax. Relax."
diff --git a/dev/boot_node.erl b/dev/boot_node.erl
deleted file mode 100644
index 922a5cc..0000000
--- a/dev/boot_node.erl
+++ /dev/null
@@ -1,148 +0,0 @@
-% Licensed under the Apache License, Version 2.0 (the "License"); you may not
-% use this file except in compliance with the License. You may obtain a copy of
-% the License at
-%
-%   http://www.apache.org/licenses/LICENSE-2.0
-%
-% Unless required by applicable law or agreed to in writing, software
-% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-% License for the specific language governing permissions and limitations under
-% the License.
-
--module(boot_node).
-
--export([start/0]).
-
-
-start() ->
-    monitor_parent(),
-    Apps = load_apps(),
-    Deps = load_deps(Apps),
-    start_all_apps(Deps).
-
-
-monitor_parent() ->
-    {ok, [[PPid]]} = init:get_argument(parent_pid),
-    spawn(fun() -> monitor_parent(PPid) end).
-
-
-monitor_parent(PPid) ->
-    timer:sleep(1000),
-    case os:type() of
-        {unix, _} ->
-            case os:cmd("kill -0 " ++ PPid) of
-                "" ->
-                    monitor_parent(PPid);
-                _Else ->
-                    % Assume _Else is a no such process error
-                    init:stop()
-            end;
-        {win32, _} ->
-            Fmt = "tasklist /fi \"PID eq ~s\" /fo csv /nh",
-            Retval = os:cmd(io_lib:format(Fmt, [PPid])),
-            case re:run(Retval, "^\"python.exe\",*") of
-                {match, _} ->
-                    monitor_parent(PPid);
-                nomatch ->
-                    init:stop()
-            end
-    end.
-
-
-load_apps() ->
-    {ok, [[Config]]} = init:get_argument(reltool_config),
-    {ok, Terms} = file:consult(Config),
-    load_apps(Terms).
-
-
-load_apps([]) ->
-    erlang:error(failed_to_load_apps);
-load_apps([{sys, Terms} | _]) ->
-    load_apps(Terms);
-load_apps([{rel, "couchdb", _Vsn, Apps} | _]) ->
-    Apps;
-load_apps([_ | Rest]) ->
-    load_apps(Rest).
-
-
-load_deps(Apps) ->
-    load_deps(Apps, dict:new()).
-
-
-load_deps([], Deps) ->
-    Deps;
-load_deps([App | Rest], Deps) ->
-    load_app(App),
-    case application:get_key(App, applications) of
-        {ok, AppDeps0} ->
-            NewDeps = dict:store(App, AppDeps0, Deps),
-            Filter = fun(A) -> not dict:is_key(A, Deps) end,
-            AppDeps = lists:filter(Filter, AppDeps0),
-            load_deps(AppDeps ++ Rest, NewDeps);
-        _ ->
-            NewDeps = dict:store(App, [], Deps),
-            load_deps(Rest, NewDeps)
-    end.
-
-
-load_app(App) ->
-    case application:load(App) of
-        ok ->
-            case application:get_key(App, modules) of
-                {ok, Modules} ->
-                    lists:foreach(fun(Mod) ->
-                        case load_app_module(Mod) of
-                            ok -> ok;
-                            E -> io:format("~p = load_app_module(~p)~n", [E, Mod])
-                        end
-                    end, Modules);
-                undefined ->
-                    ok
-            end;
-        {error, {already_loaded, App}} ->
-            ok;
-        Error ->
-            Error
-    end.
-
-
-load_app_module(Mod) ->
-    case code:is_loaded(Mod) of
-        {file, _} ->
-            ok;
-        _ ->
-            case code:load_file(Mod) of
-                {module, Mod} ->
-                    ok;
-                Error ->
-                    Error
-            end
-    end.
-
-
-start_all_apps(Deps) ->
-    lists:foldl(fun(App, Started) ->
-        start_app(App, Deps, Started)
-    end, [], dict:fetch_keys(Deps)).
-
-
-start_app(App, Deps, Started) ->
-    case lists:member(App, Started) of
-        true ->
-            Started;
-        false ->
-            AppDeps = dict:fetch(App, Deps),
-            NowStarted = lists:foldl(fun(Dep, Acc) ->
-                start_app(Dep, Deps, Acc)
-            end, Started, AppDeps),
-            case application:start(App) of
-                ok ->
-                    [App | NowStarted];
-                {error, {already_started,App}} ->
-                    % Kernel causes this
-                    [App | NowStarted];
-                Else ->
-                    erlang:error(Else)
-            end
-    end.
diff --git a/dev/pbkdf2.py b/dev/pbkdf2.py
deleted file mode 100644
index 4416f86..0000000
--- a/dev/pbkdf2.py
+++ /dev/null
@@ -1,201 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-    pbkdf2
-    ~~~~~~
-
-    This module implements pbkdf2 for Python.  It also has some basic
-    tests that ensure that it works.  The implementation is straightforward
-    and uses stdlib only stuff and can be easily be copy/pasted into
-    your favourite application.
-
-    Use this as replacement for bcrypt that does not need a c implementation
-    of a modified blowfish crypto algo.
-
-    Example usage:
-
-    >>> pbkdf2_hex('what i want to hash', 'the random salt')
-    'fa7cc8a2b0a932f8e6ea42f9787e9d36e592e0c222ada6a9'
-
-    How to use this:
-
-    1.  Use a constant time string compare function to compare the stored hash
-        with the one you're generating::
-
-            def safe_str_cmp(a, b):
-                if len(a) != len(b):
-                    return False
-                rv = 0
-                for x, y in izip(a, b):
-                    rv |= ord(x) ^ ord(y)
-                return rv == 0
-
-    2.  Use `os.urandom` to generate a proper salt of at least 8 byte.
-        Use a unique salt per hashed password.
-
-    3.  Store ``algorithm$salt:costfactor$hash`` in the database so that
-        you can upgrade later easily to a different algorithm if you need
-        one.  For instance ``PBKDF2-256$thesalt:10000$deadbeef...``.
-
-
-    :copyright: (c) Copyright 2011 by Armin Ronacher.
-    :license: BSD, see LICENSE for more details.
-"""
-from binascii import hexlify
-import hmac
-import hashlib
-import sys
-from struct import Struct
-from operator import xor
-from itertools import starmap
-
-PY3 = sys.version_info[0] == 3
-
-if not PY3:
-    from itertools import izip as zip
-
-if PY3:
-    text_type = str
-else:
-    text_type = unicode
-
-
-_pack_int = Struct(">I").pack
-
-
-def bytes_(s, encoding="utf8", errors="strict"):
-    if isinstance(s, text_type):
-        return s.encode(encoding, errors)
-    return s
-
-
-def hexlify_(s):
-    if PY3:
-        return str(hexlify(s), encoding="utf8")
-    else:
-        return s.encode("hex")
-
-
-def range_(*args):
-    if PY3:
-        return range(*args)
-    else:
-        return xrange(*args)
-
-
-def pbkdf2_hex(data, salt, iterations=1000, keylen=24, hashfunc=None):
-    """Like :func:`pbkdf2_bin` but returns a hex encoded string."""
-    return hexlify_(pbkdf2_bin(data, salt, iterations, keylen, hashfunc))
-
-
-def pbkdf2_bin(data, salt, iterations=1000, keylen=24, hashfunc=None):
-    """Returns a binary digest for the PBKDF2 hash algorithm of `data`
-    with the given `salt`.  It iterates `iterations` time and produces a
-    key of `keylen` bytes.  By default SHA-1 is used as hash function,
-    a different hashlib `hashfunc` can be provided.
-    """
-    hashfunc = hashfunc or hashlib.sha1
-    mac = hmac.new(bytes_(data), None, hashfunc)
-
-    def _pseudorandom(x, mac=mac):
-        h = mac.copy()
-        h.update(bytes_(x))
-        if PY3:
-            return [x for x in h.digest()]
-        else:
-            return map(ord, h.digest())
-
-    buf = []
-    for block in range_(1, -(-keylen // mac.digest_size) + 1):
-        rv = u = _pseudorandom(bytes_(salt) + _pack_int(block))
-        for i in range_(iterations - 1):
-            if PY3:
-                u = _pseudorandom(bytes(u))
-            else:
-                u = _pseudorandom("".join(map(chr, u)))
-            rv = starmap(xor, zip(rv, u))
-        buf.extend(rv)
-    if PY3:
-        return bytes(buf)[:keylen]
-    else:
-        return "".join(map(chr, buf))[:keylen]
-
-
-def test():
-    failed = []
-
-    def check(data, salt, iterations, keylen, expected):
-        rv = pbkdf2_hex(data, salt, iterations, keylen)
-        if rv != expected:
-            print("Test failed:")
-            print("  Expected:   %s" % expected)
-            print("  Got:        %s" % rv)
-            print("  Parameters:")
-            print("    data=%s" % data)
-            print("    salt=%s" % salt)
-            print("    iterations=%d" % iterations)
-            failed.append(1)
-
-    # From RFC 6070
-    check("password", "salt", 1, 20, "0c60c80f961f0e71f3a9b524af6012062fe037a6")
-    check("password", "salt", 2, 20, "ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957")
-    check("password", "salt", 4096, 20, "4b007901b765489abead49d926f721d065a429c1")
-    check(
-        "passwordPASSWORDpassword",
-        "saltSALTsaltSALTsaltSALTsaltSALTsalt",
-        4096,
-        25,
-        "3d2eec4fe41c849b80c8d83662c0e44a8b291a964cf2f07038",
-    )
-    check("pass\x00word", "sa\x00lt", 4096, 16, "56fa6aa75548099dcc37d7f03425e0c3")
-    # This one is from the RFC but it just takes for ages
-    ##check('password', 'salt', 16777216, 20,
-    ##      'eefe3d61cd4da4e4e9945b3d6ba2158c2634e984')
-
-    # From Crypt-PBKDF2
-    check(
-        "password", "ATHENA.MIT.EDUraeburn", 1, 16, "cdedb5281bb2f801565a1122b2563515"
-    )
-    check(
-        "password",
-        "ATHENA.MIT.EDUraeburn",
-        1,
-        32,
-        "cdedb5281bb2f801565a1122b25635150ad1f7a04bb9f3a333ecc0e2e1f70837",
-    )
-    check(
-        "password", "ATHENA.MIT.EDUraeburn", 2, 16, "01dbee7f4a9e243e988b62c73cda935d"
-    )
-    check(
-        "password",
-        "ATHENA.MIT.EDUraeburn",
-        2,
-        32,
-        "01dbee7f4a9e243e988b62c73cda935da05378b93244ec8f48a99e61ad799d86",
-    )
-    check(
-        "password",
-        "ATHENA.MIT.EDUraeburn",
-        1200,
-        32,
-        "5c08eb61fdf71e4e4ec3cf6ba1f5512ba7e52ddbc5e5142f708a31e2e62b1e13",
-    )
-    check(
-        "X" * 64,
-        "pass phrase equals block size",
-        1200,
-        32,
-        "139c30c0966bc32ba55fdbf212530ac9c5ec59f1a452f5cc9ad940fea0598ed1",
-    )
-    check(
-        "X" * 65,
-        "pass phrase exceeds block size",
-        1200,
-        32,
-        "9ccad6d468770cd51b10e6a68721be611a8b4d282601db3b36be9246915ec82a",
-    )
-
-    raise SystemExit(bool(failed))
-
-
-if __name__ == "__main__":
-    test()
diff --git a/dev/remsh b/dev/remsh
deleted file mode 100755
index b9b81d2..0000000
--- a/dev/remsh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-
-if [ -z $NODE ]; then
-    if [ -z $1 ]; then
-        NODE=1
-    else
-        NODE=$1
-    fi
-fi
-
-if [ -z $HOST ]; then
-    HOST="127.0.0.1"
-fi
-
-NAME="remsh$$@$HOST"
-NODE="node$NODE@$HOST"
-COOKIE=monster
-erl -name $NAME -remsh $NODE -setcookie $COOKIE -hidden
diff --git a/dev/run b/dev/run
deleted file mode 100755
index 6d8bc52..0000000
--- a/dev/run
+++ /dev/null
@@ -1,836 +0,0 @@
-#!/usr/bin/env python3
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may not
-# use this file except in compliance with the License. You may obtain a copy of
-# the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-
-import atexit
-import base64
-import contextlib
-import functools
-import glob
-import inspect
-import json
-import ntpath
-import optparse
-import os
-import posixpath
-import re
-import socket
-import subprocess as sp
-import sys
-import time
-import uuid
-import traceback
-from configparser import ConfigParser
-
-from pbkdf2 import pbkdf2_hex
-
-COMMON_SALT = uuid.uuid4().hex
-
-try:
-    from urllib.request import urlopen
-except ImportError:
-    from urllib.request import urlopen
-
-try:
-    import http.client as httpclient
-except ImportError:
-    import http.client as httpclient
-
-
-def toposixpath(path):
-    if os.sep == ntpath.sep:
-        return path.replace(ntpath.sep, posixpath.sep)
-    else:
-        return path
-
-
-def log(msg):
-    def decorator(func):
-        @functools.wraps(func)
-        def wrapper(*args, **kwargs):
-            def print_(chars):
-                if log.verbose:
-                    sys.stdout.write(chars)
-                    sys.stdout.flush()
-
-            argnames = list(inspect.signature(func).parameters.keys())
-            callargs = dict(list(zip(argnames, args)))
-            callargs.update(kwargs)
-            print_("[ * ] " + msg.format(**callargs) + " ... ")
-            try:
-                res = func(*args, **kwargs)
-            except KeyboardInterrupt:
-                print_("ok\n")
-            except Exception as err:
-                print_("failed: %s\n" % err)
-                raise
-            else:
-                print_("ok\n")
-                return res
-
-        return wrapper
-
-    return decorator
-
-
-log.verbose = True
-
-
-def main():
-    ctx = setup()
-    startup(ctx)
-    if ctx["cmd"]:
-        run_command(ctx, ctx["cmd"])
-    else:
-        join(ctx, cluster_port(ctx, 1), *ctx["admin"])
-
-
-def setup():
-    opts, args = setup_argparse()
-    ctx = setup_context(opts, args)
-    setup_logging(ctx)
-    setup_dirs(ctx)
-    check_beams(ctx)
-    setup_configs(ctx)
-    return ctx
-
-
-def setup_logging(ctx):
-    log.verbose = ctx["verbose"]
-
-
-def setup_argparse():
-    parser = get_args_parser()
-    return parser.parse_args()
-
-
-def get_args_parser():
-    parser = optparse.OptionParser(description="Runs CouchDB 2.0 dev cluster")
-    parser.add_option(
-        "-a",
-        "--admin",
-        metavar="USER:PASS",
-        default=None,
-        help="Add an admin account to the development cluster",
-    )
-    parser.add_option(
-        "-n",
-        "--nodes",
-        metavar="nodes",
-        default=3,
-        type=int,
-        help="Number of development nodes to be spun up",
-    )
-    parser.add_option(
-        "-q",
-        "--quiet",
-        action="store_false",
-        dest="verbose",
-        default=True,
-        help="Don't print anything to STDOUT",
-    )
-    parser.add_option(
-        "--with-admin-party-please",
-        dest="with_admin_party",
-        default=False,
-        action="store_true",
-        help="Runs a dev cluster with admin party mode on",
-    )
-    parser.add_option(
-        "--enable-erlang-views",
-        action="store_true",
-        help="Enables the Erlang view server",
-    )
-    parser.add_option(
-        "--no-join",
-        dest="no_join",
-        default=False,
-        action="store_true",
-        help="Do not join nodes on boot",
-    )
-    parser.add_option(
-        "--with-haproxy",
-        dest="with_haproxy",
-        default=False,
-        action="store_true",
-        help="Use HAProxy",
-    )
-    parser.add_option(
-        "--haproxy", dest="haproxy", default="haproxy", help="HAProxy executable path"
-    )
-    parser.add_option(
-        "--haproxy-port", dest="haproxy_port", default="5984", help="HAProxy port"
-    )
-    parser.add_option(
-        "--node-number",
-        dest="node_number",
-        type=int,
-        default=1,
-        help="The node number to seed them when creating the node(s)",
-    )
-    parser.add_option(
-        "-c",
-        "--config-overrides",
-        action="append",
-        default=[],
-        help="Optional key=val config overrides. Can be repeated",
-    )
-    parser.add_option(
-        "--degrade-cluster",
-        dest="degrade_cluster",
-        type=int,
-        default=0,
-        help="The number of nodes that should be stopped after cluster config",
-    )
-    parser.add_option(
-        "--no-eval",
-        action="store_true",
-        default=False,
-        help="Do not eval subcommand output",
-    )
-    parser.add_option(
-        "--auto-ports",
-        dest="auto_ports",
-        default=False,
-        action="store_true",
-        help="Select available ports for nodes automatically",
-    )
-    parser.add_option(
-        "--extra_args",
-        dest="extra_args",
-        default=None,
-        help="Extra arguments to pass to beam process",
-    )
-    parser.add_option(
-        "-l",
-        "--locald-config",
-        dest="locald_configs",
-        action="append",
-        default=[],
-        help="Path to config to place in 'local.d'. Can be repeated",
-    )
-    return parser
-
-
-def setup_context(opts, args):
-    fpath = os.path.abspath(__file__)
-    return {
-        "N": opts.nodes,
-        "no_join": opts.no_join,
-        "with_admin_party": opts.with_admin_party,
-        "enable_erlang_views": opts.enable_erlang_views,
-        "admin": opts.admin.split(":", 1) if opts.admin else None,
-        "nodes": ["node%d" % (i + opts.node_number) for i in range(opts.nodes)],
-        "node_number": opts.node_number,
-        "degrade_cluster": opts.degrade_cluster,
-        "devdir": os.path.dirname(fpath),
-        "rootdir": os.path.dirname(os.path.dirname(fpath)),
-        "cmd": " ".join(args),
-        "verbose": opts.verbose,
-        "with_haproxy": opts.with_haproxy,
-        "haproxy": opts.haproxy,
-        "haproxy_port": opts.haproxy_port,
-        "config_overrides": opts.config_overrides,
-        "no_eval": opts.no_eval,
-        "extra_args": opts.extra_args,
-        "reset_logs": True,
-        "procs": [],
-        "auto_ports": opts.auto_ports,
-        "locald_configs": opts.locald_configs,
-    }
-
-
-@log("Setup environment")
-def setup_dirs(ctx):
-    ensure_dir_exists(ctx["devdir"], "logs")
-
-
-def ensure_dir_exists(root, *segments):
-    path = os.path.join(root, *segments)
-    if not os.path.exists(path):
-        os.makedirs(path)
-    return path
-
-
-@log("Ensure CouchDB is built")
-def check_beams(ctx):
-    for fname in glob.glob(os.path.join(ctx["devdir"], "*.erl")):
-        sp.check_call(["erlc", "-o", ctx["devdir"] + os.sep, fname])
-
-
-@log("Prepare configuration files")
-def setup_configs(ctx):
-    for idx, node in enumerate(ctx["nodes"]):
-        cluster_port, backend_port = get_ports(ctx, idx + ctx["node_number"])
-        env = {
-            "prefix": toposixpath(ctx["rootdir"]),
-            "package_author_name": "The Apache Software Foundation",
-            "data_dir": toposixpath(
-                ensure_dir_exists(ctx["devdir"], "lib", node, "data")
-            ),
-            "view_index_dir": toposixpath(
-                ensure_dir_exists(ctx["devdir"], "lib", node, "data")
-            ),
-            "node_name": "-name %s@127.0.0.1" % node,
-            "cluster_port": cluster_port,
-            "backend_port": backend_port,
-            "uuid": "fake_uuid_for_dev",
-            "_default": "",
-        }
-        write_config(ctx, node, env)
-        write_locald_configs(ctx, node, env)
-    generate_haproxy_config(ctx)
-
-
-def write_locald_configs(ctx, node, env):
-    for locald_config in ctx["locald_configs"]:
-        config_src = os.path.join(ctx["rootdir"], locald_config)
-        if os.path.exists(config_src):
-            config_filename = os.path.basename(config_src)
-            config_tgt = os.path.join(
-                ctx["devdir"], "lib", node, "etc", "local.d", config_filename
-            )
-            with open(config_src) as handle:
-                content = handle.read()
-            with open(config_tgt, "w") as handle:
-                handle.write(content)
-
-
-def generate_haproxy_config(ctx):
-    haproxy_config = os.path.join(ctx["devdir"], "lib", "haproxy.cfg")
-    template = os.path.join(ctx["rootdir"], "rel", "haproxy.cfg")
-
-    with open(template) as handle:
-        config = handle.readlines()
-
-    out = []
-    for line in config:
-        match = re.match("(.*?)<<(.*?)>>(.*?)", line, re.S)
-        if match:
-            prefix, template, suffix = match.groups()
-            for node in ctx["nodes"]:
-                node_idx = int(node.replace("node", ""))
-                text = template.format(
-                    **{"node_idx": node_idx, "port": cluster_port(ctx, node_idx)}
-                )
-                out.append(prefix + text + suffix)
-        else:
-            out.append(line)
-
-    with open(haproxy_config, "w") as handle:
-        handle.write("\n".join(out))
-
-
-def apply_config_overrides(ctx, content):
-    for kv_str in ctx["config_overrides"]:
-        key, val = kv_str.split("=")
-        key, val = key.strip(), val.strip()
-        match = "[;=]{0,2}%s.*" % key
-        repl = "%s = %s" % (key, val)
-        content = re.sub(match, repl, content)
-    return content
-
-
-def get_ports(ctx, idnode):
-    assert idnode
-    if idnode <= 5 and not ctx["auto_ports"]:
-        return ((10000 * idnode) + 5984, (10000 * idnode) + 5986)
-    else:
-        return tuple(get_available_ports(2))
-
-
-def get_available_ports(num):
-    ports = []
-    while len(ports) < num:
-        with contextlib.closing(
-            socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        ) as soc:
-            soc.bind(("localhost", 0))
-            _, port = soc.getsockname()
-            if port not in ports:
-                ports.append(port)
-    return ports
-
-
-def get_node_config(ctx, node_idx):
-    node = "node{}".format(node_idx)
-    config_dir = os.path.join(ctx["devdir"], "lib", node, "etc")
-    config = ConfigParser()
-    config.read(
-        [os.path.join(config_dir, "default.ini"), os.path.join(config_dir, "local.ini")]
-    )
-    return config
-
-
-def backend_port(ctx, n):
-    return int(get_node_config(ctx, n).get("httpd", "port"))
-
-
-def cluster_port(ctx, n):
-    return int(get_node_config(ctx, n).get("chttpd", "port"))
-
-
-def write_config(ctx, node, env):
-    etc_src = os.path.join(ctx["rootdir"], "rel", "overlay", "etc")
-    etc_tgt = ensure_dir_exists(ctx["devdir"], "lib", node, "etc")
-
-    for fname in glob.glob(os.path.join(etc_src, "*")):
-        base = os.path.basename(fname)
-        tgt = os.path.join(etc_tgt, base)
-
-        if os.path.isdir(fname):
-            continue
-
-        with open(fname) as handle:
-            content = handle.read()
-
-        for key in env:
-            content = re.sub("{{%s}}" % key, str(env[key]), content)
-
-        if base == "default.ini":
-            content = hack_default_ini(ctx, node, content)
-            content = apply_config_overrides(ctx, content)
-        elif base == "local.ini":
-            content = hack_local_ini(ctx, content)
-
-        with open(tgt, "w") as handle:
-            handle.write(content)
-
-    ensure_dir_exists(etc_tgt, "local.d")
-
-
-def boot_haproxy(ctx):
-    if not ctx["with_haproxy"]:
-        return
-    config = os.path.join(ctx["devdir"], "lib", "haproxy.cfg")
-    cmd = [ctx["haproxy"], "-f", config]
-    logfname = os.path.join(ctx["devdir"], "logs", "haproxy.log")
-    log = open(logfname, "w")
-    env = os.environ.copy()
-    if "HAPROXY_PORT" not in env:
-        env["HAPROXY_PORT"] = ctx["haproxy_port"]
-    return sp.Popen(
-        " ".join(cmd), shell=True, stdin=sp.PIPE, stdout=log, stderr=sp.STDOUT, env=env
-    )
-
-
-def hack_default_ini(ctx, node, contents):
-
-    contents = re.sub(
-        "^\[httpd\]$",
-        "[httpd]\nenable = true",
-        contents,
-        flags=re.MULTILINE,
-    )
-
-    if ctx["enable_erlang_views"]:
-        contents = re.sub(
-            "^\[native_query_servers\]$",
-            "[native_query_servers]\nerlang = {couch_native_process, start_link, []}",
-            contents,
-            flags=re.MULTILINE,
-        )
-    contents = re.sub("n=3", "n=%s" % ctx["N"], contents)
-    return contents
-
-
-def hack_local_ini(ctx, contents):
-    # make sure all three nodes have the same secret
-    secret_line = "secret = %s\n" % COMMON_SALT
-    previous_line = "; require_valid_user = false\n"
-    contents = contents.replace(previous_line, previous_line + secret_line)
-
-    if ctx["with_admin_party"]:
-        os.environ["COUCHDB_TEST_ADMIN_PARTY_OVERRIDE"] = "1"
-        ctx["admin"] = ("Admin Party!", "You do not need any password.")
-        return contents
-
-    # handle admin credentials passed from cli or generate own one
-    if ctx["admin"] is None:
-        ctx["admin"] = user, pswd = "root", gen_password()
-    else:
-        user, pswd = ctx["admin"]
-
-    return contents + "\n%s = %s" % (user, hashify(pswd))
-
-
-def gen_password():
-    # TODO: figure how to generate something more friendly here
-    return base64.b64encode(os.urandom(6)).decode()
-
-
-def hashify(pwd, salt=COMMON_SALT, iterations=10, keylen=20):
-    """
-    Implements password hashing according to:
-      - https://issues.apache.org/jira/browse/COUCHDB-1060
-      - https://issues.apache.org/jira/secure/attachment/12492631/0001-Integrate-PBKDF2.patch
-
-    This test uses 'candeira:candeira'
-
-    >>> hashify(candeira)
-    -pbkdf2-99eb34d97cdaa581e6ba7b5386e112c265c5c670,d1d2d4d8909c82c81b6c8184429a0739,10
-    """
-    derived_key = pbkdf2_hex(pwd, salt, iterations, keylen)
-    return "-pbkdf2-%s,%s,%s" % (derived_key, salt, iterations)
-
-
-def startup(ctx):
-    atexit.register(kill_processes, ctx)
-    boot_nodes(ctx)
-    ensure_all_nodes_alive(ctx)
-    if ctx["no_join"]:
-        return
-    if ctx["with_admin_party"]:
-        cluster_setup_with_admin_party(ctx)
-    else:
-        cluster_setup(ctx)
-    if ctx["degrade_cluster"] > 0:
-        degrade_cluster(ctx)
-
-
-def kill_processes(ctx):
-    for proc in ctx["procs"]:
-        if proc and proc.returncode is None:
-            proc.kill()
-
-
-def degrade_cluster(ctx):
-    if ctx["with_haproxy"]:
-        haproxy_proc = ctx["procs"].pop()
-    for i in range(0, ctx["degrade_cluster"]):
-        proc = ctx["procs"].pop()
-        if proc is not None:
-            kill_process(proc)
-    if ctx["with_haproxy"]:
-        ctx["procs"].append(haproxy_proc)
-
-
-@log("Stoping proc {proc.pid}")
-def kill_process(proc):
-    if proc and proc.returncode is None:
-        proc.kill()
-
-
-def boot_nodes(ctx):
-    for node in ctx["nodes"]:
-        ctx["procs"].append(boot_node(ctx, node))
-    haproxy_proc = boot_haproxy(ctx)
-    if haproxy_proc is not None:
-        ctx["procs"].append(haproxy_proc)
-
-
-def ensure_all_nodes_alive(ctx):
-    status = dict((num, False) for num in list(range(ctx["N"])))
-    for _ in range(10):
-        for num in range(ctx["N"]):
-            if status[num]:
-                continue
-            local_port = cluster_port(ctx, num + 1)
-            url = "http://127.0.0.1:{0}/".format(local_port)
-            try:
-                check_node_alive(url)
-            except:
-                pass
-            else:
-                status[num] = True
-        if all(status.values()):
-            return
-        time.sleep(1)
-    if not all(status.values()):
-        print("Failed to start all the nodes." " Check the dev/logs/*.log for errors.")
-        sys.exit(1)
-
-
-@log("Check node at {url}")
-def check_node_alive(url):
-    error = None
-    for _ in range(10):
-        try:
-            with contextlib.closing(urlopen(url)):
-                pass
-        except Exception as exc:
-            error = exc
-            time.sleep(1)
-        else:
-            error = None
-            break
-    if error is not None:
-        raise error
-
-
-def set_boot_env(ctx):
-
-    # fudge fauxton path
-    if os.path.exists("src/fauxton/dist/release"):
-        fauxton_root = "src/fauxton/dist/release"
-    else:
-        fauxton_root = "share/www"
-
-    os.environ["COUCHDB_FAUXTON_DOCROOT"] = fauxton_root
-
-    # fudge default query server paths
-    couchjs = os.path.join(ctx["rootdir"], "src", "couch", "priv", "couchjs")
-    mainjs = os.path.join(ctx["rootdir"], "share", "server", "main.js")
-    coffeejs = os.path.join(ctx["rootdir"], "share", "server", "main-coffee.js")
-
-    qs_javascript = toposixpath("%s %s" % (couchjs, mainjs))
-    qs_coffescript = toposixpath("%s %s" % (couchjs, coffeejs))
-
... 209856 lines suppressed ...