You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by gi...@apache.org on 2026/06/03 12:42:17 UTC

(iceberg-rust) branch gh-pages updated: deploy: 83e7b107e86c25e5583b7e605bf8a3cb7962a1fc

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

github-actions[bot] pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/iceberg-rust.git


The following commit(s) were added to refs/heads/gh-pages by this push:
     new 037d3a9f3 deploy: 83e7b107e86c25e5583b7e605bf8a3cb7962a1fc
037d3a9f3 is described below

commit 037d3a9f33f6a211307bce9cbd1c7dbb8fac9efb
Author: blackmwk <bl...@users.noreply.github.com>
AuthorDate: Wed Jun 3 12:42:10 2026 +0000

    deploy: 83e7b107e86c25e5583b7e605bf8a3cb7962a1fc
---
 api/iceberg/all.html                               |    2 +-
 api/iceberg/fn.drop_table_data.html                |    6 +-
 api/iceberg/inspect/struct.ManifestsTable.html     |    4 +-
 api/iceberg/memory/struct.MemoryCatalog.html       |   12 +-
 api/iceberg/spec/constant.MAIN_BRANCH.html         |    2 +-
 api/iceberg/spec/enum.ManifestContentType.html     |    8 +-
 api/iceberg/spec/enum.Operation.html               |   12 +-
 api/iceberg/spec/enum.SnapshotRetention.html       |   12 +-
 api/iceberg/spec/index.html                        |    3 +-
 .../manifest_list/struct.ManifestListReader.html   |   11 +
 api/iceberg/spec/sidebar-items.js                  |    2 +-
 api/iceberg/spec/struct.FieldSummary.html          |   12 +-
 api/iceberg/spec/struct.ManifestFile.html          |   16 +-
 .../struct.ManifestListReader.html}                |    9 +-
 api/iceberg/spec/struct.ManifestListWriter.html    |   16 +-
 api/iceberg/spec/struct.Snapshot.html              |   39 +-
 api/iceberg/spec/struct.SnapshotReference.html     |   14 +-
 api/iceberg/spec/struct.SnapshotRowRange.html      |    6 +-
 api/iceberg/spec/struct.Summary.html               |   10 +-
 api/iceberg/spec/type.SnapshotRef.html             |    2 +-
 api/iceberg/struct.MemoryCatalog.html              |   12 +-
 api/iceberg/table/index.html                       |    2 +-
 api/iceberg/table/struct.StaticTable.html          |   16 +-
 api/iceberg/table/struct.Table.html                |    7 +-
 api/iceberg/trait.Catalog.html                     |    2 +-
 api/iceberg/transaction/index.html                 |    2 +-
 api/iceberg_catalog_glue/struct.GlueCatalog.html   |   12 +-
 api/iceberg_catalog_hms/struct.HmsCatalog.html     |   12 +-
 api/iceberg_catalog_sql/struct.SqlCatalog.html     |   12 +-
 api/search.index/0001ec87c893.js                   |    1 -
 api/search.index/001b3bf61284.js                   |    1 +
 api/search.index/00b197304bce.js                   |    1 +
 api/search.index/00e903650530.js                   |    1 -
 api/search.index/0143cd4ead51.js                   |    1 +
 api/search.index/01e3d67ae99a.js                   |    1 -
 api/search.index/020d51b32513.js                   |    1 -
 api/search.index/026268386069.js                   |    1 -
 api/search.index/029000caaaab.js                   |    1 +
 api/search.index/02dbd457c84e.js                   |    1 +
 api/search.index/02f986cb7837.js                   |    1 +
 api/search.index/0349e10e2b5a.js                   |    1 +
 api/search.index/0383e44cf79c.js                   |    1 -
 api/search.index/03855167089c.js                   |    1 +
 api/search.index/03c7ecdbc7b0.js                   |    1 +
 api/search.index/04052d5f047c.js                   |    1 +
 api/search.index/04090ffccf87.js                   |    1 +
 api/search.index/041b23a188de.js                   |    1 -
 api/search.index/0439e1dc0aa0.js                   |    1 -
 api/search.index/045d8a1cb201.js                   |    1 +
 api/search.index/0466a4c20b21.js                   |    1 +
 api/search.index/048551dcfa92.js                   |    1 +
 api/search.index/049b9aabb204.js                   |    1 +
 api/search.index/04b594aedeb7.js                   |    1 -
 api/search.index/05186f84488e.js                   |    1 -
 api/search.index/0557fef637bc.js                   |    1 +
 api/search.index/0565051f9d81.js                   |    1 -
 api/search.index/05faaabdd817.js                   |    1 +
 api/search.index/0607b966b2a6.js                   |    1 -
 api/search.index/060be8b46895.js                   |    1 -
 api/search.index/0624a0c7860a.js                   |    1 +
 api/search.index/062af9437302.js                   |    1 +
 api/search.index/063e6626b5b2.js                   |    1 +
 api/search.index/065ded9a384a.js                   |    1 +
 api/search.index/066442e40aa4.js                   |    1 +
 api/search.index/06b933fde357.js                   |    1 -
 api/search.index/06c7179f9e8b.js                   |    1 -
 api/search.index/070bce9d7a72.js                   |    1 -
 api/search.index/07a8efdf406a.js                   |    1 +
 api/search.index/07bb9a6252b0.js                   |    1 -
 api/search.index/097c0980ced4.js                   |    1 -
 api/search.index/09b9e938977b.js                   |    1 +
 api/search.index/09d09bdb5908.js                   |    1 -
 api/search.index/0a7ec90dcd43.js                   |    1 -
 api/search.index/0a922a070622.js                   |    1 +
 api/search.index/0b1c05dddc05.js                   |    1 +
 api/search.index/0bfdaa3bdb39.js                   |    1 +
 api/search.index/0bfed27cc662.js                   |    1 -
 api/search.index/0c1d08f96aab.js                   |    1 +
 api/search.index/0c1ec9b9394f.js                   |    1 +
 api/search.index/0d049d0cdad7.js                   |    1 -
 api/search.index/0d0b169a4edf.js                   |    1 +
 api/search.index/0d3e9b83a3fb.js                   |    1 +
 api/search.index/0d7ac7114d14.js                   |    1 +
 api/search.index/0da44cf9f551.js                   |    1 +
 api/search.index/0df1907f50cd.js                   |    1 -
 api/search.index/0e02701d4912.js                   |    1 -
 api/search.index/0e0499e3eb06.js                   |    1 +
 api/search.index/0e2c5aafd087.js                   |    1 +
 api/search.index/0e6bf0a766e9.js                   |    1 -
 api/search.index/0ed5b4096331.js                   |    1 -
 api/search.index/0ee206ee92e5.js                   |    1 -
 api/search.index/0ee25863e70a.js                   |    1 -
 api/search.index/0eec7bee9f80.js                   |    1 -
 api/search.index/0f071be2977f.js                   |    1 +
 api/search.index/0f2cbbaea3c2.js                   |    1 -
 api/search.index/0f33fb3e0692.js                   |    1 +
 api/search.index/0f4243f63511.js                   |    1 -
 api/search.index/0f8ffb193ab2.js                   |    1 -
 api/search.index/0f95da0e6362.js                   |    1 +
 api/search.index/0fa17a4d9db8.js                   |    1 +
 api/search.index/0fc1c064ae92.js                   |    1 +
 api/search.index/0ff097c3074e.js                   |    1 -
 api/search.index/1072fdd11a74.js                   |    1 -
 api/search.index/108842a6b4b7.js                   |    1 +
 api/search.index/10a6c12716db.js                   |    1 -
 api/search.index/10e287e8a608.js                   |    1 -
 api/search.index/10fc0a24854d.js                   |    1 -
 api/search.index/111f63860ae7.js                   |    1 +
 api/search.index/1139932d8cf6.js                   |    1 +
 api/search.index/11748702d258.js                   |    1 -
 api/search.index/121cc4c24fcd.js                   |    1 -
 api/search.index/123364e5d20c.js                   |    1 -
 api/search.index/1259bc69d4b5.js                   |    1 +
 api/search.index/12767e14459a.js                   |    1 -
 api/search.index/12b6e44515eb.js                   |    1 +
 api/search.index/12c54767a6ec.js                   |    1 -
 api/search.index/13092f86ebb5.js                   |    1 -
 api/search.index/13337e3317d3.js                   |    1 +
 api/search.index/133b2812726c.js                   |    1 +
 api/search.index/134723fbeffa.js                   |    1 -
 api/search.index/13846c288466.js                   |    1 +
 api/search.index/13dc3b572480.js                   |    1 -
 api/search.index/13f2f11734a0.js                   |    1 +
 api/search.index/13fa8577b610.js                   |    1 -
 api/search.index/1429ad743308.js                   |    1 +
 api/search.index/1436e8bdbebb.js                   |    1 -
 api/search.index/143edde01a5b.js                   |    1 -
 api/search.index/14e1801ff92f.js                   |    1 +
 api/search.index/1528420094e9.js                   |    1 -
 api/search.index/152d40690a01.js                   |    1 +
 api/search.index/155fb99a4f6f.js                   |    1 -
 api/search.index/156bf74b9521.js                   |    1 +
 api/search.index/15a05a21f2c7.js                   |    1 +
 api/search.index/15a874838b2f.js                   |    1 -
 api/search.index/15b70f3f37e1.js                   |    1 +
 api/search.index/160815396655.js                   |    1 +
 api/search.index/167101aae12f.js                   |    1 +
 api/search.index/16c66b31b4c2.js                   |    1 -
 api/search.index/16ce3e5169ad.js                   |    1 +
 api/search.index/1769468a4c54.js                   |    1 +
 api/search.index/17b75092247d.js                   |    1 +
 api/search.index/17c8d34ece4c.js                   |    1 -
 api/search.index/182b786bd34c.js                   |    1 +
 api/search.index/189a50522300.js                   |    1 -
 api/search.index/189d5a791003.js                   |    1 -
 api/search.index/19175bc6fcd1.js                   |    1 +
 api/search.index/19600742098b.js                   |    1 -
 api/search.index/198d74579fbe.js                   |    1 +
 api/search.index/19b67a08776b.js                   |    1 +
 api/search.index/19dbbedaa27a.js                   |    1 +
 api/search.index/1a140f56662d.js                   |    1 +
 api/search.index/1a231a0af6ef.js                   |    1 +
 api/search.index/1a54459a71e5.js                   |    1 +
 api/search.index/1a5792b05c87.js                   |    1 -
 api/search.index/1a7d8286eee4.js                   |    1 +
 api/search.index/1af57f704d9c.js                   |    1 +
 api/search.index/1b0524f5fc60.js                   |    1 -
 api/search.index/1b81eb09602c.js                   |    1 -
 api/search.index/1b952374f40a.js                   |    1 +
 api/search.index/1bbc9d65a42f.js                   |    1 -
 api/search.index/1bf5dd513028.js                   |    1 +
 api/search.index/1c17ccd16745.js                   |    1 +
 api/search.index/1c18d4989645.js                   |    1 -
 api/search.index/1c19362d485b.js                   |    1 +
 api/search.index/1c224df91a69.js                   |    1 -
 api/search.index/1c2910743149.js                   |    1 +
 api/search.index/1c382568960a.js                   |    1 +
 api/search.index/1c488a9adf92.js                   |    1 -
 api/search.index/1ccbb166fc51.js                   |    1 -
 api/search.index/1ce0f26d11e2.js                   |    1 +
 api/search.index/1dc4e76d8056.js                   |    1 +
 api/search.index/1e2c0f9f2883.js                   |    1 -
 api/search.index/1e32608070b6.js                   |    1 +
 api/search.index/1e5d1f78ce5f.js                   |    1 +
 api/search.index/1e6530050183.js                   |    1 -
 api/search.index/1e7bf9242e8a.js                   |    1 +
 api/search.index/1e923dd8f673.js                   |    1 +
 api/search.index/1e99089755e8.js                   |    1 -
 api/search.index/1ed17ad05f49.js                   |    1 -
 api/search.index/1f225ef5c267.js                   |    1 +
 api/search.index/1f8a55cbc44b.js                   |    1 -
 api/search.index/20896d2cf9d8.js                   |    1 -
 api/search.index/20be50f53c9d.js                   |    1 -
 api/search.index/20d3135ceb0a.js                   |    1 +
 api/search.index/2124af25d085.js                   |    1 -
 api/search.index/21408ebbdcdc.js                   |    1 +
 api/search.index/21989a0d3a51.js                   |    1 +
 api/search.index/21b64726cb84.js                   |    1 +
 api/search.index/222b058a5b4a.js                   |    1 +
 api/search.index/224ffa6be8fd.js                   |    1 +
 api/search.index/22923dc31d75.js                   |    1 +
 api/search.index/22b7a29c11e4.js                   |    1 +
 api/search.index/233f8e27b424.js                   |    1 -
 api/search.index/2393dbd161e8.js                   |    1 -
 api/search.index/23eba8adaa8e.js                   |    1 -
 api/search.index/2403557676f5.js                   |    1 -
 api/search.index/2415ec44ab68.js                   |    1 -
 api/search.index/24226a57bafd.js                   |    1 +
 api/search.index/24d91c83f83b.js                   |    1 +
 api/search.index/24f99a2d5b70.js                   |    1 -
 api/search.index/25edf200eb21.js                   |    1 -
 api/search.index/25f67872ebcb.js                   |    1 +
 api/search.index/260f6a984bb1.js                   |    1 +
 api/search.index/26b39dfed39a.js                   |    1 +
 api/search.index/26c7e3f7c3db.js                   |    1 +
 api/search.index/26ca913496d8.js                   |    1 +
 api/search.index/26f914102ee9.js                   |    1 +
 api/search.index/271f232a5db5.js                   |    1 -
 api/search.index/272b621af905.js                   |    1 +
 api/search.index/276175a8791f.js                   |    1 +
 api/search.index/27747faebf4d.js                   |    1 +
 api/search.index/27b2c2bf4611.js                   |    1 -
 api/search.index/280c65b14131.js                   |    1 -
 api/search.index/28666dbdcb67.js                   |    1 -
 api/search.index/2885200c7519.js                   |    1 -
 api/search.index/28bf33f143ed.js                   |    1 +
 api/search.index/295c89a13310.js                   |    1 -
 api/search.index/29b5f8fb95b4.js                   |    1 +
 api/search.index/29bc92080054.js                   |    1 -
 api/search.index/29eae9e23ccf.js                   |    1 +
 api/search.index/29efc5117ff9.js                   |    1 +
 api/search.index/2a08630e7821.js                   |    1 -
 api/search.index/2a90b742bf5f.js                   |    1 +
 api/search.index/2aeb196a122e.js                   |    1 -
 api/search.index/2b01cf50257a.js                   |    1 -
 api/search.index/2b2a3c799736.js                   |    1 -
 api/search.index/2b9046c761ea.js                   |    1 +
 api/search.index/2bd1cd160f86.js                   |    1 -
 api/search.index/2c17a05955e5.js                   |    1 +
 api/search.index/2c61bfc174bd.js                   |    1 -
 api/search.index/2c677f84520c.js                   |    1 -
 api/search.index/2ce0c0e6f26d.js                   |    1 +
 api/search.index/2d6fa088501b.js                   |    1 -
 api/search.index/2dde1b358ba1.js                   |    1 +
 api/search.index/2e2c231858e6.js                   |    1 -
 api/search.index/2e485b8d1549.js                   |    1 +
 api/search.index/2e7ec3af26d0.js                   |    1 +
 api/search.index/2e8e6f8d37a8.js                   |    1 +
 api/search.index/2ebe929b1768.js                   |    1 +
 api/search.index/2edcd2cce301.js                   |    1 +
 api/search.index/2fc6fd20c678.js                   |    1 -
 api/search.index/2fda95e81e15.js                   |    1 +
 api/search.index/2fda96ece249.js                   |    1 -
 api/search.index/30070713d4d3.js                   |    1 -
 api/search.index/30d99b80e799.js                   |    1 -
 api/search.index/30debad66f16.js                   |    1 -
 api/search.index/31086e821446.js                   |    1 +
 api/search.index/3157a1a4e612.js                   |    1 -
 api/search.index/3161d6cc034b.js                   |    1 -
 api/search.index/317c959d0382.js                   |    1 +
 api/search.index/31966576a362.js                   |    1 -
 api/search.index/31fb7b0f4af8.js                   |    1 -
 api/search.index/32cc8d49fa1f.js                   |    1 +
 api/search.index/32f49c51183b.js                   |    1 -
 api/search.index/330986a0adf7.js                   |    1 +
 api/search.index/339b654c1d0c.js                   |    1 -
 api/search.index/33b37cbe4b47.js                   |    1 -
 api/search.index/33de7bc34916.js                   |    1 -
 api/search.index/347a55053f86.js                   |    1 -
 api/search.index/34a02e00e8ba.js                   |    1 -
 api/search.index/34e58093fa90.js                   |    1 -
 api/search.index/34ed027203ab.js                   |    1 +
 api/search.index/350022b4dd07.js                   |    1 -
 api/search.index/350112f00d97.js                   |    1 +
 api/search.index/3506db22cc2b.js                   |    1 +
 api/search.index/35faa0b76817.js                   |    1 +
 api/search.index/368f32af4b05.js                   |    1 -
 api/search.index/36af8c26ab38.js                   |    1 -
 api/search.index/36c1c240e7d6.js                   |    1 +
 api/search.index/36efc61d0449.js                   |    1 +
 api/search.index/3737a13c2adf.js                   |    1 +
 api/search.index/3745e46fee45.js                   |    1 -
 api/search.index/378e1aaab9b6.js                   |    1 +
 api/search.index/37d00526914c.js                   |    1 +
 api/search.index/37ea6c2270b9.js                   |    1 -
 api/search.index/37fdf370bd87.js                   |    1 -
 api/search.index/386d338c7df1.js                   |    1 -
 api/search.index/38ce02667d38.js                   |    1 -
 api/search.index/38e9df45e5d1.js                   |    1 +
 api/search.index/38fb41ef02d0.js                   |    1 +
 api/search.index/3914d60dce29.js                   |    1 -
 api/search.index/394c9b768ce4.js                   |    1 +
 api/search.index/3a0cfea4cd4c.js                   |    1 +
 api/search.index/3a2ab68eaec1.js                   |    1 +
 api/search.index/3a45034aa199.js                   |    1 +
 api/search.index/3a59de9e5451.js                   |    1 +
 api/search.index/3a5f66c30d0e.js                   |    1 +
 api/search.index/3a7a4ef19678.js                   |    1 +
 api/search.index/3acbfb128c10.js                   |    1 -
 api/search.index/3b01ef6859ff.js                   |    1 -
 api/search.index/3b39296a892d.js                   |    1 -
 api/search.index/3b4f43acd6be.js                   |    1 +
 api/search.index/3b5c01b0e2a5.js                   |    1 -
 api/search.index/3b817970c78e.js                   |    1 +
 api/search.index/3ba7867968b5.js                   |    1 -
 api/search.index/3ba8c26a5da3.js                   |    1 -
 api/search.index/3bb127a8381d.js                   |    1 -
 api/search.index/3cccee627368.js                   |    1 +
 api/search.index/3d0b125dc437.js                   |    1 +
 api/search.index/3d1ce27cc9f0.js                   |    1 -
 api/search.index/3d2999f23704.js                   |    1 -
 api/search.index/3d3a7df3d1ff.js                   |    1 +
 api/search.index/3d437a10cb56.js                   |    1 -
 api/search.index/3dac3c6c4ad7.js                   |    1 -
 api/search.index/3dc6c2556cdd.js                   |    1 -
 api/search.index/3e909e28b29d.js                   |    1 +
 api/search.index/3e98e3696d83.js                   |    1 -
 api/search.index/3f112898f456.js                   |    1 -
 api/search.index/3f310a4112d9.js                   |    1 +
 api/search.index/3f31a77591f0.js                   |    1 +
 api/search.index/3f743c7d9e99.js                   |    1 -
 api/search.index/401a403e847c.js                   |    1 -
 api/search.index/404c63ad2a9d.js                   |    1 +
 api/search.index/405c1bb94daa.js                   |    1 +
 api/search.index/409bc66657e0.js                   |    1 +
 api/search.index/40cabf03ba50.js                   |    1 +
 api/search.index/40e2c3183bd4.js                   |    1 -
 api/search.index/40e93cbfd0b7.js                   |    1 -
 api/search.index/41e001ec1d37.js                   |    1 -
 api/search.index/423c09ca92d6.js                   |    1 -
 api/search.index/4249bbf42de4.js                   |    1 -
 api/search.index/42862e55a77e.js                   |    1 -
 api/search.index/42b8557f6232.js                   |    1 -
 api/search.index/42d8f6f633e6.js                   |    1 -
 api/search.index/43417dd343d8.js                   |    1 -
 api/search.index/4347c953234a.js                   |    1 -
 api/search.index/4365b1e2ccee.js                   |    1 +
 api/search.index/43ac8d7287bb.js                   |    1 -
 api/search.index/43adee8a9029.js                   |    1 -
 api/search.index/43db80d2baf4.js                   |    1 -
 api/search.index/43f9ba6c063e.js                   |    1 +
 api/search.index/442e120315e2.js                   |    1 +
 api/search.index/453d7decf245.js                   |    1 +
 api/search.index/459a37dbfb8c.js                   |    1 -
 api/search.index/45d631ad9b34.js                   |    1 +
 api/search.index/461e406aefca.js                   |    1 +
 api/search.index/4620beba0a79.js                   |    1 +
 api/search.index/466427557d17.js                   |    1 -
 api/search.index/46b3226a4d4a.js                   |    1 -
 api/search.index/46d46d98fecd.js                   |    1 +
 api/search.index/47a4293cfecf.js                   |    1 +
 api/search.index/47b105544231.js                   |    1 -
 api/search.index/47cf1f103bfb.js                   |    1 +
 api/search.index/47d034e40dd8.js                   |    1 -
 api/search.index/47d532a88385.js                   |    1 -
 api/search.index/485d2ae094f8.js                   |    1 -
 api/search.index/48ce34125cd9.js                   |    1 +
 api/search.index/48fccb348316.js                   |    1 -
 api/search.index/4900a44304e4.js                   |    1 +
 api/search.index/490be672c101.js                   |    1 +
 api/search.index/4913669cd504.js                   |    1 -
 api/search.index/491eb1e9a6f2.js                   |    1 -
 api/search.index/4aaa6470bb2d.js                   |    1 -
 api/search.index/4ac3186bbf78.js                   |    1 -
 api/search.index/4b213d1b1e09.js                   |    1 -
 api/search.index/4b3ff0a8c782.js                   |    1 +
 api/search.index/4b6ce6f3f499.js                   |    1 +
 api/search.index/4c24c6f9ae86.js                   |    1 -
 api/search.index/4c2a82c1be16.js                   |    1 -
 api/search.index/4c41ebe4fe8e.js                   |    1 -
 api/search.index/4c75a19c5880.js                   |    1 +
 api/search.index/4d24a7008b92.js                   |    1 +
 api/search.index/4d39190c8bda.js                   |    1 -
 api/search.index/4d6afc4f52b4.js                   |    1 +
 api/search.index/4d7e81df97b0.js                   |    1 -
 api/search.index/4d88bca8284f.js                   |    1 -
 api/search.index/4dc4e4a1e97a.js                   |    1 -
 api/search.index/4dd9e95c3bbf.js                   |    1 +
 api/search.index/4e08b96c4870.js                   |    1 +
 api/search.index/4e187e4f948f.js                   |    1 -
 api/search.index/4e3aefa187bb.js                   |    1 -
 api/search.index/4e9051513dd2.js                   |    1 +
 api/search.index/4ef124e150ee.js                   |    1 +
 api/search.index/4ef91f7e2122.js                   |    1 +
 api/search.index/4f515dfc1ae4.js                   |    1 -
 api/search.index/500eb0601c14.js                   |    1 +
 api/search.index/50313e1d9556.js                   |    1 +
 api/search.index/50842cb7f38c.js                   |    1 -
 api/search.index/51078f9ffa40.js                   |    1 -
 api/search.index/510a62317e00.js                   |    1 +
 api/search.index/515bd4f74401.js                   |    1 +
 api/search.index/516907bc3544.js                   |    1 +
 api/search.index/51ab5fcd9489.js                   |    1 -
 api/search.index/51c0abcc591e.js                   |    1 -
 api/search.index/52a0430818a5.js                   |    1 +
 api/search.index/52ae2916109d.js                   |    1 +
 api/search.index/52be561b3633.js                   |    1 +
 api/search.index/534bae60fd2f.js                   |    1 +
 api/search.index/53a971fe891e.js                   |    1 +
 api/search.index/53f0a8cbf650.js                   |    1 +
 api/search.index/54286f76712d.js                   |    1 -
 api/search.index/54313a20aa32.js                   |    1 -
 api/search.index/5431d452a8fe.js                   |    1 -
 api/search.index/5443525344b3.js                   |    1 -
 api/search.index/544cf4b8f1fa.js                   |    1 -
 api/search.index/54adb994c69b.js                   |    1 +
 api/search.index/550f90304c45.js                   |    1 -
 api/search.index/553c9d19a77f.js                   |    1 -
 api/search.index/56b56bca63df.js                   |    1 -
 api/search.index/56c9f23cfcde.js                   |    1 +
 api/search.index/56cb9cecbb6d.js                   |    1 -
 api/search.index/56e3949969b8.js                   |    1 -
 api/search.index/5720667a0e8f.js                   |    1 +
 api/search.index/5762b0efff65.js                   |    1 -
 api/search.index/577fb2067699.js                   |    1 -
 api/search.index/57ca7cefb7d4.js                   |    1 +
 api/search.index/5868f84ccb08.js                   |    1 +
 api/search.index/58a163a2f5de.js                   |    1 -
 api/search.index/58c3e5bfd8ae.js                   |    1 +
 api/search.index/5953e2bea780.js                   |    1 -
 api/search.index/596c75eb325e.js                   |    1 +
 api/search.index/599e342b67cc.js                   |    1 -
 api/search.index/59a50cec8f2c.js                   |    1 +
 api/search.index/59cc1c8a8c1c.js                   |    1 -
 api/search.index/5af4a067d53d.js                   |    1 -
 api/search.index/5b2365254fdd.js                   |    1 -
 api/search.index/5b5a9f30f3af.js                   |    1 -
 api/search.index/5bd115635b6b.js                   |    1 -
 api/search.index/5bded7a68eed.js                   |    1 +
 api/search.index/5c0fbe134d13.js                   |    1 -
 api/search.index/5c6c30cab3b8.js                   |    1 +
 api/search.index/5c722c54f0e1.js                   |    1 -
 api/search.index/5ca008b2693a.js                   |    1 -
 api/search.index/5ca2cb7444f5.js                   |    1 -
 api/search.index/5cbd8d0a5f28.js                   |    1 +
 api/search.index/5ce915f26c05.js                   |    1 +
 api/search.index/5d3b58ca11fc.js                   |    1 +
 api/search.index/5d7f22c3e30e.js                   |    1 -
 api/search.index/5da1f668af70.js                   |    1 -
 api/search.index/5dc89844de7e.js                   |    1 +
 api/search.index/5df98910c991.js                   |    1 +
 api/search.index/5e868a5ab6ad.js                   |    1 -
 api/search.index/5e9c8defe966.js                   |    1 -
 api/search.index/5ebdea426fc5.js                   |    1 -
 api/search.index/5eda1d2169b5.js                   |    1 -
 api/search.index/5f0ca55efa92.js                   |    1 -
 api/search.index/5f9fc2284f7b.js                   |    1 -
 api/search.index/5fa278f25bbe.js                   |    1 +
 api/search.index/5fb6b6933376.js                   |    1 +
 api/search.index/5ffd6e526933.js                   |    1 -
 api/search.index/6046c615ade6.js                   |    1 -
 api/search.index/6053a104f105.js                   |    1 +
 api/search.index/606050078abd.js                   |    1 -
 api/search.index/608c3bc74c1f.js                   |    1 +
 api/search.index/609105c93848.js                   |    1 -
 api/search.index/6122a1eb4798.js                   |    1 +
 api/search.index/616ad6f604ea.js                   |    1 -
 api/search.index/61f6dfb24055.js                   |    1 +
 api/search.index/6200b0c23608.js                   |    1 +
 api/search.index/62084f4c0b5d.js                   |    1 +
 api/search.index/624dce25fc37.js                   |    1 -
 api/search.index/6281d74a98c4.js                   |    1 +
 api/search.index/62b6e4f5bd2b.js                   |    1 +
 api/search.index/6306d61bd67d.js                   |    1 -
 api/search.index/632964d4057a.js                   |    1 -
 api/search.index/638d772d276b.js                   |    1 -
 api/search.index/6394ab500aa4.js                   |    1 +
 api/search.index/63b6ce428505.js                   |    1 -
 api/search.index/63ba705a8b0e.js                   |    1 +
 api/search.index/642545e92eb6.js                   |    1 -
 api/search.index/644ac830a7e6.js                   |    1 +
 api/search.index/64861eb9da1f.js                   |    1 +
 api/search.index/64aa0af06edf.js                   |    1 +
 api/search.index/64b86927bc1d.js                   |    1 -
 api/search.index/64e3da9e2bc0.js                   |    1 +
 api/search.index/6521f85e7166.js                   |    1 +
 api/search.index/6547c1253865.js                   |    1 -
 api/search.index/655782a17cbe.js                   |    1 -
 api/search.index/65d862149b8e.js                   |    1 +
 api/search.index/65e49ea78d13.js                   |    1 -
 api/search.index/65f107a7f3b2.js                   |    1 -
 api/search.index/665389a26673.js                   |    1 -
 api/search.index/66dd7aed13ff.js                   |    1 +
 api/search.index/6744937513c5.js                   |    1 +
 api/search.index/6751151f36eb.js                   |    1 +
 api/search.index/688bee477357.js                   |    1 +
 api/search.index/689c4ac1612a.js                   |    1 -
 api/search.index/68b9044e01a7.js                   |    1 -
 api/search.index/6a385a0168a6.js                   |    1 -
 api/search.index/6a5263d513c3.js                   |    1 -
 api/search.index/6a8f9f970a1f.js                   |    1 +
 api/search.index/6ac771d00b0a.js                   |    1 -
 api/search.index/6adc1267b72c.js                   |    1 +
 api/search.index/6b194bf47123.js                   |    1 +
 api/search.index/6b623b6d9228.js                   |    1 -
 api/search.index/6b72e396db68.js                   |    1 +
 api/search.index/6b8246717411.js                   |    1 +
 api/search.index/6bb1103bb11f.js                   |    1 +
 api/search.index/6bb18b16337a.js                   |    1 +
 api/search.index/6bc0037ef9ba.js                   |    1 +
 api/search.index/6bdcec893970.js                   |    1 -
 api/search.index/6c5274da9570.js                   |    1 +
 api/search.index/6c5ef8803a8f.js                   |    1 -
 api/search.index/6cbf90a95d4e.js                   |    1 -
 api/search.index/6ccd5bca7766.js                   |    1 -
 api/search.index/6d77b6932827.js                   |    1 -
 api/search.index/6dd7f46cde7c.js                   |    1 +
 api/search.index/6df70e8a0f4a.js                   |    1 -
 api/search.index/6e7001cd4160.js                   |    1 +
 api/search.index/6e794b74c4c5.js                   |    1 -
 api/search.index/6f1bf7827e10.js                   |    1 -
 api/search.index/6f64f216a9c1.js                   |    1 +
 api/search.index/6f70fcfea389.js                   |    1 +
 api/search.index/6fce261b52e5.js                   |    1 -
 api/search.index/707838d792c4.js                   |    1 +
 api/search.index/70c33c4f5668.js                   |    1 +
 api/search.index/7180efbf6911.js                   |    1 -
 api/search.index/71a5d199d4bc.js                   |    1 +
 api/search.index/71ce6d7db7f0.js                   |    1 -
 api/search.index/71d18056cb62.js                   |    1 +
 api/search.index/71d6728e99d6.js                   |    1 -
 api/search.index/7245667bd67e.js                   |    1 -
 api/search.index/7261f30aca9e.js                   |    1 +
 api/search.index/7264822b2a52.js                   |    1 -
 api/search.index/72ae32731324.js                   |    1 -
 api/search.index/732aa082ac6a.js                   |    1 -
 api/search.index/733dca8cb0f3.js                   |    1 -
 api/search.index/7353d6bc612c.js                   |    1 -
 api/search.index/737276240f6f.js                   |    1 -
 api/search.index/73968f404c99.js                   |    1 -
 api/search.index/73b675b08171.js                   |    1 -
 api/search.index/7423db7c8e89.js                   |    1 +
 api/search.index/745a6015da40.js                   |    1 +
 api/search.index/745e233129e4.js                   |    1 +
 api/search.index/74d5e6730328.js                   |    1 +
 api/search.index/74d820c53882.js                   |    1 +
 api/search.index/755ac83990da.js                   |    1 +
 api/search.index/760bfdba46e1.js                   |    1 +
 api/search.index/760d7529c4cb.js                   |    1 +
 api/search.index/761ce051b838.js                   |    1 +
 api/search.index/762145d6f632.js                   |    1 -
 api/search.index/7622deaccc0f.js                   |    1 +
 api/search.index/7633b008015d.js                   |    1 -
 api/search.index/76600d789354.js                   |    1 -
 api/search.index/768170bdc6a9.js                   |    1 +
 api/search.index/769f05000c79.js                   |    1 +
 api/search.index/76f8fd731e28.js                   |    1 -
 api/search.index/771e8579411f.js                   |    1 +
 api/search.index/773292338efb.js                   |    1 +
 api/search.index/7756889a11ba.js                   |    1 -
 api/search.index/782605d25950.js                   |    1 +
 api/search.index/7888879e1d1e.js                   |    1 -
 api/search.index/789180167d2c.js                   |    1 -
 api/search.index/78e7431ece36.js                   |    1 +
 api/search.index/7918d951f0b6.js                   |    1 -
 api/search.index/79b5dd435f7c.js                   |    1 +
 api/search.index/7a68e5adc491.js                   |    1 -
 api/search.index/7a92df849fd6.js                   |    1 -
 api/search.index/7b3bfb690389.js                   |    1 +
 api/search.index/7b4256619620.js                   |    1 -
 api/search.index/7b705b7ecc4b.js                   |    1 +
 api/search.index/7bbbe39cfd00.js                   |    1 -
 api/search.index/7c0378e622f9.js                   |    1 +
 api/search.index/7c4c0632b9d8.js                   |    1 +
 api/search.index/7c5df54681cf.js                   |    1 +
 api/search.index/7c7a6f551bbe.js                   |    1 +
 api/search.index/7ccf2a890c58.js                   |    1 -
 api/search.index/7dbcb2f644fb.js                   |    1 +
 api/search.index/7de55c925666.js                   |    1 -
 api/search.index/7e1cf01abb8a.js                   |    1 +
 api/search.index/7e8a6cf1d096.js                   |    1 +
 api/search.index/7e97ef3f44ce.js                   |    1 -
 api/search.index/7eaf3299c9ed.js                   |    1 +
 api/search.index/7f12bef30823.js                   |    1 +
 api/search.index/7f2ef939c840.js                   |    1 -
 api/search.index/7f5308b434f2.js                   |    1 +
 api/search.index/7f5f6546eef1.js                   |    1 -
 api/search.index/7fa28f4069bc.js                   |    1 -
 api/search.index/7ff9de5d213f.js                   |    1 +
 api/search.index/desc/38ce2e72dae4.js              |    1 +
 api/search.index/desc/5cef3b1a69e4.js              |    1 -
 api/search.index/entry/100141d73723.js             |    1 +
 api/search.index/entry/81f9d5e38bb0.js             |    1 -
 api/search.index/function/1702ee989b93.js          |    1 +
 api/search.index/function/f428ea6cb189.js          |    1 -
 .../generic_inverted_index/63888a4a3149.js         |    1 +
 .../generic_inverted_index/f6c6f3b5773a.js         |    1 -
 api/search.index/name/525b9082b8a1.js              |    1 -
 api/search.index/name/89de0e23fc29.js              |    1 +
 api/search.index/normalizedName/0db75e04f3a9.js    |    1 +
 api/search.index/normalizedName/34c0b6d09b26.js    |    1 -
 .../path/{b186c447f6db.js => ab7588129fda.js}      |    2 +-
 api/search.index/root.js                           |    2 +-
 api/search.index/type/877cefe06f46.js              |    1 +
 api/search.index/type/c5c36c99c5ab.js              |    1 -
 api/src/iceberg/catalog/memory/catalog.rs.html     | 3137 ++++++++--------
 api/src/iceberg/catalog/utils.rs.html              |  172 +-
 api/src/iceberg/inspect/manifests.rs.html          |  438 ++-
 api/src/iceberg/io/object_cache.rs.html            |  779 ++--
 api/src/iceberg/spec/manifest_list.rs.html         | 3903 ++++++++++----------
 api/src/iceberg/spec/snapshot.rs.html              | 1344 ++++---
 api/src/iceberg/table.rs.html                      |  347 +-
 api/src/iceberg/transaction/append.rs.html         |  462 +--
 api/src/iceberg/transaction/mod.rs.html            |   67 +-
 api/src/iceberg/transaction/snapshot.rs.html       |  692 ++--
 api/src/iceberg_catalog_glue/catalog.rs.html       |  493 ++-
 api/src/iceberg_catalog_hms/catalog.rs.html        |  183 +-
 api/src/iceberg_catalog_sql/catalog.rs.html        | 2471 +++++++------
 .../physical_plan/commit.rs.html                   |  247 +-
 api/trait.impl/core/marker/trait.Freeze.js         |    4 +-
 api/trait.impl/core/marker/trait.Send.js           |    4 +-
 api/trait.impl/core/marker/trait.Sync.js           |    4 +-
 api/trait.impl/core/marker/trait.Unpin.js          |    4 +-
 api/trait.impl/core/marker/trait.UnsafeUnpin.js    |    4 +-
 .../core/panic/unwind_safe/trait.RefUnwindSafe.js  |    4 +-
 .../core/panic/unwind_safe/trait.UnwindSafe.js     |    4 +-
 606 files changed, 7803 insertions(+), 7793 deletions(-)

diff --git a/api/iceberg/all.html b/api/iceberg/all.html
index 8639602fe..1e6b6775b 100644
--- a/api/iceberg/all.html
+++ b/api/iceberg/all.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Mediu [...]
\ No newline at end of file
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="List of all items in this crate"><title>List of all items in this crate</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Mediu [...]
\ No newline at end of file
diff --git a/api/iceberg/fn.drop_table_data.html b/api/iceberg/fn.drop_table_data.html
index e7edbc213..97e5861f8 100644
--- a/api/iceberg/fn.drop_table_data.html
+++ b/api/iceberg/fn.drop_table_data.html
@@ -1,8 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Deletes all data and metadata files referenced by the given table metadata."><title>drop_table_data in iceberg - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2, [...]
-    io: &amp;<a class="struct" href="io/struct.FileIO.html" title="struct iceberg::io::FileIO">FileIO</a>,
-    metadata: &amp;<a class="struct" href="spec/struct.TableMetadata.html" title="struct iceberg::spec::TableMetadata">TableMetadata</a>,
-    metadata_location: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;,
-) -&gt; <a class="type" href="type.Result.html" title="type iceberg::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Deletes all data and metadata files referenced by the given table metadata.</p>
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Deletes all data and metadata files referenced by the given table metadata."><title>drop_table_data in iceberg - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2, [...]
 <p>This mirrors the Java implementation’s <code>CatalogUtil.dropTableData</code>.
 It collects all manifest files, manifest lists, previous metadata files,
 statistics files, and partition statistics files, then deletes them.</p>
diff --git a/api/iceberg/inspect/struct.ManifestsTable.html b/api/iceberg/inspect/struct.ManifestsTable.html
index caabb1209..241347f0f 100644
--- a/api/iceberg/inspect/struct.ManifestsTable.html
+++ b/api/iceberg/inspect/struct.ManifestsTable.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Manifests table."><title>ManifestsTable in iceberg::inspect - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItal [...]
-</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ManifestsTable%3C'a%3E" class="impl"><a class="src rightside" href="../../src/iceberg/inspect/manifests.rs.html#40-279">Source</a><a href="#impl-ManifestsTable%3C'a%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="struct" href="st [...]
+</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ManifestsTable%3C'a%3E" class="impl"><a class="src rightside" href="../../src/iceberg/inspect/manifests.rs.html#40-277">Source</a><a href="#impl-ManifestsTable%3C'a%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="struct" href="st [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.schema" class="method"><a class="src rightside" href="../../src/iceberg/inspect/manifests.rs.html#47-144">Source</a><h4 class="code-header">pub fn <a href="#method.schema" class="fn">schema</a>(&amp;self) -&gt; <a class="struct" href="../spec/struct.Schema.html" title="struct iceberg::spec::Schema">Schema</a></h4></section></summary><div class="docblock"><p>Returns the iceberg schema of the manifests  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method"><a class="src rightside" href="../../src/iceberg/inspect/manifests.rs.html#147-216">Source</a><h4 class="code-header">pub async fn <a href="#method.scan" class="fn">scan</a>(&amp;self) -&gt; <a class="type" href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a class="type" href="../scan/type.ArrowRecordBatchStream.html" title="type iceberg::scan::ArrowRecordBatc [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method"><a class="src rightside" href="../../src/iceberg/inspect/manifests.rs.html#147-214">Source</a><h4 class="code-header">pub async fn <a href="#method.scan" class="fn">scan</a>(&amp;self) -&gt; <a class="type" href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a class="type" href="../scan/type.ArrowRecordBatchStream.html" title="type iceberg::scan::ArrowRecordBatc [...]
 </div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-ManifestsTable%3C'a%3E" class="impl"><a href="#impl-Freeze-for-ManifestsTable%3C'a%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" titl [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
diff --git a/api/iceberg/memory/struct.MemoryCatalog.html b/api/iceberg/memory/struct.MemoryCatalog.html
index e14a7e91c..4624af9cb 100644
--- a/api/iceberg/memory/struct.MemoryCatalog.html
+++ b/api/iceberg/memory/struct.MemoryCatalog.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Memory catalog implementation."><title>MemoryCatalog in iceberg::memory - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSan [...]
-</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Catalog-for-MemoryCatalog" class="impl"><a class="src rightside" href="../../src/iceberg/catalog/memory/catalog.rs.html#174-423">Source</a><a href="#impl-Catalog-for-MemoryCatalog" class="anchor">§</a><h3 class="code-header">impl  [...]
+</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Catalog-for-MemoryCatalog" class="impl"><a class="src rightside" href="../../src/iceberg/catalog/memory/catalog.rs.html#174-418">Source</a><a href="#impl-Catalog-for-MemoryCatalog" class="anchor">§</a><h3 class="code-header">impl  [...]
     &amp;'life0 self,
     maybe_parent: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'life1 <a class="struct" href="../struct.NamespaceIdent.html" title="struct iceberg::NamespaceIdent">NamespaceIdent</a>&gt;,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../type.Result.html" title="type iceberg: [...]
@@ -74,14 +74,14 @@
     Self: 'async_trait,
     'life0: 'async_trait,
     'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Drop a table from the catalog.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.table_exists" class="method trait-impl"><a class="src rightside" href="../../src/iceberg/catalog/memory/catalog.rs.html#355-359">Source</a><a href="#method.table_exists" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Catalog.html#tymethod.table_exists" class="fn">table_exists</a>&lt;'life0, 'life1, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.table_exists" class="method trait-impl"><a class="src rightside" href="../../src/iceberg/catalog/memory/catalog.rs.html#350-354">Source</a><a href="#method.table_exists" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Catalog.html#tymethod.table_exists" class="fn">table_exists</a>&lt;'life0, 'life1, 'async_trait&gt;(
     &amp;'life0 self,
     table_ident: &amp;'life1 <a class="struct" href="../struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a>,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../type.Result.html" title="type iceberg: [...]
     Self: 'async_trait,
     'life0: 'async_trait,
     'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Check if a table exists in the catalog.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.rename_table" class="method trait-impl"><a class="src rightside" href="../../src/iceberg/catalog/memory/catalog.rs.html#362-378">Source</a><a href="#method.rename_table" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Catalog.html#tymethod.rename_table" class="fn">rename_table</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.rename_table" class="method trait-impl"><a class="src rightside" href="../../src/iceberg/catalog/memory/catalog.rs.html#357-373">Source</a><a href="#method.rename_table" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Catalog.html#tymethod.rename_table" class="fn">rename_table</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
     &amp;'life0 self,
     src_table_ident: &amp;'life1 <a class="struct" href="../struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a>,
     dst_table_ident: &amp;'life2 <a class="struct" href="../struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a>,
@@ -90,19 +90,19 @@
     'life0: 'async_trait,
     'life1: 'async_trait,
     'life2: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Rename a table in the catalog.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.update_table" class="method trait-impl"><a class="src rightside" href="../../src/iceberg/catalog/memory/catalog.rs.html#400-422">Source</a><a href="#method.update_table" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Catalog.html#tymethod.update_table" class="fn">update_table</a>&lt;'life0, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.update_table" class="method trait-impl"><a class="src rightside" href="../../src/iceberg/catalog/memory/catalog.rs.html#395-417">Source</a><a href="#method.update_table" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Catalog.html#tymethod.update_table" class="fn">update_table</a>&lt;'life0, 'async_trait&gt;(
     &amp;'life0 self,
     commit: <a class="struct" href="../struct.TableCommit.html" title="struct iceberg::TableCommit">TableCommit</a>,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../type.Result.html" title="type iceberg: [...]
     Self: 'async_trait,
     'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Update a table in the catalog.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.purge_table" class="method trait-impl"><a class="src rightside" href="../../src/iceberg/catalog/memory/catalog.rs.html#343-352">Source</a><a href="#method.purge_table" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Catalog.html#tymethod.purge_table" class="fn">purge_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.purge_table" class="method trait-impl"><a class="src rightside" href="../../src/iceberg/catalog/memory/catalog.rs.html#343-347">Source</a><a href="#method.purge_table" class="anchor">§</a><h4 class="code-header">fn <a href="../trait.Catalog.html#tymethod.purge_table" class="fn">purge_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
     &amp;'life0 self,
     table_ident: &amp;'life1 <a class="struct" href="../struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a>,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../type.Result.html" title="type iceberg: [...]
     Self: 'async_trait,
     'life0: 'async_trait,
-    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Drop a table from the catalog and delete the underlying table data. <a href="../trait.Catalog.html#tymethod.purge_table">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.register_table" class="method trait-impl"><a class="src rightside" href="../../src/iceberg/catalog/memory/catalog.rs.html#380-397">Source</a><a href="#method.register_table" class="anchor">§</ [...]
+    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Drop a table from the catalog and delete the underlying table data. <a href="../trait.Catalog.html#tymethod.purge_table">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.register_table" class="method trait-impl"><a class="src rightside" href="../../src/iceberg/catalog/memory/catalog.rs.html#375-392">Source</a><a href="#method.register_table" class="anchor">§</ [...]
     &amp;'life0 self,
     table_ident: &amp;'life1 <a class="struct" href="../struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a>,
     metadata_location: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
diff --git a/api/iceberg/spec/constant.MAIN_BRANCH.html b/api/iceberg/spec/constant.MAIN_BRANCH.html
index 48749678d..b5f17252e 100644
--- a/api/iceberg/spec/constant.MAIN_BRANCH.html
+++ b/api/iceberg/spec/constant.MAIN_BRANCH.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The ref name of the main branch of the table."><title>MAIN_BRANCH in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The ref name of the main branch of the table."><title>MAIN_BRANCH in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.wo [...]
 </div></details></section></div></main></body></html>
\ No newline at end of file
diff --git a/api/iceberg/spec/enum.ManifestContentType.html b/api/iceberg/spec/enum.ManifestContentType.html
index eb3ee837f..0b1232951 100644
--- a/api/iceberg/spec/enum.ManifestContentType.html
+++ b/api/iceberg/spec/enum.ManifestContentType.html
@@ -1,13 +1,13 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The type of files tracked by the manifest, either data or delete files; Data(0) for all v1 manifests"><title>ManifestContentType in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.wo [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The type of files tracked by the manifest, either data or delete files; Data(0) for all v1 manifests"><title>ManifestContentType in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.wo [...]
     Data = 0,
     Deletes = 1,
 }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The type of files tracked by the manifest, either data or delete files; Data(0) for all v1 manifests</p>
 </div></details><h2 id="variants" class="variants section-header">Variants<a href="#variants" class="anchor">§</a></h2><div class="variants"><section id="variant.Data" class="variant"><a href="#variant.Data" class="anchor">§</a><h3 class="code-header">Data = 0</h3></section><div class="docblock"><p>The manifest content is data.</p>
 </div><section id="variant.Deletes" class="variant"><a href="#variant.Deletes" class="anchor">§</a><h3 class="code-header">Deletes = 1</h3></section><div class="docblock"><p>The manifest content is deletes.</p>
-</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ManifestContentType" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#796">Source</a><a href="#impl-Clone-for-ManifestContentType" class="anchor">§</a><h3 class="code-header">impl <a c [...]
+</div></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ManifestContentType" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#831">Source</a><a href="#impl-Clone-for-ManifestContentType" class="anchor">§</a><h3 class="code-header">impl <a c [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></d [...]
-and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-TryFrom%3Ci32%3E-for-ManifestContentType" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#829-842">Source</a><a href="#impl-TryFrom%3Ci32%3E-for-ManifestContentType" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trai [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></d [...]
+and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-TryFrom%3Ci32%3E-for-ManifestContentType" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#864-877">Source</a><a href="#impl-TryFrom%3Ci32%3E-for-ManifestContentType" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trai [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4 [...]
diff --git a/api/iceberg/spec/enum.Operation.html b/api/iceberg/spec/enum.Operation.html
index 05c240543..d942ddedb 100644
--- a/api/iceberg/spec/enum.Operation.html
+++ b/api/iceberg/spec/enum.Operation.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The operation field is used by some operations, like snapshot expiration, to skip processing certain snapshots."><title>Operation in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.w [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The operation field is used by some operations, like snapshot expiration, to skip processing certain snapshots."><title>Operation in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.w [...]
     Append,
     Replace,
     Overwrite,
@@ -9,11 +9,11 @@
 i.e., compaction, changing the data file format, or relocating data files.</p>
 </div><section id="variant.Overwrite" class="variant"><a href="#variant.Overwrite" class="anchor">§</a><h3 class="code-header">Overwrite</h3></section><div class="docblock"><p>Data and delete files were added and removed in a logical overwrite operation.</p>
 </div><section id="variant.Delete" class="variant"><a href="#variant.Delete" class="anchor">§</a><h3 class="code-header">Delete</h3></section><div class="docblock"><p>Data files were removed and their contents logically deleted and/or delete files were added to delete rows.</p>
-</div></div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Operation" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#55-65">Source</a><a href="#impl-Operation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Operation.html" title="enum iceberg::spec::O [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Operation" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#39">Source</a><a href="#impl-Clone-for-Operation" class="anchor">§</a><h3 class="code-header">impl <a c [...]
-    __D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summar [...]
-and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Operation" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#39">Source</a><a href="#impl-Serialize-for-Operation" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trait serde_core [...]
-    __S: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Operation" class="impl"><a class="src rightside" href [...]
+</div></div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Operation" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#54-64">Source</a><a href="#impl-Operation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Operation.html" title="enum iceberg::spec::O [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Operation" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#38">Source</a><a href="#impl-Clone-for-Operation" class="anchor">§</a><h3 class="code-header">impl <a c [...]
+    __D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summar [...]
+and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Operation" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#38">Source</a><a href="#impl-Serialize-for-Operation" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trait serde_core [...]
+    __S: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Operation" class="impl"><a class="src rightside" href [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4 [...]
diff --git a/api/iceberg/spec/enum.SnapshotRetention.html b/api/iceberg/spec/enum.SnapshotRetention.html
index f1f532624..e8385e004 100644
--- a/api/iceberg/spec/enum.SnapshotRetention.html
+++ b/api/iceberg/spec/enum.SnapshotRetention.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The snapshot expiration procedure removes snapshots from table metadata and applies the table’s retention policy."><title>SnapshotRetention in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b05 [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The snapshot expiration procedure removes snapshots from table metadata and applies the table’s retention policy."><title>SnapshotRetention in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b05 [...]
     Branch {
         min_snapshots_to_keep: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>&gt;,
         max_snapshot_age_ms: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>&gt;,
@@ -19,15 +19,15 @@ Defaults to table property history.expire.max-ref-age-ms. The main branch never
 </div></div></div><section id="variant.Tag" class="variant"><a href="#variant.Tag" class="anchor">§</a><h3 class="code-header">Tag</h3></section><div class="docblock"><p>Tags are labels for individual snapshots.</p>
 </div><div class="sub-variant" id="variant.Tag.fields"><h4>Fields</h4><div class="sub-variant-field"><span id="variant.Tag.field.max_ref_age_ms" class="section-header"><a href="#variant.Tag.field.max_ref_age_ms" class="anchor field">§</a><code>max_ref_age_ms: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>&gt;</ [...]
 Defaults to table property history.expire.max-ref-age-ms. The main branch never expires.</p>
-</div></div></div></div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-SnapshotRetention" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#506-519">Source</a><a href="#impl-SnapshotRetention" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.SnapshotRetent [...]
+</div></div></div></div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-SnapshotRetention" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#490-503">Source</a><a href="#impl-SnapshotRetention" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.SnapshotRetent [...]
     min_snapshots_to_keep: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>&gt;,
     max_snapshot_age_ms: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>&gt;,
     max_ref_age_ms: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>&gt;,
 ) -&gt; Self</h4></section></summary><div class="docblock"><p>Create a new branch retention policy</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-SnapshotRetention" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#475">Source</a><a href="#impl-Clone-for-SnapshotRetention" class="anchor">§</a><h3 class="code- [...]
-    __D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summar [...]
-and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-SnapshotRetention" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#475">Source</a><a href="#impl-Serialize-for-SnapshotRetention" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title= [...]
-    __S: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-SnapshotRetention" class="impl"><a class="src rightsi [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-SnapshotRetention" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#459">Source</a><a href="#impl-Clone-for-SnapshotRetention" class="anchor">§</a><h3 class="code- [...]
+    __D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summar [...]
+and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-SnapshotRetention" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#459">Source</a><a href="#impl-Serialize-for-SnapshotRetention" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title= [...]
+    __S: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-SnapshotRetention" class="impl"><a class="src rightsi [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4 [...]
diff --git a/api/iceberg/spec/index.html b/api/iceberg/spec/index.html
index 6bcf1bbac..7d475dbc8 100644
--- a/api/iceberg/spec/index.html
+++ b/api/iceberg/spec/index.html
@@ -4,7 +4,8 @@ guaranteed to be correct when used.</dd><dt><a class="struct" href="struct.Encry
 Elements can be either optional or required. Element types may be any type.</dd><dt><a class="struct" href="struct.Manifest.html" title="struct iceberg::spec::Manifest">Manifest</a></dt><dd>A manifest contains metadata and a list of entries.</dd><dt><a class="struct" href="struct.ManifestEntry.html" title="struct iceberg::spec::ManifestEntry">Manifest<wbr>Entry</a></dt><dd>A manifest is an immutable Avro file that lists data files or delete
 files, along with each file’s partition data tuple, metrics, and tracking
 information.</dd><dt><a class="struct" href="struct.ManifestFile.html" title="struct iceberg::spec::ManifestFile">Manifest<wbr>File</a></dt><dd>Entry in a manifest list.</dd><dt><a class="struct" href="struct.ManifestList.html" title="struct iceberg::spec::ManifestList">Manifest<wbr>List</a></dt><dd>Snapshots are embedded in table metadata, but the list of manifests for a
-snapshot are stored in a separate manifest list file.</dd><dt><a class="struct" href="struct.ManifestListWriter.html" title="struct iceberg::spec::ManifestListWriter">Manifest<wbr>List<wbr>Writer</a></dt><dd>A manifest list writer.</dd><dt><a class="struct" href="struct.ManifestMetadata.html" title="struct iceberg::spec::ManifestMetadata">Manifest<wbr>Metadata</a></dt><dd>Meta data of a manifest that is stored in the key-value metadata of the Avro file</dd><dt><a class="struct" href="str [...]
+snapshot are stored in a separate manifest list file.</dd><dt><a class="struct" href="struct.ManifestListReader.html" title="struct iceberg::spec::ManifestListReader">Manifest<wbr>List<wbr>Reader</a></dt><dd>A manifest list reader that encapsulates the logic for loading and parsing a <a href="struct.ManifestList.html" title="struct iceberg::spec::ManifestList"><code>ManifestList</code></a>
+from a snapshot.</dd><dt><a class="struct" href="struct.ManifestListWriter.html" title="struct iceberg::spec::ManifestListWriter">Manifest<wbr>List<wbr>Writer</a></dt><dd>A manifest list writer.</dd><dt><a class="struct" href="struct.ManifestMetadata.html" title="struct iceberg::spec::ManifestMetadata">Manifest<wbr>Metadata</a></dt><dd>Meta data of a manifest that is stored in the key-value metadata of the Avro file</dd><dt><a class="struct" href="struct.ManifestWriter.html" title="struc [...]
 It used in Literal::Map, to make it hashable, the order of key-value pairs is stored in a separate vector
 so that we can hash the map in a deterministic way. But it also means that the order of key-value pairs is matter
 for the hash value.</dd><dt><a class="struct" href="struct.MapType.html" title="struct iceberg::spec::MapType">MapType</a></dt><dd>A map is a collection of key-value pairs with a key type and a value type.
diff --git a/api/iceberg/spec/manifest_list/struct.ManifestListReader.html b/api/iceberg/spec/manifest_list/struct.ManifestListReader.html
new file mode 100644
index 000000000..513ab577f
--- /dev/null
+++ b/api/iceberg/spec/manifest_list/struct.ManifestListReader.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta http-equiv="refresh" content="0;URL=../../../iceberg/spec/struct.ManifestListReader.html">
+    <title>Redirection</title>
+</head>
+<body>
+    <p>Redirecting to <a href="../../../iceberg/spec/struct.ManifestListReader.html">../../../iceberg/spec/struct.ManifestListReader.html</a>...</p>
+    <script>location.replace("../../../iceberg/spec/struct.ManifestListReader.html" + location.search + location.hash);</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/api/iceberg/spec/sidebar-items.js b/api/iceberg/spec/sidebar-items.js
index fc8b4cf7d..260582a08 100644
--- a/api/iceberg/spec/sidebar-items.js
+++ b/api/iceberg/spec/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"constant":["DEFAULT_SCHEMA_ID","DEFAULT_SCHEMA_NAME_MAPPING","INITIAL_ROW_ID","LIST_FIELD_NAME","MAIN_BRANCH","MAP_KEY_FIELD_NAME","MAP_VALUE_FIELD_NAME","MIN_FORMAT_VERSION_ROW_LINEAGE","SCHEMA_NAME_DELIMITER","UNASSIGNED_SEQUENCE_NUMBER","VIEW_PROPERTY_REPLACE_DROP_DIALECT_ALLOWED","VIEW_PROPERTY_REPLACE_DROP_DIALECT_ALLOWED_DEFAULT","VIEW_PROPERTY_VERSION_HISTORY_SIZE","VIEW_PROPERTY_VERSION_HISTORY_SIZE_DEFAULT"],"enum":["DataContentType","DataFileBuilderErro [...]
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"constant":["DEFAULT_SCHEMA_ID","DEFAULT_SCHEMA_NAME_MAPPING","INITIAL_ROW_ID","LIST_FIELD_NAME","MAIN_BRANCH","MAP_KEY_FIELD_NAME","MAP_VALUE_FIELD_NAME","MIN_FORMAT_VERSION_ROW_LINEAGE","SCHEMA_NAME_DELIMITER","UNASSIGNED_SEQUENCE_NUMBER","VIEW_PROPERTY_REPLACE_DROP_DIALECT_ALLOWED","VIEW_PROPERTY_REPLACE_DROP_DIALECT_ALLOWED_DEFAULT","VIEW_PROPERTY_VERSION_HISTORY_SIZE","VIEW_PROPERTY_VERSION_HISTORY_SIZE_DEFAULT"],"enum":["DataContentType","DataFileBuilderErro [...]
\ No newline at end of file
diff --git a/api/iceberg/spec/struct.FieldSummary.html b/api/iceberg/spec/struct.FieldSummary.html
index 72571644f..84be86075 100644
--- a/api/iceberg/spec/struct.FieldSummary.html
+++ b/api/iceberg/spec/struct.FieldSummary.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Field summary for partition field in the spec."><title>FieldSummary in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Field summary for partition field in the spec."><title>FieldSummary in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade. [...]
     pub contains_null: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
     pub contains_nan: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>&gt;,
     pub lower_bound: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.ByteBuf.html" title="struct iceberg::spec::ByteBuf">ByteBuf</a>&gt;,
@@ -17,12 +17,12 @@ partitions.</p>
 </div><span id="structfield.upper_bound" class="structfield section-header"><a href="#structfield.upper_bound" class="anchor field">§</a><code>upper_bound: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.ByteBuf.html" title="struct iceberg::spec::ByteBuf">ByteBuf</a>&gt;</code></span><div class="docblock"><p>field: 511
 The maximum value for the field in the manifests
 partitions.</p>
-</div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-FieldSummary" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#865">Source</a><a href="#impl-Clone-for-FieldSummary" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="h [...]
-    __D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summar [...]
+</div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-FieldSummary" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#900">Source</a><a href="#impl-Clone-for-FieldSummary" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="h [...]
+    __D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summar [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></d [...]
-and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-FieldSummary" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#865">Source</a><a href="#impl-Serialize-for-FieldSummary" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trai [...]
-    __S: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-FieldSummary" class="impl"><a class="src rightside" h [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></d [...]
+and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-FieldSummary" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#900">Source</a><a href="#impl-Serialize-for-FieldSummary" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trai [...]
+    __S: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-FieldSummary" class="impl"><a class="src rightside" h [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4 [...]
diff --git a/api/iceberg/spec/struct.ManifestFile.html b/api/iceberg/spec/struct.ManifestFile.html
index b350ad5e0..87bb5ee35 100644
--- a/api/iceberg/spec/struct.ManifestFile.html
+++ b/api/iceberg/spec/struct.ManifestFile.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Entry in a manifest list."><title>ManifestFile in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Entry in a manifest list."><title>ManifestFile in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium [...]
     pub manifest_path: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
     pub manifest_length: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
     pub partition_spec_id: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i32.html">i32</a>,
@@ -61,15 +61,15 @@ partition spec.</p>
 <p>Implementation-specific key metadata for encryption</p>
 </div><span id="structfield.first_row_id" class="structfield section-header"><a href="#structfield.first_row_id" class="anchor field">§</a><code>first_row_id: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>&gt;</code></span><div class="docblock"><p>field 520</p>
 <p>The starting _row_id to assign to rows added by ADDED data files</p>
-</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ManifestFile" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#778-793">Source</a><a href="#impl-ManifestFile" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ManifestFile.html" title="struct  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.has_deleted_files" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#785-787">Source</a><h4 class="code-header">pub fn <a href="#method.has_deleted_files" class="fn">has_deleted_files</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Checks whether [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.has_existing_files" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#790-792">Source</a><h4 class="code-header">pub fn <a href="#method.has_existing_files" class="fn">has_existing_files</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Checks if t [...]
-</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-ManifestFile-1" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#844-860">Source</a><a href="#impl-ManifestFile-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ManifestFile.html" title="struct iceberg::spec::ManifestFile">ManifestFile</a></h3></section></summary><div class="impl-items"><details class="toggle [...]
+</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ManifestFile" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#813-828">Source</a><a href="#impl-ManifestFile" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ManifestFile.html" title="struct  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.has_deleted_files" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#820-822">Source</a><h4 class="code-header">pub fn <a href="#method.has_deleted_files" class="fn">has_deleted_files</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Checks whether [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.has_existing_files" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#825-827">Source</a><h4 class="code-header">pub fn <a href="#method.has_existing_files" class="fn">has_existing_files</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Checks if t [...]
+</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-ManifestFile-1" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#879-895">Source</a><a href="#impl-ManifestFile-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ManifestFile.html" title="struct iceberg::spec::ManifestFile">ManifestFile</a></h3></section></summary><div class="impl-items"><details class="toggle [...]
 <p>This method will also initialize inherited values of [<code>ManifestEntry</code>], such as <code>sequence_number</code>.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ManifestFile" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#697">Source</a><a href="#impl-Clone-for-ManifestFile" class="anchor">§</a><h3 class="code-heade [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ManifestFile" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#732">Source</a><a href="#impl-Clone-for-ManifestFile" class="anchor">§</a><h3 class="code-heade [...]
     H: <a class="trait" href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
-    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></d [...]
-and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-ManifestFile" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#697">Source</a><a href="#impl-Eq-for-ManifestFile" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.ManifestFile.html" title="s [...]
+    Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/nightly/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></d [...]
+and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-ManifestFile" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#732">Source</a><a href="#impl-Eq-for-ManifestFile" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.ManifestFile.html" title="s [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4 [...]
diff --git a/api/iceberg/inspect/struct.ManifestsTable.html b/api/iceberg/spec/struct.ManifestListReader.html
similarity index 76%
copy from api/iceberg/inspect/struct.ManifestsTable.html
copy to api/iceberg/spec/struct.ManifestListReader.html
index caabb1209..ba4e80480 100644
--- a/api/iceberg/inspect/struct.ManifestsTable.html
+++ b/api/iceberg/spec/struct.ManifestListReader.html
@@ -1,8 +1,7 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Manifests table."><title>ManifestsTable in iceberg::inspect - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItal [...]
-</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ManifestsTable%3C'a%3E" class="impl"><a class="src rightside" href="../../src/iceberg/inspect/manifests.rs.html#40-279">Source</a><a href="#impl-ManifestsTable%3C'a%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="struct" href="st [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.schema" class="method"><a class="src rightside" href="../../src/iceberg/inspect/manifests.rs.html#47-144">Source</a><h4 class="code-header">pub fn <a href="#method.schema" class="fn">schema</a>(&amp;self) -&gt; <a class="struct" href="../spec/struct.Schema.html" title="struct iceberg::spec::Schema">Schema</a></h4></section></summary><div class="docblock"><p>Returns the iceberg schema of the manifests  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method"><a class="src rightside" href="../../src/iceberg/inspect/manifests.rs.html#147-216">Source</a><h4 class="code-header">pub async fn <a href="#method.scan" class="fn">scan</a>(&amp;self) -&gt; <a class="type" href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a class="type" href="../scan/type.ArrowRecordBatchStream.html" title="type iceberg::scan::ArrowRecordBatc [...]
-</div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-ManifestsTable%3C'a%3E" class="impl"><a href="#impl-Freeze-for-ManifestsTable%3C'a%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" titl [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A manifest list reader that encapsulates the logic for loading and parsing a `ManifestList` from a snapshot."><title>ManifestListReader in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98 [...]
+from a snapshot.</p>
+</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ManifestListReader" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#101-126">Source</a><a href="#impl-ManifestListReader" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ManifestLis [...]
+</div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-ManifestListReader" class="impl"><a href="#impl-Freeze-for-ManifestListReader" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::mar [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4 [...]
diff --git a/api/iceberg/spec/struct.ManifestListWriter.html b/api/iceberg/spec/struct.ManifestListWriter.html
index 333b294a9..d234dc3eb 100644
--- a/api/iceberg/spec/struct.ManifestListWriter.html
+++ b/api/iceberg/spec/struct.ManifestListWriter.html
@@ -1,32 +1,32 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A manifest list writer."><title>ManifestListWriter in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Me [...]
-</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ManifestListWriter" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#113-356">Source</a><a href="#impl-ManifestListWriter" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ManifestLis [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.v1" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#120-139">Source</a><h4 class="code-header">pub fn <a href="#method.v1" class="fn">v1</a>(
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A manifest list writer."><title>ManifestListWriter in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Me [...]
+</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ManifestListWriter" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#148-391">Source</a><a href="#impl-ManifestListWriter" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ManifestLis [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.v1" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#155-174">Source</a><h4 class="code-header">pub fn <a href="#method.v1" class="fn">v1</a>(
     output_file: <a class="struct" href="../io/struct.OutputFile.html" title="struct iceberg::io::OutputFile">OutputFile</a>,
     snapshot_id: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
     parent_snapshot_id: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>&gt;,
 ) -&gt; Self</h4></section></summary><div class="docblock"><p>Construct a v1 <a href="struct.ManifestListWriter.html" title="struct iceberg::spec::ManifestListWriter"><code>ManifestListWriter</code></a> that writes to a provided <a href="../io/struct.OutputFile.html" title="struct iceberg::io::OutputFile"><code>OutputFile</code></a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.v2" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#142-167">Source</a><h4 class="code-header">pub fn <a href="#method.v2" class="fn">v2</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.v2" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#177-202">Source</a><h4 class="code-header">pub fn <a href="#method.v2" class="fn">v2</a>(
     output_file: <a class="struct" href="../io/struct.OutputFile.html" title="struct iceberg::io::OutputFile">OutputFile</a>,
     snapshot_id: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
     parent_snapshot_id: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>&gt;,
     sequence_number: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
 ) -&gt; Self</h4></section></summary><div class="docblock"><p>Construct a v2 <a href="struct.ManifestListWriter.html" title="struct iceberg::spec::ManifestListWriter"><code>ManifestListWriter</code></a> that writes to a provided <a href="../io/struct.OutputFile.html" title="struct iceberg::io::OutputFile"><code>OutputFile</code></a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.v3" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#170-202">Source</a><h4 class="code-header">pub fn <a href="#method.v3" class="fn">v3</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.v3" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#205-237">Source</a><h4 class="code-header">pub fn <a href="#method.v3" class="fn">v3</a>(
     output_file: <a class="struct" href="../io/struct.OutputFile.html" title="struct iceberg::io::OutputFile">OutputFile</a>,
     snapshot_id: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
     parent_snapshot_id: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>&gt;,
     sequence_number: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
     first_row_id: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>&gt;,
 ) -&gt; Self</h4></section></summary><div class="docblock"><p>Construct a v3 <a href="struct.ManifestListWriter.html" title="struct iceberg::spec::ManifestListWriter"><code>ManifestListWriter</code></a> that writes to a provided <a href="../io/struct.OutputFile.html" title="struct iceberg::io::OutputFile"><code>OutputFile</code></a>.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.add_manifests" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#238-262">Source</a><h4 class="code-header">pub fn <a href="#method.add_manifests" class="fn">add_manifests</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.add_manifests" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#273-297">Source</a><h4 class="code-header">pub fn <a href="#method.add_manifests" class="fn">add_manifests</a>(
     &amp;mut self,
     manifests: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Item = <a class="struct" href="struct.ManifestFile.html" title="struct iceberg::spec::ManifestFile">ManifestFile</a>&gt;,
 ) -&gt; <a class="type" href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Append manifests to be written.</p>
 <p>If V3 Manifests are added and the <code>first_row_id</code> of any data manifest is unassigned,
 it will be assigned based on the <code>next_row_id</code> of the writer, and the <code>next_row_id</code> of the writer will be updated accordingly.
 If <code>first_row_id</code> is already assigned, it will be validated against the <code>next_row_id</code> of the writer.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.close" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#265-271">Source</a><h4 class="code-header">pub async fn <a href="#method.close" class="fn">close</a>(self) -&gt; <a class="type" href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></sect [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-ManifestListWriter" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#103-111">Source</a><a href="#impl-Debug-for-ManifestListWriter" class="anchor">§</a><h3 c [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.close" class="method"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#300-306">Source</a><h4 class="code-header">pub async fn <a href="#method.close" class="fn">close</a>(self) -&gt; <a class="type" href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></sect [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-ManifestListWriter" class="impl"><a class="src rightside" href="../../src/iceberg/spec/manifest_list.rs.html#138-146">Source</a><a href="#impl-Debug-for-ManifestListWriter" class="anchor">§</a><h3 c [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4 [...]
diff --git a/api/iceberg/spec/struct.Snapshot.html b/api/iceberg/spec/struct.Snapshot.html
index 2a8cb24de..5632661e0 100644
--- a/api/iceberg/spec/struct.Snapshot.html
+++ b/api/iceberg/spec/struct.Snapshot.html
@@ -1,34 +1,29 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A snapshot represents the state of a table at some time and is used to access the complete set of data files in the table."><title>Snapshot in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b05 [...]
-</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Snapshot" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#86">Source</a><a href="#impl-Snapshot" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Snapshot.html" title="struct iceberg::spe [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A snapshot represents the state of a table at some time and is used to access the complete set of data files in the table."><title>Snapshot in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b05 [...]
+</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Snapshot" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#85">Source</a><a href="#impl-Snapshot" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Snapshot.html" title="struct iceberg::spe [...]
 On the builder, call <code>.snapshot_id(...)</code>, <code>.parent_snapshot_id(...)</code>(optional), <code>.sequence_number(...)</code>, <code>.timestamp_ms(...)</code>, <code>.manifest_list(...)</code>, <code>.summary(...)</code>, <code>.schema_id(...)</code>(optional), <code>.encryption_key_id(...)</code>(optional), <code>.row_range(...)</code>(optional) to set the values of the fields.
 Finally, call <code>.build()</code> to create the instance of <code>Snapshot</code>.</p>
-</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Snapshot-1" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#125-250">Source</a><a href="#impl-Snapshot-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Snapshot.html" title="struct iceberg::spec::Snapshot">Snapshot</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><sum [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.parent_snapshot_id" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#134-136">Source</a><h4 class="code-header">pub fn <a href="#method.parent_snapshot_id" class="fn">parent_snapshot_id</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href= [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.sequence_number" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#140-142">Source</a><h4 class="code-header">pub fn <a href="#method.sequence_number" class="fn">sequence_number</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></h4></section></summary><div class="docblock"><p>Get sequence_number of the  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.manifest_list" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#145-147">Source</a><h4 class="code-header">pub fn <a href="#method.manifest_list" class="fn">manifest_list</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Get location of manifest_lis [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.summary" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#151-153">Source</a><h4 class="code-header">pub fn <a href="#method.summary" class="fn">summary</a>(&amp;self) -&gt; &amp;<a class="struct" href="struct.Summary.html" title="struct iceberg::spec::Summary">Summary</a></h4></section></summary><div class="docblock"><p>Get summary of the snapshot</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.timestamp" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#156-158">Source</a><h4 class="code-header">pub fn <a href="#method.timestamp" class="fn">timestamp</a>(&amp;self) -&gt; <a class="type" href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a class="struct" href="https://docs.rs/chrono/latest/chrono/datetime/struct.DateTime.html" title="st [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.timestamp_ms" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#162-164">Source</a><h4 class="code-header">pub fn <a href="#method.timestamp_ms" class="fn">timestamp_ms</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></h4></section></summary><div class="docblock"><p>Get the timestamp of when the snapsh [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.schema_id" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#168-170">Source</a><h4 class="code-header">pub fn <a href="#method.schema_id" class="fn">schema_id</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="type" href="type.SchemaId.html" title="type [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.schema" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#173-186">Source</a><h4 class="code-header">pub fn <a href="#method.schema" class="fn">schema</a>(&amp;self, table_metadata: &amp;<a class="struct" href="struct.TableMetadata.html" title="struct iceberg::spec::TableMetadata">TableMetadata</a>) -&gt; <a class="type" href="../type.Result.html" title="type iceber [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.load_manifest_list" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#198-210">Source</a><h4 class="code-header">pub async fn <a href="#method.load_manifest_list" class="fn">load_manifest_list</a>(
-    &amp;self,
-    file_io: &amp;<a class="struct" href="../io/struct.FileIO.html" title="struct iceberg::io::FileIO">FileIO</a>,
-    table_metadata: &amp;<a class="struct" href="struct.TableMetadata.html" title="struct iceberg::spec::TableMetadata">TableMetadata</a>,
-) -&gt; <a class="type" href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a class="struct" href="struct.ManifestList.html" title="struct iceberg::spec::ManifestList">ManifestList</a>&gt;</h4></section></summary><div class="docblock"><p>Load manifest list.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.first_row_id" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#226-228">Source</a><h4 class="code-header">pub fn <a href="#method.first_row_id" class="fn">first_row_id</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust- [...]
+</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Snapshot-1" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#124-234">Source</a><a href="#impl-Snapshot-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Snapshot.html" title="struct iceberg::spec::Snapshot">Snapshot</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><sum [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.parent_snapshot_id" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#133-135">Source</a><h4 class="code-header">pub fn <a href="#method.parent_snapshot_id" class="fn">parent_snapshot_id</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href= [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.sequence_number" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#139-141">Source</a><h4 class="code-header">pub fn <a href="#method.sequence_number" class="fn">sequence_number</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></h4></section></summary><div class="docblock"><p>Get sequence_number of the  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.manifest_list" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#144-146">Source</a><h4 class="code-header">pub fn <a href="#method.manifest_list" class="fn">manifest_list</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Get location of manifest_lis [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.summary" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#150-152">Source</a><h4 class="code-header">pub fn <a href="#method.summary" class="fn">summary</a>(&amp;self) -&gt; &amp;<a class="struct" href="struct.Summary.html" title="struct iceberg::spec::Summary">Summary</a></h4></section></summary><div class="docblock"><p>Get summary of the snapshot</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.timestamp" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#155-157">Source</a><h4 class="code-header">pub fn <a href="#method.timestamp" class="fn">timestamp</a>(&amp;self) -&gt; <a class="type" href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;<a class="struct" href="https://docs.rs/chrono/latest/chrono/datetime/struct.DateTime.html" title="st [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.timestamp_ms" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#161-163">Source</a><h4 class="code-header">pub fn <a href="#method.timestamp_ms" class="fn">timestamp_ms</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></h4></section></summary><div class="docblock"><p>Get the timestamp of when the snapsh [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.schema_id" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#167-169">Source</a><h4 class="code-header">pub fn <a href="#method.schema_id" class="fn">schema_id</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="type" href="type.SchemaId.html" title="type [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.schema" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#172-185">Source</a><h4 class="code-header">pub fn <a href="#method.schema" class="fn">schema</a>(&amp;self, table_metadata: &amp;<a class="struct" href="struct.TableMetadata.html" title="struct iceberg::spec::TableMetadata">TableMetadata</a>) -&gt; <a class="type" href="../type.Result.html" title="type iceber [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.first_row_id" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#210-212">Source</a><h4 class="code-header">pub fn <a href="#method.first_row_id" class="fn">first_row_id</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust- [...]
 have a row-id assigned to them greater than this value. All rows with a row-id less than this
 value were created in a snapshot that was added to the table (but not necessarily committed to
 this branch) in the past.</p>
 <p>This field is optional but is required when the table version supports row lineage.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.added_rows_count" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#234-236">Source</a><h4 class="code-header">pub fn <a href="#method.added_rows_count" class="fn">added_rows_count</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.added_rows_count" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#218-220">Source</a><h4 class="code-header">pub fn <a href="#method.added_rows_count" class="fn">added_rows_count</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https [...]
 ManifestFile#ADDED_ROWS_COUNT} for every manifest added in this snapshot.</p>
 <p>This field is optional but is required when the table version supports row lineage.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.row_range" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#240-244">Source</a><h4 class="code-header">pub fn <a href="#method.row_range" class="fn">row_range</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.row_range" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#224-228">Source</a><h4 class="code-header">pub fn <a href="#method.row_range" class="fn">row_range</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(<a class="primitive" href="https://doc.rust-lang.org [...]
 This is a tuple containing (first_row_id, added_rows_count).</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.encryption_key_id" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#247-249">Source</a><h4 class="code-header">pub fn <a href="#method.encryption_key_id" class="fn">encryption_key_id</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" hre [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Snapshot" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#86">Source</a><a href="#impl-Clone-for-Snapshot" class="anchor">§</a><h3 class="code-header">impl <a cla [...]
-and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-Snapshot" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#86">Source</a><a href="#impl-Eq-for-Snapshot" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Snapshot.html" title="struct iceberg::spe [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.encryption_key_id" class="method"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#231-233">Source</a><h4 class="code-header">pub fn <a href="#method.encryption_key_id" class="fn">encryption_key_id</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" hre [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Snapshot" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#85">Source</a><a href="#impl-Clone-for-Snapshot" class="anchor">§</a><h3 class="code-header">impl <a cla [...]
+and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-Snapshot" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#85">Source</a><a href="#impl-Eq-for-Snapshot" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.Snapshot.html" title="struct iceberg::spe [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4 [...]
diff --git a/api/iceberg/spec/struct.SnapshotReference.html b/api/iceberg/spec/struct.SnapshotReference.html
index 672da0dce..f82039e58 100644
--- a/api/iceberg/spec/struct.SnapshotReference.html
+++ b/api/iceberg/spec/struct.SnapshotReference.html
@@ -1,15 +1,15 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Iceberg tables keep track of branches and tags using snapshot references."><title>SnapshotReference in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de. [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Iceberg tables keep track of branches and tags using snapshot references."><title>SnapshotReference in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de. [...]
     pub snapshot_id: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a>,
     pub retention: <a class="enum" href="enum.SnapshotRetention.html" title="enum iceberg::spec::SnapshotRetention">SnapshotRetention</a>,
 }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Iceberg tables keep track of branches and tags using snapshot references.</p>
 </div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.snapshot_id" class="structfield section-header"><a href="#structfield.snapshot_id" class="anchor field">§</a><code>snapshot_id: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a></code></span><div class="docblock"><p>A reference’s snapshot ID. The tagged snapshot or latest snapshot of a branch.</p>
 </div><span id="structfield.retention" class="structfield section-header"><a href="#structfield.retention" class="anchor field">§</a><code>retention: <a class="enum" href="enum.SnapshotRetention.html" title="enum iceberg::spec::SnapshotRetention">SnapshotRetention</a></code></span><div class="docblock"><p>Snapshot retention policy</p>
-</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-SnapshotReference" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#458-463">Source</a><a href="#impl-SnapshotReference" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.SnapshotReference.html" titl [...]
-</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-SnapshotReference-1" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#465-473">Source</a><a href="#impl-SnapshotReference-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.SnapshotReference.html" title="struct iceberg::spec::SnapshotReference">SnapshotReference</a></h3></section></summary><div class="impl-items"><d [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-SnapshotReference" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#447">Source</a><a href="#impl-Clone-for-SnapshotReference" class="anchor">§</a><h3 class="code- [...]
-    __D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summar [...]
-and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-SnapshotReference" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#447">Source</a><a href="#impl-Serialize-for-SnapshotReference" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title= [...]
-    __S: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-SnapshotReference" class="impl"><a class="src rightsi [...]
+</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-SnapshotReference" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#442-447">Source</a><a href="#impl-SnapshotReference" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.SnapshotReference.html" titl [...]
+</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-SnapshotReference-1" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#449-457">Source</a><a href="#impl-SnapshotReference-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.SnapshotReference.html" title="struct iceberg::spec::SnapshotReference">SnapshotReference</a></h3></section></summary><div class="impl-items"><d [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-SnapshotReference" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#431">Source</a><a href="#impl-Clone-for-SnapshotReference" class="anchor">§</a><h3 class="code- [...]
+    __D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summar [...]
+and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-SnapshotReference" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#431">Source</a><a href="#impl-Serialize-for-SnapshotReference" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title= [...]
+    __S: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-SnapshotReference" class="impl"><a class="src rightsi [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4 [...]
diff --git a/api/iceberg/spec/struct.SnapshotRowRange.html b/api/iceberg/spec/struct.SnapshotRowRange.html
index 28cae5dd2..1133be637 100644
--- a/api/iceberg/spec/struct.SnapshotRowRange.html
+++ b/api/iceberg/spec/struct.SnapshotRowRange.html
@@ -1,11 +1,11 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Row range of a snapshot, contains first_row_id and added_rows_count."><title>SnapshotRowRange in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2, [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Row range of a snapshot, contains first_row_id and added_rows_count."><title>SnapshotRowRange in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2, [...]
     pub first_row_id: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
     pub added_rows: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
 }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Row range of a snapshot, contains first_row_id and added_rows_count.</p>
 </div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.first_row_id" class="structfield section-header"><a href="#structfield.first_row_id" class="anchor field">§</a><code>first_row_id: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>The first _row_id assigned to the first row in the first data file in the first manifest.</p>
 </div><span id="structfield.added_rows" class="structfield section-header"><a href="#structfield.added_rows" class="anchor field">§</a><code>added_rows: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></code></span><div class="docblock"><p>The upper bound of the number of rows with assigned row IDs</p>
-</div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-SnapshotRowRange" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#77">Source</a><a href="#impl-Clone-for-SnapshotRowRange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href= [...]
-and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-SnapshotRowRange" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#77">Source</a><a href="#impl-Eq-for-SnapshotRowRange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.SnapshotRowRange.html" ti [...]
+</div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-SnapshotRowRange" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#76">Source</a><a href="#impl-Clone-for-SnapshotRowRange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href= [...]
+and should not be overridden without very good reason.</div></details></div></details><section id="impl-Eq-for-SnapshotRowRange" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#76">Source</a><a href="#impl-Eq-for-SnapshotRowRange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="struct.SnapshotRowRange.html" ti [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4 [...]
diff --git a/api/iceberg/spec/struct.Summary.html b/api/iceberg/spec/struct.Summary.html
index cc4be6bf4..0a5b8fb8a 100644
--- a/api/iceberg/spec/struct.Summary.html
+++ b/api/iceberg/spec/struct.Summary.html
@@ -1,13 +1,13 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Summarises the changes in the snapshot."><title>Summary in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSa [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Summarises the changes in the snapshot."><title>Summary in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSa [...]
     pub operation: <a class="enum" href="enum.Operation.html" title="enum iceberg::spec::Operation">Operation</a>,
     pub additional_properties: <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>&gt;,
 }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Summarises the changes in the snapshot.</p>
 </div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.operation" class="structfield section-header"><a href="#structfield.operation" class="anchor field">§</a><code>operation: <a class="enum" href="enum.Operation.html" title="enum iceberg::spec::Operation">Operation</a></code></span><div class="docblock"><p>The type of operation in the snapshot</p>
 </div><span id="structfield.additional_properties" class="structfield section-header"><a href="#structfield.additional_properties" class="anchor field">§</a><code>additional_properties: <a class="struct" href="https://doc.rust-lang.org/nightly/std/collections/hash/map/struct.HashMap.html" title="struct std::collections::hash::map::HashMap">HashMap</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String< [...]
-</div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Summary" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#67">Source</a><a href="#impl-Clone-for-Summary" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust- [...]
-    __D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summar [...]
-and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Summary" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#67">Source</a><a href="#impl-Serialize-for-Summary" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trait serde_core::se [...]
-    __S: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Summary" class="impl"><a class="src rightside" href=" [...]
+</div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Summary" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#66">Source</a><a href="#impl-Clone-for-Summary" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust- [...]
+    __D: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserializer.html" title="trait serde_core::de::Deserializer">Deserializer</a>&lt;'de&gt;,</div></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summar [...]
+and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-Summary" class="impl"><a class="src rightside" href="../../src/iceberg/spec/snapshot.rs.html#66">Source</a><a href="#impl-Serialize-for-Summary" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html" title="trait serde_core::se [...]
+    __S: <a class="trait" href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serializer.html" title="trait serde_core::ser::Serializer">Serializer</a>,</div></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde_core/1.0.228/serde_core/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Eq-for-Summary" class="impl"><a class="src rightside" href=" [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4 [...]
diff --git a/api/iceberg/spec/type.SnapshotRef.html b/api/iceberg/spec/type.SnapshotRef.html
index a5cc14be8..73683e54d 100644
--- a/api/iceberg/spec/type.SnapshotRef.html
+++ b/api/iceberg/spec/type.SnapshotRef.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reference to `Snapshot`."><title>SnapshotRef in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumIt [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Reference to `Snapshot`."><title>SnapshotRef in iceberg::spec - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumIt [...]
 </div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct SnapshotRef { <span class="comment">/* private fields */</span> }</code></pre><script src="../../type.impl/alloc/sync/struct.Arc.js" data-self-path="iceberg::spec::snapshot::SnapshotRef" async></script></section></div></main></body></html>
\ No newline at end of file
diff --git a/api/iceberg/struct.MemoryCatalog.html b/api/iceberg/struct.MemoryCatalog.html
index 7eaebbaa2..b828e557c 100644
--- a/api/iceberg/struct.MemoryCatalog.html
+++ b/api/iceberg/struct.MemoryCatalog.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Memory catalog implementation."><title>MemoryCatalog in iceberg - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medium [...]
-</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Catalog-for-MemoryCatalog" class="impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#174-423">Source</a><a href="#impl-Catalog-for-MemoryCatalog" class="anchor">§</a><h3 class="code-header">impl <a  [...]
+</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Catalog-for-MemoryCatalog" class="impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#174-418">Source</a><a href="#impl-Catalog-for-MemoryCatalog" class="anchor">§</a><h3 class="code-header">impl <a  [...]
     &amp;'life0 self,
     maybe_parent: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'life1 <a class="struct" href="struct.NamespaceIdent.html" title="struct iceberg::NamespaceIdent">NamespaceIdent</a>&gt;,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="type.Result.html" title="type iceberg::Re [...]
@@ -74,14 +74,14 @@
     Self: 'async_trait,
     'life0: 'async_trait,
     'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Drop a table from the catalog.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.table_exists" class="method trait-impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#355-359">Source</a><a href="#method.table_exists" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Catalog.html#tymethod.table_exists" class="fn">table_exists</a>&lt;'life0, 'life1, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.table_exists" class="method trait-impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#350-354">Source</a><a href="#method.table_exists" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Catalog.html#tymethod.table_exists" class="fn">table_exists</a>&lt;'life0, 'life1, 'async_trait&gt;(
     &amp;'life0 self,
     table_ident: &amp;'life1 <a class="struct" href="struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a>,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="type.Result.html" title="type iceberg::Re [...]
     Self: 'async_trait,
     'life0: 'async_trait,
     'life1: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Check if a table exists in the catalog.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.rename_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#362-378">Source</a><a href="#method.rename_table" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Catalog.html#tymethod.rename_table" class="fn">rename_table</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.rename_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#357-373">Source</a><a href="#method.rename_table" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Catalog.html#tymethod.rename_table" class="fn">rename_table</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
     &amp;'life0 self,
     src_table_ident: &amp;'life1 <a class="struct" href="struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a>,
     dst_table_ident: &amp;'life2 <a class="struct" href="struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a>,
@@ -90,19 +90,19 @@
     'life0: 'async_trait,
     'life1: 'async_trait,
     'life2: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Rename a table in the catalog.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.update_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#400-422">Source</a><a href="#method.update_table" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Catalog.html#tymethod.update_table" class="fn">update_table</a>&lt;'life0, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.update_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#395-417">Source</a><a href="#method.update_table" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Catalog.html#tymethod.update_table" class="fn">update_table</a>&lt;'life0, 'async_trait&gt;(
     &amp;'life0 self,
     commit: <a class="struct" href="struct.TableCommit.html" title="struct iceberg::TableCommit">TableCommit</a>,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="type.Result.html" title="type iceberg::Re [...]
     Self: 'async_trait,
     'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Update a table in the catalog.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.purge_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#343-352">Source</a><a href="#method.purge_table" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Catalog.html#tymethod.purge_table" class="fn">purge_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.purge_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#343-347">Source</a><a href="#method.purge_table" class="anchor">§</a><h4 class="code-header">fn <a href="trait.Catalog.html#tymethod.purge_table" class="fn">purge_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
     &amp;'life0 self,
     table_ident: &amp;'life1 <a class="struct" href="struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a>,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="type.Result.html" title="type iceberg::Re [...]
     Self: 'async_trait,
     'life0: 'async_trait,
-    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Drop a table from the catalog and delete the underlying table data. <a href="trait.Catalog.html#tymethod.purge_table">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.register_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#380-397">Source</a><a href="#method.register_table" class="anchor">§</a><h4  [...]
+    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Drop a table from the catalog and delete the underlying table data. <a href="trait.Catalog.html#tymethod.purge_table">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.register_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#375-392">Source</a><a href="#method.register_table" class="anchor">§</a><h4  [...]
     &amp;'life0 self,
     table_ident: &amp;'life1 <a class="struct" href="struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a>,
     metadata_location: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
diff --git a/api/iceberg/table/index.html b/api/iceberg/table/index.html
index c9b798775..d26089e49 100644
--- a/api/iceberg/table/index.html
+++ b/api/iceberg/table/index.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Table API for Apache Iceberg"><title>iceberg::table - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Table API for Apache Iceberg"><title>iceberg::table - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e [...]
 </div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.StaticTable.html" title="struct iceberg::table::StaticTable">Static<wbr>Table</a></dt><dd><code>StaticTable</code> is a read-only table struct that can be created from a metadata file or from <code>TableMetaData</code> without a catalog.
 It can only be used to read metadata and for table scan.</dd><dt><a class="struct" href="struct.Table.html" title="struct iceberg::table::Table">Table</a></dt><dd>Table represents a table in the catalog.</dd><dt><a class="struct" href="struct.TableBuilder.html" title="struct iceberg::table::TableBuilder">Table<wbr>Builder</a></dt><dd>Builder to create table scan.</dd></dl></section></div></main></body></html>
\ No newline at end of file
diff --git a/api/iceberg/table/struct.StaticTable.html b/api/iceberg/table/struct.StaticTable.html
index 7688dff6c..c4fd02f83 100644
--- a/api/iceberg/table/struct.StaticTable.html
+++ b/api/iceberg/table/struct.StaticTable.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`StaticTable` is a read-only table struct that can be created from a metadata file or from `TableMetaData` without a catalog. It can only be used to read metadata and for table scan."><title>StaticTable in iceberg::table - Rust</title><script>if(window.location.protocol!=="file:")documen [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="`StaticTable` is a read-only table struct that can be created from a metadata file or from `TableMetaData` without a catalog. It can only be used to read metadata and for table scan."><title>StaticTable in iceberg::table - Rust</title><script>if(window.location.protocol!=="file:")documen [...]
 It can only be used to read metadata and for table scan.</p>
 <h2 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples</h2>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>metadata_file_location = <span class="string">"s3://bucket_name/path/to/metadata.json"</span>;
@@ -12,23 +12,23 @@ It can only be used to read metadata and for table scan.</p>
     .metadata()
     .current_snapshot()
     .unwrap()
-    .snapshot_id();</code></pre></div></div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-StaticTable" class="impl"><a class="src rightside" href="../../src/iceberg/table.rs.html#299-357">Source</a><a href="#impl-StaticTable" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
+    .snapshot_id();</code></pre></div></div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-StaticTable" class="impl"><a class="src rightside" href="../../src/iceberg/table.rs.html#308-366">Source</a><a href="#impl-StaticTable" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
     metadata: <a class="struct" href="../spec/struct.TableMetadata.html" title="struct iceberg::spec::TableMetadata">TableMetadata</a>,
     table_ident: <a class="struct" href="../struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a>,
     file_io: <a class="struct" href="../io/struct.FileIO.html" title="struct iceberg::io::FileIO">FileIO</a>,
 ) -&gt; <a class="type" href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;Self&gt;</h4></section></summary><div class="docblock"><p>Creates a static table from a given <code>TableMetadata</code> and <code>FileIO</code></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.from_metadata_file" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#317-334">Source</a><h4 class="code-header">pub async fn <a href="#method.from_metadata_file" class="fn">from_metadata_file</a>(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.from_metadata_file" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#326-343">Source</a><h4 class="code-header">pub async fn <a href="#method.from_metadata_file" class="fn">from_metadata_file</a>(
     metadata_location: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
     table_ident: <a class="struct" href="../struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a>,
     file_io: <a class="struct" href="../io/struct.FileIO.html" title="struct iceberg::io::FileIO">FileIO</a>,
 ) -&gt; <a class="type" href="../type.Result.html" title="type iceberg::Result">Result</a>&lt;Self&gt;</h4></section></summary><div class="docblock"><p>Creates a static table directly from metadata file and <code>FileIO</code></p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#337-339">Source</a><h4 class="code-header">pub fn <a href="#method.scan" class="fn">scan</a>(&amp;self) -&gt; <a class="struct" href="../scan/struct.TableScanBuilder.html" title="struct iceberg::scan::TableScanBuilder">TableScanBuilder</a>&lt;'_&gt;</h4></section></summary><div class="docblock"><p>Create a TableScanBui [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.metadata" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#342-344">Source</a><h4 class="code-header">pub fn <a href="#method.metadata" class="fn">metadata</a>(&amp;self) -&gt; <a class="type" href="../spec/type.TableMetadataRef.html" title="type iceberg::spec::TableMetadataRef">TableMetadataRef</a></h4></section></summary><div class="docblock"><p>Get TableMetadataRef for  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.into_table" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#349-351">Source</a><h4 class="code-header">pub fn <a href="#method.into_table" class="fn">into_table</a>(self) -&gt; <a class="struct" href="struct.Table.html" title="struct iceberg::table::Table">Table</a></h4></section></summary><div class="docblock"><p>Consumes the <code>StaticTable</code> and return it as a < [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.scan" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#346-348">Source</a><h4 class="code-header">pub fn <a href="#method.scan" class="fn">scan</a>(&amp;self) -&gt; <a class="struct" href="../scan/struct.TableScanBuilder.html" title="struct iceberg::scan::TableScanBuilder">TableScanBuilder</a>&lt;'_&gt;</h4></section></summary><div class="docblock"><p>Create a TableScanBui [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.metadata" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#351-353">Source</a><h4 class="code-header">pub fn <a href="#method.metadata" class="fn">metadata</a>(&amp;self) -&gt; <a class="type" href="../spec/type.TableMetadataRef.html" title="type iceberg::spec::TableMetadataRef">TableMetadataRef</a></h4></section></summary><div class="docblock"><p>Get TableMetadataRef for  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.into_table" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#358-360">Source</a><h4 class="code-header">pub fn <a href="#method.into_table" class="fn">into_table</a>(self) -&gt; <a class="struct" href="struct.Table.html" title="struct iceberg::table::Table">Table</a></h4></section></summary><div class="docblock"><p>Consumes the <code>StaticTable</code> and return it as a < [...]
 Please use this method carefully as the Table it returns remains detached from a catalog
 and can’t be used to perform modifications on the table.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.reader_builder" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#354-356">Source</a><h4 class="code-header">pub fn <a href="#method.reader_builder" class="fn">reader_builder</a>(&amp;self) -&gt; <a class="struct" href="../arrow/struct.ArrowReaderBuilder.html" title="struct iceberg::arrow::ArrowReaderBuilder">ArrowReaderBuilder</a></h4></section></summary><div class="docblo [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-StaticTable" class="impl"><a class="src rightside" href="../../src/iceberg/table.rs.html#296">Source</a><a href="#impl-Clone-for-StaticTable" class="anchor">§</a><h3 class="code-header">impl <a clas [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.reader_builder" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#363-365">Source</a><h4 class="code-header">pub fn <a href="#method.reader_builder" class="fn">reader_builder</a>(&amp;self) -&gt; <a class="struct" href="../arrow/struct.ArrowReaderBuilder.html" title="struct iceberg::arrow::ArrowReaderBuilder">ArrowReaderBuilder</a></h4></section></summary><div class="docblo [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-StaticTable" class="impl"><a class="src rightside" href="../../src/iceberg/table.rs.html#305">Source</a><a href="#impl-Clone-for-StaticTable" class="anchor">§</a><h3 class="code-header">impl <a clas [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
     T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><section id="method.as_any" class="method trait-impl"><a href="#method.as_any" class="anchor">§</a><h4 class="code-header">fn <a class="fn">as_any</a>(&amp;self) -&gt; &amp;(dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> + 'static)</h4 [...]
diff --git a/api/iceberg/table/struct.Table.html b/api/iceberg/table/struct.Table.html
index 234a9a7d3..7bd94b863 100644
--- a/api/iceberg/table/struct.Table.html
+++ b/api/iceberg/table/struct.Table.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Table represents a table in the catalog."><title>Table in iceberg::table - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSa [...]
-</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Table" class="impl"><a class="src rightside" href="../../src/iceberg/table.rs.html#183-271">Source</a><a href="#impl-Table" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Table.html" title="struct iceberg::table::Table">T [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Table represents a table in the catalog."><title>Table in iceberg::table - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSa [...]
+</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Table" class="impl"><a class="src rightside" href="../../src/iceberg/table.rs.html#183-280">Source</a><a href="#impl-Table" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Table.html" title="struct iceberg::table::Table">T [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.identifier" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#202-204">Source</a><h4 class="code-header">pub fn <a href="#method.identifier" class="fn">identifier</a>(&amp;self) -&gt; &amp;<a class="struct" href="../struct.TableIdent.html" title="struct iceberg::TableIdent">TableIdent</a></h4></section></summary><div class="docblock"><p>Returns table identifier.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.metadata" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#206-208">Source</a><h4 class="code-header">pub fn <a href="#method.metadata" class="fn">metadata</a>(&amp;self) -&gt; &amp;<a class="struct" href="../spec/struct.TableMetadata.html" title="struct iceberg::spec::TableMetadata">TableMetadata</a></h4></section></summary><div class="docblock"><p>Returns current metadata.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.metadata_ref" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#211-213">Source</a><h4 class="code-header">pub fn <a href="#method.metadata_ref" class="fn">metadata_ref</a>(&amp;self) -&gt; <a class="type" href="../spec/type.TableMetadataRef.html" title="type iceberg::spec::TableMetadataRef">TableMetadataRef</a></h4></section></summary><div class="docblock"><p>Returns curre [...]
@@ -11,7 +11,8 @@
 See <a href="../inspect/struct.MetadataTable.html" title="struct iceberg::inspect::MetadataTable"><code>MetadataTable</code></a> for more details.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.readonly" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#258-260">Source</a><h4 class="code-header">pub fn <a href="#method.readonly" class="fn">readonly</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns the flag indicating whether the <code>Table</c [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.current_schema_ref" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#263-265">Source</a><h4 class="code-header">pub fn <a href="#method.current_schema_ref" class="fn">current_schema_ref</a>(&amp;self) -&gt; <a class="type" href="../spec/type.SchemaRef.html" title="type iceberg::spec::SchemaRef">SchemaRef</a></h4></section></summary><div class="docblock"><p>Returns the curr [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.reader_builder" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#268-270">Source</a><h4 class="code-header">pub fn <a href="#method.reader_builder" class="fn">reader_builder</a>(&amp;self) -&gt; <a class="struct" href="../arrow/struct.ArrowReaderBuilder.html" title="struct iceberg::arrow::ArrowReaderBuilder">ArrowReaderBuilder</a></h4></section></summary><div class="docblo [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.manifest_list_reader" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#268-274">Source</a><h4 class="code-header">pub fn <a href="#method.manifest_list_reader" class="fn">manifest_list_reader</a>(&amp;self, snapshot: &amp;<a class="type" href="../spec/type.SnapshotRef.html" title="type iceberg::spec::SnapshotRef">SnapshotRef</a>) -&gt; <a class="struct" href="../spec/struc [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.reader_builder" class="method"><a class="src rightside" href="../../src/iceberg/table.rs.html#277-279">Source</a><h4 class="code-header">pub fn <a href="#method.reader_builder" class="fn">reader_builder</a>(&amp;self) -&gt; <a class="struct" href="../arrow/struct.ArrowReaderBuilder.html" title="struct iceberg::arrow::ArrowReaderBuilder">ArrowReaderBuilder</a></h4></section></summary><div class="docblo [...]
 </div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Table" class="impl"><a class="src rightside" href="../../src/iceberg/table.rs.html#172">Source</a><a href="#impl-Clone-for-Table" class="anchor">§</a><h3 class="code-header">impl <a class="trait" hr [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href [...]
     T: CastFrom&lt;U&gt;,</div></h4></section></summary><div class='docblock'>Casts <code>self</code> to type <code>T</code>. The <a href="https://doc.rust-lang.org/reference/expressions/operator-expr.html#semantics">semantics of numeric casting</a> with the <code>as</code> operator are followed, so <code>&lt;T as As&gt;::as_::&lt;U&gt;</code> can be used in the same way as <code>T as U</code> for numeric conversions. <a>Read more</a></div></details></div></details><details class="toggle [...]
diff --git a/api/iceberg/trait.Catalog.html b/api/iceberg/trait.Catalog.html
index 16e0f4ead..e6f7fb4b9 100644
--- a/api/iceberg/trait.Catalog.html
+++ b/api/iceberg/trait.Catalog.html
@@ -230,4 +230,4 @@ be used for the file cleanup step.</p>
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="type.Result.html" title="type iceberg::Re [...]
     Self: 'async_trait,
     'life0: 'async_trait,</div></h4></section></summary><div class="docblock"><p>Update a table to the catalog.</p>
-</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Catalog-for-MemoryCatalog" class="impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#174-423">Source</a><a href="#impl-Catalog-for-MemoryCatalog" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Catalog.html" title="trait iceberg::Catalog">Catalog</a> for < [...]
\ No newline at end of file
+</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Catalog-for-MemoryCatalog" class="impl"><a class="src rightside" href="../src/iceberg/catalog/memory/catalog.rs.html#174-418">Source</a><a href="#impl-Catalog-for-MemoryCatalog" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Catalog.html" title="trait iceberg::Catalog">Catalog</a> for < [...]
\ No newline at end of file
diff --git a/api/iceberg/transaction/index.html b/api/iceberg/transaction/index.html
index a5ab77f6e..4cb043deb 100644
--- a/api/iceberg/transaction/index.html
+++ b/api/iceberg/transaction/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="This module contains transaction api."><title>iceberg::transaction - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Med [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="This module contains transaction api."><title>iceberg::transaction - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Med [...]
 <p>The transaction API enables changes to be made to an existing table.</p>
 <p>Note that this may also have side effects, such as producing new manifest
 files.</p>
diff --git a/api/iceberg_catalog_glue/struct.GlueCatalog.html b/api/iceberg_catalog_glue/struct.GlueCatalog.html
index bcc5765aa..efe0865be 100644
--- a/api/iceberg_catalog_glue/struct.GlueCatalog.html
+++ b/api/iceberg_catalog_glue/struct.GlueCatalog.html
@@ -1,6 +1,6 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Glue Catalog"><title>GlueCatalog in iceberg_catalog_glue - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic- [...]
 </div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-GlueCatalog" class="impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#176-294">Source</a><a href="#impl-GlueCatalog" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.GlueCatalog.html" title="s [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Catalog-for-GlueCatalog" class="impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#297-929">Source</a><a href="#impl-Catalog-for-GlueCatalog" class="anchor">§</a><h3 class="code- [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Catalog-for-GlueCatalog" class="impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#297-924">Source</a><a href="#impl-Catalog-for-GlueCatalog" class="anchor">§</a><h3 class="code- [...]
     &amp;'life0 self,
     parent: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'life1 <a class="struct" href="../iceberg/catalog/struct.NamespaceIdent.html" title="struct iceberg::catalog::NamespaceIdent">NamespaceIdent</a>&gt;,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../iceberg/error/type.Result.html" title= [...]
@@ -160,7 +160,7 @@ attempting to drop the table. This includes scenarios where
 the table does not exist.</li>
 <li>Any network or communication error occurs with the database backend.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.table_exists" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#695-722">Source</a><a href="#method.table_exists" class="anchor">§</a><h4 class="code-header">fn <a href="../iceberg/catalog/trait.Catalog.html#tymethod.table_exists" class="fn">table_exists</a>&lt;'life0, 'life1, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.table_exists" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#690-717">Source</a><a href="#method.table_exists" class="anchor">§</a><h4 class="code-header">fn <a href="../iceberg/catalog/trait.Catalog.html#tymethod.table_exists" class="fn">table_exists</a>&lt;'life0, 'life1, 'async_trait&gt;(
     &amp;'life0 self,
     table: &amp;'life1 <a class="struct" href="../iceberg/catalog/struct.TableIdent.html" title="struct iceberg::catalog::TableIdent">TableIdent</a>,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../iceberg/error/type.Result.html" title= [...]
@@ -174,7 +174,7 @@ in the database.</p>
 <li><code>Ok(false)</code> if the table does not exist in the database.</li>
 <li><code>Err(...)</code> if an error occurs during the process</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.rename_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#730-802">Source</a><a href="#method.rename_table" class="anchor">§</a><h4 class="code-header">fn <a href="../iceberg/catalog/trait.Catalog.html#tymethod.rename_table" class="fn">rename_table</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.rename_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#725-797">Source</a><a href="#method.rename_table" class="anchor">§</a><h4 class="code-header">fn <a href="../iceberg/catalog/trait.Catalog.html#tymethod.rename_table" class="fn">rename_table</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
     &amp;'life0 self,
     src: &amp;'life1 <a class="struct" href="../iceberg/catalog/struct.TableIdent.html" title="struct iceberg::catalog::TableIdent">TableIdent</a>,
     dest: &amp;'life2 <a class="struct" href="../iceberg/catalog/struct.TableIdent.html" title="struct iceberg::catalog::TableIdent">TableIdent</a>,
@@ -189,7 +189,7 @@ or moves it between namespaces (databases).</p>
 <li><code>Ok(())</code> on successful rename or move of the table.</li>
 <li><code>Err(...)</code> if an error occurs during the process.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.register_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#815-866">Source</a><a href="#method.register_table" class="anchor">§</a><h4 class="code-header">fn <a href="../iceberg/catalog/trait.Catalog.html#tymethod.register_table" class="fn">register_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.register_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#810-861">Source</a><a href="#method.register_table" class="anchor">§</a><h4 class="code-header">fn <a href="../iceberg/catalog/trait.Catalog.html#tymethod.register_table" class="fn">register_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
     &amp;'life0 self,
     table_ident: &amp;'life1 <a class="struct" href="../iceberg/catalog/struct.TableIdent.html" title="struct iceberg::catalog::TableIdent">TableIdent</a>,
     metadata_location: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
@@ -205,13 +205,13 @@ corresponding table in the Glue Catalog.</p>
 If the registration fails due to validation issues, existing table conflicts,
 metadata problems, or errors during the registration or loading process,
 an <code>Err(...)</code> is returned.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.purge_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#677-686">Source</a><a href="#method.purge_table" class="anchor">§</a><h4 class="code-header">fn <a href="../iceberg/catalog/trait.Catalog.html#tymethod.purge_table" class="fn">purge_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.purge_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#677-681">Source</a><a href="#method.purge_table" class="anchor">§</a><h4 class="code-header">fn <a href="../iceberg/catalog/trait.Catalog.html#tymethod.purge_table" class="fn">purge_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
     &amp;'life0 self,
     table: &amp;'life1 <a class="struct" href="../iceberg/catalog/struct.TableIdent.html" title="struct iceberg::catalog::TableIdent">TableIdent</a>,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../iceberg/error/type.Result.html" title= [...]
     Self: 'async_trait,
     'life0: 'async_trait,
-    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Drop a table from the catalog and delete the underlying table data. <a href="../iceberg/catalog/trait.Catalog.html#tymethod.purge_table">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.update_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#868-928">Source</a><a href="#method.update_table" class="anch [...]
+    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Drop a table from the catalog and delete the underlying table data. <a href="../iceberg/catalog/trait.Catalog.html#tymethod.purge_table">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.update_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_glue/catalog.rs.html#863-923">Source</a><a href="#method.update_table" class="anch [...]
     &amp;'life0 self,
     commit: <a class="struct" href="../iceberg/catalog/struct.TableCommit.html" title="struct iceberg::catalog::TableCommit">TableCommit</a>,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../iceberg/error/type.Result.html" title= [...]
diff --git a/api/iceberg_catalog_hms/struct.HmsCatalog.html b/api/iceberg_catalog_hms/struct.HmsCatalog.html
index 9c9eaf7b4..e7b594a36 100644
--- a/api/iceberg_catalog_hms/struct.HmsCatalog.html
+++ b/api/iceberg_catalog_hms/struct.HmsCatalog.html
@@ -1,6 +1,6 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Hive metastore Catalog."><title>HmsCatalog in iceberg_catalog_hms - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-Medi [...]
 </div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-HmsCatalog" class="impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#195-247">Source</a><a href="#impl-HmsCatalog" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.HmsCatalog.html" title="struc [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Catalog-for-HmsCatalog" class="impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#250-720">Source</a><a href="#impl-Catalog-for-HmsCatalog" class="anchor">§</a><h3 class="code-hea [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Catalog-for-HmsCatalog" class="impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#250-715">Source</a><a href="#impl-Catalog-for-HmsCatalog" class="anchor">§</a><h3 class="code-hea [...]
     &amp;'life0 self,
     parent: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;'life1 NamespaceIdent&gt;,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = Result&lt;<a class="struct" href="https://doc.rust-lang.org/nig [...]
@@ -160,7 +160,7 @@ attempting to drop the table. This includes scenarios where
 the table does not exist.</li>
 <li>Any network or communication error occurs with the database backend.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.table_exists" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#642-662">Source</a><a href="#method.table_exists" class="anchor">§</a><h4 class="code-header">fn <a class="fn">table_exists</a>&lt;'life0, 'life1, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.table_exists" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#637-657">Source</a><a href="#method.table_exists" class="anchor">§</a><h4 class="code-header">fn <a class="fn">table_exists</a>&lt;'life0, 'life1, 'async_trait&gt;(
     &amp;'life0 self,
     table: &amp;'life1 TableIdent,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = Result&lt;<a class="primitive" href="https://doc.rust-lang.org/ [...]
@@ -174,7 +174,7 @@ in the database.</p>
 <li><code>Ok(false)</code> if the table does not exist in the database.</li>
 <li><code>Err(...)</code> if an error occurs during the process</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.rename_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#670-701">Source</a><a href="#method.rename_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">rename_table</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.rename_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#665-696">Source</a><a href="#method.rename_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">rename_table</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
     &amp;'life0 self,
     src: &amp;'life1 TableIdent,
     dest: &amp;'life2 TableIdent,
@@ -189,20 +189,20 @@ or moves it between namespaces (databases).</p>
 <li><code>Ok(())</code> on successful rename or move of the table.</li>
 <li><code>Err(...)</code> if an error occurs during the process.</li>
 </ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.purge_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#624-633">Source</a><a href="#method.purge_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">purge_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
+</div></details><details class="toggle method-toggle" open><summary><section id="method.purge_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#624-628">Source</a><a href="#method.purge_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">purge_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
     &amp;'life0 self,
     table: &amp;'life1 TableIdent,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = Result&lt;<a class="primitive" href="https://doc.rust-lang.org/ [...]
     Self: 'async_trait,
     'life0: 'async_trait,
-    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Drop a table from the catalog and delete the underlying table data. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.register_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#703-712">Source</a><a href="#method.register_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">register_tabl [...]
+    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Drop a table from the catalog and delete the underlying table data. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.register_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#698-707">Source</a><a href="#method.register_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">register_tabl [...]
     &amp;'life0 self,
     _table_ident: &amp;'life1 TableIdent,
     _metadata_location: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = Result&lt;Table&gt;&gt; + <a class="trait" href="https://doc.ru [...]
     Self: 'async_trait,
     'life0: 'async_trait,
-    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Register an existing table to the catalog.</div></details><details class="toggle method-toggle" open><summary><section id="method.update_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#714-719">Source</a><a href="#method.update_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">update_table</a>&lt;'life0, 'async_trait&gt;(
+    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Register an existing table to the catalog.</div></details><details class="toggle method-toggle" open><summary><section id="method.update_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_hms/catalog.rs.html#709-714">Source</a><a href="#method.update_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">update_table</a>&lt;'life0, 'async_trait&gt;(
     &amp;'life0 self,
     _commit: TableCommit,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = Result&lt;Table&gt;&gt; + <a class="trait" href="https://doc.ru [...]
diff --git a/api/iceberg_catalog_sql/struct.SqlCatalog.html b/api/iceberg_catalog_sql/struct.SqlCatalog.html
index 9dad30edc..bf47182c6 100644
--- a/api/iceberg_catalog_sql/struct.SqlCatalog.html
+++ b/api/iceberg_catalog_sql/struct.SqlCatalog.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Sql catalog implementation."><title>SqlCatalog in iceberg_catalog_sql - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans- [...]
-</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Catalog-for-SqlCatalog" class="impl"><a class="src rightside" href="../src/iceberg_catalog_sql/catalog.rs.html#387-1026">Source</a><a href="#impl-Catalog-for-SqlCatalog" class="anchor">§</a><h3 class="code-header">impl Catalog for [...]
+</div></details><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Catalog-for-SqlCatalog" class="impl"><a class="src rightside" href="../src/iceberg_catalog_sql/catalog.rs.html#387-1021">Source</a><a href="#impl-Catalog-for-SqlCatalog" class="anchor">§</a><h3 class="code-header">impl Catalog for [...]
     &amp;'life0 self,
     commit: TableCommit,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = Result&lt;Table&gt;&gt; + <a class="trait" href="https://doc.ru [...]
@@ -61,26 +61,26 @@
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = Result&lt;<a class="primitive" href="https://doc.rust-lang.org/ [...]
     Self: 'async_trait,
     'life0: 'async_trait,
-    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Drop a table from the catalog, or returns error if it doesn’t exist.</div></details><details class="toggle method-toggle" open><summary><section id="method.purge_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_sql/catalog.rs.html#774-783">Source</a><a href="#method.purge_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">purge_table</a>&lt;'life0, 'life1,  [...]
+    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Drop a table from the catalog, or returns error if it doesn’t exist.</div></details><details class="toggle method-toggle" open><summary><section id="method.purge_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_sql/catalog.rs.html#774-778">Source</a><a href="#method.purge_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">purge_table</a>&lt;'life0, 'life1,  [...]
     &amp;'life0 self,
     table: &amp;'life1 TableIdent,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = Result&lt;<a class="primitive" href="https://doc.rust-lang.org/ [...]
     Self: 'async_trait,
     'life0: 'async_trait,
-    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Drop a table from the catalog and delete the underlying table data. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.load_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_sql/catalog.rs.html#785-829">Source</a><a href="#method.load_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">load_table</a>&lt;'li [...]
+    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Drop a table from the catalog and delete the underlying table data. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.load_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_sql/catalog.rs.html#780-824">Source</a><a href="#method.load_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">load_table</a>&lt;'li [...]
     &amp;'life0 self,
     identifier: &amp;'life1 TableIdent,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = Result&lt;Table&gt;&gt; + <a class="trait" href="https://doc.ru [...]
     Self: 'async_trait,
     'life0: 'async_trait,
-    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Load table from the catalog.</div></details><details class="toggle method-toggle" open><summary><section id="method.create_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_sql/catalog.rs.html#831-900">Source</a><a href="#method.create_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">create_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
+    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Load table from the catalog.</div></details><details class="toggle method-toggle" open><summary><section id="method.create_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_sql/catalog.rs.html#826-895">Source</a><a href="#method.create_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">create_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
     &amp;'life0 self,
     namespace: &amp;'life1 NamespaceIdent,
     creation: TableCreation,
 ) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = Result&lt;Table&gt;&gt; + <a class="trait" href="https://doc.ru [...]
     Self: 'async_trait,
     'life0: 'async_trait,
-    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Create a new table inside the namespace.</div></details><details class="toggle method-toggle" open><summary><section id="method.rename_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_sql/catalog.rs.html#902-943">Source</a><a href="#method.rename_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">rename_table</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
+    'life1: 'async_trait,</div></h4></section></summary><div class='docblock'>Create a new table inside the namespace.</div></details><details class="toggle method-toggle" open><summary><section id="method.rename_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_sql/catalog.rs.html#897-938">Source</a><a href="#method.rename_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">rename_table</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
     &amp;'life0 self,
     src: &amp;'life1 TableIdent,
     dest: &amp;'life2 TableIdent,
@@ -88,7 +88,7 @@
     Self: 'async_trait,
     'life0: 'async_trait,
     'life1: 'async_trait,
-    'life2: 'async_trait,</div></h4></section></summary><div class='docblock'>Rename a table in the catalog.</div></details><details class="toggle method-toggle" open><summary><section id="method.register_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_sql/catalog.rs.html#945-972">Source</a><a href="#method.register_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">register_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
+    'life2: 'async_trait,</div></h4></section></summary><div class='docblock'>Rename a table in the catalog.</div></details><details class="toggle method-toggle" open><summary><section id="method.register_table" class="method trait-impl"><a class="src rightside" href="../src/iceberg_catalog_sql/catalog.rs.html#940-967">Source</a><a href="#method.register_table" class="anchor">§</a><h4 class="code-header">fn <a class="fn">register_table</a>&lt;'life0, 'life1, 'async_trait&gt;(
     &amp;'life0 self,
     table_ident: &amp;'life1 TableIdent,
     metadata_location: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
diff --git a/api/search.index/0001ec87c893.js b/api/search.index/0001ec87c893.js
deleted file mode 100644
index e6db4a7f0..000000000
--- a/api/search.index/0001ec87c893.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("ZQBEAAAGmh5yZRtmG2cbaBtpG2obaxsjgwKgYAAAHSBjdCUAQQAAA4AbbsQNbxJbGgUBwAAAAXoODWQfZXQFAcAAAAtBHQO4HmF03wGFsAAcZAM3DGAC")
\ No newline at end of file
diff --git a/api/search.index/001b3bf61284.js b/api/search.index/001b3bf61284.js
new file mode 100644
index 000000000..4cf464a91
--- /dev/null
+++ b/api/search.index/001b3bf61284.js
@@ -0,0 +1 @@
+rn_("BQHBAAAC7hgMCh9mbgUBxAAAARUbBaYdaXP7AmxvBQHFAAACehwDRB1rbhsCoLAAAB4HY3UzAISgcAAAGxagcAAAGxcFAAb0iwkAAAEAAQAwAEsDoXAAACAFoAAAABqFYWVz")
\ No newline at end of file
diff --git a/api/search.index/00b197304bce.js b/api/search.index/00b197304bce.js
new file mode 100644
index 000000000..c576417c9
--- /dev/null
+++ b/api/search.index/00b197304bce.js
@@ -0,0 +1 @@
+rn_("BQBKAAAGVx92fh8FAEUAAAzzH2EbHyOBAqCgAAAfK2FzJQBAAAATNxo4GmmDGoQafhtBQgAAfxKAEtgY3B2VHwUCwwAACPQeBpofADYaZG1ztQFBAAAUnx6gHgDXGG1zqQ+1E7YTtxO4E7kTuhOQG5EbSR12HXcdBQHAAAAFhhoSNBo1GnV55y4AyqDAAAAf86BwAAAbMLBgGocDI8BAqBs7MAAAAQAALQAPALULAgDRDRYAWRIDAFYVAQBdGgAACxsBAEwbAQCZHAEAyh0AAP4dAACJHgAAGx8AACsfAAA6HwAAlx8AABsCoCAAAB3yYW8=")
\ No newline at end of file
diff --git a/api/search.index/00e903650530.js b/api/search.index/00e903650530.js
deleted file mode 100644
index 12bfbb516..000000000
--- a/api/search.index/00e903650530.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUMAAJEckhzOHXYeBQBHAAAM4B9hCB8jAwOgIAAAH4KgYAAAHZhydHYBGB8AAPsCaG8TAAOw4B+FAAGg0AAAHy9jZXQBRxUAAA==")
\ No newline at end of file
diff --git a/api/search.index/0143cd4ead51.js b/api/search.index/0143cd4ead51.js
new file mode 100644
index 000000000..1e85a8faa
--- /dev/null
+++ b/api/search.index/0143cd4ead51.js
@@ -0,0 +1 @@
+rn_("BQHAAAASNxs9HxlGH9ofaW8TAAOwMBxqAw6wMBxrAAFmaXA6MAAAAQAAAAAADgAQAAAA3BiNGo4agxuVHJYcmR2hHdQeGR8aH2Efbh9vH6gfI4ICoDAAABuHZnMrAqCgAAAd/WZ0")
\ No newline at end of file
diff --git a/api/search.index/01e3d67ae99a.js b/api/search.index/01e3d67ae99a.js
deleted file mode 100644
index d0c7a96a5..000000000
--- a/api/search.index/01e3d67ae99a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUQAAKEbohuxHf0dBQBRAAAG9B9k5B8JAqBQAAAdnKEwAAAfo2NyBQHEAAAoQB+AH4EfBLgfYW/7AmFlIUIAAGAbYRsMHwUBwAAAMsoayxqGHDQdA4Ida3AhQQAAAA78GE0aRQJBAAAVNxs4GxroHukeM+cZ6BmGGwAeb3N0Rw5IDkkOSg4IHVsDoCAAAB9kbnN4BQHEAAAB5hkCnBphdb8BhaAAAAAJoZFAQBUASAAABvAfZJcf3h8jgQKgcAAAHC5lbQUBwAAAAiofCccfaW8TBwKgMAAAH2VmaffBHgAARQABAEcADQABADkAGwKwMB1fAZhhciFFAACiH7QftR8lAEAAAAPAHmmbHpweFx8hQgAAfBx9HC0fMUEAAH8dgB2BHWAfBQHAAAAVmB6UHwK/HnV58wGEAgEDOjAAAAEAAAAAAAwAEAAAAG4aWxtcG10bXhtfGykduR2iHgsfdx+DH7Ef+wJlbAUAQgA [...]
\ No newline at end of file
diff --git a/api/search.index/020d51b32513.js b/api/search.index/020d51b32513.js
deleted file mode 100644
index 5bbafe83e..000000000
--- a/api/search.index/020d51b32513.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("VQBCAAAD2h5pexJrE8oYyxjMGEIdFQBFAAAFcB9jDx8QH1UAQAAAVKgaqRqqGqsarBqtGnQHDnYOiRuPG5kcmhxRRQAAohqjGqQapRqmGqcaBQBFAAAGsB9iPB8VAEEAAATtHmbEH8UfFQBCAAAEDR9myB/JH/sCYW8hRQAAcRzMHc0d8wMDbHB385obAACEAeEBBQBCAAAEGR5jbh0jgQKgIAAAGq5lbCMAA6DwAAAf0qCAAAAdzmVmcvMGDgAAURECAPMAhSiAEjswAAABAAAIAAIAjgsAAIcNBwCbhKCgAAAdnKBAAAAflhBBQA==")
\ No newline at end of file
diff --git a/api/search.index/026268386069.js b/api/search.index/026268386069.js
deleted file mode 100644
index 36df63063..000000000
--- a/api/search.index/026268386069.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUUAAAkexh7HHgUASgAAFJ0fnh9tfB8VAEYAABQ9Hz4fbRIfmR+zAISg0AAAH3YggBI7MAAAAQAAjAADABkOAAD8D4oADx0AAA==")
\ No newline at end of file
diff --git a/api/search.index/029000caaaab.js b/api/search.index/029000caaaab.js
new file mode 100644
index 000000000..21506fde8
--- /dev/null
+++ b/api/search.index/029000caaaab.js
@@ -0,0 +1 @@
+rn_("FQBNAAAE4R9mBCAFICOGA6AQAAAcT6CAAAAfJm1zdAUBRAAABLoeA90eYnM9GwUASgAAFLAfsR9tjx8VAEYAABRQH1EfbSUfrB/zhgJmcEsDoDAAABVBoEAAABl8ZHBzVwgAiLBwG2IAAaAwAAAPlLAwE7QHYqCgAAAdgqDQAAAezDXACgGfBAAA")
\ No newline at end of file
diff --git a/api/search.index/02dbd457c84e.js b/api/search.index/02dbd457c84e.js
new file mode 100644
index 000000000..11b99f79b
--- /dev/null
+++ b/api/search.index/02dbd457c84e.js
@@ -0,0 +1 @@
+rn_("BQBBAAAG/h9k4x8TjAKgQAAAH71tbwUBxQAABKsdBQsecXP7AmFvFQBJAAAEXB9m7B/tHxUASQAABuIfZNsdnh8VAEwAAAb5H2RbH9UfFQBMAAAG+B9kWh/UH/sCYWkFAcAAAAeLHyKBGoIabB1veSMCArBgHJACLGx0OzAAAAEAAAYAAwB7EgEAqRMDABQaAAAlAEEAABPcGYkcYX0TfhP0HscPAIiggAAAHw+gYAAAIAMcMQY6MAAAAQAAAAAACgAQAAAAXwuEDQoZCxnPGTMfqh/PH9Af8B/xHw==")
\ No newline at end of file
diff --git a/api/search.index/02f986cb7837.js b/api/search.index/02f986cb7837.js
new file mode 100644
index 000000000..2222af44c
--- /dev/null
+++ b/api/search.index/02f986cb7837.js
@@ -0,0 +1 @@
+rn_("BQHBAAACqxoFrBxhZQUBwQAAAqoaBascYWVrA6AAAAAPszEyMwEBAbBAHqEAVmU6MAAAAQAAAAAAOQAQAAAAKg4rDiwOLQ4uDi8OMA4xDjIOMw40DjUONg43DjgOOQ46DjsOPA49Dj4OPw5ADkEO7BkPGhAaERpzGoYaHRseG3UbdhuZG5wcoBxPHVEdYR2oHbYdwx0IHhwepR6nHqkeqh6yHuge7B4IHxcfLx9WH6cfwx+TAASgUAAAH1mgYAAAGqllcnV2OzAAAAEAABYAAQC/CRYA")
\ No newline at end of file
diff --git a/api/search.index/0349e10e2b5a.js b/api/search.index/0349e10e2b5a.js
new file mode 100644
index 000000000..516bfcbce
--- /dev/null
+++ b/api/search.index/0349e10e2b5a.js
@@ -0,0 +1 @@
+rn_("BQHAAAAWGx0cHQWtH2ZoIwACoHAAABytaXQBvh4AAAUARgAAEBMeOB9yvR0FAcAAAAvbHgiiHWNkBQBKAAAGVx92fh8FAEUAAAzzH2EbHyOBAqCgAAAfK2FzJQBAAAATNxo4GmmDGoQafhtBQgAAfxKAEtgY3B2VHwUCwwAACPQeBpofADYaZG1ztQFBAAAUnx6gHgDXGG1zqQ+1E7YTtxO4E7kTuhOQG5EbSR12HXcdBQHAAAAFhhoSNBo1GnV55y4AyqDAAAAf86BwAAAbMLBgGocDI8BAqBs7MAAAAQAALQAPALULAgDRDRYAWRIDAFYVAQBdGgAACxsBAEwbAQCZHAEAyh0AAP4dAACJHgAAGx8AACsfAAA6HwAAlx8AABsCoCAAAB3yYW8lAEIAAAUvG2OoD/8PABArAqEQAAAfrWF1BQBBAAAMvh5y2AnnCwCJoMAAAB/7sAALog4woDAAAB+tDbAHOjAAAAE [...]
\ No newline at end of file
diff --git a/api/search.index/0383e44cf79c.js b/api/search.index/0383e44cf79c.js
deleted file mode 100644
index eb67a69a4..000000000
--- a/api/search.index/0383e44cf79c.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBBAAAG6x9k0B8TjAKgQAAAH6ptbwUBxQAABJkdBfkdcXP7AmFvFQBJAAAESR9m2R/aHxUASQAABs8fZMgdix8VAEwAAAbmH2RIH8IfFQBMAAAG5R9kRx/BH/sCYWkFAcAAAAd4HyJvGnAaWh1veSMCArBgHH4CLGx0OzAAAAEAAAYAAwBsEgEAmRMDAAIaAAAlAEEAABPKGXccYW0TbhPhHscPAIiggAAAHvygYAAAH/AcMQY6MAAAAQAAAAAACgAQAAAAVQt4DfgY+Ri9GSAflx+8H70f3R/eHw==")
\ No newline at end of file
diff --git a/api/search.index/03855167089c.js b/api/search.index/03855167089c.js
new file mode 100644
index 000000000..25f19ebef
--- /dev/null
+++ b/api/search.index/03855167089c.js
@@ -0,0 +1 @@
+rn_("BQHAAABUQBWJGYoZixmMGY0ZBI4ZaHQFAcEAAAKvGAGUHXJ0MUIAANwa3RqYHEYdZQBCAAAD3xlhghODE4QThROGE4cTiBMrArAwGK0AAW50BQHAAAAIHR0lDxoQGhEab3UnHQDMoCAAAA/HoLAAAByJsEAbSQABoDAAABrpoEAAABiwsGAaEgABoCAAAA/IwMwhDzswAAABAABAAgYAnQQAAIUH2AAnDgAAehHYAA0XigCHGQEA")
\ No newline at end of file
diff --git a/api/search.index/03c7ecdbc7b0.js b/api/search.index/03c7ecdbc7b0.js
new file mode 100644
index 000000000..ec1eff69d
--- /dev/null
+++ b/api/search.index/03c7ecdbc7b0.js
@@ -0,0 +1 @@
+rn_("IUEAAKseKB8pHwUBwAAAEMYYIhsBxxhkbwGBAqDQAAAflaEwAAAfy2FwpwEChqBQAAAbdLBwHZUAAaDAAAAfJzRBEPWgDgAAAQC3CzAB/wAbArAgGukEwGVz")
\ No newline at end of file
diff --git a/api/search.index/04052d5f047c.js b/api/search.index/04052d5f047c.js
new file mode 100644
index 000000000..44d9dcfc9
--- /dev/null
+++ b/api/search.index/04052d5f047c.js
@@ -0,0 +1 @@
+rn_("FQBEAAAGAyBkqh/xH0MAA6CAAAAfWLCQG6gA1mNlbDowAAABAAAAAAAQABAAAACyCbMJjguPC5ALkQumDKcMIw6qDqsOrA7ND4kT2Bk1HdYf")
\ No newline at end of file
diff --git a/api/search.index/04090ffccf87.js b/api/search.index/04090ffccf87.js
new file mode 100644
index 000000000..24af5c07c
--- /dev/null
+++ b/api/search.index/04090ffccf87.js
@@ -0,0 +1 @@
+rn_("BQHAAAABDxuS4x3kHeUd5h3nHegd6R37HvwedR9pdAUBQwAABqcfAkAfYnK0HiOIAqBAAAAe+WZzBQBEAAAAzR1zaB3zAwJmcPQSGgAAAQCWAIUCLwGFoGAAABuFoEAAABj3oFAAABygAEhJ")
\ No newline at end of file
diff --git a/api/search.index/041b23a188de.js b/api/search.index/041b23a188de.js
deleted file mode 100644
index c76a97b7f..000000000
--- a/api/search.index/041b23a188de.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQABsAATbwABczswAAABAAAUAAkACQ4AALIPBQCVGgEAnRoBANIaAQD7GgEAqRwBAO0dAQDEHgEAKwKg0AAAHaVociFGAADlH+Yf6x8FAsMAAA7AHwKRHghxH3R1dyMFAqBgAAAdP2JwAS4VAAAbAqAwAAAfhGFoNwgAiLBwHHMAk6BAAAAf3KCAAAAdUrBAHocAAaAwAAAccBycBDowAAABAAAAAAASABAAAAAyBDMENxo4GjkaOho7GjwaVBtVGz0ceR5+HkcfSB+qH8Efwh/QHw==")
\ No newline at end of file
diff --git a/api/search.index/0439e1dc0aa0.js b/api/search.index/0439e1dc0aa0.js
deleted file mode 100644
index 0361d4503..000000000
--- a/api/search.index/0439e1dc0aa0.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUMAAD0VrRlqGkwcFQBFAAAIRR9jIx3DHwUAQwAACmwfd0waBQHAAAAlexp8GnEbARMbaXVLA7AgGxUAD7BgGmoB4mJydFuEoEAAAB7yoCAAAB9hAUBBBQBBAAAUnR2eHW02HPMCAWnyIBsAAAEAFQBBAAAUIR8iH23rHuwe8wcBafXLHQAAOwABABQBcQBFAEEAAARJH2bnHRgenx/ZH9ofEwaEsCAbIgABoGAAAB/DoIAAAB/RAAEHAaUcAAAFAcMAABXoHukeBjsdbnQFAcAAABObGpQdG7oevR5jcSUAQQAAFI0ejh5tNx1kHWUdEwSEoKAAAB+HoCAAAB3JoKAAAB9rACEROjAAAAEAAAAAAAcAEAAAAEsaOhs7G4cciBy3HewdJx8FAcAAAAH4DQH5DTI5AQDNQflGElZxoCAAAA36dDYLjJI8M/vtgb+vsOAfZwABB7h4LdaBsMAfNAABQZtob34iRZSgV63 [...]
\ No newline at end of file
diff --git a/api/search.index/045d8a1cb201.js b/api/search.index/045d8a1cb201.js
new file mode 100644
index 000000000..295c72f6d
--- /dev/null
+++ b/api/search.index/045d8a1cb201.js
@@ -0,0 +1 @@
+rn_("BQBDAAAD7R5pVB0jBAKgcAAAH69wdPR6GgAA7gABAAEAIUIAACAaqxudHAUAUgAABgYgZPQfFQBAAAAAAR9z+RgfGmUARQAABV8fco0chh2HHYgdiR2KHYsd84ECY2cVAEIAAAEDH2mBHe4dGwKwEBrXAxNlbBsCoIAAAB+XaXIlAE0AAAb/H2SQH5Ef5h8FAcMAAANEHxAiHSMdbnPzgQJsbQUBxAAAMRwesh4IHy8fBVkfZXL3CwCIoHAAAB9MJogHOzAAAAEAADEAFgDeDw8A0xkBANkZAQDuGQAADBoAABUaBgCUGgEAphoAAMoaAQAQGwAAixsAAJ8bAACMHAAAjB0CAKQdAAAaHgAALh4AAMMeAAAhHwAANx8AAD4fAADfHwEA")
\ No newline at end of file
diff --git a/api/search.index/0466a4c20b21.js b/api/search.index/0466a4c20b21.js
new file mode 100644
index 000000000..0c50c18b4
--- /dev/null
+++ b/api/search.index/0466a4c20b21.js
@@ -0,0 +1 @@
+rn_("BQHAAAASNxs9HxlGH9ofaW8TAAOwMBxqAw6wMBxrAAFmaXA6MAAAAQAAAAAAEwAQAAAAnQ7cGAEZAhkzGo0ajhqDG5UclhyZHaEd1B4ZHxofYR9jH24fbx+oHw==")
\ No newline at end of file
diff --git a/api/search.index/048551dcfa92.js b/api/search.index/048551dcfa92.js
new file mode 100644
index 000000000..f2241f8f5
--- /dev/null
+++ b/api/search.index/048551dcfa92.js
@@ -0,0 +1 @@
+rn_("FQBFAAAIWB9jNR3WHwUBwAAAAzYbBAUfYW/zAAJ0dfeGEgAAmQEBAAEAgQcBAJABRQBAAAAFXh1lCBk0GzUbWh1bHRsCsGAdXwABZnQbAqBgAAAcm2VvAQEDoEAAAB9csEAdwAABoAAAABo8Zm1zOzAAAAEAABQABgCwGQ4Aah0AAPkdAAAqHgAAsh8AAOwfAQAHDQKJoEAAAB6QoDAAABuEoEAAAB88oFAAAB00oCAAABkHoIAAAB/kJwkHOjAAAAEAAAAAAA0AEAAAAKoPARACEAMQBBAFEOkY6hjxGbcclh5GH6sf2h/zAAFo9mQLAAABAAcAOw1AAAEA")
\ No newline at end of file
diff --git a/api/search.index/049b9aabb204.js b/api/search.index/049b9aabb204.js
new file mode 100644
index 000000000..e242f1d8d
--- /dev/null
+++ b/api/search.index/049b9aabb204.js
@@ -0,0 +1 @@
+rn_("MUMAAE4Vvxl8Gl4cFQBFAAAIWB9jNR3WHwUAQwAACn8fd14aBQHAAAAljRqOGoMbASUbaXVLA7AgGycAD7BgGnwB4mJydFuEoEAAAB8FoCAAAB90AUBBBQBBAAAUrx2wHW1IHPMCAWnyMhsAAAEAFQBBAAAUNB81H23+Hv8e8wcBafXeHQAAOgABABUBcQBFAEEAAARcH2b5HSoesh/sH+0fEwaEsCAbNAABoGAAAB/WoIAAAB/kAAEHAbccAAAFAcMAABX7HvweBk0dbnQFAcAAABOtGqYdG8we0B5jcSUAQQAAFJ8eoB5tSR12HXcdEwSEoKAAAB+aoCAAAB3coKAAAB9+ACEROjAAAAEAAAAAAAcAEAAAAF0aTBtNG5kcmhzKHf4dOh8FAcAAAAEEDgEFDjI5AQDNUt10+ZT9oCAAAA4GOE/fdRtISUlf4+Y1sOAfegABJJPykf7xsMAfRwABP2jqWZjAYYmMfoH [...]
\ No newline at end of file
diff --git a/api/search.index/04b594aedeb7.js b/api/search.index/04b594aedeb7.js
deleted file mode 100644
index 0ea667598..000000000
--- a/api/search.index/04b594aedeb7.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBFAAAFcB9jDx8QHwUASQAABrAfYjwfo4OEoQAAAB/SoAAAABuJKAASBQBJAAAG1x9koB8ThAOgwAAAH7GggAAAH4xmcHP7AmZsBQBaAAAG9B9k5B/7AmFl")
\ No newline at end of file
diff --git a/api/search.index/05186f84488e.js b/api/search.index/05186f84488e.js
deleted file mode 100644
index 900fc0e3b..000000000
--- a/api/search.index/05186f84488e.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("UUUAAIUbnBydHAkexh7HHiUAQQAABR0bY5sP8g/zDxsCoEAAABeHbHAFAsAAAAcTHx/6HvseA1scaXJ5AQYAOzAAAAEAALEAAgCrHFgAHR5YACUASwAABM4fZnYf8R/yH/sCcXIbAqCAAAAdWGVuBQBBAAAkkRySHM4dY0cVBQBOAAAG9R9k6R/zgQJwdwUAQQAAFJ0fnh9tfB8ThwKgoAAAH7hpdhsCoIAAAB4DYXIFAcAAAAN8Gwj8HXJ1BQHAAAAK7h4APRxlc0UAQgAABw4fbbsZxBnLGcwZsRp1AUMAAAdGHQCyGG9zahJrEpYTlxOYEwkbah2jHxsDoHAAAB2goGAAAB37Y250FQBCAAAUVx0ZHmM7HG4dBQHAAAAHjx8B3x5hbwUBxAAAAskfAcUfYW8jhQKgAAAAH1lkZgUBxAAABrofA6kfb3QbAqDgAAAf2mhvNwIBiKAwAAAfA6GAAAAf8rBAHz0AAaB [...]
\ No newline at end of file
diff --git a/api/search.index/0557fef637bc.js b/api/search.index/0557fef637bc.js
new file mode 100644
index 000000000..48a6de4aa
--- /dev/null
+++ b/api/search.index/0557fef637bc.js
@@ -0,0 +1 @@
+rn_("VQFBAAAzaxJsEuYash0Asg1mc5cTmBOZE5oTmxOcEwUAQQAAJRse2R7aHnchHROHAqAwAAAdO2VzHwGFoBAAAAm0oCAAABpyoIAAABsuAQkJ")
\ No newline at end of file
diff --git a/api/search.index/0565051f9d81.js b/api/search.index/0565051f9d81.js
deleted file mode 100644
index d24423b0c..000000000
--- a/api/search.index/0565051f9d81.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQPCAAAXhx6IHgOzHzKdGp4a0hrTGhKfGqAaaGpzeWUBQgAAFtMe1x9Wox6kHqUeph4eHx8fZHZtGW4ZbxkNG6YcoB/SHysCMNmbgOeZZW0rAqDgAAAfYm9yAQIAOzAAAAEAANkAAgCLDwAAjRLYAIFAAAC4DUQVohqjGqQapRqmGqcaYRwFAEUAAAawH2I8HxUAQQAABO0eZsQfxR8VAEIAAAQNH2bIH8kf+wJhbyFFAABxHMwdzR3TAYSwMB3ZAAEAqBD1mhkAAAAChAHhAQMARQBCAAADlB5ukhi0GeEZ4hlbHfsDZWx4RQBEAAAYwh7DHmRuEp4TnxMKG0wdGwKg0AAAH6ZydAUAQQAAFJ0dnh1tNhzzAgFp8iAbAAABABUAQQAAFCEfIh9t6x7sHvMHAWn1yx0AADsAAQAUAXEABQHEAAABNx0Khx9pbvsDY29wNQBDAAABYB9pCx93H4MfsR8TiAKgMAAAHwx [...]
\ No newline at end of file
diff --git a/api/search.index/05faaabdd817.js b/api/search.index/05faaabdd817.js
new file mode 100644
index 000000000..47c83d233
--- /dev/null
+++ b/api/search.index/05faaabdd817.js
@@ -0,0 +1 @@
+rn_("BQLAAACL3h7fHuAe4R7iHuMe5B7lHmAfEwwfcB8Irx5vcnkFAcAAADNnGmgaaRpqGgJrG2VsBQHAAAAGeBwDzBlydQ8OyKEAAAAfgrBgG5AAAaAQAAAVPrAgHHQAAaBgAAAelgRFOAI=")
\ No newline at end of file
diff --git a/api/search.index/0607b966b2a6.js b/api/search.index/0607b966b2a6.js
deleted file mode 100644
index a60f4c5ab..000000000
--- a/api/search.index/0607b966b2a6.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBSAAAG7x9k2x8FAFQAAAbwH2TeH/OEAnB0BQBRAAAG6h9kyx8FAFgAAAb1H2TpHwUASAAABuIfZLIfBQBKAAAG7h9k1R8FAEoAAAbtH2TUH/sCYWkFAEYAAAbYH2ShH/OJA2VtbgUAUgAABvMfZOEfBQBPAAAG7B9k0x/zhwJjcAUASAAABo0fZAIeBQBJAAAG1x9koB8ThAOgwAAAH7GggAAAH4xmcHMbAqFAAAAf0mZsBQBaAAAG9B9k5B/7AmFlp2cAy2ONdy0na6DAAAAfKKDAAAAfKaAwAAAaawAbpB0B9x0AACUCQAAAHmcfaB8cNB81HzM9Fa0ZahpMHGZrd5wYrh+vH0UAQQAAFCEfIh9tzBrNGs4a6x7sHgUARQAABOQeZYocGwKgIAAAHSR1eTMDhLAgGdcAAaBAAAAdJQIBAzowAAABAAAAAAALABAAAAB5EscYyBi+Gb8ZLBvLHeodBh4HHhsfjB8 [...]
\ No newline at end of file
diff --git a/api/search.index/060be8b46895.js b/api/search.index/060be8b46895.js
deleted file mode 100644
index 8049c9280..000000000
--- a/api/search.index/060be8b46895.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBEAAAHcx9w9xgFAcAAABIlGyofGTMfxx9pbxMAA7AwHFgDDbAwHFkAAWZpcDowAAABAAAAAAAOABAAAADJGHsafBpxG4MchByHHY8dwR4GHwcfTh9bH1wflR9jAAOgMAAAG3Vmc3QBfBkAAA==")
\ No newline at end of file
diff --git a/api/search.index/0624a0c7860a.js b/api/search.index/0624a0c7860a.js
new file mode 100644
index 000000000..c566461fb
--- /dev/null
+++ b/api/search.index/0624a0c7860a.js
@@ -0,0 +1 @@
+rn_("BQHAAAAHix8igRqCGmwdb3lDAQOgQAAAGzGwYByQAixibHQ6MAAAAQAAAAAACQAQAAAAexJ8EqkTqhOrE6wTFBpGG5wewB8FAcUAAChTH5MflB8Eyx9hbwUBwAAABJQdInIbcxsfH295FQBKAAAGAyBkqh/xHwUBwAAAAj0fCdofaW8TCAKgMAAAH3hmaffUHgAARQABAEcADQABADkAIUUAALUfxx/IHyUAQAAAA9Meaa0erh4qHyFCAACOHI8cQB8xQQAAkR2SHZMdcx8FAcAAABWqHqcfAtIedXnzAYQCAQM6MAAAAQAAAAAADAAQAAAAgBptG24bbxtwG3EbOx3MHbQeHh+KH5YfxB/7AmVs8wADcHR1AcMYAAAVAEEAAAW+HXckGiUaFQBAAAAUsB+xH22CHY8f+wJkbkUAQwAAALsecy0bXxweHh8e+R4rAqBAAAAdv2FpBQBBAAAlGx7ZHtoedyEdBQHAAAA [...]
\ No newline at end of file
diff --git a/api/search.index/062af9437302.js b/api/search.index/062af9437302.js
new file mode 100644
index 000000000..e950b2eb1
--- /dev/null
+++ b/api/search.index/062af9437302.js
@@ -0,0 +1 @@
+rn_("BQHAAAADnx0AmBphcwUBwwAAF3wffR8S1x7YHmRzUwEDoFAAAB4BZm1u8hAZAACxAAUBwAAAA24cAA8ZYXMFAcAAAAQ6HVBJGkoaSxpMGk0aThppcwUBwwAAF0kfSh8S/x0AHmRz8wCEIDAEOjAAAAEAAAAAAAcAEAAAAIsSJhQnFCgUKRQqFCYf5B8=")
\ No newline at end of file
diff --git a/api/search.index/063e6626b5b2.js b/api/search.index/063e6626b5b2.js
new file mode 100644
index 000000000..5b74ad052
--- /dev/null
+++ b/api/search.index/063e6626b5b2.js
@@ -0,0 +1 @@
+rn_("FQBEAAAW7x7wHmYrGywbKwOgYAAAGxegMAAAGudlb3IFAcEAAALuGAwKH2ZuBQHEAAABFRsFph1pc/sCbG8FAcUAAAJ6HANEHWtuGwKgsAAAHgdjdTcCAIawABjrAAGgMAAAHqKgcAAAGxYVAgY6MAAAAQAAAAAADgAQAAAAiwmMCY0JvQl3C3gL0A/2D/cP+A/gGOEYsxr1HZge")
\ No newline at end of file
diff --git a/api/search.index/065ded9a384a.js b/api/search.index/065ded9a384a.js
new file mode 100644
index 000000000..bbe9afd73
--- /dev/null
+++ b/api/search.index/065ded9a384a.js
@@ -0,0 +1 @@
+rn_("BQHBAAACqxoFrBxhZQUBwQAAAqoaBascYWVrA6AAAAAPszEyM/UAQAAABdgZdZwLpw2oDakNqg2rDawNrQ2uDa8NsA3JGcoZzR3iHbseBQLBAAAQmg8qGxC0D6MdA1kfZm5zMUMAAJ0buh2mHhEfBQHBAAAF4h0Gxh5mbjUAQAAABG0fcJUdlh3LHoAfBQHAAAAHoh8B8h5hbwUBxAAAAtwfAdgfYW8jhQKgAAAAH2xkZgUBxAAABs0fA7wfb3QbAqDgAAAf7WhvZzQBiqBQAAAdFqAwAAAfFqGAAAAgBbBAH1AAAaBAAAAfVS6YBzowAAABAAAAAAAJABAAAAC7D7wPvQ8bHRwdJB25HgMfJR+sHwEAArBAHqEAVqAgAAAfQWVyOjAAAAEAAAAAADkAEAAAACoOKw4sDi0OLg4vDjAOMQ4yDjMONA41DjYONw44DjkOOg47DjwOPQ4+Dj8OQA5BDuwZDxoQGhEacxq [...]
\ No newline at end of file
diff --git a/api/search.index/066442e40aa4.js b/api/search.index/066442e40aa4.js
new file mode 100644
index 000000000..1741542e8
--- /dev/null
+++ b/api/search.index/066442e40aa4.js
@@ -0,0 +1 @@
+rn_("BQBGAAAQEx44H3K9HUMBhKEgAAAfraAwAAAd8qCAAAAcrQiQAjowAAABAAAAAAAKABAAAACSCdYJ1wn8GMEaZBtlG44ejx6dHmQf")
\ No newline at end of file
diff --git a/api/search.index/06b933fde357.js b/api/search.index/06b933fde357.js
deleted file mode 100644
index 7afa577d7..000000000
--- a/api/search.index/06b933fde357.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAVUBtRGwgAHmxuAYIDoVAAAB/ooCAAAB7goIAAAB+QZHV3KwKgIAAAH1RvckMEA6BgAAAdsLBwH1UADmJlcAHrGAAAUUIAAFIbUxt8Hn0eix5RH/sCY3T7AmFv")
\ No newline at end of file
diff --git a/api/search.index/06c7179f9e8b.js b/api/search.index/06c7179f9e8b.js
deleted file mode 100644
index 618b6715b..000000000
--- a/api/search.index/06c7179f9e8b.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQFAAAAGSx8Beh4zce4eFQBEAAAD+B1shBsAHzFIAABxH3UfiB+QHzFCAACRHp8e1h7gHgUBwAAADN8fDcAfYWgPB4eggAAAH5KggAAAH5uhUAAAH+igoAAAH8oeABzzgQJwdisCoCAAAB9Ub3IFAcAAAAKmHRRcGhEfaW8FAcAAAAtBHQO4HmF0GwKwABxkAzdjZAUBwQAADPweAzUbbW6BRgAACxsMGz8dTx2kHbAd9h2VHgQfN1YAjLBwH1UADqAwAAAetqAgAAAeeaBAAAAamqAwAAAet6CAAAAfP9apEzowAAABAAAAAAAZABAAAAD+Df8NNw44DjkOOg47DjwOPQ4+Dj8OQA4uFTwV4BjmGOsY9BgNGmUaZhooG5IbNBw1HCAd")
\ No newline at end of file
diff --git a/api/search.index/070bce9d7a72.js b/api/search.index/070bce9d7a72.js
deleted file mode 100644
index c09eece8e..000000000
--- a/api/search.index/070bce9d7a72.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBFAAAIRR9jIx3DHwUBwAAAAyQbBPIeYW/zAAJ0dfd3EgAAmAEBAAEAfwcBAJABVQBAAAAFTB1l9Rj2GCIbIxtIHUkdGwKwYB1NAAFmdBsCoGAAAByJZW8BAQOgQAAAH0mwQB2tAAGgAAAAGipmbXM7MAAAAQAAFAAGAJ4ZDgBYHQAA5x0AABgeAACfHwAA2R8BAAcNAomgQAAAHn6gMAAAG3KgQAAAHymgUAAAHSKgIAAAGPSggAAAH9EnCQc6MAAAAQAAAAAADQAQAAAAnQ/0D/UP9g/3D/gP1hjXGN8ZpRyEHjMfmB/HH/MAAWj2WgsAAAEABwAyDUAAAQA=")
\ No newline at end of file
diff --git a/api/search.index/07a8efdf406a.js b/api/search.index/07a8efdf406a.js
new file mode 100644
index 000000000..2559b6ee1
--- /dev/null
+++ b/api/search.index/07a8efdf406a.js
@@ -0,0 +1 @@
+rn_("UUUAAJcbrhyvHBse2R7aHiUAQQAABS8bY6gP/w8AEBsCoEAAABeabHAFAsAAAAcmHx8NHw4fA20caXJ5AQYAOzAAAAEAALEAAgC9HFgALx5YACUASwAABOEfZokfBCAFIPsCcXIbAqCAAAAdamVuBQBBAAAkoxykHOEdY1gVBQBOAAAGCCBk/B/zgQJwdwUAQQAAFLAfsR9tjx8ThwKgoAAAH8tpdhsCoIAAAB4VYXIFAcAAAAOOGwgOHnJ1BQHAAAAKAR8ATxxlc0UAQgAAByEfbc0Z1hndGd4Zwxp1AUMAAAdYHQDFGG9zeRJ6EqYTpxOoExsbfB22HxsDoHAAAB2yoGAAAB4NY250FQBCAAAUaR0rHmNNHIAdBQHAAAAHoh8B8h5hbwUBxAAAAtwfAdgfYW8jhQKgAAAAH2xkZgUBxAAABs0fA7wfb3QbAqDgAAAf7WhvNwIBiKAwAAAfFqGAAAAgBbBAH1AAAaB [...]
\ No newline at end of file
diff --git a/api/search.index/07bb9a6252b0.js b/api/search.index/07bb9a6252b0.js
deleted file mode 100644
index 46b841db0..000000000
--- a/api/search.index/07bb9a6252b0.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAJox84wR3CHcMdxB1vcgUAQgAABvMfZOEf8wABbQFEEgAABQHAAAARKRsqGwirH2VvcUEAANEY0hiIGokaYBxnHModGh8FAEoAAAbqH2TLH2cDAYagMAAAGv2gIAAAGyiCCQM6MAAAAQAAAAAAHQAQAAAAABkCGUkaShpiGgYbBxtJG0obSxtMG00bThtPGzMcUx2THegdhR6jHqQepR6mHuIe4x70Hh4fHx8oH3IfBQBCAAAC4x9t1h8jhwKggAAAH+dhayMLAqCgAAAf3GFjARkfAAA7hKAgAAAdJaCAAAAfYghAhFMAA7BwH2cAAWlwdAF0GQAA")
\ No newline at end of file
diff --git a/api/search.index/097c0980ced4.js b/api/search.index/097c0980ced4.js
deleted file mode 100644
index b52652bc8..000000000
--- a/api/search.index/097c0980ced4.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAABD8xn0GfUZ9hn3GTfBHcIdwx3EHW91IwACoJAAAB+jb3IBmwkAAAUAQgAABvMfZOEf8wABbQFEEgAABQHAAAARKRsqGwirH2VvcUEAANEY0hiIGokaYBxnHModGh8FAEoAAAbqH2TLH2cDAYagMAAAGv2gIAAAGyiCCQM6MAAAAQAAAAAAHQAQAAAAABkCGUkaShpiGgYbBxtJG0obSxtMG00bThtPGzMcUx2THegdhR6jHqQepR6mHuIe4x70Hh4fHx8oH3IfBQBCAAAC4x9t1h8jhwKggAAAH+dhayMLAqCgAAAf3GFjARkfAAA7hKAgAAAdJaCAAAAfYghAhBUEQAAAA68YFDMVNBUHbRoEixkK6B1hZWl0d1gLWQtnBACHoGAAAB1ZsGAfMwCUoBAAABngsHAfZwABEuEE828TAAABAAQG")
\ No newline at end of file
diff --git a/api/search.index/09b9e938977b.js b/api/search.index/09b9e938977b.js
new file mode 100644
index 000000000..9bc2f441a
--- /dev/null
+++ b/api/search.index/09b9e938977b.js
@@ -0,0 +1 @@
+rn_("BQBBAAAG/h9k4x8ThgKgQAAAH71tbwUATAAABr8fZjkfGwKgIAAAH2JvdcsEsIAdxgFOoKAAAB8cYXFzdBsCoDAAABsjZW8=")
\ No newline at end of file
diff --git a/api/search.index/09d09bdb5908.js b/api/search.index/09d09bdb5908.js
deleted file mode 100644
index cc6bbdeb1..000000000
--- a/api/search.index/09d09bdb5908.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBAAAASDB0fHWtIElFCAACKD2kaNh83H2kfah8VAFAAAAbvH2SnH9sf1QFCAAAJOB8Gmh1wcukZ6hnrGewZ7RnuGe8ZPRo+Gj8aQBpBGkIaQxr7AmJye4Sg8AAAH18BQQE=")
\ No newline at end of file
diff --git a/api/search.index/0a7ec90dcd43.js b/api/search.index/0a7ec90dcd43.js
deleted file mode 100644
index dfd2e13c6..000000000
--- a/api/search.index/0a7ec90dcd43.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAUVB3bHgIdFWVpYUEAAIoaixqMGoUcMx1FHdwfYwADsJAfNAABZ2lz9YMOAAAGDwEAFAE2ACsCoLAAAB+adHlHAACFoGAAABj8oJAAAB7/oGAAAB/csFAdogABHBAC8pQIAAA1EQ==")
\ No newline at end of file
diff --git a/api/search.index/0a922a070622.js b/api/search.index/0a922a070622.js
new file mode 100644
index 000000000..cb62ecb8f
--- /dev/null
+++ b/api/search.index/0a922a070622.js
@@ -0,0 +1 @@
+rn_("IUsAAJcbrhyvHDUAQAAAE/YZ9xlp2hrbGiIdIx0FAEMAAAD1GXNEH2MBA7AQG2IAAWluc/NYEgAAHAlXBAUBwAAAFYQdhR0CSB1hbwUARAAAA6YebsYZBQHAAAAFgx0WSx1/HWxuBQHAAAADyx9TWRpaGiwdLR2PHZAdbHUFAsMAAAiuHwLpHgibH2N1dyMEAqBgAAAdtmJwAfMYAAAhRwAAUx+TH5Qf+wJsdPsCYW/3AACFsAAfuAARNIACOzAAAAEAAA8ABgC1CQAAeQsAAD4aAACtGwUApRwFAMgeAAB7hKAwAAAasxAQBg==")
\ No newline at end of file
diff --git a/api/search.index/0b1c05dddc05.js b/api/search.index/0b1c05dddc05.js
new file mode 100644
index 000000000..99a9a650d
--- /dev/null
+++ b/api/search.index/0b1c05dddc05.js
@@ -0,0 +1 @@
+rn_("BQJGAAAh+R0qHrIfBtYfCOQfaXN0txwVAEEAABSfHqAebXYddx0TBAKgIAAAHdxpcvdMGwAAAQBMAQEAMAE0ADwBkwCEsEAarQL5sJAe+wABFCEA8zEaAABsAwEA")
\ No newline at end of file
diff --git a/api/search.index/0bfdaa3bdb39.js b/api/search.index/0bfdaa3bdb39.js
new file mode 100644
index 000000000..5486b70b8
--- /dev/null
+++ b/api/search.index/0bfdaa3bdb39.js
@@ -0,0 +1 @@
+rn_("QUIAAOga6RqiHqkfxh8hQQAAqx4oHykfBQHAAAAQxhgiGwHHGGRvAYECoNAAAB+VoTAAAB/LYXAFAEYAABATHjgfcr0d8wMBcAH8GAAAGwKgQAAAG3Rhb7cBAoawcB2VAAGgwAAAHyc0QRD1oA4AAAEAtwswAf8A+wJlcw==")
\ No newline at end of file
diff --git a/api/search.index/0bfed27cc662.js b/api/search.index/0bfed27cc662.js
deleted file mode 100644
index 9649e5ff5..000000000
--- a/api/search.index/0bfed27cc662.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUIAABQaFRoWGhcaCQIsYb/BdL2gIAAAEkludVsDoNAAAB/abG11FQBIAAAG4h9kNhuyHxUASgAABu4fZMcd1R8VAEoAAAbtH2TGHdQf+wJhaQUBxAAABrofA6kfb3QVAEYAAAbYH2QJGaEf7wOIoMAAAB32sMAfegABoLAAAB23kXAJ")
\ No newline at end of file
diff --git a/api/search.index/0c1d08f96aab.js b/api/search.index/0c1d08f96aab.js
new file mode 100644
index 000000000..c3e2c0e88
--- /dev/null
+++ b/api/search.index/0c1d08f96aab.js
@@ -0,0 +1 @@
+rn_("MUMAAKMcpBzhHYgeBQBHAAAM8x9hGx8jAwOgIAAAH5WgYAAAHapydHYBKx8AAPsCaG8TAAOw4B+YAAGg0AAAH0JjZXQBWBUAAA==")
\ No newline at end of file
diff --git a/api/search.index/0c1ec9b9394f.js b/api/search.index/0c1ec9b9394f.js
new file mode 100644
index 000000000..97d07875c
--- /dev/null
+++ b/api/search.index/0c1ec9b9394f.js
@@ -0,0 +1 @@
+rn_("BQBBAAAW0R/SH2WmD3UAQAAAFDQfNR9t8Q/eGt8a4BoSGxMb/h7/HgUBxwAAB8YfBakfZnQTBAKAFUsAFIlkcjswAAABAAB1AQYAgxICALsTYgDwGAEAHhlbAL0cWAAvHlgA24SgAAAAGnANIAA=")
\ No newline at end of file
diff --git a/api/search.index/0d049d0cdad7.js b/api/search.index/0d049d0cdad7.js
deleted file mode 100644
index acbeea8c9..000000000
--- a/api/search.index/0d049d0cdad7.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAACLyx7MHs0ezh7PHtAe0R7SHk0fCJ0eb3kFAcAAADNVGlYaVxpYGgJZG2VsBQHAAAAGZhwDuhlydc8BxaEAAAAfb7BgG34AAQQBMAI=")
\ No newline at end of file
diff --git a/api/search.index/0d0b169a4edf.js b/api/search.index/0d0b169a4edf.js
new file mode 100644
index 000000000..250fed249
--- /dev/null
+++ b/api/search.index/0d0b169a4edf.js
@@ -0,0 +1 @@
+rn_("BQHAAAAU6xjsGBMvFTAVZnQFAEUAAAaFH3b0HQUBwAAABqcdAGQSY3OXAgCGoFAAABJuoJAAAB1KoCAAAA+RYwAD83sBAAA/CFoE")
\ No newline at end of file
diff --git a/api/search.index/0d3e9b83a3fb.js b/api/search.index/0d3e9b83a3fb.js
new file mode 100644
index 000000000..c67747078
--- /dev/null
+++ b/api/search.index/0d3e9b83a3fb.js
@@ -0,0 +1 @@
+rn_("AQEAOzAAAAEAANgAAQBZFdgAMUIAALMbtBvEHQ8eBQBSAAAGBiBk9B8FAE8AAAb/H2TmH/MGAmNwOzAAAAEAAAoABAAVGgYAGh4AACEfAADfHwEAFQBAAAAA9h81sRqyGiFOAAAQHhEeaR/7hRlACA==")
\ No newline at end of file
diff --git a/api/search.index/0d7ac7114d14.js b/api/search.index/0d7ac7114d14.js
new file mode 100644
index 000000000..dc8829779
--- /dev/null
+++ b/api/search.index/0d7ac7114d14.js
@@ -0,0 +1 @@
+rn_("cUAAALoYUBxRHFIcUxxUHFUcVhwFAcEAAAQQHxVWHeoecXMFAcsAAATOHwXZH3FzYUUAACUdJh0nHSgdKR0qHSsdJwcCh6DAAAAfFLBAGygAAaBwAAAdVRGhAzswAAABAAAkAAgAcBIBAJMTAwDMGgYAUBsGALAcBgA8HQYAbh0AAHgdAQAbAqAwAAAfa2Fl")
\ No newline at end of file
diff --git a/api/search.index/0da44cf9f551.js b/api/search.index/0da44cf9f551.js
new file mode 100644
index 000000000..f81eb2a69
--- /dev/null
+++ b/api/search.index/0da44cf9f551.js
@@ -0,0 +1 @@
+rn_("BQHAAAAFhhwEVx9jcwUAQgAAAvYfbekfI4cCoIAAAB/6YWsjDgKgoAAAH+9hYwEsHwAAS4Qm+RQQLumgQAAAG6egUAAAHGAYAANrA6AAAAAdrjFlaQ==")
\ No newline at end of file
diff --git a/api/search.index/0df1907f50cd.js b/api/search.index/0df1907f50cd.js
deleted file mode 100644
index 8829bb3f9..000000000
--- a/api/search.index/0df1907f50cd.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAU2BjZGBMeFR8VZnQFAEUAAAZyH3bhHQUBwAAABpUdAFUSY3OXAgCGoFAAABJfoJAAAB04oCAAAA+EYwAD83oBAAA3CFcE")
\ No newline at end of file
diff --git a/api/search.index/0e02701d4912.js b/api/search.index/0e02701d4912.js
deleted file mode 100644
index 67d18eb66..000000000
--- a/api/search.index/0e02701d4912.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHDAAAKyh8N3x9ldCMGAqBgAAAfBGJwAZIbAADzBQFjAUsfAAAFAsEAAAI2FQI3FQPtGGttdAUBwAAADJ4eCYYcY3P7AmVzBQHFAAAJBR8KKx9jZUsDoCAAABqZoFAAAByaYWVpBQHAAAAEmg8Obx9vcgUCyAAAArIdCXQfCpEfYWVzSwOgkAAAHIWgwAAAHbFjbHPnGADJgANQDdBfoHAAABjsoOAAAB6doFAAABJvQgegAzowAAABAAAAAAAHABAAAAAaABsAHAAdACEAbQFuAXMB")
\ No newline at end of file
diff --git a/api/search.index/0e0499e3eb06.js b/api/search.index/0e0499e3eb06.js
new file mode 100644
index 000000000..8d947cbd3
--- /dev/null
+++ b/api/search.index/0e0499e3eb06.js
@@ -0,0 +1 @@
+rn_("FQFDAAAHcR8FPx9iZrcd0x8FAEYAAAViH3KgHTFHAABjHQ0fDh9yH/MDAmZsOzAAAAEAAAcAAgCMEgAATBQGACUARQAABQsfYREZwhnDGfsDYWZw")
\ No newline at end of file
diff --git a/api/search.index/0e2c5aafd087.js b/api/search.index/0e2c5aafd087.js
new file mode 100644
index 000000000..14bb98b4c
--- /dev/null
+++ b/api/search.index/0e2c5aafd087.js
@@ -0,0 +1 @@
+rn_("BQBBAAAUrx2wHW1IHPMCAWnyMhsAAAEAFQBBAAAUNB81H23+Hv8e8wcBafXeHQAAOgABABUBcQAFAcQAAAFJHQqaH2lu+wNjb3A1AEMAAAFzH2keH4oflh/EHxOIAqAwAAAfH3N0BQHAAAAKER8HrR1haQUBwAAABYEcBkgdY2wVAEUAAAbqH2SzH+UfE4MDoMAAAB9NoDAAAB+SZm5zZyoAi7BgHEYAAaBgAAAcgqEAAAAfTrCAHXgAAaDgAAAfZ6AwAAAZreS4BzswAAABAABMABYArAsHABEOAABcDiUASRUBAA4aAABrGgAAFBsAAJ4bAABOHAAABh4AANweAADmHgAAWR8AAF8fAABiHwAAoB8AAOIfAADqHwEA9R8AAPgfAQD9HwYABiACAEUCQAAABiAdFHISwRgajx2QHWFvdqQLGg6WDo8ZrholAEAAAAUvG2OoD/8PABAhQQAAUx+TH5QfBQBAAAAOjB9 [...]
\ No newline at end of file
diff --git a/api/search.index/0e6bf0a766e9.js b/api/search.index/0e6bf0a766e9.js
deleted file mode 100644
index d5bd130d7..000000000
--- a/api/search.index/0e6bf0a766e9.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQFAAAAGSx8Beh4zce4eBQHAAAACph0UXBoRH2lvBQHBAAAM/B4DNRttboFGAAALGwwbPx1PHaQdsB32HZUeBB83RACMsHAfVQAOoDAAAB62oCAAAB55sBAcZAM3oEAAABqaFV+5mk9voDAAAB63oIAAAB8/1qkTOjAAAAEAAAAAABcAEAAAAP4N/w03DjgOOQ46DjsOPA49Dj4OPw5ADi4VPBXgGOYY6xgNGmUaZhqSGzQcNRwgHXUARQAABUwfcnscdB11HXYddx14HXkd8x07A6AQAAAVNWNncg==")
\ No newline at end of file
diff --git a/api/search.index/0ed5b4096331.js b/api/search.index/0ed5b4096331.js
deleted file mode 100644
index 664cc8d79..000000000
--- a/api/search.index/0ed5b4096331.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBAAAADkB5qhh4VAEMAABFTH28fZXofex8VAEQAAAQuH2W0HbUdBQHGAAAHsx8Flh9mdPsCYWYTAQKAFToAFIhkcjswAAABAAB1AQYAdBICAKsTYgDdGAEADBlbAKscWAAdHlgAKwKgEAAAHd5kegUARgAABvUfZOkf8wEBYQF3DgAAGwKgAAAAEmdjcWFCAACMGY0ZjhmPGZAZkRmSGdcJAIiwYBw8Ao2gIAAAFTWgQAAAGxEcSQM6MAAAAQAAAAAABwAQAAAAJhUnFYYXWhpHHUsdUB3pHRsCsAAY0wJ1bHM=")
\ No newline at end of file
diff --git a/api/search.index/0ee206ee92e5.js b/api/search.index/0ee206ee92e5.js
deleted file mode 100644
index 99c6af678..000000000
--- a/api/search.index/0ee206ee92e5.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBFAAAGlh5mZxoFAEIAAAbqH2TLH/sCaXQVAUYAAAaVHgg/H2J3ZRpmGlMAA6EgAAAfVmNrczswAAABAAAcAA4AmwsBALANAwCEDgEAJhsBAEkcAACWHgAAoR4AAMseBwDYHgAA3B4BAB0fAABNHwAAiR8BAKwfAAA=")
\ No newline at end of file
diff --git a/api/search.index/0ee25863e70a.js b/api/search.index/0ee25863e70a.js
deleted file mode 100644
index ba2f9014a..000000000
--- a/api/search.index/0ee25863e70a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHDAAASARloHBPdGTIda24lAEEAAAinHmKhD44blR01AUIAAFGKGosajBqFHDMdRR0VVB3bHmlziR2KHZ4e1B7zAgJrbwGdHgAA+wJlbw==")
\ No newline at end of file
diff --git a/api/search.index/0eec7bee9f80.js b/api/search.index/0eec7bee9f80.js
deleted file mode 100644
index 5b8140c6e..000000000
--- a/api/search.index/0eec7bee9f80.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUsAAIUbnBydHDUAQAAAE+QZ5RlpyBrJGhAdER0FAEMAAADjGXMxH2MBA7AQG1AAAWluc/NJEgAAGQlWBAUBwAAAFXIdcx0CNh1hbwUARAAAA5QebrQZBQHAAAAFcR0WOR1tHWxuBQHAAAADuB9TRxpIGhodGx19HX4dbHUFAsMAAAibHwLWHgiIH2N1dyMEAqBgAAAdpGJwAeAYAAAhRwAAQB+AH4Ef+wJsdPsCYW/3AACFsAAfpQARNIACOzAAAAEAAA8ABgCsCQAAbwsAACwaAACbGwUAkxwFALYeAAB7hKAwAAAaoRAQBg==")
\ No newline at end of file
diff --git a/api/search.index/0f071be2977f.js b/api/search.index/0f071be2977f.js
new file mode 100644
index 000000000..a3b28464e
--- /dev/null
+++ b/api/search.index/0f071be2977f.js
@@ -0,0 +1 @@
+rn_("FQBDAAAEvR5mzB/NH3UAQAAAFDQfNR9t8Q/eGt8a4BoSGxMb/h7/HhsCoBAAAA+mZG4FAEUAAAT3HmWcHBsCoCAAAB02dXk3AAGFoBAAAB39sCAZ6QABoEAAAB03AkEDOjAAAAEAAAAAABAAEAAAAHISiBLBGNoY2xjOGdAZ0Rk+G44bYBzeHfwdGB4ZHi4fnx8xRAAAJhonGigaKRoFAcAAAC+1H8cfyB8nqx4oHykfYXIjBAOgEAAAHr6wUB8MAGRlcHMB/RgAAPcAAIWgoAAAHhoWBQDyiwEAALsT")
\ No newline at end of file
diff --git a/api/search.index/0f2cbbaea3c2.js b/api/search.index/0f2cbbaea3c2.js
deleted file mode 100644
index 2a4c6ed6c..000000000
--- a/api/search.index/0f2cbbaea3c2.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("ZQBEAAAGrx1yGBoZGhoaGxocGh0aHhoBAAEjP44ntCRw9FcLAACMDkEAdgAFAcAAAAeOHwHeHmFvBQBCAAAz5xgPGhAahx9wtB4FAcQAAALIHwHEH2FvI4ICoAAAAB9XZGYTgQKgUAAAHuFlafMAAWXylgsAAJYTBQHAAAAN2R8ECB1tbgUBxAAABrkfA6gfb3RrA6DQAAAfrWFob2dsAIyggAAAHRKgMAAAHwKwgB08Af6hgAAAH/GgQAAAH0GwgB+uAAFumBc7MAAAAQAA+QAUAKEEAABqCAwA5w8BAEMU1wCHFwAA3RkAALQaAQCAGwAAixsAAGkcAAAEHQAAMh0AAIgdAACoHQAA2R0BAIIeAACUHgAA/h4AADEfAACRHwAAEwACUcCrzFkeZXA6MAAAAQAAAAAADQAQAAAArwvjDeQNVBKoGqkaqhqrGqwarRqiHaMd+R5dHw==")
\ No newline at end of file
diff --git a/api/search.index/0f33fb3e0692.js b/api/search.index/0f33fb3e0692.js
new file mode 100644
index 000000000..7aace6e01
--- /dev/null
+++ b/api/search.index/0f33fb3e0692.js
@@ -0,0 +1 @@
+rn_("MUMAACweLR4YHzYf8wABbDowAAABAAAAAAATABAAAACGDYcNiA2JDYoNiw2MDY0Njg2PDZ0Ppw9qEnQS7hiQGpEaLxtHG4MfRQBCAAAAux5zLRtfHB4eHx75HjsDoCAAABjEZWdsBQHAAAADvx0Kyh9pbjuEoEAAAB8PoVAAAB++AUkA")
\ No newline at end of file
diff --git a/api/search.index/0f4243f63511.js b/api/search.index/0f4243f63511.js
deleted file mode 100644
index 9965017cf..000000000
--- a/api/search.index/0f4243f63511.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("tQFCAAAEWx0D2h5maXsSaxPKGMsYzBjtGG8acBpCHVodqB+pHxUARAAABpceYmwaWhsrAqAgAAAdWWVyFQFAAAAZIhsjGyh7GnwacRtudNAa0Ro1AEUAABblH+YfZEcfSB/BH8IfBQBBAAAG6x9k0B8TgwKgQAAAH6ptb2sDsDATogfbYXR3FQBBAAAGzx9kyB2LH0FBAACRDu4Y7xghGlAf+wJjZQkCoAAAAA6ZoQAAAB9jZnPrhKDgAAAfXxEBQFFIAAB3GngaeRp6Gm8bcBsFAcgAACgGHwcfTh8Klx90dfsCYXIBBQA7MAAAAQAAiwACAF0aAACjG4oAMUIAAEocSxwMHR8dRwIAhqCAAAAd8aAwAAAflqBgAAAfeKAwAAAdxQEODAFIEgAAYUgAALoauxq8Gr0avhq/GsAaBQBEAAAB8B5p2x3zBgFm8voZAACTARsCoLAAAB3cZWlRRwAA8BjxGPIY8xgoGik [...]
\ No newline at end of file
diff --git a/api/search.index/0f8ffb193ab2.js b/api/search.index/0f8ffb193ab2.js
deleted file mode 100644
index 2e7df7d75..000000000
--- a/api/search.index/0f8ffb193ab2.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBFAAAIRR9jIx3DHwUBwAAAAyQbBPIeYW/zAAJ0dfd3EgAAmAEBAAEAfwcBAJABVQBAAAAFTB1l9Rj2GCIbIxtIHUkdGwKwYB1NAAFmdBsCoGAAAByJZW8BAQOgQAAAH0mwQB2tAAGgAAAAGipmbXM7MAAAAQAAFAAGAJ4ZDgBYHQAA5x0AABgeAACfHwAA2R8BAAcNAImgQAAAHn6gMAAAG3KgQAAAHymgUAAAHSKgIAAAGPSggAAAH9EnCQc6MAAAAQAAAAAADQAQAAAAnQ/0D/UP9g/3D/gP1hjXGN8ZpRyEHjMfmB/HHw==")
\ No newline at end of file
diff --git a/api/search.index/0f95da0e6362.js b/api/search.index/0f95da0e6362.js
new file mode 100644
index 000000000..71891bf89
--- /dev/null
+++ b/api/search.index/0f95da0e6362.js
@@ -0,0 +1 @@
+rn_("BQHAAAA1sx4wH5wfnR8Mph9hafMAAWb2lxoAAHwDkQCUAE4AKQDzAwFyAb0dAAAFAcEAAATOHwXZH3Fz8wYBcjowAAABAAAAAAAJABAAAAClG5EckhyTHJQcOB05HZcdmB1LH/sCcHYVAEgAACBhHGIcHR5zyR34HlFCAAC0GrUathq3GrgauRr7AmZz+wJlbyUAQAAABAAfZvEe1x/YHysCoBAAAB1IcnMFAFEAAAYIIGT8HxMBAqCAAAAd/GRzARwOAAATgQKgsAAAH4xjacUAQQAABCAfZncTeBN5E3oTThtPG4Ycch1zHXQddR3bH9wfBQBKAAAGAyBk8R8hSAAAbh9vH6gfIUMAAK0erh4qH/sDcHR1IwQCoGAAAB9jbXMBoR8AABOBArAgHYQAAWlu+wJydPcAAIWgAAAAC2wBSAPyqQQAAFwa")
\ No newline at end of file
diff --git a/api/search.index/0fa17a4d9db8.js b/api/search.index/0fa17a4d9db8.js
new file mode 100644
index 000000000..5ec8ae487
--- /dev/null
+++ b/api/search.index/0fa17a4d9db8.js
@@ -0,0 +1 @@
+rn_("BQBRAAAGByBk9x8FAcQAAChTH5MflB8Eyx9hbxsCoGAAAB2uYWUhQgAAchtzGx8fBQHAAAAy3BrdGpgcRh0DlB1rcGsDoDAAAB93ZW95FQBKAAAGAyBkqh/xHwUBwAAAAj0fCdofaW8TBwKgMAAAH3hmaffUHgAARQABAEcADQABADkAGwKwMB1xAZlhciFFAAC1H8cfyB8lAEAAAAPTHmmtHq4eKh8hQgAAjhyPHEAfMUEAAJEdkh2THXMfBQHAAAAVqh6nHwLSHnV58wGEAgEDOjAAAAEAAAAAAAwAEAAAAIAabRtuG28bcBtxGzsdzB20Hh4fih+WH8Qf+wJlbAUAQgAABgYgZPQf8wCEAJAM9lMSAABwBp4DAQBHAXQABQHAAAAQOxs8GwNfH2ZzGwKggAAAH75lbyFDAACSG5odpB8FAcAAAAVMHQVjH2FlBQBAAAADxB5p2x4jAgKgEAAAHXppczowAAABAAA [...]
\ No newline at end of file
diff --git a/api/search.index/0fc1c064ae92.js b/api/search.index/0fc1c064ae92.js
new file mode 100644
index 000000000..6773f6cd0
--- /dev/null
+++ b/api/search.index/0fc1c064ae92.js
@@ -0,0 +1 @@
+rn_("AQABsAATfwABczswAAABAAAUAAkAFQ4AAL8PBQCnGgEArxoBAOQaAQANGwEAuxwBAP8dAQDXHgEAKwKg0AAAHbdociFGAAD4H/kf/h8FAsMAAA7THwKjHgiEH3R1dyMFAqBgAAAdUWJwAT8VAAAbAqAwAAAfl2FoNwgAiLBwHIUAk6BAAAAf76CAAAAdZLBAHpkAAaAwAAAcghycBDowAAABAAAAAAASABAAAAA1BDYESRpKGksaTBpNGk4aZhtnG08cix6QHlofWx+9H9Qf1R/jHw==")
\ No newline at end of file
diff --git a/api/search.index/0ff097c3074e.js b/api/search.index/0ff097c3074e.js
deleted file mode 100644
index 5fc817c5b..000000000
--- a/api/search.index/0ff097c3074e.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQJGAAAh5x0YHp8fBsMfCNEfaXN0pRwVAEEAABSNHo4ebWQdZR0TBAKgIAAAHclpcvc6GwAAAQBMAQEALwE1ADsBkwCEsEAamwL5sJAe6AABFCEAOjAAAAEAAAAAAAgAEAAAAB8aRxpIGhodGx19HX4dix2MHQ==")
\ No newline at end of file
diff --git a/api/search.index/1072fdd11a74.js b/api/search.index/1072fdd11a74.js
deleted file mode 100644
index b71b45b28..000000000
--- a/api/search.index/1072fdd11a74.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("QUIAANsZgBqBGtgdeB5lAEMAAAaaHXLpGeoZ6xnsGe0Z7hnvGRsCoPAAAB9fYXIFAEMAAARKH3WKG/MEAW/y4RgAABoBZQBIAAAG/R5ynhyfHKAcoRyiHKMcpBzHAQCFoKAAAB33oMAAAB36GCAF8oQNAACnDPsCZWk=")
\ No newline at end of file
diff --git a/api/search.index/108842a6b4b7.js b/api/search.index/108842a6b4b7.js
new file mode 100644
index 000000000..6c9a89910
--- /dev/null
+++ b/api/search.index/108842a6b4b7.js
@@ -0,0 +1 @@
+rn_("BQBAAAA0Mx/PH9Af8B9suR8FAEIAAAL2H23pHyOFAqCAAAAf+mFrBQBFAAA0Mx/PH9Af8B9suR/7AnJzMUMAAGMdDR8OH3IfBQBAAAADxB5p2x4jAgKgEAAAHXppczowAAABAAAAAAAIABAAAABXG1gbWRt8HH0cyx0WHhceBh8hhwKggAAAH/oGYWtjAoSgoAAAH++gYAAAHUwFFADzohcAAAEAiQcVAEIAAAchH23WGcMaQ4GEoDAAABxKoIAAAB2yoJAAAB4OAkUAMwMDoWAAAB/gZWlt8oQOAAABAGUAQAAABv8fZH8cgBxvHXAdkB+RH+Yf8wEBYwGdDQAAGwKgMAAAGc9kbRUARgAABgEgZNod6B8jAAKgcAAAHpZzdfWTCwAAAQDuAQgGbQUFAcQAAAZrHQHyGWJv1QBFAAAE4R9mYxxkHGUcZhxnHGgcaRyRHscezB7QHokfBCAFIMMAhLCAHtUAAaAgAAA [...]
\ No newline at end of file
diff --git a/api/search.index/10a6c12716db.js b/api/search.index/10a6c12716db.js
deleted file mode 100644
index 8fc4e644b..000000000
--- a/api/search.index/10a6c12716db.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("ZQBEAAAGrx1yGBoZGhoaGxocGh0aHhoFAcsAAAS7HwXGH3FzEwQCoGAAAB79cHI7MAAAAQAADQACAJ4cBgAqHQYAYwADsIAdPAH+Z3N0OzAAAAEAANoAAwBDFNcAaRwAANkdAQA=")
\ No newline at end of file
diff --git a/api/search.index/10e287e8a608.js b/api/search.index/10e287e8a608.js
deleted file mode 100644
index ec5504d71..000000000
--- a/api/search.index/10e287e8a608.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("JQBFAAAG1R5iDhunHKgcBQHAAAAHZh8FUh9mdAUBwAAAFA0bphwGsx9vcgUARgAABI8eZYcbVwUBh7DwH7wAAbAwGzwAAaBQAAAfliaAFjowAAABAAAAAAAHABAAAACID4gSiRKKEsUa1x3CHsMeFQBCAAAB8B5pbx3bHfsCZWw=")
\ No newline at end of file
diff --git a/api/search.index/10fc0a24854d.js b/api/search.index/10fc0a24854d.js
deleted file mode 100644
index 7dcab8434..000000000
--- a/api/search.index/10fc0a24854d.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQLAAAASWRxaHAJvHAcQG2FvciFDAABYHMAeZR8FAcAAABIlGyofGTMfxx9pbwUBxgAACSMfCSQfY3YFAcAAAARbEg2QHm9yZwsAi6DQAAAd/bBwHHIAk6BQAAAY36CgAAAcdKBAAAASWqCgAAAcdT2hDjowAAABAAAAAAAaABAAAAB9AX4BfwEpBJEOyRjuGO8YIRp7GnwacRuDHIQchx2PHZsenB7BHgYfBx8XH04fUB9bH1wflR8=")
\ No newline at end of file
diff --git a/api/search.index/111f63860ae7.js b/api/search.index/111f63860ae7.js
new file mode 100644
index 000000000..c04656003
--- /dev/null
+++ b/api/search.index/111f63860ae7.js
@@ -0,0 +1 @@
+rn_("BQHAAAAeeh97HxxHH0gfZmsFAEEAAARtHHSzHfOCAmVzAQEBoQAAAB8LdPO3CQAAAQABADFCAAD6GCEaIhqaHwUARQAAEFYaVxpzxRkFAcAAAAT4GALNGWZrWwOwEAuNDe9kbnL/AIWgAAAAC7gQSUA=")
\ No newline at end of file
diff --git a/api/search.index/1139932d8cf6.js b/api/search.index/1139932d8cf6.js
new file mode 100644
index 000000000..7f65dc0d8
--- /dev/null
+++ b/api/search.index/1139932d8cf6.js
@@ -0,0 +1 @@
+rn_("BQPCAAAXmR6aHgPGHzKvGrAa5BrlGhKxGrIaaGpzeWUBQgAAFuYe6h9WtR62HrceuB4xHzIfZHZ/GYAZgRkfG7gcsx/lHysCNO0CcgOrZW0rAqDgAAAfdW9yAQIAOzAAAAEAANoAAgCYDwAAnBLZAIFAAADEDVUVtBq1GrYatxq4GrkacxwFAEUAAAbDH2JPHxUAQQAABAAfZtcf2B8VAEIAAAQgH2bbH9wf+wJhbyFFAACDHN8d4B3TAYSwMB3sAAEAqBD1rBkAAAAChAHiAQMARQBCAAADph5upRjGGfMZ9BltHfsDZWx4RQBEAAAY1R7WHmR9Eq4TrxMcG14dGwKg0AAAH7lydAUAQQAAFK8dsB1tSBzzAgFp8jIbAAABABUAQQAAFDQfNR9t/h7/HvMHAWn13h0AADoAAQAVAXEABQHEAAABSR0Kmh9pbvsDY29wNQBDAAABcx9pHh+KH5YfxB8TiAKgMAAAHx9 [...]
\ No newline at end of file
diff --git a/api/search.index/11748702d258.js b/api/search.index/11748702d258.js
deleted file mode 100644
index 80a9d29fa..000000000
--- a/api/search.index/11748702d258.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("JQBAAAAzPRWtGWoaTBx3nBiuH68ftQFCAAAHjhsGRB9hdrYatxp3G3gbRxxIHHIdcx27Hrweax9sHwUBxQAAKEAfgB+BHwS4H2FvBQHAAAAEgh0iYBthGwwfb3kVAEoAAAbwH2SXH94fBQHAAAACKh8Jxx9pbxMIAqAwAAAfZWZp98EeAABFAAEARwANAAEAOQAhRQAAoh+0H7UfJQBAAAADwB5pmx6cHhcfIUIAAHwcfRwtHzFBAAB/HYAdgR1gHwUBwAAAFZgelB8Cvx51efMBhAIBAzowAAABAAAAAAAMABAAAABuGlsbXBtdG14bXxspHbkdoh4LH3cfgx+xH/sCZWzzAANwdHUBsBgAABUAQQAABasddxIaExoVAEAAABSdH54fbXAdfB/7AmRuRQBEAAAAqR5zGxtNHAweDR7mHgUAQQAAJQkexh7HHncPHeccA8mggAAAHr6gIAAAGdSgYAAAH1BATAULOzA [...]
\ No newline at end of file
diff --git a/api/search.index/121cc4c24fcd.js b/api/search.index/121cc4c24fcd.js
deleted file mode 100644
index cde52c777..000000000
--- a/api/search.index/121cc4c24fcd.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBEAAAW3B7dHmYZGxobKwOgYAAAGwWgMAAAGtVlb3IFAcEAAALbGAz3HmZuBQHEAAABAxsFlB1pc/sCbG8FAcUAAAJoHAMyHWtuGwKgsAAAHfVjdTcCAIawABjYAAGgMAAAHpCgcAAAGwQVAgY6MAAAAQAAAAAADgAQAAAAggmDCYQJtAltC24Lww/pD+oP6w/NGM4YoRriHYYe")
\ No newline at end of file
diff --git a/api/search.index/123364e5d20c.js b/api/search.index/123364e5d20c.js
deleted file mode 100644
index 8edf7ab56..000000000
--- a/api/search.index/123364e5d20c.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAABULxV3GXgZeRl6GXsZBHwZaHQFAcEAAAKcGAGCHXJ0MUIAAMoayxqGHDQdZQBCAAADzRlhchNzE3QTdRN2E3cTeBMrArAwGJoAAW50BQHAAAAICx0l/Rn+Gf8Zb3UnHQDMoCAAAA+6oLAAABx3sEAbNwABoDAAABrXoEAAABidsGAaAAABoCAAAA+7wMwhDzswAAABAAA+AgYAmgQAAH8H1wAbDgAAbBHXAPoWigB1GQEA")
\ No newline at end of file
diff --git a/api/search.index/1259bc69d4b5.js b/api/search.index/1259bc69d4b5.js
new file mode 100644
index 000000000..7f66b66b0
--- /dev/null
+++ b/api/search.index/1259bc69d4b5.js
@@ -0,0 +1 @@
+rn_("BQBSAAAGAiBk7h8FAFQAAAYDIGTxH/OEAnB0BQBRAAAG/R9k3h8FAFgAAAYIIGT8HwUASAAABvUfZMUfBQBKAAAGASBk6B8FAEoAAAYAIGTnH/sCYWkFAEYAAAbrH2S0H/OJA2VtbgUAUgAABgYgZPQfBQBPAAAG/x9k5h/zhwJjcAUASAAABqAfZBQeBQBJAAAG6h9ksx8ThAOgwAAAH8SggAAAH59mcHMbAqFAAAAf5WZsBQBaAAAGByBk9x/7AmFlp2cAyy7c0szjAaDAAAAfO6DAAAAfPKAwAAAafQAbpB0BCR4AAAkCIk/6a+j9sCAZhwABZW4FAEMAAARdH3WcG/MCAW/y9BgAABkBZQBDAAAGrB5ydxt4G3kbeht7G3wbfRvXAgCGoRAAAB+2oBAAAA+foUFAAbMNAAA=")
\ No newline at end of file
diff --git a/api/search.index/12767e14459a.js b/api/search.index/12767e14459a.js
deleted file mode 100644
index 0226f09d3..000000000
--- a/api/search.index/12767e14459a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQFIAAAHXh8FLB9iZqUdwB8xSgAAwR3CHcMdxB0FAcIAAFKOGo8akBqRGpIakxpUmxucG50bnhufG6Aba3ZRSgAAux28Hb0dvh2/HcAd44GEsEAZAwABIBgCWwOgMAAAD49lb3Q=")
\ No newline at end of file
diff --git a/api/search.index/12b6e44515eb.js b/api/search.index/12b6e44515eb.js
new file mode 100644
index 000000000..94a219dda
--- /dev/null
+++ b/api/search.index/12b6e44515eb.js
@@ -0,0 +1 @@
+rn_("FQBFAAAIWB9jNR3WHwUBwAAAAzYbBAUfYW/zAAJ0dfeGEgAAmQEBAAEAgQcBAJABRQBAAAAFXh1lCBk0GzUbWh1bHRsCsGAdXwABZnQbAqBgAAAcm2VvAQEDoEAAAB9csEAdwAABoAAAABo8Zm1zOzAAAAEAABQABgCwGQ4Aah0AAPkdAAAqHgAAsh8AAOwfAQAHDQGJoEAAAB6QoDAAABuEoEAAAB88oFAAAB00oCAAABkHoIAAAB/kJwkHOjAAAAEAAAAAAA0AEAAAAKoPARACEAMQBBAFEOkY6hjxGbcclh5GH6sf2h8hQwAAeh97H6YfUUMAAEAViRmKGYsZjBmNGTcBAIagEAAAC6KwIA4WBEmgIAAAFT4ZUAI7MAAAAQAADgACAJsEAACdBg0A")
\ No newline at end of file
diff --git a/api/search.index/12c54767a6ec.js b/api/search.index/12c54767a6ec.js
deleted file mode 100644
index a76cf4588..000000000
--- a/api/search.index/12c54767a6ec.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBIAAAELh9ltB21HSOCA7BgHDwCjaBAAAAbEWRpcvMAAWk7MAAAAQAAZAEEAKcG1wCcCAAAXRoAAKMbigAFAcAAABefHdwdA5sdZXAVAEsAAAQuH2W0HbUd8wEBaTswAAABAACLAAIAXRoAAKMbigAVAUAAAAlLHQWrHWN3EhoTGvsCZ2kFAEUAAAbZHmIUGwUBwQAAAhUbAhMbYnTzAAF09F4SAAAjAQEACwdFAkIAACR8Hn0eUR8azB/NHwWpHWNrd9AZ0RnCGsMa5B0rAqBAAAAcRWVpBQFEAAAP3R8SeBx5HGNyZBoFAcAAACNSG1Mbix4JAB5hb7cMA4iwMBnPBL2gcAAAHHqgMAAAGsQ0mBL1lg8AAAEAOQAOCuMAtQFAAAAUnR+eHwDgH21z0RjSGIgaiRpQG1EbYBxnHHAdyh0aH3wf+4UoYAQ=")
\ No newline at end of file
diff --git a/api/search.index/13092f86ebb5.js b/api/search.index/13092f86ebb5.js
deleted file mode 100644
index a9d7408cb..000000000
--- a/api/search.index/13092f86ebb5.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQFDAAAJ/x4Voh2jHWRzyRkhRgAA7hjvGCEaowCEoGAAAByOsFAVOAABAhAFOzAAAAEAAAwAAwCDCAoAehIAAHYcAAA=")
\ No newline at end of file
diff --git a/api/search.index/13337e3317d3.js b/api/search.index/13337e3317d3.js
new file mode 100644
index 000000000..fbb92ea7a
--- /dev/null
+++ b/api/search.index/13337e3317d3.js
@@ -0,0 +1 @@
+rn_("BQLDAAAIpR8CsR4IiB9idXcjBgKgYAAAHWFicAFNFQAAIwAEsIAZ6wGboIAAAB7KoRAAAB74YmNsdvOSAQAA+gIAGg==")
\ No newline at end of file
diff --git a/api/search.index/133b2812726c.js b/api/search.index/133b2812726c.js
new file mode 100644
index 000000000..f92ec7ca9
--- /dev/null
+++ b/api/search.index/133b2812726c.js
@@ -0,0 +1 @@
+rn_("IUUAAH8bgBu+HQUBwAAAgLoNuw2yGIIZSxxXHC8dQx2MHwIfHWh5BQBGAAAGvx9mOR8FAEUAAAZWH2JcHQUAQAAABMUeY/Ad8wICc3cBZx0AACsCoGAAAByhYWkVAEMAAARtHWa7H7wfFQBGAAAEvR5mzB/NHwUBwAAAFNEf0h81Uh33HfgdTh9hZccCAIagwAAAH4Gg8AAAH7mwAA5NDf8kYAbzrgkAAAUK6AhnDgCIoJAAAB1doDAAAA6GoIAAAB6INAEXOzAAAAEAAF0AFgCiBAEAcAgBALoLAgDxDQEAng4AAJkPAACmDwAArA8AAF0SAACwEwAAKxQgADkVAAD6GAAAIRoBACQaAQDnGgAA6hogAIUbAABvHAEAcR0AAAofAACaHwAA")
\ No newline at end of file
diff --git a/api/search.index/134723fbeffa.js b/api/search.index/134723fbeffa.js
deleted file mode 100644
index d5cc0f092..000000000
--- a/api/search.index/134723fbeffa.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQFDAAAHXh8FLB9iZqUdwB8FAEYAAAVPH3KOHTFHAABRHfoe+x5fH/MDAmZsOzAAAAEAAAcAAgB9EgAAPBQGACUARQAABfgeYf8YsBmxGXuEsEAcXQABIYAE")
\ No newline at end of file
diff --git a/api/search.index/13846c288466.js b/api/search.index/13846c288466.js
new file mode 100644
index 000000000..7240115ad
--- /dev/null
+++ b/api/search.index/13846c288466.js
@@ -0,0 +1 @@
+rn_("BQHAAAAHGB0DghxlcAUARQAAB0wfc44dKwKgMAAAHFttdAGFA6BAAAAenaFAAAAf8KCAAAAfZGNlbBsDoKAAAB7dsGAekgABbnN08wADYWVzAfofAAA=")
\ No newline at end of file
diff --git a/api/search.index/13dc3b572480.js b/api/search.index/13dc3b572480.js
deleted file mode 100644
index 86c10a400..000000000
--- a/api/search.index/13dc3b572480.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQCEoDAAABJWoDAAABJXoEAAABUroHAAABpfABUBOzAAAAEAACIAEQCOCQwARgsDAHMSAAB+EgAAIBUAADMVAQDTGQAAbRoAAIgbAACUGwEAlxsBAFIdAACJHgAAjx4AAOQeAADvHgAALh8AAA==")
\ No newline at end of file
diff --git a/api/search.index/13f2f11734a0.js b/api/search.index/13f2f11734a0.js
new file mode 100644
index 000000000..dd259e4c2
--- /dev/null
+++ b/api/search.index/13f2f11734a0.js
@@ -0,0 +1 @@
+rn_("MUoAACYeJx4oHikeFQBAAAAUBB9dH3XgGZwbBQHCAABSQBtBG0IbQxtEG0UbVKUcphynHKgcqRyqHGt2UUoAACAeIR4iHiMeJB4lHu8CxrBAGfMAAaAwAAAelQAIxgE=")
\ No newline at end of file
diff --git a/api/search.index/13fa8577b610.js b/api/search.index/13fa8577b610.js
deleted file mode 100644
index 9d4237f31..000000000
--- a/api/search.index/13fa8577b610.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBEAAADlB5utBkFAcAAAAO4H1NHGkgaGh0bHX0dfh1sdSFIAABAH4AfgR/7AmFvVwAAhaBgAAAdcbBgHXIAAbAAH6UAETSAAjswAAABAAAOAAUArAkAAG8LAAAsGgAAmxsFAJMcBQAbAqAwAAAaoWV0")
\ No newline at end of file
diff --git a/api/search.index/1429ad743308.js b/api/search.index/1429ad743308.js
new file mode 100644
index 000000000..b7313656a
--- /dev/null
+++ b/api/search.index/1429ad743308.js
@@ -0,0 +1 @@
+rn_("BQLAAAASaxxsHAKBHAciG2FvciFDAABqHNMeeB8FAcAAABI3Gz0fGUYf2h9pbwUBxgAACTYfCTcfY3YFAcAAAARqEg2iHm9yZwsAi6DQAAAeD7BwHIQAk6BQAAAY8qCgAAAchqBAAAASaaCgAAAchz2hDjowAAABAAAAAAAaABAAAAB+AX8BgAEsBJ0O3BgBGQIZMxqNGo4agxuVHJYcmR2hHa0erh7UHhkfGh8qH2EfYx9uH28fqB8=")
\ No newline at end of file
diff --git a/api/search.index/1436e8bdbebb.js b/api/search.index/1436e8bdbebb.js
deleted file mode 100644
index e94f6cbef..000000000
--- a/api/search.index/1436e8bdbebb.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAHeB8ibxpwGlodb3kjAgKwYBx+AixsdDswAAABAAAGAAMAbBIBAJkTAwACGgAAQwEDoGAAAB/woBAAAB7hZGVp91ULAADLE3cAJQABACAAAQAFAcAAAAONHQCGGmFzBQHDAAAXaR9qHxLEHsUeZHNTAQOgUAAAHe9mbW7y/hgAALEABQHAAAADXBwA/RhhcwUBwAAABCgdUDcaOBo5GjoaOxo8GmlzBQHDAAAXNh83HxLtHe4dZHPzBIQgMAQ6MAAAAQAAAAAABwAQAAAAfBIWFBcUGBQZFBoUEx/RHwUAQAAABusfZNAfKwKgQAAAGa5pcwUBwwAAF4ceiB4S0hrTGmhzVwEAhqBQAAAac6BAAAAfqrAwD54K6aBQgjswAAABAAAUAAoAqQQAAJkIAAARDgIAlw4BAIoPAAA2GgAAThoGAGkaAAA2HwEAaR8BAGUEQQAAFqkcqhwL6h4MCR8EoRoMCh9mbXJ [...]
\ No newline at end of file
diff --git a/api/search.index/143edde01a5b.js b/api/search.index/143edde01a5b.js
deleted file mode 100644
index be25c955e..000000000
--- a/api/search.index/143edde01a5b.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBCAAAS+xr8GnOdExUAQAAAFFcdGR5jOxxuHfMBAXPzog8AAAEAYA8FAcAAAAePHwHfHmFvBQHEAAACyR8BxR9hbyOFAqAAAAAfWWRmBQHEAAAGuh8DqR9vdBsCoOAAAB/aaG83AgGIoDAAAB8DoYAAAB/ysEAfPQABoEAAAB9CoFAAAB9aLJgD8hIfAACHACMChKBAAAAfLqAgAAAbGKAAAAAduhABAzowAAABAAAAAAAIABAAAADlGOgYIBquGs8aVh20HbUdSR/7AmVs+wJpcg==")
\ No newline at end of file
diff --git a/api/search.index/14e1801ff92f.js b/api/search.index/14e1801ff92f.js
new file mode 100644
index 000000000..9bb206dcc
--- /dev/null
+++ b/api/search.index/14e1801ff92f.js
@@ -0,0 +1 @@
+rn_("JQBCAAAQ4hrjGnPCDUkbShslAUAAAAXnGQXoGXJ3qwvFDcYNGwKgAAAADfZueAUBwAAACo0eEpMPcR9jcvsDZWlz")
\ No newline at end of file
diff --git a/api/search.index/1528420094e9.js b/api/search.index/1528420094e9.js
deleted file mode 100644
index 1aaa8778b..000000000
--- a/api/search.index/1528420094e9.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUgAAHEfdR+IH5AfMUIAAJEenx7WHuAeBQHAAAAM3x8NwB9haA8Hh6CAAAAfkqCAAAAfm6FQAAAf6KCgAAAfyh4AHA==")
\ No newline at end of file
diff --git a/api/search.index/152d40690a01.js b/api/search.index/152d40690a01.js
new file mode 100644
index 000000000..5b12eac3c
--- /dev/null
+++ b/api/search.index/152d40690a01.js
@@ -0,0 +1 @@
+rn_("BQHAAAAFhhwEVx9jcwUAQgAAAvYfbekfI4cCoIAAAB/6YWsjDgKgoAAAH+9hYwEsHwAAS4Qm+RQQLumgQAAAG6egUAAAHGAYAAP7AmVp")
\ No newline at end of file
diff --git a/api/search.index/155fb99a4f6f.js b/api/search.index/155fb99a4f6f.js
deleted file mode 100644
index 4c33c4932..000000000
--- a/api/search.index/155fb99a4f6f.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBEAAAD+B1shBsAHyOBAhUoQgCU6XB2CQBbA6AgAAAfVABvcg==")
\ No newline at end of file
diff --git a/api/search.index/156bf74b9521.js b/api/search.index/156bf74b9521.js
new file mode 100644
index 000000000..317ebfb3a
--- /dev/null
+++ b/api/search.index/156bf74b9521.js
@@ -0,0 +1 @@
+rn_("BQHEAAAoUx+TH5QfBMsfYW8bAqBgAAAdrmFlBQLAAAADdx8ElB0ichtzGx8fZW95FQBKAAAGAyBkqh/xHwUBwAAAAj0fCdofaW8TBwKgMAAAH3hmaffUHgAARQABAEcADQABADkAGwKwMB1xAZlhciFFAAC1H8cfyB8lAEAAAAPTHmmtHq4eKh8hQgAAjhyPHEAfMUEAAJEdkh2THXMfBQHAAAAVqh6nHwLSHnV58wGEAgEDOjAAAAEAAAAAAAwAEAAAAIAabRtuG28bcBtxGzsdzB20Hh4fih+WH8Qf+wJlbPMAA3B0dfXDGAAAngMBAEcBdAAFAcAAAAVMHQVjH2FlBQBAAAADxB5p2x4jAgKgEAAAHXppczowAAABAAAAAAAJABAAAADmGVcbWBtZG3wcfRzLHRYeFx4GHxUAQQAABb4ddyQaJRoVAEAAABSwH7EfbYIdjx/7AmRuMUgAAFId9x34HU4fRQBDAAA [...]
\ No newline at end of file
diff --git a/api/search.index/15a05a21f2c7.js b/api/search.index/15a05a21f2c7.js
new file mode 100644
index 000000000..1890f7816
--- /dev/null
+++ b/api/search.index/15a05a21f2c7.js
@@ -0,0 +1 @@
+rn_("BQHAAAADaxsMYB9wdAUBwAAAA1scBY4dbXQrArBwHpIAAWFlhwKDh6DQAAAfuKDgAAAfkqAQAAAZmqEAAAAfyaDAAAAfRSyQBg==")
\ No newline at end of file
diff --git a/api/search.index/15a874838b2f.js b/api/search.index/15a874838b2f.js
deleted file mode 100644
index f4311b028..000000000
--- a/api/search.index/15a874838b2f.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUgAAHEfdR+IH5AfMUIAAJEenx7WHuAeZQFDAAAI3x8DNxxiZIgXiReKF4sXjBeNF44XGwOg0AAAH8CgMAAAHZdhaGlBQAAAWgtbC5QY1BjVGGFIAAA+Gz8bQBtBG0IbQxtEGwUAUgAABu8fZNsfBQBUAAAG8B9k3h/zhAJwdAUAUQAABuofZMsfBQBYAAAG9R9k6R8FAEgAAAbiH2SyHwUASgAABu4fZNUfBQBKAAAG7R9k1B/7AmFpBQBGAAAG2B9koR/ziQNlbW4FAFIAAAbzH2ThHwUATwAABuwfZNMf84cCY3AFAEgAAAaNH2QCHgUASQAABtcfZKAfE4QDoMAAAB+xoIAAAB+MZnBzGwKhQAAAH9JmbAUAWgAABvQfZOQf+wJhZadnAMtjjXctJ2ugwAAAHyigwAAAHymgMAAAGmsAG6QdAfcdAAAFAcEAAAS7HwXGH3Fz8wIBcjswAAABAAAiAA0AtRgNAHc [...]
\ No newline at end of file
diff --git a/api/search.index/15b70f3f37e1.js b/api/search.index/15b70f3f37e1.js
new file mode 100644
index 000000000..71243d050
--- /dev/null
+++ b/api/search.index/15b70f3f37e1.js
@@ -0,0 +1 @@
+rn_("BQHAAAADnx0AmBphcwUBwwAAF3wffR8S1x7YHmRzUwADoFAAAB4BZm1u8hAZAACxAEUAQAAAARkOcE4Lyg/LD8wPORoFAEAAAAPEHmnbHiMCAqAQAAAdemlzOjAAAAEAAAAAAAgAEAAAAFcbWBtZG3wcfRzLHRYeFx4GHwUAQgAAAvYfbekfI4cCoIAAAB/6YWsFAcAAACDuD+8P8A8J7x9sd3cAAoWgYAAAHUygAAAAHakFFAL0qAsAAPoLAQCJBxUAQgAAByEfbdYZwxpDgYSgMAAAHEqggAAAHbKgkAAAHg4CRQBlAUMAAAjyHwNJHGJkmxecF50XnhefF6AXoRe3DACIoNAAAB/TsWAf3wABoAAAAA2RkVHA81sOAAApAAEA")
\ No newline at end of file
diff --git a/api/search.index/160815396655.js b/api/search.index/160815396655.js
new file mode 100644
index 000000000..0c64d15ec
--- /dev/null
+++ b/api/search.index/160815396655.js
@@ -0,0 +1 @@
+rn_("BQBFAAAFYh9yoB0VAEMAAAb1H2RIG8Uf+wJlaTFHAABjHQ0fDh9yH/UARgAACb4fcnQaWxtcG10bXhtfG2AbYRtlHbUeth63HrgeMR8yHzsfBQHAAAABaBICSh1leWMAA7BgHuYBBGR0dvd/GQAAAQABAJ4BmQH7AjIABQHAAABSoBqhGqIaoxqkGqUaVK0brhuvG7AbsRuyG2t2BQBLAAAYwR/CH3eUHvsDbHB0cwCEoDAAABU8IUgAOzAAAAEAAA0ABQCrBAAAnQgDAGESAACMEgAATBQGAA==")
\ No newline at end of file
diff --git a/api/search.index/167101aae12f.js b/api/search.index/167101aae12f.js
new file mode 100644
index 000000000..7dc8642de
--- /dev/null
+++ b/api/search.index/167101aae12f.js
@@ -0,0 +1 @@
+rn_("BQBCAAADTR1h7R5lAEAAAAZzGmKdC54Lig6LDowOjQ6ODgEAADswAAABAACKAAEADReKACsCoEAAABp/ZW+RRAAA4x3kHeUd5h3nHegd6R37HvwedR9bA6CAAAAfwGJzdDFCAABQFVEVKBspG/MAAWU7MAAAAQAA3AADAMALAACxDtgAIhQCAPuECGAE")
\ No newline at end of file
diff --git a/api/search.index/16c66b31b4c2.js b/api/search.index/16c66b31b4c2.js
deleted file mode 100644
index 90e44485e..000000000
--- a/api/search.index/16c66b31b4c2.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQUAOzAAAAEAAAABAgApFQEAkRf+ABUAQwAAIB8aix2MHXOMHI0cNQBAAAAECR9i7A/tD+4P7w/zgQJkbfsCcnZRQQAAmR2aHa8dmh79Hrsf1QBHAAAEzh9mURxSHFMcVBxVHFYcVxx/HrUeuh69HnYf8R/yHxsCoGAAAB3eY3Q7A2QlRekutm5zdDFBAACtDxEa8R5KHyFCAADwGfEZ8hkVAEUAAAVwH2MPHxAfBQBJAAAGsB9iPB9ThQOgAAAAG4lmc3fzggJkafOBAml0+wNhZWk=")
\ No newline at end of file
diff --git a/api/search.index/16ce3e5169ad.js b/api/search.index/16ce3e5169ad.js
new file mode 100644
index 000000000..ec7114625
--- /dev/null
+++ b/api/search.index/16ce3e5169ad.js
@@ -0,0 +1 @@
+rn_("BQHAAAAAiQ4GchplaSsCoEAAABKBcnQ1AEEAAAGuHXarHigfKR9YHyUBQQAAFpgfmR8VcR0KH2VzdhPHGI8aKwOwABjGAlygcAAAHo1kb3YBAAKg0AAAH5WhMAAAH8thcAFSFQAAGwKgMAAAGjlkbQUARgAAEBMeOB9yvR3zAwFwAfwYAAAbAqBAAAAbdGFvBQBDAAAGCCBk/B/zAgFvAdkYAAB3AwCHsHAdlQABoMAAAB8nNUEQOjAAAAEAAAAAAAoAEAAAAJsL6A2DDpMOlA6VDqAOoQ5YGogbhxwlAEAAAAPTHmmtHq4eKh8BAgGhYAAAH99tAVsOAAA1AEAAADibHZwdsB7nHmGtGmYdph3uHiUARgAAAJgec1kdYh37HQUBwQAAAD0aIpIakxqKHmVpu4SAHI4AErEpAAT7AmV5UUMAAFkaWhosHS0djx2QHTFEAAAmGicaKBopGgUBwAAAL7Ufxx/IHyerHig [...]
\ No newline at end of file
diff --git a/api/search.index/1769468a4c54.js b/api/search.index/1769468a4c54.js
new file mode 100644
index 000000000..192c99219
--- /dev/null
+++ b/api/search.index/1769468a4c54.js
@@ -0,0 +1 @@
+rn_("IUgAAJUclhyZHQUBxgAAElodWx0gohujGzMdcnMhRQAAgxqEGn4b+wNjbnRRSAAAkRySHJMclByXHZgdBQHIAAAjrR6uHiofKG4fbx+oH3B0+wJhciFMAAAWHhceBh+vAoagAAAADqKgMAAAGaygIAAAGNY4gAMhQgAA9g/3D/gP+wJhZQ==")
\ No newline at end of file
diff --git a/api/search.index/17b75092247d.js b/api/search.index/17b75092247d.js
new file mode 100644
index 000000000..1e5644cb2
--- /dev/null
+++ b/api/search.index/17b75092247d.js
@@ -0,0 +1 @@
+rn_("BQHAAAAHQh8STxWMG295cUQAANQd1R3WHdcdJh4nHigeKR5XAADFsGAbiQABoEAAABo+oKAAAB9/AAggGjowAAABAAAAAAAIABAAAAC9C74LvwvzDfQN9Q2REo0TXhoFAEIAABIJH/IfYZUL+wJrdA==")
\ No newline at end of file
diff --git a/api/search.index/17c8d34ece4c.js b/api/search.index/17c8d34ece4c.js
deleted file mode 100644
index 751e5454c..000000000
--- a/api/search.index/17c8d34ece4c.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBGAAAGzx9kyB2LHzUAQAAAE+QZ5RlpyBrJGhAdER0FAEMAAADjGXMxH2MAA7AQG1AAAWluc/NJEgAAGQlWBBUARAAABvAfZJcf3h8jAwKggAAAH0VjbPcXDgAAhwABAAEAJgtdA6ACBQLCAAACsh0JdB8KkR9hZXMrAqAQAAAaXmlvKwKgYAAAHC5lctUAQgAABM4fZlEcUhxTHFQcVRxWHFccfx61HroevR52H/Ef8h9nBwCIsHAcXQABoHAAABx3oRAAAB+kEzEF9osJAADeAMYRAQABAAEA")
\ No newline at end of file
diff --git a/api/search.index/182b786bd34c.js b/api/search.index/182b786bd34c.js
new file mode 100644
index 000000000..a0aa4aea7
--- /dev/null
+++ b/api/search.index/182b786bd34c.js
@@ -0,0 +1 @@
+rn_("NQBFAAAW+B/5H2RaH1sf1B/VHwEGADswAAABAAAgAAEA6hogAAUAQQAABv4fZOMfE4ICoEAAAB+9bW/7AmlvBQBFAAAGqB5meRoFAEIAAAb9H2TeH/sCaXQFAcEAABCKHIscCacbZnMFAEAAAAPEHmnbHiMCAqAQAAAdemlzOjAAAAEAAAAAAAgAEAAAAFcbWBtZG3wcfRzLHRYeFx4GHwUAQgAAAvYfbekfI4cCoIAAAB/6YWtjAoSgoAAAH++gYAAAHUwFFADzohcAAAEAiQcVAEIAAAchH23WGcMaQ4GEoDAAABxKoIAAAB2yoJAAAB4OAkUAMwGEsWAf3wABoAAAAA2REFEA81sOAAApAAEAAYMCoNAAAB+4oQAAAB/JY3AFAEgAAAerH3MCHvMCAmZ3864OAAABAAEAFQBEAAAGAyBkqh/xHwEDAaAwAAAa6Wo7MAAAAQAA2QACACcOAAB6EdgAAQOEoEAAABu [...]
\ No newline at end of file
diff --git a/api/search.index/189a50522300.js b/api/search.index/189a50522300.js
deleted file mode 100644
index 1e55a8308..000000000
--- a/api/search.index/189a50522300.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("8UYAACYbJxuWHssezB7NHs4ezx7QHtEe0h7YHtwe3R5NH6wfBQBIAAAAhh5zUB0rArBAGn4AAW9yMwIDoGAAAB8wY2ZvOjAAAAEAAAAAAAcAEAAAABUOFg6dDmcaEhsZGxobJh8=")
\ No newline at end of file
diff --git a/api/search.index/189d5a791003.js b/api/search.index/189d5a791003.js
deleted file mode 100644
index f05b85973..000000000
--- a/api/search.index/189d5a791003.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("xQJAAAASARloHBPdGTIdUEcaSBoaHRsdfR1+HWtuc34TFBoVGhYaFxqRHJIcVx3OHRkedh6zHikfAQMAOzAAAAEAAIsAAgBdGgAAoxuKAMuEsEAaAAABd1aImhG6CgEE")
\ No newline at end of file
diff --git a/api/search.index/19175bc6fcd1.js b/api/search.index/19175bc6fcd1.js
new file mode 100644
index 000000000..706154585
--- /dev/null
+++ b/api/search.index/19175bc6fcd1.js
@@ -0,0 +1 @@
+rn_("dQBAAAAH/B1vuhhQHFEcUhxTHFQcVRxWHAUBwQAABBAfFVYd6h5xcwUBywAABM4fBdkfcXNhRQAAJR0mHScdKB0pHSodKx0FAFEAAAYIIGT8H2cOAIigwAAAHxSwQBsoAAGgcAAAHVUZoQM7MAAAAQAAJwALABwOAABeEgAAcBIBAJISAACTEwMAzBoGAFAbBgCwHAYAPB0GAG4dAAB4HQEA")
\ No newline at end of file
diff --git a/api/search.index/19600742098b.js b/api/search.index/19600742098b.js
deleted file mode 100644
index 187693bfb..000000000
--- a/api/search.index/19600742098b.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("1QBCAAADDxttfxKAEp0dnh2tHa4djR6OHiEfIh89Hz4fnR+eHwUARgAABKgeYisbFQFFAAAD5B0AjRpsc94ZwRr7A25zdBsDoKAAAB7uoAAAABw9YWVz")
\ No newline at end of file
diff --git a/api/search.index/198d74579fbe.js b/api/search.index/198d74579fbe.js
new file mode 100644
index 000000000..3c7ce0532
--- /dev/null
+++ b/api/search.index/198d74579fbe.js
@@ -0,0 +1 @@
+rn_("BQHAAAACJxsCJRtidBsCoCAAAB90YXkjAAKgwAAAHsxldDswAAABAAAdAAkAng0IAG0SAACREwEAPxoGAJ8aAAAlHQYAxh0AABQfAAB3HwAA")
\ No newline at end of file
diff --git a/api/search.index/19b67a08776b.js b/api/search.index/19b67a08776b.js
new file mode 100644
index 000000000..31d334983
--- /dev/null
+++ b/api/search.index/19b67a08776b.js
@@ -0,0 +1 @@
+rn_("wUEAAKAP3BnfGYkcTR1OHVIdWB33HfgdDR5NH04fMUIAAHMSnhNHH0gfBQRAAAAT3RneGRfsHe0dEgoaCxoXfR1+HQQxHWRma2x0xg/7A2Vpbw==")
\ No newline at end of file
diff --git a/api/search.index/19dbbedaa27a.js b/api/search.index/19dbbedaa27a.js
new file mode 100644
index 000000000..28dfc8631
--- /dev/null
+++ b/api/search.index/19dbbedaa27a.js
@@ -0,0 +1 @@
+rn_("BQHAAAAVYhtjGwgSHmxuAYIDoVAAAB/7oCAAAB7zoIAAAB+jZHV3KwKgIAAAH2dvckMEA6BgAAAdw7BwH2gADmJlcAH+GAAAUUIAAGQbZRuOHo8enR5kH/sCY3T7AmFv")
\ No newline at end of file
diff --git a/api/search.index/1a140f56662d.js b/api/search.index/1a140f56662d.js
new file mode 100644
index 000000000..03577fdd2
--- /dev/null
+++ b/api/search.index/1a140f56662d.js
@@ -0,0 +1 @@
+rn_("ZQBEAAAGwh1yKhorGiwaLRouGi8aMBoBAAENescRTRRw9GELAACUDkEAdgAFAcAAAAehHwHxHmFvBQBCAAAz+hghGiIamh9wxh4FAcQAAALbHwHXH2FvI4ICoAAAAB9qZGYTgQKgUAAAHvRlafMAAWXyoAsAAJ8TBQHAAAAN7B8EGh1tbgUBxAAABswfA7sfb3RrA6DQAAAfwGFob2dsAIyggAAAHSSgMAAAHxWwgB1OAf+hgAAAIASgQAAAH1SwgB/BAAFumBc7MAAAAQAA+gAUAKQEAAByCAwA9A8BAFMU2ACaFwAA7xkAAMYaAQCSGwAAnRsAAHscAAAWHQAARB0AAJodAAC6HQAA7B0BAJQeAACmHgAAER8AAEQfAACkHwAAEwACBir5Q3MCZXA6MAAAAQAAAAAADQAQAAAAuQvvDfANYxK6GrsavBq9Gr4avxq0HbUdDB9wHw==")
\ No newline at end of file
diff --git a/api/search.index/1a231a0af6ef.js b/api/search.index/1a231a0af6ef.js
new file mode 100644
index 000000000..efa0b17ca
--- /dev/null
+++ b/api/search.index/1a231a0af6ef.js
@@ -0,0 +1 @@
+rn_("UUEAAKsdrB3CHaweEB/OH9UARwAABOEfZmMcZBxlHGYcZxxoHGkckR7HHswe0B6JHwQgBSAbAqBgAAAd8WN0+wJucw==")
\ No newline at end of file
diff --git a/api/search.index/1a54459a71e5.js b/api/search.index/1a54459a71e5.js
new file mode 100644
index 000000000..a98c8a841
--- /dev/null
+++ b/api/search.index/1a54459a71e5.js
@@ -0,0 +1 @@
+rn_("IUEAALETXx1gHTUBQwAAF8segB8Ahhlmc6kYqhirGKwYBQBAAAADoh5qmB4VAEMAABFmH4IfZY0fjh9jAQOgIAAAHfFpbHM6MAAAAQAAAAAABwAQAAAANxU4FZkXbBpZHV0dYh37Hd8AhbAAEpYIf6AQAAAPnilABA==")
\ No newline at end of file
diff --git a/api/search.index/1a5792b05c87.js b/api/search.index/1a5792b05c87.js
deleted file mode 100644
index b05d39c89..000000000
--- a/api/search.index/1a5792b05c87.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBFAAAIRR9jIx3DHwUBwAAAAyQbBPIeYW/zAAJ0dfd3EgAAmAEBAAEAfwcBAJABVQBAAAAFTB1l9Rj2GCIbIxtIHUkdGwKwYB1NAAFmdBsCoGAAAByJZW8BAQOgQAAAH0mwQB2tAAGgAAAAGipmbXM7MAAAAQAAFAAGAJ4ZDgBYHQAA5x0AABgeAACfHwAA2R8BAAcNAYmgQAAAHn6gMAAAG3KgQAAAHymgUAAAHSKgIAAAGPSggAAAH9EnCQc6MAAAAQAAAAAADQAQAAAAnQ/0D/UP9g/3D/gP1hjXGN8ZpRyEHjMfmB/HHyFDAABnH2gfkx9RQwAALxV3GXgZeRl6GXsZNwEAhqAQAAALmLAgDgoERqAgAAAVLRlQAjswAAABAAAOAAIAmAQAAJgGDQA=")
\ No newline at end of file
diff --git a/api/search.index/1a7d8286eee4.js b/api/search.index/1a7d8286eee4.js
new file mode 100644
index 000000000..18da53eac
--- /dev/null
+++ b/api/search.index/1a7d8286eee4.js
@@ -0,0 +1 @@
+rn_("BQHBAAAIAx4D2B1hdDFAAAB1C5ASmxJtHAUAUgAABgIgZO4fBQBUAAAGAyBk8R/zhAJwdAUAUQAABv0fZN4fBQBYAAAGCCBk/B8FAEgAAAb1H2TFHwUASgAABgEgZOgfBQBKAAAGACBk5x/7AmFpBQBGAAAG6x9ktB/ziQNlbW4FAFIAAAYGIGT0HwUATwAABv8fZOYf84cCY3AFAEgAAAagH2QUHgUASQAABuofZLMfE4QDoMAAAB/EoIAAAB+fZnBzGwKhQAAAH+VmbAUAWgAABgcgZPcf+wJhZadnAMsu3NLM4wGgwAAAHzugwAAAHzygMAAAGn0AG6QdAQkeAAAFAcEAAATOHwXZH3Fz8wIBcjswAAABAAAiAA0AyBgNAIkaAwAuGwAAgRsBAKUbAAB3HAAAkRwDAKIcAAA4HQEAlx0BABUeAAD6HgAASx8AAPsCaXkFAEQAABBWGlcac8UZBQHBAAAScxKeEwF [...]
\ No newline at end of file
diff --git a/api/search.index/1af57f704d9c.js b/api/search.index/1af57f704d9c.js
new file mode 100644
index 000000000..d1b0e6f22
--- /dev/null
+++ b/api/search.index/1af57f704d9c.js
@@ -0,0 +1 @@
+rn_("BQHAAAAkVh0LHuoeAp4bcHUVAEYAABCdHZ4dc54cnxxBQgAAqx2sHcIdrB4QH/OBAmVpRQBCAAAY1R7WHmR9Eq4TrxMcG14dAQIAOzAAAAEAANoAAgCYDwAAnBLZAPMAAW07MAAAAQAA3AADAJYJAABzCtoA1hgAABUAQAAAJZcbrhyvHHeTD3EfFQBBAAAhgxmUG5UbZZsPGhvfC8ig4AAAH3CwMB6hAFZAC8gB")
\ No newline at end of file
diff --git a/api/search.index/1b0524f5fc60.js b/api/search.index/1b0524f5fc60.js
deleted file mode 100644
index 028755a32..000000000
--- a/api/search.index/1b0524f5fc60.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBIAAAG8B9klx/eHysCoHAAABwuZW0bA6BgAAAdoaCgAAAdaW1wcjFDAABdHF4cXx33HgUBwAAAAiofCccfaW8TBwKgMAAAH2VmaffBHgAARQABAEcADQABADkA+wJhchUBQgAAB14fBSwfYmalHcAfIUUAAKIftB+1HyUAQAAAA8AeaZsenB4XHyFCAAB8HH0cLR8xQQAAfx2AHYEdYB8FAcAAABWYHpQfAr8edXn3AAGFgA6HABABAgEHOjAAAAEAAAAAAAwAEAAAAG4aWxtcG10bXhtfGykduR2iHgsfdx+DH7Ef+wNlbG8FAEQAAAR8G29+GQUBwAAAAOYZC/IebnAbAqAgAAAanGF1BQBCAAAG8x9k4R81AEEAABDkGeUZc60erh6vHrAeJQBDAAAEHxtiNBuKHq0f+wJ0egUARgAABU8fco4dMUcAAFEd+h77Hl8f8wMCZmw7MAAAAQAABwACAH0SAAA8FAY [...]
\ No newline at end of file
diff --git a/api/search.index/1b81eb09602c.js b/api/search.index/1b81eb09602c.js
deleted file mode 100644
index 27b6bb40d..000000000
--- a/api/search.index/1b81eb09602c.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBFAAAGkx5iYxoFAEcAABaJH4ofZpIeE4MCoDAAABx2cHMbAqBwAAAd4mFlCQKhAAAAH3OgsAAAHzBhb0sDoEAAAB53oKAAAB64Y3F0BQBJAAAGch924R0JAmZTiaJmc6BgAAAeg2FvFw8AiKCQAAAd4KDwAAAfZKFAAAAfnAyRFgGGDgAAIwACoEAAAB/OZmc6MAAAAQAAAAAADQAQAAAAURxSHFMcVBxVHFYcVxx/HrUeuh69HnYf8R/yHw==")
\ No newline at end of file
diff --git a/api/search.index/1b952374f40a.js b/api/search.index/1b952374f40a.js
new file mode 100644
index 000000000..b809fe547
--- /dev/null
+++ b/api/search.index/1b952374f40a.js
@@ -0,0 +1 @@
+rn_("ZQBCAAAD3xlhghODE4QThROGE4cTiBMBAAOgMAAAEnegEAAADp+wIB2iAjthZXU6MAAAAQAAAAAAEQAQAAAAtQ+2D7cPuA+5D/UY/xjkGYQchRwXHRgdSx1/HbEd7x1oH3YfSwOwIBitAAGgYAAAGuZucHRrA6AAAAAEsWRudA==")
\ No newline at end of file
diff --git a/api/search.index/1bbc9d65a42f.js b/api/search.index/1bbc9d65a42f.js
deleted file mode 100644
index b10812f7f..000000000
--- a/api/search.index/1bbc9d65a42f.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBGAAAGrB9mJh/zAwFzAaATAAA1AEAAABPkGeUZacgayRoQHREdBQBDAAAA4xlzMR9jAgOwEBtQAAFpbnPzSRIAABkJVgQFAcAAAAeOHwHeHmFvBQHEAAACyB8BxB9hbyOFAqAAAAAfV2RmBQHEAAAGuR8DqB9vdBsCoOAAAB/ZaG83AYOHoDAAAB8CoYAAAB/xoEAAAB9BoFAAAB9YLIgDBQBJAAAGQx9iSh0TggKwUBttAAFmd0sDoIAAABpeoEAAAB9FYWVpBQBBAAACaRJloAsbArBAHy8ASWN0BQHAAAAQ+w38DRHxD7IdbnIbA6CQAAAfdLCgHYgCCWFlc9cHAMewYBqVAAEATAoM87sEAAABAAEA")
\ No newline at end of file
diff --git a/api/search.index/1bf5dd513028.js b/api/search.index/1bf5dd513028.js
new file mode 100644
index 000000000..c967791fa
--- /dev/null
+++ b/api/search.index/1bf5dd513028.js
@@ -0,0 +1 @@
+rn_("BQBLAAAGCCBk/B8bAqEwAAAf+2FzZQBEAAAJSx9wTxpQGlEaUhpTGlQaVRpVAUAAABQLGwwbCKEdY3SLD4wPjQ+OD0YaRxoFAcsAAATOHwXZH3Fz8wgBcDswAAABAAAGAAEAPB0GABUATQAABOEfZgQgBSAjAAOgEAAAHE+ggAAAHyZtc3QBig8AAFcDAoagcAAAHHGg8AAAH2MIqAb0UxUAAAEAuAMBAFsDoFAAABoOYWVp")
\ No newline at end of file
diff --git a/api/search.index/1c17ccd16745.js b/api/search.index/1c17ccd16745.js
new file mode 100644
index 000000000..f80314622
--- /dev/null
+++ b/api/search.index/1c17ccd16745.js
@@ -0,0 +1 @@
+rn_("FQBEAAADCh5slhsTHzFIAACEH4gfmx+jHzFCAACjHrEe6R7zHgUBwAAADPIfDdMfYWgPB4eggAAAH6WggAAAH66hUAAAH/ugoAAAH90eABzzgQJwdgUASAAABoUfdvQdWwOgIAAAH2dsb3I=")
\ No newline at end of file
diff --git a/api/search.index/1c18d4989645.js b/api/search.index/1c18d4989645.js
deleted file mode 100644
index ad6ad0fb0..000000000
--- a/api/search.index/1c18d4989645.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAHjx8B3x5hbwUBxAAAAskfAcUfYW8jhQKgAAAAH1lkZgUBxAAABrofA6kfb3QbAqDgAAAf2mhvNwGGh6AwAAAfA6GAAAAf8qBAAAAfQqBQAAAfWiyIAwUBwAAAB44fAd4eYW8FAcQAAALIHwHEH2FvI4UCoAAAAB9XZGYFAcQAAAa5HwOoH290GwKg4AAAH9lobzcBhoegMAAAHwKhgAAAH/GgQAAAH0GgUAAAH1gsiAM7A6CQAAAeA2NmcA==")
\ No newline at end of file
diff --git a/api/search.index/1c19362d485b.js b/api/search.index/1c19362d485b.js
new file mode 100644
index 000000000..23e030d68
--- /dev/null
+++ b/api/search.index/1c19362d485b.js
@@ -0,0 +1 @@
+rn_("BQHAAAACxB4hzw8uFd0edHojAAKwQB1mAYhlaQHbHgAABQLAAAAuEB4RHmkfAfYfphUaFhoXGhgaGRoaGhsaGh4hH98f4B9hZGWRQQAAuA25DZwanRqeGpccRR1XHXod7x8FAEQAAAO6HW6PE4cqAIqgQAAAHrqgQAAAE46gYAAAHFiwkB9HAAGwUBiyA5mwYBxZAAF2mQI6MAAAAQAAAAAALAAQAAAANASPDlUSVhKBEkcV4hjjGBMZzRnWGd0Z3hnmGQoaCxqgGqEaohqjGqQapRrDGj0bQBtBG0IbQxtEG0UbVxtYG1kbehx8HH0cmx2cHcsdFh4XHrAe5x4GH+kf")
\ No newline at end of file
diff --git a/api/search.index/1c224df91a69.js b/api/search.index/1c224df91a69.js
deleted file mode 100644
index 65c73daa4..000000000
--- a/api/search.index/1c224df91a69.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBNAAAEzh9m8R/yHyOGA6AQAAAcPaCAAAAfE21zdAUBRAAABKgeA8oeYnMrGwUASgAAFJ0fnh9tfB8VAEYAABQ9Hz4fbRIfmR/zhgJmcEsDoDAAABUwoEAAABlqZHBzVwgAiLBwG1AAAaAwAAAPh7AwE6QHYKCgAAAdcKDQAAAeujXACgGcBAAA")
\ No newline at end of file
diff --git a/api/search.index/1c2910743149.js b/api/search.index/1c2910743149.js
new file mode 100644
index 000000000..ef1757188
--- /dev/null
+++ b/api/search.index/1c2910743149.js
@@ -0,0 +1 @@
+rn_("IUUAAJcbrhyvHHUBRAAAB1gdAMUYb3N5EnoSphOnE6gTGxt8HbYfBQBAAAADoh5qmB4VAEMAABFmH4IfZY0fjh/zBQJsczowAAABAAAAAAAHABAAAAA3FTgVmRdsGlkdXR1iHfsdBQHAAAAE+x8Gex1jdNcCAIagQAAAHxygsAAAHwETERA7MAAAAQAACwAFAJMPAAD5DwMAQBUAAIkZBABxHwAA")
\ No newline at end of file
diff --git a/api/search.index/1c382568960a.js b/api/search.index/1c382568960a.js
new file mode 100644
index 000000000..f4ec9553a
--- /dev/null
+++ b/api/search.index/1c382568960a.js
@@ -0,0 +1 @@
+rn_("gUIAAKIPTxWtGfkZ+hmMG5gbSh0SHhUBRwAAB3EfBT8fYma3HdMfBQBBAAAG/h9k4x8TiwKgQAAAH71tbysCoGAAAB9CbHQFAsAAADS/HsAewR7CHjBoErUfxx/IHwgZHW5yc2UAQAAAB7kdcpEZkhmTGZQZlRmWGZcZBQHBAAAEqx0FCx5xc/ODAnJzvwOGoHAAAB/kEUFB")
\ No newline at end of file
diff --git a/api/search.index/1c488a9adf92.js b/api/search.index/1c488a9adf92.js
deleted file mode 100644
index 20fcf1a99..000000000
--- a/api/search.index/1c488a9adf92.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHDAAAGWR0B4BlibyUAQQAACKceYqEPjhuVHTUBQgAAUYoaixqMGoUcMx1FHRVUHdseaXOJHYodnh7UHvMAAmtvAZ0eAABjAAOgcAAAHepvc3Q7MAAAAQAABwACAKcYAAA+HAYABQHBAAAE/R4VRB3XHnFzBQHKAAAEux8Fxh9xcysCoCAAABx0YXLVAEQAAATOH2ZRHFIcUxxUHFUcVhxXHH8etR66Hr0edh/xH/IfNQBEAAAWjR/YH2SVGAkZAh6hH5uEsDASTgLaoGAAAB1DCUAIJQBBAAASFhsXG2USFBMUFBQFAcAAAANSHWQTHRQdFR0WHRcdGB0ZHXJ4BQBQAAAG9R9k6R8rArBwHsIAAWRyBQBFAAAGkx5iYxoFAEcAABaJH4ofZpIeE4MCoDAAABx2cHMbAqBwAAAd4mFlCQKhAAAAH3OgsAAAHzBhb0sDoEAAAB53oKAAAB64Y3F0BQBJAAAGch924R0 [...]
\ No newline at end of file
diff --git a/api/search.index/1ccbb166fc51.js b/api/search.index/1ccbb166fc51.js
deleted file mode 100644
index f82f94cd7..000000000
--- a/api/search.index/1ccbb166fc51.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAFCRsSRBVhHGRmGwKgcAAAHgNlbwECAbAgHZACOnU6MAAAAQAAAAAAEQAQAAAAqA+pD6oPqw+sD+IY7BjSGXIccxwFHQYdOR1tHZ8d3B1VH2MfGwKgAAAAHt9pcxUBQwAABpQfAi0fYnK5HaIeBQBBAAAUnR+eH218HyUARAAAAKkecwweDR7mHnMEBKCgAAAfuGZpc3YBjx8AABOCArAgGrYAAWlu+wNhb3I=")
\ No newline at end of file
diff --git a/api/search.index/1ce0f26d11e2.js b/api/search.index/1ce0f26d11e2.js
new file mode 100644
index 000000000..8cf36c5a1
--- /dev/null
+++ b/api/search.index/1ce0f26d11e2.js
@@ -0,0 +1 @@
+rn_("MUIAACYaJxooGikaCQJdyJhE3n6gIAAAElhudVsDoNAAAB/tbG11FQBIAAAG9R9kSBvFHxUASgAABgEgZNod6B8VAEoAAAYAIGTZHecf+wJhaQUBxAAABs0fA7wfb3QVAEYAAAbrH2QbGbQf7wOIoMAAAB4IsMAfjQABoLAAAB3KkXAJ")
\ No newline at end of file
diff --git a/api/search.index/1dc4e76d8056.js b/api/search.index/1dc4e76d8056.js
new file mode 100644
index 000000000..1233ac009
--- /dev/null
+++ b/api/search.index/1dc4e76d8056.js
@@ -0,0 +1 @@
+rn_("BQHAAAADPx8BlA9hbwUBwAAAAzQdEpYaVR1ydRUARAAABgIgZLof7h/zAgFiAZIfAAAbAqBAAAAdR2l0MUMAAHIdcx10HXUdFQBFAAAG6h9ksx/lH9MAhKDAAAAfTSCgAjowAAABAAAAAAAIABAAAABrEmwSQhVDFeEZ5hqyHQ4enh4bAqDgAAAftmV0FQBBAAAQlR2WHXMbHRwdEwICoDAAABudaW47MAAAAQAACgAFAIcSAADCGgAAeBwAANQdAwAmHgMAOwOwQB0ZADdlbHjrBKBQAAASjThpb3I=")
\ No newline at end of file
diff --git a/api/search.index/1e2c0f9f2883.js b/api/search.index/1e2c0f9f2883.js
deleted file mode 100644
index edd765e79..000000000
--- a/api/search.index/1e2c0f9f2883.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQFDAAAHXh8FLB9iZqUdwB8FAEYAAAVPH3KOHTFHAABRHfoe+x5fH/MDAmZsOzAAAAEAAAcAAgB9EgAAPBQGACUARQAABfgeYf8YsBmxGfsDYWZw")
\ No newline at end of file
diff --git a/api/search.index/1e32608070b6.js b/api/search.index/1e32608070b6.js
new file mode 100644
index 000000000..1680a31ef
--- /dev/null
+++ b/api/search.index/1e32608070b6.js
@@ -0,0 +1 @@
+rn_("BQBBAAAUrx2wHW1IHPMCAWnyMhsAAAEAFQBBAAAUNB81H23+Hv8e8wcBafXeHQAAOgABABUBcQAFAcQAAAFJHQqaH2lu+wNjb3A1AEMAAAFzH2keH4oflh/EHxOIAqAwAAAfH3N0MUAAALoPIxoEH10fBQHAAAAKER8HrR1haQUBwAAABYEcBkgdY2wVAEUAAAbqH2SzH+UfE4MDoMAAAB9NoDAAAB+SZm5zBQHAAAAXeh97Hwq2H3B0QwADsJAf0QABoHAAAB+maXBzAcsZAAAbAqCAAAAdUHJzAQCPoDAAAB4MsGAcRgABFh8/pU1rHsp7+FIca7hYtdJ1oGAAAByCoQAAAB9Oc+v/qRpzsIAdeAABF8PbClpJfF5NChreoOAAAB9nM++Gac0PoDAAABmtoDAAABKQ9fhHOzAAAAEAAEwAFgCsCwcAEQ4AAFwOJQBJFQEADhoAAGsaAAAUGwAAnhsAAE4cAAAGHgA [...]
\ No newline at end of file
diff --git a/api/search.index/1e5d1f78ce5f.js b/api/search.index/1e5d1f78ce5f.js
new file mode 100644
index 000000000..7f64c56c6
--- /dev/null
+++ b/api/search.index/1e5d1f78ce5f.js
@@ -0,0 +1 @@
+rn_("8UYAADgbORuoHt4e3x7gHuEe4h7jHuQe5R7rHu8e8B5gH78fBQBIAAAAmB5zYh0rArBAGpAAAW9yMwEDoGAAAB9DY2ZvOjAAAAEAAAAAAAcAEAAAACEOIg6pDnkaJBsrGywbOR8=")
\ No newline at end of file
diff --git a/api/search.index/1e6530050183.js b/api/search.index/1e6530050183.js
deleted file mode 100644
index aa5cc8a2a..000000000
--- a/api/search.index/1e6530050183.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBEAAAG8B9klx/eH0MAA6CAAAAfRbCQG5YA1mNlbDowAAABAAAAAAAQABAAAACpCaoJhAuFC4YLhwubDJwMFw6eDp8OoA7AD3kTxhkjHcMf")
\ No newline at end of file
diff --git a/api/search.index/1e7bf9242e8a.js b/api/search.index/1e7bf9242e8a.js
new file mode 100644
index 000000000..51f5a9191
--- /dev/null
+++ b/api/search.index/1e7bf9242e8a.js
@@ -0,0 +1 @@
+rn_("FQFDAAAF2B0Gtx90dwMe0R4FAUMAAAaoHQapHWJv7RgbAqDgAAAfDGFjKwKwMBOzCOhhZTFBAABBHEIcQxxEHAEBADswAAABAACLAAIAJQ4AAAkQigDzAAJldfQpDgAAUREBACsAAQEAOzAAAAEAANoAAgBgEgAAMhbZACsCoBAAAA+SaXWVAEEAAAQyGmabGZwZBRoGGgcaCBoJGiMbVB9VHwUARAAAEB0aHhpzmBkbAqAgAAAVMWJyBQBAAAAGCCBk/B/7AmRyBQHAAAA3sxu0G8QdDx4Lpx1ucjetAIygkAAAG5SxQB/RAAGgYAAAH76hEAAAH4sMHQj5aqtxuQc7MAAAAQAA3QAEALsJAQCSCwAAqAzZAAcQAAA=")
\ No newline at end of file
diff --git a/api/search.index/1e923dd8f673.js b/api/search.index/1e923dd8f673.js
new file mode 100644
index 000000000..2a567787c
--- /dev/null
+++ b/api/search.index/1e923dd8f673.js
@@ -0,0 +1 @@
+rn_("BQHDAAAK3R8N8h9ldCMGAqBgAAAfF2JwAaQbAADzBQFjAV4fAAAFAsEAAAJHFQJIFQMAGWttdAUBwAAADLAeCZgcY3P7AmVzBQHFAAAJGB8KPh9jZUsDoCAAABqroFAAABysYWVpBQHAAAAEpw8Ogh9vcgUCyAAAAsUdCYcfCqQfYWVzSwOgkAAAHJegwAAAHcRjbHPnGADJgANTDdBfoHAAABj/oOAAAB6voFAAABJ+QgegAzowAAABAAAAAAAHABAAAAAaABsAHAAdACEAbgFvAXQB")
\ No newline at end of file
diff --git a/api/search.index/1e99089755e8.js b/api/search.index/1e99089755e8.js
deleted file mode 100644
index fb663cd56..000000000
--- a/api/search.index/1e99089755e8.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUgAAEAd5R3mHTsfEwICoFAAAB9MZ3I7MAAAAQAAHQAJAMUPCgDwGAMAKBoBAF8cAAB7HAAAax0BAHQdBQDyHQEAMh8AAA==")
\ No newline at end of file
diff --git a/api/search.index/1ed17ad05f49.js b/api/search.index/1ed17ad05f49.js
deleted file mode 100644
index 6bff869b3..000000000
--- a/api/search.index/1ed17ad05f49.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUUAAG0bbhurHQUARgAABqwfZiYfBQBFAAAGQx9iSh0FAEAAAASzHmPdHfMCAnN3AVUdAAArAqBgAAAcj2FpRwUAh6CQAAAdS7BgH74AAaCAAAAedqAwAAAdDTQAFzswAAABAABZABQAsAsCAOUNAQCSDgAAjA8AAJkPAACfDwAAThIAAKATAAAbFCAAKBUAAOcYAAAPGgEAEhoBANUaAADYGiAAcxsAAF0cAQBfHQAA9x4AAIcfAAA=")
\ No newline at end of file
diff --git a/api/search.index/1f225ef5c267.js b/api/search.index/1f225ef5c267.js
new file mode 100644
index 000000000..3aa92d116
--- /dev/null
+++ b/api/search.index/1f225ef5c267.js
@@ -0,0 +1 @@
+rn_("MUoAAL8ewB7BHsIeFQBFAAAR3R0tH2lFHJceGwKwkB71AAFlaQUCRgAAESoesh8G1h8I5B9pc3S3HBUAQQAAFJ8eoB5tdh13HRMEAqAgAAAd3Gly90wbAAABAEwBAQAwATQAPAH7AmNuMUUAAEEcQhxDHEQcBQHDAAAzch1zHXQddR0FRx1wc/MAxQAIgBnyVw4AAG0LBQBBAAA0Mx/PH9Af8B9suR/7AmN0")
\ No newline at end of file
diff --git a/api/search.index/1f8a55cbc44b.js b/api/search.index/1f8a55cbc44b.js
deleted file mode 100644
index a78441634..000000000
--- a/api/search.index/1f8a55cbc44b.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQEAOzAAAAEAANcAAQBIFdcAMUIAAKEbohuxHf0d+wJvdfMAAW07MAAAAQAA4AAEAHcBAAB/CQAAuAvdALoPAAA=")
\ No newline at end of file
diff --git a/api/search.index/20896d2cf9d8.js b/api/search.index/20896d2cf9d8.js
deleted file mode 100644
index ba3345481..000000000
--- a/api/search.index/20896d2cf9d8.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBFAAAGkx5iYxoFAEcAABaJH4ofZpIeE4MCoDAAABx2cHMbAqBwAAAd4mFlCQKhAAAAH3OgsAAAHzBhb0sDoEAAAB53oKAAAB64Y3F0BQBJAAAGch924R0JAmZTiaJmc6BgAAAeg2FvFx4AiaCQAAAd4KAAAAALVqDwAAAfZKFAAAAfnByRFgGGDgAA")
\ No newline at end of file
diff --git a/api/search.index/20be50f53c9d.js b/api/search.index/20be50f53c9d.js
deleted file mode 100644
index cc9610eff..000000000
--- a/api/search.index/20be50f53c9d.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHBAAAI8R0DxR1hdDFAAABrC4ESjBJbHAUAUgAABu8fZNsfBQBUAAAG8B9k3h/zhAJwdAUAUQAABuofZMsfBQBYAAAG9R9k6R8FAEgAAAbiH2SyHwUASgAABu4fZNUfBQBKAAAG7R9k1B/7AmFpBQBGAAAG2B9koR/ziQNlbW4FAFIAAAbzH2ThHwUATwAABuwfZNMf84cCY3AFAEgAAAaNH2QCHgUASQAABtcfZKAfE4QDoMAAAB+xoIAAAB+MZnBzGwKhQAAAH9JmbAUAWgAABvQfZOQf+wJhZadnAMtjjXctJ2ugwAAAHyigwAAAHymgMAAAGmsAG6QdAfcdAAAFAcEAAAS7HwXGH3Fz8wIBcjswAAABAAAiAA0AtRgNAHcaAwAcGwAAbxsBAJMbAABlHAAAfxwDAJAcAAAmHQEAhR0BAAMeAADnHgAAOB8AAPsCaXkFAEQAABBEGkUac7MZBQHBAAASZBKOEwF [...]
\ No newline at end of file
diff --git a/api/search.index/20d3135ceb0a.js b/api/search.index/20d3135ceb0a.js
new file mode 100644
index 000000000..01f60eb7a
--- /dev/null
+++ b/api/search.index/20d3135ceb0a.js
@@ -0,0 +1 @@
+rn_("FQBIAAAEQR9lxx3IHSOCA7BgHE4CjqBAAAAbI2RpcvMAAWk7MAAAAQAAZQEEAKwG2ACkCAAAbxoAALUbigAFAcAAABexHe8dA60dZXAVAEsAAARBH2XHHcgd8wEBaTswAAABAACLAAIAbxoAALUbigAVAUAAAAldHQW+HWN3JBolGvsCZ2kFAEUAAAbsHmImGwUBwQAAAicbAiUbYnTzAAF09G0SAAAkAQEADQc1A0IAACSOHo8eZB8a3x/gHxW7Hc8eBbwdY2tyd+IZ4xnUGtUaKwKgQAAAHFdlaQUBRAAAD/AfEoocixxjcnYaBQHAAAAjZBtlG50eCRIeYW+3DAOIsDAZ4QS9oHAAAByMoDAAABrWNJgS9aMPAAABADkAEwrjALUBQAAAFLAfsR8A8x9tc+QY5RiaGpsaYhtjG3IceRyCHd0dLR+PH/uFKGAE")
\ No newline at end of file
diff --git a/api/search.index/2124af25d085.js b/api/search.index/2124af25d085.js
deleted file mode 100644
index f6c534c7c..000000000
--- a/api/search.index/2124af25d085.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHBAAACmRoFmhxhZQUBwQAAApgaBZkcYWVrA6AAAAAPpjEyMwEBAbBAHo8AVWU6MAAAAQAAAAAAOQAQAAAAHg4fDiAOIQ4iDiMOJA4lDiYOJw4oDikOKg4rDiwOLQ4uDi8OMA4xDjIOMw40DjUO2hn9Gf4Z/xlhGnQaCxsMG2MbZBuHG4ocjhw9HT8dTx2WHaQdsB32HQoekx6VHpcemB6gHtUe2R71HgQfHB9DH5QfsB+TAASgUAAAH0agYAAAGpdlcnV2OzAAAAEAABYAAQC2CRYA")
\ No newline at end of file
diff --git a/api/search.index/21408ebbdcdc.js b/api/search.index/21408ebbdcdc.js
new file mode 100644
index 000000000..3ff173042
--- /dev/null
+++ b/api/search.index/21408ebbdcdc.js
@@ -0,0 +1 @@
+rn_("BQBFAAAFYh9yoB0VAEMAAAb1H2RIG8Uf+wJlaTFHAABjHQ0fDh9yH/UARgAACb4fcnQaWxtcG10bXhtfG2AbYRtlHbUeth63HrgeMR8yHzsfBQHAAAABaBICSh1leWMAA7BgHuYBBGR0dvd/GQAAAQABAJ4BmQH7AjIABQBLAAAYwR/CH3eUHvsCbHRzAISgMAAAFTwhSAA7MAAAAQAABwACAIwSAABMFAYA")
\ No newline at end of file
diff --git a/api/search.index/21989a0d3a51.js b/api/search.index/21989a0d3a51.js
new file mode 100644
index 000000000..5086fd2ec
--- /dev/null
+++ b/api/search.index/21989a0d3a51.js
@@ -0,0 +1 @@
+rn_("BQHIAAAHdh8DZx9lcFUAQAAABV4dZaUOCBk0GzUbWh1bHQUBwAAAErsdzx7QuQvvDfANYxK6GrsavBq9Gr4avxq0HbUdDB9wH2RtvwCFoDAAABptsGAdXwABYQAG")
\ No newline at end of file
diff --git a/api/search.index/21b64726cb84.js b/api/search.index/21b64726cb84.js
new file mode 100644
index 000000000..2788f7c6b
--- /dev/null
+++ b/api/search.index/21b64726cb84.js
@@ -0,0 +1 @@
+rn_("FQBGAAAG4h9k2x2eHzUAQAAAE/YZ9xlp2hrbGiIdIx0FAEMAAAD1GXNEH2MAA7AQG2IAAWluc/NYEgAAHAlXBBUARAAABgMgZKof8R8jAwKggAAAH1hjbPcjDgAAhwABAAEALAtdA6ECBQLCAAACxR0Jhx8KpB9hZXMrAqAQAAAacGlvKwKgYAAAHEBlctUAQgAABOEfZmMcZBxlHGYcZxxoHGkckR7HHswe0B6JHwQgBSBnBwCIsHAcbwABoHAAAByJoRAAAB+3EzEF9pQJAADeAM8RAQABAAEA")
\ No newline at end of file
diff --git a/api/search.index/222b058a5b4a.js b/api/search.index/222b058a5b4a.js
new file mode 100644
index 000000000..9286a1379
--- /dev/null
+++ b/api/search.index/222b058a5b4a.js
@@ -0,0 +1 @@
+rn_("FQFJAAAHcR8FPx9iZrcd0x81AUIAABfLHoAfAIYZZnOpGKoYqxisGAUARQAABuweYiYbBQHBAAACJxsCJRtidPMAAXT0bRIAACQBAQANBzUDQgAAJI4ejx5kHxrfH+AfFbsdzx4FvB1ja3J34hnjGdQa1RorAqBAAAAcV2VpBQFEAAAP8B8SihyLHGNydhoFAcAAACNkG2UbnR4JEh5hb7cMAoiwMBnhBL2gcAAAHIygMAAAGtY0mBL1ow8AAAEAOQATCuMA+wNlaXQ=")
\ No newline at end of file
diff --git a/api/search.index/224ffa6be8fd.js b/api/search.index/224ffa6be8fd.js
new file mode 100644
index 000000000..b2e3d1ada
--- /dev/null
+++ b/api/search.index/224ffa6be8fd.js
@@ -0,0 +1 @@
+rn_("BQHBAAAEzh8F2R9xc/MBAXI7MAAAAQAAIgANAMgYDQCJGgMALhsAAIEbAQClGwAAdxwAAJEcAwCiHAAAOB0BAJcdAQAVHgAA+h4AAEsfAAA=")
\ No newline at end of file
diff --git a/api/search.index/22923dc31d75.js b/api/search.index/22923dc31d75.js
new file mode 100644
index 000000000..366168312
--- /dev/null
+++ b/api/search.index/22923dc31d75.js
@@ -0,0 +1 @@
+rn_("BQBFAAAGpR5idRoFAEcAABacH50fZqQeE4MCoDAAAByIcHMbAqBwAAAd9WFlCQKhAAAAH4agsAAAH0Nhb0sDoEAAAB6JoKAAAB7KY3F0BQBJAAAGhR929B0JAm5wAc1BYKBgAAAelWFvFw8AiKCQAAAd86DwAAAfd6FAAAAfrwyRFgGSDgAAIwACoEAAAB/hZmc6MAAAAQAAAAAADQAQAAAAYxxkHGUcZhxnHGgcaRyRHscezB7QHokfBCAFIA==")
\ No newline at end of file
diff --git a/api/search.index/22b7a29c11e4.js b/api/search.index/22b7a29c11e4.js
new file mode 100644
index 000000000..6159f9e7f
--- /dev/null
+++ b/api/search.index/22b7a29c11e4.js
@@ -0,0 +1 @@
+rn_("MUgAAFId9x34HU4fEwICoFAAAB9fZ3I7MAAAAQAAHQAJANIPCgADGQMAOhoBAHEcAACNHAAAfR0BAIYdBQAEHgEARR8AAA==")
\ No newline at end of file
diff --git a/api/search.index/233f8e27b424.js b/api/search.index/233f8e27b424.js
deleted file mode 100644
index 97afbc098..000000000
--- a/api/search.index/233f8e27b424.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("cUAAAKcYPhw/HEAcQRxCHEMcRBwFAcEAAAT9HhVEHdcecXMFAcsAAAS7HwXGH3FzYUUAABMdFB0VHRYdFx0YHRkdJwcCh6DAAAAfAbBAGxYAAaBwAAAdQxGhAzswAAABAAAkAAgAYRIBAIMTAwC6GgYAPhsGAJ4cBgAqHQYAXB0AAGYdAQAbAqAwAAAfWGFl")
\ No newline at end of file
diff --git a/api/search.index/2393dbd161e8.js b/api/search.index/2393dbd161e8.js
deleted file mode 100644
index affbb08c4..000000000
--- a/api/search.index/2393dbd161e8.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("UUEAAJkdmh2vHZoe/R67H9UARwAABM4fZlEcUhxTHFQcVRxWHFccfx61HroevR52H/Ef8h8bAqBgAAAd3mN0+wJucw==")
\ No newline at end of file
diff --git a/api/search.index/23eba8adaa8e.js b/api/search.index/23eba8adaa8e.js
deleted file mode 100644
index 6039859b2..000000000
--- a/api/search.index/23eba8adaa8e.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAADWRsMTR9wdAUBwAAAA0kcBXwdbXQrArBwHoAAAWFlhwKDh6DQAAAfpaDgAAAff6AQAAAZiKEAAAAftqDAAAAfMiyQBg==")
\ No newline at end of file
diff --git a/api/search.index/2403557676f5.js b/api/search.index/2403557676f5.js
deleted file mode 100644
index 4b04bf5e0..000000000
--- a/api/search.index/2403557676f5.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQADoEAAAB9JsEAdrQABoAAAABoqZm1zOzAAAAEAABoADACHEgAAFRQAALMYAACeGQ4AAxsAAAUbAAAQGwAAWB0AAOcdAAAYHgAAnx8AANkfAQA=")
\ No newline at end of file
diff --git a/api/search.index/2415ec44ab68.js b/api/search.index/2415ec44ab68.js
deleted file mode 100644
index dff91c811..000000000
--- a/api/search.index/2415ec44ab68.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBBAAAUnR2eHW02HPMCAWnyIBsAAAEAFQBBAAAUIR8iH23rHuwe8wcBafXLHQAAOwABABQBcQAFAcQAAAE3HQqHH2lu+wNjb3A1AEMAAAFgH2kLH3cfgx+xHxOIAqAwAAAfDHN0BQHAAAAK/h4Hmx1haQUBwAAABW8cBjYdY2wVAEUAAAbXH2SgH9IfE4MDoMAAAB86oDAAAB9/Zm5zZyoAirBgHDQAAaBgAAAccKEAAAAfO7CAHWYAAaDgAAAfVOS4AzswAAABAAA+ABAABQ4AAFAOJQD8GQAAWRoAAAIbAAA8HAAA9B0AAMkeAADTHgAAjR8AAM8fAADXHwEA4h8AAOUfAQDqHwYA8x8CAA==")
\ No newline at end of file
diff --git a/api/search.index/24226a57bafd.js b/api/search.index/24226a57bafd.js
new file mode 100644
index 000000000..e06c10753
--- /dev/null
+++ b/api/search.index/24226a57bafd.js
@@ -0,0 +1 @@
+rn_("BQBCAAAAbRxzpBgFAcAAAAXiHQbGHmZuZQBDAAAFnhtysxi0GLUYthi3GLgYuRifAoagIAAAEmGgcAAAHyaw8B8NAAERQUE=")
\ No newline at end of file
diff --git a/api/search.index/24d91c83f83b.js b/api/search.index/24d91c83f83b.js
new file mode 100644
index 000000000..8bf9a7381
--- /dev/null
+++ b/api/search.index/24d91c83f83b.js
@@ -0,0 +1 @@
+rn_("AYMCoNAAAB+4oQAAAB/JY3AFAEgAAAerH3MCHvMBAmZ3864OAAABAAEABQBAAAAJlRtmqgQlAEIAAA7AH2PGGscaFh17hKAgAAAejRVAAA==")
\ No newline at end of file
diff --git a/api/search.index/24f99a2d5b70.js b/api/search.index/24f99a2d5b70.js
deleted file mode 100644
index a2bd0c2b5..000000000
--- a/api/search.index/24f99a2d5b70.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBBAAAG6x9k0B8TiAKgQAAAH6ptbwUBQAAABksfAXoeM3HuHhUARAAAA/gdbIQbAB8xSAAAcR91H4gfkB8xQgAAkR6fHtYe4B4FAcAAAAzfHw3AH2FoDweHoIAAAB+SoIAAAB+boVAAAB/ooKAAAB/KHgAc84ECcHYrAqAgAAAfVG9yBQHAAAACph0UXBoRH2lvBQHBAAAM/B4DNRttboFGAAALGwwbPx1PHaQdsB32HZUeBB83VACMsHAfVQAOoDAAAB62oCAAAB55sBAcZAM3oEAAABqaoDAAAB63oIAAAB8/1qkTOjAAAAEAAAAAABcAEAAAAP4N/w03DjgOOQ46DjsOPA49Dj4OPw5ADi4VPBXgGOYY6xgNGmUaZhqSGzQcNRwgHXUARQAABUwfcnscdB11HXYddx14HXkd8x37AmNnBQBDAAAG9R9k6R/zAAFvAcYYAAD7A2xvcg==")
\ No newline at end of file
diff --git a/api/search.index/25edf200eb21.js b/api/search.index/25edf200eb21.js
deleted file mode 100644
index bb0e7e74c..000000000
--- a/api/search.index/25edf200eb21.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAHBh0DcBxlcAUARQAABzkfc3wdKwKgMAAAHEltdAGFA6BAAAAei6FAAAAf3aCAAAAfUWNlbBsDoKAAAB7KsGAegAABbnN08wADYWVzAecfAAA=")
\ No newline at end of file
diff --git a/api/search.index/25f67872ebcb.js b/api/search.index/25f67872ebcb.js
new file mode 100644
index 000000000..c552f1c0c
--- /dev/null
+++ b/api/search.index/25f67872ebcb.js
@@ -0,0 +1 @@
+rn_("BQFDAAAJEh8VtB21HWRz2xkhRgAAARkCGTMaowCEoGAAABygsFAVSQABAhAFOzAAAAEAAAwAAwCLCAoAiRIAAIgcAAA=")
\ No newline at end of file
diff --git a/api/search.index/260f6a984bb1.js b/api/search.index/260f6a984bb1.js
new file mode 100644
index 000000000..b908b984e
--- /dev/null
+++ b/api/search.index/260f6a984bb1.js
@@ -0,0 +1 @@
+rn_("BQHAAAA1sx4wH5wfnR8Mph9hafMEAWb0lxoAAA0E4gApADFGAAClGzgdOR1LH/OBAnB2FQBBAAAEAB9m1x/YH7UAQgAABCAfZncTeBN5E3oTThtPG3Idcx10HXUd2x/cH/sDYW9y")
\ No newline at end of file
diff --git a/api/search.index/26b39dfed39a.js b/api/search.index/26b39dfed39a.js
new file mode 100644
index 000000000..63c6b84fd
--- /dev/null
+++ b/api/search.index/26b39dfed39a.js
@@ -0,0 +1 @@
+rn_("ZQBEAAAGrB5ydxt4G3kbeht7G3wbfRsjgwKgYAAAHTJjdCUAQQAAA5IbbtANfhJtGgUBwAAAAYYODXcfZXQFAcAAAAtTHQPKHmF03wGFsAAcdgM4DGAC")
\ No newline at end of file
diff --git a/api/search.index/26c7e3f7c3db.js b/api/search.index/26c7e3f7c3db.js
new file mode 100644
index 000000000..bc6b5d6ba
--- /dev/null
+++ b/api/search.index/26c7e3f7c3db.js
@@ -0,0 +1 @@
+rn_("cUAAALoYUBxRHFIcUxxUHFUcVhwFAcEAAAQQHxVWHeoecXMFAcsAAATOHwXZH3FzYUUAACUdJh0nHSgdKR0qHSsdJwcAh6DAAAAfFLBAGygAAaBwAAAdVRGhAzswAAABAAAkAAgAcBIBAJMTAwDMGgYAUBsGALAcBgA8HQYAbh0AAHgdAQA=")
\ No newline at end of file
diff --git a/api/search.index/26ca913496d8.js b/api/search.index/26ca913496d8.js
new file mode 100644
index 000000000..014603860
--- /dev/null
+++ b/api/search.index/26ca913496d8.js
@@ -0,0 +1 @@
+rn_("BQLAAAAFBx8OdB8YLh43H2VpbUUAQwAAA+0eaYoS3RjeGN8YVB0FAcMAAArdHw3yH2V0IwQCoGAAAB8XYnABpBsAABUAQAAABqAcYokSiBzzgQJudBMAA6BgAAAfq6BwAAAduWNucjswAAABAAAHAAIAkRkGAF4fAAAFAcAAAAQLHgKeG3B1BQHBAAAyqx2sHcIdrB4WnhyfHGVpY4EDoOAAAB9wY3FzBQHAAAA1sx4wH5wfnR8Mph9hafMEAWb0lxoAAA0E4gApADFGAAClGzgdOR1LH/OCAnB2BQHEAAARsh4vHwVZH2VyEwcCoCAAABydYnLzlBoAAAEA9gAFAsAAABnDHj4fCw0eZD8aQBpBGkIaQxpEGkUaY254lQFAAAACSRwmoB/rHwcgYWSoGBsZFB6YH5kftB/KH9Ef0h/3HyFGAACSGpMaih4FAcAAABMKGQsZNyweLR4YHzYfbW5rA6AwAAAawWFvcgU [...]
\ No newline at end of file
diff --git a/api/search.index/26f914102ee9.js b/api/search.index/26f914102ee9.js
new file mode 100644
index 000000000..26c9fe937
--- /dev/null
+++ b/api/search.index/26f914102ee9.js
@@ -0,0 +1 @@
+rn_("BQHAAAAHoh8B8h5hbwUBxAAAAtwfAdgfYW8jhQKgAAAAH2xkZgUBxAAABs0fA7wfb3QbAqDgAAAf7WhvNwGGh6AwAAAfFqGAAAAgBaBAAAAfVaBQAAAfbSyIAwUBwAAAB6EfAfEeYW8FAcQAAALbHwHXH2FvI4UCoAAAAB9qZGYFAcQAAAbMHwO7H290GwKg4AAAH+xobzcBhoegMAAAHxWhgAAAIASgQAAAH1SgUAAAH2ssiAM7A6CQAAAeFWNmcA==")
\ No newline at end of file
diff --git a/api/search.index/271f232a5db5.js b/api/search.index/271f232a5db5.js
deleted file mode 100644
index b7a38f4d5..000000000
--- a/api/search.index/271f232a5db5.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBAAAA0IB+8H70f3R9sph8FAEIAAALjH23WHyOFAqCAAAAf52FrBQBFAAA0IB+8H70f3R9sph/7AnJzMUMAAFEd+h77Hl8fBQBAAAADsh5pyB4jAgKgEAAAHWhpczowAAABAAAAAAAIABAAAABFG0YbRxtqHGscuB0EHgUe8x4hhwKggAAAH+cGYWtjAoSgoAAAH9ygYAAAHToFFADzjxcAAAEAiQcVAEIAAAcOH23EGbEaQ4GEoDAAABw4oIAAAB2goJAAAB38AkUAMwMDoWAAAB/NZWlt8ngOAAABAGUAQAAABuwfZG0cbhxdHV4dfR9+H9Mf8wEBYwGRDQAAGwKgMAAAGb1kbRUARgAABu4fZMcd1R8jAAKgcAAAHoRzdfWJCwAAAQDsAQQGagUFAcQAAAZZHQHgGWJv1QBFAAAEzh9mURxSHFMcVBxVHFYcVxx/HrUeuh69HnYf8R/yH8MAhLCAHsIAAaAgAAA [...]
\ No newline at end of file
diff --git a/api/search.index/272b621af905.js b/api/search.index/272b621af905.js
new file mode 100644
index 000000000..864500b68
--- /dev/null
+++ b/api/search.index/272b621af905.js
@@ -0,0 +1 @@
+rn_("IUMAAGkdKx7FHgUBwwAACt0fDfIfZXQjBAKgYAAAHxdicAGkGwAABQFDAAAJEh8VtB21HWRz2xkjAAKgYAAAHKBidPKJEgAA/wn7Am50WwOgUAAAH4FhZW8=")
\ No newline at end of file
diff --git a/api/search.index/276175a8791f.js b/api/search.index/276175a8791f.js
new file mode 100644
index 000000000..30a7b2b8c
--- /dev/null
+++ b/api/search.index/276175a8791f.js
@@ -0,0 +1 @@
+rn_("tQFCAAAEbR0D7R5maYoSexPdGN4Y3xgAGYEaghpUHWwdux+8HxUARAAABqkeYn4abBsrAqAgAAAda2VyFQFAAAAZNBs1GyiNGo4agxtudOIa4xo1AEUAABb4H/kfZFofWx/UH9UfBQBBAAAG/h9k4x8TgwKgQAAAH71tb2sDsDATsgfdYXR3FQBBAAAG4h9k2x2eH0FBAACdDgEZAhkzGmMf+wJjZQkCoAAAAA6loQAAAB92ZnPrhKDgAAAfchEBQFFIAACJGooaixqMGoEbghsFAcgAACgZHxofYR8Kqh90dfsCYXIBBQA7MAAAAQAAiwACAG8aAAC1G4oAMUIAAFwcXRweHTEdRwIAhqCAAAAeA6AwAAAfqaBgAAAfi6AwAAAd2AEODAFXEgAAYUgAAMwazRrOGs8a0BrRGtIaBQBEAAABAx9p7h3zBgFm8gwaAACTARsCoLAAAB3vZWlRRwAAAxkEGQUZBhk6Gjs [...]
\ No newline at end of file
diff --git a/api/search.index/27747faebf4d.js b/api/search.index/27747faebf4d.js
new file mode 100644
index 000000000..045bd05b8
--- /dev/null
+++ b/api/search.index/27747faebf4d.js
@@ -0,0 +1 @@
+rn_("ZQBEAAAHuR1ykRmSGZMZlBmVGZYZlxkbAqAgAAAPomF5AQAAOzAAAAEAABgABQCeDQgAPxoGACUdBgDGHQAAFB8AAAUAQwAABv0fZN4f8wIBc/KQDgAAAQAFAcgAAAfqHmBQHFEcUhxTHFQcVRxWHHJzBQBAAAAExR5j8B3zAwFzAWcdAAATAQKggAAAHohmcgGZDwAABQHAAAASNxs9HxlGH9ofaW8TAAOwMBxqAw6wMBxrAAFmaXA6MAAAAQAAAAAADgAQAAAA3BiNGo4agxuVHJYcmR2hHdQeGR8aH2Efbh9vH6gfKwKgMAAAG4dmc/sCY25lAEQAAAasHnJ3G3gbeRt6G3sbfBt9GysCoGAAAB0yY3TFAEUAABbNHs4ecBwazh3PHdAd0R3SHdMdIB4hHiIeIx4kHiUe+wJsciFEAACOHo8eZB+3NgCLoIAAABudsKAf3wABsFAduwEUoFAAAB28NGUXOjAAAAE [...]
\ No newline at end of file
diff --git a/api/search.index/27b2c2bf4611.js b/api/search.index/27b2c2bf4611.js
deleted file mode 100644
index c563f3aa4..000000000
--- a/api/search.index/27b2c2bf4611.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQIBoHAAAByPZjswAAABAABCAAMAnw8AABsUIADYGiAAGwKgYAAAG3ppdSMAA6AwAAAZfKBAAAAfYWFyc/ItGwAAyAI=")
\ No newline at end of file
diff --git a/api/search.index/280c65b14131.js b/api/search.index/280c65b14131.js
deleted file mode 100644
index ee6d9e6df..000000000
--- a/api/search.index/280c65b14131.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAFdBwERB9jcwUAQgAAAuMfbdYfI4cCoIAAAB/nYWsjDgKgoAAAH9xhYwEZHwAAS4QcGNSYlkWgQAAAG5WgUAAAHE4YAANrA6AAAAAdnDFlaQ==")
\ No newline at end of file
diff --git a/api/search.index/28666dbdcb67.js b/api/search.index/28666dbdcb67.js
deleted file mode 100644
index 67f098c82..000000000
--- a/api/search.index/28666dbdcb67.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBBAAAUnR2eHW02HPMCAWnyIBsAAAEAFQBBAAAUIR8iH23rHuwe8wcBafXLHQAAOwABABQBcQAFAcQAAAE3HQqHH2lu+wNjb3A1AEMAAAFgH2kLH3cfgx+xHxOIAqAwAAAfDHN0BQHAAAAK/h4Hmx1haQUBwAAABW8cBjYdY2wVAEUAAAbXH2SgH9IfE4MDoMAAAB86oDAAAB9/Zm5zZyoAi7BgHDQAAaBgAAAccKEAAAAfO7CAHWYAAaDgAAAfVKAwAAAZm+S4BzswAAABAABMABYAogsHAAUOAABQDiUAOBUBAPwZAABZGgAAAhsAAIwbAAA8HAAA9B0AAMkeAADTHgAARh8AAEwfAABPHwAAjR8AAM8fAADXHwEA4h8AAOUfAQDqHwYA8x8CAEUCQAAABg4dFGMSrhgafR1+HWFvdpoLDg6KDn0ZnBolAEAAAAUdG2ObD/IP8w8hQQAAQB+AH4EfBQBAAAAOeR9 [...]
\ No newline at end of file
diff --git a/api/search.index/2885200c7519.js b/api/search.index/2885200c7519.js
deleted file mode 100644
index 82a42b2ee..000000000
--- a/api/search.index/2885200c7519.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHBAAAEux8Fxh9xc/MBAXI7MAAAAQAAIgANALUYDQB3GgMAHBsAAG8bAQCTGwAAZRwAAH8cAwCQHAAAJh0BAIUdAQADHgAA5x4AADgfAAA=")
\ No newline at end of file
diff --git a/api/search.index/28bf33f143ed.js b/api/search.index/28bf33f143ed.js
new file mode 100644
index 000000000..35634227a
--- /dev/null
+++ b/api/search.index/28bf33f143ed.js
@@ -0,0 +1 @@
+rn_("UUMAADIVMxU0FTUVFxkYGQUBwAAAAfMfC10dZG4FAEoAABSwH7EfbY8fFQBGAAAUUB9RH20lH6wfM4EDoNAAAB+JZnBz+wNlaXUxQwAALB4tHhgfNh9jAAOwoB0bAAFobG46MAAAAQAAAAAAEwAQAAAAhg2HDYgNiQ2KDYsNjA2NDY4Njw2dD6cPahJ0Eu4YkBqRGi8bRxuDHw==")
\ No newline at end of file
diff --git a/api/search.index/295c89a13310.js b/api/search.index/295c89a13310.js
deleted file mode 100644
index 7a3337801..000000000
--- a/api/search.index/295c89a13310.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUEAAJkeFR8WHwUBwAAAELMYEBsBtBhkbwGBAqDQAAAfgqEwAAAfuGFwpwEDhqBQAAAbYrBwHYMAAaDAAAAfFDRBEPWUDgAAAQCxCzAB/wA=")
\ No newline at end of file
diff --git a/api/search.index/29b5f8fb95b4.js b/api/search.index/29b5f8fb95b4.js
new file mode 100644
index 000000000..039d65d2c
--- /dev/null
+++ b/api/search.index/29b5f8fb95b4.js
@@ -0,0 +1 @@
+rn_("FQBFAAAGqR5ifhpsGwUASAAABvUfZMUfBQBKAAAGASBk6B8FAEoAAAYAIGTnH/sCYWkFAEYAAAbrH2S0H/OCA2VtbpMAhKBAAAAZ5aBwAAAbnxQQEAEbDgAA")
\ No newline at end of file
diff --git a/api/search.index/29bc92080054.js b/api/search.index/29bc92080054.js
deleted file mode 100644
index 8d40b2232..000000000
--- a/api/search.index/29bc92080054.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHEAAARoB4cHwVGH2VyEwUCoCAAAByLYnL2xxkAAAEAugABADUAwQAhRQAA/h3/HVYfEwGEoEAAABqwsGAeuwABgBofNsABJIACOzAAAAEAABAABgAKGgAARhwAAIwcAQBxHQAAux0FAA4eBQD7Am50")
\ No newline at end of file
diff --git a/api/search.index/29eae9e23ccf.js b/api/search.index/29eae9e23ccf.js
new file mode 100644
index 000000000..2e537811c
--- /dev/null
+++ b/api/search.index/29eae9e23ccf.js
@@ -0,0 +1 @@
+rn_("FQFIAAAHcR8FPx9iZrcd0x8xSgAA1B3VHdYd1x0FAcIAAFKgGqEaohqjGqQapRpUrRuuG68bsBuxG7Iba3ZRSgAAzh3PHdAd0R3SHdMd44GEsEAZFQABIBgCWwOgMAAAD5xlb3Q=")
\ No newline at end of file
diff --git a/api/search.index/29efc5117ff9.js b/api/search.index/29efc5117ff9.js
new file mode 100644
index 000000000..389a0e657
--- /dev/null
+++ b/api/search.index/29efc5117ff9.js
@@ -0,0 +1 @@
+rn_("wUEAAKAP3BnfGYkcTR1OHVIdWB33HfgdDR5NH04fNQBCAAAEdx90cxKeE0cfSB8FBEAAABPdGd4ZF+wd7R0SChoLGhd9HX4dBDEdZGZrbHTGD/sDZWlv")
\ No newline at end of file
diff --git a/api/search.index/2a08630e7821.js b/api/search.index/2a08630e7821.js
deleted file mode 100644
index 51d6c2a7b..000000000
--- a/api/search.index/2a08630e7821.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBGAAABZxxp6B0FAcQAAAj2HgcyH2JsgUwAAMsezB7NHs4ezx7QHtEe0h5NHwUBwAAAM1UaVhpXGlgaAlkbZWwFAcAAAAZmHAO6GXJ1zwHFoQAAAB9vsGAbfgABBAEwAmFFAABOGk8aUBpRGlIaUxpUGgGBArFAH74AAbDwH4UAAWdzBQHAAAAApB8GfRtldAUBwwAADG4fD6YfY2b7hBFACAUBwAAAB5EdB5IdY20TgQKggAAAHZN3eAUARQAABzkfc3wdKwKgMAAAHEltdAGFA6BAAAAei6FAAAAf3aCAAAAfUWNlbBsDoKAAAB7KsGAegAABbnN08wACYWUB5x8AAAkCoQAAAB9toMAAAB7JZG4FAcAAAAYxHQK5GWV0KwKwMBm3AAFlbBsCoAAAABmIaXMFAcEAAAvIHgiQHWNkAQICsTAfvAABoHAAAB3zZmwBORsAABsDoNAAAB9/oBAAABJFYWVvBQHAAAA [...]
\ No newline at end of file
diff --git a/api/search.index/2a90b742bf5f.js b/api/search.index/2a90b742bf5f.js
new file mode 100644
index 000000000..542934a04
--- /dev/null
+++ b/api/search.index/2a90b742bf5f.js
@@ -0,0 +1 @@
+rn_("AQIBoDAAABrpajswAAABAADZAAIAJw4AAHoR2AABAAGAGgIAEAFzOjAAAAEAAAAAABIAEAAAALgNuQ19GX4ZNBo1GpwanRqeGg8bhBtKHJccNh1FHVcdeh3SHu8fawOg0AAAHpVjZG4=")
\ No newline at end of file
diff --git a/api/search.index/2aeb196a122e.js b/api/search.index/2aeb196a122e.js
deleted file mode 100644
index 2a3416bb5..000000000
--- a/api/search.index/2aeb196a122e.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("NQBCAAAW5R/mH2RHH0gfwR/CHwUBwQAAAeYZApwaYXUrBKBQAAAY5LCQHR0CXKBAAAAY3GJzdHa1AUAAABSNHo4eAMQYbXOcD6UTphOnE6gTqROqE34bfxs3HWQdZR3fAMWgIAAAHaygkAAAGmkAAgoK")
\ No newline at end of file
diff --git a/api/search.index/2b01cf50257a.js b/api/search.index/2b01cf50257a.js
deleted file mode 100644
index 72d0b320a..000000000
--- a/api/search.index/2b01cf50257a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBRAAAG9B9k5B8xRAAAyhrLGoYcNB0FAEIAAAbzH2ThH/MAAW0BRBIAAAUBwAAAESkbKhsIqx9lb3FBAADRGNIYiBqJGmAcZxzKHRofBQBKAAAG6h9kyx8hRAAAiBuJHu8eZQBEAAAG7B9kbRxuHF0dXh19H34f0x9n8wCMoDAAABr9oMAAAB+3oCAAABsosDAdiAIJtikXOjAAAAEAAAAAACoAEAAAABQO8A+VE+MYABkCGQoZCxlJGkoaYhp2GgYbBxtJG0obSxtMG00bThtPG5YbMxxsHEEdUx2THeAd6B2FHqMepB6lHqYe4h7jHuoe9B4KHx4fHx8oH3If")
\ No newline at end of file
diff --git a/api/search.index/2b2a3c799736.js b/api/search.index/2b2a3c799736.js
deleted file mode 100644
index 48f06a898..000000000
--- a/api/search.index/2b2a3c799736.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQYAOzAAAAEAACAAAQDYGiAABQBBAAAG6x9k0B8TggKgQAAAH6ptbwEAAqBgAAAf76AwAAAW+WRyOjAAAAEAAAAAABgAEAAAAIcJiAmkD6UP+w9xEx8bexubHAsd0B3RHdId0x3UHdUd1h2oHuge6R4JH2Ifbh+nH9sfSwOwIA39ADmgUAAAHDpicnN7hKDwAAAe+BBBAQ==")
\ No newline at end of file
diff --git a/api/search.index/2b9046c761ea.js b/api/search.index/2b9046c761ea.js
new file mode 100644
index 000000000..b33c14d8d
--- /dev/null
+++ b/api/search.index/2b9046c761ea.js
@@ -0,0 +1 @@
+rn_("FQBFAAAGqR5ifhpsGwUASAAABvUfZMUfBQBKAAAGASBk6B8FAEoAAAYAIGTnH/sCYWkFAEYAAAbrH2S0H/OCA2VtbpMAhKBAAAAZ5aBwAAAbnxQQEAEbDgAAFQBAAABQqx2sHcIdrB4QH84fdLgfyR8FAcAAABWEHYUdAkgdYW/VAEcAAAThH2ZjHGQcZRxmHGccaBxpHJEexx7MHtAeiR8EIAUgGwKgYAAAHfFjdAUARAAAA6YebsYZBQHAAAAFgx0WSx1/HWxuBQHAAAADyx9TWRpaGiwdLR2PHZAdbHUFAsMAAAiuHwLpHgibH2N1dyMEAqBgAAAdtmJwAfMYAAAhRwAAUx+TH5Qf+wJsdPsCYW/zAIc0oAY7MAAAAQAAEQAHALUJAAB5CwAALxUBAD4aAACtGwUApRwFAMgeAAA=")
\ No newline at end of file
diff --git a/api/search.index/2bd1cd160f86.js b/api/search.index/2bd1cd160f86.js
deleted file mode 100644
index 2f41b936d..000000000
--- a/api/search.index/2bd1cd160f86.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAASJRsqHxkzH8cfaW8TAAOwMBxYAw2wMBxZAAFmaXA6MAAAAQAAAAAAEwAQAAAAkQ7JGO4Y7xghGnsafBpxG4MchByHHY8dwR4GHwcfTh9QH1sfXB+VHw==")
\ No newline at end of file
diff --git a/api/search.index/2c17a05955e5.js b/api/search.index/2c17a05955e5.js
new file mode 100644
index 000000000..fc458797d
--- /dev/null
+++ b/api/search.index/2c17a05955e5.js
@@ -0,0 +1 @@
+rn_("ZQJGAAAhmhqbGnIcAjobEjsbPBtpbHISGVsaXBoYGxkb9R72HhUATQAAAB0ec8kd+B4FAFEAAAb9H2TeHwUAWAAABgggZPwf84cCcnYVAUcAABYcHggfAqsbYnLuGRAbzwXHsHAZ7QP+oMAAAB1lsFAVUwABAAmkDAUBwQAABM4fBdkfcXNDAAOgYAAAH+KgYAAAHf1kb3I7MAAAAQAAJwARAIcOAQDIGA0AiRoDAC4bAACBGwEApRsAAEAcAAB3HAAAkRwDAKIcAAA4HQEAlx0BANsdAAAVHgAA+h4AAEsfAACeHwAANQFAAAAXyx6AHwCGGWZzqRiqGKsYrBh1AkEAABGWEhUbBW0aFa0aph1pcnOWC5cLgw3HGcgZEB4RHmkf9QBAAAAF2Bl1nAunDagNqQ2qDasNrA2tDa4Nrw2wDckZyhnNHeIdux4xQwAAnRu6HaYeER8FAcEAAAXiHQbGHmZuNQBAAAAEbR9 [...]
\ No newline at end of file
diff --git a/api/search.index/2c61bfc174bd.js b/api/search.index/2c61bfc174bd.js
deleted file mode 100644
index 45b208ce3..000000000
--- a/api/search.index/2c61bfc174bd.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAHjh8B3h5hbwUBxAAAAsgfAcQfYW8jhQKgAAAAH1dkZgUBxAAABrkfA6gfb3QbAqDgAAAf2WhvNwGDh6AwAAAfAqGAAAAf8aBAAAAfQaBQAAAfWCyIAw==")
\ No newline at end of file
diff --git a/api/search.index/2c677f84520c.js b/api/search.index/2c677f84520c.js
deleted file mode 100644
index 7145b476b..000000000
--- a/api/search.index/2c677f84520c.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQFAAAAFZRwQ1BjVGGVzGxUcFSFFAACZHhUfFh/7AmpwBQHBAAAECh8Mth9pb/sCZW8VAEIAAAZEH3ZrH2wfBQBEAAAnoh+0H7UfcxQfM4IDsAAfrgABaW5z+wJhcg==")
\ No newline at end of file
diff --git a/api/search.index/2ce0c0e6f26d.js b/api/search.index/2ce0c0e6f26d.js
new file mode 100644
index 000000000..ba183adef
--- /dev/null
+++ b/api/search.index/2ce0c0e6f26d.js
@@ -0,0 +1 @@
+rn_("ZQBEAAAGwh1yKhorGiwaLRouGi8aMBoFAcsAAATOHwXZH3FzEwQCoGAAAB8QcHI7MAAAAQAADQACALAcBgA8HQYAYwADsIAdTgH/Z3N0OzAAAAEAANsAAwBTFNgAexwAAOwdAQA=")
\ No newline at end of file
diff --git a/api/search.index/2d6fa088501b.js b/api/search.index/2d6fa088501b.js
deleted file mode 100644
index 04e983c89..000000000
--- a/api/search.index/2d6fa088501b.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAeZx9oHxw0HzUfZmsFAEEAAARbHHShHfOCAmVzAQEBoQAAAB74dPOuCQAAAQABADFCAADnGA8aEBqHHwUARQAAEEQaRRpzsxkFAcAAAATlGAK7GWZrWwOwEAuDDedkbnL/AIWgAAAAC64QSUA=")
\ No newline at end of file
diff --git a/api/search.index/2dde1b358ba1.js b/api/search.index/2dde1b358ba1.js
new file mode 100644
index 000000000..388994c4a
--- /dev/null
+++ b/api/search.index/2dde1b358ba1.js
@@ -0,0 +1 @@
+rn_("QUIAAO0ZkhqTGusdih5lAEMAAAasHXL7GfwZ/Rn+Gf8ZABoBGhsCoPAAAB9yYXIFAEMAAARdH3WcG/MEAW/y9BgAABkBZQBIAAAGEB9ysByxHLIcsxy0HLUcthzHAQCFoKAAAB4JoMAAAB4MGCAF8pANAACtDDsDoNAAAB2zZWl1BQBAAAAQ/g/FHW6yBBUAQAAACm4ddQcOCA7RQAAAuQvvDfANYxK6GrsavBq9Gr4avxq0HbUdDB9wH/UCQQAAJnUbdhuoHQapHQj7H2JvcscNyA3JDcoNyw3MDc0Nzg3PDe0YgxnnGZQblRu7Hc8eBQHAAAAPeR8IMB1hZTcAAIWgMAAAE62wMA/yAAGwYB3GAU44QEA7MAAAAQAADQAFAKcEAACBCAkAmw8AAAwXAAAaGwAALw/JoEAAAB6voBAAAB++sLAdxgFOoCAAABjCABOOCg==")
\ No newline at end of file
diff --git a/api/search.index/2e2c231858e6.js b/api/search.index/2e2c231858e6.js
deleted file mode 100644
index 4a59166b6..000000000
--- a/api/search.index/2e2c231858e6.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQUCsBAdygFQoJAAAB+raXI7MAAAAQAAEgAJAGIaAABJGwYAMxwAAFMdAACTHQAAhR4AAKMeAwAeHwEAKB8AACsDoDAAABossJAe4gABYWVp")
\ No newline at end of file
diff --git a/api/search.index/2e485b8d1549.js b/api/search.index/2e485b8d1549.js
new file mode 100644
index 000000000..cfbd22fea
--- /dev/null
+++ b/api/search.index/2e485b8d1549.js
@@ -0,0 +1 @@
+rn_("MUYAAL8ewB7BHsIeFQBRAAAGAiBkuh/uHxsCoAAAABJXYW9hRgAATx2lHqke6B7sHlYfwx8TAAOgUAAAH4OgkAAAHKJiY3A6MAAAAQAAAAAAKAAQAAAA9w34DfkN+g37DfwN/Q3+Df8NAA4BDj0VGRkaGYQZhRnXGegZdRp+GsQaxRogGyYbbBt/G4AblxuuHK8cuRy6HFwdvB2+HRse2R7aHiIfIx9PHwUAVAAABgMgZPEfBQBLAAAGByBk9x8bAqCwAAAe5mFvAYMCoJAAAB9loRAAAB/KaXUbArBQGxQC8mFlNw4AiKCwAAAenrAgGa4AAaBAAAAZzijwBTswAAABAAAXAAYAtgkAAHoLEgBnEgAAdRIAAJ8TAACTGwAAW4SgEAAAH/qwQBs/AsiQAEQBAQKwYB/RAAGgcAAAHKFlZjswAAABAABNAAoAugsCAPENAQCmDwAArA8AACsUIADnGgAA6hogAG8cAQB [...]
\ No newline at end of file
diff --git a/api/search.index/2e7ec3af26d0.js b/api/search.index/2e7ec3af26d0.js
new file mode 100644
index 000000000..cca8682fe
--- /dev/null
+++ b/api/search.index/2e7ec3af26d0.js
@@ -0,0 +1 @@
+rn_("IUUAABAeER5pHxMAhKBAAAAawrBgHs0AAYAaMTbAASSAAjswAAABAAAQAAYAHBoAAFgcAACeHAEAgx0AAM4dBQAgHgUAGwKgAAAAD750dg==")
\ No newline at end of file
diff --git a/api/search.index/2e8e6f8d37a8.js b/api/search.index/2e8e6f8d37a8.js
new file mode 100644
index 000000000..17938fd2e
--- /dev/null
+++ b/api/search.index/2e8e6f8d37a8.js
@@ -0,0 +1 @@
+rn_("FQBIAAAG+B9kWh/UHyOBArBQG2YAAWZ0FQBIAAAGACBk2R3nH5cAAIWgYAAAIAaggAAAHv2gwAAAHpAMgAPykA8AAGQQ")
\ No newline at end of file
diff --git a/api/search.index/2ebe929b1768.js b/api/search.index/2ebe929b1768.js
new file mode 100644
index 000000000..a85060595
--- /dev/null
+++ b/api/search.index/2ebe929b1768.js
@@ -0,0 +1 @@
+rn_("BQHAAAAoEB4RHmkfIGYbZxuQHmVz8UYAADgbORuoHt4e3x7gHuEe4h7jHuQe5R7rHu8e8B5gH78fBQBGAAAAmB5zYh0jgQKgIAAAGj1hZCsCsEAakAABb3J3AACGoGAAAB9DsAAOmg6ysEAcXAABJFAFOjAAAAEAAAAAAAoAEAAAACEOIg6bDpwOqQ55GiQbKxssGzkfvh8TAAKgIAAADiRlbPKTAQAAAQA=")
\ No newline at end of file
diff --git a/api/search.index/2edcd2cce301.js b/api/search.index/2edcd2cce301.js
new file mode 100644
index 000000000..b65bf2a79
--- /dev/null
+++ b/api/search.index/2edcd2cce301.js
@@ -0,0 +1 @@
+rn_("BQLGAAABsh8G1h8I5B9pc3QjhgKgQAAAHzpjbgUATwAABv4fZOMfBQBJAAAG4h9knh8FAEwAAAb5H2TVHwUATAAABvgfZNQf+wJhafOEA21udPsCb3U=")
\ No newline at end of file
diff --git a/api/search.index/2fc6fd20c678.js b/api/search.index/2fc6fd20c678.js
deleted file mode 100644
index 552fdaf64..000000000
--- a/api/search.index/2fc6fd20c678.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAB/RqS0B3RHdId0x3UHdUd1h3oHukeYh9pdAUBQwAABpQfAi0fYnKiHiOIAqBAAAAe5mZzBQBEAAAAuh1zVh3zAwJmcPQAGgAAAQCWAIUCLwGFoGAAABtzoEAAABjkoFAAAByOAEhJ")
\ No newline at end of file
diff --git a/api/search.index/2fda95e81e15.js b/api/search.index/2fda95e81e15.js
new file mode 100644
index 000000000..43b26d9ad
--- /dev/null
+++ b/api/search.index/2fda95e81e15.js
@@ -0,0 +1 @@
+rn_("BQBGAAABeRxp+h0FAcQAAAgJHwdFH2JsgUwAAN4e3x7gHuEe4h7jHuQe5R5gHwUBwAAAM2caaBppGmoaAmsbZWwFAcAAAAZ4HAPMGXJ1zwHFoQAAAB+CsGAbkAABBAEwAmFFAABgGmEaYhpjGmQaZRpmGgGBArFAH9EAAbDwH5gAAWdzBQHAAAAAtx8GjxtldAUBwwAADIEfD7kfY2b7hBFACAUBwAAAB6MdB6QdY20TgQKggAAAHaV3eAUARQAAB0wfc44dKwKgMAAAHFttdAGFA6BAAAAenaFAAAAf8KCAAAAfZGNlbBsDoKAAAB7dsGAekgABbnN08wACYWUB+h8AAAkCoQAAAB+AoMAAAB7cZG4FAcAAAAZDHQLLGWV0KwKwMBnJAAFlbBsCoAAAABmaaXMFAcEAAAvbHgiiHWNkAQICsTAfzwABoHAAAB4FZmwBSxsAABsDoNAAAB+SoBAAABJUYWVvBQHAAAA [...]
\ No newline at end of file
diff --git a/api/search.index/2fda96ece249.js b/api/search.index/2fda96ece249.js
deleted file mode 100644
index 9c8737df3..000000000
--- a/api/search.index/2fda96ece249.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("ZQJGAAAhiBqJGmAcAigbEikbKhtpbHIAGUkaShoGGwcb4h7jHrUBQAAANj0d1R5DH7AfBXAfYmMsFQcZCBlyGXMZDhunHKgcSh0PHxAfPB8jAgKwIBmcAAFucvJYEgAAKQkVAEwAAAALHnO2HeUe+wJlaQUAUQAABuofZMsfBQBYAAAG9R9k6R/zhwJydlFFAACoGKkYqhirGKwYrRglAUcAABYKHvUeApkbYnLcGf4akh0FAkEAABSuH68fAqQfBugdcHJ24x1RQwAAhxOIE4kTihOLE4wT+wJudAUARAAAB5gfc/AdI4IDsHAdegABoGAAAB0cbXR1KwKgsAAAHVNvcgUBwAAABpEdFtsZ2B1ocvcXAMqwUBVCAAEj66itqo4ASbQcOzAAAAEAAEcAAgA9BEQAog4CAA==")
\ No newline at end of file
diff --git a/api/search.index/30070713d4d3.js b/api/search.index/30070713d4d3.js
deleted file mode 100644
index 6393cebf4..000000000
--- a/api/search.index/30070713d4d3.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBDAAAEqx5muR+6H3UAQAAAFCEfIh9t5A/MGs0azhoAGwEb6x7sHhsCoBAAAA+ZZG4FAEUAAATkHmWKHBsCoCAAAB0kdXk3AAGFoBAAAB3rsCAZ1wABoEAAAB0lAkEDOjAAAAEAAAAAABAAEAAAAGMSeRKuGMcYyBi8Gb4ZvxksG3wbThzLHeodBh4HHhsfjB8xRAAAFBoVGhYaFxoFAcAAAC+iH7QftR8nmR4VHxYfYXIjBAOgEAAAHqywUB75AGRlcHMB6hgAAPcAAIWgoAAAHggWBQDyigEAAKsT")
\ No newline at end of file
diff --git a/api/search.index/30d99b80e799.js b/api/search.index/30d99b80e799.js
deleted file mode 100644
index b87c109a8..000000000
--- a/api/search.index/30d99b80e799.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUoAABQeFR4WHhceBQHCAABSLhsvGzAbMRsyGzMbVJMclByVHJYclxyYHGt2UUoAAA4eDx4QHhEeEh4THuuEsEAZ4QABIBgC")
\ No newline at end of file
diff --git a/api/search.index/30debad66f16.js b/api/search.index/30debad66f16.js
deleted file mode 100644
index bfb0b2eac..000000000
--- a/api/search.index/30debad66f16.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBDAAAD2h5pQh0jBAKgcAAAH5xwdPRoGgAA7gABAAEAIUIAAA4amRuLHAUAUgAABvMfZOEfFQBAAAAA7h5z5hgNGmUARQAABUwfcnscdB11HXYddx14HXkd84ECY2cVAEIAAAHwHmlvHdsdGwKwEBrFAxJlbBsCoIAAAB+EaXIlAE0AAAbsH2R9H34f0x8FAcMAAAMxHxAQHREdbnPzgQJsbQUBxAAAMQoeoB71HhwfBUYfZXL3CwCIoHAAAB85JogHOzAAAAEAADEAFgDRDw8AwRkBAMcZAQDcGQAA+hkAAAMaBgCCGgEAlBoAALgaAQD+GgAAeRsAAI0bAAB6HAAAeh0CAJIdAAAIHgAAHB4AALEeAAAOHwAAJB8AACsfAADMHwEA")
\ No newline at end of file
diff --git a/api/search.index/31086e821446.js b/api/search.index/31086e821446.js
new file mode 100644
index 000000000..49910798a
--- /dev/null
+++ b/api/search.index/31086e821446.js
@@ -0,0 +1 @@
+rn_("IUYAAHUbdhuoHRMAA6BgAAAdqaCAAAAf+2JvcjowAAABAAAAAAAWABAAAADHDcgNyQ3KDcsNzA3NDc4Nzw3tGIMZ5xluGpQblRuDHLsd3x3gHc8eJB9mH4IfUUwAALUeth63HrgeMR8yHzsDoLAAAB8HZnJ0")
\ No newline at end of file
diff --git a/api/search.index/3157a1a4e612.js b/api/search.index/3157a1a4e612.js
deleted file mode 100644
index 6774504f9..000000000
--- a/api/search.index/3157a1a4e612.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUYAAGMbZBuWHRMAA6BgAAAdl6CAAAAf6GJvcjowAAABAAAAAAAUABAAAAC7DbwNvQ2+Db8NwA3BDcINww3aGHEZ1RlcGoIbgxtxHMwdzR0RH1Mfbx9RTAAAox6kHqUeph4eHx8fOwOgsAAAHvRmcnQ=")
\ No newline at end of file
diff --git a/api/search.index/3161d6cc034b.js b/api/search.index/3161d6cc034b.js
deleted file mode 100644
index d1662fcee..000000000
--- a/api/search.index/3161d6cc034b.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHEAAARoB4cHwVGH2VyEwUCoCAAAByLYnL2xxkAAAEAugABADUAwQDlAUEAAASwGha7HrweZnAKGkYccR27HbwdvR2+Hb8dwB0OHg8eEB4RHhIeEx77Am50")
\ No newline at end of file
diff --git a/api/search.index/317c959d0382.js b/api/search.index/317c959d0382.js
new file mode 100644
index 000000000..f6ce51d22
--- /dev/null
+++ b/api/search.index/317c959d0382.js
@@ -0,0 +1 @@
+rn_("BQBSAAAGAiBk7h8FAFQAAAYDIGTxH/OEAnB0BQBRAAAG/R9k3h8FAFgAAAYIIGT8HwUASAAABvUfZMUfBQBKAAAGASBk6B8FAEoAAAYAIGTnH/sCYWkFAEYAAAbrH2S0H/OJA2VtbgUAUgAABgYgZPQfBQBPAAAG/x9k5h/zhwJjcAUASAAABqAfZBQeBQBJAAAG6h9ksx8ThAOgwAAAH8SggAAAH59mcHMbAqFAAAAf5WZsBQBaAAAGByBk9x/7AmFlp2cAyy7c0szjAaDAAAAfO6DAAAAfPKAwAAAafQAbpB0BCR4AACUCQAAAHnofex8cRx9IHzNOFb8ZfBpeHGZrd68YwR/CH0UAQQAAFDQfNR9t3hrfGuAa/h7/HgUARQAABPceZZwcGwKgIAAAHTZ1eTMDhLAgGekAAaBAAAAdNwIBAzowAAABAAAAAAALABAAAACIEtoY2xjQGdEZPhveHfwdGB4ZHi4fnx8 [...]
\ No newline at end of file
diff --git a/api/search.index/31966576a362.js b/api/search.index/31966576a362.js
deleted file mode 100644
index 341ef3a18..000000000
--- a/api/search.index/31966576a362.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAHeB8ibxpwGlodb3lDAQOgQAAAGx+wYBx+AixibHQ6MAAAAQAAAAAACQAQAAAAbBJtEpkTmhObE5wTAho0G4oerR8FAcUAAChAH4AfgR8EuB9hbwUBwAAABIIdImAbYRsMH295FQBKAAAG8B9klx/eHwUBwAAAAiofCccfaW8TCAKgMAAAH2VmaffBHgAARQABAEcADQABADkAIUUAAKIftB+1HyUAQAAAA8AeaZsenB4XHyFCAAB8HH0cLR8xQQAAfx2AHYEdYB8FAcAAABWYHpQfAr8edXnzAYQCAQM6MAAAAQAAAAAADAAQAAAAbhpbG1wbXRteG18bKR25HaIeCx93H4MfsR/7AmVs8wADcHR1AbAYAAAVAEEAAAWrHXcSGhMaFQBAAAAUnR+eH21wHXwf+wJkbkUAQwAAAKkecxsbTRwMHg0e5h4rAqBAAAAdrGFpBQBBAAAlCR7GHscedw8dBQHAAAA [...]
\ No newline at end of file
diff --git a/api/search.index/31fb7b0f4af8.js b/api/search.index/31fb7b0f4af8.js
deleted file mode 100644
index 0eda6887a..000000000
--- a/api/search.index/31fb7b0f4af8.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("JQBBAAAVHR15H2wADvwYTRoFAEAAABJtGpQbcpMORQJBAAAVNxs4GxroHukeM+cZ6BmGGwAeb3N0Rw5IDkkOSg4IHW8BhaCwAAAfZKAgAAAfZEAgIw==")
\ No newline at end of file
diff --git a/api/search.index/32cc8d49fa1f.js b/api/search.index/32cc8d49fa1f.js
new file mode 100644
index 000000000..448cb2250
--- /dev/null
+++ b/api/search.index/32cc8d49fa1f.js
@@ -0,0 +1 @@
+rn_("BQBFAAABLR9plx4bArCQHvUAAWVpIUUAAJkcmhz+HfOFAnN2BQHAAAAFDx8HEh5mdAUAQwAAEWIbYxtpdBs7A6AgAAAfPGxudSFEAAAQHhEeaR8FAcAAABJ0HHUcFAwfcB9pdAUBwAAAL7Ufxx/IHyerHigfKR9hciFDAAAhG5Iekx4FAEEAAAatH3S+HqcDAIagoAAAH7mgQAAAGZk0kAI6MAAAAQAAAAAADgAQAAAAjhKPEv0Yrx2wHcAdwR2fHqAeNB81H1AfUR+wH7EfBQBIAAAG9R9kxR8FAEoAAAYBIGToHwUASgAABgAgZOcf+wJhaQUARgAABusfZLQf84EDZW1uAYIDoVAAAB/7oCAAAB7zoIAAAB+jZHV3KwKgIAAAH2dvckMEA6BgAAAdw7BwH2gADmJlcPP+GAAASAMBAAUARgAAEBMeOB9yvR3zAgFw9/wYAABoAgEAKQMBAA4AxwD7AmN09wUAh6B [...]
\ No newline at end of file
diff --git a/api/search.index/32f49c51183b.js b/api/search.index/32f49c51183b.js
deleted file mode 100644
index acdb3f4c2..000000000
--- a/api/search.index/32f49c51183b.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUEAAEAfgB+BHwUAQAAADnkfcIYS84MCZW9hQQAAjBmNGY4ZjxmQGZEZkhkFAsMAAAiSHwKfHgh1H2J1dyMFAqBgAAAdT2JwATwVAAD7A2FtdQ==")
\ No newline at end of file
diff --git a/api/search.index/330986a0adf7.js b/api/search.index/330986a0adf7.js
new file mode 100644
index 000000000..462ff00de
--- /dev/null
+++ b/api/search.index/330986a0adf7.js
@@ -0,0 +1 @@
+rn_("NQBDAAAWACABIGTZHdod5x/oHwUAQAAAA8QeadseIwECoBAAAB16aXM6MAAAAQAAAAAACQAQAAAA5hlXG1gbWRt8HH0cyx0WHhceBh9bA6AwAAAOKWVucw==")
\ No newline at end of file
diff --git a/api/search.index/339b654c1d0c.js b/api/search.index/339b654c1d0c.js
deleted file mode 100644
index 8620fe4e9..000000000
--- a/api/search.index/339b654c1d0c.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBFAAAGkx5iYxoFAEcAABaJH4ofZpIeE4MCoDAAABx2cHMbAqBwAAAd4mFlCQKhAAAAH3OgsAAAHzBhb0sDoEAAAB53oKAAAB64Y3F0BQBJAAAGch924R0VAEwAAAbvH2SnH9sfYUMAAJMZlBmVGZYZlxmYGZkZ+wJhZvMAAXQBVgsAAAUBwAAABksfAXoeM3EFAcAAAAKmHQQRH2lvRwKEhqAwAAAetqAgAAAeeaBwAAAfAKAwAAAet8CIAysCoGAAAB3fY3QbAqBgAAAeg2FvVx4AiaCQAAAd4KDwAAAfZKFAAAAfnByRFgGGDgAA")
\ No newline at end of file
diff --git a/api/search.index/33b37cbe4b47.js b/api/search.index/33b37cbe4b47.js
deleted file mode 100644
index a36c86996..000000000
--- a/api/search.index/33b37cbe4b47.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAHLx8SPhV6G295cUQAAMEdwh3DHcQdFB4VHhYeFx5XAADFsGAbdwABoEAAABosoKAAAB9sAAggGjowAAABAAAAAAAIABAAAACzC7QLtQvnDegN6Q2CEn0TTBoFAEIAABL2Ht8fYYsL+wJrdA==")
\ No newline at end of file
diff --git a/api/search.index/33de7bc34916.js b/api/search.index/33de7bc34916.js
deleted file mode 100644
index 6fe5224ca..000000000
--- a/api/search.index/33de7bc34916.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("gUIAAJUPPhWbGecZ6Bl6G4YbOB0AHhUBRwAAB14fBSwfYmalHcAfBQBBAAAG6x9k0B8TiwKgQAAAH6ptbysCoGAAAB8vbHQFAsAAADStHq4erx6wHjBZEqIftB+1HwgHHW5yc2UAQAAAB6cdcn8ZgBmBGYIZgxmEGYUZBQHBAAAEmR0F+R1xc/ODAnJzvwOGoHAAAB/REUFB")
\ No newline at end of file
diff --git a/api/search.index/347a55053f86.js b/api/search.index/347a55053f86.js
deleted file mode 100644
index 048a55754..000000000
--- a/api/search.index/347a55053f86.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBFAAAGlx5ibBpaGwUASAAABuIfZLIfBQBKAAAG7h9k1R8FAEoAAAbtH2TUH/sCYWkFAEYAAAbYH2ShH/OCA2VtbpMAhKBAAAAZ06BwAAAbjRQQEAEPDgAAFQBAAABQmR2aHa8dmh79HrsfdKUfth8FAcAAABVyHXMdAjYdYW/VAEcAAATOH2ZRHFIcUxxUHFUcVhxXHH8etR66Hr0edh/xH/IfGwKgYAAAHd5jdAUARAAAA5QebrQZBQHAAAAFcR0WOR1tHWxuBQHAAAADuB9TRxpIGhodGx19HX4dbHUFAsMAAAibHwLWHgiIH2N1dyMEAqBgAAAdpGJwAeAYAAAhRwAAQB+AH4Ef+wJsdPsCYW/zAIc0oAY7MAAAAQAAEQAHAKwJAABvCwAAHhUBACwaAACbGwUAkxwFALYeAAA=")
\ No newline at end of file
diff --git a/api/search.index/34a02e00e8ba.js b/api/search.index/34a02e00e8ba.js
deleted file mode 100644
index 52c4b21ca..000000000
--- a/api/search.index/34a02e00e8ba.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAABuA8K2B1laQUBRAAAB3geB5gfY3PwHQEBAbAAE28AAXM7MAAAAQAAFAAJAAkOAACyDwUAlRoBAJ0aAQDSGgEA+xoBAKkcAQDtHQEAxB4BAEsDoEAAAB+EoIAAAB1SY2x0ZQBEAAAG7B9kbRxuHF0dXh19H34f0x/zBQFj8goZAAABABsCoCAAABiUZW8FAEQAAAPjHXeFFwUBwAAAAyUVQEIOQw5EDkUORg5hZfsCcnQ7A7CQH6UAEWFydQUAQQAABusfZNAfE4wCoEAAAB+qbW8FAcUAAASZHQX5HXFz+wJhbxUASQAABEkfZtkf2h8VAEkAAAbPH2TIHYsfFQBMAAAG5h9kSB/CHxUATAAABuUfZEcfwR/7AmFp5wEBhaCAAAAe/AQwBvR4DQAAgAsBAMQAJQBGAAAD1x1muRp6HXsdOwOgEAAADXllaW8VAEIAAAPKGWFtE24TS4SgsAAAHnegYAAAG5S [...]
\ No newline at end of file
diff --git a/api/search.index/34e58093fa90.js b/api/search.index/34e58093fa90.js
deleted file mode 100644
index c0c776c19..000000000
--- a/api/search.index/34e58093fa90.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBFAAAFcB9jDx8QH1UAQAAAVKgaqRqqGqsarBqtGnQHDnYOiRuPG5kcmhxRRQAAohqjGqQapRqmGqcaBQBFAAAGsB9iPB8VAEEAAATtHmbEH8UfFQBCAAAEDR9myB/JH/sCYW8hRQAAcRzMHc0d8wMDbHB385obAACEAeEBBQBCAAAEGR5jbh0jgQKgIAAAGq5lbCMAA6DwAAAf0qCAAAAdzmVmcvMGDgAAURECAPMAhSiAEjswAAABAAAIAAIAjgsAAIcNBwAbAqCgAAAdnGVp")
\ No newline at end of file
diff --git a/api/search.index/34ed027203ab.js b/api/search.index/34ed027203ab.js
new file mode 100644
index 000000000..23ba4039b
--- /dev/null
+++ b/api/search.index/34ed027203ab.js
@@ -0,0 +1 @@
+rn_("MUoAACYeJx4oHikeBQHCAABSQBtBG0IbQxtEG0UbVKUcphynHKgcqRyqHGt2UUoAACAeIR4iHiMeJB4lHuuEsEAZ8wABIBgC")
\ No newline at end of file
diff --git a/api/search.index/350022b4dd07.js b/api/search.index/350022b4dd07.js
deleted file mode 100644
index 4400050c9..000000000
--- a/api/search.index/350022b4dd07.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("UUAAAEcaSBoaHRsdfR1+HcUAQgAABXMaaBEOEg4TDpcOmA42Gk4aTxpQGlEaUhpTGlQakwCEsCAZAQNnsDAZ3QNVACUCOjAAAAEAAAAAAAwAEAAAAH4TFBoVGhYaFxqRHJIcVx3OHRkedh6zHikf")
\ No newline at end of file
diff --git a/api/search.index/350112f00d97.js b/api/search.index/350112f00d97.js
new file mode 100644
index 000000000..68461bb80
--- /dev/null
+++ b/api/search.index/350112f00d97.js
@@ -0,0 +1 @@
+rn_("BQBBAABEBRoGGgcaCBoJGnKkCRUAQwAAIDEanR2eHXOeHJ8cNQFAAAAEHB8LAR9ibfkP+g/7D/wPa4SwQBN2BxmgIAAAGKMMEAI7A6DAAAAfdGVzdA==")
\ No newline at end of file
diff --git a/api/search.index/3506db22cc2b.js b/api/search.index/3506db22cc2b.js
new file mode 100644
index 000000000..5a5378fd2
--- /dev/null
+++ b/api/search.index/3506db22cc2b.js
@@ -0,0 +1 @@
+rn_("IUUAAH8bgBu+HQUARgAABr8fZjkfBQBFAAAGVh9iXB0FAEAAAATFHmPwHfMCAnN3AWcdAAArAqBgAAAcoWFpRwUAh6CQAAAdXbBgH9EAAaCAAAAeiKAwAAAdHzQAFzswAAABAABZABQAugsCAPENAQCeDgAAmQ8AAKYPAACsDwAAXRIAALATAAArFCAAORUAAPoYAAAhGgEAJBoBAOcaAADqGiAAhRsAAG8cAQBxHQAACh8AAJofAAA=")
\ No newline at end of file
diff --git a/api/search.index/35faa0b76817.js b/api/search.index/35faa0b76817.js
new file mode 100644
index 000000000..f8613139f
--- /dev/null
+++ b/api/search.index/35faa0b76817.js
@@ -0,0 +1 @@
+rn_("8UYAADgbORuoHt4e3x7gHuEe4h7jHuQe5R7rHu8e8B5gH78fBQBIAAAAmB5zYh0rArBAGpAAAW9yMwIDoGAAAB9DY2ZvOjAAAAEAAAAAAAcAEAAAACEOIg6pDnkaJBsrGywbOR8=")
\ No newline at end of file
diff --git a/api/search.index/368f32af4b05.js b/api/search.index/368f32af4b05.js
deleted file mode 100644
index c92515099..000000000
--- a/api/search.index/368f32af4b05.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("QUIAAIgblxuYG4ke7x5RQQAAPB1AHeUd5h06HzsfBQRAAAATyxnMGRfZHdodEvgZ+RkXax1sHQQfHWRma2x0uQ9bA7AgHzQAAWVpbysCoGAAABuOY3QzAAOgYAAAH0RhcnY6MAAAAQAAAAAADgAQAAAAUwuaGJsYthq3GncbeBtHHEgcch1zHbsevB5rH2wf")
\ No newline at end of file
diff --git a/api/search.index/36af8c26ab38.js b/api/search.index/36af8c26ab38.js
deleted file mode 100644
index 8b9646ed4..000000000
--- a/api/search.index/36af8c26ab38.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUYAAK0erh6vHrAeZQBBAAAWlx7ZHmLFGWwashqzGhQbWhupHfOCAmV0BQHGAAAEFB8CbB9pbmsDoCAAAB1ZZWly")
\ No newline at end of file
diff --git a/api/search.index/36c1c240e7d6.js b/api/search.index/36c1c240e7d6.js
new file mode 100644
index 000000000..3b85e06d1
--- /dev/null
+++ b/api/search.index/36c1c240e7d6.js
@@ -0,0 +1 @@
+rn_("FQFAAAAFdxwQ5xjoGGVzLBUtFSFFAACrHigfKR/7AmpwBQHBAAAEHR8MyR9pb/sCZW8VAEIAAAZXH3Z+H38fBQBEAAAntR/HH8gfcycfM4IDsAAfwQABaW5z+wJhcg==")
\ No newline at end of file
diff --git a/api/search.index/36efc61d0449.js b/api/search.index/36efc61d0449.js
new file mode 100644
index 000000000..cda2d4cb9
--- /dev/null
+++ b/api/search.index/36efc61d0449.js
@@ -0,0 +1 @@
+rn_("AQADoEAAAB9csEAdwAABoAAAABo8Zm1zOzAAAAEAABoADACWEgAAJRQAAMYYAACwGQ4AFRsAABcbAAAiGwAAah0AAPkdAAAqHgAAsh8AAOwfAQA=")
\ No newline at end of file
diff --git a/api/search.index/3737a13c2adf.js b/api/search.index/3737a13c2adf.js
new file mode 100644
index 000000000..57a8754c2
--- /dev/null
+++ b/api/search.index/3737a13c2adf.js
@@ -0,0 +1 @@
+rn_("BQBFAAAGpR5idRoFAEcAABacH50fZqQeE4MCoDAAAByIcHMbAqBwAAAd9WFlCQKhAAAAH4agsAAAH0Nhb0sDoEAAAB6JoKAAAB7KY3F0BQBJAAAGhR929B0JAm5wAc1BYKBgAAAelWFvFx4AiaCQAAAd86AAAAALYKDwAAAfd6FAAAAfrxyRFgGSDgAA")
\ No newline at end of file
diff --git a/api/search.index/3745e46fee45.js b/api/search.index/3745e46fee45.js
deleted file mode 100644
index 5506ab764..000000000
--- a/api/search.index/3745e46fee45.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAACFRsCExtidBsCoCAAAB9hYXkjAAKgwAAAHrpldDswAAABAAAdAAkAkg0IAF4SAACBEwEALRoGAI0aAAATHQYAsx0AAAEfAABkHwAA")
\ No newline at end of file
diff --git a/api/search.index/378e1aaab9b6.js b/api/search.index/378e1aaab9b6.js
new file mode 100644
index 000000000..9b55e8301
--- /dev/null
+++ b/api/search.index/378e1aaab9b6.js
@@ -0,0 +1 @@
+rn_("BQBAAAAExR5j8B3zAwFzAWcdAAATAAKggAAAHohmcgGZDwAAKwKgQAAAGXphZwUBwAAAEjcbPR8ZRh/aH2lvEwADsDAcagMOsDAcawABZmlwOjAAAAEAAAAAAA4AEAAAANwYjRqOGoMblRyWHJkdoR3UHhkfGh9hH24fbx+oHysCoDAAABuHZnP7AmNu")
\ No newline at end of file
diff --git a/api/search.index/37d00526914c.js b/api/search.index/37d00526914c.js
new file mode 100644
index 000000000..f1456a1ce
--- /dev/null
+++ b/api/search.index/37d00526914c.js
@@ -0,0 +1 @@
+rn_("AQEBoHAAAByhZjswAAABAABMAAkAugsCAPENAQCsDwAAKxQgAOcaAADqGiAAbxwBAHEdAAAKHwAARQBBAAAG4h9khw6IDkAc2x2eHwUBwAAAQJ0OARkCGTMaYx8HiBtzdHuEoSAAAB+XFKAA")
\ No newline at end of file
diff --git a/api/search.index/37ea6c2270b9.js b/api/search.index/37ea6c2270b9.js
deleted file mode 100644
index 2f326193c..000000000
--- a/api/search.index/37ea6c2270b9.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAHEx8DWxxpeRUATQAABM4fZvEf8h8FAcAAAAN8Gwj8HXJ1NQBCAAAHDh9txBnLGcwZsRoFAEIAAAQZHmNuHRUAQgAAAhgbcugYrhrzgQJlbBUARQAACdIfZgIb9B0FAcEAAAE4HAf3HWlwAYICoJAAAB9SoRAAAB+3aXUrAqDAAAAfgnJ0AQDNYuDd531HZfnMYhzYG/PjbP5VMHDlqEfhoIAAAB2gIY2KNJ8GoBAAABw9QnZrAVonoTAAAB+4oIAAAB3Od0VM6OdECiIyKQodsFAfpQARwEy1CzowAAABAAAAAAAHABAAAAAGDn0PexNBFX4ZoR1XH1kf")
\ No newline at end of file
diff --git a/api/search.index/37fdf370bd87.js b/api/search.index/37fdf370bd87.js
deleted file mode 100644
index a00313c51..000000000
--- a/api/search.index/37fdf370bd87.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAACsh4hwg8dFcoedHojAAKwQB1UAYdlaQHIHgAABQLAAAAu/h3/HVYfAeMfpgMaBBoFGgYaBxoIGgkaCB4OH8wfzR9hZGWRQQAArA2tDYoaixqMGoUcMx1FHWgd3B8FAEQAAAOoHW5/E4cqAIqgQAAAHqigQAAAE36gYAAAHEawkB80AAGwUBifA5qwYBxHAAF2mQI6MAAAAQAAAAAALAAQAAAAMQSDDkYSRxJyEjYVzxjQGAEZuxnEGcsZzBnUGfgZ+RmOGo8akBqRGpIakxqxGisbLhsvGzAbMRsyGzMbRRtGG0cbaBxqHGsciR2KHbgdBB4FHp4e1B7zHtYf")
\ No newline at end of file
diff --git a/api/search.index/386d338c7df1.js b/api/search.index/386d338c7df1.js
deleted file mode 100644
index 89b80ffba..000000000
--- a/api/search.index/386d338c7df1.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBHAAAYrh+vH3eCHgUBwAAAldAd0R3SHdMd1B3VHdYd6B7pHmIfBjsdbnQVAEQAAAQuH2W0HbUdIUUAAOof7R/uHwUBxgAAB7MfBZYfZnTTAISw0B96AAE1AAABpgkAACUARAAABu8fZJscpx/bH7cEAIewMBQOCyuAFToAFIiwABnkAAGKAQc7MAAAAQAAhgERAI4IAABsCwAAwg8AAHQSAgCrE2IAHRUAAN0YAQAMGVsAYhwBAKscWADGHQEAHR5YAK0eAwDKHgAAfx8AAMsfAADUHwEA")
\ No newline at end of file
diff --git a/api/search.index/38ce02667d38.js b/api/search.index/38ce02667d38.js
deleted file mode 100644
index 7b7fc367c..000000000
--- a/api/search.index/38ce02667d38.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("ZQJGAAAhiBqJGmAcAigbEikbKhtpbHIAGUkaShoGGwcb4h7jHhUATQAAAAsec7Yd5R4FAFEAAAbqH2TLHwUAWAAABvUfZOkf84cCcnYVAUcAABYKHvUeApkbYnLcGf4azwXHsHAZ2wP9oMAAAB1TsFAVQgABAAmkDAUBwQAABLsfBcYfcXNDAAOgYAAAH8+gYAAAHetkb3I7MAAAAQAAJwARAHsOAQC1GA0AdxoDABwbAABvGwEAkxsAAC4cAABlHAAAfxwDAJAcAAAmHQEAhR0BAMgdAAADHgAA5x4AADgfAACLHwAANQFAAAAXuR5tHwB0GWZzlhiXGJgYmRh1AkEAABGHEgMbBVsaFZsalB1pcnOMC40Ldw21GbYZ/h3/HVYf9QBAAAAFxhl1kgubDZwNnQ2eDZ8NoA2hDaINow2kDbcZuBm6Hc8dqR4xQwAAixuoHZQe/h4FAcEAAAXPHQa0HmZuNQBAAAAEWh9 [...]
\ No newline at end of file
diff --git a/api/search.index/38e9df45e5d1.js b/api/search.index/38e9df45e5d1.js
new file mode 100644
index 000000000..6fec4ee16
--- /dev/null
+++ b/api/search.index/38e9df45e5d1.js
@@ -0,0 +1 @@
+rn_("IUUAANcZxBrFGhUARgAABgcgZMof9x/zgQJldxUAQgAAFAQfXR914BmcGzFFAACzG7QbxB0PHruEsAAcbgExACAL")
\ No newline at end of file
diff --git a/api/search.index/38fb41ef02d0.js b/api/search.index/38fb41ef02d0.js
new file mode 100644
index 000000000..19f2c455d
--- /dev/null
+++ b/api/search.index/38fb41ef02d0.js
@@ -0,0 +1 @@
+rn_("BQHDAAAGax0B8hlibyUAQQAACLkeYq4PoBunHTUBQgAAUZwanRqeGpccRR1XHRVmHe4eaXObHZwdsB7nHvMAAmtvAa8eAABjAAOgcAAAHfxvc3Q7MAAAAQAABwACALoYAABQHAYABQHBAAAEEB8VVh3qHnFzBQHKAAAEzh8F2R9xcysCoCAAAByGYXLVAEQAAAThH2ZjHGQcZRxmHGccaBxpHJEexx7MHtAeiR8EIAUgNQBEAAAWoB/rH2SoGBsZFB60H5uEsDASXQLcoGAAAB1VCUAIJQBBAAASKBspG2UiFCMUJBQFAcAAAANkHWQlHSYdJx0oHSkdKh0rHXJ4BQBQAAAGCCBk/B8rArBwHtUAAWRyBQBFAAAGpR5idRoFAEcAABacH50fZqQeE4MCoDAAAByIcHMbAqBwAAAd9WFlCQKhAAAAH4agsAAAH0Nhb0sDoEAAAB6JoKAAAB7KY3F0BQBJAAAGhR929B0 [...]
\ No newline at end of file
diff --git a/api/search.index/3914d60dce29.js b/api/search.index/3914d60dce29.js
deleted file mode 100644
index db0618a0c..000000000
--- a/api/search.index/3914d60dce29.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("NQBAAAAGDR1pnQmeCU8LUAsFAEMAAAakH3fxHSMDAqBQAAAfGHN0AfoPAABlAEQAAAWMG3KgGKEYohijGKQYpRimGAUARwAAA+QdbMEaYUEAAFwacRzMHc0dER9TH28f8wADZW10OzAAAAEAAA8ABQBeCAkAGh4BAAUfAAAjHwAAeh8BAJ8CyKCQAAAfbqAQAAAPuqBwAAAf4KAgAAAY36AgAAAfUgACig8=")
\ No newline at end of file
diff --git a/api/search.index/394c9b768ce4.js b/api/search.index/394c9b768ce4.js
new file mode 100644
index 000000000..8f791ea24
--- /dev/null
+++ b/api/search.index/394c9b768ce4.js
@@ -0,0 +1 @@
+rn_("BQFAAAAGXh8BjB4zcQEfBQHAAAACuB0UbhokH2lvBQHBAAAMDx8DRxttboFGAAAdGx4bUR1hHbYdwx0IHqceFx83RACMsHAfaAAOoDAAAB7IoCAAAB6LsBAcdgM4oEAAABqsatwSZ7csoDAAAB7JoIAAAB9S1qkTOjAAAAEAAAAAABcAEAAAAAoOCw5DDkQORQ5GDkcOSA5JDkoOSw5MDj8VTRXzGPkY/hgfGncaeBqkG0YcRxwyHXUARQAABV8fco0chh2HHYgdiR2KHYsdBR47A6AQAAAVRmNncg==")
\ No newline at end of file
diff --git a/api/search.index/3a0cfea4cd4c.js b/api/search.index/3a0cfea4cd4c.js
new file mode 100644
index 000000000..f80f2db05
--- /dev/null
+++ b/api/search.index/3a0cfea4cd4c.js
@@ -0,0 +1 @@
+rn_("VQBCAAAD7R5pihJ7E90Y3hjfGFQdFQBFAAAFgx9jIh8jH1UAQAAAVLoauxq8Gr0avhq/GnQTDoIOmxuhG6scrBxRRQAAtBq1GrYatxq4GrkaBQBFAAAGwx9iTx8VAEEAAAQAH2bXH9gfFQBCAAAEIB9m2x/cH/sCYW8hRQAAgxzfHeAd8wMDbHB386wbAACEAeIBBQBCAAAEKx5jgB0jgQKgIAAAGsBlbCMAA6DwAAAf5aCAAAAd4WVmcvMSDgAAWBECAPMAhSiAEjswAAABAAAIAAIAmAsAAJMNBwCbhKCgAAAdrqBAAAAfqRBBQA==")
\ No newline at end of file
diff --git a/api/search.index/3a2ab68eaec1.js b/api/search.index/3a2ab68eaec1.js
new file mode 100644
index 000000000..d14336146
--- /dev/null
+++ b/api/search.index/3a2ab68eaec1.js
@@ -0,0 +1 @@
+rn_("MUoAAL8ewB7BHsIeFQBFAAAR3R0tH2lFHJceGwKwkB71AAFlaQUCRgAAIfkdKh6yHwbWHwjkH2lzdLccFQBBAAAUnx6gHm12HXcdEwQCoCAAAB3caXL3TBsAAAEATAEBADABNAA8AfsCY24xRQAAQRxCHEMcRBwFAcMAADNyHXMddB11HQVHHXBz8wDFAAiAGfPDDQAAlABtCw==")
\ No newline at end of file
diff --git a/api/search.index/3a45034aa199.js b/api/search.index/3a45034aa199.js
new file mode 100644
index 000000000..86058a327
--- /dev/null
+++ b/api/search.index/3a45034aa199.js
@@ -0,0 +1 @@
+rn_("BQHFAAAoUx+TH5QfBMsfYW8FAcAAAASUHSJyG3MbHx9veRUASgAABgMgZKof8R8FAcAAAAI9HwnaH2lvEwgCoDAAAB94Zmn31B4AAEUAAQBHAA0AAQA5ACFFAAC1H8cfyB8lAEAAAAPTHmmtHq4eKh8hQgAAjhyPHEAfMUEAAJEdkh2THXMfBQHAAAAVqh6nHwLSHnV58wGEAgEDOjAAAAEAAAAAAAwAEAAAAIAabRtuG28bcBtxGzsdzB20Hh4fih+WH8Qf+wJlbPMAA3B0dQHDGAAAFQBBAAAFvh13JBolGhUAQAAAFLAfsR9tgh2PH/sCZG5FAEQAAAC7HnMtG18cHh4fHvkeBQBBAAAlGx7ZHtoedyEd5xwCyaCAAAAe0aAgAAAZ5qBgAAAfY0BMBQs7MAAAAQAABgADAKATAwAnHwAAoR8BABsCoAAAAA+eaXk=")
\ No newline at end of file
diff --git a/api/search.index/3a59de9e5451.js b/api/search.index/3a59de9e5451.js
new file mode 100644
index 000000000..825f38af1
--- /dev/null
+++ b/api/search.index/3a59de9e5451.js
@@ -0,0 +1 @@
+rn_("BQHAAAAHQh8STxWMG295cUQAANQd1R3WHdcdJh4nHigeKR5XAAHFsGAbiQABoEAAABo+oKAAAB9/AAggGjowAAABAAAAAAAIABAAAAC9C74LvwvzDfQN9Q2REo0TXho=")
\ No newline at end of file
diff --git a/api/search.index/3a5f66c30d0e.js b/api/search.index/3a5f66c30d0e.js
new file mode 100644
index 000000000..0c0103334
--- /dev/null
+++ b/api/search.index/3a5f66c30d0e.js
@@ -0,0 +1 @@
+rn_("BQBEAAADph5uxhkFAcAAAAPLH1NZGloaLB0tHY8dkB1sdSFIAABTH5MflB/7AmFvVwAAhaBgAAAdg7BgHYQAAbAAH7gAETSAAjswAAABAAAOAAUAtQkAAHkLAAA+GgAArRsFAKUcBQAbAqAwAAAas2V0")
\ No newline at end of file
diff --git a/api/search.index/3a7a4ef19678.js b/api/search.index/3a7a4ef19678.js
new file mode 100644
index 000000000..77f9213ea
--- /dev/null
+++ b/api/search.index/3a7a4ef19678.js
@@ -0,0 +1 @@
+rn_("FQFDAAAHcR8FPx9iZrcd0x8FAEYAAAViH3KgHTFHAABjHQ0fDh9yH/MDAmZsOzAAAAEAAAcAAgCMEgAATBQGACUARQAABQsfYREZwhnDGXuEsEAcbwABIYAE")
\ No newline at end of file
diff --git a/api/search.index/3acbfb128c10.js b/api/search.index/3acbfb128c10.js
deleted file mode 100644
index 559ddd14c..000000000
--- a/api/search.index/3acbfb128c10.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBDAAAG9R9k6R/zAgFvAcYYAAATAISgQAAAGiewkB+FAAGgEAAAH0URQQDy3A0AAJsAIUYAAIAagRp4HgUAQgAAMxoeGx4FHyMfbB0bKwKwwB+8AAFjZisCsDAY+AABbW7rhKAwAAAarwFABQ==")
\ No newline at end of file
diff --git a/api/search.index/3b01ef6859ff.js b/api/search.index/3b01ef6859ff.js
deleted file mode 100644
index 7d77c3ce6..000000000
--- a/api/search.index/3b01ef6859ff.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBHAAAGzx9kyB2LHysCsBAODgtvbG21AUEAAAeOGwZEH2F2thq3GncbeBtHHEgcch1zHbsevB5rH2wfhQFEAAAH1x5gPhw/HEAcQRxCHEMcRBxyc7oauxq8Gr0avhq/GsAaZh1nHRMBArCAH64AAXN3890ZAABVA1ABGwKwAAudDQFtbvsDYWV1")
\ No newline at end of file
diff --git a/api/search.index/3b39296a892d.js b/api/search.index/3b39296a892d.js
deleted file mode 100644
index cbc15efa0..000000000
--- a/api/search.index/3b39296a892d.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQEBoHAAAByPZjswAAABAABMAAkAsAsCAOUNAQCfDwAAGxQgANUaAADYGiAAXRwBAF8dAAD3HgAARQBBAAAGzx9kew58Di4cyB2LHwUBwAAAQJEO7hjvGCEaUB8HdhtzdHuEoSAAAB+EFKAA")
\ No newline at end of file
diff --git a/api/search.index/3b4f43acd6be.js b/api/search.index/3b4f43acd6be.js
new file mode 100644
index 000000000..e3e6690fd
--- /dev/null
+++ b/api/search.index/3b4f43acd6be.js
@@ -0,0 +1 @@
+rn_("BQBGAAAGvx9mOR/zAwFzAbATAAA1AEAAABP2GfcZadoa2xoiHSMdBQBDAAAA9RlzRB9jAgOwEBtiAAFpbnPzWBIAABwJVwQFAcAAAAehHwHxHmFvBQHEAAAC2x8B1x9hbyOFAqAAAAAfamRmBQHEAAAGzB8Dux9vdBsCoOAAAB/saG83AYOHoDAAAB8VoYAAACAEoEAAAB9UoFAAAB9rLIgDBQBJAAAGVh9iXB0TggKwUBt/AAFmd0sDoIAAABpwoEAAAB9YYWVpBQBBAAACeBJlqgsbArBAH0IASWN0BQHAAAAQBw4IDhH+D8UdbnIbA6CQAAAfh7CgHZoCCmFlc9cHAMewYBqnAAEATAoM874EAAABAAEA")
\ No newline at end of file
diff --git a/api/search.index/3b5c01b0e2a5.js b/api/search.index/3b5c01b0e2a5.js
deleted file mode 100644
index 72ea70df9..000000000
--- a/api/search.index/3b5c01b0e2a5.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAHeB8ibxpwGlodb3kFAcAAABV+HKoeBHseaXnDAISgQAAAGx+gcAAAGmkKCAQ6MAAAAQAAAAAACgAQAAAAvA9sEm0SmROaE5sTnBMCGjQbih6tHwEEADswAAABAAAAAQIAKRUBAJEX/gD7AmFl")
\ No newline at end of file
diff --git a/api/search.index/3b817970c78e.js b/api/search.index/3b817970c78e.js
new file mode 100644
index 000000000..ac3faeedb
--- /dev/null
+++ b/api/search.index/3b817970c78e.js
@@ -0,0 +1 @@
+rn_("BQHAAAAGuR4BNh1maaUARQAABPceZXUbdhucHE8dqB2lHqke6B7sHlYfwx8VAEMAADAdGh4aVhpXGnOYGcUZ+wNvdXk=")
\ No newline at end of file
diff --git a/api/search.index/3ba7867968b5.js b/api/search.index/3ba7867968b5.js
deleted file mode 100644
index e0861e54e..000000000
--- a/api/search.index/3ba7867968b5.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("ZQBBAAAjMRUyFfwdZp8LqBipGKoYqxisGK0YBQHBAAADdhtWdxp4GnkaehpvG3AbanAxQgAAdxt4G7sevB4hSAAABh8HH04fNQBCAAABYB9pCx93H4MfsR87A6CgAAAfl3B0dSOEA6AQAAAdcKAwAAAfDGlzdPOBAmluKwOwYBxKAAGgEAAAGsRncnT7A2FydQ==")
\ No newline at end of file
diff --git a/api/search.index/3ba8c26a5da3.js b/api/search.index/3ba8c26a5da3.js
deleted file mode 100644
index 820bd2325..000000000
--- a/api/search.index/3ba8c26a5da3.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBCAAAAjBJziQ+LEvUARgAACasfcmIaSRtKG0sbTBtNG04bTxtTHaMepB6lHqYeHh8fHygfMUAAAOEN4g0TGzUdAQABoRAAAB+kdPKLCQAA3gBbA6DAAAAdoW1ycwUBwAAAAVkSAjgdZXkFAEUAAAzgH2EIH/FAAACTD8oZzRl3HDsdPB1AHUYd5R3mHfsdOh87H0AfgB+BH2sDoKAAAB8YYXJzMUgAAEAd5R3mHTsfJwABhbBAG5cAAaBQAAAfTIAcTwARu6BAAAAfZFAABzswAAABAAApABMAxQ8KAGQSAACOEwAA8BgDAGgZAADbGQAAKBoBAIAaAQBfHAAAexwAAGsdAQB0HQUAth0AANgdAADyHQEAeB4AAOUeAAAyHwAANB8BAAUBwAAAAg4dBA0dZGcFAEQAAAdzH3D3GPMAAXQBfBkAAAUAQgAAA+Mdd4UX/wCFTTkZDIvaBmACAQACoEAAAB8NoKAAAB6 [...]
\ No newline at end of file
diff --git a/api/search.index/3bb127a8381d.js b/api/search.index/3bb127a8381d.js
deleted file mode 100644
index 6c7573cc6..000000000
--- a/api/search.index/3bb127a8381d.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAXZx9oHwqjH3B0QwIDsJAfvgABoHAAAB+TaXBzAbkZAABRQAAAbQtuC80YzhihGuIddQBAAAA2PR3VHkMfsB9iLBVyGXMZDhunHKgcSh08H/MEAXLyWBIAACkJBQHAAAAElh8CaxNveQUBwAAAAzUdBFIfYW9hRgAA0B3RHdId0x3UHdUd1h0VAEQAAAbvH2SnH9sf8wICYmkBfx8AACFDAABXHRkesx4FAUUAAAn/HhWiHaMdZHPJGfsCYW+XAQCGoMAAAB61oHAAAB9moEAAABiTNAFE9LEYAACKAzMBbwAVAEMAACFxGYIbgxtljg8IGxUAQQAABO0eZsQfxR+1AEIAAAQNH2ZnE2gTaRNqEzwbPRtgHWEdYh1jHcgfyR/7AmFvJQBDAAAYPB06H2dpHNkd2h0hRwAAxxnIGbgaBQHAAAAUcBkxHSRxHMwdzR1lb2UAQQAABmEaYpMLlAt+Dn8OgA6BDoI [...]
\ No newline at end of file
diff --git a/api/search.index/3cccee627368.js b/api/search.index/3cccee627368.js
new file mode 100644
index 000000000..8486d335b
--- /dev/null
+++ b/api/search.index/3cccee627368.js
@@ -0,0 +1 @@
+rn_("NQBAAAAj6xmGG6UfdB0aHhpWGlcaAQMBsCAdogI7dTowAAABAAAAAAARABAAAAC1D7YPtw+4D7kP9Rj/GOQZhByFHBcdGB1LHX8dsR3vHWgfdh8FAUMAAAanHwJAH2JytB4jhwKgQAAAHvlmczsDoHAAABsbYW9yBQHAAAARXRI5FQm/HW50BQBEAAAAzR1zaB0FA8AAAAgNHgShGwOCEjCoCVsLXAsgHWRscngVAEYAABbvHvAeZisbLBsFAE8AAAa/H2Y5H/MAAnJzAUMfAAArA6EwAAAfcKDAAAAeGmJscvcKAMqgEAAAGoWggAAAGxygMAAAEmGgYAAAH4VATKILOzAAAAEAAPYAEwB1AQIAmAHZAJMEAACoBAAAtAQHAGEIAACOCQEAjQsAAGYSAABuEgAAfBkAAJgZAADFGQAAEhoBAJYaAACpGgAALh0AAFUdAAD0HQAA")
\ No newline at end of file
diff --git a/api/search.index/3d0b125dc437.js b/api/search.index/3d0b125dc437.js
new file mode 100644
index 000000000..4a02d69c1
--- /dev/null
+++ b/api/search.index/3d0b125dc437.js
@@ -0,0 +1 @@
+rn_("MUAAAB0aHhpWGlcaBQFDAAAGpx8CQB9icrQeI4cCoEAAAB75ZnMbAqBwAAAbG2FyBQBEAAAAzR1zaB23AADGoIAAABscoDAAABJhoGAAAB+FAAigCzowAAABAAAAAAAKABAAAACOCY8JmBnFGRIaExqWGqkaLh1VHfQd")
\ No newline at end of file
diff --git a/api/search.index/3d1ce27cc9f0.js b/api/search.index/3d1ce27cc9f0.js
deleted file mode 100644
index e491cb1c1..000000000
--- a/api/search.index/3d1ce27cc9f0.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBBAABE8xn0GfUZ9hn3GXKbCRUAQwAAIB8aix2MHXOMHI0cNQFAAAAECR8L7h5ibewP7Q/uD+8Pa4SwQBNmBxegIAAAGJAMEAI7A6DAAAAfYWVzdA==")
\ No newline at end of file
diff --git a/api/search.index/3d2999f23704.js b/api/search.index/3d2999f23704.js
deleted file mode 100644
index 9b8bab1ae..000000000
--- a/api/search.index/3d2999f23704.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBFAAABGh9phR4bArCQHuIAAWVpIUUAAIcciBzsHfOFAnN2BQHAAAAF/B4HAB5mdAUAQwAAEVAbURtpYhs7A6AgAAAfKWxudSFEAAD+Hf8dVh8FAcAAABJiHGMcFPkeXR9pdAUBwAAAL6IftB+1HyeZHhUfFh9hciFDAAAPG4AegR4FAEEAAAaaH3SsHqcDAIagoAAAH6agQAAAGYc0kAI6MAAAAQAAAAAADgAQAAAAfxKAEuoYnR2eHa0drh2NHo4eIR8iHz0fPh+dH54fBQBIAAAG4h9ksh8FAEoAAAbuH2TVHwUASgAABu0fZNQf+wJhaQUARgAABtgfZKEf84EDZW1uAYIDoVAAAB/ooCAAAB7goIAAAB+QZHV3KwKgIAAAH1RvckMEA6BgAAAdsLBwH1UADmJlcPPrGAAASQMBAAUARgAAEAEeJR9yqh3zAgFw9+kYAABpAgEAKQMBAA4AxgD7AmN09wUAh6B [...]
\ No newline at end of file
diff --git a/api/search.index/3d3a7df3d1ff.js b/api/search.index/3d3a7df3d1ff.js
new file mode 100644
index 000000000..a689251d5
--- /dev/null
+++ b/api/search.index/3d3a7df3d1ff.js
@@ -0,0 +1 @@
+rn_("UUAAAFkaWhosHS0djx2QHcUAQgAABYUaaB0OHg4fDqMOpA5IGmAaYRpiGmMaZBplGmYakwCEsCAZEwNnsDAZ7wNVACUCOjAAAAEAAAAAAAwAEAAAAI4TJhonGigaKRqjHKQcaR3hHSseiB7FHjwf")
\ No newline at end of file
diff --git a/api/search.index/3d437a10cb56.js b/api/search.index/3d437a10cb56.js
deleted file mode 100644
index 5ade742df..000000000
--- a/api/search.index/3d437a10cb56.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUQAABQaFRoWGhcaBQHAAAAvoh+0H7UfJ5keFR8WH2FyIwQDoBAAAB6ssFAe+QBkZXBzAeoYAAD7AmJjGwKgQAAAHoNkZQ==")
\ No newline at end of file
diff --git a/api/search.index/3dac3c6c4ad7.js b/api/search.index/3dac3c6c4ad7.js
deleted file mode 100644
index 70b3d4185..000000000
--- a/api/search.index/3dac3c6c4ad7.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("NQBAAAAj2Rl0G5IfdAsaDBpEGkUaAQMBsCAdkAI6dTowAAABAAAAAAARABAAAACoD6kPqg+rD6wP4hjsGNIZchxzHAUdBh05HW0dnx3cHVUfYx8FAUMAAAaUHwItH2Jyoh4jhwKgQAAAHuZmczsDoHAAABsJYW9yBQHAAAARThIoFQmsHW50BQBEAAAAuh1zVh0FA8AAAAj7HQSPGwNzEjCfCVELUgsOHWRscngVAEYAABbcHt0eZhkbGhsFAE8AAAasH2YmH/MAAnJzATAfAAArA6EwAAAfXaDAAAAeCGJscvcKAMqgEAAAGnOggAAAGwqgMAAAElKgYAAAH3JATKILOzAAAAEAAPUAEwB0AQIAlwHYAJAEAAClBAAAsQQHAFoIAACFCQEAgwsAAFcSAABfEgAAahkAAIYZAACzGQAAABoBAIQaAACXGgAAHB0AAEMdAADhHQAA")
\ No newline at end of file
diff --git a/api/search.index/3dc6c2556cdd.js b/api/search.index/3dc6c2556cdd.js
deleted file mode 100644
index 7d94811ba..000000000
--- a/api/search.index/3dc6c2556cdd.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUEAAKETTR1OHTUBQwAAF7kebR8AdBlmc5YYlxiYGJkYBQBAAAADkB5qhh4VAEMAABFTH28fZXofex9jAQOgIAAAHd5pbHM6MAAAAQAAAAAABwAQAAAAJhUnFYYXWhpHHUsdUB3pHd8AhbAAEocIfKAQAAAPkSlABA==")
\ No newline at end of file
diff --git a/api/search.index/3e909e28b29d.js b/api/search.index/3e909e28b29d.js
new file mode 100644
index 000000000..67e070410
--- /dev/null
+++ b/api/search.index/3e909e28b29d.js
@@ -0,0 +1 @@
+rn_("FQBFAAAIWB9jNR3WHwUBwAAAAzYbBAUfYW/zAAJ0dfeGEgAAmQEBAAEAgQcBAJABRQBAAAAFXh1lCBk0GzUbWh1bHRsCsGAdXwABZnQbAqBgAAAcm2VvAQEDoEAAAB9csEAdwAABoAAAABo8Zm1zOzAAAAEAABQABgCwGQ4Aah0AAPkdAAAqHgAAsh8AAOwfAQAHDQCJoEAAAB6QoDAAABuEoEAAAB88oFAAAB00oCAAABkHoIAAAB/kJwkHOjAAAAEAAAAAAA0AEAAAAKoPARACEAMQBBAFEOkY6hjxGbcclh5GH6sf2h8=")
\ No newline at end of file
diff --git a/api/search.index/3e98e3696d83.js b/api/search.index/3e98e3696d83.js
deleted file mode 100644
index d769aa15a..000000000
--- a/api/search.index/3e98e3696d83.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBGAAAGlh5mZxoVAUYAAAaVHgg/H2J3ZRpmGlMBA6EgAAAfVmNrczswAAABAAAGAAMAmwsBALANAwBJHAAAKwOgEAAAHd9MKoLBvhZrcnY=")
\ No newline at end of file
diff --git a/api/search.index/3f112898f456.js b/api/search.index/3f112898f456.js
deleted file mode 100644
index 6e3743080..000000000
--- a/api/search.index/3f112898f456.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("NQFDAAAXuR5tHwB0GWZzlhiXGJgYmRgFAEAAAAOQHmqGHhUAQwAAEVMfbx9leh97H/MBAmxzOjAAAAEAAAAAAAcAEAAAACYVJxWGF1oaRx1LHVAd6R07A6AQAAAPkWFmdPMAAWn0PxUAAAEA1gUBACFKAABqHGscuB37AmN0")
\ No newline at end of file
diff --git a/api/search.index/3f310a4112d9.js b/api/search.index/3f310a4112d9.js
new file mode 100644
index 000000000..c5b0eb1fd
--- /dev/null
+++ b/api/search.index/3f310a4112d9.js
@@ -0,0 +1 @@
+rn_("FQBCAAAAmxJzlg+aEvUARgAACb4fcnQaWxtcG10bXhtfG2AbYRtlHbUeth63HrgeMR8yHzsfMUAAAO0N7g0lG0cdAQABoRAAAB+3dPKUCQAA3gBbA6DAAAAds21ycwUBwAAAAWgSAkodZXkFAEUAAAzzH2EbH/FAAACgD9wZ3xmJHE0dTh1SHVgd9x34HQ0eTR9OH1Mfkx+UH2sDoKAAAB8rYXJzMUgAAFId9x34HU4fJwABhbBAG6kAAaBQAAAfX4AcYQARu6BAAAAfd1AABzswAAABAAApABMA0g8KAHMSAACeEwAAAxkDAHoZAADtGQAAOhoBAJIaAQBxHAAAjRwAAH0dAQCGHQUAyR0AAOsdAAAEHgEAih4AAPgeAABFHwAARx8BAAUBwAAAAiAdBB8dZGcFAEQAAAeGH3AJGfMAAXQBjhkAAAUAQgAAA/Ydd5gX/wCFAUPNTq1RBmACAQACoEAAAB8goKAAAB6 [...]
\ No newline at end of file
diff --git a/api/search.index/3f31a77591f0.js b/api/search.index/3f31a77591f0.js
new file mode 100644
index 000000000..814ea6d76
--- /dev/null
+++ b/api/search.index/3f31a77591f0.js
@@ -0,0 +1 @@
+rn_("BQBAAAAExR5j8B3zAwFzAWcdAAATAAOggAAAHoigMAAAHR9mcnQBmQ8AAEMAhKBAAAAZeqAgAAAdILAQGYcAAUkABPKsCQAA4Ak=")
\ No newline at end of file
diff --git a/api/search.index/3f743c7d9e99.js b/api/search.index/3f743c7d9e99.js
deleted file mode 100644
index b9cd2ad41..000000000
--- a/api/search.index/3f743c7d9e99.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBFAAAG2R5iFBsFAcEAAAIVGwITG2J08wABdPReEgAAIwEBAAsHRQJCAAAkfB59HlEfGswfzR8FqR1ja3fQGdEZwhrDGuQdKwKgQAAAHEVlaQUBRAAAD90fEngceRxjcmQaBQHAAAAjUhtTG4seCQAeYW+3DACIsDAZzwS9oHAAABx6oDAAABrENJgS9ZYPAAABADkADgrjAA==")
\ No newline at end of file
diff --git a/api/search.index/401a403e847c.js b/api/search.index/401a403e847c.js
deleted file mode 100644
index 4fce0b662..000000000
--- a/api/search.index/401a403e847c.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBFAAAFTx9yjh0VAEMAAAbiH2Q2G7If+wJlaTFHAABRHfoe+x5fH/UARgAACasfcmIaSRtKG0sbTBtNG04bTxtTHaMepB6lHqYeHh8fHygfBQHAAAABWRICOB1leWMAA7BgHtMBBGR0dvdtGQAAAQABAJ4BmQH6AjIABQHAAABSjhqPGpAakRqSGpMaVJsbnBudG54bnxugG2t2BQBLAAAYrh+vH3eCHvsDbHB0cwCEoDAAABUrIUgAOzAAAAEAAA0ABQCoBAAAlQgDAFISAAB9EgAAPBQGAA==")
\ No newline at end of file
diff --git a/api/search.index/404c63ad2a9d.js b/api/search.index/404c63ad2a9d.js
new file mode 100644
index 000000000..1511d3b0f
--- /dev/null
+++ b/api/search.index/404c63ad2a9d.js
@@ -0,0 +1 @@
+rn_("MUgAAIQfiB+bH6MfMUIAAKMesR7pHvMeBQHAAAAM8h8N0x9haA8Hh6CAAAAfpaCAAAAfrqFQAAAf+6CgAAAf3R4AHA==")
\ No newline at end of file
diff --git a/api/search.index/405c1bb94daa.js b/api/search.index/405c1bb94daa.js
new file mode 100644
index 000000000..b2ecbf72b
--- /dev/null
+++ b/api/search.index/405c1bb94daa.js
@@ -0,0 +1 @@
+rn_("QUIAAO0ZkhqTGusdih5lAEMAAAasHXL7GfwZ/Rn+Gf8ZABoBGhsCoPAAAB9yYXIFAEMAAARdH3WcG/MEAW/y9BgAABkBZQBIAAAGEB9ysByxHLIcsxy0HLUcthzHAQCFoKAAAB4JoMAAAB4MGCAF8pANAACtDPsCZWk=")
\ No newline at end of file
diff --git a/api/search.index/409bc66657e0.js b/api/search.index/409bc66657e0.js
new file mode 100644
index 000000000..ead1a4596
--- /dev/null
+++ b/api/search.index/409bc66657e0.js
@@ -0,0 +1 @@
+rn_("AQEAOzAAAAEAAAABAgA6FQEApBf+AAUARgAABgggZPwf8wEBYQGDDgAANwAAxaAAAAASdqBwAAAfgaCAAAAdUwABSCEBZgsAAA==")
\ No newline at end of file
diff --git a/api/search.index/40cabf03ba50.js b/api/search.index/40cabf03ba50.js
new file mode 100644
index 000000000..d90f61665
--- /dev/null
+++ b/api/search.index/40cabf03ba50.js
@@ -0,0 +1 @@
+rn_("FQBDAAAUBB9dH3XgGZwbFQBDAAAEbR1mux+8HxUARgAABL0eZswfzR9TgQOgAAAADk1vc3RjAAOgIAAAGoVkZ2/0oQ8AAO8DZAUZAQ==")
\ No newline at end of file
diff --git a/api/search.index/40e2c3183bd4.js b/api/search.index/40e2c3183bd4.js
deleted file mode 100644
index 69347e51f..000000000
--- a/api/search.index/40e2c3183bd4.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQFDAAAFxR0GpB90d/Edvh4FAUMAAAaWHQaXHWJv2hgbAqDgAAAe+WFjKwKwMBOjCOZhZTFBAAAvHDAcMRwyHAEBADswAAABAACLAAIAGQ4AAPwPigDzAAJldfQdDgAAShEBACsAAQEAOzAAAAEAANkAAgBREgAAIBbYACsCoBAAAA+FaXWVAEEAAAQgGmaJGYoZ8xn0GfUZ9hn3GREbQR9CHwUARAAAEAsaDBpzhhkbAqAgAAAVIGJyBQBAAAAG9R9k6R/7AmRyBQHAAAA3oRuiG7Ed/R0LlR1ucjetAIygkAAAG4KxQB++AAGgYAAAH6uhEAAAH3gA6QNlBTBxuQc7MAAAAQAA3AAEALIJAQCICwAAnQzYAPoPAAA=")
\ No newline at end of file
diff --git a/api/search.index/40e93cbfd0b7.js b/api/search.index/40e93cbfd0b7.js
deleted file mode 100644
index 437fc3786..000000000
--- a/api/search.index/40e93cbfd0b7.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUMAANkZdBuSHxUAQgAAAVofafYN9w0hRwAAvhm/GSwbJQBGAAABWB1p1hjXGN8ZAQYAOzAAAAEAALEAAgCrHFgAHR5YACUASwAABM4fZnYf8R/yH/sCcXJRRAAAShJLEkwSTRJFFUYV9wMAh6BQAAAZxhTgDDowAAABAAAAAAAfABAAAACSC5sNnA2dDZ4Nnw2gDaENog2jDaQN+Q/EGLcZuBnwGfEZ8hkLGgwaKhpEGkUagx2EHbodzx3eHakeuR5tH+Af")
\ No newline at end of file
diff --git a/api/search.index/41e001ec1d37.js b/api/search.index/41e001ec1d37.js
deleted file mode 100644
index f1670e4d3..000000000
--- a/api/search.index/41e001ec1d37.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQFBAAAFZRwQ1BjVGGVzGxUcFQUBwQAABAofDLYfaW/7AmVvFQBCAAAGRB92ax9sHyOCA6BAAAAfFLAAH64AAWluc/sCYXI=")
\ No newline at end of file
diff --git a/api/search.index/423c09ca92d6.js b/api/search.index/423c09ca92d6.js
deleted file mode 100644
index 61055550b..000000000
--- a/api/search.index/423c09ca92d6.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUIAAPAZ8RnyGRUARQAABXAfYw8fEB8FAEkAAAawH2I8H1OFA6AAAAAbiWZzd1MAA7AwGy0CyGRoafKRDwAAbgs=")
\ No newline at end of file
diff --git a/api/search.index/4249bbf42de4.js b/api/search.index/4249bbf42de4.js
deleted file mode 100644
index 69a63bd60..000000000
--- a/api/search.index/4249bbf42de4.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("ZQBCAAADzRlhchNzE3QTdRN2E3cTeBMBAAOgMAAAEmigEAAADpOwIB2QAjphZXU6MAAAAQAAAAAAEQAQAAAAqA+pD6oPqw+sD+IY7BjSGXIccxwFHQYdOR1tHZ8d3B1VH2MfSwOwIBiaAAGgYAAAGtRucHRrA6AAAAAErmRudA==")
\ No newline at end of file
diff --git a/api/search.index/42862e55a77e.js b/api/search.index/42862e55a77e.js
deleted file mode 100644
index 0df67639a..000000000
--- a/api/search.index/42862e55a77e.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("QUIAANsZgBqBGtgdeB5lAEMAAAaaHXLpGeoZ6xnsGe0Z7hnvGRsCoPAAAB9fYXIFAEMAAARKH3WKG/MEAW/y4RgAABoBZQBIAAAG/R5ynhyfHKAcoRyiHKMcpBzHAQCFoKAAAB33oMAAAB36GCAF8oQNAACnDDsDoNAAAB2hZWl1BQBAAAAQ8Q+yHW6vBBUAQAAAClwddfsN/A3RQAAArwvjDeQNVBKoGqkaqhqrGqwarRqiHaMd+R5dH9UCQQAAJmMbZBuWHQaXHQjoH2JvcrsNvA29Db4Nvw3ADcENwg3DDdoYcRnVGYIbgxsFAcAAAA9mHwgeHWFlNwAAhaAwAAATnbAwD+UAAbBgHbMBTjhAQDswAAABAAANAAUApAQAAHkICQCODwAA+RYAAAgbAAAvD8mgQAAAHp2gEAAAH6uwsB2zAU6gIAAAGK8AE44K")
\ No newline at end of file
diff --git a/api/search.index/42b8557f6232.js b/api/search.index/42b8557f6232.js
deleted file mode 100644
index 5b37ed229..000000000
--- a/api/search.index/42b8557f6232.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHBAAACmRoFmhxhZQUBwQAAApgaBZkcYWVrA6AAAAAPpjEyM/UAQAAABcYZdZILmw2cDZ0Nng2fDaANoQ2iDaMNpA23GbgZuh3PHakeBQLBAAAQjQ8YGxCnD5EdA0YfZm5zMUMAAIsbqB2UHv4eBQHBAAAFzx0GtB5mbjUAQAAABFofcIMdhB25Hm0fBQHAAAAHjx8B3x5hbwUBxAAAAskfAcUfYW8jhQKgAAAAH1lkZgUBxAAABrofA6kfb3QbAqDgAAAf2mhvZzQBiqBQAAAdBKAwAAAfA6GAAAAf8rBAHz0AAaBAAAAfQi6YBzowAAABAAAAAAAJABAAAACuD68PsA8JHQodEh2nHvAeEh+ZHwEAArBAHo8AVaAgAAAfLmVyOjAAAAEAAAAAADkAEAAAAB4OHw4gDiEOIg4jDiQOJQ4mDicOKA4pDioOKw4sDi0OLg4vDjAOMQ4yDjMONA41DtoZ/Rn+Gf8ZYRp [...]
\ No newline at end of file
diff --git a/api/search.index/42d8f6f633e6.js b/api/search.index/42d8f6f633e6.js
deleted file mode 100644
index 07ebfabda..000000000
--- a/api/search.index/42d8f6f633e6.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBLAAAG9R9k6R8bAqEwAAAf6GFzZQBEAAAJOB9wPRo+Gj8aQBpBGkIaQxpVAUAAABT5GvoaCI8dY3R+D38PgA+BDzQaNRoFAcsAAAS7HwXGH3Fz8wgBcDswAAABAAAGAAEAKh0GABUATQAABM4fZvEf8h8jAAOgEAAAHD2ggAAAHxNtc3QBfQ8AAFcDAoagcAAAHF+g8AAAH1AIqAb0QhUAAAEAtwMBAFsDoFAAABn8YWVp")
\ No newline at end of file
diff --git a/api/search.index/43417dd343d8.js b/api/search.index/43417dd343d8.js
deleted file mode 100644
index ff49f5908..000000000
--- a/api/search.index/43417dd343d8.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBDAAAU8R5KH3XOGYobFQBDAAAEWx1mqB+pHxUARgAABKseZrkfuh9TgQOgAAAADkFvc3RjAAOgIAAAGnNkZ2/0lA8AAOwDYQUaAQ==")
\ No newline at end of file
diff --git a/api/search.index/4347c953234a.js b/api/search.index/4347c953234a.js
deleted file mode 100644
index bce4b87fc..000000000
--- a/api/search.index/4347c953234a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("8UYAACYbJxuWHssezB7NHs4ezx7QHtEe0h7YHtwe3R5NH6wfBQBIAAAAhh5zUB0rArBAGn4AAW9yMwEDoGAAAB8wY2ZvOjAAAAEAAAAAAAcAEAAAABUOFg6dDmcaEhsZGxobJh8=")
\ No newline at end of file
diff --git a/api/search.index/4365b1e2ccee.js b/api/search.index/4365b1e2ccee.js
new file mode 100644
index 000000000..fcd4f5289
--- /dev/null
+++ b/api/search.index/4365b1e2ccee.js
@@ -0,0 +1 @@
+rn_("BQBFAAAGpR5idRoFAEcAABacH50fZqQeE4MCoDAAAByIcHMbAqBwAAAd9WFlCQKhAAAAH4agsAAAH0Nhb0sDoEAAAB6JoKAAAB7KY3F0BQBJAAAGhR929B0VAEwAAAYCIGS6H+4fYUMAAKUZphmnGagZqRmqGasZ+wJhZvMAAXQBYAsAAAUBwAAABl4fAYweM3EFAcAAAAK4HQQkH2lvRwKEhqAwAAAeyKAgAAAei6BwAAAfE6AwAAAeycCIAysCoGAAAB3yY3QbAqBgAAAelWFvVx4AiaCQAAAd86DwAAAfd6FAAAAfrxyRFgGSDgAA")
\ No newline at end of file
diff --git a/api/search.index/43ac8d7287bb.js b/api/search.index/43ac8d7287bb.js
deleted file mode 100644
index 354d58190..000000000
--- a/api/search.index/43ac8d7287bb.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBCAAAAjBJziQ+LEjFBAADhDeINExs1HQUBwAAAEiUbKh8ZMx/HH2lvEwADsDAcWAMNsDAcWQABZmlwOjAAAAEAAAAAAA4AEAAAAMkYexp8GnEbgxyEHIcdjx3BHgYfBx9OH1sfXB+VHyODAqAwAAAbdWZzFQBBAAAgTxxQHAsec7Yd5R4FAEQAAAdzH3D3GPMAAXQBfBkAAPsDY29zBQBDAAAD2h5pQh0jAwKgcAAAH5xwdPRoGgAA7gABAAEA+4QBAUg=")
\ No newline at end of file
diff --git a/api/search.index/43adee8a9029.js b/api/search.index/43adee8a9029.js
deleted file mode 100644
index 03ba494fc..000000000
--- a/api/search.index/43adee8a9029.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBGAAAGzx9kyB2LH9UAQgAABM4fZlEcUhxTHFQcVRxWHFccfx61HroevR52H/Ef8h+TAISgMAAAGl6gcAAAHHcSAQH0LxwAAAEAAQABAA==")
\ No newline at end of file
diff --git a/api/search.index/43db80d2baf4.js b/api/search.index/43db80d2baf4.js
deleted file mode 100644
index da81e77e7..000000000
--- a/api/search.index/43db80d2baf4.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("1QBCAAADmxl0ogujC6QLpQumC6cLqAupCzgVORWMG0YfTB9PHwUARQAABtkeYhQbIUQAAM0YzhjiHQUBwQAAAhUbAhMbYnTzAAF09V4SAAAjAQEACwfXBAUBwAAANhQeFR4WHhceBDYaY25RQgAAqBqpGqoaqxqsGq0a+wJldQUBwQAABlkdAeAZYm8rAqAwAAAfUmFyBQBDAAAYrh+vH3eCHkUCQgAAJHwefR5RHxrMH80fBakdY2t30BnRGcIawxrkHSsCoEAAABxFZWkFAsEAABQJHQodEc8ZjB4UBx0+HWVseAUBQwAAD90fEngceRxjcmQaBQBEAAACGBty6BjzAAFmAXsTAAD7AmRuAYIDoVAAAB/ooCAAAB7goIAAAB+QZHV3KwKgIAAAH1RvckMEA6BgAAAdsLBwH1UADmJlcAHrGAAAIUIAAFIbUxuLHvsCY3QbAqCQAAAeAGFvBQHAAAA1gxyEHIcdjx0 [...]
\ No newline at end of file
diff --git a/api/search.index/43f9ba6c063e.js b/api/search.index/43f9ba6c063e.js
new file mode 100644
index 000000000..ad2ca0f03
--- /dev/null
+++ b/api/search.index/43f9ba6c063e.js
@@ -0,0 +1 @@
+rn_("FQBEAAADCh5slhsTHzFIAACEH4gfmx+jHzFCAACjHrEe6R7zHgUBwAAADPIfDdMfYWgPB4eggAAAH6WggAAAH66hUAAAH/ugoAAAH90eABzzgQJwdisCoCAAAB9nb3I=")
\ No newline at end of file
diff --git a/api/search.index/442e120315e2.js b/api/search.index/442e120315e2.js
new file mode 100644
index 000000000..ff772b9e4
--- /dev/null
+++ b/api/search.index/442e120315e2.js
@@ -0,0 +1 @@
+rn_("BQBAAAADxB5p2x4jAgKgEAAAHXppczowAAABAAAAAAAIABAAAABXG1gbWRt8HH0cyx0WHhceBh8FAEIAAAL2H23pHyOHAqCAAAAf+mFrYwKEoKAAAB/voGAAAB1MBRQA86IXAAABAIkHFQBCAAAHIR9t1hnDGkOBhKAwAAAcSqCAAAAdsqCQAAAeDgJFADMAhLFgH98AAaAAAAANkRBRAPNbDgAAKQABAAUBwQAACAMeA9gdYXQxQAAAdQuQEpsSbRwBAwA7MAAAAQAA2AABAFMU2AABAAA7MAAAAQAA2QACAMALAACxDtgAGwKgIAAAHu1kdOcBAIagQAAAHW2gYAAAH7cgIRY6MAAAAQAAAAAAJAAQAAAArQSiCKMIGQ6WD6IPihKTEpQSmhJ7E08VpBjdGN4Y3xgAGa0Z+Rn6GYEaghpyG3MbjBuYGx8dSh1UHWwd2B0DHhIe0R4fH7sfvB8FAEgAAAb1H2TFHwU [...]
\ No newline at end of file
diff --git a/api/search.index/453d7decf245.js b/api/search.index/453d7decf245.js
new file mode 100644
index 000000000..2449b6f89
--- /dev/null
+++ b/api/search.index/453d7decf245.js
@@ -0,0 +1 @@
+rn_("FQBFAAAIWB9jNR3WHwUBwAAAAjYbFnwaXhxichsCoEAAAB8FYW/zAAJ0dfeGEgAAmQEBAAEAgQcBAJABRQBAAAAFXh1lCBk0GzUbWh1bHRsCsGAdXwABZnQbAqBgAAAcm2VvBQHAAAARpwuxGBIaDo8ZYXUBAAOgQAAAH1ywQB3AAAGgAAAAGjxmbXM7MAAAAQAAFAAGALAZDgBqHQAA+R0AACoeAACyHwAA7B8BABsCsAAJrAngZG4FAcEAAAM0HRKWGlUdcnUFAEAAAAQjGnWrCRsDoLAAAB91oDAAAA+lcXJ4BQBBAAAG/h9k4x8TiQKgQAAAH71tb0sDoCAAABiwoDAAAB6QYmdslzsAjKAwAAAbhKBAAAAfPKAgAAAZB6CAAAAf5KAgAAAd2DcpRzowAAABAAAAAAATABAAAACHAYgBiQGFBKoPARACEAMQBBAFEOkY6hiuGa8Z8Rm3HJYeRh+rH9of")
\ No newline at end of file
diff --git a/api/search.index/459a37dbfb8c.js b/api/search.index/459a37dbfb8c.js
deleted file mode 100644
index 15db595b6..000000000
--- a/api/search.index/459a37dbfb8c.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBIAAAG5R9kRx/BHyOBArBQG1QAAWZ0FQBIAAAG7R9kxh3UH5cAAIWgYAAAH/OggAAAHuqgwAAAHn4MgAPygw8AAF4Q")
\ No newline at end of file
diff --git a/api/search.index/45d631ad9b34.js b/api/search.index/45d631ad9b34.js
new file mode 100644
index 000000000..5eebfc40b
--- /dev/null
+++ b/api/search.index/45d631ad9b34.js
@@ -0,0 +1 @@
+rn_("BQHAAAABxQ8K6x1laQUBRAAAB4oeB6sfY3MCHgEBAbAAE38AAXM7MAAAAQAAFAAJABUOAAC/DwUApxoBAK8aAQDkGgEADRsBALscAQD/HQEA1x4BAEsDoEAAAB+XoIAAAB1kY2x0ZQBEAAAG/x9kfxyAHG8dcB2QH5Ef5h/zBQFj8hwZAAABABsCoCAAABinZW8FAEQAAAP2HXeYFwUBwAAAAzYVQE4OTw5QDlEOUg5hZfsCcnQ7A7CQH7gAEWFydQUAQQAABv4fZOMfE4wCoEAAAB+9bW8FAcUAAASrHQULHnFz+wJhbxUASQAABFwfZuwf7R8VAEkAAAbiH2TbHZ4fFQBMAAAG+R9kWx/VHxUATAAABvgfZFof1B/7AmFp5wEBhaCAAAAfDwQwBvSEDQAAhgsBAMQAJQBGAAAD6h1myxqMHY0dOwOgEAAADYVlaW8VAEIAAAPcGWF9E34TS4SgsAAAHomgYAAAG6a [...]
\ No newline at end of file
diff --git a/api/search.index/461e406aefca.js b/api/search.index/461e406aefca.js
new file mode 100644
index 000000000..49e6af6b6
--- /dev/null
+++ b/api/search.index/461e406aefca.js
@@ -0,0 +1 @@
+rn_("BQBFAAAGqB5meRoFAEIAAAb9H2TeH/sCaXQVAUYAAAanHghSH2J3dxp4GlMAA6EgAAAfaWNrczswAAABAAAcAA4ApQsBALwNAwCQDgEAOBsBAFscAACoHgAAsx4AAN4eBwDrHgAA7x4BADAfAABgHwAAnB8BAL8fAAA=")
\ No newline at end of file
diff --git a/api/search.index/4620beba0a79.js b/api/search.index/4620beba0a79.js
new file mode 100644
index 000000000..c09ee5e5b
--- /dev/null
+++ b/api/search.index/4620beba0a79.js
@@ -0,0 +1 @@
+rn_("BQHAAAADnx0AmBphcwUBwwAAF3wffR8S1x7YHmRzUwADoFAAAB4BZm1u8hAZAACxAEFAAABOC8oPyw/MDzka+wJ5emUARAAABv8fZH8cgBxvHXAdkB+RH+Yf8wUBY/IcGQAAAQAbAqAgAAAYp2VvBQHAAAADbhwADxlhcwUBwAAABDodUEkaShpLGkwaTRpOGmlzBQHDAAAXSR9KHxL/HQAeZHMFAEQAAAP2HXeYFwUBwAAAAzYVQE4OTw5QDlEOUg5hZfsCcnS3BwCIoAAAABJlsJAfuAARITgNOzAAAAEAABMABgBMAwQAixIAACYUBACeGQYAJh8AAOQfAAA=")
\ No newline at end of file
diff --git a/api/search.index/466427557d17.js b/api/search.index/466427557d17.js
deleted file mode 100644
index f807b7f77..000000000
--- a/api/search.index/466427557d17.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBEAAAG8B9klx/eHyMAAqCAAAAfRWNs9xcOAACHAAEAAQAmC10DoAJBQQAAcBJxEsUYyR2CH1sDoAAAAAmkZWt5")
\ No newline at end of file
diff --git a/api/search.index/46b3226a4d4a.js b/api/search.index/46b3226a4d4a.js
deleted file mode 100644
index 9f6ddac56..000000000
--- a/api/search.index/46b3226a4d4a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("YUUAAE4aTxpQGlEaUhpTGlQaAYECsUAfvgABsPAfhQABZ3MVAUsAAAdeHwUsH2JmpR3AHwUBwAAAAKQfBn0bZXQFAcMAAAxuHw+mH2Nm+4URQQg=")
\ No newline at end of file
diff --git a/api/search.index/46d46d98fecd.js b/api/search.index/46d46d98fecd.js
new file mode 100644
index 000000000..e3267a429
--- /dev/null
+++ b/api/search.index/46d46d98fecd.js
@@ -0,0 +1 @@
+rn_("NQBAAAAGHx1ppgmnCVkLWgsFAEMAAAa3H3cDHiMDAqBQAAAfK3N0AQcQAABlAEQAAAWeG3KzGLQYtRi2GLcYuBi5GGFBAABuGoMc3x3gHSQfZh+CH1MAA6BwAAAa02VtdDswAAABAAAQAAUAZQgKACweAQAYHwAANh8AAI0fAQCfAsigkAAAH4GgEAAAD8egcAAAH/OgIAAAGPKgIAAAH2UAAooP")
\ No newline at end of file
diff --git a/api/search.index/47a4293cfecf.js b/api/search.index/47a4293cfecf.js
new file mode 100644
index 000000000..f1267c2d5
--- /dev/null
+++ b/api/search.index/47a4293cfecf.js
@@ -0,0 +1 @@
+rn_("9QBAAAAF2Bl1nAunDagNqQ2qDasNrA2tDa4Nrw2wDckZyhnNHeIdux4xQwAAnRu6HaYeER8FAcEAAAXiHQbGHmZuNQBAAAAEbR9wlR2WHcsegB8FAcAAAAeiHwHyHmFvBQHEAAAC3B8B2B9hbyOFAqAAAAAfbGRmBQHEAAAGzR8DvB9vdBsCoOAAAB/taG9nNAGKoFAAAB0WoDAAAB8WoYAAACAFsEAfUAABoEAAAB9VLpgHOjAAAAEAAAAAAAkAEAAAALsPvA+9DxsdHB0kHbkeAx8lH6wfBQHAAAAE9R8DQR9mchUAQwAADsAfY8YaxxpDgQOgQAAAG1qwEBl9AAFhaW53CQCJoIAAABshsGAayAABsCAPmguQoDAAABikErEHOjAAAAEAAAAAACsAEAAAAFQLVQtWC4cSjxOkE6UY+Bj7GBUZFhmZGcYZ8xn0GTIawBrCGuEaLRtfHHgcaB1tHYEdxx3IHdQd1R3 [...]
\ No newline at end of file
diff --git a/api/search.index/47b105544231.js b/api/search.index/47b105544231.js
deleted file mode 100644
index 1dafe6888..000000000
--- a/api/search.index/47b105544231.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAGpx4BJB1maaUARQAABOQeZWMbZBuKHD0dlh2THpce1R7ZHkMfsB8VAEMAADALGgwaRBpFGnOGGbMZ+wNvdXk=")
\ No newline at end of file
diff --git a/api/search.index/47cf1f103bfb.js b/api/search.index/47cf1f103bfb.js
new file mode 100644
index 000000000..ed24f7513
--- /dev/null
+++ b/api/search.index/47cf1f103bfb.js
@@ -0,0 +1 @@
+rn_("BQBEAAAKfx93XhoFAEQAAAp+H3ddGvsCY3QxQQAAjw+HGqodVx8lAEEAAAQxG2JGG5wewB8rAqCAAAAboW92YUEAADcaOBpqHDcdxB7THngf+4QQQQI=")
\ No newline at end of file
diff --git a/api/search.index/47d034e40dd8.js b/api/search.index/47d034e40dd8.js
deleted file mode 100644
index 4e61fe995..000000000
--- a/api/search.index/47d034e40dd8.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AYMCoNAAAB+loQAAAB+2Y3AFAEgAAAeYH3PwHfMBAmZ386IOAAABAAEABQBAAAAJgxtmpwQlAEIAAA6tH2O0GrUaBB17hKAgAAAeexVAAA==")
\ No newline at end of file
diff --git a/api/search.index/47d532a88385.js b/api/search.index/47d532a88385.js
deleted file mode 100644
index 026044409..000000000
--- a/api/search.index/47d532a88385.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAFAhkZBhsHG2VpBQBLAAAAuh1zVh0FA8AAAFRKEksSTBJNEkUVRhUm1hjXGN8ZJ74ZvxksGxL2DfcNY25vcBUARAAAAKkecwweDR4TiAKgMAAAHblmcwUARgAABKgeYisbBQBFAAAAjRpz3hnzgQJucyFLAABqHGscuB0FAcAAAALJHwHFH2Fv8wMBcPKaGwAAhAEjgwKgAAAAH1lkZkUARAAADHcfcFkajR/YH/Qf9R8FAEMAABSRHJIcY0cVBQBEAAAEVx1jOxwzAAOgkAAAHVhmcnPyfgkAALIL/wCFoKAAAB1VKCggAYECoRAAAB93oHAAABuaZmwFAcAAAARJEgu3HW91FQBGAAAIZh9zwh7DHvd8AMuwMA+iAAGhAAAAHudATyQNAZYBAAA=")
\ No newline at end of file
diff --git a/api/search.index/485d2ae094f8.js b/api/search.index/485d2ae094f8.js
deleted file mode 100644
index 6d1daabfc..000000000
--- a/api/search.index/485d2ae094f8.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBBAAAG6x9k0B8ThgKgQAAAH6ptbwUATAAABqwfZiYfGwKgIAAAH09vdcsEsIAdswFOoKAAAB8JYXFzdBsCoDAAABsRZW8=")
\ No newline at end of file
diff --git a/api/search.index/48ce34125cd9.js b/api/search.index/48ce34125cd9.js
new file mode 100644
index 000000000..fb81f5863
--- /dev/null
+++ b/api/search.index/48ce34125cd9.js
@@ -0,0 +1 @@
+rn_("BQHEAAARsh4vHwVZH2VyEwUCoCAAABydYnL22RkAAAEAugABADUAwQDlAUEAAATCGhbNHs4eZnAcGlgcgx3OHc8d0B3RHdId0x0gHiEeIh4jHiQeJR77Am50")
\ No newline at end of file
diff --git a/api/search.index/48fccb348316.js b/api/search.index/48fccb348316.js
deleted file mode 100644
index ea5f31634..000000000
--- a/api/search.index/48fccb348316.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("JQBDAAAOrR9jtBq1GgQdIUEAAGsZbBk4HG8AhaBAAAAbSKBwAAAd97AgHQsB/gGhBAUBwAAAL6IftB+1HyeZHhUfFh9hciMDA6AQAAAerLBQHvkAZGVwcwHqGAAA+wJheQ==")
\ No newline at end of file
diff --git a/api/search.index/4900a44304e4.js b/api/search.index/4900a44304e4.js
new file mode 100644
index 000000000..ca19ac7d7
--- /dev/null
+++ b/api/search.index/4900a44304e4.js
@@ -0,0 +1 @@
+rn_("IUIAAAIaAxoEGhUARQAABYMfYyIfIx8FAEkAAAbDH2JPH1OFA6AAAAAbm2Zzd1MAA7AwGz8CyGRoafKeDwAAcws=")
\ No newline at end of file
diff --git a/api/search.index/490be672c101.js b/api/search.index/490be672c101.js
new file mode 100644
index 000000000..4a606cc0c
--- /dev/null
+++ b/api/search.index/490be672c101.js
@@ -0,0 +1 @@
+rn_("NQBCAAAW+B/5H2RaH1sf1B/VHwUBwQAAAfgZAq4aYXUrBKBQAAAY97CQHS8CXaBAAAAY72JzdHa1AUAAABSfHqAeANcYbXOpD7UTthO3E7gTuRO6E5AbkRtJHXYddx3fAMWgIAAAHb+gkAAAGnsAAgoK")
\ No newline at end of file
diff --git a/api/search.index/4913669cd504.js b/api/search.index/4913669cd504.js
deleted file mode 100644
index 3df854908..000000000
--- a/api/search.index/4913669cd504.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUUAAG0bbhurHQUBwAAAgK4Nrw2fGHAZORxFHB0dMR15HwINHWh5BQBGAAAGrB9mJh8FAEUAAAZDH2JKHQUAQAAABLMeY90d8wICc3cBVR0AACsCoGAAAByPYWkVAEMAAARbHWaoH6kfFQBGAAAEqx5muR+6HwUBwAAAFL4fvx81QB3lHeYdOx9hZccCAIagwAAAH26g8AAAH6awAA5BDfkkYAbzpQkAAP4J5ghnDgCIoJAAAB1LoDAAAA56oIAAAB52NAEXOzAAAAEAAF0AFgCfBAEAaAgBALALAgDlDQEAkg4AAIwPAACZDwAAnw8AAE4SAACgEwAAGxQgACgVAADnGAAADxoBABIaAQDVGgAA2BogAHMbAABdHAEAXx0AAPceAACHHwAA")
\ No newline at end of file
diff --git a/api/search.index/491eb1e9a6f2.js b/api/search.index/491eb1e9a6f2.js
deleted file mode 100644
index bb1a3dd0e..000000000
--- a/api/search.index/491eb1e9a6f2.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("RQBCAAAG7x9kHxubHG4fpx/bHysCoGAAAB0SZnQVAEQAAASPHmXaGYcbi4SwYB72AOmwAA39ADmgAAAACYxkAQAFAEUAAAaTHmJjGgUARwAAFokfih9mkh4TgwKgMAAAHHZwcxsCoHAAAB3iYWUJAqEAAAAfc6CwAAAfMGFvSwOgQAAAHnegoAAAHrhjcXQFAEkAAAZyH3bhHQkCZlOJomZzoGAAAB6DYW8XDwKIoJAAAB3goPAAAB9koUAAAB+cDJEWAYYOAAD7A2V1eQ==")
\ No newline at end of file
diff --git a/api/search.index/4aaa6470bb2d.js b/api/search.index/4aaa6470bb2d.js
deleted file mode 100644
index 3edc54a80..000000000
--- a/api/search.index/4aaa6470bb2d.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUUAAIUbnBydHHUBRAAAB0YdALIYb3NqEmsSlhOXE5gTCRtqHaMfBQBAAAADkB5qhh4VAEMAABFTH28fZXofex/zBQJsczowAAABAAAAAAAHABAAAAAmFScVhhdaGkcdSx1QHekdBQHAAAAE6B8GaR1jdNcCAIagQAAAHwmgsAAAHu4TERA7MAAAAQAACwAFAIYPAADsDwMALxUAAHcZBABeHwAA")
\ No newline at end of file
diff --git a/api/search.index/4ac3186bbf78.js b/api/search.index/4ac3186bbf78.js
deleted file mode 100644
index e0d7b4372..000000000
--- a/api/search.index/4ac3186bbf78.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUMAAJUT6h4KH2UEQgAAFqkcqhwL6h4MCR8EoRoMCh9mbXJ1dwEOAg4DDgQOTA5NDk4O1QJAAAAEzxoUnR2eHQD5D2Ztc5oOmw6cDlUaVhpXGlgaNhx/HYAdgR1YH1ofYB+/AIWgMAAAGcCgEAAAGv8IkAY=")
\ No newline at end of file
diff --git a/api/search.index/4b213d1b1e09.js b/api/search.index/4b213d1b1e09.js
deleted file mode 100644
index da17e89d6..000000000
--- a/api/search.index/4b213d1b1e09.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("UUMAACEVIhUjFSQVBRkGGQUBwAAAAeAfC0sdZG4FAEoAABSdH54fbXwfFQBGAAAUPR8+H20SH5kfM4EDoNAAAB92ZnBz+wNlaXUxQwAAGh4bHgUfIx9jAAOwoB0JAAFobG46MAAAAQAAAAAAEwAQAAAAeg17DXwNfQ1+DX8NgA2BDYINgw2QD5oPWxJlEtsYfhp/Gh0bNRtwHw==")
\ No newline at end of file
diff --git a/api/search.index/4b3ff0a8c782.js b/api/search.index/4b3ff0a8c782.js
new file mode 100644
index 000000000..834e468f5
--- /dev/null
+++ b/api/search.index/4b3ff0a8c782.js
@@ -0,0 +1 @@
+rn_("BQBEAAAHhh9wCRkFAcAAABI3Gz0fGUYf2h9pbxMAA7AwHGoDDrAwHGsAAWZpcDowAAABAAAAAAAOABAAAADcGI0ajhqDG5UclhyZHaEd1B4ZHxofYR9uH28fqB9jAAOgMAAAG4dmc3QBjhkAAA==")
\ No newline at end of file
diff --git a/api/search.index/4b6ce6f3f499.js b/api/search.index/4b6ce6f3f499.js
new file mode 100644
index 000000000..39804e88f
--- /dev/null
+++ b/api/search.index/4b6ce6f3f499.js
@@ -0,0 +1 @@
+rn_("BQBKAAAYwR/CH3eUHicAAIawYBy7AAGgsAAAHv2gwAAAHxygQAAAGrOgwAAAHx0gERk7MAAAAQAABgACAA0OAwBYDgIA")
\ No newline at end of file
diff --git a/api/search.index/4c24c6f9ae86.js b/api/search.index/4c24c6f9ae86.js
deleted file mode 100644
index f5e1f59b5..000000000
--- a/api/search.index/4c24c6f9ae86.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("UUMAACEVIhUjFSQVBRkGGQUBwAAAAeAfC0sdZG4FAEoAABSdH54fbXwfFQBGAAAUPR8+H20SH5kfM4EDoNAAAB92ZnBz64SgMAAAGpoRAQg=")
\ No newline at end of file
diff --git a/api/search.index/4c2a82c1be16.js b/api/search.index/4c2a82c1be16.js
deleted file mode 100644
index c5f51ef70..000000000
--- a/api/search.index/4c2a82c1be16.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUgAAIMchByHHQUBxgAAEkgdSR0gkBuRGyEdcnMhRQAAcRpyGmwb+wNjbnRRSAAAfxyAHIEcghyFHYYdBQHIAAAjmx6cHhcfKFsfXB+VH3B0+wJhciFMAAAEHgUe8x6vAoagAAAADpagMAAAGZqgIAAAGMM4gAMhQgAA6Q/qD+sP+wJhZQ==")
\ No newline at end of file
diff --git a/api/search.index/4c41ebe4fe8e.js b/api/search.index/4c41ebe4fe8e.js
deleted file mode 100644
index 9d2bd6253..000000000
--- a/api/search.index/4c41ebe4fe8e.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAHeB8ibxpwGlodb3kFAcAAABV+HKoeBHseaXljAQOgQAAAGx9ibHQ6MAAAAQAAAAAACQAQAAAAbBJtEpkTmhObE5wTAho0G4oerR8=")
\ No newline at end of file
diff --git a/api/search.index/4c75a19c5880.js b/api/search.index/4c75a19c5880.js
new file mode 100644
index 000000000..02146ef06
--- /dev/null
+++ b/api/search.index/4c75a19c5880.js
@@ -0,0 +1 @@
+rn_("JQBBAAAVLx2MH2wMDg4ZXxoFAEAAABJ/GqYbcp8ORQJBAAAVSRtKGxr7HvweM/kZ+hmYGxIeb3N0Uw5UDlUOVg4aHW8BhaCwAAAfd6AgAAAfd0AgIw==")
\ No newline at end of file
diff --git a/api/search.index/4d24a7008b92.js b/api/search.index/4d24a7008b92.js
new file mode 100644
index 000000000..f2b5575af
--- /dev/null
+++ b/api/search.index/4d24a7008b92.js
@@ -0,0 +1 @@
+rn_("IUMAAKUT/R4dH2UEQgAAFrscvBwL/R4MHB8EsxoMHR9mbXJ1dw0ODg4PDhAOWA5ZDloO1QJAAAAE4RoUrx2wHQAGEGZtc6YOpw6oDmcaaBppGmoaSByRHZIdkx1rH20fcx+/AIWgMAAAGdKgEAAAGxEIkAY=")
\ No newline at end of file
diff --git a/api/search.index/4d39190c8bda.js b/api/search.index/4d39190c8bda.js
deleted file mode 100644
index f51073405..000000000
--- a/api/search.index/4d39190c8bda.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAASJRsqHxkzH8cfaW8TAAOwMBxYAw2wMBxZAAFmaXA6MAAAAQAAAAAADgAQAAAAyRh7GnwacRuDHIQchx2PHcEeBh8HH04fWx9cH5UfI4ICoDAAABt1ZnMrAqCgAAAd62Z0")
\ No newline at end of file
diff --git a/api/search.index/4d6afc4f52b4.js b/api/search.index/4d6afc4f52b4.js
new file mode 100644
index 000000000..205a2d062
--- /dev/null
+++ b/api/search.index/4d6afc4f52b4.js
@@ -0,0 +1 @@
+rn_("NQFDAAAXyx6AHwCGGWZzqRiqGKsYrBgFAEAAAAOiHmqYHhUAQwAAEWYfgh9ljR+OH/MBAmxzOjAAAAEAAAAAAAcAEAAAADcVOBWZF2waWR1dHWId+x07A6AQAAAPnmFmdPMAAWn0UBUAAAEA1wUBACFKAAB8HH0cyx37AmN0")
\ No newline at end of file
diff --git a/api/search.index/4d7e81df97b0.js b/api/search.index/4d7e81df97b0.js
deleted file mode 100644
index c8c48530d..000000000
--- a/api/search.index/4d7e81df97b0.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAeZx9oHxw0HzUfZmtFAEEAABQhHyIfbcwazRrOGuse7B4FAEUAAATkHmWKHBsCoCAAAB0kdXkzBISwIBnXAAGgQAAAHSUCAQM6MAAAAQAAAAAACwAQAAAAeRLHGMgYvhm/GSwbyx3qHQYeBx4bH4wfBQHAAAATeBJmHAQsH2lyFQFBAAAEfBsEWxxvdH4ZoR3HAwCGoHAAAB9eoIAAABp9OkACOjAAAAEAAAAAAAcAEAAAAI8IbxxwHDYdmx2lHVQfwB8=")
\ No newline at end of file
diff --git a/api/search.index/4d88bca8284f.js b/api/search.index/4d88bca8284f.js
deleted file mode 100644
index f3f16fb7d..000000000
--- a/api/search.index/4d88bca8284f.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBDAAAG6h9kyx/zAAFzOjAAAAEAAAAAABUAEAAAAIQOhQ4mGycblh6hHssezB7NHs4ezx7QHtEe0h7YHtwe3R4dH00fiR+KH6wfBQHAAAAGWR0B4Blib0UAQQAAFCEfIh9tzBrNGs4a6x7sHgUARQAABOQeZYocGwKgIAAAHSR1eTMChLAgGdcAAaBAAAAdJQIBAzowAAABAAAAAAALABAAAAB5EscYyBi+Gb8ZLBvLHeodBh4HHhsfjB/xRgAAJhsnG5Yeyx7MHs0ezh7PHtAe0R7SHtge3B7dHk0frB8FAEgAAACGHnNQHSsCsEAafgABb3IzAgOgYAAAHzBjZm86MAAAAQAAAAAABwAQAAAAFQ4WDp0OZxoSGxkbGhsmH3cBAMWgEAAAHZxAAgBJOjAAAAEAAAAAABcAEAAAAIIPkw/KGc0ZdRp3HDsdPB1AHUYdmB3lHeYd+x2ZHhUfFh86HzsfQB9EH0UfgB+BHw==")
\ No newline at end of file
diff --git a/api/search.index/4dc4e4a1e97a.js b/api/search.index/4dc4e4a1e97a.js
deleted file mode 100644
index 9630cdde4..000000000
--- a/api/search.index/4dc4e4a1e97a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("QUIAANYa1xqQHpYfsx8hQQAAmR4VHxYfBQHAAAAQsxgQGwG0GGRvAYECoNAAAB+CoTAAAB+4YXAFAEYAABABHiUfcqod8wMBcAHpGAAAGwKgQAAAG2Jhb7cBAoawcB2DAAGgwAAAHxQ0QRD1lA4AAAEAsQswAf8A+wJlcw==")
\ No newline at end of file
diff --git a/api/search.index/4dd9e95c3bbf.js b/api/search.index/4dd9e95c3bbf.js
new file mode 100644
index 000000000..cb2fde870
--- /dev/null
+++ b/api/search.index/4dd9e95c3bbf.js
@@ -0,0 +1 @@
+rn_("BQHAAAAHJh8DbRxpeRUATQAABOEfZgQgBSAFAcAAAAOOGwgOHnJ1NQBCAAAHIR9t1hndGd4ZwxoFAEIAAAQrHmOAHRUAQgAAAiobcvsYwBrzgQJlbBUARQAACeUfZhQbBh4FAcEAAAFKHAcJHmlwAYICoJAAAB9loRAAAB/KaXUrAqDAAAAflXJ0AQDNLoLrargVALM78HS1DuUF5MOzdl8gP6hioIAAAB2ydxpoivWooBAAABxPflw1ejYmoTAAAB/LoIAAAB3hbrq5AW51EH+RqWKssFAfuAARwEy1CzowAAABAAAAAAAHABAAAAASDooPixNSFZAZsx1qH2wf")
\ No newline at end of file
diff --git a/api/search.index/4e08b96c4870.js b/api/search.index/4e08b96c4870.js
new file mode 100644
index 000000000..ca3d5d019
--- /dev/null
+++ b/api/search.index/4e08b96c4870.js
@@ -0,0 +1 @@
+rn_("BQBAAAADoh5qmB4VAEMAABFmH4IfZY0fjh8VAEcAAARBH2XHHcgdKwKgEAAAHfFkemFCAACeGZ8ZoBmhGaIZoxmkGZcJAIiwYBxOAo6gEAAAEnagIAAAFUagQAAAGyMcSQM6MAAAAQAAAAAABwAQAAAANxU4FZkXbBpZHV0dYh37HQ==")
\ No newline at end of file
diff --git a/api/search.index/4e187e4f948f.js b/api/search.index/4e187e4f948f.js
deleted file mode 100644
index 14cade120..000000000
--- a/api/search.index/4e187e4f948f.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUoAAK0erh6vHrAeFQBFAAARyh0aH2kzHIUeGwKwkB7iAAFlaQUCRgAAIecdGB6fHwbDHwjRH2lzdKUcFQBBAAAUjR6OHm1kHWUdEwQCoCAAAB3JaXL3OhsAAAEATAEBAC8BNQA7AfsCY24xRQAALxwwHDEcMhwFAcMAADNgHWEdYh1jHQU1HXBz8wDFAAiAGfO3DQAAlABnCw==")
\ No newline at end of file
diff --git a/api/search.index/4e3aefa187bb.js b/api/search.index/4e3aefa187bb.js
deleted file mode 100644
index 0894bdd38..000000000
--- a/api/search.index/4e3aefa187bb.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("NQBFAAAW5R/mH2RHH0gfwR/CHwEGADswAAABAAAgAAEA2BogAAUAQQAABusfZNAfE4ICoEAAAB+qbW/7AmlvBQBFAAAGlh5mZxoFAEIAAAbqH2TLH/sCaXQFAcEAABB4HHkcCZUbZnMFAEAAAAOyHmnIHiMCAqAQAAAdaGlzOjAAAAEAAAAAAAgAEAAAAEUbRhtHG2ocaxy4HQQeBR7zHgUAQgAAAuMfbdYfI4cCoIAAAB/nYWtjAoSgoAAAH9ygYAAAHToFFADzjxcAAAEAiQcVAEIAAAcOH23EGbEaQ4GEoDAAABw4oIAAAB2goJAAAB38AkUAMwGEsWAfzAABoAAAAA2FEFEA808OAAApAAEAAYMCoNAAAB+loQAAAB+2Y3AFAEgAAAeYH3PwHfMCAmZ386IOAAABAAEAFQBEAAAG8B9klx/eHwEDAaAwAAAa12o7MAAAAQAA2AACABsOAABsEdcAAQOEoEAAABt [...]
\ No newline at end of file
diff --git a/api/search.index/4e9051513dd2.js b/api/search.index/4e9051513dd2.js
new file mode 100644
index 000000000..94ede27e9
--- /dev/null
+++ b/api/search.index/4e9051513dd2.js
@@ -0,0 +1 @@
+rn_("JQBDAAAOwB9jxhrHGhYdIUEAAH0ZfhlKHG8AhaBAAAAbWqBwAAAeCbAgHR0B/wGhBAUBwAAAL7Ufxx/IHyerHigfKR9hciMDA6AQAAAevrBQHwwAZGVwcwH9GAAA+wJheQ==")
\ No newline at end of file
diff --git a/api/search.index/4ef124e150ee.js b/api/search.index/4ef124e150ee.js
new file mode 100644
index 000000000..b3184893a
--- /dev/null
+++ b/api/search.index/4ef124e150ee.js
@@ -0,0 +1 @@
+rn_("BQBBAAAUrx2wHW1IHPMCAWnyMhsAAAEAFQBBAAAUNB81H23+Hv8e8wcBafXeHQAAOgABABUBcQAFAcQAAAFJHQqaH2lu+wNjb3A1AEMAAAFzH2keH4oflh/EHxOIAqAwAAAfH3N0BQHAAAAKER8HrR1haQUBwAAABYEcBkgdY2wVAEUAAAbqH2SzH+UfE4MDoMAAAB9NoDAAAB+SZm5zZyoAirBgHEYAAaBgAAAcgqEAAAAfTrCAHXgAAaDgAAAfZ+S4AzswAAABAAA+ABAAEQ4AAFwOJQAOGgAAaxoAABQbAABOHAAABh4AANweAADmHgAAoB8AAOIfAADqHwEA9R8AAPgfAQD9HwYABiACAA==")
\ No newline at end of file
diff --git a/api/search.index/4ef91f7e2122.js b/api/search.index/4ef91f7e2122.js
new file mode 100644
index 000000000..34db815fc
--- /dev/null
+++ b/api/search.index/4ef91f7e2122.js
@@ -0,0 +1 @@
+rn_("BQLGAAACxR0Jhx8KpB9hZXMVAEAAABKREo0TdaQMpQwFAEQAAAbrHmYkGwUAQwAABAQfdeAZ8wIBb/KhDwAA7wP7A2hvciUAQQAACLkeYq4PoBunHTUBQgAAUZwanRqeGpccRR1XHRVmHe4eaXObHZwdsB7nHjFEAADcGt0amBxGHWUARAAABv8fZH8cgBxvHXAdkB+RH+YfUwEDsDAdmgIKY2509yAOAAD8CgEAawEgAdYA1QBRQwAAMhUzFTQVNRUXGRgZBQBKAAAUsB+xH22PHxUARgAAFFAfUR9tJR+sHzOBA6DQAAAfiWZwc1OBA6AgAAAf82VpdVsDoBAAAA6eZ25vBQBAAAACABl5tw0PCMigwAAAHuegIAAAFUegIAAAFUigYAAAGeSgoAAAHfGggAAAHIagkAAAHUYAAc0DBQHHAAABVx0F7h5pcxuEsBAOmwABoIAAAB0aoFAAABsWRBAC1w8AiKBQAAA [...]
\ No newline at end of file
diff --git a/api/search.index/4f515dfc1ae4.js b/api/search.index/4f515dfc1ae4.js
deleted file mode 100644
index 6cd6634d3..000000000
--- a/api/search.index/4f515dfc1ae4.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("JQBCAAAQ0BrRGnO2DTcbOBslAUAAAAXVGQXWGXJ3oQu5DboNGwKgAAAADepueAUBwAAACnseEoYPXh9jcvsDZWlz")
\ No newline at end of file
diff --git a/api/search.index/500eb0601c14.js b/api/search.index/500eb0601c14.js
new file mode 100644
index 000000000..15c82357e
--- /dev/null
+++ b/api/search.index/500eb0601c14.js
@@ -0,0 +1 @@
+rn_("BQHAAAAHix8igRqCGmwdb3kFAcAAABWQHLweBI0eaXljAQOgQAAAGzFibHQ6MAAAAQAAAAAACQAQAAAAexJ8EqkTqhOrE6wTFBpGG5wewB8=")
\ No newline at end of file
diff --git a/api/search.index/50313e1d9556.js b/api/search.index/50313e1d9556.js
new file mode 100644
index 000000000..7bbd17dfb
--- /dev/null
+++ b/api/search.index/50313e1d9556.js
@@ -0,0 +1 @@
+rn_("1QBCAAADIRttjhKPEq8dsB3AHcEdnx6gHjQfNR9QH1EfsB+xHwUARgAABLoeYj0bFQBFAAAAnxpz8BnTGvsDbnN0GwOgoAAAHwGgAAAAHE9hZXM=")
\ No newline at end of file
diff --git a/api/search.index/50842cb7f38c.js b/api/search.index/50842cb7f38c.js
deleted file mode 100644
index 74ed70f99..000000000
--- a/api/search.index/50842cb7f38c.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUEAAKETTR1OHcUAQQAABXMaaBEOEg4TDpcOmA42Gk4aTxpQGlEaUhpTGlQaNQFDAAAXuR5tHwB0GWZzlhiXGJgYmRgxQAAAhxIVFAMbBRsFAEAAAAOQHmqGHhUAQwAAEVMfbx9leh97H2MBA6AgAAAd3mlsczowAAABAAAAAAAHABAAAAAmFScVhhdaGkcdSx1QHekd/wGGoBAAAA+RKVAE")
\ No newline at end of file
diff --git a/api/search.index/51078f9ffa40.js b/api/search.index/51078f9ffa40.js
deleted file mode 100644
index bf2f92cd8..000000000
--- a/api/search.index/51078f9ffa40.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUMAABoeGx4FHyMf8wABbDowAAABAAAAAAATABAAAAB6DXsNfA19DX4Nfw2ADYENgg2DDZAPmg9bEmUS2xh+Gn8aHRs1G3Af")
\ No newline at end of file
diff --git a/api/search.index/510a62317e00.js b/api/search.index/510a62317e00.js
new file mode 100644
index 000000000..4530709d3
--- /dev/null
+++ b/api/search.index/510a62317e00.js
@@ -0,0 +1 @@
+rn_("BQBRAAAGByBk9x8hRAAAmhubHgIfUwQDoMAAAB/KZWZ3AfMdAAAlAEUAAAboHmIgG7kcuhwFAcAAAAd5HwVlH2Z0BQHAAAAUHxu4HAbGH29yBQBGAAAEoR5lmRtXBQGHsPAfzwABsDAbTgABoFAAAB+pJoAWOjAAAAEAAAAAAAcAEAAAAJUPlxKYEpkS1xrqHdUe1h4VAEIAAAEDH2mBHe4d+wJlbFsDoIAAAB+XaXJ1")
\ No newline at end of file
diff --git a/api/search.index/515bd4f74401.js b/api/search.index/515bd4f74401.js
new file mode 100644
index 000000000..110477c8f
--- /dev/null
+++ b/api/search.index/515bd4f74401.js
@@ -0,0 +1 @@
+rn_("BQHAAAAFGxsSVRVzHGRmGwKgcAAAHhVlbwECAbAgHaICO3U6MAAAAQAAAAAAEQAQAAAAtQ+2D7cPuA+5D/UY/xjkGYQchRwXHRgdSx1/HbEd7x1oH3YfGwKgAAAAHvJpcxUBQwAABqcfAkAfYnLMHbQeBQBBAAAUsB+xH22PHyUARAAAALsecx4eHx75HnMEBKCgAAAfy2Zpc3YBoh8AABOCArAgGsgAAWlu+wNhb3I=")
\ No newline at end of file
diff --git a/api/search.index/516907bc3544.js b/api/search.index/516907bc3544.js
new file mode 100644
index 000000000..0789d3138
--- /dev/null
+++ b/api/search.index/516907bc3544.js
@@ -0,0 +1 @@
+rn_("AQIBoHAAAByhZjswAAABAABCAAMArA8AACsUIADqGiAAGwKgYAAAG4xpdSMAA6AwAAAZjqBAAAAfdGFyc/I/GwAAyAI=")
\ No newline at end of file
diff --git a/api/search.index/51ab5fcd9489.js b/api/search.index/51ab5fcd9489.js
deleted file mode 100644
index 7b16d019e..000000000
--- a/api/search.index/51ab5fcd9489.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAHLx8SPhV6G295cUQAAMEdwh3DHcQdFB4VHhYeFx5XAAHFsGAbdwABoEAAABosoKAAAB9sAAggGjowAAABAAAAAAAIABAAAACzC7QLtQvnDegN6Q2CEn0TTBo=")
\ No newline at end of file
diff --git a/api/search.index/51c0abcc591e.js b/api/search.index/51c0abcc591e.js
deleted file mode 100644
index 6cf90c275..000000000
--- a/api/search.index/51c0abcc591e.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAADjR0AhhphcwUBwwAAF2kfah8SxB7FHmRzUwEDoFAAAB3vZm1u8v4YAACxAAUBwAAAA1wcAP0YYXMFAcAAAAQoHVA3GjgaORo6GjsaPBppcwUBwwAAFzYfNx8S7R3uHWRz8wCEIDAEOjAAAAEAAAAAAAcAEAAAAHwSFhQXFBgUGRQaFBMf0R8=")
\ No newline at end of file
diff --git a/api/search.index/52a0430818a5.js b/api/search.index/52a0430818a5.js
new file mode 100644
index 000000000..3af751c48
--- /dev/null
+++ b/api/search.index/52a0430818a5.js
@@ -0,0 +1 @@
+rn_("BQBAAAADxB5p2x4jAgKgEAAAHXppczowAAABAAAAAAAIABAAAABXG1gbWRt8HH0cyx0WHhceBh8FAEIAAAL2H23pHyOHAqCAAAAf+mFrYwCEoKAAAB/voGAAAB1MBRQA86IXAAABAIkH")
\ No newline at end of file
diff --git a/api/search.index/52ae2916109d.js b/api/search.index/52ae2916109d.js
new file mode 100644
index 000000000..33e7210ca
--- /dev/null
+++ b/api/search.index/52ae2916109d.js
@@ -0,0 +1 @@
+rn_("IUIAAAIaAxoEGhUARQAABYMfYyIfIx8FAEkAAAbDH2JPH1OFA6AAAAAbm2Zzd/OBAmRpBQHBAAAFHh0XqRuqG2VpEwACoAAAAB3xYXP1zg8AACEJjAAABAwCbwDFsBAY5gJ0oBAAAA/Jb3D8/qOJQAIAig==")
\ No newline at end of file
diff --git a/api/search.index/52be561b3633.js b/api/search.index/52be561b3633.js
new file mode 100644
index 000000000..b62a29495
--- /dev/null
+++ b/api/search.index/52be561b3633.js
@@ -0,0 +1 @@
+rn_("MUMAACweLR4YHzYf8wABbDowAAABAAAAAAATABAAAACGDYcNiA2JDYoNiw2MDY0Njg2PDZ0Ppw9qEnQS7hiQGpEaLxtHG4Mf")
\ No newline at end of file
diff --git a/api/search.index/534bae60fd2f.js b/api/search.index/534bae60fd2f.js
new file mode 100644
index 000000000..6ec2bf17e
--- /dev/null
+++ b/api/search.index/534bae60fd2f.js
@@ -0,0 +1 @@
+rn_("BQBSAAAGAiBk7h8FAFQAAAYDIGTxH/OEAnB0BQBRAAAG/R9k3h8FAFgAAAYIIGT8HwUASAAABvUfZMUfBQBKAAAGASBk6B8FAEoAAAYAIGTnH/sCYWkFAEYAAAbrH2S0H/OJA2VtbgUAUgAABgYgZPQfBQBPAAAG/x9k5h/zhwJjcAUASAAABqAfZBQeBQBJAAAG6h9ksx8ThAOgwAAAH8SggAAAH59mcHMbAqFAAAAf5WZsBQBaAAAGByBk9x/7AmFlp2cAyy7c0szjAaDAAAAfO6DAAAAfPKAwAAAafQAbpB0BCR4AAAUBwQAABM4fBdkfcXPzAgFyOzAAAAEAACIADQDIGA0AiRoDAC4bAACBGwEApRsAAHccAACRHAMAohwAADgdAQCXHQEAFR4AAPoeAABLHwAA+wJpeQ==")
\ No newline at end of file
diff --git a/api/search.index/53a971fe891e.js b/api/search.index/53a971fe891e.js
new file mode 100644
index 000000000..be79359e6
--- /dev/null
+++ b/api/search.index/53a971fe891e.js
@@ -0,0 +1 @@
+rn_("FQFDAAAF2B0Gtx90dwMe0R4FAEcAAAzzH2EbHyMEA6AgAAAflaBgAAAdqnJ0dgErHwAAGwKg0AAAH0JjdAUBQwAABqgdBqkdYm/tGBOBAqDgAAAfDGFjAQIAOzAAAAEAANoAAgBgEgAAMhbZAIcOAIigwAAAHaegQAAAFTGgkAAAG5ShEAAAH4sxkAc7MAAAAQAA3QAEALsJAQCSCwAAqAzZAAcQAAABAISgMAAAEmWgMAAAEmagQAAAFTygcAAAGnEAFQE7MAAAAQAAIgARAJcJDABQCwMAghIAAI0SAAAxFQAARBUBAOUZAAB/GgAAmhsAAKYbAQCpGwEAZB0AAJseAAChHgAA9x4AAAIfAABBHwAA+wJydwmEoGAAAB/7gBnpABNKHyJe9cJnoFAAABpxKCACBQFBAAAHpx0CkQ9hcroJ8wADYWVv8nwBAAABAA==")
\ No newline at end of file
diff --git a/api/search.index/53f0a8cbf650.js b/api/search.index/53f0a8cbf650.js
new file mode 100644
index 000000000..5ef43defd
--- /dev/null
+++ b/api/search.index/53f0a8cbf650.js
@@ -0,0 +1 @@
+rn_("BQHAAAAFFBkZGBsZG2VpBQBLAAAAzR1zaB0FA8AAAFRZEloSWxJcElYVVxUm6RjqGPEZJ9AZ0Rk+GxICDgMOY25vcBUARAAAALsecx4eHx4TiAKgMAAAHcxmcwUARgAABLoeYj0bBQBFAAAAnxpz8BnzgQJucyFLAAB8HH0cyx0FAcAAAALcHwHYH2Fv8wMBcPKsGwAAhAEjgwKgAAAAH2xkZkUARAAADIofcGsaoB/rHwcgCCAFAEMAABSjHKQcY1gVBQBEAAAEaR1jTRwzAAOgkAAAHWpmcnPyhwkAALoL/wCFoKAAAB1nKCggAYECoRAAAB+KoHAAABusZmwFAcAAAARYEgvKHW91FQBGAAAIeR9z1R7WHvd8AMuwMA+vAAGhAAAAHvpATyQNAZcBAAA=")
\ No newline at end of file
diff --git a/api/search.index/54286f76712d.js b/api/search.index/54286f76712d.js
deleted file mode 100644
index 85017fcf9..000000000
--- a/api/search.index/54286f76712d.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBFAAAIRR9jIx3DHwUBwAAAAyQbBPIeYW/zAAJ0dfd3EgAAmAEBAAEAfwcBAJABVQBAAAAFTB1l9Rj2GCIbIxtIHUkdGwKwYB1NAAFmdBsCoGAAAByJZW8BAQOgQAAAH0mwQB2tAAGgAAAAGipmbXM7MAAAAQAAFAAGAJ4ZDgBYHQAA5x0AABgeAACfHwAA2R8BAAcNA4mgQAAAHn6gMAAAG3KgQAAAHymgUAAAHSKgIAAAGPSggAAAH9EnCQc6MAAAAQAAAAAADQAQAAAAnQ/0D/UP9g/3D/gP1hjXGN8ZpRyEHjMfmB/HHysCoBAAAAuucHM=")
\ No newline at end of file
diff --git a/api/search.index/54313a20aa32.js b/api/search.index/54313a20aa32.js
deleted file mode 100644
index 94c200411..000000000
--- a/api/search.index/54313a20aa32.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHBAAAC2xgM9x5mbgUBxAAAAQMbBZQdaXP7AmxvBQHFAAACaBwDMh1rbhsCoLAAAB31Y3UzAISgcAAAGwSgcAAAGwUFAAb0ggkAAAEAAQAwAEsDoXAAAB/yoAAAABpzYWVz")
\ No newline at end of file
diff --git a/api/search.index/5431d452a8fe.js b/api/search.index/5431d452a8fe.js
deleted file mode 100644
index dabdd0d57..000000000
--- a/api/search.index/5431d452a8fe.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQJGAAAh5x0YHp8fBsMfCNEfaXN0pRwVAEEAABSNHo4ebWQdZR0TBAKgIAAAHclpcvc6GwAAAQBMAQEALwE1ADsBkwCEsEAamwL5sJAe6AABFCEA8x8aAABsAwEA")
\ No newline at end of file
diff --git a/api/search.index/5443525344b3.js b/api/search.index/5443525344b3.js
deleted file mode 100644
index ebe963ecc..000000000
--- a/api/search.index/5443525344b3.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQKEoEAAABt7oHAAABuUoDAAABrWoJAAAB1SAgMCOzAAAAEAAOUAAgAaDgAAhxDkAAUBxAAAAzgdBigfdHYFAUMAABESHaceA6gdaW5/E/sDaW9y")
\ No newline at end of file
diff --git a/api/search.index/544cf4b8f1fa.js b/api/search.index/544cf4b8f1fa.js
deleted file mode 100644
index 37b5b8ae8..000000000
--- a/api/search.index/544cf4b8f1fa.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBFAAAIRR9jIx3DHwUBwAAAAiQbFmoaTBxichsCoEAAAB7yYW/zAAJ0dfd3EgAAmAEBAAEAfwcBAJABVQBAAAAFTB1l9Rj2GCIbIxtIHUkdGwKwYB1NAAFmdBsCoGAAAByJZW8FAcAAABGdC54YEg4OfRlhdQEAA6BAAAAfSbBAHa0AAaAAAAAaKmZtczswAAABAAAUAAYAnhkOAFgdAADnHQAAGB4AAJ8fAADZHwEAGwKwAAmjCdlkbgUBwQAAAyIdEoQaQx1ydQUAQAAABBEadaIJGwOgsAAAH2KgMAAAD5hxcngFAEEAAAbrH2TQHxOJAqBAAAAfqm1vSwOgIAAAGJ2gMAAAHn5iZ2yXOwCMoDAAABtyoEAAAB8poCAAABj0oIAAAB/RoCAAAB3FNylHOjAAAAEAAAAAABMAEAAAAIYBhwGIAYIEnQ/0D/UP9g/3D/gP1hjXGJwZnRnfGaUchB4zH5gfxx8=")
\ No newline at end of file
diff --git a/api/search.index/54adb994c69b.js b/api/search.index/54adb994c69b.js
new file mode 100644
index 000000000..61a775545
--- /dev/null
+++ b/api/search.index/54adb994c69b.js
@@ -0,0 +1 @@
+rn_("RQBAAAAW+B/5H2RaH1sfvR/UH9UfFQBKAAAG+R9kWx/VHwUBwQAAB+8dA60dZXDzgQJpcgUARAAAAQMfae4d8wYBZvMMGgAAkwHtABUASwAABvgfZFof1B9LA7FAH98AAaCQAAAfEW5wePuEEQEC")
\ No newline at end of file
diff --git a/api/search.index/550f90304c45.js b/api/search.index/550f90304c45.js
deleted file mode 100644
index b1f79c5f3..000000000
--- a/api/search.index/550f90304c45.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBAAAAEsx5j3R3zAwFzAVUdAAATAAKggAAAHnZmcgGMDwAAKwKgQAAAGWhhZwUBwAAAEiUbKh8ZMx/HH2lvEwADsDAcWAMNsDAcWQABZmlwOjAAAAEAAAAAAA4AEAAAAMkYexp8GnEbgxyEHIcdjx3BHgYfBx9OH1sfXB+VHysCoDAAABt1ZnP7AmNu")
\ No newline at end of file
diff --git a/api/search.index/553c9d19a77f.js b/api/search.index/553c9d19a77f.js
deleted file mode 100644
index 32b0243de..000000000
--- a/api/search.index/553c9d19a77f.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAADLB8Bhw9hbwUBwAAAAyIdEoQaQx1ydRUARAAABu8fZKcf2x/zAgFiAX8fAAAbAqBAAAAdNWl0MUMAAGAdYR1iHWMdFQBFAAAG1x9koB/SH9MAhKDAAAAfOiCgAjowAAABAAAAAAAIABAAAABcEl0SMRUyFc8Z1BqgHfwdjB4bAqDgAAAfo2V0FQBBAAAQgx2EHXMJHQodEwICoDAAABuLaW47MAAAAQAACgAFAHgSAACwGgAAZhwAAMEdAwAUHgMAOwOwQB0HADdlbHjrBKBQAAASfjhpb3I=")
\ No newline at end of file
diff --git a/api/search.index/56b56bca63df.js b/api/search.index/56b56bca63df.js
deleted file mode 100644
index b3ca321c8..000000000
--- a/api/search.index/56b56bca63df.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("ZQBEAAAGmh5yZRtmG2cbaBtpG2obaxsjgwKgYAAAHSBjdCUAQQAAA4AbbsQNbxJbGvsCb3MFAcUAAAUfHRE8HTofZW9rhLAgDbQAAaCgAAAfZBEBAQ==")
\ No newline at end of file
diff --git a/api/search.index/56c9f23cfcde.js b/api/search.index/56c9f23cfcde.js
new file mode 100644
index 000000000..d5ca41767
--- /dev/null
+++ b/api/search.index/56c9f23cfcde.js
@@ -0,0 +1 @@
+rn_("MUgAAIQfiB+bH6MfMUIAAKMesR7pHvMeZQFDAAAI8h8DSRxiZJsXnBedF54XnxegF6EXGwOg0AAAH9OgMAAAHalhaGlBQAAAZAtlC6cY5xjoGGFIAABQG1EbUhtTG1QbVRtWGwUAUgAABgIgZO4fBQBUAAAGAyBk8R/zhAJwdAUAUQAABv0fZN4fBQBYAAAGCCBk/B8FAEgAAAb1H2TFHwUASgAABgEgZOgfBQBKAAAGACBk5x/7AmFpBQBGAAAG6x9ktB/ziQNlbW4FAFIAAAYGIGT0HwUATwAABv8fZOYf84cCY3AFAEgAAAagH2QUHgUASQAABuofZLMfE4QDoMAAAB/EoIAAAB+fZnBzGwKhQAAAH+VmbAUAWgAABgcgZPcf+wJhZadnAMsu3NLM4wGgwAAAHzugwAAAHzygMAAAGn0AG6QdAQkeAAAFAcEAAATOHwXZH3Fz8wIBcjswAAABAAAiAA0AyBgNAIk [...]
\ No newline at end of file
diff --git a/api/search.index/56cb9cecbb6d.js b/api/search.index/56cb9cecbb6d.js
deleted file mode 100644
index a376bc6f6..000000000
--- a/api/search.index/56cb9cecbb6d.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAFLRUJcxxhbQUBwAAACXIcCjkdY2wJAqBQAAAdnKEwAAAfo2NyBQHAAAADuB8TGh0bHWx1IUgAAEAfgB+BH/OCAmFvBQBBAAAHDB1h3BjzgQJpdfcAAIagwAAAHZ+hIAAAH1XREAEBsQ8AAA==")
\ No newline at end of file
diff --git a/api/search.index/56e3949969b8.js b/api/search.index/56e3949969b8.js
deleted file mode 100644
index ebbfe548f..000000000
--- a/api/search.index/56e3949969b8.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUEAAK0PERrxHkofIUIAAPAZ8RnyGRUARQAABXAfYw8fEB8FAEkAAAawH2I8H1OFA6AAAAAbiWZzd/OCAmRpY4EDoIAAAB9haGl0")
\ No newline at end of file
diff --git a/api/search.index/5720667a0e8f.js b/api/search.index/5720667a0e8f.js
new file mode 100644
index 000000000..8df6ac71a
--- /dev/null
+++ b/api/search.index/5720667a0e8f.js
@@ -0,0 +1 @@
+rn_("AQCEoDAAABJloDAAABJmoEAAABU8oHAAABpxABUBOzAAAAEAACIAEQCXCQwAUAsDAIISAACNEgAAMRUAAEQVAQDlGQAAfxoAAJobAACmGwEAqRsBAGQdAACbHgAAoR4AAPceAAACHwAAQR8AAA==")
\ No newline at end of file
diff --git a/api/search.index/5762b0efff65.js b/api/search.index/5762b0efff65.js
deleted file mode 100644
index 92c95c5d1..000000000
--- a/api/search.index/5762b0efff65.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBCAAADOx1h2h5lAEAAAAZhGmKTC5QLfg5/DoAOgQ6CDgEAADswAAABAACKAAEA+haKACsCoEAAABptZW+RRAAA0B3RHdId0x3UHdUd1h3oHukeYh9bA6CAAAAfrWJzdDFCAAA/FUAVFhsXG/MAAWU7MAAAAQAA2wADALYLAAClDtcAEhQCAPuECGAE")
\ No newline at end of file
diff --git a/api/search.index/577fb2067699.js b/api/search.index/577fb2067699.js
deleted file mode 100644
index e32ab46c9..000000000
--- a/api/search.index/577fb2067699.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBEAAAGlh5mZxorA6AQAAAYk7AgFR4AAWVvcjUAQQAABuofZMIPHRXKHssfSwOwYBrGAAGgIAAAHrJjdHpHAQCFsEAdVAGHsEAY2AABoLAAAB8pMCEEAcgeAAA=")
\ No newline at end of file
diff --git a/api/search.index/57ca7cefb7d4.js b/api/search.index/57ca7cefb7d4.js
new file mode 100644
index 000000000..47dad5e17
--- /dev/null
+++ b/api/search.index/57ca7cefb7d4.js
@@ -0,0 +1 @@
+rn_("BQBFAAAG7B5iJhsFAcEAAAInGwIlG2J08wABdPRtEgAAJAEBAA0HNQNCAAAkjh6PHmQfGt8f4B8Vux3PHgW8HWNrcnfiGeMZ1BrVGisCoEAAABxXZWkFAUQAAA/wHxKKHIscY3J2GgUBwAAAI2QbZRudHgkSHmFvtwwAiLAwGeEEvaBwAAAcjKAwAAAa1jSYEvWjDwAAAQA5ABMK4wA=")
\ No newline at end of file
diff --git a/api/search.index/5868f84ccb08.js b/api/search.index/5868f84ccb08.js
new file mode 100644
index 000000000..b40936a63
--- /dev/null
+++ b/api/search.index/5868f84ccb08.js
@@ -0,0 +1 @@
+rn_("ZQJGAAAhmhqbGnIcAjobEjsbPBtpbHISGVsaXBoYGxkb9R72HrUBQAAANk8d6B5WH8MfBYMfYmM9FRkZGhmEGYUZIBu5HLocXB0iHyMfTx8jAgKwIBmuAAFucvJnEgAALAkVAEwAAAAdHnPJHfge+wJlaQUAUQAABv0fZN4fBQBYAAAGCCBk/B/zhwJydlFFAAC7GLwYvRi+GL8YwBglAUcAABYcHggfAqsbYnLuGRAbpB0FAkEAABTBH8IfArcfBvodcHJ29h1RQwAAlxOYE5kTmhObE5wT+wJudAUARAAAB6sfcwIeI4IDsHAdjAABoGAAAB0ubXR1KwKgsAAAHWVvcgUBwAAABqMdFu0Z6x1ocvcXAMqwUBVTAAEVoFoh8scASbQcOzAAAAEAAEcAAgBABEQArg4CAA==")
\ No newline at end of file
diff --git a/api/search.index/58a163a2f5de.js b/api/search.index/58a163a2f5de.js
deleted file mode 100644
index 2fe424920..000000000
--- a/api/search.index/58a163a2f5de.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUUAAMUZshqzGhUARgAABvQfZLcf5B/zgQJldxUAQgAAFPEeSh91zhmKGzFFAAChG6IbsR39HbuEsAAcXAExACAL")
\ No newline at end of file
diff --git a/api/search.index/58c3e5bfd8ae.js b/api/search.index/58c3e5bfd8ae.js
new file mode 100644
index 000000000..7792aae24
--- /dev/null
+++ b/api/search.index/58c3e5bfd8ae.js
@@ -0,0 +1 @@
+rn_("IUMAAOsZhhulHxUAQgAAAW0faQIOAw4hRwAA0BnRGT4bJQBGAAABah1p6RjqGPEZAQYAOzAAAAEAALEAAgC9HFgALx5YACUASwAABOEfZokfBCAFIPsCcXJRRAAAWRJaElsSXBJWFVcV9wMAh6BQAAAZ2BTgDDowAAABAAAAAAAfABAAAACcC6cNqA2pDaoNqw2sDa0Nrg2vDbANBhDXGMkZyhkCGgMaBBodGh4aPBpWGlcalR2WHc0d4h3xHbseyx6AH/Mf")
\ No newline at end of file
diff --git a/api/search.index/5953e2bea780.js b/api/search.index/5953e2bea780.js
deleted file mode 100644
index 44b58deef..000000000
--- a/api/search.index/5953e2bea780.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQLGAAABnx8Gwx8I0R9pc3QrAqBAAAAfJ2Nu8wUBcwGyGQAABQBPAAAG6x9k0B8FAEkAAAbPH2SLHwUATAAABuYfZMIfBQBMAAAG5R9kwR/7AmFp84MDbW50K4SgYAAAH0Wg0AAAH92gIAAAE34AOAgVAUUAAAaVHgg/H2J3ZRpmGvsDYW91")
\ No newline at end of file
diff --git a/api/search.index/596c75eb325e.js b/api/search.index/596c75eb325e.js
new file mode 100644
index 000000000..c0cd4e992
--- /dev/null
+++ b/api/search.index/596c75eb325e.js
@@ -0,0 +1 @@
+rn_("BQHAAABDBRoGGgcaCBoJGjfUHdUd1h3XHW91IwACoJAAAB+2b3IBpAkAAAUAQgAABgYgZPQf8wABbQFTEgAABQHAAAAROxs8Gwi+H2VvcUEAAOQY5RiaGpsachx5HN0dLR8FAEoAAAb9H2TeH2cDAYagMAAAGw+gIAAAGzqCCQM6MAAAAQAAAAAAHQAQAAAAEhkUGVsaXBp0GhgbGRtbG1wbXRteG18bYBthG0UcZR2lHfodlx61HrYetx64HvUe9h4HHzEfMh87H4UfBQBCAAAC9h9t6R8jhwKggAAAH/phayMLAqCgAAAf72FjASwfAAA7hKAgAAAdN6CAAAAfdQhAhBUEQAAAA8IYFEQVRRUHfxoEnRkK+h1hZWl0d2ILYwtnBACHoGAAAB1rsGAfRgCUoBAAABnysHAfegABEuEE838TAAABAAYG")
\ No newline at end of file
diff --git a/api/search.index/599e342b67cc.js b/api/search.index/599e342b67cc.js
deleted file mode 100644
index 40e4d23a0..000000000
--- a/api/search.index/599e342b67cc.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAA1oR4dH4kfih8Mkx9hafMAAWb2hRoAAHwDkQCTAE4AKQDzAwFyAaodAAAFAcEAAAS7HwXGH3Fz8wYBcjowAAABAAAAAAAJABAAAACTG38cgByBHIIcJh0nHYUdhh04H/sCcHYVAEgAACBPHFAcCx5zth3lHlFCAACiGqMapBqlGqYapxr7AmZz+wJlbyUAQAAABO0eZt4exB/FHysCoBAAAB02cnMFAFEAAAb1H2TpHxMBAqCAAAAd6mRzARAOAAATgQKgsAAAH3ljacUAQQAABA0fZmcTaBNpE2oTPBs9G3QcYB1hHWIdYx3IH8kfBQBKAAAG8B9k3h8hSAAAWx9cH5UfIUMAAJsenB4XH/sDcHR1IwQCoGAAAB9QbXMBjh8AABOBArAgHXIAAWlu+wJydPcAAIWgAAAAC2IBSAPypgQAAEwa")
\ No newline at end of file
diff --git a/api/search.index/59a50cec8f2c.js b/api/search.index/59a50cec8f2c.js
new file mode 100644
index 000000000..9b89cc0dd
--- /dev/null
+++ b/api/search.index/59a50cec8f2c.js
@@ -0,0 +1 @@
+rn_("RQBCAAAGAiBkMRutHIEfuh/uHysCoGAAAB0kZnQVAEQAAAShHmXsGZkbi4SwYB8JAOmwAA4JADmgAAAACZVkAQAFAEUAAAalHmJ1GgUARwAAFpwfnR9mpB4TgwKgMAAAHIhwcxsCoHAAAB31YWUJAqEAAAAfhqCwAAAfQ2FvSwOgQAAAHomgoAAAHspjcXQFAEkAAAaFH3b0HQkCbnABzUFgoGAAAB6VYW8XDwKIoJAAAB3zoPAAAB93oUAAAB+vDJEWAZIOAAD7A2V1eQ==")
\ No newline at end of file
diff --git a/api/search.index/59cc1c8a8c1c.js b/api/search.index/59cc1c8a8c1c.js
deleted file mode 100644
index 42bddcb30..000000000
--- a/api/search.index/59cc1c8a8c1c.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBRAAAG9B9k5B8hRAAAiBuJHu8eUwQDoMAAAB+3ZWZ3AeAdAAAlAEUAAAbVHmIOG6ccqBwFAcAAAAdmHwVSH2Z0BQHAAAAUDRumHAazH29yBQBGAAAEjx5lhxtXBQGHsPAfvAABsDAbPAABoFAAAB+WJoAWOjAAAAEAAAAAAAcAEAAAAIgPiBKJEooSxRrXHcIewx4VAEIAAAHwHmlvHdsd+wJlbFsDoIAAAB+EaXJ1")
\ No newline at end of file
diff --git a/api/search.index/5af4a067d53d.js b/api/search.index/5af4a067d53d.js
deleted file mode 100644
index 1f57a458c..000000000
--- a/api/search.index/5af4a067d53d.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHFAAABdB8E+h1pdNFDAAAtGi4aLxowGjEaMhozGhMdFB0VHRYdFx0YHRkd+wJpdDFDAAAzFTQVlRtSHQUBwAAACfsdFDkdbR1lcCFCAAAEHgUe8x4FAEIAAALjH23WHyOHAqCAAAAf52FrYwcDoKAAAB/cYWNrARkfAAAzAAOgQAAAHC5jZHQBWR0AAEcDAIawkB6xAHqgUAAAHXGgAAAAHvIEqCEBpB8AAA==")
\ No newline at end of file
diff --git a/api/search.index/5b2365254fdd.js b/api/search.index/5b2365254fdd.js
deleted file mode 100644
index ed83d8f66..000000000
--- a/api/search.index/5b2365254fdd.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBKAAAYrh+vH3eCHicAAIawYBypAAGgsAAAHuqgwAAAHwmgQAAAGqGgwAAAHwogERk7MAAAAQAABgACAAEOAwBMDgIA")
\ No newline at end of file
diff --git a/api/search.index/5b5a9f30f3af.js b/api/search.index/5b5a9f30f3af.js
deleted file mode 100644
index bea98ac32..000000000
--- a/api/search.index/5b5a9f30f3af.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQLAAAAF9B4OYR8YHB4kH2VpbUUAQwAAA9oeaXsSyhjLGMwYQh0FAcMAAArKHw3fH2V0IwQCoGAAAB8EYnABkhsAABUAQAAABo4cYnoSdhzzgQJudBMAA6BgAAAfmKBwAAAdp2NucjswAAABAAAHAAIAfxkGAEsfAAAFAcAAAAT5HQKMG3B1BQHBAAAymR2aHa8dmh4WjByNHGVpY4EDoOAAAB9dY3FzBQHAAAA1oR4dH4kfih8Mkx9hafMEAWb0hRoAAA0E4QApADFGAACTGyYdJx04H/OCAnB2BQHEAAARoB4cHwVGH2VyEwcCoCAAAByLYnLzghoAAAEA9gAFAcAAABmxHisfZC0aLhovGjAaMRoyGjMaY3iVAUAAAAI3HCaNH9gf9B9hZJUYCRkCHoUfhh+hH7cfvh+/H+QfIUYAAIAagRp4HgUBwAAAE/gY+Rg3Gh4bHgUfIx9tbmsDoDAAABqvYW9yBQHBAAA [...]
\ No newline at end of file
diff --git a/api/search.index/5bd115635b6b.js b/api/search.index/5bd115635b6b.js
deleted file mode 100644
index 9de8f0ba7..000000000
--- a/api/search.index/5bd115635b6b.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAABuA8K2B1laQUBRAAAB3geB5gfY3PwHQEBAbAAE28AAXM7MAAAAQAAFAAJAAkOAACyDwUAlRoBAJ0aAQDSGgEA+xoBAKkcAQDtHQEAxB4BAEsDoEAAAB+EoIAAAB1SY2x0JQBHAAAD1x1muRp6HXsdFQBCAAADyhlhbRNuE0sDoLAAAB53oGAAABuUY250BQHCAAAL7x40Nh83H2kfah9hZQEA0KAwAAAfZqBAAAAbe3YHICgmoaAgAAAPsaAwAAATbLBwHocAASXZKjd67bAwGtYE3aCAAAAcOQ5Bu8K8IKBAAAAYlEU1QUBZ33YyD231wqBgAAAdHD8UoZ+Wk7AgGp8AAcDuJU87MAAAAQAA4wEGAJYEAACdBfoAGg4AAIcPAACHEOQAnRMAAA==")
\ No newline at end of file
diff --git a/api/search.index/5bded7a68eed.js b/api/search.index/5bded7a68eed.js
new file mode 100644
index 000000000..df007bc39
--- /dev/null
+++ b/api/search.index/5bded7a68eed.js
@@ -0,0 +1 @@
+rn_("FQBHAAAG4h9k2x2eHysCsBAOGgt1bG21AUEAAAegGwZXH2F2yBrJGokbihtZHFochB2FHc0ezh5+H38fhQFEAAAH6h5gUBxRHFIcUxxUHFUcVhxyc8wazRrOGs8a0BrRGtIaeB15HRMBArCAH8EAAXN38+8ZAABVA1ABGwKwAAunDQptbvsDYWV1")
\ No newline at end of file
diff --git a/api/search.index/5c0fbe134d13.js b/api/search.index/5c0fbe134d13.js
deleted file mode 100644
index bd12bcd3d..000000000
--- a/api/search.index/5c0fbe134d13.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUMAAFcdGR6zHgUBwwAACsofDd8fZXQjBAKgYAAAHwRicAGSGwAABQFDAAAJ/x4Voh2jHWRzyRkjAAKgYAAAHI5idPJ6EgAA/An7Am50WwOgUAAAH25hZW8=")
\ No newline at end of file
diff --git a/api/search.index/5c6c30cab3b8.js b/api/search.index/5c6c30cab3b8.js
new file mode 100644
index 000000000..be6fccc25
--- /dev/null
+++ b/api/search.index/5c6c30cab3b8.js
@@ -0,0 +1 @@
+rn_("JQBFAAAG6B5iIBu5HLocBQHAAAAHeR8FZR9mdAUBwAAAFB8buBwGxh9vcgUARgAABKEeZZkbVwUBh7DwH88AAbAwG04AAaBQAAAfqSaAFjowAAABAAAAAAAHABAAAACVD5cSmBKZEtca6h3VHtYeFQBCAAABAx9pgR3uHfsCZWw=")
\ No newline at end of file
diff --git a/api/search.index/5c722c54f0e1.js b/api/search.index/5c722c54f0e1.js
deleted file mode 100644
index 027fd2a29..000000000
--- a/api/search.index/5c722c54f0e1.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBEAAAKbB93TBoFAEQAAAprH3dLGvsCY3QxQQAAgg91GpgdRB8lAEEAAAQfG2I0G4oerR8rAqCAAAAbj292YUEAACUaJhpYHCUdsh7AHmUf+4QQQQI=")
\ No newline at end of file
diff --git a/api/search.index/5ca008b2693a.js b/api/search.index/5ca008b2693a.js
deleted file mode 100644
index 0f7e8ba16..000000000
--- a/api/search.index/5ca008b2693a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBBAAAG6x9k0B8TjAKgQAAAH6ptbwUBxQAABJkdBfkdcXP7AmFvFQBJAAAESR9m2R/aHxUASQAABs8fZMgdix8VAEwAAAbmH2RIH8IfFQBMAAAG5R9kRx/BH/sCYWnnAQGFoIAAAB78BDAG9HgNAACACwEAxABFAEYAAAPXHWa5Gnodex0cHiQfFQBEAAAG8B9klx/eHyMCAqCAAAAfRWNs9xcOAACHAAEAAQAmC10DoAJ7hKAQAAANeRFBAA==")
\ No newline at end of file
diff --git a/api/search.index/5ca2cb7444f5.js b/api/search.index/5ca2cb7444f5.js
deleted file mode 100644
index ba31934e8..000000000
--- a/api/search.index/5ca2cb7444f5.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("9QBAAAAFxhl1kgubDZwNnQ2eDZ8NoA2hDaINow2kDbcZuBm6Hc8dqR4xQwAAixuoHZQe/h4FAcEAAAXPHQa0HmZuNQBAAAAEWh9wgx2EHbkebR8FAcAAAAePHwHfHmFvBQHEAAACyR8BxR9hbyOFAqAAAAAfWWRmBQHEAAAGuh8DqR9vdBsCoOAAAB/aaG9nNAGKoFAAAB0EoDAAAB8DoYAAAB/ysEAfPQABoEAAAB9CLpgHOjAAAAEAAAAAAAkAEAAAAK4Prw+wDwkdCh0SHace8B4SH5kfBQHAAAAE4h8DLh9mchUAQwAADq0fY7QatRpDgQOgQAAAG0iwEBlrAAFhaW53CQCJoIAAABsPsGAatgABsCAPjQuLoDAAABiRErEHOjAAAAEAAAAAACsAEAAAAEoLSwtMC3gSfxOUE5IY5RjoGAMZBBmHGbQZ4RniGSAarhqwGs8aGxtNHGYcVh1bHW8dtB21HcEdwh3 [...]
\ No newline at end of file
diff --git a/api/search.index/5cbd8d0a5f28.js b/api/search.index/5cbd8d0a5f28.js
new file mode 100644
index 000000000..5503546d7
--- /dev/null
+++ b/api/search.index/5cbd8d0a5f28.js
@@ -0,0 +1 @@
+rn_("FQBEAAAGAyBkqh/xHyMAAqCAAAAfWGNs9yMOAACHAAEAAQAsC10DoQJBQQAAfxKAEtgY3B2VH1sDoAAAAAmtZWt5")
\ No newline at end of file
diff --git a/api/search.index/5ce915f26c05.js b/api/search.index/5ce915f26c05.js
new file mode 100644
index 000000000..17e022c49
--- /dev/null
+++ b/api/search.index/5ce915f26c05.js
@@ -0,0 +1 @@
+rn_("FQBFAAAFgx9jIh8jH1UAQAAAVLoauxq8Gr0avhq/GnQTDoIOmxuhG6scrBxRRQAAtBq1GrYatxq4GrkaBQBFAAAGwx9iTx8VAEEAAAQAH2bXH9gfFQBCAAAEIB9m2x/cH/sCYW8hRQAAgxzfHeAd8wMDbHB386wbAACEAeIBBQBCAAAEKx5jgB0jgQKgIAAAGsBlbCMAA6DwAAAf5aCAAAAd4WVmcvMSDgAAWBECAPMAhSiAEjswAAABAAAIAAIAmAsAAJMNBwAbAqCgAAAdrmVp")
\ No newline at end of file
diff --git a/api/search.index/5d3b58ca11fc.js b/api/search.index/5d3b58ca11fc.js
new file mode 100644
index 000000000..a08f73597
--- /dev/null
+++ b/api/search.index/5d3b58ca11fc.js
@@ -0,0 +1 @@
+rn_("1QBCAAADrRl0rAutC64LrwuwC7ELsguzC0kVShWeG1kfXx9iHwUARQAABuweYiYbIUQAAOAY4Rj1HQUBwQAAAicbAiUbYnTzAAF09W0SAAAkAQEADQfYBAUBwAAANiYeJx4oHikeBEgaY25RQgAAuhq7GrwavRq+Gr8a+wJldQUBwQAABmsdAfIZYm8rAqAwAAAfZWFyBQBDAAAYwR/CH3eUHjUDQgAAJI4ejx5kHxrfH+AfFbsdzx4FvB1ja3J34hnjGdQa1RorAqBAAAAcV2VpBQLBAAAUGx0cHRHhGZ4eFBkdUB1lbHgFAUMAAA/wHxKKHIscY3J2GgUARAAAAiobcvsY8wABZgGLEwAA+wJkbgGCA6FQAAAf+6AgAAAe86CAAAAfo2R1dysCoCAAAB9nb3JDBAOgYAAAHcOwcB9oAA5iZXAB/hgAACFCAABkG2UbnR77AmN0GwKgkAAAHhJhbwUBwAAANZUclhy [...]
\ No newline at end of file
diff --git a/api/search.index/5d7f22c3e30e.js b/api/search.index/5d7f22c3e30e.js
deleted file mode 100644
index a1db1d84a..000000000
--- a/api/search.index/5d7f22c3e30e.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBBAAAUnR2eHW02HPMCAWnyIBsAAAEAFQBBAAAUIR8iH23rHuwe8wcBafXLHQAAOwABABQBcQAFAcQAAAE3HQqHH2lu+wNjb3A1AEMAAAFgH2kLH3cfgx+xHxOIAqAwAAAfDHN0MUAAAK0PERrxHkofBQHAAAAK/h4Hmx1haQUBwAAABW8cBjYdY2wVAEUAAAbXH2SgH9IfE4MDoMAAAB86oDAAAB9/Zm5zBQHAAAAXZx9oHwqjH3B0QwADsJAfvgABoHAAAB+TaXBzAbkZAAAbAqCAAAAdPnJzAQCPoDAAAB36sGAcNAABOaMtqGq0Eq4mpY3lAFsoQ/kRoGAAABxwoQAAAB87DarrP0+ZsIAdZgABCH43W+pOYxT6zZQKoOAAAB9UNyqL6ZY1oDAAABmboDAAABKB9fhHOzAAAAEAAEwAFgCiCwcABQ4AAFAOJQA4FQEA/BkAAFkaAAACGwAAjBsAADwcAAD0HQA [...]
\ No newline at end of file
diff --git a/api/search.index/5da1f668af70.js b/api/search.index/5da1f668af70.js
deleted file mode 100644
index 9e12060f1..000000000
--- a/api/search.index/5da1f668af70.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQLAAACLyx7MHs0ezh7PHtAe0R7SHk0fE/keXR8InR5vcnkFAcAAADNVGlYaVxpYGgJZG2VsBQHAAAAGZhwDuhlydQ8OyKEAAAAfb7BgG34AAaAQAAAVLbAgHGIAAaBgAAAehARFOAI=")
\ No newline at end of file
diff --git a/api/search.index/5dc89844de7e.js b/api/search.index/5dc89844de7e.js
new file mode 100644
index 000000000..7dd0b0fad
--- /dev/null
+++ b/api/search.index/5dc89844de7e.js
@@ -0,0 +1 @@
+rn_("BQHAAAAHoR8B8R5hbwUBxAAAAtsfAdcfYW8jhQKgAAAAH2pkZgUBxAAABswfA7sfb3QbAqDgAAAf7GhvNwGDh6AwAAAfFaGAAAAgBKBAAAAfVKBQAAAfayyIAw==")
\ No newline at end of file
diff --git a/api/search.index/5df98910c991.js b/api/search.index/5df98910c991.js
new file mode 100644
index 000000000..81d59bc6a
--- /dev/null
+++ b/api/search.index/5df98910c991.js
@@ -0,0 +1 @@
+rn_("BQBDAAAG/R9k3h/zAAFzOjAAAAEAAAAAABUAEAAAAJAOkQ44GzkbqB6zHt4e3x7gHuEe4h7jHuQe5R7rHu8e8B4wH2AfnB+dH78fBQHAAAAGax0B8hlib0UAQQAAFDQfNR9t3hrfGuAa/h7/HgUARQAABPceZZwcGwKgIAAAHTZ1eTMChLAgGekAAaBAAAAdNwIBAzowAAABAAAAAAALABAAAACIEtoY2xjQGdEZPhveHfwdGB4ZHi4fnx/xRgAAOBs5G6ge3h7fHuAe4R7iHuMe5B7lHuse7x7wHmAfvx8FAEgAAACYHnNiHSsCsEAakAABb3IzAgOgYAAAH0NjZm86MAAAAQAAAAAABwAQAAAAIQ4iDqkOeRokGysbLBs5H3cBAMWgEAAAHa5AAgBJOjAAAAEAAAAAABcAEAAAAI8PoA/cGd8ZhxqJHE0dTh1SHVgdqh33HfgdDR6rHigfKR9NH04fUx9XH1gfkx+UHw==")
\ No newline at end of file
diff --git a/api/search.index/5e868a5ab6ad.js b/api/search.index/5e868a5ab6ad.js
deleted file mode 100644
index 68059b8d3..000000000
--- a/api/search.index/5e868a5ab6ad.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHFAAAoQB+AH4EfBLgfYW8FAcAAAASCHSJgG2EbDB9veRUASgAABvAfZJcf3h8FAcAAAAIqHwnHH2lvEwgCoDAAAB9lZmn3wR4AAEUAAQBHAA0AAQA5ACFFAACiH7QftR8lAEAAAAPAHmmbHpweFx8hQgAAfBx9HC0fMUEAAH8dgB2BHWAfBQHAAAAVmB6UHwK/HnV58wGEAgEDOjAAAAEAAAAAAAwAEAAAAG4aWxtcG10bXhtfGykduR2iHgsfdx+DH7Ef+wJlbPMAA3B0dQGwGAAAFQBBAAAFqx13EhoTGhUAQAAAFJ0fnh9tcB18H/sCZG5FAEQAAACpHnMbG00cDB4NHuYeBQBBAAAlCR7GHscedw8d5xwCyaCAAAAevqAgAAAZ1KBgAAAfUEBMBQs7MAAAAQAABgADAJATAwAUHwAAjh8BABsCoAAAAA+RaXk=")
\ No newline at end of file
diff --git a/api/search.index/5e9c8defe966.js b/api/search.index/5e9c8defe966.js
deleted file mode 100644
index ceebaca88..000000000
--- a/api/search.index/5e9c8defe966.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBEAAAD+B1shBsAHzFIAABxH3UfiB+QHzFCAACRHp8e1h7gHgUBwAAADN8fDcAfYWgPB4eggAAAH5KggAAAH5uhUAAAH+igoAAAH8oeABzzgQJwdgUASAAABnIfduEdWwOgIAAAH1Rsb3I=")
\ No newline at end of file
diff --git a/api/search.index/5ebdea426fc5.js b/api/search.index/5ebdea426fc5.js
deleted file mode 100644
index edbe52402..000000000
--- a/api/search.index/5ebdea426fc5.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBAAAADkB5qhh4VAEMAABFTH28fZXofex8VAEcAAAQuH2W0HbUdKwKgEAAAHd5kemFCAACMGY0ZjhmPGZAZkRmSGZcJAIiwYBw8Ao2gEAAAEmegIAAAFTWgQAAAGxEcSQM6MAAAAQAAAAAABwAQAAAAJhUnFYYXWhpHHUsdUB3pHQ==")
\ No newline at end of file
diff --git a/api/search.index/5eda1d2169b5.js b/api/search.index/5eda1d2169b5.js
deleted file mode 100644
index c268f73aa..000000000
--- a/api/search.index/5eda1d2169b5.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHBAAAFzx0GtB5mbjUAQAAABFofcIMdhB25Hm0fBQHAAAAHjx8B3x5hbwUBxAAAAskfAcUfYW8jhQKgAAAAH1lkZgUBxAAABrofA6kfb3QbAqDgAAAf2mhvZzQAiqBQAAAdBKAwAAAfA6GAAAAf8rBAHz0AAaBAAAAfQi6YBzowAAABAAAAAAAJABAAAACuD68PsA8JHQodEh2nHvAeEh+ZHw==")
\ No newline at end of file
diff --git a/api/search.index/5f0ca55efa92.js b/api/search.index/5f0ca55efa92.js
deleted file mode 100644
index af2ae36dd..000000000
--- a/api/search.index/5f0ca55efa92.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQLGAAACsh0JdB8KkR9hZXMVAEAAABKCEn0TdZkMmgwFAEQAAAbYHmYSGwUAQwAABPEedc4Z8wIBb/KUDwAA7AP7A2hvciUAQQAACKceYqEPjhuVHTUBQgAAUYoaixqMGoUcMx1FHRVUHdseaXOJHYodnh7UHjFEAADKGssahhw0HWUARAAABuwfZG0cbhxdHV4dfR9+H9MfUwEDsDAdiAIJY2509xQOAAD2CgEAawEgAdYA1QBRQwAAIRUiFSMVJBUFGQYZBQBKAAAUnR+eH218HxUARgAAFD0fPh9tEh+ZHzOBA6DQAAAfdmZwc1OBA6AgAAAf4GVpdVsDoBAAAA6SZ25vBQBAAAAC7Rh5qw0PCMigwAAAHtSgIAAAFTagIAAAFTegYAAAGdKgoAAAHd6ggAAAHHSgkAAAHTQAAc0DBQHHAAABRR0F2x5pcxuEsBAOjwABoIAAAB0IoFAAABsERBAC1w8AiKBQAAA [...]
\ No newline at end of file
diff --git a/api/search.index/5f9fc2284f7b.js b/api/search.index/5f9fc2284f7b.js
deleted file mode 100644
index a91624701..000000000
--- a/api/search.index/5f9fc2284f7b.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQFJAAAHXh8FLB9iZqUdwB81AUIAABe5Hm0fAHQZZnOWGJcYmBiZGAUARQAABtkeYhQbBQHBAAACFRsCExtidPMAAXT0XhIAACMBAQALB0UCQgAAJHwefR5RHxrMH80fBakdY2t30BnRGcIawxrkHSsCoEAAABxFZWkFAUQAAA/dHxJ4HHkcY3JkGgUBwAAAI1IbUxuLHgkAHmFvtwwCiLAwGc8EvaBwAAAceqAwAAAaxDSYEvWWDwAAAQA5AA4K4wD7A2VpdA==")
\ No newline at end of file
diff --git a/api/search.index/5fa278f25bbe.js b/api/search.index/5fa278f25bbe.js
new file mode 100644
index 000000000..0113fb583
--- /dev/null
+++ b/api/search.index/5fa278f25bbe.js
@@ -0,0 +1 @@
+rn_("BQHHAAAEJx8Cfx9pbgUBwAAAB0IfEk8VjBtveQUAQAAACk0daQ8fBQHAAAAViRuKGwWIG2FyAQAAOjAAAAEAAAAAABMAEAAAADgbORuoHrMe3h7fHuAe4R7iHuMe5B7lHuse7x7wHjAfYB+cH50fvx8jAQKgEAAAHa52efSrHgAAfQABAC8AxQNBAAAFCx8FzxkWmB+ZHxVxHQofYWNlc8ELdhPHGBEZwhnDGY8aYx0LHw0fDh9yH/sfSwSwABjGAlygUAAAGpmgcAAAHo1kbW92dQBEAAASlR2WHWnUHdUd1h3XHSYeJx4oHikeAQACoNAAAB+VoTAAAB/LYXABUhUAABsDoDAAABo5oBAAAB7KZG1zBQBGAAAQEx44H3K9HfMDAXAB/BgAABsCoEAAABt0YW8FAEMAAAYIIGT8H/MBAW8B2RgAAAUAQgAAB4YfcAkZ+wJibPdfAMugQAAAGj5ATTAbOjAAAAEAAAA [...]
\ No newline at end of file
diff --git a/api/search.index/5fb6b6933376.js b/api/search.index/5fb6b6933376.js
new file mode 100644
index 000000000..7db553126
--- /dev/null
+++ b/api/search.index/5fb6b6933376.js
@@ -0,0 +1 @@
+rn_("UUMAADIVMxU0FTUVFxkYGQUBwAAAAfMfC10dZG4FAEoAABSwH7EfbY8fFQBGAAAUUB9RH20lH6wfM4EDoNAAAB+JZnBz64SgMAAAGqwRAQg=")
\ No newline at end of file
diff --git a/api/search.index/5ffd6e526933.js b/api/search.index/5ffd6e526933.js
deleted file mode 100644
index 41a073d5c..000000000
--- a/api/search.index/5ffd6e526933.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUIAAPAZ8RnyGRUARQAABXAfYw8fEB8FAEkAAAawH2I8H1OFA6AAAAAbiWZzd/OBAmRpBQHBAAAFDB0XlxuYG2VpEwACoAAAAB3eYXP1wQ8AABsJjQAABAsCbwDFsBAY0wJ1oBAAAA+8bxv3gn4QQAIAig==")
\ No newline at end of file
diff --git a/api/search.index/6046c615ade6.js b/api/search.index/6046c615ade6.js
deleted file mode 100644
index 1b448873d..000000000
--- a/api/search.index/6046c615ade6.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("dQBAAAAH6h1vpxg+HD8cQBxBHEIcQxxEHAUBwQAABP0eFUQd1x5xcwUBywAABLsfBcYfcXNhRQAAEx0UHRUdFh0XHRgdGR0FAFEAAAb1H2TpH2cOAIigwAAAHwGwQBsWAAGgcAAAHUMZoQM7MAAAAQAAJwALABAOAABPEgAAYRIBAIMSAACDEwMAuhoGAD4bBgCeHAYAKh0GAFwdAABmHQEA")
\ No newline at end of file
diff --git a/api/search.index/6053a104f105.js b/api/search.index/6053a104f105.js
new file mode 100644
index 000000000..378927362
--- /dev/null
+++ b/api/search.index/6053a104f105.js
@@ -0,0 +1 @@
+rn_("BQBHAAAYwR/CH3eUHgUBwAAAleMd5B3lHeYd5x3oHekd+x78HnUfBk0dbnQVAEQAAARBH2XHHcgdIUUAAP0fACABIAUBxgAAB8YfBakfZnTTAISw0B+NAAE1AAABrwkAACUARAAABgIgZK0cuh/uH7cEAIewMBQeCy6AFUsAFImwABn2AAGKAQc7MAAAAQAAhgERAJYIAAB2CwAAzw8AAIMSAgC7E2IALhUAAPAYAQAeGVsAdBwBAL0cWADZHQEALx5YAL8eAwDdHgAAkh8AAN4fAADnHwEA")
\ No newline at end of file
diff --git a/api/search.index/606050078abd.js b/api/search.index/606050078abd.js
deleted file mode 100644
index a6fa12733..000000000
--- a/api/search.index/606050078abd.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHBAAAM1B4JNB1jcwUASAAABVMfbFoaMUMAAJEckhzOHXYeBQBHAAAM4B9hCB8jAwOgIAAAH4KgYAAAHZhydHYBGB8AAPsDaG9yJwQAiKCgAAAdM7DgH4UAAaBwAAAf3KCgAAAcaaCQAAAbgKDQAAAfLxWEBwFHFQAA")
\ No newline at end of file
diff --git a/api/search.index/608c3bc74c1f.js b/api/search.index/608c3bc74c1f.js
new file mode 100644
index 000000000..c7b8bc11b
--- /dev/null
+++ b/api/search.index/608c3bc74c1f.js
@@ -0,0 +1 @@
+rn_("MUEAALoPIxoEH10fIUIAAAIaAxoEGhUARQAABYMfYyIfIx8FAEkAAAbDH2JPH1OFA6AAAAAbm2Zzd/OCAmRpY4EDoIAAAB90aGl0")
\ No newline at end of file
diff --git a/api/search.index/609105c93848.js b/api/search.index/609105c93848.js
deleted file mode 100644
index 517fe58a0..000000000
--- a/api/search.index/609105c93848.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("NQBDAAAW7R/uH2TGHccd1B/VHwUAQAAAA7IeacgeIwECoBAAAB1oaXM6MAAAAQAAAAAACQAQAAAA1BlFG0YbRxtqHGscuB0EHgUe8x5bA6AwAAAOHWVucw==")
\ No newline at end of file
diff --git a/api/search.index/6122a1eb4798.js b/api/search.index/6122a1eb4798.js
new file mode 100644
index 000000000..7e7aaeb3f
--- /dev/null
+++ b/api/search.index/6122a1eb4798.js
@@ -0,0 +1 @@
+rn_("BQBBAAAJ+R1zww1FAEQAAAcEHmxSH4QfiB+bH6MfcUAAAH8SgBLYGCAaqxudHNwdlR9RQAAAQBWJGYoZixmMGY0Z8wCEqCAA9U4OAAABAAEAAQABAA==")
\ No newline at end of file
diff --git a/api/search.index/616ad6f604ea.js b/api/search.index/616ad6f604ea.js
deleted file mode 100644
index 1ca75663f..000000000
--- a/api/search.index/616ad6f604ea.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBFAAAFTx9yjh0VAEMAAAbiH2Q2G7If+wJlaTFHAABRHfoe+x5fH/UARgAACasfcmIaSRtKG0sbTBtNG04bTxtTHaMepB6lHqYeHh8fHygfBQHAAAABWRICOB1leWMAA7BgHtMBBGR0dvdtGQAAAQABAJ4BmQH6AjIABQBLAAAYrh+vH3eCHvsCbHRzAISgMAAAFSshSAA7MAAAAQAABwACAH0SAAA8FAYA")
\ No newline at end of file
diff --git a/api/search.index/61f6dfb24055.js b/api/search.index/61f6dfb24055.js
new file mode 100644
index 000000000..9f80610c0
--- /dev/null
+++ b/api/search.index/61f6dfb24055.js
@@ -0,0 +1 @@
+rn_("BQHAAAAHix8igRqCGmwdb3kjAgKwYByQAixsdDswAAABAAAGAAMAexIBAKkTAwAUGgAAQwEDoGAAACADoBAAAB70ZGVp918LAADUE3cAJQABACAAAQAFAcAAAAOfHQCYGmFzBQHDAAAXfB99HxLXHtgeZHNTAQOgUAAAHgFmbW7yEBkAALEABQHAAAADbhwADxlhcwUBwAAABDodUEkaShpLGkwaTRpOGmlzBQHDAAAXSR9KHxL/HQAeZHPzBIQgMAQ6MAAAAQAAAAAABwAQAAAAixImFCcUKBQpFCoUJh/kHwUAQAAABv4fZOMfKwKgQAAAGcBpcwUBwwAAF5kemh4S5BrlGmhzVwEAhqBQAAAahaBAAAAfvbAwD6sK7qBQgjswAAABAAAUAAoArAQAAKEIAAAdDgIAow4BAJcPAABIGgAAYBoGAHsaAABJHwEAfB8BAGUEQQAAFrscvBwL/R4MHB8EsxoMHR9mbXJ [...]
\ No newline at end of file
diff --git a/api/search.index/6200b0c23608.js b/api/search.index/6200b0c23608.js
new file mode 100644
index 000000000..db557533d
--- /dev/null
+++ b/api/search.index/6200b0c23608.js
@@ -0,0 +1 @@
+rn_("BQHCAAASrxqwGhKxGrIac3kFAEUAAAbDH2JPHxUAQQAABAAfZtcf2B8VAEIAAAQgH2bbH9wf+wJhbyFFAACDHN8d4B3TAoSwMB3sAAEAqBDzrBsAAIQB4gEFAEsAAAYHIGT3H7uEoLAAAB7mAUEB")
\ No newline at end of file
diff --git a/api/search.index/62084f4c0b5d.js b/api/search.index/62084f4c0b5d.js
new file mode 100644
index 000000000..bdefaf571
--- /dev/null
+++ b/api/search.index/62084f4c0b5d.js
@@ -0,0 +1 @@
+rn_("BQHEAAARexmHHwQMHml0JwAAyKAwAAATnbBQHS8CXbCAHFwAAbBAGZsAAaDQAAAe0LAgHRkAN6BgAAAdpYAEog31fwgAAI0FbASWBlEBBQHAAAALkB4EYxJudBUASAAABvgfZFof1B8jgQKwUBtmAAFmdAUBwAAABf0eNIgaqBt+HFMdY3MTAAKgoAAAHXxldPOYBAAABwEBAAUBwgAADAEfAqMYZHMFAEIAAAFSFWWbC/sDZWlyAQAAOzAAAAEAABgABQCeDQgAPxoGACUdBgDGHQAAFB8AAAUAQAAABMUeY/Ad8wMBcwFnHQAAEwICoIAAAB6IZnIBmQ8AAPMCAmlzAaUPAAABAAOgQAAAHR2g0AAAHgixAB8NAAFiY3TzpQkAALIBAQAFAcIAAACJDgZyGmVp+wJjZBUASAAABgAgZNkd5x+nPgCKoOAAAB1NoGAAACAGoFAAABJiPYEHOjAAAAEAAAAAABAAEAA [...]
\ No newline at end of file
diff --git a/api/search.index/624dce25fc37.js b/api/search.index/624dce25fc37.js
deleted file mode 100644
index 17136d6ce..000000000
--- a/api/search.index/624dce25fc37.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("cUAAAKcYPhw/HEAcQRxCHEMcRBwFAcEAAAT9HhVEHdcecXMFAcsAAAS7HwXGH3FzYUUAABMdFB0VHRYdFx0YHRkdJwcAh6DAAAAfAbBAGxYAAaBwAAAdQxGhAzswAAABAAAkAAgAYRIBAIMTAwC6GgYAPhsGAJ4cBgAqHQYAXB0AAGYdAQA=")
\ No newline at end of file
diff --git a/api/search.index/6281d74a98c4.js b/api/search.index/6281d74a98c4.js
new file mode 100644
index 000000000..91654e3a5
--- /dev/null
+++ b/api/search.index/6281d74a98c4.js
@@ -0,0 +1 @@
+rn_("BQBDAAAGCCBk/B/zAgFvAdkYAAATAISgQAAAGjmwkB+YAAGgEAAAH1gRQQDy6A0AAJsAIUYAAJIakxqKHgUAQgAAMyweLR4YHzYfbC8bKwKwwB/PAAFjZisCsDAZCgABbW7rhKAwAAAawQFABQ==")
\ No newline at end of file
diff --git a/api/search.index/62b6e4f5bd2b.js b/api/search.index/62b6e4f5bd2b.js
new file mode 100644
index 000000000..0246ea498
--- /dev/null
+++ b/api/search.index/62b6e4f5bd2b.js
@@ -0,0 +1 @@
+rn_("MUMAAPkZ+hmYGxIeBQFBAAAP8B8SihyLHGNydhohQgAAsRNfHWAdVwEAhbBQG0kAAbCgHvsAAQBBB/VTDgAAAQABAAEAxA4=")
\ No newline at end of file
diff --git a/api/search.index/6306d61bd67d.js b/api/search.index/6306d61bd67d.js
deleted file mode 100644
index 5b925555f..000000000
--- a/api/search.index/6306d61bd67d.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQIBoDAAABrXajswAAABAADYAAIAGw4AAGwR1wABAAGAGfAAEAFzOjAAAAEAAAAAABIAEAAAAKwNrQ1rGWwZIhojGooaixqMGv0achs4HIUcJB0zHUUdaB2/HtwfawOg0AAAHoNjZG4=")
\ No newline at end of file
diff --git a/api/search.index/632964d4057a.js b/api/search.index/632964d4057a.js
deleted file mode 100644
index de41be9a1..000000000
--- a/api/search.index/632964d4057a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAkRB35HdceAowbcHUVAEYAABCLHYwdc4wcjRxBQgAAmR2aHa8dmh79HvOBAmVpRQBCAAAYwh7DHmRuEp4TnxMKG0wdAQIAOzAAAAEAANkAAgCLDwAAjRLYAPMAAW07MAAAAQAA2wADAI0JAABqCtkAwxgAABUAQAAAJYUbnBydHHeGD14fFQBBAAAhcRmCG4MbZY4PCBvfC8ig4AAAH12wMB6PAFVAC8gB")
\ No newline at end of file
diff --git a/api/search.index/638d772d276b.js b/api/search.index/638d772d276b.js
deleted file mode 100644
index 1be8ba3a7..000000000
--- a/api/search.index/638d772d276b.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQLGAAABnx8Gwx8I0R9pc3QjhgKgQAAAHydjbgUATwAABusfZNAfBQBJAAAGzx9kix8FAEwAAAbmH2TCHwUATAAABuUfZMEf+wJhafOEA21udPsCb3U=")
\ No newline at end of file
diff --git a/api/search.index/6394ab500aa4.js b/api/search.index/6394ab500aa4.js
new file mode 100644
index 000000000..81e8d3095
--- /dev/null
+++ b/api/search.index/6394ab500aa4.js
@@ -0,0 +1 @@
+rn_("FQBFAAAFgx9jIh8jHwUASQAABsMfYk8fo4OEoQAAAB/loAAAABubKAASBQBJAAAG6h9ksx8ThAOgwAAAH8SggAAAH59mcHP7AmZsBQBaAAAGByBk9x/7AmFl")
\ No newline at end of file
diff --git a/api/search.index/63b6ce428505.js b/api/search.index/63b6ce428505.js
deleted file mode 100644
index 92b1ae8c3..000000000
--- a/api/search.index/63b6ce428505.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAADjR0AhhphcwUBwwAAF2kfah8SxB7FHmRzUwADoFAAAB3vZm1u8v4YAACxAEFAAABEC70Pvg+/Dyca+wJ5emUARAAABuwfZG0cbhxdHV4dfR9+H9Mf8wUBY/IKGQAAAQAbAqAgAAAYlGVvBQHAAAADXBwA/RhhcwUBwAAABCgdUDcaOBo5GjoaOxo8GmlzBQHDAAAXNh83HxLtHe4dZHMFAEQAAAPjHXeFFwUBwAAAAyUVQEIOQw5EDkUORg5hZfsCcnS3BwCIoAAAABJWsJAfpQARITgNOzAAAAEAABMABgBJAwQAfBIAABYUBACMGQYAEx8AANEfAAA=")
\ No newline at end of file
diff --git a/api/search.index/63ba705a8b0e.js b/api/search.index/63ba705a8b0e.js
new file mode 100644
index 000000000..9280049ca
--- /dev/null
+++ b/api/search.index/63ba705a8b0e.js
@@ -0,0 +1 @@
+rn_("ZQBBAAAjQhVDFQ4eZqkLuxi8GL0Yvhi/GMAYBQHBAAADiBtWiRqKGosajBqBG4IbanAxQgAAiRuKG80ezh4hSAAAGR8aH2EfNQBCAAABcx9pHh+KH5YfxB87A6CgAAAfqnB0dSOEA6AQAAAdgqAwAAAfH2lzdPOBAmluKwOwYBxcAAGgEAAAGtZncnT7A2FydQ==")
\ No newline at end of file
diff --git a/api/search.index/642545e92eb6.js b/api/search.index/642545e92eb6.js
deleted file mode 100644
index 210a08084..000000000
--- a/api/search.index/642545e92eb6.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBFAAAGlx5ibBpaGwUASAAABuIfZLIfBQBKAAAG7h9k1R8FAEoAAAbtH2TUH/sCYWkFAEYAAAbYH2ShH/OCA2VtbpMAhKBAAAAZ06BwAAAbjRQQEAEPDgAA")
\ No newline at end of file
diff --git a/api/search.index/644ac830a7e6.js b/api/search.index/644ac830a7e6.js
new file mode 100644
index 000000000..04867d2a8
--- /dev/null
+++ b/api/search.index/644ac830a7e6.js
@@ -0,0 +1 @@
+rn_("BQBGAAAFYh9yoB0xRwAAYx0NHw4fch/zAAJmbDswAAABAAAHAAIAjBIAAEwUBgATgQKwcB9GAJRtcwUBwAAAEDcbPR8beh97H2V0BQHAAAARpBMAHwf9HWxz+wJlbK8AhbAwGOsAAaCgAAAdH6BgAAAfeQFJAQ==")
\ No newline at end of file
diff --git a/api/search.index/64861eb9da1f.js b/api/search.index/64861eb9da1f.js
new file mode 100644
index 000000000..08320ad03
--- /dev/null
+++ b/api/search.index/64861eb9da1f.js
@@ -0,0 +1 @@
+rn_("ZQBEAAAGrB5ydxt4G3kbeht7G3wbfRsjgwKgYAAAHTJjdCUAQQAAA5IbbtANfhJtGvsCb3MFAcUAAAUxHRFOHU0fZW9rhLAgDcAAAaCgAAAfdxEBAQ==")
\ No newline at end of file
diff --git a/api/search.index/64aa0af06edf.js b/api/search.index/64aa0af06edf.js
new file mode 100644
index 000000000..4bceb015c
--- /dev/null
+++ b/api/search.index/64aa0af06edf.js
@@ -0,0 +1 @@
+rn_("MUQAALMbtBvEHQ8eBQBRAAAGByBk9x8JAqBQAAAdrqEwAAAftmNyBQHEAAAoUx+TH5QfBMsfYW/7AmFlIUIAAHIbcxsfHwUBwAAAMtwa3RqYHEYdA5Qda3AhQQAADA4OGV8aRQJBAAAVSRtKGxr7HvweM/kZ+hmYGxIeb3N0Uw5UDlUOVg4aHVsDoCAAAB93bnN4BQHEAAAB+BkCrhphdb8BhaAAAAAJqpFAQBUASAAABgMgZKof8R8jgQKgcAAAHEBlbQUBwAAAAj0fCdofaW8TBwKgMAAAH3hmaffUHgAARQABAEcADQABADkAGwKwMB1xAZlhciFFAAC1H8cfyB8lAEAAAAPTHmmtHq4eKh8hQgAAjhyPHEAfMUEAAJEdkh2THXMfBQHAAAAVqh6nHwLSHnV58wGEAgEDOjAAAAEAAAAAAAwAEAAAAIAabRtuG28bcBtxGzsdzB20Hh4fih+WH8Qf+wJlbAUAQgA [...]
\ No newline at end of file
diff --git a/api/search.index/64b86927bc1d.js b/api/search.index/64b86927bc1d.js
deleted file mode 100644
index 16a276cb5..000000000
--- a/api/search.index/64b86927bc1d.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHEAAARaRl0HwT6HWl0JwAAyKAwAAATjbBQHR0CXLCAHEoAAbBAGYkAAaDQAAAevbAgHQcAN6BgAAAdk4AEog31dwgAAIkFaQSTBlEBBQHAAAALfh4EVBJudBUASAAABuUfZEcfwR8jgQKwUBtUAAFmdAUBwAAABeoeNHYalhtsHEEdY3MTAAKgoAAAHWpldPOVBAAABgEBAAUBwgAADO4eApAYZHMFAEIAAAFBFWWRC/sDZWlyAQAAOzAAAAEAABgABQCSDQgALRoGABMdBgCzHQAAAR8AAAUAQAAABLMeY90d8wMBcwFVHQAAEwICoIAAAB52ZnIBjA8AAPMCAmlzAZgPAAABAAOgQAAAHQug0AAAHfaxAB76AAFiY3TznAkAALEBAQAFAcIAAAB9DgZgGmVp+wJjZBUASAAABu0fZMYd1B+nPgCKoOAAAB07oGAAAB/zoFAAABJTPYEHOjAAAAEAAAAAABAAEAA [...]
\ No newline at end of file
diff --git a/api/search.index/64e3da9e2bc0.js b/api/search.index/64e3da9e2bc0.js
new file mode 100644
index 000000000..8bed54239
--- /dev/null
+++ b/api/search.index/64e3da9e2bc0.js
@@ -0,0 +1 @@
+rn_("xQJAAAASExl6HBPvGUQdUFkaWhosHS0djx2QHWtuc44TJhonGigaKRqjHKQcaR3hHSseiB7FHjwfAQMAOzAAAAEAAIsAAgBvGgAAtRuKAMuEsEAaEgABPQsSXcQ3CgEE")
\ No newline at end of file
diff --git a/api/search.index/6521f85e7166.js b/api/search.index/6521f85e7166.js
new file mode 100644
index 000000000..5bbf57086
--- /dev/null
+++ b/api/search.index/6521f85e7166.js
@@ -0,0 +1 @@
+rn_("BQHAAAAHoh8B8h5hbwUBxAAAAtwfAdgfYW8jhQKgAAAAH2xkZgUBxAAABs0fA7wfb3QbAqDgAAAf7WhvNwGGh6AwAAAfFqGAAAAgBaBAAAAfVaBQAAAfbSyIAwUBwAAAB6EfAfEeYW8FAcQAAALbHwHXH2FvI4UCoAAAAB9qZGYFAcQAAAbMHwO7H290GwKg4AAAH+xobzcBhoegMAAAHxWhgAAAIASgQAAAH1SgUAAAH2ssiANjAISgYAAAGnugkAAAHhUlgAABog4AAA==")
\ No newline at end of file
diff --git a/api/search.index/6547c1253865.js b/api/search.index/6547c1253865.js
deleted file mode 100644
index 3525538ff..000000000
--- a/api/search.index/6547c1253865.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHEAAAoQB+AH4EfBLgfYW8bAqBgAAAdnGFlBQLAAAADZB8Egh0iYBthGwwfZW95FQBKAAAG8B9klx/eHwUBwAAAAiofCccfaW8TBwKgMAAAH2VmaffBHgAARQABAEcADQABADkAGwKwMB1fAZhhciFFAACiH7QftR8lAEAAAAPAHmmbHpweFx8hQgAAfBx9HC0fMUEAAH8dgB2BHWAfBQHAAAAVmB6UHwK/HnV58wGEAgEDOjAAAAEAAAAAAAwAEAAAAG4aWxtcG10bXhtfGykduR2iHgsfdx+DH7Ef+wJlbPMAA3B0dfWwGAAAnwMBAEcBdAAFAcAAAAU6HQVQH2FlBQBAAAADsh5pyB4jAgKgEAAAHWhpczowAAABAAAAAAAJABAAAADUGUUbRhtHG2ocaxy4HQQeBR7zHhUAQQAABasddxIaExoVAEAAABSdH54fbXAdfB/7AmRuMUgAAEAd5R3mHTsfRQBDAAA [...]
\ No newline at end of file
diff --git a/api/search.index/655782a17cbe.js b/api/search.index/655782a17cbe.js
deleted file mode 100644
index f7aefd1a1..000000000
--- a/api/search.index/655782a17cbe.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAHjx8B3x5hbwUBxAAAAskfAcUfYW8jhQKgAAAAH1lkZgUBxAAABrofA6kfb3QbAqDgAAAf2mhvNwGGh6AwAAAfA6GAAAAf8qBAAAAfQqBQAAAfWiyIAwUBwAAAB44fAd4eYW8FAcQAAALIHwHEH2FvI4UCoAAAAB9XZGYFAcQAAAa5HwOoH290GwKg4AAAH9lobzcBhoegMAAAHwKhgAAAH/GgQAAAH0GgUAAAH1gsiANjAISgYAAAGmmgkAAAHgMlgAABlg4AAA==")
\ No newline at end of file
diff --git a/api/search.index/65d862149b8e.js b/api/search.index/65d862149b8e.js
new file mode 100644
index 000000000..96c80076a
--- /dev/null
+++ b/api/search.index/65d862149b8e.js
@@ -0,0 +1 @@
+rn_("FQBCAAAAmxJzlg+aEjFBAADtDe4NJRtHHQUBwAAAEjcbPR8ZRh/aH2lvEwADsDAcagMOsDAcawABZmlwOjAAAAEAAAAAAA4AEAAAANwYjRqOGoMblRyWHJkdoR3UHhkfGh9hH24fbx+oHyODAqAwAAAbh2ZzFQBBAAAgYRxiHB0ec8kd+B4FAEQAAAeGH3AJGfMAAXQBjhkAAPsDY29zBQBDAAAD7R5pVB0jAwKgcAAAH69wdPR6GgAA7gABAAEA+4QBAUg=")
\ No newline at end of file
diff --git a/api/search.index/65e49ea78d13.js b/api/search.index/65e49ea78d13.js
deleted file mode 100644
index dd855fc8a..000000000
--- a/api/search.index/65e49ea78d13.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBDAAAD2h5pQh0jBAKgcAAAH5xwdPRoGgAA7gABAAEAIUIAAA4amRuLHAUAUgAABvMfZOEfFQBAAAAA7h5z5hgNGmUARQAABUwfcnscdB11HXYddx14HXkd84ECY2cVAEIAAAHwHmlvHdsdGwKwEBrFAxJlbBsCoIAAAB+EaXIlAE0AAAbsH2R9H34f0x8FAcMAAAMxHxAQHREdbnPzgQJsbQUBxAAAMQoeoB71HhwfBUYfZXL3CwKIoHAAAB85JogHOzAAAAEAADEAFgDRDw8AwRkBAMcZAQDcGQAA+hkAAAMaBgCCGgEAlBoAALgaAQD+GgAAeRsAAI0bAAB6HAAAeh0CAJIdAAAIHgAAHB4AALEeAAAOHwAAJB8AACsfAADMHwEAGwKgIAAAFTBhZA==")
\ No newline at end of file
diff --git a/api/search.index/65f107a7f3b2.js b/api/search.index/65f107a7f3b2.js
deleted file mode 100644
index c6f0ca248..000000000
--- a/api/search.index/65f107a7f3b2.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQFDAAAFxR0GpB90d/Edvh4FAEcAAAzgH2EIHyMEA6AgAAAfgqBgAAAdmHJ0dgEYHwAAGwKg0AAAHy9jdAUBQwAABpYdBpcdYm/aGBOBAqDgAAAe+WFjAQIAOzAAAAEAANkAAgBREgAAIBbYAIcOAIigwAAAHZWgQAAAFSCgkAAAG4KhEAAAH3gxkAc7MAAAAQAA3AAEALIJAQCICwAAnQzYAPoPAAABAISgMAAAElagMAAAElegQAAAFSugcAAAGl8AFQE7MAAAAQAAIgARAI4JDABGCwMAcxIAAH4SAAAgFQAAMxUBANMZAABtGgAAiBsAAJQbAQCXGwEAUh0AAIkeAACPHgAA5B4AAO8eAAAuHwAA+wJydwmEoGAAAB/ogBnXABNKc1PWvGEsoFAAABpfKCACBQFBAAAHlR0ChA9hcrEJ8wADYWVv8nsBAAABAA==")
\ No newline at end of file
diff --git a/api/search.index/665389a26673.js b/api/search.index/665389a26673.js
deleted file mode 100644
index 693834509..000000000
--- a/api/search.index/665389a26673.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAGSx8Beh4zcQUBwAAAAqYdBBEfaW9HAoSGoDAAAB62oCAAAB55oHAAAB8AoDAAAB63wIgDKwKgYAAAHd9jdA==")
\ No newline at end of file
diff --git a/api/search.index/66dd7aed13ff.js b/api/search.index/66dd7aed13ff.js
new file mode 100644
index 000000000..851ca3d96
--- /dev/null
+++ b/api/search.index/66dd7aed13ff.js
@@ -0,0 +1 @@
+rn_("BQHEAAARsh4vHwVZH2VyEwUCoCAAABydYnL22RkAAAEAugABADUAwQAhRQAAEB4RHmkfEwGEoEAAABrCsGAezQABgBoxNsABJIACOzAAAAEAABAABgAcGgAAWBwAAJ4cAQCDHQAAzh0FACAeBQD7Am50")
\ No newline at end of file
diff --git a/api/search.index/6744937513c5.js b/api/search.index/6744937513c5.js
new file mode 100644
index 000000000..b6758210b
--- /dev/null
+++ b/api/search.index/6744937513c5.js
@@ -0,0 +1 @@
+rn_("BQHAAAAJth841B3VHdYd1x1vcgUAQgAABgYgZPQf8wABbQFTEgAABQHAAAAROxs8Gwi+H2VvcUEAAOQY5RiaGpsachx5HN0dLR8FAEoAAAb9H2TeH2cDAYagMAAAGw+gIAAAGzqCCQM6MAAAAQAAAAAAHQAQAAAAEhkUGVsaXBp0GhgbGRtbG1wbXRteG18bYBthG0UcZR2lHfodlx61HrYetx64HvUe9h4HHzEfMh87H4UfBQBCAAAC9h9t6R8jhwKggAAAH/phayMLAqCgAAAf72FjASwfAAA7hKAgAAAdN6CAAAAfdQhAhFMAA7BwH3oAAWlwdAGGGQAA")
\ No newline at end of file
diff --git a/api/search.index/6751151f36eb.js b/api/search.index/6751151f36eb.js
new file mode 100644
index 000000000..c430328fb
--- /dev/null
+++ b/api/search.index/6751151f36eb.js
@@ -0,0 +1 @@
+rn_("BQBAAAAChRtptAsxSAAAUh33HfgdTh8TAwKgUAAAH19ncjswAAABAAAdAAkA0g8KAAMZAwA6GgEAcRwAAI0cAAB9HQEAhh0FAAQeAQBFHwAABQBGAAAG6x5mJBvzAgFz8hgOAAC5AfsCbHTzAAJha/JSAwAAAg8=")
\ No newline at end of file
diff --git a/api/search.index/688bee477357.js b/api/search.index/688bee477357.js
new file mode 100644
index 000000000..8e28c0814
--- /dev/null
+++ b/api/search.index/688bee477357.js
@@ -0,0 +1 @@
+rn_("BQHAAAAUZh3uHgIuFWVpYUEAAJwanRqeGpccRR1XHe8fYwADsJAfRwABZ2lz9Y8OAAAMDwEAFAE3ACsCoLAAAB+tdHlHAACFoGAAABkOoJAAAB8SoGAAAB/vsFAdtAABHBAC8pwIAAA/EQ==")
\ No newline at end of file
diff --git a/api/search.index/689c4ac1612a.js b/api/search.index/689c4ac1612a.js
deleted file mode 100644
index 0dc8d5394..000000000
--- a/api/search.index/689c4ac1612a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAWCR0KHQWaH2ZoIwACoHAAABybaXQBrB4AAAUARgAAEAEeJR9yqh0FAcAAAAvIHgiQHWNkBQBKAAAGRB92ax8FAEUAAAzgH2EIHyOBAqCgAAAfGGFzJQBAAAATJRomGmlxGnIabBtBQgAAcBJxEsUYyR2CHwUCwwAACOEeBocfACQaZG1ztQFBAAAUjR6OHgDEGG1znA+lE6YTpxOoE6kTqhN+G38bNx1kHWUdBQHAAAAFdBoSIhojGnV55y4AyqDAAAAf4KBwAAAbHrBgGnUDI8BAqBs7MAAAAQAALQAPAKsLAgDFDRYAShIDAEUVAQBLGgAA+RoBADobAQCHHAEAtx0AAOwdAAB3HgAACB8AABgfAAAnHwAAhB8AABsCoCAAAB3fYW8lAEIAAAUdG2ObD/IP8w8rAqEQAAAfmmF1BQBBAAAMrB5yzwnnCwCJoMAAAB/osAALmA4ooDAAAB+aDbAHOjAAAAE [...]
\ No newline at end of file
diff --git a/api/search.index/68b9044e01a7.js b/api/search.index/68b9044e01a7.js
deleted file mode 100644
index 2c81a20f9..000000000
--- a/api/search.index/68b9044e01a7.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("VQBFAAAIOx9n8BjxGPIY8xgoGikaGwKgAAAAGPRjZ0UCQgAAJHwefR5RHxrMH80fBakdY2t30BnRGcIawxrkHSFEAABFHB0deR/7A2Vpbw==")
\ No newline at end of file
diff --git a/api/search.index/6a385a0168a6.js b/api/search.index/6a385a0168a6.js
deleted file mode 100644
index 87a70cb6a..000000000
--- a/api/search.index/6a385a0168a6.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBBAAAG9R9k6R8xSAAAoRuiG7Ed/R37AmFlFQBBAAARUx9vH2V6H3sfm4SgYAAAHriwMBJjBktBABEFAEkAAAZDH2JKHROBArBQG20AAWZ3KwKgIAAAHI9ibgUBwAAAB14aBQ4dcnTXAADGoEAAAB9FoEAAABKBsKAdfQABQEQQCvaaCwAAdAJ8ADwKtwAfAQ==")
\ No newline at end of file
diff --git a/api/search.index/6a5263d513c3.js b/api/search.index/6a5263d513c3.js
deleted file mode 100644
index 521f346fa..000000000
--- a/api/search.index/6a5263d513c3.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("ZQBEAAAHpx1yfxmAGYEZghmDGYQZhRkbAqAgAAAPlWF5AQAAOzAAAAEAABgABQCSDQgALRoGABMdBgCzHQAAAR8AAAUAQwAABuofZMsf8wIBc/KEDgAAAQAFAcgAAAfXHmA+HD8cQBxBHEIcQxxEHHJzBQBAAAAEsx5j3R3zAwFzAVUdAAATAQKggAAAHnZmcgGMDwAABQHAAAASJRsqHxkzH8cfaW8TAAOwMBxYAw2wMBxZAAFmaXA6MAAAAQAAAAAADgAQAAAAyRh7GnwacRuDHIQchx2PHcEeBh8HH04fWx9cH5UfKwKgMAAAG3Vmc/sCY25lAEQAAAaaHnJlG2YbZxtoG2kbahtrGysCoGAAAB0gY3TFAEUAABa7HrwecAoaux28Hb0dvh2/HcAdDh4PHhAeER4SHhMe+wJsciFEAAB8Hn0eUR+3HgCKoIAAABuLsKAfzAABoFAAAB2pNGUWOjAAAAEAAAAAAAw [...]
\ No newline at end of file
diff --git a/api/search.index/6a8f9f970a1f.js b/api/search.index/6a8f9f970a1f.js
new file mode 100644
index 000000000..fad864e3f
--- /dev/null
+++ b/api/search.index/6a8f9f970a1f.js
@@ -0,0 +1 @@
+rn_("BQHBAAAM5x4JRh1jcwUASAAABWYfbGwaMUMAAKMcpBzhHYgeBQBHAAAM8x9hGx8jAwOgIAAAH5WgYAAAHapydHYBKx8AAPsDaG9yJwQAiKCgAAAdRbDgH5gAAaBwAAAf76CgAAAce6CQAAAbkqDQAAAfQhWEBwFYFQAA")
\ No newline at end of file
diff --git a/api/search.index/6ac771d00b0a.js b/api/search.index/6ac771d00b0a.js
deleted file mode 100644
index 8654280c7..000000000
--- a/api/search.index/6ac771d00b0a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAFdBwERB9jcwUAQgAAAuMfbdYfI4cCoIAAAB/nYWsjDgKgoAAAH9xhYwEZHwAAS4QcGNSYlkWgQAAAG5WgUAAAHE4YAAP7AmVp")
\ No newline at end of file
diff --git a/api/search.index/6adc1267b72c.js b/api/search.index/6adc1267b72c.js
new file mode 100644
index 000000000..fb09df28f
--- /dev/null
+++ b/api/search.index/6adc1267b72c.js
@@ -0,0 +1 @@
+rn_("FQBEAAADCh5slhsTHyOBAkBMY60qnXB2CQBbA6AgAAAfZwBvcg==")
\ No newline at end of file
diff --git a/api/search.index/6b194bf47123.js b/api/search.index/6b194bf47123.js
new file mode 100644
index 000000000..64da0f623
--- /dev/null
+++ b/api/search.index/6b194bf47123.js
@@ -0,0 +1 @@
+rn_("BQBAAAADoh5qmB4VAEMAABFmH4IfZY0fjh8VAEQAAARBH2XHHcgdBQHGAAAHxh8FqR9mdPsCYWYTAQKAFUsAFIlkcjswAAABAAB1AQYAgxICALsTYgDwGAEAHhlbAL0cWAAvHlgAKwKgEAAAHfFkegUARgAABgggZPwf8wEBYQGDDgAAGwKgAAAAEnZjcWFCAACeGZ8ZoBmhGaIZoxmkGdcJAIiwYBxOAo6gIAAAFUagQAAAGyMcSQM6MAAAAQAAAAAABwAQAAAANxU4FZkXbBpZHV0dYh37HRsCsAAY5gJ0bHM=")
\ No newline at end of file
diff --git a/api/search.index/6b623b6d9228.js b/api/search.index/6b623b6d9228.js
deleted file mode 100644
index 8726b43a4..000000000
--- a/api/search.index/6b623b6d9228.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQLAAAAF9B4OYR8YHB4kH2VpbUUAQwAAA9oeaXsSyhjLGMwYQh0FAcMAAArKHw3fH2V0IwQCoGAAAB8EYnABkhsAABUAQAAABo4cYnoSdhzzgQJudBMAA6BgAAAfmKBwAAAdp2NucjswAAABAAAHAAIAfxkGAEsfAAAFAcAAAAT5HQKMG3B1BQHBAAAymR2aHa8dmh4WjByNHGVpY4EDoOAAAB9dY3FzBQHAAAA1oR4dH4kfih8Mkx9hafMEAWb0hRoAAA0E4QApADFGAACTGyYdJx04H/OCAnB2BQHEAAARoB4cHwVGH2VyEwcCoCAAAByLYnLzghoAAAEA9gAFAsAAABmxHisfC/sdZC0aLhovGjAaMRoyGjMaY254lQFAAAACNxwmjR/YH/QfYWSVGAkZAh6FH4YfoR+3H74fvx/kHyFGAACAGoEaeB4FAcAAABP4GPkYNxoeGx4FHyMfbW5rA6AwAAAar2FvcgU [...]
\ No newline at end of file
diff --git a/api/search.index/6b72e396db68.js b/api/search.index/6b72e396db68.js
new file mode 100644
index 000000000..5ddb7f78a
--- /dev/null
+++ b/api/search.index/6b72e396db68.js
@@ -0,0 +1 @@
+rn_("BQBBAAAGCCBk/B8xSAAAsxu0G8QdDx77AmFlFQBBAAARZh+CH2WNH44fm4SgYAAAHsqwMBJyBk9BABEFAEkAAAZWH2JcHROBArBQG38AAWZ3KwKgIAAAHKFibgUBwAAAB3AaBSAdcnTXAADGoEAAAB9YoEAAABKQsKAdjwABQEQQCvakCwAAdgJ8AEMKtgAfAQ==")
\ No newline at end of file
diff --git a/api/search.index/6b8246717411.js b/api/search.index/6b8246717411.js
new file mode 100644
index 000000000..14d3c5556
--- /dev/null
+++ b/api/search.index/6b8246717411.js
@@ -0,0 +1 @@
+rn_("BQHAAAABxQ8K6x1laQUBRAAAB4oeB6sfY3MCHgEBAbAAE38AAXM7MAAAAQAAFAAJABUOAAC/DwUApxoBAK8aAQDkGgEADRsBALscAQD/HQEA1x4BAEsDoEAAAB+XoIAAAB1kY2x0JQBHAAAD6h1myxqMHY0dFQBCAAAD3BlhfRN+E0sDoLAAAB6JoGAAABumY250BQHCAAALAh80SR9KH3wffR9hZQEA0KAwAAAfeaBAAAAbjR6LkVL2yqAgAAAPvqAwAAATfLBwHpkAASRES3Cao7AwGugE3qCAAAAcS0xTMn18raBAAAAYp26g4xQVaGCP5xWrdKBgAAAdLg+2fPcXx7AgGrEAAcDuJU87MAAAAQAA5QEGAJkEAAChBfsAJg4AAJQPAACUEOUArRMAAA==")
\ No newline at end of file
diff --git a/api/search.index/6bb1103bb11f.js b/api/search.index/6bb1103bb11f.js
new file mode 100644
index 000000000..ce3a1f0bc
--- /dev/null
+++ b/api/search.index/6bb1103bb11f.js
@@ -0,0 +1 @@
+rn_("BQHFAAABhx8EDB5pdNFDAAA/GkAaQRpCGkMaRBpFGiUdJh0nHSgdKR0qHSsd+wJpdDFDAABEFUUVpxtkHQUBwAAACQ0eFEsdfx1lcCFCAAAWHhceBh8FAEIAAAL2H23pHyOHAqCAAAAf+mFrYwcDoKAAAB/vYWNrASwfAAAzAAOgQAAAHEBjZHQBax0AAEcDAIawkB7DAHugUAAAHYOgAAAAHwUEqCEBtx8AAA==")
\ No newline at end of file
diff --git a/api/search.index/6bb18b16337a.js b/api/search.index/6bb18b16337a.js
new file mode 100644
index 000000000..8b8170112
--- /dev/null
+++ b/api/search.index/6bb18b16337a.js
@@ -0,0 +1 @@
+rn_("BQHDAAASExl6HBPvGUQda24lAEEAAAi5HmKuD6Abpx01AUIAAFGcGp0anhqXHEUdVx0VZh3uHmlzmx2cHbAe5x7zAgJrbwGvHgAA+wJlbw==")
\ No newline at end of file
diff --git a/api/search.index/6bc0037ef9ba.js b/api/search.index/6bc0037ef9ba.js
new file mode 100644
index 000000000..f71dc10f5
--- /dev/null
+++ b/api/search.index/6bc0037ef9ba.js
@@ -0,0 +1 @@
+rn_("JQBAAAAzThW/GXwaXhx3rxjBH8IftQFCAAAHoBsGVx9hdsgayRqJG4obWRxaHIQdhR3NHs4efh9/HwUBxQAAKFMfkx+UHwTLH2FvBQHAAAAElB0ichtzGx8fb3kVAEoAAAYDIGSqH/EfBQHAAAACPR8J2h9pbxMIAqAwAAAfeGZp99QeAABFAAEARwANAAEAOQAhRQAAtR/HH8gfJQBAAAAD0x5prR6uHiofIUIAAI4cjxxAHzFBAACRHZIdkx1zHwUBwAAAFaoepx8C0h51efMBhAIBAzowAAABAAAAAAAMABAAAACAGm0bbhtvG3AbcRs7HcwdtB4eH4oflh/EH/sCZWzzAANwdHUBwxgAABUAQQAABb4ddyQaJRoVAEAAABSwH7EfbYIdjx/7AmRuRQBEAAAAux5zLRtfHB4eHx75HgUAQQAAJRse2R7aHnchHeccA8mggAAAHtGgIAAAGeagYAAAH2NATAULOzA [...]
\ No newline at end of file
diff --git a/api/search.index/6bdcec893970.js b/api/search.index/6bdcec893970.js
deleted file mode 100644
index 017ce8a3f..000000000
--- a/api/search.index/6bdcec893970.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBAAAADsh5pyB4jAgKgEAAAHWhpczowAAABAAAAAAAIABAAAABFG0YbRxtqHGscuB0EHgUe8x4FAEIAAALjH23WHyOHAqCAAAAf52FrYwKEoKAAAB/coGAAAB06BRQA848XAAABAIkHFQBCAAAHDh9txBmxGkOBhKAwAAAcOKCAAAAdoKCQAAAd/AJFADMAhLFgH8wAAaAAAAANhRBRAPNPDgAAKQABAAUBwQAACPEdA8UdYXQxQAAAawuBEowSWxwBAwA7MAAAAQAA1wABAEMU1wABAAA7MAAAAQAA2AACALYLAAClDtcAGwKgIAAAHtpkdOcBAIagQAAAHVugYAAAH6QgIRY6MAAAAQAAAAAAJAAQAAAAqgSaCJsIDQ6JD5UPexKEEoUSixJrEz4VkRjKGMsYzBjtGJsZ5xnoGW8acBpgG2EbehuGGw0dOB1CHVodxR3xHQAevh4MH6gfqR8FAEgAAAbiH2SyHwU [...]
\ No newline at end of file
diff --git a/api/search.index/6c5274da9570.js b/api/search.index/6c5274da9570.js
new file mode 100644
index 000000000..c60804a2c
--- /dev/null
+++ b/api/search.index/6c5274da9570.js
@@ -0,0 +1 @@
+rn_("BQLGAAABsh8G1h8I5B9pc3QrAqBAAAAfOmNu8wUBcwHEGQAABQBPAAAG/h9k4x8FAEkAAAbiH2SeHwUATAAABvkfZNUfBQBMAAAG+B9k1B/7AmFp84MDbW50K4SgYAAAH1ig0AAAH/CgIAAAE44AOAgVAUUAAAanHghSH2J3dxp4GvsDYW91")
\ No newline at end of file
diff --git a/api/search.index/6c5ef8803a8f.js b/api/search.index/6c5ef8803a8f.js
deleted file mode 100644
index e17185dcd..000000000
--- a/api/search.index/6c5ef8803a8f.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBRAAAG9B9k5B8FAcQAAChAH4AfgR8EuB9hbxsCoGAAAB2cYWUhQgAAYBthGwwfBQHAAAAyyhrLGoYcNB0Dgh1rcGsDoDAAAB9kZW95FQBKAAAG8B9klx/eHwUBwAAAAiofCccfaW8TBwKgMAAAH2VmaffBHgAARQABAEcADQABADkAGwKwMB1fAZhhciFFAACiH7QftR8lAEAAAAPAHmmbHpweFx8hQgAAfBx9HC0fMUEAAH8dgB2BHWAfBQHAAAAVmB6UHwK/HnV58wGEAgEDOjAAAAEAAAAAAAwAEAAAAG4aWxtcG10bXhtfGykduR2iHgsfdx+DH7Ef+wJlbAUAQgAABvMfZOEf8wCEAJAM9kQSAABsBp8DAQBHAXQABQHAAAAQKRsqGwNMH2ZzGwKggAAAH6tlbyFDAACAG4gdkR8FAcAAAAU6HQVQH2FlBQBAAAADsh5pyB4jAgKgEAAAHWhpczowAAABAAA [...]
\ No newline at end of file
diff --git a/api/search.index/6cbf90a95d4e.js b/api/search.index/6cbf90a95d4e.js
deleted file mode 100644
index 40f8c733f..000000000
--- a/api/search.index/6cbf90a95d4e.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBBAAAWvh+/H2WZD3UAQAAAFCEfIh9t5A/MGs0azhoAGwEb6x7sHgUBxwAAB7MfBZYfZnQTBAKAFToAFIhkcjswAAABAAB1AQYAdBICAKsTYgDdGAEADBlbAKscWAAdHlgA24SgAAAAGl4NIAA=")
\ No newline at end of file
diff --git a/api/search.index/6ccd5bca7766.js b/api/search.index/6ccd5bca7766.js
deleted file mode 100644
index fe59b6fec..000000000
--- a/api/search.index/6ccd5bca7766.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAADjR0AhhphcwUBwwAAF2kfah8SxB7FHmRzUwADoFAAAB3vZm1u8v4YAACxAEUAQAAAAQ0OcEQLvQ++D78PJxoFAEAAAAOyHmnIHiMCAqAQAAAdaGlzOjAAAAEAAAAAAAgAEAAAAEUbRhtHG2ocaxy4HQQeBR7zHgUAQgAAAuMfbdYfI4cCoIAAAB/nYWsFAcAAACDhD+IP4w8J3B9sd3cAAoWgYAAAHTqgAAAAHZcFFAL0ngsAAPELAQCJBxUAQgAABw4fbcQZsRpDgYSgMAAAHDiggAAAHaCgkAAAHfwCRQBlAUMAAAjfHwM3HGJkiBeJF4oXixeMF40Xjhe3DACIoNAAAB/AsWAfzAABoAAAAA2FkVHA808OAAApAAEA")
\ No newline at end of file
diff --git a/api/search.index/6d77b6932827.js b/api/search.index/6d77b6932827.js
deleted file mode 100644
index e1b596deb..000000000
--- a/api/search.index/6d77b6932827.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUMAABoeGx4FHyMf8wABbDowAAABAAAAAAATABAAAAB6DXsNfA19DX4Nfw2ADYENgg2DDZAPmg9bEmUS2xh+Gn8aHRs1G3AfRQBCAAAAqR5zGxtNHAweDR7mHjsDoCAAABixZWdsBQHAAAADrB0Ktx9pbjuEoEAAAB78oVAAAB+rAUkA")
\ No newline at end of file
diff --git a/api/search.index/6dd7f46cde7c.js b/api/search.index/6dd7f46cde7c.js
new file mode 100644
index 000000000..dab01bdfe
--- /dev/null
+++ b/api/search.index/6dd7f46cde7c.js
@@ -0,0 +1 @@
+rn_("AQEAOzAAAAEAANgAAQBZFdgAMUIAALMbtBvEHQ8e+wJvdfMAAW07MAAAAQAA4QAEAHgBAACICQAAwgveAMcPAAA=")
\ No newline at end of file
diff --git a/api/search.index/6df70e8a0f4a.js b/api/search.index/6df70e8a0f4a.js
deleted file mode 100644
index 325c18b2e..000000000
--- a/api/search.index/6df70e8a0f4a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUoAABQeFR4WHhceFQBAAAAU8R5KH3XOGYobBQHCAABSLhsvGzAbMRsyGzMbVJMclByVHJYclxyYHGt2UUoAAA4eDx4QHhEeEh4THu8CxrBAGeEAAaAwAAAegwAIxgE=")
\ No newline at end of file
diff --git a/api/search.index/6e7001cd4160.js b/api/search.index/6e7001cd4160.js
new file mode 100644
index 000000000..3667d7751
--- /dev/null
+++ b/api/search.index/6e7001cd4160.js
@@ -0,0 +1 @@
+rn_("BQHAAAAGXh8BjB4zcQUBwAAAArgdBCQfaW9HAoSGoDAAAB7IoCAAAB6LoHAAAB8ToDAAAB7JwIgDKwKgYAAAHfJjdA==")
\ No newline at end of file
diff --git a/api/search.index/6e794b74c4c5.js b/api/search.index/6e794b74c4c5.js
deleted file mode 100644
index 7609ebaca..000000000
--- a/api/search.index/6e794b74c4c5.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAo/h3/HVYfIFQbVRt+HmVz8UYAACYbJxuWHssezB7NHs4ezx7QHtEe0h7YHtwe3R5NH6wfBQBGAAAAhh5zUB0jgQKgIAAAGithZCsCsEAafgABb3J3AACGoGAAAB8wsAAOjg6ssEAcSgABJFAFOjAAAAEAAAAAAAoAEAAAABUOFg6PDpAOnQ5nGhIbGRsaGyYfqx8TAAKgIAAADhhlbPKSAQAAAQA=")
\ No newline at end of file
diff --git a/api/search.index/6f1bf7827e10.js b/api/search.index/6f1bf7827e10.js
deleted file mode 100644
index 6286bb58c..000000000
--- a/api/search.index/6f1bf7827e10.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBHAAAYrh+vH3eCHhUARAAABC4fZbQdtR0FAcYAAAezHwWWH2Z0+wJhZlMBA4AVOgAUiGRydDswAAABAAB1AQYAdBICAKsTYgDdGAEADBlbAKscWAAdHlgA")
\ No newline at end of file
diff --git a/api/search.index/6f64f216a9c1.js b/api/search.index/6f64f216a9c1.js
new file mode 100644
index 000000000..5dd34fe26
--- /dev/null
+++ b/api/search.index/6f64f216a9c1.js
@@ -0,0 +1 @@
+rn_("BQBGAAAGqB5meRoVAUYAAAanHghSH2J3dxp4GlMBA6EgAAAfaWNrczswAAABAAAGAAMApQsBALwNAwBbHAAAKwOgEAAAHfIXaUaKTFRrcnY=")
\ No newline at end of file
diff --git a/api/search.index/6f70fcfea389.js b/api/search.index/6f70fcfea389.js
new file mode 100644
index 000000000..c6e3fe7c5
--- /dev/null
+++ b/api/search.index/6f70fcfea389.js
@@ -0,0 +1 @@
+rn_("BQBHAAAYwR/CH3eUHhUARAAABEEfZccdyB0FAcYAAAfGHwWpH2Z0+wJhZlMBA4AVSwAUiWRydDswAAABAAB1AQYAgxICALsTYgDwGAEAHhlbAL0cWAAvHlgA")
\ No newline at end of file
diff --git a/api/search.index/6fce261b52e5.js b/api/search.index/6fce261b52e5.js
deleted file mode 100644
index c8e2f4cbf..000000000
--- a/api/search.index/6fce261b52e5.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUEAAJkeFR8WHwUBwAAAELMYEBsBtBhkbwGBAqDQAAAfgqEwAAAfuGFwpwEChqBQAAAbYrBwHYMAAaDAAAAfFDRBEPWUDgAAAQCxCzAB/wAbArAgGtcEv2Vz")
\ No newline at end of file
diff --git a/api/search.index/707838d792c4.js b/api/search.index/707838d792c4.js
new file mode 100644
index 000000000..2194e1afe
--- /dev/null
+++ b/api/search.index/707838d792c4.js
@@ -0,0 +1 @@
+rn_("BQBBAAAG/h9k4x8TiAKgQAAAH71tbwUBQAAABl4fAYweM3EBHxUARAAAAwoebJYbEx8xSAAAhB+IH5sfox8xQgAAox6xHuke8x4FAcAAAAzyHw3TH2FoDweHoIAAAB+loIAAAB+uoVAAAB/7oKAAAB/dHgAc84ECcHYrAqAgAAAfZ29yBQHAAAACuB0UbhokH2lvBQHBAAAMDx8DRxttboFGAAAdGx4bUR1hHbYdwx0IHqceFx83VACMsHAfaAAOoDAAAB7IoCAAAB6LsBAcdgM4oEAAABqsoDAAAB7JoIAAAB9S1qkTOjAAAAEAAAAAABcAEAAAAAoOCw5DDkQORQ5GDkcOSA5JDkoOSw5MDj8VTRXzGPkY/hgfGncaeBqkG0YcRxwyHXUARQAABV8fco0chh2HHYgdiR2KHYsdBR77AmNnBQBDAAAGCCBk/B/zAAFvAdkYAAD7A2xvcg==")
\ No newline at end of file
diff --git a/api/search.index/70c33c4f5668.js b/api/search.index/70c33c4f5668.js
new file mode 100644
index 000000000..51b0ba23a
--- /dev/null
+++ b/api/search.index/70c33c4f5668.js
@@ -0,0 +1 @@
+rn_("BQJGAAAh+R0qHrIfBtYfCOQfaXN0txwVAEEAABSfHqAebXYddx0TBAKgIAAAHdxpcvdMGwAAAQBMAQEAMAE0ADwBkwCEsEAarQL5sJAe+wABFCEAOjAAAAEAAAAAAAgAEAAAADEaWRpaGiwdLR2PHZAdnR2eHQ==")
\ No newline at end of file
diff --git a/api/search.index/7180efbf6911.js b/api/search.index/7180efbf6911.js
deleted file mode 100644
index 83d97bfc1..000000000
--- a/api/search.index/7180efbf6911.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBGAAAQAR4lH3KqHUMBhKEgAAAfmqAwAAAd36CAAAAcmwiQAjowAAABAAAAAAAKABAAAACJCc0JzgnpGK8aUhtTG3wefR6LHlEf")
\ No newline at end of file
diff --git a/api/search.index/71a5d199d4bc.js b/api/search.index/71a5d199d4bc.js
new file mode 100644
index 000000000..c44f0f03e
--- /dev/null
+++ b/api/search.index/71a5d199d4bc.js
@@ -0,0 +1 @@
+rn_("BQHAAAAHix8igRqCGmwdb3kFAcAAABWQHLweBI0eaXnDAISgQAAAGzGgcAAAGnsKCAQ6MAAAAQAAAAAACgAQAAAAyQ97EnwSqROqE6sTrBMUGkYbnB7AHwEEADswAAABAAAAAQIAOhUBAKQX/gD7AmFl")
\ No newline at end of file
diff --git a/api/search.index/71ce6d7db7f0.js b/api/search.index/71ce6d7db7f0.js
deleted file mode 100644
index c5f72982a..000000000
--- a/api/search.index/71ce6d7db7f0.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUYAAK0erh6vHrAeFQBRAAAG7x9kpx/bHxsCoAAAABJIYW9hRgAAPR2THpce1R7ZHkMfsB8TAAOgUAAAH3CgkAAAHJBiY3A6MAAAAQAAAAAAKAAQAAAA6w3sDe0N7g3vDfAN8Q3yDfMN9A31DSwVBxkIGXIZcxnFGdYZYxpsGrIasxoOGxQbWhttG24bhRucHJ0cpxyoHEodqR2rHQkexh7HHg8fEB88HwUAVAAABvAfZN4fBQBLAAAG9B9k5B8bAqCwAAAe02FvAYMCoJAAAB9SoRAAAB+3aXUbArBQGwIC8mFlNw4AiKCwAAAejLAgGZwAAaBAAAAZvCjwBTswAAABAAAXAAYArQkAAHALEgBYEgAAZhIAAI8TAACBGwAAW4SgEAAAH+ewQBstAsiQAEQBAQKwYB++AAGgcAAAHI9lZjswAAABAABNAAoAsAsCAOUNAQCZDwAAnw8AABsUIADVGgAA2BogAF0cAQB [...]
\ No newline at end of file
diff --git a/api/search.index/71d18056cb62.js b/api/search.index/71d18056cb62.js
new file mode 100644
index 000000000..125e9fe88
--- /dev/null
+++ b/api/search.index/71d18056cb62.js
@@ -0,0 +1 @@
+rn_("BQBAAAASHh0xHWtXElFCAACXD3saSR9KH3wffR8VAFAAAAYCIGS6H+4f1QFCAAAJSx8GrB1wcvsZ/Bn9Gf4Z/xkAGgEaTxpQGlEaUhpTGlQaVRr7AmJye4Sg8AAAH3IBQQE=")
\ No newline at end of file
diff --git a/api/search.index/71d6728e99d6.js b/api/search.index/71d6728e99d6.js
deleted file mode 100644
index 978e080f2..000000000
--- a/api/search.index/71d6728e99d6.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQLDAAAIkh8Cnx4IdR9idXcjBgKgYAAAHU9icAE8FQAAIwAEsIAZ2QGboIAAAB64oRAAAB7lYmNsdvORAQAA+ALxGQ==")
\ No newline at end of file
diff --git a/api/search.index/7245667bd67e.js b/api/search.index/7245667bd67e.js
deleted file mode 100644
index 21d9c5ecc..000000000
--- a/api/search.index/7245667bd67e.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBAAAAEsx5j3R3zAwFzAVUdAAATAAOggAAAHnagMAAAHQ1mcnQBjA8AAEMAhKBAAAAZaKAgAAAdDrAQGXUAAUkABPKjCQAA2Qk=")
\ No newline at end of file
diff --git a/api/search.index/7261f30aca9e.js b/api/search.index/7261f30aca9e.js
new file mode 100644
index 000000000..580f51132
--- /dev/null
+++ b/api/search.index/7261f30aca9e.js
@@ -0,0 +1 @@
+rn_("IUEAAFMfkx+UHwUAQAAADowfcJUS84MCZW9hQQAAnhmfGaAZoRmiGaMZpBkFAsMAAAilHwKxHgiIH2J1dyMFAqBgAAAdYWJwAU0VAAD7A2FtdQ==")
\ No newline at end of file
diff --git a/api/search.index/7264822b2a52.js b/api/search.index/7264822b2a52.js
deleted file mode 100644
index fa7333709..000000000
--- a/api/search.index/7264822b2a52.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBKAAAGRB92ax8FAEUAAAzgH2EIHyOBAqCgAAAfGGFzJQBAAAATJRomGmlxGnIabBtBQgAAcBJxEsUYyR2CHwUDQAAAUi4bLxswGzEbMhszGzPnGA8aEBqHHwYeG1STHJQclRyWHJccmBxrcHJ2tB4FAsIAAAjhHgaHHwAkGmRtcxsCoIAAAB6MYWm1AUEAABSNHo4eAMQYbXOcD6UTphOnE6gTqROqE34bfxs3HWQdZR0FAcAAAAV0GhIiGiMadXnnLwDLoMAAAB/gsGAadQMjoAAAAA+DwECoOzswAAABAAAtAA8AqwsCAMUNFgBKEgMARRUBAEsaAAD5GgEAOhsBAIccAQC3HQAA7B0AAHceAAAIHwAAGB8AACcfAACEHwAA")
\ No newline at end of file
diff --git a/api/search.index/72ae32731324.js b/api/search.index/72ae32731324.js
deleted file mode 100644
index 72a8c9e79..000000000
--- a/api/search.index/72ae32731324.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("wUEAAJMPyhnNGXccOx08HUAdRh3lHeYd+x06HzsfNQBCAAAEZB90ZBKOEzQfNR8FBEAAABPLGcwZF9kd2h0S+Bn5GRdrHWwdBB8dZGZrbHS5D/sDZWlv")
\ No newline at end of file
diff --git a/api/search.index/732aa082ac6a.js b/api/search.index/732aa082ac6a.js
deleted file mode 100644
index 52727cd31..000000000
--- a/api/search.index/732aa082ac6a.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBAAAADsh5pyB4jAgKgEAAAHWhpczowAAABAAAAAAAIABAAAABFG0YbRxtqHGscuB0EHgUe8x4FAEIAAALjH23WHyOHAqCAAAAf52FrYwCEoKAAAB/coGAAAB06BRQA848XAAABAIkH")
\ No newline at end of file
diff --git a/api/search.index/733dca8cb0f3.js b/api/search.index/733dca8cb0f3.js
deleted file mode 100644
index 198fed005..000000000
--- a/api/search.index/733dca8cb0f3.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAA1oR4dH4kfih8Mkx9haRMAAqAwAAAd+GZsOjAAAAEAAAAAAAgAEAAAAIUaHhuEGwEekh4AHyUfcx+cHyMAArCQHUcAomNyAaodAAA=")
\ No newline at end of file
diff --git a/api/search.index/7353d6bc612c.js b/api/search.index/7353d6bc612c.js
deleted file mode 100644
index 73a3784f6..000000000
--- a/api/search.index/7353d6bc612c.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUoAAK0erh6vHrAeFQBFAAARyh0aH2kzHIUeGwKwkB7iAAFlaQUCRgAAERgenx8Gwx8I0R9pc3SlHBUAQQAAFI0ejh5tZB1lHRMEAqAgAAAdyWly9zobAAABAEwBAQAvATUAOwH7AmNuMUUAAC8cMBwxHDIcBQHDAAAzYB1hHWIdYx0FNR1wc/MAxQAIgBnySw4AAGcLBQBBAAA0IB+8H70f3R9sph/7AmN0")
\ No newline at end of file
diff --git a/api/search.index/737276240f6f.js b/api/search.index/737276240f6f.js
deleted file mode 100644
index 455adc6e3..000000000
--- a/api/search.index/737276240f6f.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHIAAAHYx8DVB9lcGUAQAAABUwdZZkO9Rj2GCIbIxtIHUkd0UEAAK8L4w3kDVQSqBqpGqoaqxqsGq0aoh2jHfkeXR+/AIWgMAAAGluwYB1NAAFhAAY=")
\ No newline at end of file
diff --git a/api/search.index/73968f404c99.js b/api/search.index/73968f404c99.js
deleted file mode 100644
index a40f480c9..000000000
--- a/api/search.index/73968f404c99.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("IUUAAP4d/x1WHxMAhKBAAAAasLBgHrsAAYAaHzbAASSAAjswAAABAAAQAAYAChoAAEYcAACMHAEAcR0AALsdBQAOHgUAGwKgAAAAD7F0dg==")
\ No newline at end of file
diff --git a/api/search.index/73b675b08171.js b/api/search.index/73b675b08171.js
deleted file mode 100644
index 9c0efb328..000000000
--- a/api/search.index/73b675b08171.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHCAAASnRqeGhKfGqAac3kFAEUAAAawH2I8HxUAQQAABO0eZsQfxR8VAEIAAAQNH2bIH8kf+wJhbyFFAABxHMwdzR3TAoSwMB3ZAAEAqBDzmhsAAIQB4QEFAEsAAAb0H2TkH7uEoLAAAB7TAUEB")
\ No newline at end of file
diff --git a/api/search.index/7423db7c8e89.js b/api/search.index/7423db7c8e89.js
new file mode 100644
index 000000000..46608b6ea
--- /dev/null
+++ b/api/search.index/7423db7c8e89.js
@@ -0,0 +1 @@
+rn_("BQHBAAAF4h0Gxh5mbjUAQAAABG0fcJUdlh3LHoAfBQHAAAAHoh8B8h5hbwUBxAAAAtwfAdgfYW8jhQKgAAAAH2xkZgUBxAAABs0fA7wfb3QbAqDgAAAf7WhvZzQAiqBQAAAdFqAwAAAfFqGAAAAgBbBAH1AAAaBAAAAfVS6YBzowAAABAAAAAAAJABAAAAC7D7wPvQ8bHRwdJB25HgMfJR+sHw==")
\ No newline at end of file
diff --git a/api/search.index/745a6015da40.js b/api/search.index/745a6015da40.js
new file mode 100644
index 000000000..4a6c881bf
--- /dev/null
+++ b/api/search.index/745a6015da40.js
@@ -0,0 +1 @@
+rn_("BQBDAAAD7R5pVB0jBAKgcAAAH69wdPR6GgAA7gABAAEAIUIAACAaqxudHAUAUgAABgYgZPQfFQBAAAAAAR9z+RgfGmUARQAABV8fco0chh2HHYgdiR2KHYsd84ECY2cVAEIAAAEDH2mBHe4dGwKwEBrXAxNlbBsCoIAAAB+XaXIlAE0AAAb/H2SQH5Ef5h8FAcMAAANEHxAiHSMdbnPzgQJsbQUBxAAAMRwesh4IHy8fBVkfZXL3CwKIoHAAAB9MJogHOzAAAAEAADEAFgDeDw8A0xkBANkZAQDuGQAADBoAABUaBgCUGgEAphoAAMoaAQAQGwAAixsAAJ8bAACMHAAAjB0CAKQdAAAaHgAALh4AAMMeAAAhHwAANx8AAD4fAADfHwEAGwKgIAAAFUFhZA==")
\ No newline at end of file
diff --git a/api/search.index/745e233129e4.js b/api/search.index/745e233129e4.js
new file mode 100644
index 000000000..f6bf6c2a1
--- /dev/null
+++ b/api/search.index/745e233129e4.js
@@ -0,0 +1 @@
+rn_("BQHAAAAXeh97Hwq2H3B0QwIDsJAf0QABoHAAAB+maXBzAcsZAABRQAAAdwt4C+AY4RizGvUddQBAAAA2Tx3oHlYfwx9iPRWEGYUZIBu5HLocXB1PH/MEAXLyZxIAACwJBQHAAAAEqR8CexNveQUBwAAAA0cdBGUfYW9hRgAA4x3kHeUd5h3nHegd6R0VAEQAAAYCIGS6H+4f8wICYmkBkh8AACFDAABpHSsexR4FAUUAAAkSHxW0HbUdZHPbGfsCYW+XAQCGoMAAAB7HoHAAAB95oEAAABimNAFE9MQYAACJAzMBcAAVAEMAACGDGZQblRtlmw8aGxUAQQAABAAfZtcf2B+1AEIAAAQgH2Z3E3gTeRN6E04bTxtyHXMddB11Hdsf3B/7AmFvJQBDAAAYTh1NH2d7HOwd7R0hRwAA2RnaGcoaBQHAAAAUghlDHSSDHN8d4B1lb2UAQQAABnMaYp0LnguKDosOjA6NDo4 [...]
\ No newline at end of file
diff --git a/api/search.index/74d5e6730328.js b/api/search.index/74d5e6730328.js
new file mode 100644
index 000000000..3cfdcf9e2
--- /dev/null
+++ b/api/search.index/74d5e6730328.js
@@ -0,0 +1 @@
+rn_("BQBCAAASDRsOG3OtExUAQAAAFGkdKx5jTRyAHfMBAXPzrw8AAAEAZg8FAcAAAAeiHwHyHmFvBQHEAAAC3B8B2B9hbyOFAqAAAAAfbGRmBQHEAAAGzR8DvB9vdBsCoOAAAB/taG83AgGIoDAAAB8WoYAAACAFsEAfUAABoEAAAB9VoFAAAB9tLJgD8iUfAACHACMChKBAAAAfQaAgAAAbKqAAAAAdzRABAzowAAABAAAAAAAIABAAAAD4GPsYMhrAGuEaaB3HHcgdXB/7AmVs+wJpcg==")
\ No newline at end of file
diff --git a/api/search.index/74d820c53882.js b/api/search.index/74d820c53882.js
new file mode 100644
index 000000000..0498a272c
--- /dev/null
+++ b/api/search.index/74d820c53882.js
@@ -0,0 +1 @@
+rn_("IUEAAKseKB8pHwUBwAAAEMYYIhsBxxhkbwGBAqDQAAAflaEwAAAfy2FwpwEDhqBQAAAbdLBwHZUAAaDAAAAfJzRBEPWgDgAAAQC3CzAB/wA=")
\ No newline at end of file
diff --git a/api/search.index/755ac83990da.js b/api/search.index/755ac83990da.js
new file mode 100644
index 000000000..864bb4ca8
--- /dev/null
+++ b/api/search.index/755ac83990da.js
@@ -0,0 +1 @@
+rn_("BQHAAAAeeh97HxxHH0gfZmtFAEEAABQ0HzUfbd4a3xrgGv4e/x4FAEUAAAT3HmWcHBsCoCAAAB02dXkzBISwIBnpAAGgQAAAHTcCAQM6MAAAAQAAAAAACwAQAAAAiBLaGNsY0BnRGT4b3h38HRgeGR4uH58fBQHAAAAThxJ4HAQ/H2lyFQFBAAAEjhsEbRxvdJAZsx3HAwCGoHAAAB9xoIAAABqPOkACOjAAAAEAAAAAAAcAEAAAAJcIgRyCHEgdrR23HWcf0x8=")
\ No newline at end of file
diff --git a/api/search.index/760bfdba46e1.js b/api/search.index/760bfdba46e1.js
new file mode 100644
index 000000000..bc45bddb9
--- /dev/null
+++ b/api/search.index/760bfdba46e1.js
@@ -0,0 +1 @@
+rn_("BQBEAAAGqB5meRorA6AQAAAYprAgFS8AAWVvcjUAQQAABv0fZM8PLhXdHt4fSwOwYBrYAAGgIAAAHsRjdHpHAQCFsEAdZgGIsEAY6wABoLAAAB88MCEEAdseAAA=")
\ No newline at end of file
diff --git a/api/search.index/760d7529c4cb.js b/api/search.index/760d7529c4cb.js
new file mode 100644
index 000000000..90e399f75
--- /dev/null
+++ b/api/search.index/760d7529c4cb.js
@@ -0,0 +1 @@
+rn_("AQYAOzAAAAEAACAAAQDqGiAABQBBAAAG/h9k4x8TggKgQAAAH71tbwEAAqBgAAAgAqAwAAAXDGRyOjAAAAEAAAAAABgAEAAAAJAJkQmxD7IPCBCBEzEbjRutHB0d4x3kHeUd5h3nHegd6R26Hvse/B4cH3UfgR+6H+4fSwOwIA4JADmgUAAAHExicnN7hKDwAAAfCxBBAQ==")
\ No newline at end of file
diff --git a/api/search.index/761ce051b838.js b/api/search.index/761ce051b838.js
new file mode 100644
index 000000000..4accf5701
--- /dev/null
+++ b/api/search.index/761ce051b838.js
@@ -0,0 +1 @@
+rn_("MUYAAL8ewB7BHsIeZQBBAAAWqR7sHmLXGX4axBrFGiYbbBu8HfOCAmV0BQHGAAAEJx8Cfx9pbmsDoCAAAB1rZWly")
\ No newline at end of file
diff --git a/api/search.index/762145d6f632.js b/api/search.index/762145d6f632.js
deleted file mode 100644
index 977ca4f02..000000000
--- a/api/search.index/762145d6f632.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBGAAAFTx9yjh0xRwAAUR36HvseXx/zAAJmbDswAAABAAAHAAIAfRIAADwUBgATgQKwcB8zAJRtcwUBwAAAECUbKh8bZx9oH2V0BQHAAAARlBPtHgfrHWxz+wJlbK8AhbAwGNgAAaCgAAAdDaBgAAAfZgFJAQ==")
\ No newline at end of file
diff --git a/api/search.index/7622deaccc0f.js b/api/search.index/7622deaccc0f.js
new file mode 100644
index 000000000..380e1e40f
--- /dev/null
+++ b/api/search.index/7622deaccc0f.js
@@ -0,0 +1 @@
+rn_("BQHAAAAFPhUJhRxhbQUBwAAACYQcCksdY2wJAqBQAAAdrqEwAAAftmNyBQHAAAADyx8TLB0tHWx1IUgAAFMfkx+UH/OCAmFvBQBBAAAHHh1h7xjzgQJpdfcAAIagwAAAHbGhIAAAH2jREAEBvg8AAA==")
\ No newline at end of file
diff --git a/api/search.index/7633b008015d.js b/api/search.index/7633b008015d.js
deleted file mode 100644
index 12ce86f23..000000000
--- a/api/search.index/7633b008015d.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("RQBAAAAW5R/mH2RHH0gfqh/BH8IfFQBKAAAG5h9kSB/CHwUBwQAAB9wdA5sdZXDzgQJpcgUARAAAAfAeadsd8wYBZvP6GQAAkwHtABUASwAABuUfZEcfwR9LA7FAH8wAAaCQAAAe/m5wePuEEQEC")
\ No newline at end of file
diff --git a/api/search.index/76600d789354.js b/api/search.index/76600d789354.js
deleted file mode 100644
index 735a80cba..000000000
--- a/api/search.index/76600d789354.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQEAOzAAAAEAAAABAgApFQEAkRf+AAUARgAABvUfZOkf8wEBYQF3DgAANwAAxaAAAAASZ6BwAAAfbqCAAAAdQQABSCEBXAsAAA==")
\ No newline at end of file
diff --git a/api/search.index/768170bdc6a9.js b/api/search.index/768170bdc6a9.js
new file mode 100644
index 000000000..6a8e6516e
--- /dev/null
+++ b/api/search.index/768170bdc6a9.js
@@ -0,0 +1 @@
+rn_("FQBGAAAG4h9k2x2eH9UAQgAABOEfZmMcZBxlHGYcZxxoHGkckR7HHswe0B6JHwQgBSCTAISgMAAAGnCgcAAAHIkSAQH0QRwAAAEAAQABAA==")
\ No newline at end of file
diff --git a/api/search.index/769f05000c79.js b/api/search.index/769f05000c79.js
new file mode 100644
index 000000000..82918b372
--- /dev/null
+++ b/api/search.index/769f05000c79.js
@@ -0,0 +1 @@
+rn_("BQLAAAAFBx8OdB8YLh43H2VpbUUAQwAAA+0eaYoS3RjeGN8YVB0FAcMAAArdHw3yH2V0IwQCoGAAAB8XYnABpBsAABUAQAAABqAcYokSiBzzgQJudBMAA6BgAAAfq6BwAAAduWNucjswAAABAAAHAAIAkRkGAF4fAAAFAcAAAAQLHgKeG3B1BQHBAAAyqx2sHcIdrB4WnhyfHGVpY4EDoOAAAB9wY3FzBQHAAAA1sx4wH5wfnR8Mph9hafMEAWb0lxoAAA0E4gApADFGAAClGzgdOR1LH/OCAnB2BQHEAAARsh4vHwVZH2VyEwcCoCAAABydYnLzlBoAAAEA9gAFAcAAABnDHj4fZD8aQBpBGkIaQxpEGkUaY3iVAUAAAAJJHCagH+sfByBhZKgYGxkUHpgfmR+0H8of0R/SH/cfIUYAAJIakxqKHgUBwAAAEwoZCxk3LB4tHhgfNh9tbmsDoDAAABrBYW9yBQHBAAA [...]
\ No newline at end of file
diff --git a/api/search.index/76f8fd731e28.js b/api/search.index/76f8fd731e28.js
deleted file mode 100644
index f43887956..000000000
--- a/api/search.index/76f8fd731e28.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBAAAACcxtpqgsxSAAAQB3lHeYdOx8TAwKgUAAAH0xncjswAAABAAAdAAkAxQ8KAPAYAwAoGgEAXxwAAHscAABrHQEAdB0FAPIdAQAyHwAABQBGAAAG2B5mEhvzAgFz8gwOAAC4AfsCbHTzAAJha/JPAwAA9g4=")
\ No newline at end of file
diff --git a/api/search.index/771e8579411f.js b/api/search.index/771e8579411f.js
new file mode 100644
index 000000000..896a86b5f
--- /dev/null
+++ b/api/search.index/771e8579411f.js
@@ -0,0 +1 @@
+rn_("AQUCsBAd3QFQoJAAAB++aXI7MAAAAQAAEgAJAHQaAABbGwYARRwAAGUdAAClHQAAlx4AALUeAwAxHwEAOx8AACsDoDAAABo+sJAe9QABYWVp")
\ No newline at end of file
diff --git a/api/search.index/773292338efb.js b/api/search.index/773292338efb.js
new file mode 100644
index 000000000..28cae3207
--- /dev/null
+++ b/api/search.index/773292338efb.js
@@ -0,0 +1 @@
+rn_("BQBRAAAGByBk9x8xRAAA3BrdGpgcRh0FAEIAAAYGIGT0H/MAAW0BUxIAAAUBwAAAETsbPBsIvh9lb3FBAADkGOUYmhqbGnIceRzdHS0fBQBKAAAG/R9k3h8hRAAAmhubHgIfZQBEAAAG/x9kfxyAHG8dcB2QH5Ef5h9n8wCMoDAAABsPoMAAAB/KoCAAABs6sDAdmgIKtikXOjAAAAEAAAAAACoAEAAAACAO/Q+lE/YYEhkUGRwZHRlbGlwadBqIGhgbGRtbG1wbXRteG18bYBthG6gbRRx+HFMdZR2lHfMd+h2XHrUeth63Hrge9R72Hv0eBx8dHzEfMh87H4Uf")
\ No newline at end of file
diff --git a/api/search.index/7756889a11ba.js b/api/search.index/7756889a11ba.js
deleted file mode 100644
index 66bd57070..000000000
--- a/api/search.index/7756889a11ba.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUAAAAsaDBpEGkUaBQFDAAAGlB8CLR9icqIeI4cCoEAAAB7mZnMbAqBwAAAbCWFyBQBEAAAAuh1zVh23AADGoIAAABsKoDAAABJSoGAAAB9yAAigCzowAAABAAAAAAAKABAAAACFCYYJhhmzGQAaARqEGpcaHB1DHeEd")
\ No newline at end of file
diff --git a/api/search.index/782605d25950.js b/api/search.index/782605d25950.js
new file mode 100644
index 000000000..a3d1a1084
--- /dev/null
+++ b/api/search.index/782605d25950.js
@@ -0,0 +1 @@
+rn_("VQBFAAAITh9nAxkEGQUZBhk6GjsaGwKgAAAAGQdjZzUDQgAAJI4ejx5kHxrfH+AfFbsdzx4FvB1ja3J34hnjGdQa1RohRAAAVxwvHYwf+wNlaW8=")
\ No newline at end of file
diff --git a/api/search.index/7888879e1d1e.js b/api/search.index/7888879e1d1e.js
deleted file mode 100644
index b7569d075..000000000
--- a/api/search.index/7888879e1d1e.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAAAfQ4GYBplaSsCoEAAABJycnQ1AEEAAAGcHXaZHhUfFh9FHyUBQQAAFoUfhh8VXx33HmVzZhO0GH0aKwOwABizAl2gcAAAHntkb3YBAAKg0AAAH4KhMAAAH7hhcAFBFQAAGwKgMAAAGidkbQUARgAAEAEeJR9yqh3zAwFwAekYAAAbAqBAAAAbYmFvBQBDAAAG9R9k6R/zAgFvAcYYAAB3AwCHsHAdgwABoMAAAB8UNUEQOjAAAAEAAAAAAAoAEAAAAJEL3A13DocOiA6JDpQOlQ5GGnYbdRwlAEAAAAPAHmmbHpweFx8BAgGhYAAAH8xtAU8OAAA1AEAAADiJHYodnh7UHmGbGlQdlB3bHiUARgAAAIYec0cdUB3pHQUBwQAAACsaIoAagRp4HmVpu4SAHHwAErApAAT7AmV5UUMAAEcaSBoaHRsdfR1+HTFEAAAUGhUaFhoXGgUBwAAAL6IftB+1HyeZHhU [...]
\ No newline at end of file
diff --git a/api/search.index/789180167d2c.js b/api/search.index/789180167d2c.js
deleted file mode 100644
index 08230606d..000000000
--- a/api/search.index/789180167d2c.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBBAAAJ5x1ztw1FAEQAAAfyHWw/H3EfdR+IH5AfcUAAAHAScRLFGA4amRuLHMkdgh9RQAAALxV3GXgZeRl6GXsZ8wCEqCAA9UIOAAABAAEAAQABAA==")
\ No newline at end of file
diff --git a/api/search.index/78e7431ece36.js b/api/search.index/78e7431ece36.js
new file mode 100644
index 000000000..65e4ef87e
--- /dev/null
+++ b/api/search.index/78e7431ece36.js
@@ -0,0 +1 @@
+rn_("FQBIAAAGAyBkqh/xHysCoHAAABxAZW0bA6BgAAAds6CgAAAde21wcjFDAABvHHAccR0KHwUBwAAAAj0fCdofaW8TBwKgMAAAH3hmaffUHgAARQABAEcADQABADkA+wJhchUBQgAAB3EfBT8fYma3HdMfIUUAALUfxx/IHyUAQAAAA9Meaa0erh4qHyFCAACOHI8cQB8xQQAAkR2SHZMdcx8FAcAAABWqHqcfAtIedXn3AAGFgA6TABABAgEHOjAAAAEAAAAAAAwAEAAAAIAabRtuG28bcBtxGzsdzB20Hh4fih+WH8Qf+wNlbG8FAEQAAASOG2+QGQUBwAAAAPgZCwUfbnAbAqAgAAAarmF1BQBCAAAGBiBk9B81AEEAABD2GfcZc78ewB7BHsIeJQBDAAAEMRtiRhucHsAf+wJ0egUARgAABWIfcqAdMUcAAGMdDR8OH3If8wMCZmw7MAAAAQAABwACAIwSAABMFAY [...]
\ No newline at end of file
diff --git a/api/search.index/7918d951f0b6.js b/api/search.index/7918d951f0b6.js
deleted file mode 100644
index 8b6aa85b4..000000000
--- a/api/search.index/7918d951f0b6.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBSAAAG7x9k2x8FAFQAAAbwH2TeH/OEAnB0BQBRAAAG6h9kyx8FAFgAAAb1H2TpHwUASAAABuIfZLIfBQBKAAAG7h9k1R8FAEoAAAbtH2TUH/sCYWkFAEYAAAbYH2ShH/OJA2VtbgUAUgAABvMfZOEfBQBPAAAG7B9k0x/zhwJjcAUASAAABo0fZAIeBQBJAAAG1x9koB8ThAOgwAAAH7GggAAAH4xmcHMbAqFAAAAf0mZsBQBaAAAG9B9k5B/7AmFlp2cAy2ONdy0na6DAAAAfKKDAAAAfKaAwAAAaawAbpB0B9x0AAAUBwQAABLsfBcYfcXPzAgFyOzAAAAEAACIADQC1GA0AdxoDABwbAABvGwEAkxsAAGUcAAB/HAMAkBwAACYdAQCFHQEAAx4AAOceAAA4HwAA+wJpeQ==")
\ No newline at end of file
diff --git a/api/search.index/79b5dd435f7c.js b/api/search.index/79b5dd435f7c.js
new file mode 100644
index 000000000..b6ecde01d
--- /dev/null
+++ b/api/search.index/79b5dd435f7c.js
@@ -0,0 +1 @@
+rn_("MUQAACYaJxooGikaBQHAAAAvtR/HH8gfJ6seKB8pH2FyIwQDoBAAAB6+sFAfDABkZXBzAf0YAAD7AmJjGwKgQAAAHpVkZQ==")
\ No newline at end of file
diff --git a/api/search.index/7a68e5adc491.js b/api/search.index/7a68e5adc491.js
deleted file mode 100644
index 1f1fde3ea..000000000
--- a/api/search.index/7a68e5adc491.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("MUMAAOcZ6BmGGwAeBQFBAAAP3R8SeBx5HGNyZBohQgAAoRNNHU4dVwEAhbBQGzcAAbCgHugAAQBBB/VHDgAAAQABAAEAvg4=")
\ No newline at end of file
diff --git a/api/search.index/7a92df849fd6.js b/api/search.index/7a92df849fd6.js
deleted file mode 100644
index ca0296d2e..000000000
--- a/api/search.index/7a92df849fd6.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("wUEAAJMPyhnNGXccOx08HUAdRh3lHeYd+x06HzsfMUIAAGQSjhM0HzUfBQRAAAATyxnMGRfZHdodEvgZ+RkXax1sHQQfHWRma2x0uQ/7A2Vpbw==")
\ No newline at end of file
diff --git a/api/search.index/7b3bfb690389.js b/api/search.index/7b3bfb690389.js
new file mode 100644
index 000000000..8c04e09b1
--- /dev/null
+++ b/api/search.index/7b3bfb690389.js
@@ -0,0 +1 @@
+rn_("BQBKAAAGVx92fh8FAEUAAAzzH2EbHyOBAqCgAAAfK2FzJQBAAAATNxo4GmmDGoQafhtBQgAAfxKAEtgY3B2VHwUDQAAAUkAbQRtCG0MbRBtFGzP6GCEaIhqaHwYwG1SlHKYcpxyoHKkcqhxrcHJ2xh4FAsIAAAj0HgaaHwA2GmRtcxsCoIAAAB6eYWm1AUEAABSfHqAeANcYbXOpD7UTthO3E7gTuRO6E5AbkRtJHXYddx0FAcAAAAWGGhI0GjUadXnnLwDLoMAAAB/zsGAahwMjoAAAAA+QwECoOzswAAABAAAtAA8AtQsCANENFgBZEgMAVhUBAF0aAAALGwEATBsBAJkcAQDKHQAA/h0AAIkeAAAbHwAAKx8AADofAACXHwAA")
\ No newline at end of file
diff --git a/api/search.index/7b4256619620.js b/api/search.index/7b4256619620.js
deleted file mode 100644
index dac703bbc..000000000
--- a/api/search.index/7b4256619620.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("AQEAOzAAAAEAANcAAQBIFdcAMUIAAKEbohuxHf0dBQBSAAAG8x9k4R8FAE8AAAbsH2TTH/MGAmNwOzAAAAEAAAoABAADGgYACB4AAA4fAADMHwEAFQBAAAAA4x81nxqgGiFOAAD+Hf8dVh/7hRlACA==")
\ No newline at end of file
diff --git a/api/search.index/7b705b7ecc4b.js b/api/search.index/7b705b7ecc4b.js
new file mode 100644
index 000000000..62060d547
--- /dev/null
+++ b/api/search.index/7b705b7ecc4b.js
@@ -0,0 +1 @@
+rn_("QUIAAJobqRuqG5seAh9RQQAATh1SHfcd+B1NH04fBQRAAAAT3RneGRfsHe0dEgoaCxoXfR1+HQQxHWRma2x0xg9bA7AgH0cAAWVpbysCoGAAABugY3QzAAOgYAAAH1dhcnY6MAAAAQAAAAAADgAQAAAAXQutGK4YyBrJGokbihtZHFochB2FHc0ezh5+H38f")
\ No newline at end of file
diff --git a/api/search.index/7bbbe39cfd00.js b/api/search.index/7bbbe39cfd00.js
deleted file mode 100644
index 753b62dd7..000000000
--- a/api/search.index/7bbbe39cfd00.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBSAAAG7x9k2x8FAFQAAAbwH2TeH/OEAnB0BQBRAAAG6h9kyx8FAFgAAAb1H2TpHwUASAAABuIfZLIfBQBKAAAG7h9k1R8FAEoAAAbtH2TUH/sCYWkFAEYAAAbYH2ShH/OJA2VtbgUAUgAABvMfZOEfBQBPAAAG7B9k0x/zhwJjcAUASAAABo0fZAIeBQBJAAAG1x9koB8ThAOgwAAAH7GggAAAH4xmcHMbAqFAAAAf0mZsBQBaAAAG9B9k5B/7AmFlp2cAy2ONdy0na6DAAAAfKKDAAAAfKaAwAAAaawAbpB0B9x0AAAkCKIUgDHUZsCAZdQABZW4FAEMAAARKH3WKG/MCAW/y4RgAABoBZQBDAAAGmh5yZRtmG2cbaBtpG2obaxvXAgCGoRAAAB+joBAAAA+SoUFAAacNAAA=")
\ No newline at end of file
diff --git a/api/search.index/7c0378e622f9.js b/api/search.index/7c0378e622f9.js
new file mode 100644
index 000000000..034bbfa69
--- /dev/null
+++ b/api/search.index/7c0378e622f9.js
@@ -0,0 +1 @@
+rn_("FQFBAAAFdxwQ5xjoGGVzLBUtFQUBwQAABB0fDMkfaW/7AmVvFQBCAAAGVx92fh9/HyOCA6BAAAAfJ7AAH8EAAWluc/sCYXI=")
\ No newline at end of file
diff --git a/api/search.index/7c4c0632b9d8.js b/api/search.index/7c4c0632b9d8.js
new file mode 100644
index 000000000..21c32568c
--- /dev/null
+++ b/api/search.index/7c4c0632b9d8.js
@@ -0,0 +1 @@
+rn_("YUUAAGAaYRpiGmMaZBplGmYaAYECsUAf0QABsPAfmAABZ3MVAUsAAAdxHwU/H2Jmtx3THwUBwAAAALcfBo8bZXQFAcMAAAyBHw+5H2Nm+4URQQg=")
\ No newline at end of file
diff --git a/api/search.index/7c5df54681cf.js b/api/search.index/7c5df54681cf.js
new file mode 100644
index 000000000..f78e6c3ad
--- /dev/null
+++ b/api/search.index/7c5df54681cf.js
@@ -0,0 +1 @@
+rn_("BQHAAAA1sx4wH5wfnR8Mph9haRMAAqAwAAAeCmZsOjAAAAEAAAAAAAgAEAAAAJcaMBuWGxMepB4THzgfhh+vHyMAArCQHVkAomNyAb0dAAA=")
\ No newline at end of file
diff --git a/api/search.index/7c7a6f551bbe.js b/api/search.index/7c7a6f551bbe.js
new file mode 100644
index 000000000..766051647
--- /dev/null
+++ b/api/search.index/7c7a6f551bbe.js
@@ -0,0 +1 @@
+rn_("AQKEoEAAABuNoHAAABumoDAAABrooJAAAB1kAgMCOzAAAAEAAOYAAgAmDgAAlBDlAAUBxAAAA0odBjsfdHYFAUMAABEkHbkeA7odaW6PE/sDaW9y")
\ No newline at end of file
diff --git a/api/search.index/7ccf2a890c58.js b/api/search.index/7ccf2a890c58.js
deleted file mode 100644
index 36b88b489..000000000
--- a/api/search.index/7ccf2a890c58.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBCAAAAWxxzkRgFAcAAAAXPHQa0HmZuZQBDAAAFjBtyoBihGKIYoxikGKUYphifAoagIAAAElKgcAAAHxOw8B76AAERQUE=")
\ No newline at end of file
diff --git a/api/search.index/7dbcb2f644fb.js b/api/search.index/7dbcb2f644fb.js
new file mode 100644
index 000000000..d9985affb
--- /dev/null
+++ b/api/search.index/7dbcb2f644fb.js
@@ -0,0 +1 @@
+rn_("IUEAALETXx1gHcUAQQAABYUaaB0OHg4fDqMOpA5IGmAaYRpiGmMaZBplGmYaNQFDAAAXyx6AHwCGGWZzqRiqGKsYrBgxQAAAlhIlFBUbFxsFAEAAAAOiHmqYHhUAQwAAEWYfgh9ljR+OH2MBA6AgAAAd8WlsczowAAABAAAAAAAHABAAAAA3FTgVmRdsGlkdXR1iHfsd/wGGoBAAAA+eKVAE")
\ No newline at end of file
diff --git a/api/search.index/7de55c925666.js b/api/search.index/7de55c925666.js
deleted file mode 100644
index 9cac8f121..000000000
--- a/api/search.index/7de55c925666.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("VQFBAAAzXBJdEtQaoB0Apg1mc4cTiBOJE4oTixOMEwUAQQAAJQkexh7HHncPHROHAqAwAAAdKWVzHwGFoBAAAAmroCAAABpgoIAAABscAQkJ")
\ No newline at end of file
diff --git a/api/search.index/7e1cf01abb8a.js b/api/search.index/7e1cf01abb8a.js
new file mode 100644
index 000000000..15fde1f01
--- /dev/null
+++ b/api/search.index/7e1cf01abb8a.js
@@ -0,0 +1 @@
+rn_("BQBBAAAG/h9k4x8TjAKgQAAAH71tbwUBxQAABKsdBQsecXP7AmFvFQBJAAAEXB9m7B/tHxUASQAABuIfZNsdnh8VAEwAAAb5H2RbH9UfFQBMAAAG+B9kWh/UH/sCYWnnAQGFoIAAAB8PBDAG9IQNAACGCwEAxABFAEYAAAPqHWbLGowdjR0uHjcfFQBEAAAGAyBkqh/xHyMCAqCAAAAfWGNs9yMOAACHAAEAAQAsC10DoQJ7hKAQAAANhRFBAA==")
\ No newline at end of file
diff --git a/api/search.index/7e8a6cf1d096.js b/api/search.index/7e8a6cf1d096.js
new file mode 100644
index 000000000..ca746f02e
--- /dev/null
+++ b/api/search.index/7e8a6cf1d096.js
@@ -0,0 +1 @@
+rn_("IUUAABse2R7aHgUASgAAFLAfsR9tjx8VAEYAABRQH1EfbSUfrB+zAISg0AAAH4kggBI7MAAAAQAAjAADACUOAAAJEIoAIR0AAA==")
\ No newline at end of file
diff --git a/api/search.index/7e97ef3f44ce.js b/api/search.index/7e97ef3f44ce.js
deleted file mode 100644
index 7e2be6d74..000000000
--- a/api/search.index/7e97ef3f44ce.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHHAAAEFB8CbB9pbgUBwAAABy8fEj4VehtveQUAQAAACjsdafweBQHAAAAVdxt4GwV2G2FyAQAAOjAAAAEAAAAAABMAEAAAACYbJxuWHqEeyx7MHs0ezh7PHtAe0R7SHtge3B7dHh0fTR+JH4ofrB8jAQKgEAAAHZx2efSZHgAAfAABAC8AxQNBAAAF+B4FvRkWhR+GHxVfHfceYWNlc7cLZhO0GP8YsBmxGX0aUR34Hvoe+x5fH+gfSwSwABizAl2gUAAAGoegcAAAHntkbW92dQBEAAASgx2EHWnBHcIdwx3EHRQeFR4WHhceAQACoNAAAB+CoTAAAB+4YXABQRUAABsDoDAAABonoBAAAB64ZG1zBQBGAAAQAR4lH3KqHfMDAXAB6RgAABsCoEAAABtiYW8FAEMAAAb1H2TpH/MBAW8BxhgAAAUAQgAAB3MfcPcY+wJibPdfAMugQAAAGixATTAbOjAAAAEAAAA [...]
\ No newline at end of file
diff --git a/api/search.index/7eaf3299c9ed.js b/api/search.index/7eaf3299c9ed.js
new file mode 100644
index 000000000..4ea1ff4cb
--- /dev/null
+++ b/api/search.index/7eaf3299c9ed.js
@@ -0,0 +1 @@
+rn_("BQHAAACL3h7fHuAe4R7iHuMe5B7lHmAfCK8eb3kFAcAAADNnGmgaaRpqGgJrG2VsBQHAAAAGeBwDzBlydc8BxaEAAAAfgrBgG5AAAQQBMAI=")
\ No newline at end of file
diff --git a/api/search.index/7f12bef30823.js b/api/search.index/7f12bef30823.js
new file mode 100644
index 000000000..0e023b07d
--- /dev/null
+++ b/api/search.index/7f12bef30823.js
@@ -0,0 +1 @@
+rn_("BQFAAAAGXh8BjB4zcQEfFQBEAAADCh5slhsTHzFIAACEH4gfmx+jHzFCAACjHrEe6R7zHgUBwAAADPIfDdMfYWgPB4eggAAAH6WggAAAH66hUAAAH/ugoAAAH90eABzzgQJwdisCoCAAAB9nb3IFAcAAAAK4HRRuGiQfaW8FAcAAAAtTHQPKHmF0GwKwABx2AzhjZAUBwQAADA8fA0cbbW6BRgAAHRseG1EdYR22HcMdCB6nHhcfN1YAjLBwH2gADqAwAAAeyKAgAAAei6BAAAAarKAwAAAeyaCAAAAfUtapEzowAAABAAAAAAAZABAAAAAKDgsOQw5EDkUORg5HDkgOSQ5KDksOTA4/FU0V8xj5GP4YBxkfGncaeBo6G6QbRhxHHDId")
\ No newline at end of file
diff --git a/api/search.index/7f2ef939c840.js b/api/search.index/7f2ef939c840.js
deleted file mode 100644
index ca72bb1da..000000000
--- a/api/search.index/7f2ef939c840.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQBKAAAGRB92ax8FAEUAAAzgH2EIHyOBAqCgAAAfGGFzJQBAAAATJRomGmlxGnIabBtBQgAAcBJxEsUYyR2CHwUCwwAACOEeBocfACQaZG1ztQFBAAAUjR6OHgDEGG1znA+lE6YTpxOoE6kTqhN+G38bNx1kHWUdBQHAAAAFdBoSIhojGnV55y4AyqDAAAAf4KBwAAAbHrBgGnUDI8BAqBs7MAAAAQAALQAPAKsLAgDFDRYAShIDAEUVAQBLGgAA+RoBADobAQCHHAEAtx0AAOwdAAB3HgAACB8AABgfAAAnHwAAhB8AABsCoCAAAB3fYW8=")
\ No newline at end of file
diff --git a/api/search.index/7f5308b434f2.js b/api/search.index/7f5308b434f2.js
new file mode 100644
index 000000000..845fc3d24
--- /dev/null
+++ b/api/search.index/7f5308b434f2.js
@@ -0,0 +1 @@
+rn_("AQUAOzAAAAEAAAABAgA6FQEApBf+ABUAQwAAIDEanR2eHXOeHJ8cNQBAAAAEHB9i+Q/6D/sP/A/zgQJkbfsCcnZRQQAAqx2sHcIdrB4QH84f1QBHAAAE4R9mYxxkHGUcZhxnHGgcaRyRHscezB7QHokfBCAFIBsCoGAAAB3xY3Q7Aym1+PuVtG5zdDFBAAC6DyMaBB9dHyFCAAACGgMaBBoVAEUAAAWDH2MiHyMfBQBJAAAGwx9iTx9ThQOgAAAAG5tmc3fzggJkafOBAml0+wNhZWk=")
\ No newline at end of file
diff --git a/api/search.index/7f5f6546eef1.js b/api/search.index/7f5f6546eef1.js
deleted file mode 100644
index e4654dcb3..000000000
--- a/api/search.index/7f5f6546eef1.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("BQHAAAA1oR4dH4kfih8Mkx9hafMEAWb0hRoAAA0E4QApADFGAACTGyYdJx04H/OBAnB2FQBBAAAE7R5mxB/FH7UAQgAABA0fZmcTaBNpE2oTPBs9G2AdYR1iHWMdyB/JH/sDYW9y")
\ No newline at end of file
diff --git a/api/search.index/7fa28f4069bc.js b/api/search.index/7fa28f4069bc.js
deleted file mode 100644
index f9b4c4561..000000000
--- a/api/search.index/7fa28f4069bc.js
+++ /dev/null
@@ -1 +0,0 @@
-rn_("FQBEAAAD+B1shBsAHzFIAABxH3UfiB+QHzFCAACRHp8e1h7gHgUBwAAADN8fDcAfYWgPB4eggAAAH5KggAAAH5uhUAAAH+igoAAAH8oeABzzgQJwdisCoCAAAB9Ub3I=")
\ No newline at end of file
diff --git a/api/search.index/7ff9de5d213f.js b/api/search.index/7ff9de5d213f.js
new file mode 100644
index 000000000..89dbf6cbd
--- /dev/null
+++ b/api/search.index/7ff9de5d213f.js
@@ -0,0 +1 @@
+rn_("FQBFAAAIWB9jNR3WHwUBwAAAAzYbBAUfYW/zAAJ0dfeGEgAAmQEBAAEAgQcBAJABRQBAAAAFXh1lCBk0GzUbWh1bHRsCsGAdXwABZnQbAqBgAAAcm2VvAQEDoEAAAB9csEAdwAABoAAAABo8Zm1zOzAAAAEAABQABgCwGQ4Aah0AAPkdAAAqHgAAsh8AAOwfAQAHDQOJoEAAAB6QoDAAABuEoEAAAB88oFAAAB00oCAAABkHoIAAAB/kJwkHOjAAAAEAAAAAAA0AEAAAAKoPARACEAMQBBAFEOkY6hjxGbcclh5GH6sf2h8rAqAQAAALuHBz")
\ No newline at end of file
diff --git a/api/search.index/desc/38ce2e72dae4.js b/api/search.index/desc/38ce2e72dae4.js
new file mode 100644
index 000000000..ae52b0ef6
--- /dev/null
+++ b/api/search.index/desc/38ce2e72dae4.js
@@ -0,0 +1 @@
+rd_("BkThe catalog type that this builder creates.AkThe associated writer type.B`The associated file writer type.AlReturn type of this visitor.0BkReturn type of this visitor on arrow field.BlReturn type of this visitor on arrow schema.BaLocal filesystem storage factory.B`HuggingFace Hub storage factory.B`HuggingFace Hub storage variant.CgMatch fields by their ID stored in Arrow field metadataAjContains the success value0CoOr predicate, for example, <code>a &gt; 10 OR b &lt; 20</code>.EnA [...]
\ No newline at end of file
diff --git a/api/search.index/desc/5cef3b1a69e4.js b/api/search.index/desc/5cef3b1a69e4.js
deleted file mode 100644
index 734b19f94..000000000
--- a/api/search.index/desc/5cef3b1a69e4.js
+++ /dev/null
@@ -1 +0,0 @@
-rd_("BkThe catalog type that this builder creates.AkThe associated writer type.B`The associated file writer type.AlReturn type of this visitor.0BkReturn type of this visitor on arrow field.BlReturn type of this visitor on arrow schema.BaLocal filesystem storage factory.B`HuggingFace Hub storage factory.B`HuggingFace Hub storage variant.CgMatch fields by their ID stored in Arrow field metadataAjContains the success value0CoOr predicate, for example, <code>a &gt; 10 OR b &lt; 20</code>.EnA [...]
\ No newline at end of file
diff --git a/api/search.index/entry/100141d73723.js b/api/search.index/entry/100141d73723.js
new file mode 100644
index 000000000..e82769bbf
--- /dev/null
+++ b/api/search.index/entry/100141d73723.js
@@ -0,0 +1 @@
+rd_("Al[3730,17,3731,3652,6943,0,0]Al[3730,17,3576,3576,7846,0,0]Al[3730,17,6533,6533,7504,0,0]Al[3730,17,2201,3984,6792,0,0]Al[3730,17,2201,3984,8024,0,0]Al[3730,17,2492,3539,7595,0,0]0Al[3730,15,1440,1440,7513,0,0]Al[8003,15,8004,8004,7921,0,0]0Al[8003,15,8004,8004,6957,0,0]Al[3730,15,2492,2938,6946,0,0]3Al[3730,15,3731,2898,2995,0,0]Al[7882,15,2897,2897,2996,0,0]Al[3730,15,1440,5031,4731,0,0]Al[3730,15,1440,5031,6940,0,0]65Al[3730,15,2201,7052,6773,0,0]Al[3730,15,2201,6929,7526,0,0]11 [...]
\ No newline at end of file
diff --git a/api/search.index/entry/81f9d5e38bb0.js b/api/search.index/entry/81f9d5e38bb0.js
deleted file mode 100644
index 0a046c21a..000000000
--- a/api/search.index/entry/81f9d5e38bb0.js
+++ /dev/null
@@ -1 +0,0 @@
-rd_("Al[3718,17,3719,3640,6925,0,0]Al[3718,17,3564,3564,7828,0,0]Al[3718,17,6515,6515,7486,0,0]Al[3718,17,2193,3971,6774,0,0]Al[3718,17,2193,3971,8005,0,0]Al[3718,17,2483,3527,7577,0,0]0Al[3718,15,1436,1436,7495,0,0]Al[7984,15,7985,7985,7902,0,0]0Al[7984,15,7985,7985,6939,0,0]Al[3718,15,2483,2928,6928,0,0]3Al[3718,15,3719,2888,2985,0,0]Al[7864,15,2887,2887,2986,0,0]Al[3718,15,1436,5015,4716,0,0]Al[3718,15,1436,5015,6922,0,0]65Al[3718,15,2193,7034,6755,0,0]Al[3718,15,2193,6911,7508,0,0]11 [...]
\ No newline at end of file
diff --git a/api/search.index/function/1702ee989b93.js b/api/search.index/function/1702ee989b93.js
new file mode 100644
index 000000000..566fa2efa
--- /dev/null
+++ b/api/search.index/function/1702ee989b93.js
@@ -0,0 +1 @@
+rd_("Bf[\"{{{BGEn{BDLn}}{BGEn{BDLn}}}IGn}\",[]]Bf[\"{{{BGEn{CIAl}}{BGEn{CIAl}}}IGn}\",[]]Bf[\"{{{BGEn{CFEd}}{BGEn{CFEd}}}IGn}\",[]]Bf[\"{{{BGEn{BDNd}}{BGEn{BDNd}}}IGn}\",[]]Bf[\"{{{BGEn{BJJd}}{BGEn{BJJd}}}IGn}\",[]]Bf[\"{{{BGEn{CID`}}{BGEn{CID`}}}IGn}\",[]]Bf[\"{{{BGEn{CBAl}}{BGEn{CBAl}}}IGn}\",[]]Bf[\"{{{BGEn{BJJj}}{BGEn{BJJj}}}IGn}\",[]]Bf[\"{{{BGEn{BDOl}}{BGEn{BDOl}}}IGn}\",[]]Bf[\"{{{BGEn{CFCj}}{BGEn{CFCj}}}IGn}\",[]]Cg[\"{{{BGEn{{CJJh{c}}}}{BGEn{{CJJh{c}}}}}IGnBDNn}\",[\"T\"]]Cg[\"{ [...]
\ No newline at end of file
diff --git a/api/search.index/function/f428ea6cb189.js b/api/search.index/function/f428ea6cb189.js
deleted file mode 100644
index e3f8bc691..000000000
--- a/api/search.index/function/f428ea6cb189.js
+++ /dev/null
@@ -1 +0,0 @@
-rd_("Bf[\"{{{BGCn{BDK`}}{BGCn{BDK`}}}IGh}\",[]]Bf[\"{{{BGCn{CHOh}}{BGCn{CHOh}}}IGh}\",[]]Bf[\"{{{BGCn{CFC`}}{BGCn{CFC`}}}IGh}\",[]]Bf[\"{{{BGCn{BDLf}}{BGCn{BDLf}}}IGh}\",[]]Bf[\"{{{BGCn{BJHb}}{BGCn{BJHb}}}IGh}\",[]]Bf[\"{{{BGCn{CIAl}}{BGCn{CIAl}}}IGh}\",[]]Bf[\"{{{BGCn{CAOh}}{BGCn{CAOh}}}IGh}\",[]]Bf[\"{{{BGCn{BJHh}}{BGCn{BJHh}}}IGh}\",[]]Bf[\"{{{BGCn{BDMn}}{BGCn{BDMn}}}IGh}\",[]]Bf[\"{{{BGCn{CFAf}}{BGCn{CFAf}}}IGh}\",[]]Cg[\"{{{BGCn{{CJHd{c}}}}{BGCn{{CJHd{c}}}}}IGhBDM`}\",[\"T\"]]Cg[\"{ [...]
\ No newline at end of file
diff --git a/api/search.index/generic_inverted_index/63888a4a3149.js b/api/search.index/generic_inverted_index/63888a4a3149.js
new file mode 100644
index 000000000..f5e9303cc
--- /dev/null
+++ b/api/search.index/generic_inverted_index/63888a4a3149.js
@@ -0,0 +1 @@
+rb_("RERtADswAAABAAC3AQQAhQfYAK4I2ACIEwAAiRkEADswAAABAABAAhYAhQQAAKcFAACwBSsA3gUDAOQFAADnBQcA8AUAAPIFDwADBgAABQYOABYGBAAcBggAJgYBACoGCAA0BjwAcgYDAHcGGQCSBgAAlAYIAAkQigB6EdgAhRMCADswAAABAABnAxYAcwLYAHMKAwB4CigAogqrAKgMLADWDKsA8Q0BAJQQIQC3EAAAuRABAL0QAQDAEBQA1hACANoQBADgEAkA6xAXAAQREQAXERIAKxE7AGgREQCUHgAARR8AADswAAABAABMAhYAkQACADIEAQBFBAAARwQAAFsEAAC/BAEAcAgBAHcKAABZCwEAmw0BADcOAABODgQA8A8AAN8QAABUEgAAnBIsAMoSqwCkF/4AHhkGACkZUABKHwAAfB8BADswAAABAADwAScAQAQAAEgEAACDBAAAigQAAJEEAADdBQAAfwg [...]
\ No newline at end of file
diff --git a/api/search.index/generic_inverted_index/f6c6f3b5773a.js b/api/search.index/generic_inverted_index/f6c6f3b5773a.js
deleted file mode 100644
index 4639b801c..000000000
--- a/api/search.index/generic_inverted_index/f6c6f3b5773a.js
+++ /dev/null
@@ -1 +0,0 @@
-rb_("RERqADswAAABAAC1AQQAfwfXAKYI1wB4EwAAdxkEADswAAABAAA+AhYAggQAAKoFAACsBSoA2AUAANoFAgDfBQAA4gUIAO0FDwD+BQAAAAYOABEGBQAYBggAIwYAACUGCAAvBjwAbQYDAHIGGQCNBgAAjwYIAPwPigBsEdcAdRMCADswAAABAABjAxcAcQLXAGoKBABwCiYAmAqrAJ0MLADLDKoA5Q0BAIcQIQCqEAAArBABAK8QAACxEAAAsxATAMgQAgDMEAMA0RAKAN0QGAD3EBEAChERAB0ROwBaEREAgh4AADIfAAA7MAAAAQAASwIWAJEAAgAvBAEAQgQAAEQEAABYBAAAvAQBAGgIAQBvCgAATwsBAI8NAQArDgAAQg4EAOMPAADQEAAARRIAAI0SKwC6EqsAkRf+AAwZBgAXGVAANx8AAGkfAQA7MAAAAQAA7wEnAD0EAABFBAAAgAQAAIcEAACOBAAA2QU [...]
\ No newline at end of file
diff --git a/api/search.index/name/525b9082b8a1.js b/api/search.index/name/525b9082b8a1.js
deleted file mode 100644
index 28df61e2b..000000000
--- a/api/search.index/name/525b9082b8a1.js
+++ /dev/null
@@ -1 +0,0 @@
-rd_("aC0aR00aT000aU0b()b->bAsbEqbFsbHf00bIdbInbOk0bOr00bS3000bV10bV2bV3b[]beq0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bhfbidbio000bop00bor000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bs30btobu8bv1bv2bv3cAnd00cAnycArccBoxcDaycErr0cGcs00cInt0cLz4cMap00cNot00cOr [...]
\ No newline at end of file
diff --git a/api/search.index/name/89de0e23fc29.js b/api/search.index/name/89de0e23fc29.js
new file mode 100644
index 000000000..cdf1e5d5f
--- /dev/null
+++ b/api/search.index/name/89de0e23fc29.js
@@ -0,0 +1 @@
+rd_("aC0aR00aT000aU0b()b->bAsbEqbFsbHf00bIdbInbOk0bOr00bS3000bV10bV2bV3b[]beq0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bhfbidbio000bop00bor0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000bs30btobu8bv1bv2bv3cAnd00cAnycArccBoxcDaycErr0cGcs00cInt0cLz4cMap00cNot00cO [...]
\ No newline at end of file
diff --git a/api/search.index/normalizedName/0db75e04f3a9.js b/api/search.index/normalizedName/0db75e04f3a9.js
new file mode 100644
index 000000000..f9189b4f5
--- /dev/null
+++ b/api/search.index/normalizedName/0db75e04f3a9.js
@@ -0,0 +1 @@
+rd_("ac0ar00at000au0b()b->basbeqbfsbhf00bidbinbok0bor00bs3000bv10bv2bv3b[];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;98bio000bop007777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777766btobu8765cand00canycarccboxcdaycerr0cgcs00cint0clz4cmap00cnot00corccordcoss00cpin [...]
\ No newline at end of file
diff --git a/api/search.index/normalizedName/34c0b6d09b26.js b/api/search.index/normalizedName/34c0b6d09b26.js
deleted file mode 100644
index f640eac7a..000000000
--- a/api/search.index/normalizedName/34c0b6d09b26.js
+++ /dev/null
@@ -1 +0,0 @@
-rd_("ac0ar00at000au0b()b->basbeqbfsbhf00bidbinbok0bor00bs3000bv10bv2bv3b[];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;98bio000bop00777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777766btobu8765cand00canycarccboxcdaycerr0cgcs00cint0clz4cmap00cnot00corccordcoss00cpinc [...]
\ No newline at end of file
diff --git a/api/search.index/path/b186c447f6db.js b/api/search.index/path/ab7588129fda.js
similarity index 80%
rename from api/search.index/path/b186c447f6db.js
rename to api/search.index/path/ab7588129fda.js
index 9cf6f2b96..b3bad3933 100644
--- a/api/search.index/path/b186c447f6db.js
+++ b/api/search.index/path/ab7588129fda.js
@@ -1 +1 @@
-rd_("g[17,\"\"]000f[1,\"\"]0Aa[10,\"bnum::cast\"]Bn[15,\"iceberg_storage_opendal::OpenDalStorage\"]Eg[5,\"tower_http::follow_redirect::policy::or\",\"tower_http::follow_redirect::policy::or\"]1Ce[15,\"iceberg_storage_opendal::OpenDalStorageFactory\"]4Bb[2,\"iceberg::io::storage::config\"]m[2,\"iceberg\"]Ai[2,\"iceberg::encryption\"]2Am[2,\"iceberg_storage_opendal\"]8Ei[5,\"tower_http::follow_redirect::policy::and\",\"tower_http::follow_redirect::policy::and\"]A`[10,\"core::any\"]Ao[5,\"a [...]
\ No newline at end of file
+rd_("g[17,\"\"]000f[1,\"\"]0Aa[10,\"bnum::cast\"]Bn[15,\"iceberg_storage_opendal::OpenDalStorage\"]Eg[5,\"tower_http::follow_redirect::policy::or\",\"tower_http::follow_redirect::policy::or\"]1Ce[15,\"iceberg_storage_opendal::OpenDalStorageFactory\"]4Bb[2,\"iceberg::io::storage::config\"]m[2,\"iceberg\"]Ai[2,\"iceberg::encryption\"]2Am[2,\"iceberg_storage_opendal\"]8Ei[5,\"tower_http::follow_redirect::policy::and\",\"tower_http::follow_redirect::policy::and\"]A`[10,\"core::any\"]Ao[5,\"a [...]
\ No newline at end of file
diff --git a/api/search.index/root.js b/api/search.index/root.js
index 692f8f53a..3f4ca88aa 100644
--- a/api/search.index/root.js
+++ b/api/search.index/root.js
@@ -1 +1 @@
-rr_('{"normalizedName":{"I":"RQBAAAAEfhJlcAGmBpkL+A0cDhUAQAAAIFEDLgSNBDSLBPoNFQBAAAAA+g02NxXjHzFAAACCAVEDLgSNBAUBwAAAApgaBZkcYWUxQAAApgaZC/gNHA5jAASgEAAADfqwcB6xAHo1OGRt9iAAAABSAd4B3QBfAG0JVQJAAAAxpgaZC/gNHA4AiwQB+Q0yNjkeAB8AcQGmD5wdmh8FAcAAAAONHQCGGmFzAQEBoGAAABn8ZDswAAABAADZAAMAlwQAAK0EAACmCNcABQHDAAAXaR9qHxLEHsUeZHM1AEIAAAXbGGOCCYMJhAm0CQQAQnRkAAAGZWZhdWx0WRpksARWCwDByKAAAAABgjhtM4x98aBQAAAd77AgD54K6QAAAAEIThwAAPL+GAAAsQAFAFIAAAbvH2TbHwUAVAAABvAfZN4f84MCcHQ1AEQAABblH+YfZEcfSB/BH8IfWwO [...]
\ No newline at end of file
+rr_('{"normalizedName":{"I":"RQBAAAAEjRJlcQGrBqMLBA4oDhUAQAAAIFQDMQSQBDSOBAYOFQBAAAAABg42SBX2HzFAAACDAVQDMQSQBAUBwAAAAqoaBascYWUxQAAAqwajCwQOKA5jAASgEAAADgawcB7DAHs1OGRt9iAAAABTAeAB3QBfAHYJVQJAAAAxqwajCwQOKA4AjgQBBQ4yNjkeAB8AcgGzD64drR8FAcAAAAOfHQCYGmFzAQEBoGAAABoOZDswAAABAADaAAMAmgQAALAEAACuCNgABQHDAAAXfB99HxLXHtgeZHM1AEIAAAXuGGOLCYwJjQm9CQQAQnRkAAAGZWZhdWx0axpkswRWCwDByKAAAAABg2BToQTxBaBQAAAeAbAgD6sK7gAAAAEIThwAAPIQGQAAsQAFAFIAAAYCIGTuHwUAVAAABgMgZPEf84MCcHQ1AEQAABb4H/kfZFofWx/UH9UfWwO [...]
\ No newline at end of file
diff --git a/api/search.index/type/877cefe06f46.js b/api/search.index/type/877cefe06f46.js
new file mode 100644
index 000000000..5f0c4a65d
--- /dev/null
+++ b/api/search.index/type/877cefe06f46.js
@@ -0,0 +1 @@
+rd_("Dg[\"AAAAAAAAAAABYBoAAAHeHgAAAAAAAAAAAWUIAAA=\",\"AAAAAAAAAAABYBoAAAHeHgAA\"]Bg[\"AAAAAAAAAAAAAAAAAc4JAAAB0QkAAA==\",\"\"]No[\"AAAAAAAAAAAAOjAAAAEAAAAAABAAEAAAAKoToBqhGkAbQRutG64bpRymHM4dzx3UHdUdIB4hHiYeJx4DYggAAFULAADVDQAAOzAAAAEAACMADQA8BAAA8w0AAKsTAQAVGQEA8xkBAKIaAwBCGwMArxsDAKccAwDQHQMA1h0BACIeAwAoHgEABGMIAABkCAAAVgsAANYNAAAFPQQAAD4EAADgDQAA9A0AAPUNAAA=\",\"\"]Gc[\"AAAAAAAAAAAAAAA6MAAAAQAAAAAAEAAQAAAArBMVGRYZ8xn0GaQapRpEG0UbsRuyG6kcqhzSHdMdJB4lHgFkCAAAAz4EAADgDQAA9Q0AAA==\",\"\" [...]
\ No newline at end of file
diff --git a/api/search.index/type/c5c36c99c5ab.js b/api/search.index/type/c5c36c99c5ab.js
deleted file mode 100644
index 9c71fd490..000000000
--- a/api/search.index/type/c5c36c99c5ab.js
+++ /dev/null
@@ -1 +0,0 @@
-rd_("Dg[\"AAAAAAAAAAABThoAAAHLHgAAAAAAAAAAAV4IAAA=\",\"AAAAAAAAAAABThoAAAHLHgAA\"]Bg[\"AAAAAAAAAAAAAAAAAcUJAAAByAkAAA==\",\"\"]No[\"AAAAAAAAAAAAOjAAAAEAAAAAABAAEAAAAJoTjhqPGi4bLxubG5wbkxyUHLsdvB3BHcIdDh4PHhQeFR4DWwgAAEsLAADJDQAAOzAAAAEAACMADQA5BAAA5w0AAJsTAQADGQEA4RkBAJAaAwAwGwMAnRsDAJUcAwC9HQMAwx0BABAeAwAWHgEABFwIAABdCAAATAsAAMoNAAAFOgQAADsEAADUDQAA6A0AAOkNAAA=\",\"\"]Gc[\"AAAAAAAAAAAAAAA6MAAAAQAAAAAAEAAQAAAAnBMDGQQZ4RniGZIakxoyGzMbnxugG5ccmBy/HcAdEh4THgFdCAAAAzsEAADUDQAA6Q0AAA==\",\"\" [...]
\ No newline at end of file
diff --git a/api/src/iceberg/catalog/memory/catalog.rs.html b/api/src/iceberg/catalog/memory/catalog.rs.html
index 2527e341d..a510085af 100644
--- a/api/src/iceberg/catalog/memory/catalog.rs.html
+++ b/api/src/iceberg/catalog/memory/catalog.rs.html
@@ -343,1626 +343,1621 @@
 <a href=#343 id=343 data-nosnippet>343</a>    <span class="kw">async fn </span>purge_table(<span class="kw-2">&amp;</span><span class="self">self</span>, table_ident: <span class="kw-2">&amp;</span>TableIdent) -&gt; <span class="prelude-ty">Result</span>&lt;()&gt; {
 <a href=#344 id=344 data-nosnippet>344</a>        <span class="kw">let </span>table_info = <span class="self">self</span>.load_table(table_ident).<span class="kw">await</span><span class="question-mark">?</span>;
 <a href=#345 id=345 data-nosnippet>345</a>        <span class="self">self</span>.drop_table(table_ident).<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#346 id=346 data-nosnippet>346</a>        <span class="kw">crate</span>::catalog::utils::drop_table_data(
-<a href=#347 id=347 data-nosnippet>347</a>            table_info.file_io(),
-<a href=#348 id=348 data-nosnippet>348</a>            table_info.metadata(),
-<a href=#349 id=349 data-nosnippet>349</a>            table_info.metadata_location(),
-<a href=#350 id=350 data-nosnippet>350</a>        )
-<a href=#351 id=351 data-nosnippet>351</a>        .<span class="kw">await
-<a href=#352 id=352 data-nosnippet>352</a>    </span>}
-<a href=#353 id=353 data-nosnippet>353</a>
-<a href=#354 id=354 data-nosnippet>354</a>    <span class="doccomment">/// Check if a table exists in the catalog.
-<a href=#355 id=355 data-nosnippet>355</a>    </span><span class="kw">async fn </span>table_exists(<span class="kw-2">&amp;</span><span class="self">self</span>, table_ident: <span class="kw-2">&amp;</span>TableIdent) -&gt; <span class="prelude-ty">Result</span>&lt;bool&gt; {
-<a href=#356 id=356 data-nosnippet>356</a>        <span class="kw">let </span>root_namespace_state = <span class="self">self</span>.root_namespace_state.lock().<span class="kw">await</span>;
-<a href=#357 id=357 data-nosnippet>357</a>
-<a href=#358 id=358 data-nosnippet>358</a>        root_namespace_state.table_exists(table_ident)
-<a href=#359 id=359 data-nosnippet>359</a>    }
-<a href=#360 id=360 data-nosnippet>360</a>
-<a href=#361 id=361 data-nosnippet>361</a>    <span class="doccomment">/// Rename a table in the catalog.
-<a href=#362 id=362 data-nosnippet>362</a>    </span><span class="kw">async fn </span>rename_table(
-<a href=#363 id=363 data-nosnippet>363</a>        <span class="kw-2">&amp;</span><span class="self">self</span>,
-<a href=#364 id=364 data-nosnippet>364</a>        src_table_ident: <span class="kw-2">&amp;</span>TableIdent,
-<a href=#365 id=365 data-nosnippet>365</a>        dst_table_ident: <span class="kw-2">&amp;</span>TableIdent,
-<a href=#366 id=366 data-nosnippet>366</a>    ) -&gt; <span class="prelude-ty">Result</span>&lt;()&gt; {
-<a href=#367 id=367 data-nosnippet>367</a>        <span class="kw">let </span><span class="kw-2">mut </span>root_namespace_state = <span class="self">self</span>.root_namespace_state.lock().<span class="kw">await</span>;
-<a href=#368 id=368 data-nosnippet>368</a>
-<a href=#369 id=369 data-nosnippet>369</a>        <span class="kw">let </span><span class="kw-2">mut </span>new_root_namespace_state = root_namespace_state.clone();
-<a href=#370 id=370 data-nosnippet>370</a>        <span class="kw">let </span>metadata_location = new_root_namespace_state
-<a href=#371 id=371 data-nosnippet>371</a>            .get_existing_table_location(src_table_ident)<span class="question-mark">?
-<a href=#372 id=372 data-nosnippet>372</a>            </span>.clone();
-<a href=#373 id=373 data-nosnippet>373</a>        new_root_namespace_state.remove_existing_table(src_table_ident)<span class="question-mark">?</span>;
-<a href=#374 id=374 data-nosnippet>374</a>        new_root_namespace_state.insert_new_table(dst_table_ident, metadata_location)<span class="question-mark">?</span>;
-<a href=#375 id=375 data-nosnippet>375</a>        <span class="kw-2">*</span>root_namespace_state = new_root_namespace_state;
-<a href=#376 id=376 data-nosnippet>376</a>
-<a href=#377 id=377 data-nosnippet>377</a>        <span class="prelude-val">Ok</span>(())
-<a href=#378 id=378 data-nosnippet>378</a>    }
-<a href=#379 id=379 data-nosnippet>379</a>
-<a href=#380 id=380 data-nosnippet>380</a>    <span class="kw">async fn </span>register_table(
-<a href=#381 id=381 data-nosnippet>381</a>        <span class="kw-2">&amp;</span><span class="self">self</span>,
-<a href=#382 id=382 data-nosnippet>382</a>        table_ident: <span class="kw-2">&amp;</span>TableIdent,
-<a href=#383 id=383 data-nosnippet>383</a>        metadata_location: String,
-<a href=#384 id=384 data-nosnippet>384</a>    ) -&gt; <span class="prelude-ty">Result</span>&lt;Table&gt; {
-<a href=#385 id=385 data-nosnippet>385</a>        <span class="kw">let </span><span class="kw-2">mut </span>root_namespace_state = <span class="self">self</span>.root_namespace_state.lock().<span class="kw">await</span>;
-<a href=#386 id=386 data-nosnippet>386</a>        root_namespace_state.insert_new_table(<span class="kw-2">&amp;</span>table_ident.clone(), metadata_location.clone())<span class="question-mark">?</span>;
-<a href=#387 id=387 data-nosnippet>387</a>
-<a href=#388 id=388 data-nosnippet>388</a>        <span class="kw">let </span>metadata = TableMetadata::read_from(<span class="kw-2">&amp;</span><span class="self">self</span>.file_io, <span class="kw-2">&amp;</span>metadata_location).<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#389 id=389 data-nosnippet>389</a>
-<a href=#390 id=390 data-nosnippet>390</a>        Table::builder()
-<a href=#391 id=391 data-nosnippet>391</a>            .file_io(<span class="self">self</span>.file_io.clone())
-<a href=#392 id=392 data-nosnippet>392</a>            .metadata_location(metadata_location)
-<a href=#393 id=393 data-nosnippet>393</a>            .metadata(metadata)
-<a href=#394 id=394 data-nosnippet>394</a>            .identifier(table_ident.clone())
-<a href=#395 id=395 data-nosnippet>395</a>            .runtime(<span class="self">self</span>.runtime.clone())
-<a href=#396 id=396 data-nosnippet>396</a>            .build()
-<a href=#397 id=397 data-nosnippet>397</a>    }
-<a href=#398 id=398 data-nosnippet>398</a>
-<a href=#399 id=399 data-nosnippet>399</a>    <span class="doccomment">/// Update a table in the catalog.
-<a href=#400 id=400 data-nosnippet>400</a>    </span><span class="kw">async fn </span>update_table(<span class="kw-2">&amp;</span><span class="self">self</span>, commit: TableCommit) -&gt; <span class="prelude-ty">Result</span>&lt;Table&gt; {
-<a href=#401 id=401 data-nosnippet>401</a>        <span class="kw">let </span><span class="kw-2">mut </span>root_namespace_state = <span class="self">self</span>.root_namespace_state.lock().<span class="kw">await</span>;
-<a href=#402 id=402 data-nosnippet>402</a>
-<a href=#403 id=403 data-nosnippet>403</a>        <span class="kw">let </span>current_table = <span class="self">self
-<a href=#404 id=404 data-nosnippet>404</a>            </span>.load_table_from_locked_state(commit.identifier(), <span class="kw-2">&amp;</span>root_namespace_state)
-<a href=#405 id=405 data-nosnippet>405</a>            .<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#406 id=406 data-nosnippet>406</a>
-<a href=#407 id=407 data-nosnippet>407</a>        <span class="comment">// Apply TableCommit to get staged table
-<a href=#408 id=408 data-nosnippet>408</a>        </span><span class="kw">let </span>staged_table = commit.apply(current_table)<span class="question-mark">?</span>;
-<a href=#409 id=409 data-nosnippet>409</a>
-<a href=#410 id=410 data-nosnippet>410</a>        <span class="comment">// Write table metadata to the new location
-<a href=#411 id=411 data-nosnippet>411</a>        </span><span class="kw">let </span>metadata_location =
-<a href=#412 id=412 data-nosnippet>412</a>            MetadataLocation::from_str(staged_table.metadata_location_result()<span class="question-mark">?</span>)<span class="question-mark">?</span>;
-<a href=#413 id=413 data-nosnippet>413</a>        staged_table
-<a href=#414 id=414 data-nosnippet>414</a>            .metadata()
-<a href=#415 id=415 data-nosnippet>415</a>            .write_to(staged_table.file_io(), <span class="kw-2">&amp;</span>metadata_location)
-<a href=#416 id=416 data-nosnippet>416</a>            .<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#417 id=417 data-nosnippet>417</a>
-<a href=#418 id=418 data-nosnippet>418</a>        <span class="comment">// Flip the pointer to reference the new metadata file.
-<a href=#419 id=419 data-nosnippet>419</a>        </span><span class="kw">let </span>updated_table = root_namespace_state.commit_table_update(staged_table)<span class="question-mark">?</span>;
-<a href=#420 id=420 data-nosnippet>420</a>
-<a href=#421 id=421 data-nosnippet>421</a>        <span class="prelude-val">Ok</span>(updated_table)
-<a href=#422 id=422 data-nosnippet>422</a>    }
-<a href=#423 id=423 data-nosnippet>423</a>}
-<a href=#424 id=424 data-nosnippet>424</a>
-<a href=#425 id=425 data-nosnippet>425</a><span class="attr">#[cfg(test)]
-<a href=#426 id=426 data-nosnippet>426</a></span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">mod </span>tests {
-<a href=#427 id=427 data-nosnippet>427</a>    <span class="kw">use </span>std::collections::HashSet;
-<a href=#428 id=428 data-nosnippet>428</a>    <span class="kw">use </span>std::hash::Hash;
-<a href=#429 id=429 data-nosnippet>429</a>    <span class="kw">use </span>std::iter::FromIterator;
-<a href=#430 id=430 data-nosnippet>430</a>    <span class="kw">use </span>std::vec;
-<a href=#431 id=431 data-nosnippet>431</a>
-<a href=#432 id=432 data-nosnippet>432</a>    <span class="kw">use </span>regex::Regex;
-<a href=#433 id=433 data-nosnippet>433</a>    <span class="kw">use </span>tempfile::TempDir;
-<a href=#434 id=434 data-nosnippet>434</a>
-<a href=#435 id=435 data-nosnippet>435</a>    <span class="kw">use super</span>::<span class="kw-2">*</span>;
-<a href=#436 id=436 data-nosnippet>436</a>    <span class="kw">use </span><span class="kw">crate</span>::io::FileIO;
-<a href=#437 id=437 data-nosnippet>437</a>    <span class="kw">use </span><span class="kw">crate</span>::spec::{NestedField, PartitionSpec, PrimitiveType, Schema, SortOrder, Type};
-<a href=#438 id=438 data-nosnippet>438</a>    <span class="kw">use </span><span class="kw">crate</span>::test_utils::test_runtime;
-<a href=#439 id=439 data-nosnippet>439</a>    <span class="kw">use </span><span class="kw">crate</span>::transaction::{ApplyTransactionAction, Transaction};
+<a href=#346 id=346 data-nosnippet>346</a>        <span class="kw">crate</span>::catalog::utils::drop_table_data(<span class="kw-2">&amp;</span>table_info).<span class="kw">await
+<a href=#347 id=347 data-nosnippet>347</a>    </span>}
+<a href=#348 id=348 data-nosnippet>348</a>
+<a href=#349 id=349 data-nosnippet>349</a>    <span class="doccomment">/// Check if a table exists in the catalog.
+<a href=#350 id=350 data-nosnippet>350</a>    </span><span class="kw">async fn </span>table_exists(<span class="kw-2">&amp;</span><span class="self">self</span>, table_ident: <span class="kw-2">&amp;</span>TableIdent) -&gt; <span class="prelude-ty">Result</span>&lt;bool&gt; {
+<a href=#351 id=351 data-nosnippet>351</a>        <span class="kw">let </span>root_namespace_state = <span class="self">self</span>.root_namespace_state.lock().<span class="kw">await</span>;
+<a href=#352 id=352 data-nosnippet>352</a>
+<a href=#353 id=353 data-nosnippet>353</a>        root_namespace_state.table_exists(table_ident)
+<a href=#354 id=354 data-nosnippet>354</a>    }
+<a href=#355 id=355 data-nosnippet>355</a>
+<a href=#356 id=356 data-nosnippet>356</a>    <span class="doccomment">/// Rename a table in the catalog.
+<a href=#357 id=357 data-nosnippet>357</a>    </span><span class="kw">async fn </span>rename_table(
+<a href=#358 id=358 data-nosnippet>358</a>        <span class="kw-2">&amp;</span><span class="self">self</span>,
+<a href=#359 id=359 data-nosnippet>359</a>        src_table_ident: <span class="kw-2">&amp;</span>TableIdent,
+<a href=#360 id=360 data-nosnippet>360</a>        dst_table_ident: <span class="kw-2">&amp;</span>TableIdent,
+<a href=#361 id=361 data-nosnippet>361</a>    ) -&gt; <span class="prelude-ty">Result</span>&lt;()&gt; {
+<a href=#362 id=362 data-nosnippet>362</a>        <span class="kw">let </span><span class="kw-2">mut </span>root_namespace_state = <span class="self">self</span>.root_namespace_state.lock().<span class="kw">await</span>;
+<a href=#363 id=363 data-nosnippet>363</a>
+<a href=#364 id=364 data-nosnippet>364</a>        <span class="kw">let </span><span class="kw-2">mut </span>new_root_namespace_state = root_namespace_state.clone();
+<a href=#365 id=365 data-nosnippet>365</a>        <span class="kw">let </span>metadata_location = new_root_namespace_state
+<a href=#366 id=366 data-nosnippet>366</a>            .get_existing_table_location(src_table_ident)<span class="question-mark">?
+<a href=#367 id=367 data-nosnippet>367</a>            </span>.clone();
+<a href=#368 id=368 data-nosnippet>368</a>        new_root_namespace_state.remove_existing_table(src_table_ident)<span class="question-mark">?</span>;
+<a href=#369 id=369 data-nosnippet>369</a>        new_root_namespace_state.insert_new_table(dst_table_ident, metadata_location)<span class="question-mark">?</span>;
+<a href=#370 id=370 data-nosnippet>370</a>        <span class="kw-2">*</span>root_namespace_state = new_root_namespace_state;
+<a href=#371 id=371 data-nosnippet>371</a>
+<a href=#372 id=372 data-nosnippet>372</a>        <span class="prelude-val">Ok</span>(())
+<a href=#373 id=373 data-nosnippet>373</a>    }
+<a href=#374 id=374 data-nosnippet>374</a>
+<a href=#375 id=375 data-nosnippet>375</a>    <span class="kw">async fn </span>register_table(
+<a href=#376 id=376 data-nosnippet>376</a>        <span class="kw-2">&amp;</span><span class="self">self</span>,
+<a href=#377 id=377 data-nosnippet>377</a>        table_ident: <span class="kw-2">&amp;</span>TableIdent,
+<a href=#378 id=378 data-nosnippet>378</a>        metadata_location: String,
+<a href=#379 id=379 data-nosnippet>379</a>    ) -&gt; <span class="prelude-ty">Result</span>&lt;Table&gt; {
+<a href=#380 id=380 data-nosnippet>380</a>        <span class="kw">let </span><span class="kw-2">mut </span>root_namespace_state = <span class="self">self</span>.root_namespace_state.lock().<span class="kw">await</span>;
+<a href=#381 id=381 data-nosnippet>381</a>        root_namespace_state.insert_new_table(<span class="kw-2">&amp;</span>table_ident.clone(), metadata_location.clone())<span class="question-mark">?</span>;
+<a href=#382 id=382 data-nosnippet>382</a>
+<a href=#383 id=383 data-nosnippet>383</a>        <span class="kw">let </span>metadata = TableMetadata::read_from(<span class="kw-2">&amp;</span><span class="self">self</span>.file_io, <span class="kw-2">&amp;</span>metadata_location).<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#384 id=384 data-nosnippet>384</a>
+<a href=#385 id=385 data-nosnippet>385</a>        Table::builder()
+<a href=#386 id=386 data-nosnippet>386</a>            .file_io(<span class="self">self</span>.file_io.clone())
+<a href=#387 id=387 data-nosnippet>387</a>            .metadata_location(metadata_location)
+<a href=#388 id=388 data-nosnippet>388</a>            .metadata(metadata)
+<a href=#389 id=389 data-nosnippet>389</a>            .identifier(table_ident.clone())
+<a href=#390 id=390 data-nosnippet>390</a>            .runtime(<span class="self">self</span>.runtime.clone())
+<a href=#391 id=391 data-nosnippet>391</a>            .build()
+<a href=#392 id=392 data-nosnippet>392</a>    }
+<a href=#393 id=393 data-nosnippet>393</a>
+<a href=#394 id=394 data-nosnippet>394</a>    <span class="doccomment">/// Update a table in the catalog.
+<a href=#395 id=395 data-nosnippet>395</a>    </span><span class="kw">async fn </span>update_table(<span class="kw-2">&amp;</span><span class="self">self</span>, commit: TableCommit) -&gt; <span class="prelude-ty">Result</span>&lt;Table&gt; {
+<a href=#396 id=396 data-nosnippet>396</a>        <span class="kw">let </span><span class="kw-2">mut </span>root_namespace_state = <span class="self">self</span>.root_namespace_state.lock().<span class="kw">await</span>;
+<a href=#397 id=397 data-nosnippet>397</a>
+<a href=#398 id=398 data-nosnippet>398</a>        <span class="kw">let </span>current_table = <span class="self">self
+<a href=#399 id=399 data-nosnippet>399</a>            </span>.load_table_from_locked_state(commit.identifier(), <span class="kw-2">&amp;</span>root_namespace_state)
+<a href=#400 id=400 data-nosnippet>400</a>            .<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#401 id=401 data-nosnippet>401</a>
+<a href=#402 id=402 data-nosnippet>402</a>        <span class="comment">// Apply TableCommit to get staged table
+<a href=#403 id=403 data-nosnippet>403</a>        </span><span class="kw">let </span>staged_table = commit.apply(current_table)<span class="question-mark">?</span>;
+<a href=#404 id=404 data-nosnippet>404</a>
+<a href=#405 id=405 data-nosnippet>405</a>        <span class="comment">// Write table metadata to the new location
+<a href=#406 id=406 data-nosnippet>406</a>        </span><span class="kw">let </span>metadata_location =
+<a href=#407 id=407 data-nosnippet>407</a>            MetadataLocation::from_str(staged_table.metadata_location_result()<span class="question-mark">?</span>)<span class="question-mark">?</span>;
+<a href=#408 id=408 data-nosnippet>408</a>        staged_table
+<a href=#409 id=409 data-nosnippet>409</a>            .metadata()
+<a href=#410 id=410 data-nosnippet>410</a>            .write_to(staged_table.file_io(), <span class="kw-2">&amp;</span>metadata_location)
+<a href=#411 id=411 data-nosnippet>411</a>            .<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#412 id=412 data-nosnippet>412</a>
+<a href=#413 id=413 data-nosnippet>413</a>        <span class="comment">// Flip the pointer to reference the new metadata file.
+<a href=#414 id=414 data-nosnippet>414</a>        </span><span class="kw">let </span>updated_table = root_namespace_state.commit_table_update(staged_table)<span class="question-mark">?</span>;
+<a href=#415 id=415 data-nosnippet>415</a>
+<a href=#416 id=416 data-nosnippet>416</a>        <span class="prelude-val">Ok</span>(updated_table)
+<a href=#417 id=417 data-nosnippet>417</a>    }
+<a href=#418 id=418 data-nosnippet>418</a>}
+<a href=#419 id=419 data-nosnippet>419</a>
+<a href=#420 id=420 data-nosnippet>420</a><span class="attr">#[cfg(test)]
+<a href=#421 id=421 data-nosnippet>421</a></span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">mod </span>tests {
+<a href=#422 id=422 data-nosnippet>422</a>    <span class="kw">use </span>std::collections::HashSet;
+<a href=#423 id=423 data-nosnippet>423</a>    <span class="kw">use </span>std::hash::Hash;
+<a href=#424 id=424 data-nosnippet>424</a>    <span class="kw">use </span>std::iter::FromIterator;
+<a href=#425 id=425 data-nosnippet>425</a>    <span class="kw">use </span>std::vec;
+<a href=#426 id=426 data-nosnippet>426</a>
+<a href=#427 id=427 data-nosnippet>427</a>    <span class="kw">use </span>regex::Regex;
+<a href=#428 id=428 data-nosnippet>428</a>    <span class="kw">use </span>tempfile::TempDir;
+<a href=#429 id=429 data-nosnippet>429</a>
+<a href=#430 id=430 data-nosnippet>430</a>    <span class="kw">use super</span>::<span class="kw-2">*</span>;
+<a href=#431 id=431 data-nosnippet>431</a>    <span class="kw">use </span><span class="kw">crate</span>::io::FileIO;
+<a href=#432 id=432 data-nosnippet>432</a>    <span class="kw">use </span><span class="kw">crate</span>::spec::{NestedField, PartitionSpec, PrimitiveType, Schema, SortOrder, Type};
+<a href=#433 id=433 data-nosnippet>433</a>    <span class="kw">use </span><span class="kw">crate</span>::test_utils::test_runtime;
+<a href=#434 id=434 data-nosnippet>434</a>    <span class="kw">use </span><span class="kw">crate</span>::transaction::{ApplyTransactionAction, Transaction};
+<a href=#435 id=435 data-nosnippet>435</a>
+<a href=#436 id=436 data-nosnippet>436</a>    <span class="kw">fn </span>temp_path() -&gt; String {
+<a href=#437 id=437 data-nosnippet>437</a>        <span class="kw">let </span>temp_dir = TempDir::new().unwrap();
+<a href=#438 id=438 data-nosnippet>438</a>        temp_dir.path().to_str().unwrap().to_string()
+<a href=#439 id=439 data-nosnippet>439</a>    }
 <a href=#440 id=440 data-nosnippet>440</a>
-<a href=#441 id=441 data-nosnippet>441</a>    <span class="kw">fn </span>temp_path() -&gt; String {
-<a href=#442 id=442 data-nosnippet>442</a>        <span class="kw">let </span>temp_dir = TempDir::new().unwrap();
-<a href=#443 id=443 data-nosnippet>443</a>        temp_dir.path().to_str().unwrap().to_string()
-<a href=#444 id=444 data-nosnippet>444</a>    }
-<a href=#445 id=445 data-nosnippet>445</a>
-<a href=#446 id=446 data-nosnippet>446</a>    <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">async fn </span>new_memory_catalog() -&gt; <span class="kw">impl </span>Catalog {
-<a href=#447 id=447 data-nosnippet>447</a>        <span class="kw">let </span>warehouse_location = temp_path();
-<a href=#448 id=448 data-nosnippet>448</a>        MemoryCatalogBuilder::default()
-<a href=#449 id=449 data-nosnippet>449</a>            .load(
-<a href=#450 id=450 data-nosnippet>450</a>                <span class="string">"memory"</span>,
-<a href=#451 id=451 data-nosnippet>451</a>                HashMap::from([(MEMORY_CATALOG_WAREHOUSE.to_string(), warehouse_location)]),
-<a href=#452 id=452 data-nosnippet>452</a>            )
-<a href=#453 id=453 data-nosnippet>453</a>            .<span class="kw">await
-<a href=#454 id=454 data-nosnippet>454</a>            </span>.unwrap()
-<a href=#455 id=455 data-nosnippet>455</a>    }
-<a href=#456 id=456 data-nosnippet>456</a>
-<a href=#457 id=457 data-nosnippet>457</a>    <span class="kw">async fn </span>create_namespace&lt;C: Catalog&gt;(catalog: <span class="kw-2">&amp;</span>C, namespace_ident: <span class="kw-2">&amp;</span>NamespaceIdent) {
-<a href=#458 id=458 data-nosnippet>458</a>        <span class="kw">let _ </span>= catalog
-<a href=#459 id=459 data-nosnippet>459</a>            .create_namespace(namespace_ident, HashMap::new())
-<a href=#460 id=460 data-nosnippet>460</a>            .<span class="kw">await
-<a href=#461 id=461 data-nosnippet>461</a>            </span>.unwrap();
-<a href=#462 id=462 data-nosnippet>462</a>    }
-<a href=#463 id=463 data-nosnippet>463</a>
-<a href=#464 id=464 data-nosnippet>464</a>    <span class="kw">async fn </span>create_namespaces&lt;C: Catalog&gt;(catalog: <span class="kw-2">&amp;</span>C, namespace_idents: <span class="kw-2">&amp;</span>Vec&lt;<span class="kw-2">&amp;</span>NamespaceIdent&gt;) {
-<a href=#465 id=465 data-nosnippet>465</a>        <span class="kw">for </span>namespace_ident <span class="kw">in </span>namespace_idents {
-<a href=#466 id=466 data-nosnippet>466</a>            <span class="kw">let _ </span>= create_namespace(catalog, namespace_ident).<span class="kw">await</span>;
-<a href=#467 id=467 data-nosnippet>467</a>        }
-<a href=#468 id=468 data-nosnippet>468</a>    }
-<a href=#469 id=469 data-nosnippet>469</a>
-<a href=#470 id=470 data-nosnippet>470</a>    <span class="kw">fn </span>to_set&lt;T: Eq + Hash&gt;(vec: Vec&lt;T&gt;) -&gt; HashSet&lt;T&gt; {
-<a href=#471 id=471 data-nosnippet>471</a>        HashSet::from_iter(vec)
-<a href=#472 id=472 data-nosnippet>472</a>    }
-<a href=#473 id=473 data-nosnippet>473</a>
-<a href=#474 id=474 data-nosnippet>474</a>    <span class="kw">fn </span>simple_table_schema() -&gt; Schema {
-<a href=#475 id=475 data-nosnippet>475</a>        Schema::builder()
-<a href=#476 id=476 data-nosnippet>476</a>            .with_fields(<span class="macro">vec!</span>[
-<a href=#477 id=477 data-nosnippet>477</a>                NestedField::required(<span class="number">1</span>, <span class="string">"foo"</span>, Type::Primitive(PrimitiveType::Int)).into(),
-<a href=#478 id=478 data-nosnippet>478</a>            ])
-<a href=#479 id=479 data-nosnippet>479</a>            .build()
-<a href=#480 id=480 data-nosnippet>480</a>            .unwrap()
-<a href=#481 id=481 data-nosnippet>481</a>    }
-<a href=#482 id=482 data-nosnippet>482</a>
-<a href=#483 id=483 data-nosnippet>483</a>    <span class="kw">async fn </span>create_table&lt;C: Catalog&gt;(catalog: <span class="kw-2">&amp;</span>C, table_ident: <span class="kw-2">&amp;</span>TableIdent) -&gt; Table {
-<a href=#484 id=484 data-nosnippet>484</a>        catalog
-<a href=#485 id=485 data-nosnippet>485</a>            .create_table(
-<a href=#486 id=486 data-nosnippet>486</a>                <span class="kw-2">&amp;</span>table_ident.namespace,
-<a href=#487 id=487 data-nosnippet>487</a>                TableCreation::builder()
-<a href=#488 id=488 data-nosnippet>488</a>                    .name(table_ident.name().into())
-<a href=#489 id=489 data-nosnippet>489</a>                    .schema(simple_table_schema())
-<a href=#490 id=490 data-nosnippet>490</a>                    .build(),
-<a href=#491 id=491 data-nosnippet>491</a>            )
-<a href=#492 id=492 data-nosnippet>492</a>            .<span class="kw">await
-<a href=#493 id=493 data-nosnippet>493</a>            </span>.unwrap()
-<a href=#494 id=494 data-nosnippet>494</a>    }
-<a href=#495 id=495 data-nosnippet>495</a>
-<a href=#496 id=496 data-nosnippet>496</a>    <span class="kw">async fn </span>create_tables&lt;C: Catalog&gt;(catalog: <span class="kw-2">&amp;</span>C, table_idents: Vec&lt;<span class="kw-2">&amp;</span>TableIdent&gt;) {
-<a href=#497 id=497 data-nosnippet>497</a>        <span class="kw">for </span>table_ident <span class="kw">in </span>table_idents {
-<a href=#498 id=498 data-nosnippet>498</a>            create_table(catalog, table_ident).<span class="kw">await</span>;
-<a href=#499 id=499 data-nosnippet>499</a>        }
-<a href=#500 id=500 data-nosnippet>500</a>    }
-<a href=#501 id=501 data-nosnippet>501</a>
-<a href=#502 id=502 data-nosnippet>502</a>    <span class="kw">async fn </span>create_table_with_namespace&lt;C: Catalog&gt;(catalog: <span class="kw-2">&amp;</span>C) -&gt; Table {
-<a href=#503 id=503 data-nosnippet>503</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
-<a href=#504 id=504 data-nosnippet>504</a>        create_namespace(catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#505 id=505 data-nosnippet>505</a>
-<a href=#506 id=506 data-nosnippet>506</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident, <span class="string">"test"</span>.to_string());
-<a href=#507 id=507 data-nosnippet>507</a>        create_table(catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await
-<a href=#508 id=508 data-nosnippet>508</a>    </span>}
+<a href=#441 id=441 data-nosnippet>441</a>    <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">async fn </span>new_memory_catalog() -&gt; <span class="kw">impl </span>Catalog {
+<a href=#442 id=442 data-nosnippet>442</a>        <span class="kw">let </span>warehouse_location = temp_path();
+<a href=#443 id=443 data-nosnippet>443</a>        MemoryCatalogBuilder::default()
+<a href=#444 id=444 data-nosnippet>444</a>            .load(
+<a href=#445 id=445 data-nosnippet>445</a>                <span class="string">"memory"</span>,
+<a href=#446 id=446 data-nosnippet>446</a>                HashMap::from([(MEMORY_CATALOG_WAREHOUSE.to_string(), warehouse_location)]),
+<a href=#447 id=447 data-nosnippet>447</a>            )
+<a href=#448 id=448 data-nosnippet>448</a>            .<span class="kw">await
+<a href=#449 id=449 data-nosnippet>449</a>            </span>.unwrap()
+<a href=#450 id=450 data-nosnippet>450</a>    }
+<a href=#451 id=451 data-nosnippet>451</a>
+<a href=#452 id=452 data-nosnippet>452</a>    <span class="kw">async fn </span>create_namespace&lt;C: Catalog&gt;(catalog: <span class="kw-2">&amp;</span>C, namespace_ident: <span class="kw-2">&amp;</span>NamespaceIdent) {
+<a href=#453 id=453 data-nosnippet>453</a>        <span class="kw">let _ </span>= catalog
+<a href=#454 id=454 data-nosnippet>454</a>            .create_namespace(namespace_ident, HashMap::new())
+<a href=#455 id=455 data-nosnippet>455</a>            .<span class="kw">await
+<a href=#456 id=456 data-nosnippet>456</a>            </span>.unwrap();
+<a href=#457 id=457 data-nosnippet>457</a>    }
+<a href=#458 id=458 data-nosnippet>458</a>
+<a href=#459 id=459 data-nosnippet>459</a>    <span class="kw">async fn </span>create_namespaces&lt;C: Catalog&gt;(catalog: <span class="kw-2">&amp;</span>C, namespace_idents: <span class="kw-2">&amp;</span>Vec&lt;<span class="kw-2">&amp;</span>NamespaceIdent&gt;) {
+<a href=#460 id=460 data-nosnippet>460</a>        <span class="kw">for </span>namespace_ident <span class="kw">in </span>namespace_idents {
+<a href=#461 id=461 data-nosnippet>461</a>            <span class="kw">let _ </span>= create_namespace(catalog, namespace_ident).<span class="kw">await</span>;
+<a href=#462 id=462 data-nosnippet>462</a>        }
+<a href=#463 id=463 data-nosnippet>463</a>    }
+<a href=#464 id=464 data-nosnippet>464</a>
+<a href=#465 id=465 data-nosnippet>465</a>    <span class="kw">fn </span>to_set&lt;T: Eq + Hash&gt;(vec: Vec&lt;T&gt;) -&gt; HashSet&lt;T&gt; {
+<a href=#466 id=466 data-nosnippet>466</a>        HashSet::from_iter(vec)
+<a href=#467 id=467 data-nosnippet>467</a>    }
+<a href=#468 id=468 data-nosnippet>468</a>
+<a href=#469 id=469 data-nosnippet>469</a>    <span class="kw">fn </span>simple_table_schema() -&gt; Schema {
+<a href=#470 id=470 data-nosnippet>470</a>        Schema::builder()
+<a href=#471 id=471 data-nosnippet>471</a>            .with_fields(<span class="macro">vec!</span>[
+<a href=#472 id=472 data-nosnippet>472</a>                NestedField::required(<span class="number">1</span>, <span class="string">"foo"</span>, Type::Primitive(PrimitiveType::Int)).into(),
+<a href=#473 id=473 data-nosnippet>473</a>            ])
+<a href=#474 id=474 data-nosnippet>474</a>            .build()
+<a href=#475 id=475 data-nosnippet>475</a>            .unwrap()
+<a href=#476 id=476 data-nosnippet>476</a>    }
+<a href=#477 id=477 data-nosnippet>477</a>
+<a href=#478 id=478 data-nosnippet>478</a>    <span class="kw">async fn </span>create_table&lt;C: Catalog&gt;(catalog: <span class="kw-2">&amp;</span>C, table_ident: <span class="kw-2">&amp;</span>TableIdent) -&gt; Table {
+<a href=#479 id=479 data-nosnippet>479</a>        catalog
+<a href=#480 id=480 data-nosnippet>480</a>            .create_table(
+<a href=#481 id=481 data-nosnippet>481</a>                <span class="kw-2">&amp;</span>table_ident.namespace,
+<a href=#482 id=482 data-nosnippet>482</a>                TableCreation::builder()
+<a href=#483 id=483 data-nosnippet>483</a>                    .name(table_ident.name().into())
+<a href=#484 id=484 data-nosnippet>484</a>                    .schema(simple_table_schema())
+<a href=#485 id=485 data-nosnippet>485</a>                    .build(),
+<a href=#486 id=486 data-nosnippet>486</a>            )
+<a href=#487 id=487 data-nosnippet>487</a>            .<span class="kw">await
+<a href=#488 id=488 data-nosnippet>488</a>            </span>.unwrap()
+<a href=#489 id=489 data-nosnippet>489</a>    }
+<a href=#490 id=490 data-nosnippet>490</a>
+<a href=#491 id=491 data-nosnippet>491</a>    <span class="kw">async fn </span>create_tables&lt;C: Catalog&gt;(catalog: <span class="kw-2">&amp;</span>C, table_idents: Vec&lt;<span class="kw-2">&amp;</span>TableIdent&gt;) {
+<a href=#492 id=492 data-nosnippet>492</a>        <span class="kw">for </span>table_ident <span class="kw">in </span>table_idents {
+<a href=#493 id=493 data-nosnippet>493</a>            create_table(catalog, table_ident).<span class="kw">await</span>;
+<a href=#494 id=494 data-nosnippet>494</a>        }
+<a href=#495 id=495 data-nosnippet>495</a>    }
+<a href=#496 id=496 data-nosnippet>496</a>
+<a href=#497 id=497 data-nosnippet>497</a>    <span class="kw">async fn </span>create_table_with_namespace&lt;C: Catalog&gt;(catalog: <span class="kw-2">&amp;</span>C) -&gt; Table {
+<a href=#498 id=498 data-nosnippet>498</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
+<a href=#499 id=499 data-nosnippet>499</a>        create_namespace(catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#500 id=500 data-nosnippet>500</a>
+<a href=#501 id=501 data-nosnippet>501</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident, <span class="string">"test"</span>.to_string());
+<a href=#502 id=502 data-nosnippet>502</a>        create_table(catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await
+<a href=#503 id=503 data-nosnippet>503</a>    </span>}
+<a href=#504 id=504 data-nosnippet>504</a>
+<a href=#505 id=505 data-nosnippet>505</a>    <span class="kw">fn </span>assert_table_eq(table: <span class="kw-2">&amp;</span>Table, expected_table_ident: <span class="kw-2">&amp;</span>TableIdent, expected_schema: <span class="kw-2">&amp;</span>Schema) {
+<a href=#506 id=506 data-nosnippet>506</a>        <span class="macro">assert_eq!</span>(table.identifier(), expected_table_ident);
+<a href=#507 id=507 data-nosnippet>507</a>
+<a href=#508 id=508 data-nosnippet>508</a>        <span class="kw">let </span>metadata = table.metadata();
 <a href=#509 id=509 data-nosnippet>509</a>
-<a href=#510 id=510 data-nosnippet>510</a>    <span class="kw">fn </span>assert_table_eq(table: <span class="kw-2">&amp;</span>Table, expected_table_ident: <span class="kw-2">&amp;</span>TableIdent, expected_schema: <span class="kw-2">&amp;</span>Schema) {
-<a href=#511 id=511 data-nosnippet>511</a>        <span class="macro">assert_eq!</span>(table.identifier(), expected_table_ident);
-<a href=#512 id=512 data-nosnippet>512</a>
-<a href=#513 id=513 data-nosnippet>513</a>        <span class="kw">let </span>metadata = table.metadata();
-<a href=#514 id=514 data-nosnippet>514</a>
-<a href=#515 id=515 data-nosnippet>515</a>        <span class="macro">assert_eq!</span>(metadata.current_schema().as_ref(), expected_schema);
+<a href=#510 id=510 data-nosnippet>510</a>        <span class="macro">assert_eq!</span>(metadata.current_schema().as_ref(), expected_schema);
+<a href=#511 id=511 data-nosnippet>511</a>
+<a href=#512 id=512 data-nosnippet>512</a>        <span class="kw">let </span>expected_partition_spec = PartitionSpec::builder((<span class="kw-2">*</span>expected_schema).clone())
+<a href=#513 id=513 data-nosnippet>513</a>            .with_spec_id(<span class="number">0</span>)
+<a href=#514 id=514 data-nosnippet>514</a>            .build()
+<a href=#515 id=515 data-nosnippet>515</a>            .unwrap();
 <a href=#516 id=516 data-nosnippet>516</a>
-<a href=#517 id=517 data-nosnippet>517</a>        <span class="kw">let </span>expected_partition_spec = PartitionSpec::builder((<span class="kw-2">*</span>expected_schema).clone())
-<a href=#518 id=518 data-nosnippet>518</a>            .with_spec_id(<span class="number">0</span>)
-<a href=#519 id=519 data-nosnippet>519</a>            .build()
-<a href=#520 id=520 data-nosnippet>520</a>            .unwrap();
-<a href=#521 id=521 data-nosnippet>521</a>
-<a href=#522 id=522 data-nosnippet>522</a>        <span class="macro">assert_eq!</span>(
-<a href=#523 id=523 data-nosnippet>523</a>            metadata
-<a href=#524 id=524 data-nosnippet>524</a>                .partition_specs_iter()
-<a href=#525 id=525 data-nosnippet>525</a>                .map(|p| p.as_ref())
-<a href=#526 id=526 data-nosnippet>526</a>                .collect_vec(),
-<a href=#527 id=527 data-nosnippet>527</a>            <span class="macro">vec!</span>[<span class="kw-2">&amp;</span>expected_partition_spec]
-<a href=#528 id=528 data-nosnippet>528</a>        );
-<a href=#529 id=529 data-nosnippet>529</a>
-<a href=#530 id=530 data-nosnippet>530</a>        <span class="kw">let </span>expected_sorted_order = SortOrder::builder()
-<a href=#531 id=531 data-nosnippet>531</a>            .with_order_id(<span class="number">0</span>)
-<a href=#532 id=532 data-nosnippet>532</a>            .with_fields(<span class="macro">vec!</span>[])
-<a href=#533 id=533 data-nosnippet>533</a>            .build(expected_schema)
-<a href=#534 id=534 data-nosnippet>534</a>            .unwrap();
-<a href=#535 id=535 data-nosnippet>535</a>
-<a href=#536 id=536 data-nosnippet>536</a>        <span class="macro">assert_eq!</span>(
-<a href=#537 id=537 data-nosnippet>537</a>            metadata
-<a href=#538 id=538 data-nosnippet>538</a>                .sort_orders_iter()
-<a href=#539 id=539 data-nosnippet>539</a>                .map(|s| s.as_ref())
-<a href=#540 id=540 data-nosnippet>540</a>                .collect_vec(),
-<a href=#541 id=541 data-nosnippet>541</a>            <span class="macro">vec!</span>[<span class="kw-2">&amp;</span>expected_sorted_order]
-<a href=#542 id=542 data-nosnippet>542</a>        );
+<a href=#517 id=517 data-nosnippet>517</a>        <span class="macro">assert_eq!</span>(
+<a href=#518 id=518 data-nosnippet>518</a>            metadata
+<a href=#519 id=519 data-nosnippet>519</a>                .partition_specs_iter()
+<a href=#520 id=520 data-nosnippet>520</a>                .map(|p| p.as_ref())
+<a href=#521 id=521 data-nosnippet>521</a>                .collect_vec(),
+<a href=#522 id=522 data-nosnippet>522</a>            <span class="macro">vec!</span>[<span class="kw-2">&amp;</span>expected_partition_spec]
+<a href=#523 id=523 data-nosnippet>523</a>        );
+<a href=#524 id=524 data-nosnippet>524</a>
+<a href=#525 id=525 data-nosnippet>525</a>        <span class="kw">let </span>expected_sorted_order = SortOrder::builder()
+<a href=#526 id=526 data-nosnippet>526</a>            .with_order_id(<span class="number">0</span>)
+<a href=#527 id=527 data-nosnippet>527</a>            .with_fields(<span class="macro">vec!</span>[])
+<a href=#528 id=528 data-nosnippet>528</a>            .build(expected_schema)
+<a href=#529 id=529 data-nosnippet>529</a>            .unwrap();
+<a href=#530 id=530 data-nosnippet>530</a>
+<a href=#531 id=531 data-nosnippet>531</a>        <span class="macro">assert_eq!</span>(
+<a href=#532 id=532 data-nosnippet>532</a>            metadata
+<a href=#533 id=533 data-nosnippet>533</a>                .sort_orders_iter()
+<a href=#534 id=534 data-nosnippet>534</a>                .map(|s| s.as_ref())
+<a href=#535 id=535 data-nosnippet>535</a>                .collect_vec(),
+<a href=#536 id=536 data-nosnippet>536</a>            <span class="macro">vec!</span>[<span class="kw-2">&amp;</span>expected_sorted_order]
+<a href=#537 id=537 data-nosnippet>537</a>        );
+<a href=#538 id=538 data-nosnippet>538</a>
+<a href=#539 id=539 data-nosnippet>539</a>        <span class="macro">assert_eq!</span>(metadata.properties(), <span class="kw-2">&amp;</span>HashMap::new());
+<a href=#540 id=540 data-nosnippet>540</a>
+<a href=#541 id=541 data-nosnippet>541</a>        <span class="macro">assert!</span>(!table.readonly());
+<a href=#542 id=542 data-nosnippet>542</a>    }
 <a href=#543 id=543 data-nosnippet>543</a>
-<a href=#544 id=544 data-nosnippet>544</a>        <span class="macro">assert_eq!</span>(metadata.properties(), <span class="kw-2">&amp;</span>HashMap::new());
+<a href=#544 id=544 data-nosnippet>544</a>    <span class="kw">const </span>UUID_REGEX_STR: <span class="kw-2">&amp;</span>str = <span class="string">"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"</span>;
 <a href=#545 id=545 data-nosnippet>545</a>
-<a href=#546 id=546 data-nosnippet>546</a>        <span class="macro">assert!</span>(!table.readonly());
-<a href=#547 id=547 data-nosnippet>547</a>    }
-<a href=#548 id=548 data-nosnippet>548</a>
-<a href=#549 id=549 data-nosnippet>549</a>    <span class="kw">const </span>UUID_REGEX_STR: <span class="kw-2">&amp;</span>str = <span class="string">"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"</span>;
-<a href=#550 id=550 data-nosnippet>550</a>
-<a href=#551 id=551 data-nosnippet>551</a>    <span class="kw">fn </span>assert_table_metadata_location_matches(table: <span class="kw-2">&amp;</span>Table, regex_str: <span class="kw-2">&amp;</span>str) {
-<a href=#552 id=552 data-nosnippet>552</a>        <span class="kw">let </span>actual = table.metadata_location().unwrap().to_string();
-<a href=#553 id=553 data-nosnippet>553</a>        <span class="kw">let </span>regex = Regex::new(regex_str).unwrap();
-<a href=#554 id=554 data-nosnippet>554</a>        <span class="macro">assert!</span>(
-<a href=#555 id=555 data-nosnippet>555</a>            regex.is_match(<span class="kw-2">&amp;</span>actual),
-<a href=#556 id=556 data-nosnippet>556</a>            <span class="string">"Expected metadata location to match regex, but got location: {actual} and regex: {regex}"
-<a href=#557 id=557 data-nosnippet>557</a>        </span>)
-<a href=#558 id=558 data-nosnippet>558</a>    }
-<a href=#559 id=559 data-nosnippet>559</a>
-<a href=#560 id=560 data-nosnippet>560</a>    <span class="attr">#[tokio::test]
-<a href=#561 id=561 data-nosnippet>561</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_empty_vector() {
-<a href=#562 id=562 data-nosnippet>562</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#563 id=563 data-nosnippet>563</a>
-<a href=#564 id=564 data-nosnippet>564</a>        <span class="macro">assert_eq!</span>(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[]);
-<a href=#565 id=565 data-nosnippet>565</a>    }
-<a href=#566 id=566 data-nosnippet>566</a>
-<a href=#567 id=567 data-nosnippet>567</a>    <span class="attr">#[tokio::test]
-<a href=#568 id=568 data-nosnippet>568</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_single_namespace() {
-<a href=#569 id=569 data-nosnippet>569</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#570 id=570 data-nosnippet>570</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
-<a href=#571 id=571 data-nosnippet>571</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#546 id=546 data-nosnippet>546</a>    <span class="kw">fn </span>assert_table_metadata_location_matches(table: <span class="kw-2">&amp;</span>Table, regex_str: <span class="kw-2">&amp;</span>str) {
+<a href=#547 id=547 data-nosnippet>547</a>        <span class="kw">let </span>actual = table.metadata_location().unwrap().to_string();
+<a href=#548 id=548 data-nosnippet>548</a>        <span class="kw">let </span>regex = Regex::new(regex_str).unwrap();
+<a href=#549 id=549 data-nosnippet>549</a>        <span class="macro">assert!</span>(
+<a href=#550 id=550 data-nosnippet>550</a>            regex.is_match(<span class="kw-2">&amp;</span>actual),
+<a href=#551 id=551 data-nosnippet>551</a>            <span class="string">"Expected metadata location to match regex, but got location: {actual} and regex: {regex}"
+<a href=#552 id=552 data-nosnippet>552</a>        </span>)
+<a href=#553 id=553 data-nosnippet>553</a>    }
+<a href=#554 id=554 data-nosnippet>554</a>
+<a href=#555 id=555 data-nosnippet>555</a>    <span class="attr">#[tokio::test]
+<a href=#556 id=556 data-nosnippet>556</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_empty_vector() {
+<a href=#557 id=557 data-nosnippet>557</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#558 id=558 data-nosnippet>558</a>
+<a href=#559 id=559 data-nosnippet>559</a>        <span class="macro">assert_eq!</span>(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[]);
+<a href=#560 id=560 data-nosnippet>560</a>    }
+<a href=#561 id=561 data-nosnippet>561</a>
+<a href=#562 id=562 data-nosnippet>562</a>    <span class="attr">#[tokio::test]
+<a href=#563 id=563 data-nosnippet>563</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_single_namespace() {
+<a href=#564 id=564 data-nosnippet>564</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#565 id=565 data-nosnippet>565</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
+<a href=#566 id=566 data-nosnippet>566</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#567 id=567 data-nosnippet>567</a>
+<a href=#568 id=568 data-nosnippet>568</a>        <span class="macro">assert_eq!</span>(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[
+<a href=#569 id=569 data-nosnippet>569</a>            namespace_ident
+<a href=#570 id=570 data-nosnippet>570</a>        ]);
+<a href=#571 id=571 data-nosnippet>571</a>    }
 <a href=#572 id=572 data-nosnippet>572</a>
-<a href=#573 id=573 data-nosnippet>573</a>        <span class="macro">assert_eq!</span>(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[
-<a href=#574 id=574 data-nosnippet>574</a>            namespace_ident
-<a href=#575 id=575 data-nosnippet>575</a>        ]);
-<a href=#576 id=576 data-nosnippet>576</a>    }
-<a href=#577 id=577 data-nosnippet>577</a>
-<a href=#578 id=578 data-nosnippet>578</a>    <span class="attr">#[tokio::test]
-<a href=#579 id=579 data-nosnippet>579</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_multiple_namespaces() {
-<a href=#580 id=580 data-nosnippet>580</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#581 id=581 data-nosnippet>581</a>        <span class="kw">let </span>namespace_ident_1 = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#582 id=582 data-nosnippet>582</a>        <span class="kw">let </span>namespace_ident_2 = NamespaceIdent::new(<span class="string">"b"</span>.into());
-<a href=#583 id=583 data-nosnippet>583</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_1, <span class="kw-2">&amp;</span>namespace_ident_2]).<span class="kw">await</span>;
-<a href=#584 id=584 data-nosnippet>584</a>
-<a href=#585 id=585 data-nosnippet>585</a>        <span class="macro">assert_eq!</span>(
-<a href=#586 id=586 data-nosnippet>586</a>            to_set(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap()),
-<a href=#587 id=587 data-nosnippet>587</a>            to_set(<span class="macro">vec!</span>[namespace_ident_1, namespace_ident_2])
-<a href=#588 id=588 data-nosnippet>588</a>        );
-<a href=#589 id=589 data-nosnippet>589</a>    }
-<a href=#590 id=590 data-nosnippet>590</a>
-<a href=#591 id=591 data-nosnippet>591</a>    <span class="attr">#[tokio::test]
-<a href=#592 id=592 data-nosnippet>592</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_only_top_level_namespaces() {
-<a href=#593 id=593 data-nosnippet>593</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#594 id=594 data-nosnippet>594</a>        <span class="kw">let </span>namespace_ident_1 = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#595 id=595 data-nosnippet>595</a>        <span class="kw">let </span>namespace_ident_2 = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#596 id=596 data-nosnippet>596</a>        <span class="kw">let </span>namespace_ident_3 = NamespaceIdent::new(<span class="string">"b"</span>.into());
-<a href=#597 id=597 data-nosnippet>597</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
-<a href=#598 id=598 data-nosnippet>598</a>            <span class="kw-2">&amp;</span>namespace_ident_1,
-<a href=#599 id=599 data-nosnippet>599</a>            <span class="kw-2">&amp;</span>namespace_ident_2,
-<a href=#600 id=600 data-nosnippet>600</a>            <span class="kw-2">&amp;</span>namespace_ident_3,
-<a href=#601 id=601 data-nosnippet>601</a>        ])
-<a href=#602 id=602 data-nosnippet>602</a>        .<span class="kw">await</span>;
-<a href=#603 id=603 data-nosnippet>603</a>
-<a href=#604 id=604 data-nosnippet>604</a>        <span class="macro">assert_eq!</span>(
-<a href=#605 id=605 data-nosnippet>605</a>            to_set(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap()),
-<a href=#606 id=606 data-nosnippet>606</a>            to_set(<span class="macro">vec!</span>[namespace_ident_1, namespace_ident_3])
-<a href=#607 id=607 data-nosnippet>607</a>        );
-<a href=#608 id=608 data-nosnippet>608</a>    }
-<a href=#609 id=609 data-nosnippet>609</a>
-<a href=#610 id=610 data-nosnippet>610</a>    <span class="attr">#[tokio::test]
-<a href=#611 id=611 data-nosnippet>611</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_no_namespaces_under_parent() {
-<a href=#612 id=612 data-nosnippet>612</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#613 id=613 data-nosnippet>613</a>        <span class="kw">let </span>namespace_ident_1 = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#614 id=614 data-nosnippet>614</a>        <span class="kw">let </span>namespace_ident_2 = NamespaceIdent::new(<span class="string">"b"</span>.into());
-<a href=#615 id=615 data-nosnippet>615</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_1, <span class="kw-2">&amp;</span>namespace_ident_2]).<span class="kw">await</span>;
-<a href=#616 id=616 data-nosnippet>616</a>
-<a href=#617 id=617 data-nosnippet>617</a>        <span class="macro">assert_eq!</span>(
-<a href=#618 id=618 data-nosnippet>618</a>            catalog
-<a href=#619 id=619 data-nosnippet>619</a>                .list_namespaces(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>namespace_ident_1))
-<a href=#620 id=620 data-nosnippet>620</a>                .<span class="kw">await
-<a href=#621 id=621 data-nosnippet>621</a>                </span>.unwrap(),
-<a href=#622 id=622 data-nosnippet>622</a>            <span class="macro">vec!</span>[]
-<a href=#623 id=623 data-nosnippet>623</a>        );
-<a href=#624 id=624 data-nosnippet>624</a>    }
-<a href=#625 id=625 data-nosnippet>625</a>
-<a href=#626 id=626 data-nosnippet>626</a>    <span class="attr">#[tokio::test]
-<a href=#627 id=627 data-nosnippet>627</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_namespace_under_parent() {
-<a href=#628 id=628 data-nosnippet>628</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#629 id=629 data-nosnippet>629</a>        <span class="kw">let </span>namespace_ident_1 = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#630 id=630 data-nosnippet>630</a>        <span class="kw">let </span>namespace_ident_2 = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#631 id=631 data-nosnippet>631</a>        <span class="kw">let </span>namespace_ident_3 = NamespaceIdent::new(<span class="string">"c"</span>.into());
-<a href=#632 id=632 data-nosnippet>632</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
-<a href=#633 id=633 data-nosnippet>633</a>            <span class="kw-2">&amp;</span>namespace_ident_1,
-<a href=#634 id=634 data-nosnippet>634</a>            <span class="kw-2">&amp;</span>namespace_ident_2,
-<a href=#635 id=635 data-nosnippet>635</a>            <span class="kw-2">&amp;</span>namespace_ident_3,
-<a href=#636 id=636 data-nosnippet>636</a>        ])
-<a href=#637 id=637 data-nosnippet>637</a>        .<span class="kw">await</span>;
+<a href=#573 id=573 data-nosnippet>573</a>    <span class="attr">#[tokio::test]
+<a href=#574 id=574 data-nosnippet>574</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_multiple_namespaces() {
+<a href=#575 id=575 data-nosnippet>575</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#576 id=576 data-nosnippet>576</a>        <span class="kw">let </span>namespace_ident_1 = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#577 id=577 data-nosnippet>577</a>        <span class="kw">let </span>namespace_ident_2 = NamespaceIdent::new(<span class="string">"b"</span>.into());
+<a href=#578 id=578 data-nosnippet>578</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_1, <span class="kw-2">&amp;</span>namespace_ident_2]).<span class="kw">await</span>;
+<a href=#579 id=579 data-nosnippet>579</a>
+<a href=#580 id=580 data-nosnippet>580</a>        <span class="macro">assert_eq!</span>(
+<a href=#581 id=581 data-nosnippet>581</a>            to_set(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap()),
+<a href=#582 id=582 data-nosnippet>582</a>            to_set(<span class="macro">vec!</span>[namespace_ident_1, namespace_ident_2])
+<a href=#583 id=583 data-nosnippet>583</a>        );
+<a href=#584 id=584 data-nosnippet>584</a>    }
+<a href=#585 id=585 data-nosnippet>585</a>
+<a href=#586 id=586 data-nosnippet>586</a>    <span class="attr">#[tokio::test]
+<a href=#587 id=587 data-nosnippet>587</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_only_top_level_namespaces() {
+<a href=#588 id=588 data-nosnippet>588</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#589 id=589 data-nosnippet>589</a>        <span class="kw">let </span>namespace_ident_1 = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#590 id=590 data-nosnippet>590</a>        <span class="kw">let </span>namespace_ident_2 = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#591 id=591 data-nosnippet>591</a>        <span class="kw">let </span>namespace_ident_3 = NamespaceIdent::new(<span class="string">"b"</span>.into());
+<a href=#592 id=592 data-nosnippet>592</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
+<a href=#593 id=593 data-nosnippet>593</a>            <span class="kw-2">&amp;</span>namespace_ident_1,
+<a href=#594 id=594 data-nosnippet>594</a>            <span class="kw-2">&amp;</span>namespace_ident_2,
+<a href=#595 id=595 data-nosnippet>595</a>            <span class="kw-2">&amp;</span>namespace_ident_3,
+<a href=#596 id=596 data-nosnippet>596</a>        ])
+<a href=#597 id=597 data-nosnippet>597</a>        .<span class="kw">await</span>;
+<a href=#598 id=598 data-nosnippet>598</a>
+<a href=#599 id=599 data-nosnippet>599</a>        <span class="macro">assert_eq!</span>(
+<a href=#600 id=600 data-nosnippet>600</a>            to_set(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap()),
+<a href=#601 id=601 data-nosnippet>601</a>            to_set(<span class="macro">vec!</span>[namespace_ident_1, namespace_ident_3])
+<a href=#602 id=602 data-nosnippet>602</a>        );
+<a href=#603 id=603 data-nosnippet>603</a>    }
+<a href=#604 id=604 data-nosnippet>604</a>
+<a href=#605 id=605 data-nosnippet>605</a>    <span class="attr">#[tokio::test]
+<a href=#606 id=606 data-nosnippet>606</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_no_namespaces_under_parent() {
+<a href=#607 id=607 data-nosnippet>607</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#608 id=608 data-nosnippet>608</a>        <span class="kw">let </span>namespace_ident_1 = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#609 id=609 data-nosnippet>609</a>        <span class="kw">let </span>namespace_ident_2 = NamespaceIdent::new(<span class="string">"b"</span>.into());
+<a href=#610 id=610 data-nosnippet>610</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_1, <span class="kw-2">&amp;</span>namespace_ident_2]).<span class="kw">await</span>;
+<a href=#611 id=611 data-nosnippet>611</a>
+<a href=#612 id=612 data-nosnippet>612</a>        <span class="macro">assert_eq!</span>(
+<a href=#613 id=613 data-nosnippet>613</a>            catalog
+<a href=#614 id=614 data-nosnippet>614</a>                .list_namespaces(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>namespace_ident_1))
+<a href=#615 id=615 data-nosnippet>615</a>                .<span class="kw">await
+<a href=#616 id=616 data-nosnippet>616</a>                </span>.unwrap(),
+<a href=#617 id=617 data-nosnippet>617</a>            <span class="macro">vec!</span>[]
+<a href=#618 id=618 data-nosnippet>618</a>        );
+<a href=#619 id=619 data-nosnippet>619</a>    }
+<a href=#620 id=620 data-nosnippet>620</a>
+<a href=#621 id=621 data-nosnippet>621</a>    <span class="attr">#[tokio::test]
+<a href=#622 id=622 data-nosnippet>622</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_namespace_under_parent() {
+<a href=#623 id=623 data-nosnippet>623</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#624 id=624 data-nosnippet>624</a>        <span class="kw">let </span>namespace_ident_1 = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#625 id=625 data-nosnippet>625</a>        <span class="kw">let </span>namespace_ident_2 = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#626 id=626 data-nosnippet>626</a>        <span class="kw">let </span>namespace_ident_3 = NamespaceIdent::new(<span class="string">"c"</span>.into());
+<a href=#627 id=627 data-nosnippet>627</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
+<a href=#628 id=628 data-nosnippet>628</a>            <span class="kw-2">&amp;</span>namespace_ident_1,
+<a href=#629 id=629 data-nosnippet>629</a>            <span class="kw-2">&amp;</span>namespace_ident_2,
+<a href=#630 id=630 data-nosnippet>630</a>            <span class="kw-2">&amp;</span>namespace_ident_3,
+<a href=#631 id=631 data-nosnippet>631</a>        ])
+<a href=#632 id=632 data-nosnippet>632</a>        .<span class="kw">await</span>;
+<a href=#633 id=633 data-nosnippet>633</a>
+<a href=#634 id=634 data-nosnippet>634</a>        <span class="macro">assert_eq!</span>(
+<a href=#635 id=635 data-nosnippet>635</a>            to_set(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap()),
+<a href=#636 id=636 data-nosnippet>636</a>            to_set(<span class="macro">vec!</span>[namespace_ident_1.clone(), namespace_ident_3])
+<a href=#637 id=637 data-nosnippet>637</a>        );
 <a href=#638 id=638 data-nosnippet>638</a>
 <a href=#639 id=639 data-nosnippet>639</a>        <span class="macro">assert_eq!</span>(
-<a href=#640 id=640 data-nosnippet>640</a>            to_set(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap()),
-<a href=#641 id=641 data-nosnippet>641</a>            to_set(<span class="macro">vec!</span>[namespace_ident_1.clone(), namespace_ident_3])
-<a href=#642 id=642 data-nosnippet>642</a>        );
-<a href=#643 id=643 data-nosnippet>643</a>
-<a href=#644 id=644 data-nosnippet>644</a>        <span class="macro">assert_eq!</span>(
-<a href=#645 id=645 data-nosnippet>645</a>            catalog
-<a href=#646 id=646 data-nosnippet>646</a>                .list_namespaces(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>namespace_ident_1))
-<a href=#647 id=647 data-nosnippet>647</a>                .<span class="kw">await
-<a href=#648 id=648 data-nosnippet>648</a>                </span>.unwrap(),
-<a href=#649 id=649 data-nosnippet>649</a>            <span class="macro">vec!</span>[namespace_ident_2]
-<a href=#650 id=650 data-nosnippet>650</a>        );
-<a href=#651 id=651 data-nosnippet>651</a>    }
-<a href=#652 id=652 data-nosnippet>652</a>
-<a href=#653 id=653 data-nosnippet>653</a>    <span class="attr">#[tokio::test]
-<a href=#654 id=654 data-nosnippet>654</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_multiple_namespaces_under_parent() {
-<a href=#655 id=655 data-nosnippet>655</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#656 id=656 data-nosnippet>656</a>        <span class="kw">let </span>namespace_ident_1 = NamespaceIdent::new(<span class="string">"a"</span>.to_string());
-<a href=#657 id=657 data-nosnippet>657</a>        <span class="kw">let </span>namespace_ident_2 = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"a"</span>]).unwrap();
-<a href=#658 id=658 data-nosnippet>658</a>        <span class="kw">let </span>namespace_ident_3 = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#659 id=659 data-nosnippet>659</a>        <span class="kw">let </span>namespace_ident_4 = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"c"</span>]).unwrap();
-<a href=#660 id=660 data-nosnippet>660</a>        <span class="kw">let </span>namespace_ident_5 = NamespaceIdent::new(<span class="string">"b"</span>.into());
-<a href=#661 id=661 data-nosnippet>661</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
-<a href=#662 id=662 data-nosnippet>662</a>            <span class="kw-2">&amp;</span>namespace_ident_1,
-<a href=#663 id=663 data-nosnippet>663</a>            <span class="kw-2">&amp;</span>namespace_ident_2,
-<a href=#664 id=664 data-nosnippet>664</a>            <span class="kw-2">&amp;</span>namespace_ident_3,
-<a href=#665 id=665 data-nosnippet>665</a>            <span class="kw-2">&amp;</span>namespace_ident_4,
-<a href=#666 id=666 data-nosnippet>666</a>            <span class="kw-2">&amp;</span>namespace_ident_5,
-<a href=#667 id=667 data-nosnippet>667</a>        ])
-<a href=#668 id=668 data-nosnippet>668</a>        .<span class="kw">await</span>;
-<a href=#669 id=669 data-nosnippet>669</a>
-<a href=#670 id=670 data-nosnippet>670</a>        <span class="macro">assert_eq!</span>(
-<a href=#671 id=671 data-nosnippet>671</a>            to_set(
-<a href=#672 id=672 data-nosnippet>672</a>                catalog
-<a href=#673 id=673 data-nosnippet>673</a>                    .list_namespaces(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>namespace_ident_1))
-<a href=#674 id=674 data-nosnippet>674</a>                    .<span class="kw">await
-<a href=#675 id=675 data-nosnippet>675</a>                    </span>.unwrap()
-<a href=#676 id=676 data-nosnippet>676</a>            ),
-<a href=#677 id=677 data-nosnippet>677</a>            to_set(<span class="macro">vec!</span>[
-<a href=#678 id=678 data-nosnippet>678</a>                namespace_ident_2,
-<a href=#679 id=679 data-nosnippet>679</a>                namespace_ident_3,
-<a href=#680 id=680 data-nosnippet>680</a>                namespace_ident_4,
-<a href=#681 id=681 data-nosnippet>681</a>            ])
-<a href=#682 id=682 data-nosnippet>682</a>        );
-<a href=#683 id=683 data-nosnippet>683</a>    }
-<a href=#684 id=684 data-nosnippet>684</a>
-<a href=#685 id=685 data-nosnippet>685</a>    <span class="attr">#[tokio::test]
-<a href=#686 id=686 data-nosnippet>686</a>    </span><span class="kw">async fn </span>test_namespace_exists_returns_false() {
-<a href=#687 id=687 data-nosnippet>687</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#688 id=688 data-nosnippet>688</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#689 id=689 data-nosnippet>689</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#690 id=690 data-nosnippet>690</a>
-<a href=#691 id=691 data-nosnippet>691</a>        <span class="macro">assert!</span>(
-<a href=#692 id=692 data-nosnippet>692</a>            !catalog
-<a href=#693 id=693 data-nosnippet>693</a>                .namespace_exists(<span class="kw-2">&amp;</span>NamespaceIdent::new(<span class="string">"b"</span>.into()))
-<a href=#694 id=694 data-nosnippet>694</a>                .<span class="kw">await
-<a href=#695 id=695 data-nosnippet>695</a>                </span>.unwrap()
-<a href=#696 id=696 data-nosnippet>696</a>        );
-<a href=#697 id=697 data-nosnippet>697</a>    }
-<a href=#698 id=698 data-nosnippet>698</a>
-<a href=#699 id=699 data-nosnippet>699</a>    <span class="attr">#[tokio::test]
-<a href=#700 id=700 data-nosnippet>700</a>    </span><span class="kw">async fn </span>test_namespace_exists_returns_true() {
-<a href=#701 id=701 data-nosnippet>701</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#702 id=702 data-nosnippet>702</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#703 id=703 data-nosnippet>703</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#704 id=704 data-nosnippet>704</a>
-<a href=#705 id=705 data-nosnippet>705</a>        <span class="macro">assert!</span>(catalog.namespace_exists(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap());
-<a href=#706 id=706 data-nosnippet>706</a>    }
+<a href=#640 id=640 data-nosnippet>640</a>            catalog
+<a href=#641 id=641 data-nosnippet>641</a>                .list_namespaces(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>namespace_ident_1))
+<a href=#642 id=642 data-nosnippet>642</a>                .<span class="kw">await
+<a href=#643 id=643 data-nosnippet>643</a>                </span>.unwrap(),
+<a href=#644 id=644 data-nosnippet>644</a>            <span class="macro">vec!</span>[namespace_ident_2]
+<a href=#645 id=645 data-nosnippet>645</a>        );
+<a href=#646 id=646 data-nosnippet>646</a>    }
+<a href=#647 id=647 data-nosnippet>647</a>
+<a href=#648 id=648 data-nosnippet>648</a>    <span class="attr">#[tokio::test]
+<a href=#649 id=649 data-nosnippet>649</a>    </span><span class="kw">async fn </span>test_list_namespaces_returns_multiple_namespaces_under_parent() {
+<a href=#650 id=650 data-nosnippet>650</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#651 id=651 data-nosnippet>651</a>        <span class="kw">let </span>namespace_ident_1 = NamespaceIdent::new(<span class="string">"a"</span>.to_string());
+<a href=#652 id=652 data-nosnippet>652</a>        <span class="kw">let </span>namespace_ident_2 = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"a"</span>]).unwrap();
+<a href=#653 id=653 data-nosnippet>653</a>        <span class="kw">let </span>namespace_ident_3 = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#654 id=654 data-nosnippet>654</a>        <span class="kw">let </span>namespace_ident_4 = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"c"</span>]).unwrap();
+<a href=#655 id=655 data-nosnippet>655</a>        <span class="kw">let </span>namespace_ident_5 = NamespaceIdent::new(<span class="string">"b"</span>.into());
+<a href=#656 id=656 data-nosnippet>656</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
+<a href=#657 id=657 data-nosnippet>657</a>            <span class="kw-2">&amp;</span>namespace_ident_1,
+<a href=#658 id=658 data-nosnippet>658</a>            <span class="kw-2">&amp;</span>namespace_ident_2,
+<a href=#659 id=659 data-nosnippet>659</a>            <span class="kw-2">&amp;</span>namespace_ident_3,
+<a href=#660 id=660 data-nosnippet>660</a>            <span class="kw-2">&amp;</span>namespace_ident_4,
+<a href=#661 id=661 data-nosnippet>661</a>            <span class="kw-2">&amp;</span>namespace_ident_5,
+<a href=#662 id=662 data-nosnippet>662</a>        ])
+<a href=#663 id=663 data-nosnippet>663</a>        .<span class="kw">await</span>;
+<a href=#664 id=664 data-nosnippet>664</a>
+<a href=#665 id=665 data-nosnippet>665</a>        <span class="macro">assert_eq!</span>(
+<a href=#666 id=666 data-nosnippet>666</a>            to_set(
+<a href=#667 id=667 data-nosnippet>667</a>                catalog
+<a href=#668 id=668 data-nosnippet>668</a>                    .list_namespaces(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>namespace_ident_1))
+<a href=#669 id=669 data-nosnippet>669</a>                    .<span class="kw">await
+<a href=#670 id=670 data-nosnippet>670</a>                    </span>.unwrap()
+<a href=#671 id=671 data-nosnippet>671</a>            ),
+<a href=#672 id=672 data-nosnippet>672</a>            to_set(<span class="macro">vec!</span>[
+<a href=#673 id=673 data-nosnippet>673</a>                namespace_ident_2,
+<a href=#674 id=674 data-nosnippet>674</a>                namespace_ident_3,
+<a href=#675 id=675 data-nosnippet>675</a>                namespace_ident_4,
+<a href=#676 id=676 data-nosnippet>676</a>            ])
+<a href=#677 id=677 data-nosnippet>677</a>        );
+<a href=#678 id=678 data-nosnippet>678</a>    }
+<a href=#679 id=679 data-nosnippet>679</a>
+<a href=#680 id=680 data-nosnippet>680</a>    <span class="attr">#[tokio::test]
+<a href=#681 id=681 data-nosnippet>681</a>    </span><span class="kw">async fn </span>test_namespace_exists_returns_false() {
+<a href=#682 id=682 data-nosnippet>682</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#683 id=683 data-nosnippet>683</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#684 id=684 data-nosnippet>684</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#685 id=685 data-nosnippet>685</a>
+<a href=#686 id=686 data-nosnippet>686</a>        <span class="macro">assert!</span>(
+<a href=#687 id=687 data-nosnippet>687</a>            !catalog
+<a href=#688 id=688 data-nosnippet>688</a>                .namespace_exists(<span class="kw-2">&amp;</span>NamespaceIdent::new(<span class="string">"b"</span>.into()))
+<a href=#689 id=689 data-nosnippet>689</a>                .<span class="kw">await
+<a href=#690 id=690 data-nosnippet>690</a>                </span>.unwrap()
+<a href=#691 id=691 data-nosnippet>691</a>        );
+<a href=#692 id=692 data-nosnippet>692</a>    }
+<a href=#693 id=693 data-nosnippet>693</a>
+<a href=#694 id=694 data-nosnippet>694</a>    <span class="attr">#[tokio::test]
+<a href=#695 id=695 data-nosnippet>695</a>    </span><span class="kw">async fn </span>test_namespace_exists_returns_true() {
+<a href=#696 id=696 data-nosnippet>696</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#697 id=697 data-nosnippet>697</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#698 id=698 data-nosnippet>698</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#699 id=699 data-nosnippet>699</a>
+<a href=#700 id=700 data-nosnippet>700</a>        <span class="macro">assert!</span>(catalog.namespace_exists(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap());
+<a href=#701 id=701 data-nosnippet>701</a>    }
+<a href=#702 id=702 data-nosnippet>702</a>
+<a href=#703 id=703 data-nosnippet>703</a>    <span class="attr">#[tokio::test]
+<a href=#704 id=704 data-nosnippet>704</a>    </span><span class="kw">async fn </span>test_create_namespace_with_empty_properties() {
+<a href=#705 id=705 data-nosnippet>705</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#706 id=706 data-nosnippet>706</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
 <a href=#707 id=707 data-nosnippet>707</a>
-<a href=#708 id=708 data-nosnippet>708</a>    <span class="attr">#[tokio::test]
-<a href=#709 id=709 data-nosnippet>709</a>    </span><span class="kw">async fn </span>test_create_namespace_with_empty_properties() {
-<a href=#710 id=710 data-nosnippet>710</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#711 id=711 data-nosnippet>711</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#712 id=712 data-nosnippet>712</a>
-<a href=#713 id=713 data-nosnippet>713</a>        <span class="macro">assert_eq!</span>(
-<a href=#714 id=714 data-nosnippet>714</a>            catalog
-<a href=#715 id=715 data-nosnippet>715</a>                .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, HashMap::new())
-<a href=#716 id=716 data-nosnippet>716</a>                .<span class="kw">await
-<a href=#717 id=717 data-nosnippet>717</a>                </span>.unwrap(),
-<a href=#718 id=718 data-nosnippet>718</a>            Namespace::new(namespace_ident.clone())
+<a href=#708 id=708 data-nosnippet>708</a>        <span class="macro">assert_eq!</span>(
+<a href=#709 id=709 data-nosnippet>709</a>            catalog
+<a href=#710 id=710 data-nosnippet>710</a>                .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, HashMap::new())
+<a href=#711 id=711 data-nosnippet>711</a>                .<span class="kw">await
+<a href=#712 id=712 data-nosnippet>712</a>                </span>.unwrap(),
+<a href=#713 id=713 data-nosnippet>713</a>            Namespace::new(namespace_ident.clone())
+<a href=#714 id=714 data-nosnippet>714</a>        );
+<a href=#715 id=715 data-nosnippet>715</a>
+<a href=#716 id=716 data-nosnippet>716</a>        <span class="macro">assert_eq!</span>(
+<a href=#717 id=717 data-nosnippet>717</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(),
+<a href=#718 id=718 data-nosnippet>718</a>            Namespace::with_properties(namespace_ident, HashMap::new())
 <a href=#719 id=719 data-nosnippet>719</a>        );
-<a href=#720 id=720 data-nosnippet>720</a>
-<a href=#721 id=721 data-nosnippet>721</a>        <span class="macro">assert_eq!</span>(
-<a href=#722 id=722 data-nosnippet>722</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(),
-<a href=#723 id=723 data-nosnippet>723</a>            Namespace::with_properties(namespace_ident, HashMap::new())
-<a href=#724 id=724 data-nosnippet>724</a>        );
-<a href=#725 id=725 data-nosnippet>725</a>    }
+<a href=#720 id=720 data-nosnippet>720</a>    }
+<a href=#721 id=721 data-nosnippet>721</a>
+<a href=#722 id=722 data-nosnippet>722</a>    <span class="attr">#[tokio::test]
+<a href=#723 id=723 data-nosnippet>723</a>    </span><span class="kw">async fn </span>test_create_namespace_with_properties() {
+<a href=#724 id=724 data-nosnippet>724</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#725 id=725 data-nosnippet>725</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
 <a href=#726 id=726 data-nosnippet>726</a>
-<a href=#727 id=727 data-nosnippet>727</a>    <span class="attr">#[tokio::test]
-<a href=#728 id=728 data-nosnippet>728</a>    </span><span class="kw">async fn </span>test_create_namespace_with_properties() {
-<a href=#729 id=729 data-nosnippet>729</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#730 id=730 data-nosnippet>730</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
-<a href=#731 id=731 data-nosnippet>731</a>
-<a href=#732 id=732 data-nosnippet>732</a>        <span class="kw">let </span><span class="kw-2">mut </span>properties: HashMap&lt;String, String&gt; = HashMap::new();
-<a href=#733 id=733 data-nosnippet>733</a>        properties.insert(<span class="string">"k"</span>.into(), <span class="string">"v"</span>.into());
-<a href=#734 id=734 data-nosnippet>734</a>
-<a href=#735 id=735 data-nosnippet>735</a>        <span class="macro">assert_eq!</span>(
-<a href=#736 id=736 data-nosnippet>736</a>            catalog
-<a href=#737 id=737 data-nosnippet>737</a>                .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, properties.clone())
-<a href=#738 id=738 data-nosnippet>738</a>                .<span class="kw">await
-<a href=#739 id=739 data-nosnippet>739</a>                </span>.unwrap(),
-<a href=#740 id=740 data-nosnippet>740</a>            Namespace::with_properties(namespace_ident.clone(), properties.clone())
+<a href=#727 id=727 data-nosnippet>727</a>        <span class="kw">let </span><span class="kw-2">mut </span>properties: HashMap&lt;String, String&gt; = HashMap::new();
+<a href=#728 id=728 data-nosnippet>728</a>        properties.insert(<span class="string">"k"</span>.into(), <span class="string">"v"</span>.into());
+<a href=#729 id=729 data-nosnippet>729</a>
+<a href=#730 id=730 data-nosnippet>730</a>        <span class="macro">assert_eq!</span>(
+<a href=#731 id=731 data-nosnippet>731</a>            catalog
+<a href=#732 id=732 data-nosnippet>732</a>                .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, properties.clone())
+<a href=#733 id=733 data-nosnippet>733</a>                .<span class="kw">await
+<a href=#734 id=734 data-nosnippet>734</a>                </span>.unwrap(),
+<a href=#735 id=735 data-nosnippet>735</a>            Namespace::with_properties(namespace_ident.clone(), properties.clone())
+<a href=#736 id=736 data-nosnippet>736</a>        );
+<a href=#737 id=737 data-nosnippet>737</a>
+<a href=#738 id=738 data-nosnippet>738</a>        <span class="macro">assert_eq!</span>(
+<a href=#739 id=739 data-nosnippet>739</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(),
+<a href=#740 id=740 data-nosnippet>740</a>            Namespace::with_properties(namespace_ident, properties)
 <a href=#741 id=741 data-nosnippet>741</a>        );
-<a href=#742 id=742 data-nosnippet>742</a>
-<a href=#743 id=743 data-nosnippet>743</a>        <span class="macro">assert_eq!</span>(
-<a href=#744 id=744 data-nosnippet>744</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(),
-<a href=#745 id=745 data-nosnippet>745</a>            Namespace::with_properties(namespace_ident, properties)
-<a href=#746 id=746 data-nosnippet>746</a>        );
-<a href=#747 id=747 data-nosnippet>747</a>    }
-<a href=#748 id=748 data-nosnippet>748</a>
-<a href=#749 id=749 data-nosnippet>749</a>    <span class="attr">#[tokio::test]
-<a href=#750 id=750 data-nosnippet>750</a>    </span><span class="kw">async fn </span>test_create_namespace_throws_error_if_namespace_already_exists() {
-<a href=#751 id=751 data-nosnippet>751</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#752 id=752 data-nosnippet>752</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#753 id=753 data-nosnippet>753</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#754 id=754 data-nosnippet>754</a>
-<a href=#755 id=755 data-nosnippet>755</a>        <span class="macro">assert_eq!</span>(
-<a href=#756 id=756 data-nosnippet>756</a>            catalog
-<a href=#757 id=757 data-nosnippet>757</a>                .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, HashMap::new())
-<a href=#758 id=758 data-nosnippet>758</a>                .<span class="kw">await
-<a href=#759 id=759 data-nosnippet>759</a>                </span>.unwrap_err()
-<a href=#760 id=760 data-nosnippet>760</a>                .to_string(),
-<a href=#761 id=761 data-nosnippet>761</a>            <span class="macro">format!</span>(
-<a href=#762 id=762 data-nosnippet>762</a>                <span class="string">"NamespaceAlreadyExists =&gt; Cannot create namespace {:?}. Namespace already exists."</span>,
-<a href=#763 id=763 data-nosnippet>763</a>                <span class="kw-2">&amp;</span>namespace_ident
-<a href=#764 id=764 data-nosnippet>764</a>            )
+<a href=#742 id=742 data-nosnippet>742</a>    }
+<a href=#743 id=743 data-nosnippet>743</a>
+<a href=#744 id=744 data-nosnippet>744</a>    <span class="attr">#[tokio::test]
+<a href=#745 id=745 data-nosnippet>745</a>    </span><span class="kw">async fn </span>test_create_namespace_throws_error_if_namespace_already_exists() {
+<a href=#746 id=746 data-nosnippet>746</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#747 id=747 data-nosnippet>747</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#748 id=748 data-nosnippet>748</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#749 id=749 data-nosnippet>749</a>
+<a href=#750 id=750 data-nosnippet>750</a>        <span class="macro">assert_eq!</span>(
+<a href=#751 id=751 data-nosnippet>751</a>            catalog
+<a href=#752 id=752 data-nosnippet>752</a>                .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, HashMap::new())
+<a href=#753 id=753 data-nosnippet>753</a>                .<span class="kw">await
+<a href=#754 id=754 data-nosnippet>754</a>                </span>.unwrap_err()
+<a href=#755 id=755 data-nosnippet>755</a>                .to_string(),
+<a href=#756 id=756 data-nosnippet>756</a>            <span class="macro">format!</span>(
+<a href=#757 id=757 data-nosnippet>757</a>                <span class="string">"NamespaceAlreadyExists =&gt; Cannot create namespace {:?}. Namespace already exists."</span>,
+<a href=#758 id=758 data-nosnippet>758</a>                <span class="kw-2">&amp;</span>namespace_ident
+<a href=#759 id=759 data-nosnippet>759</a>            )
+<a href=#760 id=760 data-nosnippet>760</a>        );
+<a href=#761 id=761 data-nosnippet>761</a>
+<a href=#762 id=762 data-nosnippet>762</a>        <span class="macro">assert_eq!</span>(
+<a href=#763 id=763 data-nosnippet>763</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(),
+<a href=#764 id=764 data-nosnippet>764</a>            Namespace::with_properties(namespace_ident, HashMap::new())
 <a href=#765 id=765 data-nosnippet>765</a>        );
-<a href=#766 id=766 data-nosnippet>766</a>
-<a href=#767 id=767 data-nosnippet>767</a>        <span class="macro">assert_eq!</span>(
-<a href=#768 id=768 data-nosnippet>768</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(),
-<a href=#769 id=769 data-nosnippet>769</a>            Namespace::with_properties(namespace_ident, HashMap::new())
-<a href=#770 id=770 data-nosnippet>770</a>        );
-<a href=#771 id=771 data-nosnippet>771</a>    }
-<a href=#772 id=772 data-nosnippet>772</a>
-<a href=#773 id=773 data-nosnippet>773</a>    <span class="attr">#[tokio::test]
-<a href=#774 id=774 data-nosnippet>774</a>    </span><span class="kw">async fn </span>test_create_nested_namespace() {
-<a href=#775 id=775 data-nosnippet>775</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#776 id=776 data-nosnippet>776</a>        <span class="kw">let </span>parent_namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#777 id=777 data-nosnippet>777</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>parent_namespace_ident).<span class="kw">await</span>;
-<a href=#778 id=778 data-nosnippet>778</a>
-<a href=#779 id=779 data-nosnippet>779</a>        <span class="kw">let </span>child_namespace_ident = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#780 id=780 data-nosnippet>780</a>
-<a href=#781 id=781 data-nosnippet>781</a>        <span class="macro">assert_eq!</span>(
-<a href=#782 id=782 data-nosnippet>782</a>            catalog
-<a href=#783 id=783 data-nosnippet>783</a>                .create_namespace(<span class="kw-2">&amp;</span>child_namespace_ident, HashMap::new())
-<a href=#784 id=784 data-nosnippet>784</a>                .<span class="kw">await
-<a href=#785 id=785 data-nosnippet>785</a>                </span>.unwrap(),
-<a href=#786 id=786 data-nosnippet>786</a>            Namespace::new(child_namespace_ident.clone())
+<a href=#766 id=766 data-nosnippet>766</a>    }
+<a href=#767 id=767 data-nosnippet>767</a>
+<a href=#768 id=768 data-nosnippet>768</a>    <span class="attr">#[tokio::test]
+<a href=#769 id=769 data-nosnippet>769</a>    </span><span class="kw">async fn </span>test_create_nested_namespace() {
+<a href=#770 id=770 data-nosnippet>770</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#771 id=771 data-nosnippet>771</a>        <span class="kw">let </span>parent_namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#772 id=772 data-nosnippet>772</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>parent_namespace_ident).<span class="kw">await</span>;
+<a href=#773 id=773 data-nosnippet>773</a>
+<a href=#774 id=774 data-nosnippet>774</a>        <span class="kw">let </span>child_namespace_ident = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#775 id=775 data-nosnippet>775</a>
+<a href=#776 id=776 data-nosnippet>776</a>        <span class="macro">assert_eq!</span>(
+<a href=#777 id=777 data-nosnippet>777</a>            catalog
+<a href=#778 id=778 data-nosnippet>778</a>                .create_namespace(<span class="kw-2">&amp;</span>child_namespace_ident, HashMap::new())
+<a href=#779 id=779 data-nosnippet>779</a>                .<span class="kw">await
+<a href=#780 id=780 data-nosnippet>780</a>                </span>.unwrap(),
+<a href=#781 id=781 data-nosnippet>781</a>            Namespace::new(child_namespace_ident.clone())
+<a href=#782 id=782 data-nosnippet>782</a>        );
+<a href=#783 id=783 data-nosnippet>783</a>
+<a href=#784 id=784 data-nosnippet>784</a>        <span class="macro">assert_eq!</span>(
+<a href=#785 id=785 data-nosnippet>785</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>child_namespace_ident).<span class="kw">await</span>.unwrap(),
+<a href=#786 id=786 data-nosnippet>786</a>            Namespace::with_properties(child_namespace_ident, HashMap::new())
 <a href=#787 id=787 data-nosnippet>787</a>        );
-<a href=#788 id=788 data-nosnippet>788</a>
-<a href=#789 id=789 data-nosnippet>789</a>        <span class="macro">assert_eq!</span>(
-<a href=#790 id=790 data-nosnippet>790</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>child_namespace_ident).<span class="kw">await</span>.unwrap(),
-<a href=#791 id=791 data-nosnippet>791</a>            Namespace::with_properties(child_namespace_ident, HashMap::new())
-<a href=#792 id=792 data-nosnippet>792</a>        );
-<a href=#793 id=793 data-nosnippet>793</a>    }
-<a href=#794 id=794 data-nosnippet>794</a>
-<a href=#795 id=795 data-nosnippet>795</a>    <span class="attr">#[tokio::test]
-<a href=#796 id=796 data-nosnippet>796</a>    </span><span class="kw">async fn </span>test_create_deeply_nested_namespace() {
-<a href=#797 id=797 data-nosnippet>797</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#798 id=798 data-nosnippet>798</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#799 id=799 data-nosnippet>799</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#800 id=800 data-nosnippet>800</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
-<a href=#801 id=801 data-nosnippet>801</a>
-<a href=#802 id=802 data-nosnippet>802</a>        <span class="kw">let </span>namespace_ident_a_b_c = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>]).unwrap();
-<a href=#803 id=803 data-nosnippet>803</a>
-<a href=#804 id=804 data-nosnippet>804</a>        <span class="macro">assert_eq!</span>(
-<a href=#805 id=805 data-nosnippet>805</a>            catalog
-<a href=#806 id=806 data-nosnippet>806</a>                .create_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c, HashMap::new())
-<a href=#807 id=807 data-nosnippet>807</a>                .<span class="kw">await
-<a href=#808 id=808 data-nosnippet>808</a>                </span>.unwrap(),
-<a href=#809 id=809 data-nosnippet>809</a>            Namespace::new(namespace_ident_a_b_c.clone())
+<a href=#788 id=788 data-nosnippet>788</a>    }
+<a href=#789 id=789 data-nosnippet>789</a>
+<a href=#790 id=790 data-nosnippet>790</a>    <span class="attr">#[tokio::test]
+<a href=#791 id=791 data-nosnippet>791</a>    </span><span class="kw">async fn </span>test_create_deeply_nested_namespace() {
+<a href=#792 id=792 data-nosnippet>792</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#793 id=793 data-nosnippet>793</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#794 id=794 data-nosnippet>794</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#795 id=795 data-nosnippet>795</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
+<a href=#796 id=796 data-nosnippet>796</a>
+<a href=#797 id=797 data-nosnippet>797</a>        <span class="kw">let </span>namespace_ident_a_b_c = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>]).unwrap();
+<a href=#798 id=798 data-nosnippet>798</a>
+<a href=#799 id=799 data-nosnippet>799</a>        <span class="macro">assert_eq!</span>(
+<a href=#800 id=800 data-nosnippet>800</a>            catalog
+<a href=#801 id=801 data-nosnippet>801</a>                .create_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c, HashMap::new())
+<a href=#802 id=802 data-nosnippet>802</a>                .<span class="kw">await
+<a href=#803 id=803 data-nosnippet>803</a>                </span>.unwrap(),
+<a href=#804 id=804 data-nosnippet>804</a>            Namespace::new(namespace_ident_a_b_c.clone())
+<a href=#805 id=805 data-nosnippet>805</a>        );
+<a href=#806 id=806 data-nosnippet>806</a>
+<a href=#807 id=807 data-nosnippet>807</a>        <span class="macro">assert_eq!</span>(
+<a href=#808 id=808 data-nosnippet>808</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c).<span class="kw">await</span>.unwrap(),
+<a href=#809 id=809 data-nosnippet>809</a>            Namespace::with_properties(namespace_ident_a_b_c, HashMap::new())
 <a href=#810 id=810 data-nosnippet>810</a>        );
-<a href=#811 id=811 data-nosnippet>811</a>
-<a href=#812 id=812 data-nosnippet>812</a>        <span class="macro">assert_eq!</span>(
-<a href=#813 id=813 data-nosnippet>813</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c).<span class="kw">await</span>.unwrap(),
-<a href=#814 id=814 data-nosnippet>814</a>            Namespace::with_properties(namespace_ident_a_b_c, HashMap::new())
-<a href=#815 id=815 data-nosnippet>815</a>        );
-<a href=#816 id=816 data-nosnippet>816</a>    }
-<a href=#817 id=817 data-nosnippet>817</a>
-<a href=#818 id=818 data-nosnippet>818</a>    <span class="attr">#[tokio::test]
-<a href=#819 id=819 data-nosnippet>819</a>    </span><span class="kw">async fn </span>test_create_nested_namespace_throws_error_if_top_level_namespace_doesnt_exist() {
-<a href=#820 id=820 data-nosnippet>820</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#821 id=821 data-nosnippet>821</a>
-<a href=#822 id=822 data-nosnippet>822</a>        <span class="kw">let </span>nested_namespace_ident = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#823 id=823 data-nosnippet>823</a>
-<a href=#824 id=824 data-nosnippet>824</a>        <span class="macro">assert_eq!</span>(
-<a href=#825 id=825 data-nosnippet>825</a>            catalog
-<a href=#826 id=826 data-nosnippet>826</a>                .create_namespace(<span class="kw-2">&amp;</span>nested_namespace_ident, HashMap::new())
-<a href=#827 id=827 data-nosnippet>827</a>                .<span class="kw">await
-<a href=#828 id=828 data-nosnippet>828</a>                </span>.unwrap_err()
-<a href=#829 id=829 data-nosnippet>829</a>                .to_string(),
-<a href=#830 id=830 data-nosnippet>830</a>            <span class="macro">format!</span>(
-<a href=#831 id=831 data-nosnippet>831</a>                <span class="string">"NamespaceNotFound =&gt; No such namespace: {:?}"</span>,
-<a href=#832 id=832 data-nosnippet>832</a>                NamespaceIdent::new(<span class="string">"a"</span>.into())
-<a href=#833 id=833 data-nosnippet>833</a>            )
-<a href=#834 id=834 data-nosnippet>834</a>        );
-<a href=#835 id=835 data-nosnippet>835</a>
-<a href=#836 id=836 data-nosnippet>836</a>        <span class="macro">assert_eq!</span>(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[]);
-<a href=#837 id=837 data-nosnippet>837</a>    }
+<a href=#811 id=811 data-nosnippet>811</a>    }
+<a href=#812 id=812 data-nosnippet>812</a>
+<a href=#813 id=813 data-nosnippet>813</a>    <span class="attr">#[tokio::test]
+<a href=#814 id=814 data-nosnippet>814</a>    </span><span class="kw">async fn </span>test_create_nested_namespace_throws_error_if_top_level_namespace_doesnt_exist() {
+<a href=#815 id=815 data-nosnippet>815</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#816 id=816 data-nosnippet>816</a>
+<a href=#817 id=817 data-nosnippet>817</a>        <span class="kw">let </span>nested_namespace_ident = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#818 id=818 data-nosnippet>818</a>
+<a href=#819 id=819 data-nosnippet>819</a>        <span class="macro">assert_eq!</span>(
+<a href=#820 id=820 data-nosnippet>820</a>            catalog
+<a href=#821 id=821 data-nosnippet>821</a>                .create_namespace(<span class="kw-2">&amp;</span>nested_namespace_ident, HashMap::new())
+<a href=#822 id=822 data-nosnippet>822</a>                .<span class="kw">await
+<a href=#823 id=823 data-nosnippet>823</a>                </span>.unwrap_err()
+<a href=#824 id=824 data-nosnippet>824</a>                .to_string(),
+<a href=#825 id=825 data-nosnippet>825</a>            <span class="macro">format!</span>(
+<a href=#826 id=826 data-nosnippet>826</a>                <span class="string">"NamespaceNotFound =&gt; No such namespace: {:?}"</span>,
+<a href=#827 id=827 data-nosnippet>827</a>                NamespaceIdent::new(<span class="string">"a"</span>.into())
+<a href=#828 id=828 data-nosnippet>828</a>            )
+<a href=#829 id=829 data-nosnippet>829</a>        );
+<a href=#830 id=830 data-nosnippet>830</a>
+<a href=#831 id=831 data-nosnippet>831</a>        <span class="macro">assert_eq!</span>(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[]);
+<a href=#832 id=832 data-nosnippet>832</a>    }
+<a href=#833 id=833 data-nosnippet>833</a>
+<a href=#834 id=834 data-nosnippet>834</a>    <span class="attr">#[tokio::test]
+<a href=#835 id=835 data-nosnippet>835</a>    </span><span class="kw">async fn </span>test_create_deeply_nested_namespace_throws_error_if_intermediate_namespace_doesnt_exist()
+<a href=#836 id=836 data-nosnippet>836</a>     {
+<a href=#837 id=837 data-nosnippet>837</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
 <a href=#838 id=838 data-nosnippet>838</a>
-<a href=#839 id=839 data-nosnippet>839</a>    <span class="attr">#[tokio::test]
-<a href=#840 id=840 data-nosnippet>840</a>    </span><span class="kw">async fn </span>test_create_deeply_nested_namespace_throws_error_if_intermediate_namespace_doesnt_exist()
-<a href=#841 id=841 data-nosnippet>841</a>     {
-<a href=#842 id=842 data-nosnippet>842</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#839 id=839 data-nosnippet>839</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#840 id=840 data-nosnippet>840</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident_a).<span class="kw">await</span>;
+<a href=#841 id=841 data-nosnippet>841</a>
+<a href=#842 id=842 data-nosnippet>842</a>        <span class="kw">let </span>namespace_ident_a_b_c = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>]).unwrap();
 <a href=#843 id=843 data-nosnippet>843</a>
-<a href=#844 id=844 data-nosnippet>844</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#845 id=845 data-nosnippet>845</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident_a).<span class="kw">await</span>;
-<a href=#846 id=846 data-nosnippet>846</a>
-<a href=#847 id=847 data-nosnippet>847</a>        <span class="kw">let </span>namespace_ident_a_b_c = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>]).unwrap();
-<a href=#848 id=848 data-nosnippet>848</a>
-<a href=#849 id=849 data-nosnippet>849</a>        <span class="macro">assert_eq!</span>(
-<a href=#850 id=850 data-nosnippet>850</a>            catalog
-<a href=#851 id=851 data-nosnippet>851</a>                .create_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c, HashMap::new())
-<a href=#852 id=852 data-nosnippet>852</a>                .<span class="kw">await
-<a href=#853 id=853 data-nosnippet>853</a>                </span>.unwrap_err()
-<a href=#854 id=854 data-nosnippet>854</a>                .to_string(),
-<a href=#855 id=855 data-nosnippet>855</a>            <span class="macro">format!</span>(
-<a href=#856 id=856 data-nosnippet>856</a>                <span class="string">"NamespaceNotFound =&gt; No such namespace: {:?}"</span>,
-<a href=#857 id=857 data-nosnippet>857</a>                NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap()
-<a href=#858 id=858 data-nosnippet>858</a>            )
-<a href=#859 id=859 data-nosnippet>859</a>        );
-<a href=#860 id=860 data-nosnippet>860</a>
-<a href=#861 id=861 data-nosnippet>861</a>        <span class="macro">assert_eq!</span>(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[
-<a href=#862 id=862 data-nosnippet>862</a>            namespace_ident_a.clone()
-<a href=#863 id=863 data-nosnippet>863</a>        ]);
-<a href=#864 id=864 data-nosnippet>864</a>
-<a href=#865 id=865 data-nosnippet>865</a>        <span class="macro">assert_eq!</span>(
-<a href=#866 id=866 data-nosnippet>866</a>            catalog
-<a href=#867 id=867 data-nosnippet>867</a>                .list_namespaces(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>namespace_ident_a))
-<a href=#868 id=868 data-nosnippet>868</a>                .<span class="kw">await
-<a href=#869 id=869 data-nosnippet>869</a>                </span>.unwrap(),
-<a href=#870 id=870 data-nosnippet>870</a>            <span class="macro">vec!</span>[]
-<a href=#871 id=871 data-nosnippet>871</a>        );
-<a href=#872 id=872 data-nosnippet>872</a>    }
+<a href=#844 id=844 data-nosnippet>844</a>        <span class="macro">assert_eq!</span>(
+<a href=#845 id=845 data-nosnippet>845</a>            catalog
+<a href=#846 id=846 data-nosnippet>846</a>                .create_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c, HashMap::new())
+<a href=#847 id=847 data-nosnippet>847</a>                .<span class="kw">await
+<a href=#848 id=848 data-nosnippet>848</a>                </span>.unwrap_err()
+<a href=#849 id=849 data-nosnippet>849</a>                .to_string(),
+<a href=#850 id=850 data-nosnippet>850</a>            <span class="macro">format!</span>(
+<a href=#851 id=851 data-nosnippet>851</a>                <span class="string">"NamespaceNotFound =&gt; No such namespace: {:?}"</span>,
+<a href=#852 id=852 data-nosnippet>852</a>                NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap()
+<a href=#853 id=853 data-nosnippet>853</a>            )
+<a href=#854 id=854 data-nosnippet>854</a>        );
+<a href=#855 id=855 data-nosnippet>855</a>
+<a href=#856 id=856 data-nosnippet>856</a>        <span class="macro">assert_eq!</span>(catalog.list_namespaces(<span class="prelude-val">None</span>).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[
+<a href=#857 id=857 data-nosnippet>857</a>            namespace_ident_a.clone()
+<a href=#858 id=858 data-nosnippet>858</a>        ]);
+<a href=#859 id=859 data-nosnippet>859</a>
+<a href=#860 id=860 data-nosnippet>860</a>        <span class="macro">assert_eq!</span>(
+<a href=#861 id=861 data-nosnippet>861</a>            catalog
+<a href=#862 id=862 data-nosnippet>862</a>                .list_namespaces(<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span>namespace_ident_a))
+<a href=#863 id=863 data-nosnippet>863</a>                .<span class="kw">await
+<a href=#864 id=864 data-nosnippet>864</a>                </span>.unwrap(),
+<a href=#865 id=865 data-nosnippet>865</a>            <span class="macro">vec!</span>[]
+<a href=#866 id=866 data-nosnippet>866</a>        );
+<a href=#867 id=867 data-nosnippet>867</a>    }
+<a href=#868 id=868 data-nosnippet>868</a>
+<a href=#869 id=869 data-nosnippet>869</a>    <span class="attr">#[tokio::test]
+<a href=#870 id=870 data-nosnippet>870</a>    </span><span class="kw">async fn </span>test_get_namespace() {
+<a href=#871 id=871 data-nosnippet>871</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#872 id=872 data-nosnippet>872</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
 <a href=#873 id=873 data-nosnippet>873</a>
-<a href=#874 id=874 data-nosnippet>874</a>    <span class="attr">#[tokio::test]
-<a href=#875 id=875 data-nosnippet>875</a>    </span><span class="kw">async fn </span>test_get_namespace() {
-<a href=#876 id=876 data-nosnippet>876</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#877 id=877 data-nosnippet>877</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
-<a href=#878 id=878 data-nosnippet>878</a>
-<a href=#879 id=879 data-nosnippet>879</a>        <span class="kw">let </span><span class="kw-2">mut </span>properties: HashMap&lt;String, String&gt; = HashMap::new();
-<a href=#880 id=880 data-nosnippet>880</a>        properties.insert(<span class="string">"k"</span>.into(), <span class="string">"v"</span>.into());
-<a href=#881 id=881 data-nosnippet>881</a>        <span class="kw">let _ </span>= catalog
-<a href=#882 id=882 data-nosnippet>882</a>            .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, properties.clone())
-<a href=#883 id=883 data-nosnippet>883</a>            .<span class="kw">await
-<a href=#884 id=884 data-nosnippet>884</a>            </span>.unwrap();
-<a href=#885 id=885 data-nosnippet>885</a>
-<a href=#886 id=886 data-nosnippet>886</a>        <span class="macro">assert_eq!</span>(
-<a href=#887 id=887 data-nosnippet>887</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(),
-<a href=#888 id=888 data-nosnippet>888</a>            Namespace::with_properties(namespace_ident, properties)
-<a href=#889 id=889 data-nosnippet>889</a>        )
-<a href=#890 id=890 data-nosnippet>890</a>    }
-<a href=#891 id=891 data-nosnippet>891</a>
-<a href=#892 id=892 data-nosnippet>892</a>    <span class="attr">#[tokio::test]
-<a href=#893 id=893 data-nosnippet>893</a>    </span><span class="kw">async fn </span>test_get_nested_namespace() {
-<a href=#894 id=894 data-nosnippet>894</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#895 id=895 data-nosnippet>895</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#896 id=896 data-nosnippet>896</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#897 id=897 data-nosnippet>897</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
-<a href=#898 id=898 data-nosnippet>898</a>
-<a href=#899 id=899 data-nosnippet>899</a>        <span class="macro">assert_eq!</span>(
-<a href=#900 id=900 data-nosnippet>900</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b).<span class="kw">await</span>.unwrap(),
-<a href=#901 id=901 data-nosnippet>901</a>            Namespace::with_properties(namespace_ident_a_b, HashMap::new())
-<a href=#902 id=902 data-nosnippet>902</a>        );
-<a href=#903 id=903 data-nosnippet>903</a>    }
-<a href=#904 id=904 data-nosnippet>904</a>
-<a href=#905 id=905 data-nosnippet>905</a>    <span class="attr">#[tokio::test]
-<a href=#906 id=906 data-nosnippet>906</a>    </span><span class="kw">async fn </span>test_get_deeply_nested_namespace() {
-<a href=#907 id=907 data-nosnippet>907</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#908 id=908 data-nosnippet>908</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#909 id=909 data-nosnippet>909</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#910 id=910 data-nosnippet>910</a>        <span class="kw">let </span>namespace_ident_a_b_c = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>]).unwrap();
-<a href=#911 id=911 data-nosnippet>911</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
-<a href=#912 id=912 data-nosnippet>912</a>            <span class="kw-2">&amp;</span>namespace_ident_a,
-<a href=#913 id=913 data-nosnippet>913</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b,
-<a href=#914 id=914 data-nosnippet>914</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b_c,
-<a href=#915 id=915 data-nosnippet>915</a>        ])
-<a href=#916 id=916 data-nosnippet>916</a>        .<span class="kw">await</span>;
-<a href=#917 id=917 data-nosnippet>917</a>
-<a href=#918 id=918 data-nosnippet>918</a>        <span class="macro">assert_eq!</span>(
-<a href=#919 id=919 data-nosnippet>919</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c).<span class="kw">await</span>.unwrap(),
-<a href=#920 id=920 data-nosnippet>920</a>            Namespace::with_properties(namespace_ident_a_b_c, HashMap::new())
-<a href=#921 id=921 data-nosnippet>921</a>        );
-<a href=#922 id=922 data-nosnippet>922</a>    }
+<a href=#874 id=874 data-nosnippet>874</a>        <span class="kw">let </span><span class="kw-2">mut </span>properties: HashMap&lt;String, String&gt; = HashMap::new();
+<a href=#875 id=875 data-nosnippet>875</a>        properties.insert(<span class="string">"k"</span>.into(), <span class="string">"v"</span>.into());
+<a href=#876 id=876 data-nosnippet>876</a>        <span class="kw">let _ </span>= catalog
+<a href=#877 id=877 data-nosnippet>877</a>            .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, properties.clone())
+<a href=#878 id=878 data-nosnippet>878</a>            .<span class="kw">await
+<a href=#879 id=879 data-nosnippet>879</a>            </span>.unwrap();
+<a href=#880 id=880 data-nosnippet>880</a>
+<a href=#881 id=881 data-nosnippet>881</a>        <span class="macro">assert_eq!</span>(
+<a href=#882 id=882 data-nosnippet>882</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(),
+<a href=#883 id=883 data-nosnippet>883</a>            Namespace::with_properties(namespace_ident, properties)
+<a href=#884 id=884 data-nosnippet>884</a>        )
+<a href=#885 id=885 data-nosnippet>885</a>    }
+<a href=#886 id=886 data-nosnippet>886</a>
+<a href=#887 id=887 data-nosnippet>887</a>    <span class="attr">#[tokio::test]
+<a href=#888 id=888 data-nosnippet>888</a>    </span><span class="kw">async fn </span>test_get_nested_namespace() {
+<a href=#889 id=889 data-nosnippet>889</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#890 id=890 data-nosnippet>890</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#891 id=891 data-nosnippet>891</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#892 id=892 data-nosnippet>892</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
+<a href=#893 id=893 data-nosnippet>893</a>
+<a href=#894 id=894 data-nosnippet>894</a>        <span class="macro">assert_eq!</span>(
+<a href=#895 id=895 data-nosnippet>895</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b).<span class="kw">await</span>.unwrap(),
+<a href=#896 id=896 data-nosnippet>896</a>            Namespace::with_properties(namespace_ident_a_b, HashMap::new())
+<a href=#897 id=897 data-nosnippet>897</a>        );
+<a href=#898 id=898 data-nosnippet>898</a>    }
+<a href=#899 id=899 data-nosnippet>899</a>
+<a href=#900 id=900 data-nosnippet>900</a>    <span class="attr">#[tokio::test]
+<a href=#901 id=901 data-nosnippet>901</a>    </span><span class="kw">async fn </span>test_get_deeply_nested_namespace() {
+<a href=#902 id=902 data-nosnippet>902</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#903 id=903 data-nosnippet>903</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#904 id=904 data-nosnippet>904</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#905 id=905 data-nosnippet>905</a>        <span class="kw">let </span>namespace_ident_a_b_c = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>]).unwrap();
+<a href=#906 id=906 data-nosnippet>906</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
+<a href=#907 id=907 data-nosnippet>907</a>            <span class="kw-2">&amp;</span>namespace_ident_a,
+<a href=#908 id=908 data-nosnippet>908</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b,
+<a href=#909 id=909 data-nosnippet>909</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b_c,
+<a href=#910 id=910 data-nosnippet>910</a>        ])
+<a href=#911 id=911 data-nosnippet>911</a>        .<span class="kw">await</span>;
+<a href=#912 id=912 data-nosnippet>912</a>
+<a href=#913 id=913 data-nosnippet>913</a>        <span class="macro">assert_eq!</span>(
+<a href=#914 id=914 data-nosnippet>914</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c).<span class="kw">await</span>.unwrap(),
+<a href=#915 id=915 data-nosnippet>915</a>            Namespace::with_properties(namespace_ident_a_b_c, HashMap::new())
+<a href=#916 id=916 data-nosnippet>916</a>        );
+<a href=#917 id=917 data-nosnippet>917</a>    }
+<a href=#918 id=918 data-nosnippet>918</a>
+<a href=#919 id=919 data-nosnippet>919</a>    <span class="attr">#[tokio::test]
+<a href=#920 id=920 data-nosnippet>920</a>    </span><span class="kw">async fn </span>test_get_namespace_throws_error_if_namespace_doesnt_exist() {
+<a href=#921 id=921 data-nosnippet>921</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#922 id=922 data-nosnippet>922</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>NamespaceIdent::new(<span class="string">"a"</span>.into())).<span class="kw">await</span>;
 <a href=#923 id=923 data-nosnippet>923</a>
-<a href=#924 id=924 data-nosnippet>924</a>    <span class="attr">#[tokio::test]
-<a href=#925 id=925 data-nosnippet>925</a>    </span><span class="kw">async fn </span>test_get_namespace_throws_error_if_namespace_doesnt_exist() {
-<a href=#926 id=926 data-nosnippet>926</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#927 id=927 data-nosnippet>927</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>NamespaceIdent::new(<span class="string">"a"</span>.into())).<span class="kw">await</span>;
-<a href=#928 id=928 data-nosnippet>928</a>
-<a href=#929 id=929 data-nosnippet>929</a>        <span class="kw">let </span>non_existent_namespace_ident = NamespaceIdent::new(<span class="string">"b"</span>.into());
-<a href=#930 id=930 data-nosnippet>930</a>        <span class="macro">assert_eq!</span>(
-<a href=#931 id=931 data-nosnippet>931</a>            catalog
-<a href=#932 id=932 data-nosnippet>932</a>                .get_namespace(<span class="kw-2">&amp;</span>non_existent_namespace_ident)
-<a href=#933 id=933 data-nosnippet>933</a>                .<span class="kw">await
-<a href=#934 id=934 data-nosnippet>934</a>                </span>.unwrap_err()
-<a href=#935 id=935 data-nosnippet>935</a>                .to_string(),
-<a href=#936 id=936 data-nosnippet>936</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>)
-<a href=#937 id=937 data-nosnippet>937</a>        )
-<a href=#938 id=938 data-nosnippet>938</a>    }
-<a href=#939 id=939 data-nosnippet>939</a>
-<a href=#940 id=940 data-nosnippet>940</a>    <span class="attr">#[tokio::test]
-<a href=#941 id=941 data-nosnippet>941</a>    </span><span class="kw">async fn </span>test_update_namespace() {
-<a href=#942 id=942 data-nosnippet>942</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#943 id=943 data-nosnippet>943</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
-<a href=#944 id=944 data-nosnippet>944</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#945 id=945 data-nosnippet>945</a>
-<a href=#946 id=946 data-nosnippet>946</a>        <span class="kw">let </span><span class="kw-2">mut </span>new_properties: HashMap&lt;String, String&gt; = HashMap::new();
-<a href=#947 id=947 data-nosnippet>947</a>        new_properties.insert(<span class="string">"k"</span>.into(), <span class="string">"v"</span>.into());
+<a href=#924 id=924 data-nosnippet>924</a>        <span class="kw">let </span>non_existent_namespace_ident = NamespaceIdent::new(<span class="string">"b"</span>.into());
+<a href=#925 id=925 data-nosnippet>925</a>        <span class="macro">assert_eq!</span>(
+<a href=#926 id=926 data-nosnippet>926</a>            catalog
+<a href=#927 id=927 data-nosnippet>927</a>                .get_namespace(<span class="kw-2">&amp;</span>non_existent_namespace_ident)
+<a href=#928 id=928 data-nosnippet>928</a>                .<span class="kw">await
+<a href=#929 id=929 data-nosnippet>929</a>                </span>.unwrap_err()
+<a href=#930 id=930 data-nosnippet>930</a>                .to_string(),
+<a href=#931 id=931 data-nosnippet>931</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>)
+<a href=#932 id=932 data-nosnippet>932</a>        )
+<a href=#933 id=933 data-nosnippet>933</a>    }
+<a href=#934 id=934 data-nosnippet>934</a>
+<a href=#935 id=935 data-nosnippet>935</a>    <span class="attr">#[tokio::test]
+<a href=#936 id=936 data-nosnippet>936</a>    </span><span class="kw">async fn </span>test_update_namespace() {
+<a href=#937 id=937 data-nosnippet>937</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#938 id=938 data-nosnippet>938</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
+<a href=#939 id=939 data-nosnippet>939</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#940 id=940 data-nosnippet>940</a>
+<a href=#941 id=941 data-nosnippet>941</a>        <span class="kw">let </span><span class="kw-2">mut </span>new_properties: HashMap&lt;String, String&gt; = HashMap::new();
+<a href=#942 id=942 data-nosnippet>942</a>        new_properties.insert(<span class="string">"k"</span>.into(), <span class="string">"v"</span>.into());
+<a href=#943 id=943 data-nosnippet>943</a>
+<a href=#944 id=944 data-nosnippet>944</a>        catalog
+<a href=#945 id=945 data-nosnippet>945</a>            .update_namespace(<span class="kw-2">&amp;</span>namespace_ident, new_properties.clone())
+<a href=#946 id=946 data-nosnippet>946</a>            .<span class="kw">await
+<a href=#947 id=947 data-nosnippet>947</a>            </span>.unwrap();
 <a href=#948 id=948 data-nosnippet>948</a>
-<a href=#949 id=949 data-nosnippet>949</a>        catalog
-<a href=#950 id=950 data-nosnippet>950</a>            .update_namespace(<span class="kw-2">&amp;</span>namespace_ident, new_properties.clone())
-<a href=#951 id=951 data-nosnippet>951</a>            .<span class="kw">await
-<a href=#952 id=952 data-nosnippet>952</a>            </span>.unwrap();
-<a href=#953 id=953 data-nosnippet>953</a>
-<a href=#954 id=954 data-nosnippet>954</a>        <span class="macro">assert_eq!</span>(
-<a href=#955 id=955 data-nosnippet>955</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(),
-<a href=#956 id=956 data-nosnippet>956</a>            Namespace::with_properties(namespace_ident, new_properties)
-<a href=#957 id=957 data-nosnippet>957</a>        )
-<a href=#958 id=958 data-nosnippet>958</a>    }
-<a href=#959 id=959 data-nosnippet>959</a>
-<a href=#960 id=960 data-nosnippet>960</a>    <span class="attr">#[tokio::test]
-<a href=#961 id=961 data-nosnippet>961</a>    </span><span class="kw">async fn </span>test_update_nested_namespace() {
-<a href=#962 id=962 data-nosnippet>962</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#963 id=963 data-nosnippet>963</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#964 id=964 data-nosnippet>964</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#965 id=965 data-nosnippet>965</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
-<a href=#966 id=966 data-nosnippet>966</a>
-<a href=#967 id=967 data-nosnippet>967</a>        <span class="kw">let </span><span class="kw-2">mut </span>new_properties = HashMap::new();
-<a href=#968 id=968 data-nosnippet>968</a>        new_properties.insert(<span class="string">"k"</span>.into(), <span class="string">"v"</span>.into());
+<a href=#949 id=949 data-nosnippet>949</a>        <span class="macro">assert_eq!</span>(
+<a href=#950 id=950 data-nosnippet>950</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(),
+<a href=#951 id=951 data-nosnippet>951</a>            Namespace::with_properties(namespace_ident, new_properties)
+<a href=#952 id=952 data-nosnippet>952</a>        )
+<a href=#953 id=953 data-nosnippet>953</a>    }
+<a href=#954 id=954 data-nosnippet>954</a>
+<a href=#955 id=955 data-nosnippet>955</a>    <span class="attr">#[tokio::test]
+<a href=#956 id=956 data-nosnippet>956</a>    </span><span class="kw">async fn </span>test_update_nested_namespace() {
+<a href=#957 id=957 data-nosnippet>957</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#958 id=958 data-nosnippet>958</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#959 id=959 data-nosnippet>959</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#960 id=960 data-nosnippet>960</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
+<a href=#961 id=961 data-nosnippet>961</a>
+<a href=#962 id=962 data-nosnippet>962</a>        <span class="kw">let </span><span class="kw-2">mut </span>new_properties = HashMap::new();
+<a href=#963 id=963 data-nosnippet>963</a>        new_properties.insert(<span class="string">"k"</span>.into(), <span class="string">"v"</span>.into());
+<a href=#964 id=964 data-nosnippet>964</a>
+<a href=#965 id=965 data-nosnippet>965</a>        catalog
+<a href=#966 id=966 data-nosnippet>966</a>            .update_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b, new_properties.clone())
+<a href=#967 id=967 data-nosnippet>967</a>            .<span class="kw">await
+<a href=#968 id=968 data-nosnippet>968</a>            </span>.unwrap();
 <a href=#969 id=969 data-nosnippet>969</a>
-<a href=#970 id=970 data-nosnippet>970</a>        catalog
-<a href=#971 id=971 data-nosnippet>971</a>            .update_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b, new_properties.clone())
-<a href=#972 id=972 data-nosnippet>972</a>            .<span class="kw">await
-<a href=#973 id=973 data-nosnippet>973</a>            </span>.unwrap();
-<a href=#974 id=974 data-nosnippet>974</a>
-<a href=#975 id=975 data-nosnippet>975</a>        <span class="macro">assert_eq!</span>(
-<a href=#976 id=976 data-nosnippet>976</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b).<span class="kw">await</span>.unwrap(),
-<a href=#977 id=977 data-nosnippet>977</a>            Namespace::with_properties(namespace_ident_a_b, new_properties)
-<a href=#978 id=978 data-nosnippet>978</a>        );
-<a href=#979 id=979 data-nosnippet>979</a>    }
-<a href=#980 id=980 data-nosnippet>980</a>
-<a href=#981 id=981 data-nosnippet>981</a>    <span class="attr">#[tokio::test]
-<a href=#982 id=982 data-nosnippet>982</a>    </span><span class="kw">async fn </span>test_update_deeply_nested_namespace() {
-<a href=#983 id=983 data-nosnippet>983</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#984 id=984 data-nosnippet>984</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#985 id=985 data-nosnippet>985</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#986 id=986 data-nosnippet>986</a>        <span class="kw">let </span>namespace_ident_a_b_c = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>]).unwrap();
-<a href=#987 id=987 data-nosnippet>987</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
-<a href=#988 id=988 data-nosnippet>988</a>            <span class="kw-2">&amp;</span>namespace_ident_a,
-<a href=#989 id=989 data-nosnippet>989</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b,
-<a href=#990 id=990 data-nosnippet>990</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b_c,
-<a href=#991 id=991 data-nosnippet>991</a>        ])
-<a href=#992 id=992 data-nosnippet>992</a>        .<span class="kw">await</span>;
-<a href=#993 id=993 data-nosnippet>993</a>
-<a href=#994 id=994 data-nosnippet>994</a>        <span class="kw">let </span><span class="kw-2">mut </span>new_properties = HashMap::new();
-<a href=#995 id=995 data-nosnippet>995</a>        new_properties.insert(<span class="string">"k"</span>.into(), <span class="string">"v"</span>.into());
+<a href=#970 id=970 data-nosnippet>970</a>        <span class="macro">assert_eq!</span>(
+<a href=#971 id=971 data-nosnippet>971</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b).<span class="kw">await</span>.unwrap(),
+<a href=#972 id=972 data-nosnippet>972</a>            Namespace::with_properties(namespace_ident_a_b, new_properties)
+<a href=#973 id=973 data-nosnippet>973</a>        );
+<a href=#974 id=974 data-nosnippet>974</a>    }
+<a href=#975 id=975 data-nosnippet>975</a>
+<a href=#976 id=976 data-nosnippet>976</a>    <span class="attr">#[tokio::test]
+<a href=#977 id=977 data-nosnippet>977</a>    </span><span class="kw">async fn </span>test_update_deeply_nested_namespace() {
+<a href=#978 id=978 data-nosnippet>978</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#979 id=979 data-nosnippet>979</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#980 id=980 data-nosnippet>980</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#981 id=981 data-nosnippet>981</a>        <span class="kw">let </span>namespace_ident_a_b_c = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>]).unwrap();
+<a href=#982 id=982 data-nosnippet>982</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
+<a href=#983 id=983 data-nosnippet>983</a>            <span class="kw-2">&amp;</span>namespace_ident_a,
+<a href=#984 id=984 data-nosnippet>984</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b,
+<a href=#985 id=985 data-nosnippet>985</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b_c,
+<a href=#986 id=986 data-nosnippet>986</a>        ])
+<a href=#987 id=987 data-nosnippet>987</a>        .<span class="kw">await</span>;
+<a href=#988 id=988 data-nosnippet>988</a>
+<a href=#989 id=989 data-nosnippet>989</a>        <span class="kw">let </span><span class="kw-2">mut </span>new_properties = HashMap::new();
+<a href=#990 id=990 data-nosnippet>990</a>        new_properties.insert(<span class="string">"k"</span>.into(), <span class="string">"v"</span>.into());
+<a href=#991 id=991 data-nosnippet>991</a>
+<a href=#992 id=992 data-nosnippet>992</a>        catalog
+<a href=#993 id=993 data-nosnippet>993</a>            .update_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c, new_properties.clone())
+<a href=#994 id=994 data-nosnippet>994</a>            .<span class="kw">await
+<a href=#995 id=995 data-nosnippet>995</a>            </span>.unwrap();
 <a href=#996 id=996 data-nosnippet>996</a>
-<a href=#997 id=997 data-nosnippet>997</a>        catalog
-<a href=#998 id=998 data-nosnippet>998</a>            .update_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c, new_properties.clone())
-<a href=#999 id=999 data-nosnippet>999</a>            .<span class="kw">await
-<a href=#1000 id=1000 data-nosnippet>1000</a>            </span>.unwrap();
-<a href=#1001 id=1001 data-nosnippet>1001</a>
-<a href=#1002 id=1002 data-nosnippet>1002</a>        <span class="macro">assert_eq!</span>(
-<a href=#1003 id=1003 data-nosnippet>1003</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c).<span class="kw">await</span>.unwrap(),
-<a href=#1004 id=1004 data-nosnippet>1004</a>            Namespace::with_properties(namespace_ident_a_b_c, new_properties)
-<a href=#1005 id=1005 data-nosnippet>1005</a>        );
-<a href=#1006 id=1006 data-nosnippet>1006</a>    }
+<a href=#997 id=997 data-nosnippet>997</a>        <span class="macro">assert_eq!</span>(
+<a href=#998 id=998 data-nosnippet>998</a>            catalog.get_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c).<span class="kw">await</span>.unwrap(),
+<a href=#999 id=999 data-nosnippet>999</a>            Namespace::with_properties(namespace_ident_a_b_c, new_properties)
+<a href=#1000 id=1000 data-nosnippet>1000</a>        );
+<a href=#1001 id=1001 data-nosnippet>1001</a>    }
+<a href=#1002 id=1002 data-nosnippet>1002</a>
+<a href=#1003 id=1003 data-nosnippet>1003</a>    <span class="attr">#[tokio::test]
+<a href=#1004 id=1004 data-nosnippet>1004</a>    </span><span class="kw">async fn </span>test_update_namespace_throws_error_if_namespace_doesnt_exist() {
+<a href=#1005 id=1005 data-nosnippet>1005</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1006 id=1006 data-nosnippet>1006</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>NamespaceIdent::new(<span class="string">"abc"</span>.into())).<span class="kw">await</span>;
 <a href=#1007 id=1007 data-nosnippet>1007</a>
-<a href=#1008 id=1008 data-nosnippet>1008</a>    <span class="attr">#[tokio::test]
-<a href=#1009 id=1009 data-nosnippet>1009</a>    </span><span class="kw">async fn </span>test_update_namespace_throws_error_if_namespace_doesnt_exist() {
-<a href=#1010 id=1010 data-nosnippet>1010</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1011 id=1011 data-nosnippet>1011</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>NamespaceIdent::new(<span class="string">"abc"</span>.into())).<span class="kw">await</span>;
-<a href=#1012 id=1012 data-nosnippet>1012</a>
-<a href=#1013 id=1013 data-nosnippet>1013</a>        <span class="kw">let </span>non_existent_namespace_ident = NamespaceIdent::new(<span class="string">"def"</span>.into());
-<a href=#1014 id=1014 data-nosnippet>1014</a>        <span class="macro">assert_eq!</span>(
-<a href=#1015 id=1015 data-nosnippet>1015</a>            catalog
-<a href=#1016 id=1016 data-nosnippet>1016</a>                .update_namespace(<span class="kw-2">&amp;</span>non_existent_namespace_ident, HashMap::new())
-<a href=#1017 id=1017 data-nosnippet>1017</a>                .<span class="kw">await
-<a href=#1018 id=1018 data-nosnippet>1018</a>                </span>.unwrap_err()
-<a href=#1019 id=1019 data-nosnippet>1019</a>                .to_string(),
-<a href=#1020 id=1020 data-nosnippet>1020</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>)
-<a href=#1021 id=1021 data-nosnippet>1021</a>        )
-<a href=#1022 id=1022 data-nosnippet>1022</a>    }
-<a href=#1023 id=1023 data-nosnippet>1023</a>
-<a href=#1024 id=1024 data-nosnippet>1024</a>    <span class="attr">#[tokio::test]
-<a href=#1025 id=1025 data-nosnippet>1025</a>    </span><span class="kw">async fn </span>test_drop_namespace() {
-<a href=#1026 id=1026 data-nosnippet>1026</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1027 id=1027 data-nosnippet>1027</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
-<a href=#1028 id=1028 data-nosnippet>1028</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1008 id=1008 data-nosnippet>1008</a>        <span class="kw">let </span>non_existent_namespace_ident = NamespaceIdent::new(<span class="string">"def"</span>.into());
+<a href=#1009 id=1009 data-nosnippet>1009</a>        <span class="macro">assert_eq!</span>(
+<a href=#1010 id=1010 data-nosnippet>1010</a>            catalog
+<a href=#1011 id=1011 data-nosnippet>1011</a>                .update_namespace(<span class="kw-2">&amp;</span>non_existent_namespace_ident, HashMap::new())
+<a href=#1012 id=1012 data-nosnippet>1012</a>                .<span class="kw">await
+<a href=#1013 id=1013 data-nosnippet>1013</a>                </span>.unwrap_err()
+<a href=#1014 id=1014 data-nosnippet>1014</a>                .to_string(),
+<a href=#1015 id=1015 data-nosnippet>1015</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>)
+<a href=#1016 id=1016 data-nosnippet>1016</a>        )
+<a href=#1017 id=1017 data-nosnippet>1017</a>    }
+<a href=#1018 id=1018 data-nosnippet>1018</a>
+<a href=#1019 id=1019 data-nosnippet>1019</a>    <span class="attr">#[tokio::test]
+<a href=#1020 id=1020 data-nosnippet>1020</a>    </span><span class="kw">async fn </span>test_drop_namespace() {
+<a href=#1021 id=1021 data-nosnippet>1021</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1022 id=1022 data-nosnippet>1022</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
+<a href=#1023 id=1023 data-nosnippet>1023</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1024 id=1024 data-nosnippet>1024</a>
+<a href=#1025 id=1025 data-nosnippet>1025</a>        catalog.drop_namespace(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap();
+<a href=#1026 id=1026 data-nosnippet>1026</a>
+<a href=#1027 id=1027 data-nosnippet>1027</a>        <span class="macro">assert!</span>(!catalog.namespace_exists(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap())
+<a href=#1028 id=1028 data-nosnippet>1028</a>    }
 <a href=#1029 id=1029 data-nosnippet>1029</a>
-<a href=#1030 id=1030 data-nosnippet>1030</a>        catalog.drop_namespace(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap();
-<a href=#1031 id=1031 data-nosnippet>1031</a>
-<a href=#1032 id=1032 data-nosnippet>1032</a>        <span class="macro">assert!</span>(!catalog.namespace_exists(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap())
-<a href=#1033 id=1033 data-nosnippet>1033</a>    }
-<a href=#1034 id=1034 data-nosnippet>1034</a>
-<a href=#1035 id=1035 data-nosnippet>1035</a>    <span class="attr">#[tokio::test]
-<a href=#1036 id=1036 data-nosnippet>1036</a>    </span><span class="kw">async fn </span>test_drop_nested_namespace() {
-<a href=#1037 id=1037 data-nosnippet>1037</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1038 id=1038 data-nosnippet>1038</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1039 id=1039 data-nosnippet>1039</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#1040 id=1040 data-nosnippet>1040</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
-<a href=#1041 id=1041 data-nosnippet>1041</a>
-<a href=#1042 id=1042 data-nosnippet>1042</a>        catalog.drop_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b).<span class="kw">await</span>.unwrap();
-<a href=#1043 id=1043 data-nosnippet>1043</a>
-<a href=#1044 id=1044 data-nosnippet>1044</a>        <span class="macro">assert!</span>(
-<a href=#1045 id=1045 data-nosnippet>1045</a>            !catalog
-<a href=#1046 id=1046 data-nosnippet>1046</a>                .namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a_b)
-<a href=#1047 id=1047 data-nosnippet>1047</a>                .<span class="kw">await
-<a href=#1048 id=1048 data-nosnippet>1048</a>                </span>.unwrap()
-<a href=#1049 id=1049 data-nosnippet>1049</a>        );
-<a href=#1050 id=1050 data-nosnippet>1050</a>
-<a href=#1051 id=1051 data-nosnippet>1051</a>        <span class="macro">assert!</span>(catalog.namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a).<span class="kw">await</span>.unwrap());
-<a href=#1052 id=1052 data-nosnippet>1052</a>    }
-<a href=#1053 id=1053 data-nosnippet>1053</a>
-<a href=#1054 id=1054 data-nosnippet>1054</a>    <span class="attr">#[tokio::test]
-<a href=#1055 id=1055 data-nosnippet>1055</a>    </span><span class="kw">async fn </span>test_drop_deeply_nested_namespace() {
-<a href=#1056 id=1056 data-nosnippet>1056</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1057 id=1057 data-nosnippet>1057</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1058 id=1058 data-nosnippet>1058</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#1059 id=1059 data-nosnippet>1059</a>        <span class="kw">let </span>namespace_ident_a_b_c = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>]).unwrap();
-<a href=#1060 id=1060 data-nosnippet>1060</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
-<a href=#1061 id=1061 data-nosnippet>1061</a>            <span class="kw-2">&amp;</span>namespace_ident_a,
-<a href=#1062 id=1062 data-nosnippet>1062</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b,
-<a href=#1063 id=1063 data-nosnippet>1063</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b_c,
-<a href=#1064 id=1064 data-nosnippet>1064</a>        ])
-<a href=#1065 id=1065 data-nosnippet>1065</a>        .<span class="kw">await</span>;
+<a href=#1030 id=1030 data-nosnippet>1030</a>    <span class="attr">#[tokio::test]
+<a href=#1031 id=1031 data-nosnippet>1031</a>    </span><span class="kw">async fn </span>test_drop_nested_namespace() {
+<a href=#1032 id=1032 data-nosnippet>1032</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1033 id=1033 data-nosnippet>1033</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1034 id=1034 data-nosnippet>1034</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#1035 id=1035 data-nosnippet>1035</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
+<a href=#1036 id=1036 data-nosnippet>1036</a>
+<a href=#1037 id=1037 data-nosnippet>1037</a>        catalog.drop_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b).<span class="kw">await</span>.unwrap();
+<a href=#1038 id=1038 data-nosnippet>1038</a>
+<a href=#1039 id=1039 data-nosnippet>1039</a>        <span class="macro">assert!</span>(
+<a href=#1040 id=1040 data-nosnippet>1040</a>            !catalog
+<a href=#1041 id=1041 data-nosnippet>1041</a>                .namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a_b)
+<a href=#1042 id=1042 data-nosnippet>1042</a>                .<span class="kw">await
+<a href=#1043 id=1043 data-nosnippet>1043</a>                </span>.unwrap()
+<a href=#1044 id=1044 data-nosnippet>1044</a>        );
+<a href=#1045 id=1045 data-nosnippet>1045</a>
+<a href=#1046 id=1046 data-nosnippet>1046</a>        <span class="macro">assert!</span>(catalog.namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a).<span class="kw">await</span>.unwrap());
+<a href=#1047 id=1047 data-nosnippet>1047</a>    }
+<a href=#1048 id=1048 data-nosnippet>1048</a>
+<a href=#1049 id=1049 data-nosnippet>1049</a>    <span class="attr">#[tokio::test]
+<a href=#1050 id=1050 data-nosnippet>1050</a>    </span><span class="kw">async fn </span>test_drop_deeply_nested_namespace() {
+<a href=#1051 id=1051 data-nosnippet>1051</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1052 id=1052 data-nosnippet>1052</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1053 id=1053 data-nosnippet>1053</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#1054 id=1054 data-nosnippet>1054</a>        <span class="kw">let </span>namespace_ident_a_b_c = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>]).unwrap();
+<a href=#1055 id=1055 data-nosnippet>1055</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
+<a href=#1056 id=1056 data-nosnippet>1056</a>            <span class="kw-2">&amp;</span>namespace_ident_a,
+<a href=#1057 id=1057 data-nosnippet>1057</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b,
+<a href=#1058 id=1058 data-nosnippet>1058</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b_c,
+<a href=#1059 id=1059 data-nosnippet>1059</a>        ])
+<a href=#1060 id=1060 data-nosnippet>1060</a>        .<span class="kw">await</span>;
+<a href=#1061 id=1061 data-nosnippet>1061</a>
+<a href=#1062 id=1062 data-nosnippet>1062</a>        catalog
+<a href=#1063 id=1063 data-nosnippet>1063</a>            .drop_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c)
+<a href=#1064 id=1064 data-nosnippet>1064</a>            .<span class="kw">await
+<a href=#1065 id=1065 data-nosnippet>1065</a>            </span>.unwrap();
 <a href=#1066 id=1066 data-nosnippet>1066</a>
-<a href=#1067 id=1067 data-nosnippet>1067</a>        catalog
-<a href=#1068 id=1068 data-nosnippet>1068</a>            .drop_namespace(<span class="kw-2">&amp;</span>namespace_ident_a_b_c)
-<a href=#1069 id=1069 data-nosnippet>1069</a>            .<span class="kw">await
-<a href=#1070 id=1070 data-nosnippet>1070</a>            </span>.unwrap();
-<a href=#1071 id=1071 data-nosnippet>1071</a>
-<a href=#1072 id=1072 data-nosnippet>1072</a>        <span class="macro">assert!</span>(
-<a href=#1073 id=1073 data-nosnippet>1073</a>            !catalog
-<a href=#1074 id=1074 data-nosnippet>1074</a>                .namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a_b_c)
-<a href=#1075 id=1075 data-nosnippet>1075</a>                .<span class="kw">await
-<a href=#1076 id=1076 data-nosnippet>1076</a>                </span>.unwrap()
-<a href=#1077 id=1077 data-nosnippet>1077</a>        );
-<a href=#1078 id=1078 data-nosnippet>1078</a>
-<a href=#1079 id=1079 data-nosnippet>1079</a>        <span class="macro">assert!</span>(
-<a href=#1080 id=1080 data-nosnippet>1080</a>            catalog
-<a href=#1081 id=1081 data-nosnippet>1081</a>                .namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a_b)
-<a href=#1082 id=1082 data-nosnippet>1082</a>                .<span class="kw">await
-<a href=#1083 id=1083 data-nosnippet>1083</a>                </span>.unwrap()
-<a href=#1084 id=1084 data-nosnippet>1084</a>        );
-<a href=#1085 id=1085 data-nosnippet>1085</a>
-<a href=#1086 id=1086 data-nosnippet>1086</a>        <span class="macro">assert!</span>(catalog.namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a).<span class="kw">await</span>.unwrap());
-<a href=#1087 id=1087 data-nosnippet>1087</a>    }
-<a href=#1088 id=1088 data-nosnippet>1088</a>
-<a href=#1089 id=1089 data-nosnippet>1089</a>    <span class="attr">#[tokio::test]
-<a href=#1090 id=1090 data-nosnippet>1090</a>    </span><span class="kw">async fn </span>test_drop_namespace_throws_error_if_namespace_doesnt_exist() {
-<a href=#1091 id=1091 data-nosnippet>1091</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1092 id=1092 data-nosnippet>1092</a>
-<a href=#1093 id=1093 data-nosnippet>1093</a>        <span class="kw">let </span>non_existent_namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
-<a href=#1094 id=1094 data-nosnippet>1094</a>        <span class="macro">assert_eq!</span>(
-<a href=#1095 id=1095 data-nosnippet>1095</a>            catalog
-<a href=#1096 id=1096 data-nosnippet>1096</a>                .drop_namespace(<span class="kw-2">&amp;</span>non_existent_namespace_ident)
-<a href=#1097 id=1097 data-nosnippet>1097</a>                .<span class="kw">await
-<a href=#1098 id=1098 data-nosnippet>1098</a>                </span>.unwrap_err()
-<a href=#1099 id=1099 data-nosnippet>1099</a>                .to_string(),
-<a href=#1100 id=1100 data-nosnippet>1100</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>)
-<a href=#1101 id=1101 data-nosnippet>1101</a>        )
-<a href=#1102 id=1102 data-nosnippet>1102</a>    }
+<a href=#1067 id=1067 data-nosnippet>1067</a>        <span class="macro">assert!</span>(
+<a href=#1068 id=1068 data-nosnippet>1068</a>            !catalog
+<a href=#1069 id=1069 data-nosnippet>1069</a>                .namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a_b_c)
+<a href=#1070 id=1070 data-nosnippet>1070</a>                .<span class="kw">await
+<a href=#1071 id=1071 data-nosnippet>1071</a>                </span>.unwrap()
+<a href=#1072 id=1072 data-nosnippet>1072</a>        );
+<a href=#1073 id=1073 data-nosnippet>1073</a>
+<a href=#1074 id=1074 data-nosnippet>1074</a>        <span class="macro">assert!</span>(
+<a href=#1075 id=1075 data-nosnippet>1075</a>            catalog
+<a href=#1076 id=1076 data-nosnippet>1076</a>                .namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a_b)
+<a href=#1077 id=1077 data-nosnippet>1077</a>                .<span class="kw">await
+<a href=#1078 id=1078 data-nosnippet>1078</a>                </span>.unwrap()
+<a href=#1079 id=1079 data-nosnippet>1079</a>        );
+<a href=#1080 id=1080 data-nosnippet>1080</a>
+<a href=#1081 id=1081 data-nosnippet>1081</a>        <span class="macro">assert!</span>(catalog.namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a).<span class="kw">await</span>.unwrap());
+<a href=#1082 id=1082 data-nosnippet>1082</a>    }
+<a href=#1083 id=1083 data-nosnippet>1083</a>
+<a href=#1084 id=1084 data-nosnippet>1084</a>    <span class="attr">#[tokio::test]
+<a href=#1085 id=1085 data-nosnippet>1085</a>    </span><span class="kw">async fn </span>test_drop_namespace_throws_error_if_namespace_doesnt_exist() {
+<a href=#1086 id=1086 data-nosnippet>1086</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1087 id=1087 data-nosnippet>1087</a>
+<a href=#1088 id=1088 data-nosnippet>1088</a>        <span class="kw">let </span>non_existent_namespace_ident = NamespaceIdent::new(<span class="string">"abc"</span>.into());
+<a href=#1089 id=1089 data-nosnippet>1089</a>        <span class="macro">assert_eq!</span>(
+<a href=#1090 id=1090 data-nosnippet>1090</a>            catalog
+<a href=#1091 id=1091 data-nosnippet>1091</a>                .drop_namespace(<span class="kw-2">&amp;</span>non_existent_namespace_ident)
+<a href=#1092 id=1092 data-nosnippet>1092</a>                .<span class="kw">await
+<a href=#1093 id=1093 data-nosnippet>1093</a>                </span>.unwrap_err()
+<a href=#1094 id=1094 data-nosnippet>1094</a>                .to_string(),
+<a href=#1095 id=1095 data-nosnippet>1095</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>)
+<a href=#1096 id=1096 data-nosnippet>1096</a>        )
+<a href=#1097 id=1097 data-nosnippet>1097</a>    }
+<a href=#1098 id=1098 data-nosnippet>1098</a>
+<a href=#1099 id=1099 data-nosnippet>1099</a>    <span class="attr">#[tokio::test]
+<a href=#1100 id=1100 data-nosnippet>1100</a>    </span><span class="kw">async fn </span>test_drop_namespace_throws_error_if_nested_namespace_doesnt_exist() {
+<a href=#1101 id=1101 data-nosnippet>1101</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1102 id=1102 data-nosnippet>1102</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>NamespaceIdent::new(<span class="string">"a"</span>.into())).<span class="kw">await</span>;
 <a href=#1103 id=1103 data-nosnippet>1103</a>
-<a href=#1104 id=1104 data-nosnippet>1104</a>    <span class="attr">#[tokio::test]
-<a href=#1105 id=1105 data-nosnippet>1105</a>    </span><span class="kw">async fn </span>test_drop_namespace_throws_error_if_nested_namespace_doesnt_exist() {
-<a href=#1106 id=1106 data-nosnippet>1106</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1107 id=1107 data-nosnippet>1107</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>NamespaceIdent::new(<span class="string">"a"</span>.into())).<span class="kw">await</span>;
-<a href=#1108 id=1108 data-nosnippet>1108</a>
-<a href=#1109 id=1109 data-nosnippet>1109</a>        <span class="kw">let </span>non_existent_namespace_ident =
-<a href=#1110 id=1110 data-nosnippet>1110</a>            NamespaceIdent::from_vec(<span class="macro">vec!</span>[<span class="string">"a"</span>.into(), <span class="string">"b"</span>.into()]).unwrap();
-<a href=#1111 id=1111 data-nosnippet>1111</a>        <span class="macro">assert_eq!</span>(
-<a href=#1112 id=1112 data-nosnippet>1112</a>            catalog
-<a href=#1113 id=1113 data-nosnippet>1113</a>                .drop_namespace(<span class="kw-2">&amp;</span>non_existent_namespace_ident)
-<a href=#1114 id=1114 data-nosnippet>1114</a>                .<span class="kw">await
-<a href=#1115 id=1115 data-nosnippet>1115</a>                </span>.unwrap_err()
-<a href=#1116 id=1116 data-nosnippet>1116</a>                .to_string(),
-<a href=#1117 id=1117 data-nosnippet>1117</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>)
-<a href=#1118 id=1118 data-nosnippet>1118</a>        )
-<a href=#1119 id=1119 data-nosnippet>1119</a>    }
-<a href=#1120 id=1120 data-nosnippet>1120</a>
-<a href=#1121 id=1121 data-nosnippet>1121</a>    <span class="attr">#[tokio::test]
-<a href=#1122 id=1122 data-nosnippet>1122</a>    </span><span class="kw">async fn </span>test_dropping_a_namespace_also_drops_namespaces_nested_under_that_one() {
-<a href=#1123 id=1123 data-nosnippet>1123</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1124 id=1124 data-nosnippet>1124</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1125 id=1125 data-nosnippet>1125</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#1126 id=1126 data-nosnippet>1126</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
-<a href=#1127 id=1127 data-nosnippet>1127</a>
-<a href=#1128 id=1128 data-nosnippet>1128</a>        catalog.drop_namespace(<span class="kw-2">&amp;</span>namespace_ident_a).<span class="kw">await</span>.unwrap();
-<a href=#1129 id=1129 data-nosnippet>1129</a>
-<a href=#1130 id=1130 data-nosnippet>1130</a>        <span class="macro">assert!</span>(!catalog.namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a).<span class="kw">await</span>.unwrap());
-<a href=#1131 id=1131 data-nosnippet>1131</a>
-<a href=#1132 id=1132 data-nosnippet>1132</a>        <span class="macro">assert!</span>(
-<a href=#1133 id=1133 data-nosnippet>1133</a>            !catalog
-<a href=#1134 id=1134 data-nosnippet>1134</a>                .namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a_b)
-<a href=#1135 id=1135 data-nosnippet>1135</a>                .<span class="kw">await
-<a href=#1136 id=1136 data-nosnippet>1136</a>                </span>.unwrap()
-<a href=#1137 id=1137 data-nosnippet>1137</a>        );
-<a href=#1138 id=1138 data-nosnippet>1138</a>    }
-<a href=#1139 id=1139 data-nosnippet>1139</a>
-<a href=#1140 id=1140 data-nosnippet>1140</a>    <span class="attr">#[tokio::test]
-<a href=#1141 id=1141 data-nosnippet>1141</a>    </span><span class="kw">async fn </span>test_create_table_with_location() {
-<a href=#1142 id=1142 data-nosnippet>1142</a>        <span class="kw">let </span>tmp_dir = TempDir::new().unwrap();
-<a href=#1143 id=1143 data-nosnippet>1143</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1144 id=1144 data-nosnippet>1144</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1145 id=1145 data-nosnippet>1145</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1146 id=1146 data-nosnippet>1146</a>
-<a href=#1147 id=1147 data-nosnippet>1147</a>        <span class="kw">let </span>table_name = <span class="string">"abc"</span>;
-<a href=#1148 id=1148 data-nosnippet>1148</a>        <span class="kw">let </span>location = tmp_dir.path().to_str().unwrap().to_string();
-<a href=#1149 id=1149 data-nosnippet>1149</a>        <span class="kw">let </span>table_creation = TableCreation::builder()
-<a href=#1150 id=1150 data-nosnippet>1150</a>            .name(table_name.into())
-<a href=#1151 id=1151 data-nosnippet>1151</a>            .location(location.clone())
-<a href=#1152 id=1152 data-nosnippet>1152</a>            .schema(simple_table_schema())
-<a href=#1153 id=1153 data-nosnippet>1153</a>            .build();
-<a href=#1154 id=1154 data-nosnippet>1154</a>
-<a href=#1155 id=1155 data-nosnippet>1155</a>        <span class="kw">let </span>expected_table_ident = TableIdent::new(namespace_ident.clone(), table_name.into());
-<a href=#1156 id=1156 data-nosnippet>1156</a>
-<a href=#1157 id=1157 data-nosnippet>1157</a>        assert_table_eq(
-<a href=#1158 id=1158 data-nosnippet>1158</a>            <span class="kw-2">&amp;</span>catalog
-<a href=#1159 id=1159 data-nosnippet>1159</a>                .create_table(<span class="kw-2">&amp;</span>namespace_ident, table_creation)
-<a href=#1160 id=1160 data-nosnippet>1160</a>                .<span class="kw">await
-<a href=#1161 id=1161 data-nosnippet>1161</a>                </span>.unwrap(),
-<a href=#1162 id=1162 data-nosnippet>1162</a>            <span class="kw-2">&amp;</span>expected_table_ident,
-<a href=#1163 id=1163 data-nosnippet>1163</a>            <span class="kw-2">&amp;</span>simple_table_schema(),
-<a href=#1164 id=1164 data-nosnippet>1164</a>        );
-<a href=#1165 id=1165 data-nosnippet>1165</a>
-<a href=#1166 id=1166 data-nosnippet>1166</a>        <span class="kw">let </span>table = catalog.load_table(<span class="kw-2">&amp;</span>expected_table_ident).<span class="kw">await</span>.unwrap();
-<a href=#1167 id=1167 data-nosnippet>1167</a>
-<a href=#1168 id=1168 data-nosnippet>1168</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
-<a href=#1169 id=1169 data-nosnippet>1169</a>
-<a href=#1170 id=1170 data-nosnippet>1170</a>        <span class="macro">assert!</span>(
-<a href=#1171 id=1171 data-nosnippet>1171</a>            table
-<a href=#1172 id=1172 data-nosnippet>1172</a>                .metadata_location()
-<a href=#1173 id=1173 data-nosnippet>1173</a>                .unwrap()
-<a href=#1174 id=1174 data-nosnippet>1174</a>                .to_string()
-<a href=#1175 id=1175 data-nosnippet>1175</a>                .starts_with(<span class="kw-2">&amp;</span>location)
-<a href=#1176 id=1176 data-nosnippet>1176</a>        )
-<a href=#1177 id=1177 data-nosnippet>1177</a>    }
-<a href=#1178 id=1178 data-nosnippet>1178</a>
-<a href=#1179 id=1179 data-nosnippet>1179</a>    <span class="attr">#[tokio::test]
-<a href=#1180 id=1180 data-nosnippet>1180</a>    </span><span class="kw">async fn </span>test_create_table_falls_back_to_namespace_location_if_table_location_is_missing() {
-<a href=#1181 id=1181 data-nosnippet>1181</a>        <span class="kw">let </span>warehouse_location = temp_path();
-<a href=#1182 id=1182 data-nosnippet>1182</a>        <span class="kw">let </span>catalog = MemoryCatalogBuilder::default()
-<a href=#1183 id=1183 data-nosnippet>1183</a>            .load(
-<a href=#1184 id=1184 data-nosnippet>1184</a>                <span class="string">"memory"</span>,
-<a href=#1185 id=1185 data-nosnippet>1185</a>                HashMap::from([(
-<a href=#1186 id=1186 data-nosnippet>1186</a>                    MEMORY_CATALOG_WAREHOUSE.to_string(),
-<a href=#1187 id=1187 data-nosnippet>1187</a>                    warehouse_location.clone(),
-<a href=#1188 id=1188 data-nosnippet>1188</a>                )]),
-<a href=#1189 id=1189 data-nosnippet>1189</a>            )
-<a href=#1190 id=1190 data-nosnippet>1190</a>            .<span class="kw">await
-<a href=#1191 id=1191 data-nosnippet>1191</a>            </span>.unwrap();
-<a href=#1192 id=1192 data-nosnippet>1192</a>
-<a href=#1193 id=1193 data-nosnippet>1193</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1194 id=1194 data-nosnippet>1194</a>        <span class="kw">let </span><span class="kw-2">mut </span>namespace_properties = HashMap::new();
-<a href=#1195 id=1195 data-nosnippet>1195</a>        <span class="kw">let </span>namespace_location = temp_path();
-<a href=#1196 id=1196 data-nosnippet>1196</a>        namespace_properties.insert(LOCATION.to_string(), namespace_location.to_string());
-<a href=#1197 id=1197 data-nosnippet>1197</a>        catalog
-<a href=#1198 id=1198 data-nosnippet>1198</a>            .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, namespace_properties)
-<a href=#1199 id=1199 data-nosnippet>1199</a>            .<span class="kw">await
-<a href=#1200 id=1200 data-nosnippet>1200</a>            </span>.unwrap();
+<a href=#1104 id=1104 data-nosnippet>1104</a>        <span class="kw">let </span>non_existent_namespace_ident =
+<a href=#1105 id=1105 data-nosnippet>1105</a>            NamespaceIdent::from_vec(<span class="macro">vec!</span>[<span class="string">"a"</span>.into(), <span class="string">"b"</span>.into()]).unwrap();
+<a href=#1106 id=1106 data-nosnippet>1106</a>        <span class="macro">assert_eq!</span>(
+<a href=#1107 id=1107 data-nosnippet>1107</a>            catalog
+<a href=#1108 id=1108 data-nosnippet>1108</a>                .drop_namespace(<span class="kw-2">&amp;</span>non_existent_namespace_ident)
+<a href=#1109 id=1109 data-nosnippet>1109</a>                .<span class="kw">await
+<a href=#1110 id=1110 data-nosnippet>1110</a>                </span>.unwrap_err()
+<a href=#1111 id=1111 data-nosnippet>1111</a>                .to_string(),
+<a href=#1112 id=1112 data-nosnippet>1112</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>)
+<a href=#1113 id=1113 data-nosnippet>1113</a>        )
+<a href=#1114 id=1114 data-nosnippet>1114</a>    }
+<a href=#1115 id=1115 data-nosnippet>1115</a>
+<a href=#1116 id=1116 data-nosnippet>1116</a>    <span class="attr">#[tokio::test]
+<a href=#1117 id=1117 data-nosnippet>1117</a>    </span><span class="kw">async fn </span>test_dropping_a_namespace_also_drops_namespaces_nested_under_that_one() {
+<a href=#1118 id=1118 data-nosnippet>1118</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1119 id=1119 data-nosnippet>1119</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1120 id=1120 data-nosnippet>1120</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#1121 id=1121 data-nosnippet>1121</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
+<a href=#1122 id=1122 data-nosnippet>1122</a>
+<a href=#1123 id=1123 data-nosnippet>1123</a>        catalog.drop_namespace(<span class="kw-2">&amp;</span>namespace_ident_a).<span class="kw">await</span>.unwrap();
+<a href=#1124 id=1124 data-nosnippet>1124</a>
+<a href=#1125 id=1125 data-nosnippet>1125</a>        <span class="macro">assert!</span>(!catalog.namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a).<span class="kw">await</span>.unwrap());
+<a href=#1126 id=1126 data-nosnippet>1126</a>
+<a href=#1127 id=1127 data-nosnippet>1127</a>        <span class="macro">assert!</span>(
+<a href=#1128 id=1128 data-nosnippet>1128</a>            !catalog
+<a href=#1129 id=1129 data-nosnippet>1129</a>                .namespace_exists(<span class="kw-2">&amp;</span>namespace_ident_a_b)
+<a href=#1130 id=1130 data-nosnippet>1130</a>                .<span class="kw">await
+<a href=#1131 id=1131 data-nosnippet>1131</a>                </span>.unwrap()
+<a href=#1132 id=1132 data-nosnippet>1132</a>        );
+<a href=#1133 id=1133 data-nosnippet>1133</a>    }
+<a href=#1134 id=1134 data-nosnippet>1134</a>
+<a href=#1135 id=1135 data-nosnippet>1135</a>    <span class="attr">#[tokio::test]
+<a href=#1136 id=1136 data-nosnippet>1136</a>    </span><span class="kw">async fn </span>test_create_table_with_location() {
+<a href=#1137 id=1137 data-nosnippet>1137</a>        <span class="kw">let </span>tmp_dir = TempDir::new().unwrap();
+<a href=#1138 id=1138 data-nosnippet>1138</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1139 id=1139 data-nosnippet>1139</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1140 id=1140 data-nosnippet>1140</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1141 id=1141 data-nosnippet>1141</a>
+<a href=#1142 id=1142 data-nosnippet>1142</a>        <span class="kw">let </span>table_name = <span class="string">"abc"</span>;
+<a href=#1143 id=1143 data-nosnippet>1143</a>        <span class="kw">let </span>location = tmp_dir.path().to_str().unwrap().to_string();
+<a href=#1144 id=1144 data-nosnippet>1144</a>        <span class="kw">let </span>table_creation = TableCreation::builder()
+<a href=#1145 id=1145 data-nosnippet>1145</a>            .name(table_name.into())
+<a href=#1146 id=1146 data-nosnippet>1146</a>            .location(location.clone())
+<a href=#1147 id=1147 data-nosnippet>1147</a>            .schema(simple_table_schema())
+<a href=#1148 id=1148 data-nosnippet>1148</a>            .build();
+<a href=#1149 id=1149 data-nosnippet>1149</a>
+<a href=#1150 id=1150 data-nosnippet>1150</a>        <span class="kw">let </span>expected_table_ident = TableIdent::new(namespace_ident.clone(), table_name.into());
+<a href=#1151 id=1151 data-nosnippet>1151</a>
+<a href=#1152 id=1152 data-nosnippet>1152</a>        assert_table_eq(
+<a href=#1153 id=1153 data-nosnippet>1153</a>            <span class="kw-2">&amp;</span>catalog
+<a href=#1154 id=1154 data-nosnippet>1154</a>                .create_table(<span class="kw-2">&amp;</span>namespace_ident, table_creation)
+<a href=#1155 id=1155 data-nosnippet>1155</a>                .<span class="kw">await
+<a href=#1156 id=1156 data-nosnippet>1156</a>                </span>.unwrap(),
+<a href=#1157 id=1157 data-nosnippet>1157</a>            <span class="kw-2">&amp;</span>expected_table_ident,
+<a href=#1158 id=1158 data-nosnippet>1158</a>            <span class="kw-2">&amp;</span>simple_table_schema(),
+<a href=#1159 id=1159 data-nosnippet>1159</a>        );
+<a href=#1160 id=1160 data-nosnippet>1160</a>
+<a href=#1161 id=1161 data-nosnippet>1161</a>        <span class="kw">let </span>table = catalog.load_table(<span class="kw-2">&amp;</span>expected_table_ident).<span class="kw">await</span>.unwrap();
+<a href=#1162 id=1162 data-nosnippet>1162</a>
+<a href=#1163 id=1163 data-nosnippet>1163</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
+<a href=#1164 id=1164 data-nosnippet>1164</a>
+<a href=#1165 id=1165 data-nosnippet>1165</a>        <span class="macro">assert!</span>(
+<a href=#1166 id=1166 data-nosnippet>1166</a>            table
+<a href=#1167 id=1167 data-nosnippet>1167</a>                .metadata_location()
+<a href=#1168 id=1168 data-nosnippet>1168</a>                .unwrap()
+<a href=#1169 id=1169 data-nosnippet>1169</a>                .to_string()
+<a href=#1170 id=1170 data-nosnippet>1170</a>                .starts_with(<span class="kw-2">&amp;</span>location)
+<a href=#1171 id=1171 data-nosnippet>1171</a>        )
+<a href=#1172 id=1172 data-nosnippet>1172</a>    }
+<a href=#1173 id=1173 data-nosnippet>1173</a>
+<a href=#1174 id=1174 data-nosnippet>1174</a>    <span class="attr">#[tokio::test]
+<a href=#1175 id=1175 data-nosnippet>1175</a>    </span><span class="kw">async fn </span>test_create_table_falls_back_to_namespace_location_if_table_location_is_missing() {
+<a href=#1176 id=1176 data-nosnippet>1176</a>        <span class="kw">let </span>warehouse_location = temp_path();
+<a href=#1177 id=1177 data-nosnippet>1177</a>        <span class="kw">let </span>catalog = MemoryCatalogBuilder::default()
+<a href=#1178 id=1178 data-nosnippet>1178</a>            .load(
+<a href=#1179 id=1179 data-nosnippet>1179</a>                <span class="string">"memory"</span>,
+<a href=#1180 id=1180 data-nosnippet>1180</a>                HashMap::from([(
+<a href=#1181 id=1181 data-nosnippet>1181</a>                    MEMORY_CATALOG_WAREHOUSE.to_string(),
+<a href=#1182 id=1182 data-nosnippet>1182</a>                    warehouse_location.clone(),
+<a href=#1183 id=1183 data-nosnippet>1183</a>                )]),
+<a href=#1184 id=1184 data-nosnippet>1184</a>            )
+<a href=#1185 id=1185 data-nosnippet>1185</a>            .<span class="kw">await
+<a href=#1186 id=1186 data-nosnippet>1186</a>            </span>.unwrap();
+<a href=#1187 id=1187 data-nosnippet>1187</a>
+<a href=#1188 id=1188 data-nosnippet>1188</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1189 id=1189 data-nosnippet>1189</a>        <span class="kw">let </span><span class="kw-2">mut </span>namespace_properties = HashMap::new();
+<a href=#1190 id=1190 data-nosnippet>1190</a>        <span class="kw">let </span>namespace_location = temp_path();
+<a href=#1191 id=1191 data-nosnippet>1191</a>        namespace_properties.insert(LOCATION.to_string(), namespace_location.to_string());
+<a href=#1192 id=1192 data-nosnippet>1192</a>        catalog
+<a href=#1193 id=1193 data-nosnippet>1193</a>            .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, namespace_properties)
+<a href=#1194 id=1194 data-nosnippet>1194</a>            .<span class="kw">await
+<a href=#1195 id=1195 data-nosnippet>1195</a>            </span>.unwrap();
+<a href=#1196 id=1196 data-nosnippet>1196</a>
+<a href=#1197 id=1197 data-nosnippet>1197</a>        <span class="kw">let </span>table_name = <span class="string">"tbl1"</span>;
+<a href=#1198 id=1198 data-nosnippet>1198</a>        <span class="kw">let </span>expected_table_ident = TableIdent::new(namespace_ident.clone(), table_name.into());
+<a href=#1199 id=1199 data-nosnippet>1199</a>        <span class="kw">let </span>expected_table_metadata_location_regex =
+<a href=#1200 id=1200 data-nosnippet>1200</a>            <span class="macro">format!</span>(<span class="string">"^{namespace_location}/tbl1/metadata/00000-{UUID_REGEX_STR}.metadata.json$"</span>,);
 <a href=#1201 id=1201 data-nosnippet>1201</a>
-<a href=#1202 id=1202 data-nosnippet>1202</a>        <span class="kw">let </span>table_name = <span class="string">"tbl1"</span>;
-<a href=#1203 id=1203 data-nosnippet>1203</a>        <span class="kw">let </span>expected_table_ident = TableIdent::new(namespace_ident.clone(), table_name.into());
-<a href=#1204 id=1204 data-nosnippet>1204</a>        <span class="kw">let </span>expected_table_metadata_location_regex =
-<a href=#1205 id=1205 data-nosnippet>1205</a>            <span class="macro">format!</span>(<span class="string">"^{namespace_location}/tbl1/metadata/00000-{UUID_REGEX_STR}.metadata.json$"</span>,);
-<a href=#1206 id=1206 data-nosnippet>1206</a>
-<a href=#1207 id=1207 data-nosnippet>1207</a>        <span class="kw">let </span>table = catalog
-<a href=#1208 id=1208 data-nosnippet>1208</a>            .create_table(
-<a href=#1209 id=1209 data-nosnippet>1209</a>                <span class="kw-2">&amp;</span>namespace_ident,
-<a href=#1210 id=1210 data-nosnippet>1210</a>                TableCreation::builder()
-<a href=#1211 id=1211 data-nosnippet>1211</a>                    .name(table_name.into())
-<a href=#1212 id=1212 data-nosnippet>1212</a>                    .schema(simple_table_schema())
-<a href=#1213 id=1213 data-nosnippet>1213</a>                    <span class="comment">// no location specified for table
-<a href=#1214 id=1214 data-nosnippet>1214</a>                    </span>.build(),
-<a href=#1215 id=1215 data-nosnippet>1215</a>            )
-<a href=#1216 id=1216 data-nosnippet>1216</a>            .<span class="kw">await
-<a href=#1217 id=1217 data-nosnippet>1217</a>            </span>.unwrap();
-<a href=#1218 id=1218 data-nosnippet>1218</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
-<a href=#1219 id=1219 data-nosnippet>1219</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
+<a href=#1202 id=1202 data-nosnippet>1202</a>        <span class="kw">let </span>table = catalog
+<a href=#1203 id=1203 data-nosnippet>1203</a>            .create_table(
+<a href=#1204 id=1204 data-nosnippet>1204</a>                <span class="kw-2">&amp;</span>namespace_ident,
+<a href=#1205 id=1205 data-nosnippet>1205</a>                TableCreation::builder()
+<a href=#1206 id=1206 data-nosnippet>1206</a>                    .name(table_name.into())
+<a href=#1207 id=1207 data-nosnippet>1207</a>                    .schema(simple_table_schema())
+<a href=#1208 id=1208 data-nosnippet>1208</a>                    <span class="comment">// no location specified for table
+<a href=#1209 id=1209 data-nosnippet>1209</a>                    </span>.build(),
+<a href=#1210 id=1210 data-nosnippet>1210</a>            )
+<a href=#1211 id=1211 data-nosnippet>1211</a>            .<span class="kw">await
+<a href=#1212 id=1212 data-nosnippet>1212</a>            </span>.unwrap();
+<a href=#1213 id=1213 data-nosnippet>1213</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
+<a href=#1214 id=1214 data-nosnippet>1214</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
+<a href=#1215 id=1215 data-nosnippet>1215</a>
+<a href=#1216 id=1216 data-nosnippet>1216</a>        <span class="kw">let </span>table = catalog.load_table(<span class="kw-2">&amp;</span>expected_table_ident).<span class="kw">await</span>.unwrap();
+<a href=#1217 id=1217 data-nosnippet>1217</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
+<a href=#1218 id=1218 data-nosnippet>1218</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
+<a href=#1219 id=1219 data-nosnippet>1219</a>    }
 <a href=#1220 id=1220 data-nosnippet>1220</a>
-<a href=#1221 id=1221 data-nosnippet>1221</a>        <span class="kw">let </span>table = catalog.load_table(<span class="kw-2">&amp;</span>expected_table_ident).<span class="kw">await</span>.unwrap();
-<a href=#1222 id=1222 data-nosnippet>1222</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
-<a href=#1223 id=1223 data-nosnippet>1223</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
-<a href=#1224 id=1224 data-nosnippet>1224</a>    }
-<a href=#1225 id=1225 data-nosnippet>1225</a>
-<a href=#1226 id=1226 data-nosnippet>1226</a>    <span class="attr">#[tokio::test]
-<a href=#1227 id=1227 data-nosnippet>1227</a>    </span><span class="kw">async fn </span>test_create_table_in_nested_namespace_falls_back_to_nested_namespace_location_if_table_location_is_missing()
-<a href=#1228 id=1228 data-nosnippet>1228</a>     {
-<a href=#1229 id=1229 data-nosnippet>1229</a>        <span class="kw">let </span>warehouse_location = temp_path();
-<a href=#1230 id=1230 data-nosnippet>1230</a>        <span class="kw">let </span>catalog = MemoryCatalogBuilder::default()
-<a href=#1231 id=1231 data-nosnippet>1231</a>            .load(
-<a href=#1232 id=1232 data-nosnippet>1232</a>                <span class="string">"memory"</span>,
-<a href=#1233 id=1233 data-nosnippet>1233</a>                HashMap::from([(
-<a href=#1234 id=1234 data-nosnippet>1234</a>                    MEMORY_CATALOG_WAREHOUSE.to_string(),
-<a href=#1235 id=1235 data-nosnippet>1235</a>                    warehouse_location.clone(),
-<a href=#1236 id=1236 data-nosnippet>1236</a>                )]),
-<a href=#1237 id=1237 data-nosnippet>1237</a>            )
-<a href=#1238 id=1238 data-nosnippet>1238</a>            .<span class="kw">await
-<a href=#1239 id=1239 data-nosnippet>1239</a>            </span>.unwrap();
-<a href=#1240 id=1240 data-nosnippet>1240</a>
-<a href=#1241 id=1241 data-nosnippet>1241</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1242 id=1242 data-nosnippet>1242</a>        <span class="kw">let </span><span class="kw-2">mut </span>namespace_properties = HashMap::new();
-<a href=#1243 id=1243 data-nosnippet>1243</a>        <span class="kw">let </span>namespace_location = temp_path();
-<a href=#1244 id=1244 data-nosnippet>1244</a>        namespace_properties.insert(LOCATION.to_string(), namespace_location.to_string());
-<a href=#1245 id=1245 data-nosnippet>1245</a>        catalog
-<a href=#1246 id=1246 data-nosnippet>1246</a>            .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, namespace_properties)
-<a href=#1247 id=1247 data-nosnippet>1247</a>            .<span class="kw">await
-<a href=#1248 id=1248 data-nosnippet>1248</a>            </span>.unwrap();
-<a href=#1249 id=1249 data-nosnippet>1249</a>
-<a href=#1250 id=1250 data-nosnippet>1250</a>        <span class="kw">let </span>nested_namespace_ident = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#1251 id=1251 data-nosnippet>1251</a>        <span class="kw">let </span><span class="kw-2">mut </span>nested_namespace_properties = HashMap::new();
-<a href=#1252 id=1252 data-nosnippet>1252</a>        <span class="kw">let </span>nested_namespace_location = temp_path();
-<a href=#1253 id=1253 data-nosnippet>1253</a>        nested_namespace_properties
-<a href=#1254 id=1254 data-nosnippet>1254</a>            .insert(LOCATION.to_string(), nested_namespace_location.to_string());
-<a href=#1255 id=1255 data-nosnippet>1255</a>        catalog
-<a href=#1256 id=1256 data-nosnippet>1256</a>            .create_namespace(<span class="kw-2">&amp;</span>nested_namespace_ident, nested_namespace_properties)
-<a href=#1257 id=1257 data-nosnippet>1257</a>            .<span class="kw">await
-<a href=#1258 id=1258 data-nosnippet>1258</a>            </span>.unwrap();
-<a href=#1259 id=1259 data-nosnippet>1259</a>
-<a href=#1260 id=1260 data-nosnippet>1260</a>        <span class="kw">let </span>table_name = <span class="string">"tbl1"</span>;
-<a href=#1261 id=1261 data-nosnippet>1261</a>        <span class="kw">let </span>expected_table_ident =
-<a href=#1262 id=1262 data-nosnippet>1262</a>            TableIdent::new(nested_namespace_ident.clone(), table_name.into());
-<a href=#1263 id=1263 data-nosnippet>1263</a>        <span class="kw">let </span>expected_table_metadata_location_regex = <span class="macro">format!</span>(
-<a href=#1264 id=1264 data-nosnippet>1264</a>            <span class="string">"^{nested_namespace_location}/tbl1/metadata/00000-{UUID_REGEX_STR}.metadata.json$"</span>,
-<a href=#1265 id=1265 data-nosnippet>1265</a>        );
-<a href=#1266 id=1266 data-nosnippet>1266</a>
-<a href=#1267 id=1267 data-nosnippet>1267</a>        <span class="kw">let </span>table = catalog
-<a href=#1268 id=1268 data-nosnippet>1268</a>            .create_table(
-<a href=#1269 id=1269 data-nosnippet>1269</a>                <span class="kw-2">&amp;</span>nested_namespace_ident,
-<a href=#1270 id=1270 data-nosnippet>1270</a>                TableCreation::builder()
-<a href=#1271 id=1271 data-nosnippet>1271</a>                    .name(table_name.into())
-<a href=#1272 id=1272 data-nosnippet>1272</a>                    .schema(simple_table_schema())
-<a href=#1273 id=1273 data-nosnippet>1273</a>                    <span class="comment">// no location specified for table
-<a href=#1274 id=1274 data-nosnippet>1274</a>                    </span>.build(),
-<a href=#1275 id=1275 data-nosnippet>1275</a>            )
-<a href=#1276 id=1276 data-nosnippet>1276</a>            .<span class="kw">await
-<a href=#1277 id=1277 data-nosnippet>1277</a>            </span>.unwrap();
-<a href=#1278 id=1278 data-nosnippet>1278</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
-<a href=#1279 id=1279 data-nosnippet>1279</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
+<a href=#1221 id=1221 data-nosnippet>1221</a>    <span class="attr">#[tokio::test]
+<a href=#1222 id=1222 data-nosnippet>1222</a>    </span><span class="kw">async fn </span>test_create_table_in_nested_namespace_falls_back_to_nested_namespace_location_if_table_location_is_missing()
+<a href=#1223 id=1223 data-nosnippet>1223</a>     {
+<a href=#1224 id=1224 data-nosnippet>1224</a>        <span class="kw">let </span>warehouse_location = temp_path();
+<a href=#1225 id=1225 data-nosnippet>1225</a>        <span class="kw">let </span>catalog = MemoryCatalogBuilder::default()
+<a href=#1226 id=1226 data-nosnippet>1226</a>            .load(
+<a href=#1227 id=1227 data-nosnippet>1227</a>                <span class="string">"memory"</span>,
+<a href=#1228 id=1228 data-nosnippet>1228</a>                HashMap::from([(
+<a href=#1229 id=1229 data-nosnippet>1229</a>                    MEMORY_CATALOG_WAREHOUSE.to_string(),
+<a href=#1230 id=1230 data-nosnippet>1230</a>                    warehouse_location.clone(),
+<a href=#1231 id=1231 data-nosnippet>1231</a>                )]),
+<a href=#1232 id=1232 data-nosnippet>1232</a>            )
+<a href=#1233 id=1233 data-nosnippet>1233</a>            .<span class="kw">await
+<a href=#1234 id=1234 data-nosnippet>1234</a>            </span>.unwrap();
+<a href=#1235 id=1235 data-nosnippet>1235</a>
+<a href=#1236 id=1236 data-nosnippet>1236</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1237 id=1237 data-nosnippet>1237</a>        <span class="kw">let </span><span class="kw-2">mut </span>namespace_properties = HashMap::new();
+<a href=#1238 id=1238 data-nosnippet>1238</a>        <span class="kw">let </span>namespace_location = temp_path();
+<a href=#1239 id=1239 data-nosnippet>1239</a>        namespace_properties.insert(LOCATION.to_string(), namespace_location.to_string());
+<a href=#1240 id=1240 data-nosnippet>1240</a>        catalog
+<a href=#1241 id=1241 data-nosnippet>1241</a>            .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, namespace_properties)
+<a href=#1242 id=1242 data-nosnippet>1242</a>            .<span class="kw">await
+<a href=#1243 id=1243 data-nosnippet>1243</a>            </span>.unwrap();
+<a href=#1244 id=1244 data-nosnippet>1244</a>
+<a href=#1245 id=1245 data-nosnippet>1245</a>        <span class="kw">let </span>nested_namespace_ident = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#1246 id=1246 data-nosnippet>1246</a>        <span class="kw">let </span><span class="kw-2">mut </span>nested_namespace_properties = HashMap::new();
+<a href=#1247 id=1247 data-nosnippet>1247</a>        <span class="kw">let </span>nested_namespace_location = temp_path();
+<a href=#1248 id=1248 data-nosnippet>1248</a>        nested_namespace_properties
+<a href=#1249 id=1249 data-nosnippet>1249</a>            .insert(LOCATION.to_string(), nested_namespace_location.to_string());
+<a href=#1250 id=1250 data-nosnippet>1250</a>        catalog
+<a href=#1251 id=1251 data-nosnippet>1251</a>            .create_namespace(<span class="kw-2">&amp;</span>nested_namespace_ident, nested_namespace_properties)
+<a href=#1252 id=1252 data-nosnippet>1252</a>            .<span class="kw">await
+<a href=#1253 id=1253 data-nosnippet>1253</a>            </span>.unwrap();
+<a href=#1254 id=1254 data-nosnippet>1254</a>
+<a href=#1255 id=1255 data-nosnippet>1255</a>        <span class="kw">let </span>table_name = <span class="string">"tbl1"</span>;
+<a href=#1256 id=1256 data-nosnippet>1256</a>        <span class="kw">let </span>expected_table_ident =
+<a href=#1257 id=1257 data-nosnippet>1257</a>            TableIdent::new(nested_namespace_ident.clone(), table_name.into());
+<a href=#1258 id=1258 data-nosnippet>1258</a>        <span class="kw">let </span>expected_table_metadata_location_regex = <span class="macro">format!</span>(
+<a href=#1259 id=1259 data-nosnippet>1259</a>            <span class="string">"^{nested_namespace_location}/tbl1/metadata/00000-{UUID_REGEX_STR}.metadata.json$"</span>,
+<a href=#1260 id=1260 data-nosnippet>1260</a>        );
+<a href=#1261 id=1261 data-nosnippet>1261</a>
+<a href=#1262 id=1262 data-nosnippet>1262</a>        <span class="kw">let </span>table = catalog
+<a href=#1263 id=1263 data-nosnippet>1263</a>            .create_table(
+<a href=#1264 id=1264 data-nosnippet>1264</a>                <span class="kw-2">&amp;</span>nested_namespace_ident,
+<a href=#1265 id=1265 data-nosnippet>1265</a>                TableCreation::builder()
+<a href=#1266 id=1266 data-nosnippet>1266</a>                    .name(table_name.into())
+<a href=#1267 id=1267 data-nosnippet>1267</a>                    .schema(simple_table_schema())
+<a href=#1268 id=1268 data-nosnippet>1268</a>                    <span class="comment">// no location specified for table
+<a href=#1269 id=1269 data-nosnippet>1269</a>                    </span>.build(),
+<a href=#1270 id=1270 data-nosnippet>1270</a>            )
+<a href=#1271 id=1271 data-nosnippet>1271</a>            .<span class="kw">await
+<a href=#1272 id=1272 data-nosnippet>1272</a>            </span>.unwrap();
+<a href=#1273 id=1273 data-nosnippet>1273</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
+<a href=#1274 id=1274 data-nosnippet>1274</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
+<a href=#1275 id=1275 data-nosnippet>1275</a>
+<a href=#1276 id=1276 data-nosnippet>1276</a>        <span class="kw">let </span>table = catalog.load_table(<span class="kw-2">&amp;</span>expected_table_ident).<span class="kw">await</span>.unwrap();
+<a href=#1277 id=1277 data-nosnippet>1277</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
+<a href=#1278 id=1278 data-nosnippet>1278</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
+<a href=#1279 id=1279 data-nosnippet>1279</a>    }
 <a href=#1280 id=1280 data-nosnippet>1280</a>
-<a href=#1281 id=1281 data-nosnippet>1281</a>        <span class="kw">let </span>table = catalog.load_table(<span class="kw-2">&amp;</span>expected_table_ident).<span class="kw">await</span>.unwrap();
-<a href=#1282 id=1282 data-nosnippet>1282</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
-<a href=#1283 id=1283 data-nosnippet>1283</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
-<a href=#1284 id=1284 data-nosnippet>1284</a>    }
-<a href=#1285 id=1285 data-nosnippet>1285</a>
-<a href=#1286 id=1286 data-nosnippet>1286</a>    <span class="attr">#[tokio::test]
-<a href=#1287 id=1287 data-nosnippet>1287</a>    </span><span class="kw">async fn </span>test_create_table_falls_back_to_warehouse_location_if_both_table_location_and_namespace_location_are_missing()
-<a href=#1288 id=1288 data-nosnippet>1288</a>     {
-<a href=#1289 id=1289 data-nosnippet>1289</a>        <span class="kw">let </span>warehouse_location = temp_path();
-<a href=#1290 id=1290 data-nosnippet>1290</a>        <span class="kw">let </span>catalog = MemoryCatalogBuilder::default()
-<a href=#1291 id=1291 data-nosnippet>1291</a>            .load(
-<a href=#1292 id=1292 data-nosnippet>1292</a>                <span class="string">"memory"</span>,
-<a href=#1293 id=1293 data-nosnippet>1293</a>                HashMap::from([(
-<a href=#1294 id=1294 data-nosnippet>1294</a>                    MEMORY_CATALOG_WAREHOUSE.to_string(),
-<a href=#1295 id=1295 data-nosnippet>1295</a>                    warehouse_location.clone(),
-<a href=#1296 id=1296 data-nosnippet>1296</a>                )]),
-<a href=#1297 id=1297 data-nosnippet>1297</a>            )
-<a href=#1298 id=1298 data-nosnippet>1298</a>            .<span class="kw">await
-<a href=#1299 id=1299 data-nosnippet>1299</a>            </span>.unwrap();
-<a href=#1300 id=1300 data-nosnippet>1300</a>
-<a href=#1301 id=1301 data-nosnippet>1301</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1302 id=1302 data-nosnippet>1302</a>        <span class="comment">// note: no location specified in namespace_properties
-<a href=#1303 id=1303 data-nosnippet>1303</a>        </span><span class="kw">let </span>namespace_properties = HashMap::new();
-<a href=#1304 id=1304 data-nosnippet>1304</a>        catalog
-<a href=#1305 id=1305 data-nosnippet>1305</a>            .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, namespace_properties)
-<a href=#1306 id=1306 data-nosnippet>1306</a>            .<span class="kw">await
-<a href=#1307 id=1307 data-nosnippet>1307</a>            </span>.unwrap();
+<a href=#1281 id=1281 data-nosnippet>1281</a>    <span class="attr">#[tokio::test]
+<a href=#1282 id=1282 data-nosnippet>1282</a>    </span><span class="kw">async fn </span>test_create_table_falls_back_to_warehouse_location_if_both_table_location_and_namespace_location_are_missing()
+<a href=#1283 id=1283 data-nosnippet>1283</a>     {
+<a href=#1284 id=1284 data-nosnippet>1284</a>        <span class="kw">let </span>warehouse_location = temp_path();
+<a href=#1285 id=1285 data-nosnippet>1285</a>        <span class="kw">let </span>catalog = MemoryCatalogBuilder::default()
+<a href=#1286 id=1286 data-nosnippet>1286</a>            .load(
+<a href=#1287 id=1287 data-nosnippet>1287</a>                <span class="string">"memory"</span>,
+<a href=#1288 id=1288 data-nosnippet>1288</a>                HashMap::from([(
+<a href=#1289 id=1289 data-nosnippet>1289</a>                    MEMORY_CATALOG_WAREHOUSE.to_string(),
+<a href=#1290 id=1290 data-nosnippet>1290</a>                    warehouse_location.clone(),
+<a href=#1291 id=1291 data-nosnippet>1291</a>                )]),
+<a href=#1292 id=1292 data-nosnippet>1292</a>            )
+<a href=#1293 id=1293 data-nosnippet>1293</a>            .<span class="kw">await
+<a href=#1294 id=1294 data-nosnippet>1294</a>            </span>.unwrap();
+<a href=#1295 id=1295 data-nosnippet>1295</a>
+<a href=#1296 id=1296 data-nosnippet>1296</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1297 id=1297 data-nosnippet>1297</a>        <span class="comment">// note: no location specified in namespace_properties
+<a href=#1298 id=1298 data-nosnippet>1298</a>        </span><span class="kw">let </span>namespace_properties = HashMap::new();
+<a href=#1299 id=1299 data-nosnippet>1299</a>        catalog
+<a href=#1300 id=1300 data-nosnippet>1300</a>            .create_namespace(<span class="kw-2">&amp;</span>namespace_ident, namespace_properties)
+<a href=#1301 id=1301 data-nosnippet>1301</a>            .<span class="kw">await
+<a href=#1302 id=1302 data-nosnippet>1302</a>            </span>.unwrap();
+<a href=#1303 id=1303 data-nosnippet>1303</a>
+<a href=#1304 id=1304 data-nosnippet>1304</a>        <span class="kw">let </span>table_name = <span class="string">"tbl1"</span>;
+<a href=#1305 id=1305 data-nosnippet>1305</a>        <span class="kw">let </span>expected_table_ident = TableIdent::new(namespace_ident.clone(), table_name.into());
+<a href=#1306 id=1306 data-nosnippet>1306</a>        <span class="kw">let </span>expected_table_metadata_location_regex =
+<a href=#1307 id=1307 data-nosnippet>1307</a>            <span class="macro">format!</span>(<span class="string">"^{warehouse_location}/a/tbl1/metadata/00000-{UUID_REGEX_STR}.metadata.json$"</span>);
 <a href=#1308 id=1308 data-nosnippet>1308</a>
-<a href=#1309 id=1309 data-nosnippet>1309</a>        <span class="kw">let </span>table_name = <span class="string">"tbl1"</span>;
-<a href=#1310 id=1310 data-nosnippet>1310</a>        <span class="kw">let </span>expected_table_ident = TableIdent::new(namespace_ident.clone(), table_name.into());
-<a href=#1311 id=1311 data-nosnippet>1311</a>        <span class="kw">let </span>expected_table_metadata_location_regex =
-<a href=#1312 id=1312 data-nosnippet>1312</a>            <span class="macro">format!</span>(<span class="string">"^{warehouse_location}/a/tbl1/metadata/00000-{UUID_REGEX_STR}.metadata.json$"</span>);
-<a href=#1313 id=1313 data-nosnippet>1313</a>
-<a href=#1314 id=1314 data-nosnippet>1314</a>        <span class="kw">let </span>table = catalog
-<a href=#1315 id=1315 data-nosnippet>1315</a>            .create_table(
-<a href=#1316 id=1316 data-nosnippet>1316</a>                <span class="kw-2">&amp;</span>namespace_ident,
-<a href=#1317 id=1317 data-nosnippet>1317</a>                TableCreation::builder()
-<a href=#1318 id=1318 data-nosnippet>1318</a>                    .name(table_name.into())
-<a href=#1319 id=1319 data-nosnippet>1319</a>                    .schema(simple_table_schema())
-<a href=#1320 id=1320 data-nosnippet>1320</a>                    <span class="comment">// no location specified for table
-<a href=#1321 id=1321 data-nosnippet>1321</a>                    </span>.build(),
-<a href=#1322 id=1322 data-nosnippet>1322</a>            )
-<a href=#1323 id=1323 data-nosnippet>1323</a>            .<span class="kw">await
-<a href=#1324 id=1324 data-nosnippet>1324</a>            </span>.unwrap();
-<a href=#1325 id=1325 data-nosnippet>1325</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
-<a href=#1326 id=1326 data-nosnippet>1326</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
+<a href=#1309 id=1309 data-nosnippet>1309</a>        <span class="kw">let </span>table = catalog
+<a href=#1310 id=1310 data-nosnippet>1310</a>            .create_table(
+<a href=#1311 id=1311 data-nosnippet>1311</a>                <span class="kw-2">&amp;</span>namespace_ident,
+<a href=#1312 id=1312 data-nosnippet>1312</a>                TableCreation::builder()
+<a href=#1313 id=1313 data-nosnippet>1313</a>                    .name(table_name.into())
+<a href=#1314 id=1314 data-nosnippet>1314</a>                    .schema(simple_table_schema())
+<a href=#1315 id=1315 data-nosnippet>1315</a>                    <span class="comment">// no location specified for table
+<a href=#1316 id=1316 data-nosnippet>1316</a>                    </span>.build(),
+<a href=#1317 id=1317 data-nosnippet>1317</a>            )
+<a href=#1318 id=1318 data-nosnippet>1318</a>            .<span class="kw">await
+<a href=#1319 id=1319 data-nosnippet>1319</a>            </span>.unwrap();
+<a href=#1320 id=1320 data-nosnippet>1320</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
+<a href=#1321 id=1321 data-nosnippet>1321</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
+<a href=#1322 id=1322 data-nosnippet>1322</a>
+<a href=#1323 id=1323 data-nosnippet>1323</a>        <span class="kw">let </span>table = catalog.load_table(<span class="kw-2">&amp;</span>expected_table_ident).<span class="kw">await</span>.unwrap();
+<a href=#1324 id=1324 data-nosnippet>1324</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
+<a href=#1325 id=1325 data-nosnippet>1325</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
+<a href=#1326 id=1326 data-nosnippet>1326</a>    }
 <a href=#1327 id=1327 data-nosnippet>1327</a>
-<a href=#1328 id=1328 data-nosnippet>1328</a>        <span class="kw">let </span>table = catalog.load_table(<span class="kw-2">&amp;</span>expected_table_ident).<span class="kw">await</span>.unwrap();
-<a href=#1329 id=1329 data-nosnippet>1329</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
-<a href=#1330 id=1330 data-nosnippet>1330</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
-<a href=#1331 id=1331 data-nosnippet>1331</a>    }
-<a href=#1332 id=1332 data-nosnippet>1332</a>
-<a href=#1333 id=1333 data-nosnippet>1333</a>    <span class="attr">#[tokio::test]
-<a href=#1334 id=1334 data-nosnippet>1334</a>    </span><span class="kw">async fn </span>test_create_table_in_nested_namespace_falls_back_to_warehouse_location_if_both_table_location_and_namespace_location_are_missing()
-<a href=#1335 id=1335 data-nosnippet>1335</a>     {
-<a href=#1336 id=1336 data-nosnippet>1336</a>        <span class="kw">let </span>warehouse_location = temp_path();
-<a href=#1337 id=1337 data-nosnippet>1337</a>        <span class="kw">let </span>catalog = MemoryCatalogBuilder::default()
-<a href=#1338 id=1338 data-nosnippet>1338</a>            .load(
-<a href=#1339 id=1339 data-nosnippet>1339</a>                <span class="string">"memory"</span>,
-<a href=#1340 id=1340 data-nosnippet>1340</a>                HashMap::from([(
-<a href=#1341 id=1341 data-nosnippet>1341</a>                    MEMORY_CATALOG_WAREHOUSE.to_string(),
-<a href=#1342 id=1342 data-nosnippet>1342</a>                    warehouse_location.clone(),
-<a href=#1343 id=1343 data-nosnippet>1343</a>                )]),
-<a href=#1344 id=1344 data-nosnippet>1344</a>            )
-<a href=#1345 id=1345 data-nosnippet>1345</a>            .<span class="kw">await
-<a href=#1346 id=1346 data-nosnippet>1346</a>            </span>.unwrap();
-<a href=#1347 id=1347 data-nosnippet>1347</a>
-<a href=#1348 id=1348 data-nosnippet>1348</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1349 id=1349 data-nosnippet>1349</a>        catalog
-<a href=#1350 id=1350 data-nosnippet>1350</a>            <span class="comment">// note: no location specified in namespace_properties
-<a href=#1351 id=1351 data-nosnippet>1351</a>            </span>.create_namespace(<span class="kw-2">&amp;</span>namespace_ident, HashMap::new())
-<a href=#1352 id=1352 data-nosnippet>1352</a>            .<span class="kw">await
-<a href=#1353 id=1353 data-nosnippet>1353</a>            </span>.unwrap();
-<a href=#1354 id=1354 data-nosnippet>1354</a>
-<a href=#1355 id=1355 data-nosnippet>1355</a>        <span class="kw">let </span>nested_namespace_ident = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#1356 id=1356 data-nosnippet>1356</a>        catalog
-<a href=#1357 id=1357 data-nosnippet>1357</a>            <span class="comment">// note: no location specified in namespace_properties
-<a href=#1358 id=1358 data-nosnippet>1358</a>            </span>.create_namespace(<span class="kw-2">&amp;</span>nested_namespace_ident, HashMap::new())
-<a href=#1359 id=1359 data-nosnippet>1359</a>            .<span class="kw">await
-<a href=#1360 id=1360 data-nosnippet>1360</a>            </span>.unwrap();
-<a href=#1361 id=1361 data-nosnippet>1361</a>
-<a href=#1362 id=1362 data-nosnippet>1362</a>        <span class="kw">let </span>table_name = <span class="string">"tbl1"</span>;
-<a href=#1363 id=1363 data-nosnippet>1363</a>        <span class="kw">let </span>expected_table_ident =
-<a href=#1364 id=1364 data-nosnippet>1364</a>            TableIdent::new(nested_namespace_ident.clone(), table_name.into());
-<a href=#1365 id=1365 data-nosnippet>1365</a>        <span class="kw">let </span>expected_table_metadata_location_regex = <span class="macro">format!</span>(
-<a href=#1366 id=1366 data-nosnippet>1366</a>            <span class="string">"^{warehouse_location}/a/b/tbl1/metadata/00000-{UUID_REGEX_STR}.metadata.json$"
-<a href=#1367 id=1367 data-nosnippet>1367</a>        </span>);
-<a href=#1368 id=1368 data-nosnippet>1368</a>
-<a href=#1369 id=1369 data-nosnippet>1369</a>        <span class="kw">let </span>table = catalog
-<a href=#1370 id=1370 data-nosnippet>1370</a>            .create_table(
-<a href=#1371 id=1371 data-nosnippet>1371</a>                <span class="kw-2">&amp;</span>nested_namespace_ident,
-<a href=#1372 id=1372 data-nosnippet>1372</a>                TableCreation::builder()
-<a href=#1373 id=1373 data-nosnippet>1373</a>                    .name(table_name.into())
-<a href=#1374 id=1374 data-nosnippet>1374</a>                    .schema(simple_table_schema())
-<a href=#1375 id=1375 data-nosnippet>1375</a>                    <span class="comment">// no location specified for table
-<a href=#1376 id=1376 data-nosnippet>1376</a>                    </span>.build(),
-<a href=#1377 id=1377 data-nosnippet>1377</a>            )
-<a href=#1378 id=1378 data-nosnippet>1378</a>            .<span class="kw">await
-<a href=#1379 id=1379 data-nosnippet>1379</a>            </span>.unwrap();
-<a href=#1380 id=1380 data-nosnippet>1380</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
-<a href=#1381 id=1381 data-nosnippet>1381</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
+<a href=#1328 id=1328 data-nosnippet>1328</a>    <span class="attr">#[tokio::test]
+<a href=#1329 id=1329 data-nosnippet>1329</a>    </span><span class="kw">async fn </span>test_create_table_in_nested_namespace_falls_back_to_warehouse_location_if_both_table_location_and_namespace_location_are_missing()
+<a href=#1330 id=1330 data-nosnippet>1330</a>     {
+<a href=#1331 id=1331 data-nosnippet>1331</a>        <span class="kw">let </span>warehouse_location = temp_path();
+<a href=#1332 id=1332 data-nosnippet>1332</a>        <span class="kw">let </span>catalog = MemoryCatalogBuilder::default()
+<a href=#1333 id=1333 data-nosnippet>1333</a>            .load(
+<a href=#1334 id=1334 data-nosnippet>1334</a>                <span class="string">"memory"</span>,
+<a href=#1335 id=1335 data-nosnippet>1335</a>                HashMap::from([(
+<a href=#1336 id=1336 data-nosnippet>1336</a>                    MEMORY_CATALOG_WAREHOUSE.to_string(),
+<a href=#1337 id=1337 data-nosnippet>1337</a>                    warehouse_location.clone(),
+<a href=#1338 id=1338 data-nosnippet>1338</a>                )]),
+<a href=#1339 id=1339 data-nosnippet>1339</a>            )
+<a href=#1340 id=1340 data-nosnippet>1340</a>            .<span class="kw">await
+<a href=#1341 id=1341 data-nosnippet>1341</a>            </span>.unwrap();
+<a href=#1342 id=1342 data-nosnippet>1342</a>
+<a href=#1343 id=1343 data-nosnippet>1343</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1344 id=1344 data-nosnippet>1344</a>        catalog
+<a href=#1345 id=1345 data-nosnippet>1345</a>            <span class="comment">// note: no location specified in namespace_properties
+<a href=#1346 id=1346 data-nosnippet>1346</a>            </span>.create_namespace(<span class="kw-2">&amp;</span>namespace_ident, HashMap::new())
+<a href=#1347 id=1347 data-nosnippet>1347</a>            .<span class="kw">await
+<a href=#1348 id=1348 data-nosnippet>1348</a>            </span>.unwrap();
+<a href=#1349 id=1349 data-nosnippet>1349</a>
+<a href=#1350 id=1350 data-nosnippet>1350</a>        <span class="kw">let </span>nested_namespace_ident = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#1351 id=1351 data-nosnippet>1351</a>        catalog
+<a href=#1352 id=1352 data-nosnippet>1352</a>            <span class="comment">// note: no location specified in namespace_properties
+<a href=#1353 id=1353 data-nosnippet>1353</a>            </span>.create_namespace(<span class="kw-2">&amp;</span>nested_namespace_ident, HashMap::new())
+<a href=#1354 id=1354 data-nosnippet>1354</a>            .<span class="kw">await
+<a href=#1355 id=1355 data-nosnippet>1355</a>            </span>.unwrap();
+<a href=#1356 id=1356 data-nosnippet>1356</a>
+<a href=#1357 id=1357 data-nosnippet>1357</a>        <span class="kw">let </span>table_name = <span class="string">"tbl1"</span>;
+<a href=#1358 id=1358 data-nosnippet>1358</a>        <span class="kw">let </span>expected_table_ident =
+<a href=#1359 id=1359 data-nosnippet>1359</a>            TableIdent::new(nested_namespace_ident.clone(), table_name.into());
+<a href=#1360 id=1360 data-nosnippet>1360</a>        <span class="kw">let </span>expected_table_metadata_location_regex = <span class="macro">format!</span>(
+<a href=#1361 id=1361 data-nosnippet>1361</a>            <span class="string">"^{warehouse_location}/a/b/tbl1/metadata/00000-{UUID_REGEX_STR}.metadata.json$"
+<a href=#1362 id=1362 data-nosnippet>1362</a>        </span>);
+<a href=#1363 id=1363 data-nosnippet>1363</a>
+<a href=#1364 id=1364 data-nosnippet>1364</a>        <span class="kw">let </span>table = catalog
+<a href=#1365 id=1365 data-nosnippet>1365</a>            .create_table(
+<a href=#1366 id=1366 data-nosnippet>1366</a>                <span class="kw-2">&amp;</span>nested_namespace_ident,
+<a href=#1367 id=1367 data-nosnippet>1367</a>                TableCreation::builder()
+<a href=#1368 id=1368 data-nosnippet>1368</a>                    .name(table_name.into())
+<a href=#1369 id=1369 data-nosnippet>1369</a>                    .schema(simple_table_schema())
+<a href=#1370 id=1370 data-nosnippet>1370</a>                    <span class="comment">// no location specified for table
+<a href=#1371 id=1371 data-nosnippet>1371</a>                    </span>.build(),
+<a href=#1372 id=1372 data-nosnippet>1372</a>            )
+<a href=#1373 id=1373 data-nosnippet>1373</a>            .<span class="kw">await
+<a href=#1374 id=1374 data-nosnippet>1374</a>            </span>.unwrap();
+<a href=#1375 id=1375 data-nosnippet>1375</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
+<a href=#1376 id=1376 data-nosnippet>1376</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
+<a href=#1377 id=1377 data-nosnippet>1377</a>
+<a href=#1378 id=1378 data-nosnippet>1378</a>        <span class="kw">let </span>table = catalog.load_table(<span class="kw-2">&amp;</span>expected_table_ident).<span class="kw">await</span>.unwrap();
+<a href=#1379 id=1379 data-nosnippet>1379</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
+<a href=#1380 id=1380 data-nosnippet>1380</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
+<a href=#1381 id=1381 data-nosnippet>1381</a>    }
 <a href=#1382 id=1382 data-nosnippet>1382</a>
-<a href=#1383 id=1383 data-nosnippet>1383</a>        <span class="kw">let </span>table = catalog.load_table(<span class="kw-2">&amp;</span>expected_table_ident).<span class="kw">await</span>.unwrap();
-<a href=#1384 id=1384 data-nosnippet>1384</a>        assert_table_eq(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_ident, <span class="kw-2">&amp;</span>simple_table_schema());
-<a href=#1385 id=1385 data-nosnippet>1385</a>        assert_table_metadata_location_matches(<span class="kw-2">&amp;</span>table, <span class="kw-2">&amp;</span>expected_table_metadata_location_regex);
-<a href=#1386 id=1386 data-nosnippet>1386</a>    }
-<a href=#1387 id=1387 data-nosnippet>1387</a>
-<a href=#1388 id=1388 data-nosnippet>1388</a>    <span class="attr">#[tokio::test]
-<a href=#1389 id=1389 data-nosnippet>1389</a>    </span><span class="kw">async fn </span>test_create_table_throws_error_if_table_location_and_namespace_location_and_warehouse_location_are_missing()
-<a href=#1390 id=1390 data-nosnippet>1390</a>     {
-<a href=#1391 id=1391 data-nosnippet>1391</a>        <span class="kw">let </span>catalog = MemoryCatalogBuilder::default()
-<a href=#1392 id=1392 data-nosnippet>1392</a>            .load(<span class="string">"memory"</span>, HashMap::from([]))
-<a href=#1393 id=1393 data-nosnippet>1393</a>            .<span class="kw">await</span>;
-<a href=#1394 id=1394 data-nosnippet>1394</a>
-<a href=#1395 id=1395 data-nosnippet>1395</a>        <span class="macro">assert!</span>(catalog.is_err());
-<a href=#1396 id=1396 data-nosnippet>1396</a>        <span class="macro">assert_eq!</span>(
-<a href=#1397 id=1397 data-nosnippet>1397</a>            catalog.unwrap_err().to_string(),
-<a href=#1398 id=1398 data-nosnippet>1398</a>            <span class="string">"DataInvalid =&gt; Catalog warehouse is required"
-<a href=#1399 id=1399 data-nosnippet>1399</a>        </span>);
-<a href=#1400 id=1400 data-nosnippet>1400</a>    }
-<a href=#1401 id=1401 data-nosnippet>1401</a>
-<a href=#1402 id=1402 data-nosnippet>1402</a>    <span class="attr">#[tokio::test]
-<a href=#1403 id=1403 data-nosnippet>1403</a>    </span><span class="kw">async fn </span>test_create_table_throws_error_if_table_with_same_name_already_exists() {
-<a href=#1404 id=1404 data-nosnippet>1404</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1405 id=1405 data-nosnippet>1405</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1406 id=1406 data-nosnippet>1406</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1407 id=1407 data-nosnippet>1407</a>        <span class="kw">let </span>table_name = <span class="string">"tbl1"</span>;
-<a href=#1408 id=1408 data-nosnippet>1408</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident.clone(), table_name.into());
-<a href=#1409 id=1409 data-nosnippet>1409</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
-<a href=#1410 id=1410 data-nosnippet>1410</a>
-<a href=#1411 id=1411 data-nosnippet>1411</a>        <span class="kw">let </span>tmp_dir = TempDir::new().unwrap();
-<a href=#1412 id=1412 data-nosnippet>1412</a>        <span class="kw">let </span>location = tmp_dir.path().to_str().unwrap().to_string();
-<a href=#1413 id=1413 data-nosnippet>1413</a>
-<a href=#1414 id=1414 data-nosnippet>1414</a>        <span class="macro">assert_eq!</span>(
-<a href=#1415 id=1415 data-nosnippet>1415</a>            catalog
-<a href=#1416 id=1416 data-nosnippet>1416</a>                .create_table(
-<a href=#1417 id=1417 data-nosnippet>1417</a>                    <span class="kw-2">&amp;</span>namespace_ident,
-<a href=#1418 id=1418 data-nosnippet>1418</a>                    TableCreation::builder()
-<a href=#1419 id=1419 data-nosnippet>1419</a>                        .name(table_name.into())
-<a href=#1420 id=1420 data-nosnippet>1420</a>                        .schema(simple_table_schema())
-<a href=#1421 id=1421 data-nosnippet>1421</a>                        .location(location)
-<a href=#1422 id=1422 data-nosnippet>1422</a>                        .build()
-<a href=#1423 id=1423 data-nosnippet>1423</a>                )
-<a href=#1424 id=1424 data-nosnippet>1424</a>                .<span class="kw">await
-<a href=#1425 id=1425 data-nosnippet>1425</a>                </span>.unwrap_err()
-<a href=#1426 id=1426 data-nosnippet>1426</a>                .to_string(),
-<a href=#1427 id=1427 data-nosnippet>1427</a>            <span class="macro">format!</span>(
-<a href=#1428 id=1428 data-nosnippet>1428</a>                <span class="string">"TableAlreadyExists =&gt; Cannot create table {:?}. Table already exists."</span>,
-<a href=#1429 id=1429 data-nosnippet>1429</a>                <span class="kw-2">&amp;</span>table_ident
-<a href=#1430 id=1430 data-nosnippet>1430</a>            )
-<a href=#1431 id=1431 data-nosnippet>1431</a>        );
-<a href=#1432 id=1432 data-nosnippet>1432</a>    }
-<a href=#1433 id=1433 data-nosnippet>1433</a>
-<a href=#1434 id=1434 data-nosnippet>1434</a>    <span class="attr">#[tokio::test]
-<a href=#1435 id=1435 data-nosnippet>1435</a>    </span><span class="kw">async fn </span>test_list_tables_returns_empty_vector() {
-<a href=#1436 id=1436 data-nosnippet>1436</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1437 id=1437 data-nosnippet>1437</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1438 id=1438 data-nosnippet>1438</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1439 id=1439 data-nosnippet>1439</a>
-<a href=#1440 id=1440 data-nosnippet>1440</a>        <span class="macro">assert_eq!</span>(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[]);
-<a href=#1441 id=1441 data-nosnippet>1441</a>    }
-<a href=#1442 id=1442 data-nosnippet>1442</a>
-<a href=#1443 id=1443 data-nosnippet>1443</a>    <span class="attr">#[tokio::test]
-<a href=#1444 id=1444 data-nosnippet>1444</a>    </span><span class="kw">async fn </span>test_list_tables_returns_a_single_table() {
-<a href=#1445 id=1445 data-nosnippet>1445</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1446 id=1446 data-nosnippet>1446</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1447 id=1447 data-nosnippet>1447</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1448 id=1448 data-nosnippet>1448</a>
-<a href=#1449 id=1449 data-nosnippet>1449</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1450 id=1450 data-nosnippet>1450</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
+<a href=#1383 id=1383 data-nosnippet>1383</a>    <span class="attr">#[tokio::test]
+<a href=#1384 id=1384 data-nosnippet>1384</a>    </span><span class="kw">async fn </span>test_create_table_throws_error_if_table_location_and_namespace_location_and_warehouse_location_are_missing()
+<a href=#1385 id=1385 data-nosnippet>1385</a>     {
+<a href=#1386 id=1386 data-nosnippet>1386</a>        <span class="kw">let </span>catalog = MemoryCatalogBuilder::default()
+<a href=#1387 id=1387 data-nosnippet>1387</a>            .load(<span class="string">"memory"</span>, HashMap::from([]))
+<a href=#1388 id=1388 data-nosnippet>1388</a>            .<span class="kw">await</span>;
+<a href=#1389 id=1389 data-nosnippet>1389</a>
+<a href=#1390 id=1390 data-nosnippet>1390</a>        <span class="macro">assert!</span>(catalog.is_err());
+<a href=#1391 id=1391 data-nosnippet>1391</a>        <span class="macro">assert_eq!</span>(
+<a href=#1392 id=1392 data-nosnippet>1392</a>            catalog.unwrap_err().to_string(),
+<a href=#1393 id=1393 data-nosnippet>1393</a>            <span class="string">"DataInvalid =&gt; Catalog warehouse is required"
+<a href=#1394 id=1394 data-nosnippet>1394</a>        </span>);
+<a href=#1395 id=1395 data-nosnippet>1395</a>    }
+<a href=#1396 id=1396 data-nosnippet>1396</a>
+<a href=#1397 id=1397 data-nosnippet>1397</a>    <span class="attr">#[tokio::test]
+<a href=#1398 id=1398 data-nosnippet>1398</a>    </span><span class="kw">async fn </span>test_create_table_throws_error_if_table_with_same_name_already_exists() {
+<a href=#1399 id=1399 data-nosnippet>1399</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1400 id=1400 data-nosnippet>1400</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1401 id=1401 data-nosnippet>1401</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1402 id=1402 data-nosnippet>1402</a>        <span class="kw">let </span>table_name = <span class="string">"tbl1"</span>;
+<a href=#1403 id=1403 data-nosnippet>1403</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident.clone(), table_name.into());
+<a href=#1404 id=1404 data-nosnippet>1404</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
+<a href=#1405 id=1405 data-nosnippet>1405</a>
+<a href=#1406 id=1406 data-nosnippet>1406</a>        <span class="kw">let </span>tmp_dir = TempDir::new().unwrap();
+<a href=#1407 id=1407 data-nosnippet>1407</a>        <span class="kw">let </span>location = tmp_dir.path().to_str().unwrap().to_string();
+<a href=#1408 id=1408 data-nosnippet>1408</a>
+<a href=#1409 id=1409 data-nosnippet>1409</a>        <span class="macro">assert_eq!</span>(
+<a href=#1410 id=1410 data-nosnippet>1410</a>            catalog
+<a href=#1411 id=1411 data-nosnippet>1411</a>                .create_table(
+<a href=#1412 id=1412 data-nosnippet>1412</a>                    <span class="kw-2">&amp;</span>namespace_ident,
+<a href=#1413 id=1413 data-nosnippet>1413</a>                    TableCreation::builder()
+<a href=#1414 id=1414 data-nosnippet>1414</a>                        .name(table_name.into())
+<a href=#1415 id=1415 data-nosnippet>1415</a>                        .schema(simple_table_schema())
+<a href=#1416 id=1416 data-nosnippet>1416</a>                        .location(location)
+<a href=#1417 id=1417 data-nosnippet>1417</a>                        .build()
+<a href=#1418 id=1418 data-nosnippet>1418</a>                )
+<a href=#1419 id=1419 data-nosnippet>1419</a>                .<span class="kw">await
+<a href=#1420 id=1420 data-nosnippet>1420</a>                </span>.unwrap_err()
+<a href=#1421 id=1421 data-nosnippet>1421</a>                .to_string(),
+<a href=#1422 id=1422 data-nosnippet>1422</a>            <span class="macro">format!</span>(
+<a href=#1423 id=1423 data-nosnippet>1423</a>                <span class="string">"TableAlreadyExists =&gt; Cannot create table {:?}. Table already exists."</span>,
+<a href=#1424 id=1424 data-nosnippet>1424</a>                <span class="kw-2">&amp;</span>table_ident
+<a href=#1425 id=1425 data-nosnippet>1425</a>            )
+<a href=#1426 id=1426 data-nosnippet>1426</a>        );
+<a href=#1427 id=1427 data-nosnippet>1427</a>    }
+<a href=#1428 id=1428 data-nosnippet>1428</a>
+<a href=#1429 id=1429 data-nosnippet>1429</a>    <span class="attr">#[tokio::test]
+<a href=#1430 id=1430 data-nosnippet>1430</a>    </span><span class="kw">async fn </span>test_list_tables_returns_empty_vector() {
+<a href=#1431 id=1431 data-nosnippet>1431</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1432 id=1432 data-nosnippet>1432</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1433 id=1433 data-nosnippet>1433</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1434 id=1434 data-nosnippet>1434</a>
+<a href=#1435 id=1435 data-nosnippet>1435</a>        <span class="macro">assert_eq!</span>(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[]);
+<a href=#1436 id=1436 data-nosnippet>1436</a>    }
+<a href=#1437 id=1437 data-nosnippet>1437</a>
+<a href=#1438 id=1438 data-nosnippet>1438</a>    <span class="attr">#[tokio::test]
+<a href=#1439 id=1439 data-nosnippet>1439</a>    </span><span class="kw">async fn </span>test_list_tables_returns_a_single_table() {
+<a href=#1440 id=1440 data-nosnippet>1440</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1441 id=1441 data-nosnippet>1441</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1442 id=1442 data-nosnippet>1442</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1443 id=1443 data-nosnippet>1443</a>
+<a href=#1444 id=1444 data-nosnippet>1444</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1445 id=1445 data-nosnippet>1445</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
+<a href=#1446 id=1446 data-nosnippet>1446</a>
+<a href=#1447 id=1447 data-nosnippet>1447</a>        <span class="macro">assert_eq!</span>(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[
+<a href=#1448 id=1448 data-nosnippet>1448</a>            table_ident
+<a href=#1449 id=1449 data-nosnippet>1449</a>        ]);
+<a href=#1450 id=1450 data-nosnippet>1450</a>    }
 <a href=#1451 id=1451 data-nosnippet>1451</a>
-<a href=#1452 id=1452 data-nosnippet>1452</a>        <span class="macro">assert_eq!</span>(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[
-<a href=#1453 id=1453 data-nosnippet>1453</a>            table_ident
-<a href=#1454 id=1454 data-nosnippet>1454</a>        ]);
-<a href=#1455 id=1455 data-nosnippet>1455</a>    }
-<a href=#1456 id=1456 data-nosnippet>1456</a>
-<a href=#1457 id=1457 data-nosnippet>1457</a>    <span class="attr">#[tokio::test]
-<a href=#1458 id=1458 data-nosnippet>1458</a>    </span><span class="kw">async fn </span>test_list_tables_returns_multiple_tables() {
-<a href=#1459 id=1459 data-nosnippet>1459</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1460 id=1460 data-nosnippet>1460</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1461 id=1461 data-nosnippet>1461</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1462 id=1462 data-nosnippet>1462</a>
-<a href=#1463 id=1463 data-nosnippet>1463</a>        <span class="kw">let </span>table_ident_1 = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1464 id=1464 data-nosnippet>1464</a>        <span class="kw">let </span>table_ident_2 = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl2"</span>.into());
-<a href=#1465 id=1465 data-nosnippet>1465</a>        <span class="kw">let _ </span>= create_tables(<span class="kw-2">&amp;</span>catalog, <span class="macro">vec!</span>[<span class="kw-2">&amp;</span>table_ident_1, <span class="kw-2">&amp;</span>table_ident_2]).<span class="kw">await</span>;
-<a href=#1466 id=1466 data-nosnippet>1466</a>
-<a href=#1467 id=1467 data-nosnippet>1467</a>        <span class="macro">assert_eq!</span>(
-<a href=#1468 id=1468 data-nosnippet>1468</a>            to_set(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap()),
-<a href=#1469 id=1469 data-nosnippet>1469</a>            to_set(<span class="macro">vec!</span>[table_ident_1, table_ident_2])
-<a href=#1470 id=1470 data-nosnippet>1470</a>        );
-<a href=#1471 id=1471 data-nosnippet>1471</a>    }
-<a href=#1472 id=1472 data-nosnippet>1472</a>
-<a href=#1473 id=1473 data-nosnippet>1473</a>    <span class="attr">#[tokio::test]
-<a href=#1474 id=1474 data-nosnippet>1474</a>    </span><span class="kw">async fn </span>test_list_tables_returns_tables_from_correct_namespace() {
-<a href=#1475 id=1475 data-nosnippet>1475</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1476 id=1476 data-nosnippet>1476</a>        <span class="kw">let </span>namespace_ident_1 = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1477 id=1477 data-nosnippet>1477</a>        <span class="kw">let </span>namespace_ident_2 = NamespaceIdent::new(<span class="string">"n2"</span>.into());
-<a href=#1478 id=1478 data-nosnippet>1478</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_1, <span class="kw-2">&amp;</span>namespace_ident_2]).<span class="kw">await</span>;
-<a href=#1479 id=1479 data-nosnippet>1479</a>
-<a href=#1480 id=1480 data-nosnippet>1480</a>        <span class="kw">let </span>table_ident_1 = TableIdent::new(namespace_ident_1.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1481 id=1481 data-nosnippet>1481</a>        <span class="kw">let </span>table_ident_2 = TableIdent::new(namespace_ident_1.clone(), <span class="string">"tbl2"</span>.into());
-<a href=#1482 id=1482 data-nosnippet>1482</a>        <span class="kw">let </span>table_ident_3 = TableIdent::new(namespace_ident_2.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1483 id=1483 data-nosnippet>1483</a>        <span class="kw">let _ </span>= create_tables(<span class="kw-2">&amp;</span>catalog, <span class="macro">vec!</span>[
-<a href=#1484 id=1484 data-nosnippet>1484</a>            <span class="kw-2">&amp;</span>table_ident_1,
-<a href=#1485 id=1485 data-nosnippet>1485</a>            <span class="kw-2">&amp;</span>table_ident_2,
-<a href=#1486 id=1486 data-nosnippet>1486</a>            <span class="kw-2">&amp;</span>table_ident_3,
-<a href=#1487 id=1487 data-nosnippet>1487</a>        ])
-<a href=#1488 id=1488 data-nosnippet>1488</a>        .<span class="kw">await</span>;
+<a href=#1452 id=1452 data-nosnippet>1452</a>    <span class="attr">#[tokio::test]
+<a href=#1453 id=1453 data-nosnippet>1453</a>    </span><span class="kw">async fn </span>test_list_tables_returns_multiple_tables() {
+<a href=#1454 id=1454 data-nosnippet>1454</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1455 id=1455 data-nosnippet>1455</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1456 id=1456 data-nosnippet>1456</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1457 id=1457 data-nosnippet>1457</a>
+<a href=#1458 id=1458 data-nosnippet>1458</a>        <span class="kw">let </span>table_ident_1 = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1459 id=1459 data-nosnippet>1459</a>        <span class="kw">let </span>table_ident_2 = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl2"</span>.into());
+<a href=#1460 id=1460 data-nosnippet>1460</a>        <span class="kw">let _ </span>= create_tables(<span class="kw-2">&amp;</span>catalog, <span class="macro">vec!</span>[<span class="kw-2">&amp;</span>table_ident_1, <span class="kw-2">&amp;</span>table_ident_2]).<span class="kw">await</span>;
+<a href=#1461 id=1461 data-nosnippet>1461</a>
+<a href=#1462 id=1462 data-nosnippet>1462</a>        <span class="macro">assert_eq!</span>(
+<a href=#1463 id=1463 data-nosnippet>1463</a>            to_set(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap()),
+<a href=#1464 id=1464 data-nosnippet>1464</a>            to_set(<span class="macro">vec!</span>[table_ident_1, table_ident_2])
+<a href=#1465 id=1465 data-nosnippet>1465</a>        );
+<a href=#1466 id=1466 data-nosnippet>1466</a>    }
+<a href=#1467 id=1467 data-nosnippet>1467</a>
+<a href=#1468 id=1468 data-nosnippet>1468</a>    <span class="attr">#[tokio::test]
+<a href=#1469 id=1469 data-nosnippet>1469</a>    </span><span class="kw">async fn </span>test_list_tables_returns_tables_from_correct_namespace() {
+<a href=#1470 id=1470 data-nosnippet>1470</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1471 id=1471 data-nosnippet>1471</a>        <span class="kw">let </span>namespace_ident_1 = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1472 id=1472 data-nosnippet>1472</a>        <span class="kw">let </span>namespace_ident_2 = NamespaceIdent::new(<span class="string">"n2"</span>.into());
+<a href=#1473 id=1473 data-nosnippet>1473</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_1, <span class="kw-2">&amp;</span>namespace_ident_2]).<span class="kw">await</span>;
+<a href=#1474 id=1474 data-nosnippet>1474</a>
+<a href=#1475 id=1475 data-nosnippet>1475</a>        <span class="kw">let </span>table_ident_1 = TableIdent::new(namespace_ident_1.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1476 id=1476 data-nosnippet>1476</a>        <span class="kw">let </span>table_ident_2 = TableIdent::new(namespace_ident_1.clone(), <span class="string">"tbl2"</span>.into());
+<a href=#1477 id=1477 data-nosnippet>1477</a>        <span class="kw">let </span>table_ident_3 = TableIdent::new(namespace_ident_2.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1478 id=1478 data-nosnippet>1478</a>        <span class="kw">let _ </span>= create_tables(<span class="kw-2">&amp;</span>catalog, <span class="macro">vec!</span>[
+<a href=#1479 id=1479 data-nosnippet>1479</a>            <span class="kw-2">&amp;</span>table_ident_1,
+<a href=#1480 id=1480 data-nosnippet>1480</a>            <span class="kw-2">&amp;</span>table_ident_2,
+<a href=#1481 id=1481 data-nosnippet>1481</a>            <span class="kw-2">&amp;</span>table_ident_3,
+<a href=#1482 id=1482 data-nosnippet>1482</a>        ])
+<a href=#1483 id=1483 data-nosnippet>1483</a>        .<span class="kw">await</span>;
+<a href=#1484 id=1484 data-nosnippet>1484</a>
+<a href=#1485 id=1485 data-nosnippet>1485</a>        <span class="macro">assert_eq!</span>(
+<a href=#1486 id=1486 data-nosnippet>1486</a>            to_set(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident_1).<span class="kw">await</span>.unwrap()),
+<a href=#1487 id=1487 data-nosnippet>1487</a>            to_set(<span class="macro">vec!</span>[table_ident_1, table_ident_2])
+<a href=#1488 id=1488 data-nosnippet>1488</a>        );
 <a href=#1489 id=1489 data-nosnippet>1489</a>
 <a href=#1490 id=1490 data-nosnippet>1490</a>        <span class="macro">assert_eq!</span>(
-<a href=#1491 id=1491 data-nosnippet>1491</a>            to_set(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident_1).<span class="kw">await</span>.unwrap()),
-<a href=#1492 id=1492 data-nosnippet>1492</a>            to_set(<span class="macro">vec!</span>[table_ident_1, table_ident_2])
+<a href=#1491 id=1491 data-nosnippet>1491</a>            to_set(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident_2).<span class="kw">await</span>.unwrap()),
+<a href=#1492 id=1492 data-nosnippet>1492</a>            to_set(<span class="macro">vec!</span>[table_ident_3])
 <a href=#1493 id=1493 data-nosnippet>1493</a>        );
-<a href=#1494 id=1494 data-nosnippet>1494</a>
-<a href=#1495 id=1495 data-nosnippet>1495</a>        <span class="macro">assert_eq!</span>(
-<a href=#1496 id=1496 data-nosnippet>1496</a>            to_set(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident_2).<span class="kw">await</span>.unwrap()),
-<a href=#1497 id=1497 data-nosnippet>1497</a>            to_set(<span class="macro">vec!</span>[table_ident_3])
-<a href=#1498 id=1498 data-nosnippet>1498</a>        );
-<a href=#1499 id=1499 data-nosnippet>1499</a>    }
-<a href=#1500 id=1500 data-nosnippet>1500</a>
-<a href=#1501 id=1501 data-nosnippet>1501</a>    <span class="attr">#[tokio::test]
-<a href=#1502 id=1502 data-nosnippet>1502</a>    </span><span class="kw">async fn </span>test_list_tables_returns_table_under_nested_namespace() {
-<a href=#1503 id=1503 data-nosnippet>1503</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1504 id=1504 data-nosnippet>1504</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1505 id=1505 data-nosnippet>1505</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#1506 id=1506 data-nosnippet>1506</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
-<a href=#1507 id=1507 data-nosnippet>1507</a>
-<a href=#1508 id=1508 data-nosnippet>1508</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident_a_b.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1509 id=1509 data-nosnippet>1509</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
-<a href=#1510 id=1510 data-nosnippet>1510</a>
-<a href=#1511 id=1511 data-nosnippet>1511</a>        <span class="macro">assert_eq!</span>(
-<a href=#1512 id=1512 data-nosnippet>1512</a>            catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident_a_b).<span class="kw">await</span>.unwrap(),
-<a href=#1513 id=1513 data-nosnippet>1513</a>            <span class="macro">vec!</span>[table_ident]
-<a href=#1514 id=1514 data-nosnippet>1514</a>        );
-<a href=#1515 id=1515 data-nosnippet>1515</a>    }
-<a href=#1516 id=1516 data-nosnippet>1516</a>
-<a href=#1517 id=1517 data-nosnippet>1517</a>    <span class="attr">#[tokio::test]
-<a href=#1518 id=1518 data-nosnippet>1518</a>    </span><span class="kw">async fn </span>test_list_tables_throws_error_if_namespace_doesnt_exist() {
-<a href=#1519 id=1519 data-nosnippet>1519</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1520 id=1520 data-nosnippet>1520</a>
-<a href=#1521 id=1521 data-nosnippet>1521</a>        <span class="kw">let </span>non_existent_namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1522 id=1522 data-nosnippet>1522</a>
-<a href=#1523 id=1523 data-nosnippet>1523</a>        <span class="macro">assert_eq!</span>(
-<a href=#1524 id=1524 data-nosnippet>1524</a>            catalog
-<a href=#1525 id=1525 data-nosnippet>1525</a>                .list_tables(<span class="kw-2">&amp;</span>non_existent_namespace_ident)
-<a href=#1526 id=1526 data-nosnippet>1526</a>                .<span class="kw">await
-<a href=#1527 id=1527 data-nosnippet>1527</a>                </span>.unwrap_err()
-<a href=#1528 id=1528 data-nosnippet>1528</a>                .to_string(),
-<a href=#1529 id=1529 data-nosnippet>1529</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>),
-<a href=#1530 id=1530 data-nosnippet>1530</a>        );
-<a href=#1531 id=1531 data-nosnippet>1531</a>    }
-<a href=#1532 id=1532 data-nosnippet>1532</a>
-<a href=#1533 id=1533 data-nosnippet>1533</a>    <span class="attr">#[tokio::test]
-<a href=#1534 id=1534 data-nosnippet>1534</a>    </span><span class="kw">async fn </span>test_drop_table() {
-<a href=#1535 id=1535 data-nosnippet>1535</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1536 id=1536 data-nosnippet>1536</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1537 id=1537 data-nosnippet>1537</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1538 id=1538 data-nosnippet>1538</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1539 id=1539 data-nosnippet>1539</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
-<a href=#1540 id=1540 data-nosnippet>1540</a>
-<a href=#1541 id=1541 data-nosnippet>1541</a>        catalog.drop_table(<span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>.unwrap();
-<a href=#1542 id=1542 data-nosnippet>1542</a>    }
-<a href=#1543 id=1543 data-nosnippet>1543</a>
-<a href=#1544 id=1544 data-nosnippet>1544</a>    <span class="attr">#[tokio::test]
-<a href=#1545 id=1545 data-nosnippet>1545</a>    </span><span class="kw">async fn </span>test_drop_table_drops_table_under_nested_namespace() {
-<a href=#1546 id=1546 data-nosnippet>1546</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1547 id=1547 data-nosnippet>1547</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1548 id=1548 data-nosnippet>1548</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#1549 id=1549 data-nosnippet>1549</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
+<a href=#1494 id=1494 data-nosnippet>1494</a>    }
+<a href=#1495 id=1495 data-nosnippet>1495</a>
+<a href=#1496 id=1496 data-nosnippet>1496</a>    <span class="attr">#[tokio::test]
+<a href=#1497 id=1497 data-nosnippet>1497</a>    </span><span class="kw">async fn </span>test_list_tables_returns_table_under_nested_namespace() {
+<a href=#1498 id=1498 data-nosnippet>1498</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1499 id=1499 data-nosnippet>1499</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1500 id=1500 data-nosnippet>1500</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#1501 id=1501 data-nosnippet>1501</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
+<a href=#1502 id=1502 data-nosnippet>1502</a>
+<a href=#1503 id=1503 data-nosnippet>1503</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident_a_b.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1504 id=1504 data-nosnippet>1504</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
+<a href=#1505 id=1505 data-nosnippet>1505</a>
+<a href=#1506 id=1506 data-nosnippet>1506</a>        <span class="macro">assert_eq!</span>(
+<a href=#1507 id=1507 data-nosnippet>1507</a>            catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident_a_b).<span class="kw">await</span>.unwrap(),
+<a href=#1508 id=1508 data-nosnippet>1508</a>            <span class="macro">vec!</span>[table_ident]
+<a href=#1509 id=1509 data-nosnippet>1509</a>        );
+<a href=#1510 id=1510 data-nosnippet>1510</a>    }
+<a href=#1511 id=1511 data-nosnippet>1511</a>
+<a href=#1512 id=1512 data-nosnippet>1512</a>    <span class="attr">#[tokio::test]
+<a href=#1513 id=1513 data-nosnippet>1513</a>    </span><span class="kw">async fn </span>test_list_tables_throws_error_if_namespace_doesnt_exist() {
+<a href=#1514 id=1514 data-nosnippet>1514</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1515 id=1515 data-nosnippet>1515</a>
+<a href=#1516 id=1516 data-nosnippet>1516</a>        <span class="kw">let </span>non_existent_namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1517 id=1517 data-nosnippet>1517</a>
+<a href=#1518 id=1518 data-nosnippet>1518</a>        <span class="macro">assert_eq!</span>(
+<a href=#1519 id=1519 data-nosnippet>1519</a>            catalog
+<a href=#1520 id=1520 data-nosnippet>1520</a>                .list_tables(<span class="kw-2">&amp;</span>non_existent_namespace_ident)
+<a href=#1521 id=1521 data-nosnippet>1521</a>                .<span class="kw">await
+<a href=#1522 id=1522 data-nosnippet>1522</a>                </span>.unwrap_err()
+<a href=#1523 id=1523 data-nosnippet>1523</a>                .to_string(),
+<a href=#1524 id=1524 data-nosnippet>1524</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>),
+<a href=#1525 id=1525 data-nosnippet>1525</a>        );
+<a href=#1526 id=1526 data-nosnippet>1526</a>    }
+<a href=#1527 id=1527 data-nosnippet>1527</a>
+<a href=#1528 id=1528 data-nosnippet>1528</a>    <span class="attr">#[tokio::test]
+<a href=#1529 id=1529 data-nosnippet>1529</a>    </span><span class="kw">async fn </span>test_drop_table() {
+<a href=#1530 id=1530 data-nosnippet>1530</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1531 id=1531 data-nosnippet>1531</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1532 id=1532 data-nosnippet>1532</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1533 id=1533 data-nosnippet>1533</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1534 id=1534 data-nosnippet>1534</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
+<a href=#1535 id=1535 data-nosnippet>1535</a>
+<a href=#1536 id=1536 data-nosnippet>1536</a>        catalog.drop_table(<span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>.unwrap();
+<a href=#1537 id=1537 data-nosnippet>1537</a>    }
+<a href=#1538 id=1538 data-nosnippet>1538</a>
+<a href=#1539 id=1539 data-nosnippet>1539</a>    <span class="attr">#[tokio::test]
+<a href=#1540 id=1540 data-nosnippet>1540</a>    </span><span class="kw">async fn </span>test_drop_table_drops_table_under_nested_namespace() {
+<a href=#1541 id=1541 data-nosnippet>1541</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1542 id=1542 data-nosnippet>1542</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1543 id=1543 data-nosnippet>1543</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#1544 id=1544 data-nosnippet>1544</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
+<a href=#1545 id=1545 data-nosnippet>1545</a>
+<a href=#1546 id=1546 data-nosnippet>1546</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident_a_b.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1547 id=1547 data-nosnippet>1547</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
+<a href=#1548 id=1548 data-nosnippet>1548</a>
+<a href=#1549 id=1549 data-nosnippet>1549</a>        catalog.drop_table(<span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>.unwrap();
 <a href=#1550 id=1550 data-nosnippet>1550</a>
-<a href=#1551 id=1551 data-nosnippet>1551</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident_a_b.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1552 id=1552 data-nosnippet>1552</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
-<a href=#1553 id=1553 data-nosnippet>1553</a>
-<a href=#1554 id=1554 data-nosnippet>1554</a>        catalog.drop_table(<span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>.unwrap();
-<a href=#1555 id=1555 data-nosnippet>1555</a>
-<a href=#1556 id=1556 data-nosnippet>1556</a>        <span class="macro">assert_eq!</span>(
-<a href=#1557 id=1557 data-nosnippet>1557</a>            catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident_a_b).<span class="kw">await</span>.unwrap(),
-<a href=#1558 id=1558 data-nosnippet>1558</a>            <span class="macro">vec!</span>[]
-<a href=#1559 id=1559 data-nosnippet>1559</a>        );
-<a href=#1560 id=1560 data-nosnippet>1560</a>    }
-<a href=#1561 id=1561 data-nosnippet>1561</a>
-<a href=#1562 id=1562 data-nosnippet>1562</a>    <span class="attr">#[tokio::test]
-<a href=#1563 id=1563 data-nosnippet>1563</a>    </span><span class="kw">async fn </span>test_drop_table_throws_error_if_namespace_doesnt_exist() {
-<a href=#1564 id=1564 data-nosnippet>1564</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1565 id=1565 data-nosnippet>1565</a>
-<a href=#1566 id=1566 data-nosnippet>1566</a>        <span class="kw">let </span>non_existent_namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1567 id=1567 data-nosnippet>1567</a>        <span class="kw">let </span>non_existent_table_ident =
-<a href=#1568 id=1568 data-nosnippet>1568</a>            TableIdent::new(non_existent_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1569 id=1569 data-nosnippet>1569</a>
-<a href=#1570 id=1570 data-nosnippet>1570</a>        <span class="macro">assert_eq!</span>(
-<a href=#1571 id=1571 data-nosnippet>1571</a>            catalog
-<a href=#1572 id=1572 data-nosnippet>1572</a>                .drop_table(<span class="kw-2">&amp;</span>non_existent_table_ident)
-<a href=#1573 id=1573 data-nosnippet>1573</a>                .<span class="kw">await
-<a href=#1574 id=1574 data-nosnippet>1574</a>                </span>.unwrap_err()
-<a href=#1575 id=1575 data-nosnippet>1575</a>                .to_string(),
-<a href=#1576 id=1576 data-nosnippet>1576</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>),
-<a href=#1577 id=1577 data-nosnippet>1577</a>        );
-<a href=#1578 id=1578 data-nosnippet>1578</a>    }
-<a href=#1579 id=1579 data-nosnippet>1579</a>
-<a href=#1580 id=1580 data-nosnippet>1580</a>    <span class="attr">#[tokio::test]
-<a href=#1581 id=1581 data-nosnippet>1581</a>    </span><span class="kw">async fn </span>test_drop_table_throws_error_if_table_doesnt_exist() {
-<a href=#1582 id=1582 data-nosnippet>1582</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1583 id=1583 data-nosnippet>1583</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1584 id=1584 data-nosnippet>1584</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1585 id=1585 data-nosnippet>1585</a>
-<a href=#1586 id=1586 data-nosnippet>1586</a>        <span class="kw">let </span>non_existent_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1587 id=1587 data-nosnippet>1587</a>
-<a href=#1588 id=1588 data-nosnippet>1588</a>        <span class="macro">assert_eq!</span>(
-<a href=#1589 id=1589 data-nosnippet>1589</a>            catalog
-<a href=#1590 id=1590 data-nosnippet>1590</a>                .drop_table(<span class="kw-2">&amp;</span>non_existent_table_ident)
-<a href=#1591 id=1591 data-nosnippet>1591</a>                .<span class="kw">await
-<a href=#1592 id=1592 data-nosnippet>1592</a>                </span>.unwrap_err()
-<a href=#1593 id=1593 data-nosnippet>1593</a>                .to_string(),
-<a href=#1594 id=1594 data-nosnippet>1594</a>            <span class="macro">format!</span>(<span class="string">"TableNotFound =&gt; No such table: {non_existent_table_ident:?}"</span>),
-<a href=#1595 id=1595 data-nosnippet>1595</a>        );
-<a href=#1596 id=1596 data-nosnippet>1596</a>    }
-<a href=#1597 id=1597 data-nosnippet>1597</a>
-<a href=#1598 id=1598 data-nosnippet>1598</a>    <span class="attr">#[tokio::test]
-<a href=#1599 id=1599 data-nosnippet>1599</a>    </span><span class="kw">async fn </span>test_table_exists_returns_true() {
-<a href=#1600 id=1600 data-nosnippet>1600</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1601 id=1601 data-nosnippet>1601</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1602 id=1602 data-nosnippet>1602</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1603 id=1603 data-nosnippet>1603</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1604 id=1604 data-nosnippet>1604</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
-<a href=#1605 id=1605 data-nosnippet>1605</a>
-<a href=#1606 id=1606 data-nosnippet>1606</a>        <span class="macro">assert!</span>(catalog.table_exists(<span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>.unwrap());
-<a href=#1607 id=1607 data-nosnippet>1607</a>    }
-<a href=#1608 id=1608 data-nosnippet>1608</a>
-<a href=#1609 id=1609 data-nosnippet>1609</a>    <span class="attr">#[tokio::test]
-<a href=#1610 id=1610 data-nosnippet>1610</a>    </span><span class="kw">async fn </span>test_table_exists_returns_false() {
-<a href=#1611 id=1611 data-nosnippet>1611</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1612 id=1612 data-nosnippet>1612</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1613 id=1613 data-nosnippet>1613</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1614 id=1614 data-nosnippet>1614</a>        <span class="kw">let </span>non_existent_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1615 id=1615 data-nosnippet>1615</a>
-<a href=#1616 id=1616 data-nosnippet>1616</a>        <span class="macro">assert!</span>(
-<a href=#1617 id=1617 data-nosnippet>1617</a>            !catalog
-<a href=#1618 id=1618 data-nosnippet>1618</a>                .table_exists(<span class="kw-2">&amp;</span>non_existent_table_ident)
-<a href=#1619 id=1619 data-nosnippet>1619</a>                .<span class="kw">await
-<a href=#1620 id=1620 data-nosnippet>1620</a>                </span>.unwrap()
-<a href=#1621 id=1621 data-nosnippet>1621</a>        );
-<a href=#1622 id=1622 data-nosnippet>1622</a>    }
-<a href=#1623 id=1623 data-nosnippet>1623</a>
-<a href=#1624 id=1624 data-nosnippet>1624</a>    <span class="attr">#[tokio::test]
-<a href=#1625 id=1625 data-nosnippet>1625</a>    </span><span class="kw">async fn </span>test_table_exists_under_nested_namespace() {
-<a href=#1626 id=1626 data-nosnippet>1626</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1627 id=1627 data-nosnippet>1627</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1628 id=1628 data-nosnippet>1628</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#1629 id=1629 data-nosnippet>1629</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
+<a href=#1551 id=1551 data-nosnippet>1551</a>        <span class="macro">assert_eq!</span>(
+<a href=#1552 id=1552 data-nosnippet>1552</a>            catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident_a_b).<span class="kw">await</span>.unwrap(),
+<a href=#1553 id=1553 data-nosnippet>1553</a>            <span class="macro">vec!</span>[]
+<a href=#1554 id=1554 data-nosnippet>1554</a>        );
+<a href=#1555 id=1555 data-nosnippet>1555</a>    }
+<a href=#1556 id=1556 data-nosnippet>1556</a>
+<a href=#1557 id=1557 data-nosnippet>1557</a>    <span class="attr">#[tokio::test]
+<a href=#1558 id=1558 data-nosnippet>1558</a>    </span><span class="kw">async fn </span>test_drop_table_throws_error_if_namespace_doesnt_exist() {
+<a href=#1559 id=1559 data-nosnippet>1559</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1560 id=1560 data-nosnippet>1560</a>
+<a href=#1561 id=1561 data-nosnippet>1561</a>        <span class="kw">let </span>non_existent_namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1562 id=1562 data-nosnippet>1562</a>        <span class="kw">let </span>non_existent_table_ident =
+<a href=#1563 id=1563 data-nosnippet>1563</a>            TableIdent::new(non_existent_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1564 id=1564 data-nosnippet>1564</a>
+<a href=#1565 id=1565 data-nosnippet>1565</a>        <span class="macro">assert_eq!</span>(
+<a href=#1566 id=1566 data-nosnippet>1566</a>            catalog
+<a href=#1567 id=1567 data-nosnippet>1567</a>                .drop_table(<span class="kw-2">&amp;</span>non_existent_table_ident)
+<a href=#1568 id=1568 data-nosnippet>1568</a>                .<span class="kw">await
+<a href=#1569 id=1569 data-nosnippet>1569</a>                </span>.unwrap_err()
+<a href=#1570 id=1570 data-nosnippet>1570</a>                .to_string(),
+<a href=#1571 id=1571 data-nosnippet>1571</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>),
+<a href=#1572 id=1572 data-nosnippet>1572</a>        );
+<a href=#1573 id=1573 data-nosnippet>1573</a>    }
+<a href=#1574 id=1574 data-nosnippet>1574</a>
+<a href=#1575 id=1575 data-nosnippet>1575</a>    <span class="attr">#[tokio::test]
+<a href=#1576 id=1576 data-nosnippet>1576</a>    </span><span class="kw">async fn </span>test_drop_table_throws_error_if_table_doesnt_exist() {
+<a href=#1577 id=1577 data-nosnippet>1577</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1578 id=1578 data-nosnippet>1578</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1579 id=1579 data-nosnippet>1579</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1580 id=1580 data-nosnippet>1580</a>
+<a href=#1581 id=1581 data-nosnippet>1581</a>        <span class="kw">let </span>non_existent_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1582 id=1582 data-nosnippet>1582</a>
+<a href=#1583 id=1583 data-nosnippet>1583</a>        <span class="macro">assert_eq!</span>(
+<a href=#1584 id=1584 data-nosnippet>1584</a>            catalog
+<a href=#1585 id=1585 data-nosnippet>1585</a>                .drop_table(<span class="kw-2">&amp;</span>non_existent_table_ident)
+<a href=#1586 id=1586 data-nosnippet>1586</a>                .<span class="kw">await
+<a href=#1587 id=1587 data-nosnippet>1587</a>                </span>.unwrap_err()
+<a href=#1588 id=1588 data-nosnippet>1588</a>                .to_string(),
+<a href=#1589 id=1589 data-nosnippet>1589</a>            <span class="macro">format!</span>(<span class="string">"TableNotFound =&gt; No such table: {non_existent_table_ident:?}"</span>),
+<a href=#1590 id=1590 data-nosnippet>1590</a>        );
+<a href=#1591 id=1591 data-nosnippet>1591</a>    }
+<a href=#1592 id=1592 data-nosnippet>1592</a>
+<a href=#1593 id=1593 data-nosnippet>1593</a>    <span class="attr">#[tokio::test]
+<a href=#1594 id=1594 data-nosnippet>1594</a>    </span><span class="kw">async fn </span>test_table_exists_returns_true() {
+<a href=#1595 id=1595 data-nosnippet>1595</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1596 id=1596 data-nosnippet>1596</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1597 id=1597 data-nosnippet>1597</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1598 id=1598 data-nosnippet>1598</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1599 id=1599 data-nosnippet>1599</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
+<a href=#1600 id=1600 data-nosnippet>1600</a>
+<a href=#1601 id=1601 data-nosnippet>1601</a>        <span class="macro">assert!</span>(catalog.table_exists(<span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>.unwrap());
+<a href=#1602 id=1602 data-nosnippet>1602</a>    }
+<a href=#1603 id=1603 data-nosnippet>1603</a>
+<a href=#1604 id=1604 data-nosnippet>1604</a>    <span class="attr">#[tokio::test]
+<a href=#1605 id=1605 data-nosnippet>1605</a>    </span><span class="kw">async fn </span>test_table_exists_returns_false() {
+<a href=#1606 id=1606 data-nosnippet>1606</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1607 id=1607 data-nosnippet>1607</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1608 id=1608 data-nosnippet>1608</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1609 id=1609 data-nosnippet>1609</a>        <span class="kw">let </span>non_existent_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1610 id=1610 data-nosnippet>1610</a>
+<a href=#1611 id=1611 data-nosnippet>1611</a>        <span class="macro">assert!</span>(
+<a href=#1612 id=1612 data-nosnippet>1612</a>            !catalog
+<a href=#1613 id=1613 data-nosnippet>1613</a>                .table_exists(<span class="kw-2">&amp;</span>non_existent_table_ident)
+<a href=#1614 id=1614 data-nosnippet>1614</a>                .<span class="kw">await
+<a href=#1615 id=1615 data-nosnippet>1615</a>                </span>.unwrap()
+<a href=#1616 id=1616 data-nosnippet>1616</a>        );
+<a href=#1617 id=1617 data-nosnippet>1617</a>    }
+<a href=#1618 id=1618 data-nosnippet>1618</a>
+<a href=#1619 id=1619 data-nosnippet>1619</a>    <span class="attr">#[tokio::test]
+<a href=#1620 id=1620 data-nosnippet>1620</a>    </span><span class="kw">async fn </span>test_table_exists_under_nested_namespace() {
+<a href=#1621 id=1621 data-nosnippet>1621</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1622 id=1622 data-nosnippet>1622</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1623 id=1623 data-nosnippet>1623</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#1624 id=1624 data-nosnippet>1624</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>namespace_ident_a, <span class="kw-2">&amp;</span>namespace_ident_a_b]).<span class="kw">await</span>;
+<a href=#1625 id=1625 data-nosnippet>1625</a>
+<a href=#1626 id=1626 data-nosnippet>1626</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident_a_b.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1627 id=1627 data-nosnippet>1627</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
+<a href=#1628 id=1628 data-nosnippet>1628</a>
+<a href=#1629 id=1629 data-nosnippet>1629</a>        <span class="macro">assert!</span>(catalog.table_exists(<span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>.unwrap());
 <a href=#1630 id=1630 data-nosnippet>1630</a>
-<a href=#1631 id=1631 data-nosnippet>1631</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident_a_b.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1632 id=1632 data-nosnippet>1632</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
-<a href=#1633 id=1633 data-nosnippet>1633</a>
-<a href=#1634 id=1634 data-nosnippet>1634</a>        <span class="macro">assert!</span>(catalog.table_exists(<span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>.unwrap());
-<a href=#1635 id=1635 data-nosnippet>1635</a>
-<a href=#1636 id=1636 data-nosnippet>1636</a>        <span class="kw">let </span>non_existent_table_ident = TableIdent::new(namespace_ident_a_b.clone(), <span class="string">"tbl2"</span>.into());
-<a href=#1637 id=1637 data-nosnippet>1637</a>        <span class="macro">assert!</span>(
-<a href=#1638 id=1638 data-nosnippet>1638</a>            !catalog
-<a href=#1639 id=1639 data-nosnippet>1639</a>                .table_exists(<span class="kw-2">&amp;</span>non_existent_table_ident)
-<a href=#1640 id=1640 data-nosnippet>1640</a>                .<span class="kw">await
-<a href=#1641 id=1641 data-nosnippet>1641</a>                </span>.unwrap()
-<a href=#1642 id=1642 data-nosnippet>1642</a>        );
-<a href=#1643 id=1643 data-nosnippet>1643</a>    }
-<a href=#1644 id=1644 data-nosnippet>1644</a>
-<a href=#1645 id=1645 data-nosnippet>1645</a>    <span class="attr">#[tokio::test]
-<a href=#1646 id=1646 data-nosnippet>1646</a>    </span><span class="kw">async fn </span>test_table_exists_throws_error_if_namespace_doesnt_exist() {
-<a href=#1647 id=1647 data-nosnippet>1647</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1648 id=1648 data-nosnippet>1648</a>
-<a href=#1649 id=1649 data-nosnippet>1649</a>        <span class="kw">let </span>non_existent_namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1650 id=1650 data-nosnippet>1650</a>        <span class="kw">let </span>non_existent_table_ident =
-<a href=#1651 id=1651 data-nosnippet>1651</a>            TableIdent::new(non_existent_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1652 id=1652 data-nosnippet>1652</a>
-<a href=#1653 id=1653 data-nosnippet>1653</a>        <span class="macro">assert_eq!</span>(
-<a href=#1654 id=1654 data-nosnippet>1654</a>            catalog
-<a href=#1655 id=1655 data-nosnippet>1655</a>                .table_exists(<span class="kw-2">&amp;</span>non_existent_table_ident)
-<a href=#1656 id=1656 data-nosnippet>1656</a>                .<span class="kw">await
-<a href=#1657 id=1657 data-nosnippet>1657</a>                </span>.unwrap_err()
-<a href=#1658 id=1658 data-nosnippet>1658</a>                .to_string(),
-<a href=#1659 id=1659 data-nosnippet>1659</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>),
-<a href=#1660 id=1660 data-nosnippet>1660</a>        );
-<a href=#1661 id=1661 data-nosnippet>1661</a>    }
-<a href=#1662 id=1662 data-nosnippet>1662</a>
-<a href=#1663 id=1663 data-nosnippet>1663</a>    <span class="attr">#[tokio::test]
-<a href=#1664 id=1664 data-nosnippet>1664</a>    </span><span class="kw">async fn </span>test_rename_table_in_same_namespace() {
-<a href=#1665 id=1665 data-nosnippet>1665</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1666 id=1666 data-nosnippet>1666</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1667 id=1667 data-nosnippet>1667</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1668 id=1668 data-nosnippet>1668</a>        <span class="kw">let </span>src_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1669 id=1669 data-nosnippet>1669</a>        <span class="kw">let </span>dst_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl2"</span>.into());
-<a href=#1670 id=1670 data-nosnippet>1670</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>src_table_ident).<span class="kw">await</span>;
+<a href=#1631 id=1631 data-nosnippet>1631</a>        <span class="kw">let </span>non_existent_table_ident = TableIdent::new(namespace_ident_a_b.clone(), <span class="string">"tbl2"</span>.into());
+<a href=#1632 id=1632 data-nosnippet>1632</a>        <span class="macro">assert!</span>(
+<a href=#1633 id=1633 data-nosnippet>1633</a>            !catalog
+<a href=#1634 id=1634 data-nosnippet>1634</a>                .table_exists(<span class="kw-2">&amp;</span>non_existent_table_ident)
+<a href=#1635 id=1635 data-nosnippet>1635</a>                .<span class="kw">await
+<a href=#1636 id=1636 data-nosnippet>1636</a>                </span>.unwrap()
+<a href=#1637 id=1637 data-nosnippet>1637</a>        );
+<a href=#1638 id=1638 data-nosnippet>1638</a>    }
+<a href=#1639 id=1639 data-nosnippet>1639</a>
+<a href=#1640 id=1640 data-nosnippet>1640</a>    <span class="attr">#[tokio::test]
+<a href=#1641 id=1641 data-nosnippet>1641</a>    </span><span class="kw">async fn </span>test_table_exists_throws_error_if_namespace_doesnt_exist() {
+<a href=#1642 id=1642 data-nosnippet>1642</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1643 id=1643 data-nosnippet>1643</a>
+<a href=#1644 id=1644 data-nosnippet>1644</a>        <span class="kw">let </span>non_existent_namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1645 id=1645 data-nosnippet>1645</a>        <span class="kw">let </span>non_existent_table_ident =
+<a href=#1646 id=1646 data-nosnippet>1646</a>            TableIdent::new(non_existent_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1647 id=1647 data-nosnippet>1647</a>
+<a href=#1648 id=1648 data-nosnippet>1648</a>        <span class="macro">assert_eq!</span>(
+<a href=#1649 id=1649 data-nosnippet>1649</a>            catalog
+<a href=#1650 id=1650 data-nosnippet>1650</a>                .table_exists(<span class="kw-2">&amp;</span>non_existent_table_ident)
+<a href=#1651 id=1651 data-nosnippet>1651</a>                .<span class="kw">await
+<a href=#1652 id=1652 data-nosnippet>1652</a>                </span>.unwrap_err()
+<a href=#1653 id=1653 data-nosnippet>1653</a>                .to_string(),
+<a href=#1654 id=1654 data-nosnippet>1654</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_namespace_ident:?}"</span>),
+<a href=#1655 id=1655 data-nosnippet>1655</a>        );
+<a href=#1656 id=1656 data-nosnippet>1656</a>    }
+<a href=#1657 id=1657 data-nosnippet>1657</a>
+<a href=#1658 id=1658 data-nosnippet>1658</a>    <span class="attr">#[tokio::test]
+<a href=#1659 id=1659 data-nosnippet>1659</a>    </span><span class="kw">async fn </span>test_rename_table_in_same_namespace() {
+<a href=#1660 id=1660 data-nosnippet>1660</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1661 id=1661 data-nosnippet>1661</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1662 id=1662 data-nosnippet>1662</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1663 id=1663 data-nosnippet>1663</a>        <span class="kw">let </span>src_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1664 id=1664 data-nosnippet>1664</a>        <span class="kw">let </span>dst_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl2"</span>.into());
+<a href=#1665 id=1665 data-nosnippet>1665</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>src_table_ident).<span class="kw">await</span>;
+<a href=#1666 id=1666 data-nosnippet>1666</a>
+<a href=#1667 id=1667 data-nosnippet>1667</a>        catalog
+<a href=#1668 id=1668 data-nosnippet>1668</a>            .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
+<a href=#1669 id=1669 data-nosnippet>1669</a>            .<span class="kw">await
+<a href=#1670 id=1670 data-nosnippet>1670</a>            </span>.unwrap();
 <a href=#1671 id=1671 data-nosnippet>1671</a>
-<a href=#1672 id=1672 data-nosnippet>1672</a>        catalog
-<a href=#1673 id=1673 data-nosnippet>1673</a>            .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
-<a href=#1674 id=1674 data-nosnippet>1674</a>            .<span class="kw">await
-<a href=#1675 id=1675 data-nosnippet>1675</a>            </span>.unwrap();
+<a href=#1672 id=1672 data-nosnippet>1672</a>        <span class="macro">assert_eq!</span>(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[
+<a href=#1673 id=1673 data-nosnippet>1673</a>            dst_table_ident
+<a href=#1674 id=1674 data-nosnippet>1674</a>        ],);
+<a href=#1675 id=1675 data-nosnippet>1675</a>    }
 <a href=#1676 id=1676 data-nosnippet>1676</a>
-<a href=#1677 id=1677 data-nosnippet>1677</a>        <span class="macro">assert_eq!</span>(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[
-<a href=#1678 id=1678 data-nosnippet>1678</a>            dst_table_ident
-<a href=#1679 id=1679 data-nosnippet>1679</a>        ],);
-<a href=#1680 id=1680 data-nosnippet>1680</a>    }
-<a href=#1681 id=1681 data-nosnippet>1681</a>
-<a href=#1682 id=1682 data-nosnippet>1682</a>    <span class="attr">#[tokio::test]
-<a href=#1683 id=1683 data-nosnippet>1683</a>    </span><span class="kw">async fn </span>test_rename_table_across_namespaces() {
-<a href=#1684 id=1684 data-nosnippet>1684</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1685 id=1685 data-nosnippet>1685</a>        <span class="kw">let </span>src_namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1686 id=1686 data-nosnippet>1686</a>        <span class="kw">let </span>dst_namespace_ident = NamespaceIdent::new(<span class="string">"b"</span>.into());
-<a href=#1687 id=1687 data-nosnippet>1687</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>src_namespace_ident, <span class="kw-2">&amp;</span>dst_namespace_ident]).<span class="kw">await</span>;
-<a href=#1688 id=1688 data-nosnippet>1688</a>        <span class="kw">let </span>src_table_ident = TableIdent::new(src_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1689 id=1689 data-nosnippet>1689</a>        <span class="kw">let </span>dst_table_ident = TableIdent::new(dst_namespace_ident.clone(), <span class="string">"tbl2"</span>.into());
-<a href=#1690 id=1690 data-nosnippet>1690</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>src_table_ident).<span class="kw">await</span>;
+<a href=#1677 id=1677 data-nosnippet>1677</a>    <span class="attr">#[tokio::test]
+<a href=#1678 id=1678 data-nosnippet>1678</a>    </span><span class="kw">async fn </span>test_rename_table_across_namespaces() {
+<a href=#1679 id=1679 data-nosnippet>1679</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1680 id=1680 data-nosnippet>1680</a>        <span class="kw">let </span>src_namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1681 id=1681 data-nosnippet>1681</a>        <span class="kw">let </span>dst_namespace_ident = NamespaceIdent::new(<span class="string">"b"</span>.into());
+<a href=#1682 id=1682 data-nosnippet>1682</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[<span class="kw-2">&amp;</span>src_namespace_ident, <span class="kw-2">&amp;</span>dst_namespace_ident]).<span class="kw">await</span>;
+<a href=#1683 id=1683 data-nosnippet>1683</a>        <span class="kw">let </span>src_table_ident = TableIdent::new(src_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1684 id=1684 data-nosnippet>1684</a>        <span class="kw">let </span>dst_table_ident = TableIdent::new(dst_namespace_ident.clone(), <span class="string">"tbl2"</span>.into());
+<a href=#1685 id=1685 data-nosnippet>1685</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>src_table_ident).<span class="kw">await</span>;
+<a href=#1686 id=1686 data-nosnippet>1686</a>
+<a href=#1687 id=1687 data-nosnippet>1687</a>        catalog
+<a href=#1688 id=1688 data-nosnippet>1688</a>            .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
+<a href=#1689 id=1689 data-nosnippet>1689</a>            .<span class="kw">await
+<a href=#1690 id=1690 data-nosnippet>1690</a>            </span>.unwrap();
 <a href=#1691 id=1691 data-nosnippet>1691</a>
-<a href=#1692 id=1692 data-nosnippet>1692</a>        catalog
-<a href=#1693 id=1693 data-nosnippet>1693</a>            .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
-<a href=#1694 id=1694 data-nosnippet>1694</a>            .<span class="kw">await
-<a href=#1695 id=1695 data-nosnippet>1695</a>            </span>.unwrap();
+<a href=#1692 id=1692 data-nosnippet>1692</a>        <span class="macro">assert_eq!</span>(
+<a href=#1693 id=1693 data-nosnippet>1693</a>            catalog.list_tables(<span class="kw-2">&amp;</span>src_namespace_ident).<span class="kw">await</span>.unwrap(),
+<a href=#1694 id=1694 data-nosnippet>1694</a>            <span class="macro">vec!</span>[],
+<a href=#1695 id=1695 data-nosnippet>1695</a>        );
 <a href=#1696 id=1696 data-nosnippet>1696</a>
 <a href=#1697 id=1697 data-nosnippet>1697</a>        <span class="macro">assert_eq!</span>(
-<a href=#1698 id=1698 data-nosnippet>1698</a>            catalog.list_tables(<span class="kw-2">&amp;</span>src_namespace_ident).<span class="kw">await</span>.unwrap(),
-<a href=#1699 id=1699 data-nosnippet>1699</a>            <span class="macro">vec!</span>[],
+<a href=#1698 id=1698 data-nosnippet>1698</a>            catalog.list_tables(<span class="kw-2">&amp;</span>dst_namespace_ident).<span class="kw">await</span>.unwrap(),
+<a href=#1699 id=1699 data-nosnippet>1699</a>            <span class="macro">vec!</span>[dst_table_ident],
 <a href=#1700 id=1700 data-nosnippet>1700</a>        );
-<a href=#1701 id=1701 data-nosnippet>1701</a>
-<a href=#1702 id=1702 data-nosnippet>1702</a>        <span class="macro">assert_eq!</span>(
-<a href=#1703 id=1703 data-nosnippet>1703</a>            catalog.list_tables(<span class="kw-2">&amp;</span>dst_namespace_ident).<span class="kw">await</span>.unwrap(),
-<a href=#1704 id=1704 data-nosnippet>1704</a>            <span class="macro">vec!</span>[dst_table_ident],
-<a href=#1705 id=1705 data-nosnippet>1705</a>        );
-<a href=#1706 id=1706 data-nosnippet>1706</a>    }
-<a href=#1707 id=1707 data-nosnippet>1707</a>
-<a href=#1708 id=1708 data-nosnippet>1708</a>    <span class="attr">#[tokio::test]
-<a href=#1709 id=1709 data-nosnippet>1709</a>    </span><span class="kw">async fn </span>test_rename_table_src_table_is_same_as_dst_table() {
-<a href=#1710 id=1710 data-nosnippet>1710</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1711 id=1711 data-nosnippet>1711</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1712 id=1712 data-nosnippet>1712</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1713 id=1713 data-nosnippet>1713</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl"</span>.into());
-<a href=#1714 id=1714 data-nosnippet>1714</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
+<a href=#1701 id=1701 data-nosnippet>1701</a>    }
+<a href=#1702 id=1702 data-nosnippet>1702</a>
+<a href=#1703 id=1703 data-nosnippet>1703</a>    <span class="attr">#[tokio::test]
+<a href=#1704 id=1704 data-nosnippet>1704</a>    </span><span class="kw">async fn </span>test_rename_table_src_table_is_same_as_dst_table() {
+<a href=#1705 id=1705 data-nosnippet>1705</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1706 id=1706 data-nosnippet>1706</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1707 id=1707 data-nosnippet>1707</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1708 id=1708 data-nosnippet>1708</a>        <span class="kw">let </span>table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl"</span>.into());
+<a href=#1709 id=1709 data-nosnippet>1709</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>table_ident).<span class="kw">await</span>;
+<a href=#1710 id=1710 data-nosnippet>1710</a>
+<a href=#1711 id=1711 data-nosnippet>1711</a>        catalog
+<a href=#1712 id=1712 data-nosnippet>1712</a>            .rename_table(<span class="kw-2">&amp;</span>table_ident, <span class="kw-2">&amp;</span>table_ident)
+<a href=#1713 id=1713 data-nosnippet>1713</a>            .<span class="kw">await
+<a href=#1714 id=1714 data-nosnippet>1714</a>            </span>.unwrap();
 <a href=#1715 id=1715 data-nosnippet>1715</a>
-<a href=#1716 id=1716 data-nosnippet>1716</a>        catalog
-<a href=#1717 id=1717 data-nosnippet>1717</a>            .rename_table(<span class="kw-2">&amp;</span>table_ident, <span class="kw-2">&amp;</span>table_ident)
-<a href=#1718 id=1718 data-nosnippet>1718</a>            .<span class="kw">await
-<a href=#1719 id=1719 data-nosnippet>1719</a>            </span>.unwrap();
+<a href=#1716 id=1716 data-nosnippet>1716</a>        <span class="macro">assert_eq!</span>(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[
+<a href=#1717 id=1717 data-nosnippet>1717</a>            table_ident
+<a href=#1718 id=1718 data-nosnippet>1718</a>        ],);
+<a href=#1719 id=1719 data-nosnippet>1719</a>    }
 <a href=#1720 id=1720 data-nosnippet>1720</a>
-<a href=#1721 id=1721 data-nosnippet>1721</a>        <span class="macro">assert_eq!</span>(catalog.list_tables(<span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>.unwrap(), <span class="macro">vec!</span>[
-<a href=#1722 id=1722 data-nosnippet>1722</a>            table_ident
-<a href=#1723 id=1723 data-nosnippet>1723</a>        ],);
-<a href=#1724 id=1724 data-nosnippet>1724</a>    }
-<a href=#1725 id=1725 data-nosnippet>1725</a>
-<a href=#1726 id=1726 data-nosnippet>1726</a>    <span class="attr">#[tokio::test]
-<a href=#1727 id=1727 data-nosnippet>1727</a>    </span><span class="kw">async fn </span>test_rename_table_across_nested_namespaces() {
-<a href=#1728 id=1728 data-nosnippet>1728</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1729 id=1729 data-nosnippet>1729</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1730 id=1730 data-nosnippet>1730</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
-<a href=#1731 id=1731 data-nosnippet>1731</a>        <span class="kw">let </span>namespace_ident_a_b_c = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>]).unwrap();
-<a href=#1732 id=1732 data-nosnippet>1732</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
-<a href=#1733 id=1733 data-nosnippet>1733</a>            <span class="kw-2">&amp;</span>namespace_ident_a,
-<a href=#1734 id=1734 data-nosnippet>1734</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b,
-<a href=#1735 id=1735 data-nosnippet>1735</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b_c,
-<a href=#1736 id=1736 data-nosnippet>1736</a>        ])
-<a href=#1737 id=1737 data-nosnippet>1737</a>        .<span class="kw">await</span>;
-<a href=#1738 id=1738 data-nosnippet>1738</a>
-<a href=#1739 id=1739 data-nosnippet>1739</a>        <span class="kw">let </span>src_table_ident = TableIdent::new(namespace_ident_a_b_c.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1740 id=1740 data-nosnippet>1740</a>        create_tables(<span class="kw-2">&amp;</span>catalog, <span class="macro">vec!</span>[<span class="kw-2">&amp;</span>src_table_ident]).<span class="kw">await</span>;
-<a href=#1741 id=1741 data-nosnippet>1741</a>
-<a href=#1742 id=1742 data-nosnippet>1742</a>        <span class="kw">let </span>dst_table_ident = TableIdent::new(namespace_ident_a_b.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1743 id=1743 data-nosnippet>1743</a>        catalog
-<a href=#1744 id=1744 data-nosnippet>1744</a>            .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
-<a href=#1745 id=1745 data-nosnippet>1745</a>            .<span class="kw">await
-<a href=#1746 id=1746 data-nosnippet>1746</a>            </span>.unwrap();
+<a href=#1721 id=1721 data-nosnippet>1721</a>    <span class="attr">#[tokio::test]
+<a href=#1722 id=1722 data-nosnippet>1722</a>    </span><span class="kw">async fn </span>test_rename_table_across_nested_namespaces() {
+<a href=#1723 id=1723 data-nosnippet>1723</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1724 id=1724 data-nosnippet>1724</a>        <span class="kw">let </span>namespace_ident_a = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1725 id=1725 data-nosnippet>1725</a>        <span class="kw">let </span>namespace_ident_a_b = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>]).unwrap();
+<a href=#1726 id=1726 data-nosnippet>1726</a>        <span class="kw">let </span>namespace_ident_a_b_c = NamespaceIdent::from_strs(<span class="macro">vec!</span>[<span class="string">"a"</span>, <span class="string">"b"</span>, <span class="string">"c"</span>]).unwrap();
+<a href=#1727 id=1727 data-nosnippet>1727</a>        create_namespaces(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span><span class="macro">vec!</span>[
+<a href=#1728 id=1728 data-nosnippet>1728</a>            <span class="kw-2">&amp;</span>namespace_ident_a,
+<a href=#1729 id=1729 data-nosnippet>1729</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b,
+<a href=#1730 id=1730 data-nosnippet>1730</a>            <span class="kw-2">&amp;</span>namespace_ident_a_b_c,
+<a href=#1731 id=1731 data-nosnippet>1731</a>        ])
+<a href=#1732 id=1732 data-nosnippet>1732</a>        .<span class="kw">await</span>;
+<a href=#1733 id=1733 data-nosnippet>1733</a>
+<a href=#1734 id=1734 data-nosnippet>1734</a>        <span class="kw">let </span>src_table_ident = TableIdent::new(namespace_ident_a_b_c.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1735 id=1735 data-nosnippet>1735</a>        create_tables(<span class="kw-2">&amp;</span>catalog, <span class="macro">vec!</span>[<span class="kw-2">&amp;</span>src_table_ident]).<span class="kw">await</span>;
+<a href=#1736 id=1736 data-nosnippet>1736</a>
+<a href=#1737 id=1737 data-nosnippet>1737</a>        <span class="kw">let </span>dst_table_ident = TableIdent::new(namespace_ident_a_b.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1738 id=1738 data-nosnippet>1738</a>        catalog
+<a href=#1739 id=1739 data-nosnippet>1739</a>            .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
+<a href=#1740 id=1740 data-nosnippet>1740</a>            .<span class="kw">await
+<a href=#1741 id=1741 data-nosnippet>1741</a>            </span>.unwrap();
+<a href=#1742 id=1742 data-nosnippet>1742</a>
+<a href=#1743 id=1743 data-nosnippet>1743</a>        <span class="macro">assert!</span>(!catalog.table_exists(<span class="kw-2">&amp;</span>src_table_ident).<span class="kw">await</span>.unwrap());
+<a href=#1744 id=1744 data-nosnippet>1744</a>
+<a href=#1745 id=1745 data-nosnippet>1745</a>        <span class="macro">assert!</span>(catalog.table_exists(<span class="kw-2">&amp;</span>dst_table_ident).<span class="kw">await</span>.unwrap());
+<a href=#1746 id=1746 data-nosnippet>1746</a>    }
 <a href=#1747 id=1747 data-nosnippet>1747</a>
-<a href=#1748 id=1748 data-nosnippet>1748</a>        <span class="macro">assert!</span>(!catalog.table_exists(<span class="kw-2">&amp;</span>src_table_ident).<span class="kw">await</span>.unwrap());
-<a href=#1749 id=1749 data-nosnippet>1749</a>
-<a href=#1750 id=1750 data-nosnippet>1750</a>        <span class="macro">assert!</span>(catalog.table_exists(<span class="kw-2">&amp;</span>dst_table_ident).<span class="kw">await</span>.unwrap());
-<a href=#1751 id=1751 data-nosnippet>1751</a>    }
-<a href=#1752 id=1752 data-nosnippet>1752</a>
-<a href=#1753 id=1753 data-nosnippet>1753</a>    <span class="attr">#[tokio::test]
-<a href=#1754 id=1754 data-nosnippet>1754</a>    </span><span class="kw">async fn </span>test_rename_table_throws_error_if_src_namespace_doesnt_exist() {
-<a href=#1755 id=1755 data-nosnippet>1755</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1756 id=1756 data-nosnippet>1756</a>
-<a href=#1757 id=1757 data-nosnippet>1757</a>        <span class="kw">let </span>non_existent_src_namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1758 id=1758 data-nosnippet>1758</a>        <span class="kw">let </span>src_table_ident =
-<a href=#1759 id=1759 data-nosnippet>1759</a>            TableIdent::new(non_existent_src_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1760 id=1760 data-nosnippet>1760</a>
-<a href=#1761 id=1761 data-nosnippet>1761</a>        <span class="kw">let </span>dst_namespace_ident = NamespaceIdent::new(<span class="string">"n2"</span>.into());
-<a href=#1762 id=1762 data-nosnippet>1762</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>dst_namespace_ident).<span class="kw">await</span>;
-<a href=#1763 id=1763 data-nosnippet>1763</a>        <span class="kw">let </span>dst_table_ident = TableIdent::new(dst_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1764 id=1764 data-nosnippet>1764</a>
-<a href=#1765 id=1765 data-nosnippet>1765</a>        <span class="macro">assert_eq!</span>(
-<a href=#1766 id=1766 data-nosnippet>1766</a>            catalog
-<a href=#1767 id=1767 data-nosnippet>1767</a>                .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
-<a href=#1768 id=1768 data-nosnippet>1768</a>                .<span class="kw">await
-<a href=#1769 id=1769 data-nosnippet>1769</a>                </span>.unwrap_err()
-<a href=#1770 id=1770 data-nosnippet>1770</a>                .to_string(),
-<a href=#1771 id=1771 data-nosnippet>1771</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_src_namespace_ident:?}"</span>),
-<a href=#1772 id=1772 data-nosnippet>1772</a>        );
-<a href=#1773 id=1773 data-nosnippet>1773</a>    }
-<a href=#1774 id=1774 data-nosnippet>1774</a>
-<a href=#1775 id=1775 data-nosnippet>1775</a>    <span class="attr">#[tokio::test]
-<a href=#1776 id=1776 data-nosnippet>1776</a>    </span><span class="kw">async fn </span>test_rename_table_throws_error_if_dst_namespace_doesnt_exist() {
-<a href=#1777 id=1777 data-nosnippet>1777</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1778 id=1778 data-nosnippet>1778</a>        <span class="kw">let </span>src_namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1779 id=1779 data-nosnippet>1779</a>        <span class="kw">let </span>src_table_ident = TableIdent::new(src_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1780 id=1780 data-nosnippet>1780</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>src_namespace_ident).<span class="kw">await</span>;
-<a href=#1781 id=1781 data-nosnippet>1781</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>src_table_ident).<span class="kw">await</span>;
-<a href=#1782 id=1782 data-nosnippet>1782</a>
-<a href=#1783 id=1783 data-nosnippet>1783</a>        <span class="kw">let </span>non_existent_dst_namespace_ident = NamespaceIdent::new(<span class="string">"n2"</span>.into());
-<a href=#1784 id=1784 data-nosnippet>1784</a>        <span class="kw">let </span>dst_table_ident =
-<a href=#1785 id=1785 data-nosnippet>1785</a>            TableIdent::new(non_existent_dst_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1786 id=1786 data-nosnippet>1786</a>        <span class="macro">assert_eq!</span>(
-<a href=#1787 id=1787 data-nosnippet>1787</a>            catalog
-<a href=#1788 id=1788 data-nosnippet>1788</a>                .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
-<a href=#1789 id=1789 data-nosnippet>1789</a>                .<span class="kw">await
-<a href=#1790 id=1790 data-nosnippet>1790</a>                </span>.unwrap_err()
-<a href=#1791 id=1791 data-nosnippet>1791</a>                .to_string(),
-<a href=#1792 id=1792 data-nosnippet>1792</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_dst_namespace_ident:?}"</span>),
-<a href=#1793 id=1793 data-nosnippet>1793</a>        );
-<a href=#1794 id=1794 data-nosnippet>1794</a>    }
-<a href=#1795 id=1795 data-nosnippet>1795</a>
-<a href=#1796 id=1796 data-nosnippet>1796</a>    <span class="attr">#[tokio::test]
-<a href=#1797 id=1797 data-nosnippet>1797</a>    </span><span class="kw">async fn </span>test_rename_table_throws_error_if_src_table_doesnt_exist() {
-<a href=#1798 id=1798 data-nosnippet>1798</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1799 id=1799 data-nosnippet>1799</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1800 id=1800 data-nosnippet>1800</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1801 id=1801 data-nosnippet>1801</a>        <span class="kw">let </span>src_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1802 id=1802 data-nosnippet>1802</a>        <span class="kw">let </span>dst_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl2"</span>.into());
-<a href=#1803 id=1803 data-nosnippet>1803</a>
-<a href=#1804 id=1804 data-nosnippet>1804</a>        <span class="macro">assert_eq!</span>(
-<a href=#1805 id=1805 data-nosnippet>1805</a>            catalog
-<a href=#1806 id=1806 data-nosnippet>1806</a>                .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
-<a href=#1807 id=1807 data-nosnippet>1807</a>                .<span class="kw">await
-<a href=#1808 id=1808 data-nosnippet>1808</a>                </span>.unwrap_err()
-<a href=#1809 id=1809 data-nosnippet>1809</a>                .to_string(),
-<a href=#1810 id=1810 data-nosnippet>1810</a>            <span class="macro">format!</span>(<span class="string">"TableNotFound =&gt; No such table: {src_table_ident:?}"</span>),
-<a href=#1811 id=1811 data-nosnippet>1811</a>        );
-<a href=#1812 id=1812 data-nosnippet>1812</a>    }
-<a href=#1813 id=1813 data-nosnippet>1813</a>
-<a href=#1814 id=1814 data-nosnippet>1814</a>    <span class="attr">#[tokio::test]
-<a href=#1815 id=1815 data-nosnippet>1815</a>    </span><span class="kw">async fn </span>test_rename_table_throws_error_if_dst_table_already_exists() {
-<a href=#1816 id=1816 data-nosnippet>1816</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1817 id=1817 data-nosnippet>1817</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
-<a href=#1818 id=1818 data-nosnippet>1818</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1819 id=1819 data-nosnippet>1819</a>        <span class="kw">let </span>src_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
-<a href=#1820 id=1820 data-nosnippet>1820</a>        <span class="kw">let </span>dst_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl2"</span>.into());
-<a href=#1821 id=1821 data-nosnippet>1821</a>        create_tables(<span class="kw-2">&amp;</span>catalog, <span class="macro">vec!</span>[<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident]).<span class="kw">await</span>;
-<a href=#1822 id=1822 data-nosnippet>1822</a>
-<a href=#1823 id=1823 data-nosnippet>1823</a>        <span class="macro">assert_eq!</span>(
-<a href=#1824 id=1824 data-nosnippet>1824</a>            catalog
-<a href=#1825 id=1825 data-nosnippet>1825</a>                .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
-<a href=#1826 id=1826 data-nosnippet>1826</a>                .<span class="kw">await
-<a href=#1827 id=1827 data-nosnippet>1827</a>                </span>.unwrap_err()
-<a href=#1828 id=1828 data-nosnippet>1828</a>                .to_string(),
-<a href=#1829 id=1829 data-nosnippet>1829</a>            <span class="macro">format!</span>(
-<a href=#1830 id=1830 data-nosnippet>1830</a>                <span class="string">"TableAlreadyExists =&gt; Cannot create table {:?}. Table already exists."</span>,
-<a href=#1831 id=1831 data-nosnippet>1831</a>                <span class="kw-2">&amp;</span>dst_table_ident
-<a href=#1832 id=1832 data-nosnippet>1832</a>            ),
-<a href=#1833 id=1833 data-nosnippet>1833</a>        );
-<a href=#1834 id=1834 data-nosnippet>1834</a>    }
-<a href=#1835 id=1835 data-nosnippet>1835</a>
-<a href=#1836 id=1836 data-nosnippet>1836</a>    <span class="attr">#[tokio::test]
-<a href=#1837 id=1837 data-nosnippet>1837</a>    </span><span class="kw">async fn </span>test_register_table() {
-<a href=#1838 id=1838 data-nosnippet>1838</a>        <span class="comment">// Create a catalog and namespace
-<a href=#1839 id=1839 data-nosnippet>1839</a>        </span><span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1840 id=1840 data-nosnippet>1840</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"test_namespace"</span>.into());
-<a href=#1841 id=1841 data-nosnippet>1841</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1842 id=1842 data-nosnippet>1842</a>
-<a href=#1843 id=1843 data-nosnippet>1843</a>        <span class="comment">// Create a table to get a valid metadata file
-<a href=#1844 id=1844 data-nosnippet>1844</a>        </span><span class="kw">let </span>source_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"source_table"</span>.into());
-<a href=#1845 id=1845 data-nosnippet>1845</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>source_table_ident).<span class="kw">await</span>;
-<a href=#1846 id=1846 data-nosnippet>1846</a>
-<a href=#1847 id=1847 data-nosnippet>1847</a>        <span class="comment">// Get the metadata location from the source table
-<a href=#1848 id=1848 data-nosnippet>1848</a>        </span><span class="kw">let </span>source_table = catalog.load_table(<span class="kw-2">&amp;</span>source_table_ident).<span class="kw">await</span>.unwrap();
-<a href=#1849 id=1849 data-nosnippet>1849</a>        <span class="kw">let </span>metadata_location = source_table.metadata_location().unwrap().to_string();
-<a href=#1850 id=1850 data-nosnippet>1850</a>
-<a href=#1851 id=1851 data-nosnippet>1851</a>        <span class="comment">// Register a new table using the same metadata location
-<a href=#1852 id=1852 data-nosnippet>1852</a>        </span><span class="kw">let </span>register_table_ident =
-<a href=#1853 id=1853 data-nosnippet>1853</a>            TableIdent::new(namespace_ident.clone(), <span class="string">"register_table"</span>.into());
-<a href=#1854 id=1854 data-nosnippet>1854</a>        <span class="kw">let </span>registered_table = catalog
-<a href=#1855 id=1855 data-nosnippet>1855</a>            .register_table(<span class="kw-2">&amp;</span>register_table_ident, metadata_location.clone())
-<a href=#1856 id=1856 data-nosnippet>1856</a>            .<span class="kw">await
-<a href=#1857 id=1857 data-nosnippet>1857</a>            </span>.unwrap();
-<a href=#1858 id=1858 data-nosnippet>1858</a>
-<a href=#1859 id=1859 data-nosnippet>1859</a>        <span class="comment">// Verify the registered table has the correct identifier
-<a href=#1860 id=1860 data-nosnippet>1860</a>        </span><span class="macro">assert_eq!</span>(registered_table.identifier(), <span class="kw-2">&amp;</span>register_table_ident);
-<a href=#1861 id=1861 data-nosnippet>1861</a>
-<a href=#1862 id=1862 data-nosnippet>1862</a>        <span class="comment">// Verify the registered table has the correct metadata location
-<a href=#1863 id=1863 data-nosnippet>1863</a>        </span><span class="macro">assert_eq!</span>(
-<a href=#1864 id=1864 data-nosnippet>1864</a>            registered_table.metadata_location().unwrap().to_string(),
-<a href=#1865 id=1865 data-nosnippet>1865</a>            metadata_location
-<a href=#1866 id=1866 data-nosnippet>1866</a>        );
-<a href=#1867 id=1867 data-nosnippet>1867</a>
-<a href=#1868 id=1868 data-nosnippet>1868</a>        <span class="comment">// Verify the table exists in the catalog
-<a href=#1869 id=1869 data-nosnippet>1869</a>        </span><span class="macro">assert!</span>(catalog.table_exists(<span class="kw-2">&amp;</span>register_table_ident).<span class="kw">await</span>.unwrap());
-<a href=#1870 id=1870 data-nosnippet>1870</a>
-<a href=#1871 id=1871 data-nosnippet>1871</a>        <span class="comment">// Verify we can load the registered table
-<a href=#1872 id=1872 data-nosnippet>1872</a>        </span><span class="kw">let </span>loaded_table = catalog.load_table(<span class="kw-2">&amp;</span>register_table_ident).<span class="kw">await</span>.unwrap();
-<a href=#1873 id=1873 data-nosnippet>1873</a>        <span class="macro">assert_eq!</span>(loaded_table.identifier(), <span class="kw-2">&amp;</span>register_table_ident);
-<a href=#1874 id=1874 data-nosnippet>1874</a>        <span class="macro">assert_eq!</span>(
-<a href=#1875 id=1875 data-nosnippet>1875</a>            loaded_table.metadata_location().unwrap().to_string(),
-<a href=#1876 id=1876 data-nosnippet>1876</a>            metadata_location
-<a href=#1877 id=1877 data-nosnippet>1877</a>        );
-<a href=#1878 id=1878 data-nosnippet>1878</a>    }
-<a href=#1879 id=1879 data-nosnippet>1879</a>
-<a href=#1880 id=1880 data-nosnippet>1880</a>    <span class="attr">#[tokio::test]
-<a href=#1881 id=1881 data-nosnippet>1881</a>    </span><span class="kw">async fn </span>test_update_table() {
-<a href=#1882 id=1882 data-nosnippet>1882</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1748 id=1748 data-nosnippet>1748</a>    <span class="attr">#[tokio::test]
+<a href=#1749 id=1749 data-nosnippet>1749</a>    </span><span class="kw">async fn </span>test_rename_table_throws_error_if_src_namespace_doesnt_exist() {
+<a href=#1750 id=1750 data-nosnippet>1750</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1751 id=1751 data-nosnippet>1751</a>
+<a href=#1752 id=1752 data-nosnippet>1752</a>        <span class="kw">let </span>non_existent_src_namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1753 id=1753 data-nosnippet>1753</a>        <span class="kw">let </span>src_table_ident =
+<a href=#1754 id=1754 data-nosnippet>1754</a>            TableIdent::new(non_existent_src_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1755 id=1755 data-nosnippet>1755</a>
+<a href=#1756 id=1756 data-nosnippet>1756</a>        <span class="kw">let </span>dst_namespace_ident = NamespaceIdent::new(<span class="string">"n2"</span>.into());
+<a href=#1757 id=1757 data-nosnippet>1757</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>dst_namespace_ident).<span class="kw">await</span>;
+<a href=#1758 id=1758 data-nosnippet>1758</a>        <span class="kw">let </span>dst_table_ident = TableIdent::new(dst_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1759 id=1759 data-nosnippet>1759</a>
+<a href=#1760 id=1760 data-nosnippet>1760</a>        <span class="macro">assert_eq!</span>(
+<a href=#1761 id=1761 data-nosnippet>1761</a>            catalog
+<a href=#1762 id=1762 data-nosnippet>1762</a>                .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
+<a href=#1763 id=1763 data-nosnippet>1763</a>                .<span class="kw">await
+<a href=#1764 id=1764 data-nosnippet>1764</a>                </span>.unwrap_err()
+<a href=#1765 id=1765 data-nosnippet>1765</a>                .to_string(),
+<a href=#1766 id=1766 data-nosnippet>1766</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_src_namespace_ident:?}"</span>),
+<a href=#1767 id=1767 data-nosnippet>1767</a>        );
+<a href=#1768 id=1768 data-nosnippet>1768</a>    }
+<a href=#1769 id=1769 data-nosnippet>1769</a>
+<a href=#1770 id=1770 data-nosnippet>1770</a>    <span class="attr">#[tokio::test]
+<a href=#1771 id=1771 data-nosnippet>1771</a>    </span><span class="kw">async fn </span>test_rename_table_throws_error_if_dst_namespace_doesnt_exist() {
+<a href=#1772 id=1772 data-nosnippet>1772</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1773 id=1773 data-nosnippet>1773</a>        <span class="kw">let </span>src_namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1774 id=1774 data-nosnippet>1774</a>        <span class="kw">let </span>src_table_ident = TableIdent::new(src_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1775 id=1775 data-nosnippet>1775</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>src_namespace_ident).<span class="kw">await</span>;
+<a href=#1776 id=1776 data-nosnippet>1776</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>src_table_ident).<span class="kw">await</span>;
+<a href=#1777 id=1777 data-nosnippet>1777</a>
+<a href=#1778 id=1778 data-nosnippet>1778</a>        <span class="kw">let </span>non_existent_dst_namespace_ident = NamespaceIdent::new(<span class="string">"n2"</span>.into());
+<a href=#1779 id=1779 data-nosnippet>1779</a>        <span class="kw">let </span>dst_table_ident =
+<a href=#1780 id=1780 data-nosnippet>1780</a>            TableIdent::new(non_existent_dst_namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1781 id=1781 data-nosnippet>1781</a>        <span class="macro">assert_eq!</span>(
+<a href=#1782 id=1782 data-nosnippet>1782</a>            catalog
+<a href=#1783 id=1783 data-nosnippet>1783</a>                .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
+<a href=#1784 id=1784 data-nosnippet>1784</a>                .<span class="kw">await
+<a href=#1785 id=1785 data-nosnippet>1785</a>                </span>.unwrap_err()
+<a href=#1786 id=1786 data-nosnippet>1786</a>                .to_string(),
+<a href=#1787 id=1787 data-nosnippet>1787</a>            <span class="macro">format!</span>(<span class="string">"NamespaceNotFound =&gt; No such namespace: {non_existent_dst_namespace_ident:?}"</span>),
+<a href=#1788 id=1788 data-nosnippet>1788</a>        );
+<a href=#1789 id=1789 data-nosnippet>1789</a>    }
+<a href=#1790 id=1790 data-nosnippet>1790</a>
+<a href=#1791 id=1791 data-nosnippet>1791</a>    <span class="attr">#[tokio::test]
+<a href=#1792 id=1792 data-nosnippet>1792</a>    </span><span class="kw">async fn </span>test_rename_table_throws_error_if_src_table_doesnt_exist() {
+<a href=#1793 id=1793 data-nosnippet>1793</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1794 id=1794 data-nosnippet>1794</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1795 id=1795 data-nosnippet>1795</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1796 id=1796 data-nosnippet>1796</a>        <span class="kw">let </span>src_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1797 id=1797 data-nosnippet>1797</a>        <span class="kw">let </span>dst_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl2"</span>.into());
+<a href=#1798 id=1798 data-nosnippet>1798</a>
+<a href=#1799 id=1799 data-nosnippet>1799</a>        <span class="macro">assert_eq!</span>(
+<a href=#1800 id=1800 data-nosnippet>1800</a>            catalog
+<a href=#1801 id=1801 data-nosnippet>1801</a>                .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
+<a href=#1802 id=1802 data-nosnippet>1802</a>                .<span class="kw">await
+<a href=#1803 id=1803 data-nosnippet>1803</a>                </span>.unwrap_err()
+<a href=#1804 id=1804 data-nosnippet>1804</a>                .to_string(),
+<a href=#1805 id=1805 data-nosnippet>1805</a>            <span class="macro">format!</span>(<span class="string">"TableNotFound =&gt; No such table: {src_table_ident:?}"</span>),
+<a href=#1806 id=1806 data-nosnippet>1806</a>        );
+<a href=#1807 id=1807 data-nosnippet>1807</a>    }
+<a href=#1808 id=1808 data-nosnippet>1808</a>
+<a href=#1809 id=1809 data-nosnippet>1809</a>    <span class="attr">#[tokio::test]
+<a href=#1810 id=1810 data-nosnippet>1810</a>    </span><span class="kw">async fn </span>test_rename_table_throws_error_if_dst_table_already_exists() {
+<a href=#1811 id=1811 data-nosnippet>1811</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1812 id=1812 data-nosnippet>1812</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"n1"</span>.into());
+<a href=#1813 id=1813 data-nosnippet>1813</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1814 id=1814 data-nosnippet>1814</a>        <span class="kw">let </span>src_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl1"</span>.into());
+<a href=#1815 id=1815 data-nosnippet>1815</a>        <span class="kw">let </span>dst_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"tbl2"</span>.into());
+<a href=#1816 id=1816 data-nosnippet>1816</a>        create_tables(<span class="kw-2">&amp;</span>catalog, <span class="macro">vec!</span>[<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident]).<span class="kw">await</span>;
+<a href=#1817 id=1817 data-nosnippet>1817</a>
+<a href=#1818 id=1818 data-nosnippet>1818</a>        <span class="macro">assert_eq!</span>(
+<a href=#1819 id=1819 data-nosnippet>1819</a>            catalog
+<a href=#1820 id=1820 data-nosnippet>1820</a>                .rename_table(<span class="kw-2">&amp;</span>src_table_ident, <span class="kw-2">&amp;</span>dst_table_ident)
+<a href=#1821 id=1821 data-nosnippet>1821</a>                .<span class="kw">await
+<a href=#1822 id=1822 data-nosnippet>1822</a>                </span>.unwrap_err()
+<a href=#1823 id=1823 data-nosnippet>1823</a>                .to_string(),
+<a href=#1824 id=1824 data-nosnippet>1824</a>            <span class="macro">format!</span>(
+<a href=#1825 id=1825 data-nosnippet>1825</a>                <span class="string">"TableAlreadyExists =&gt; Cannot create table {:?}. Table already exists."</span>,
+<a href=#1826 id=1826 data-nosnippet>1826</a>                <span class="kw-2">&amp;</span>dst_table_ident
+<a href=#1827 id=1827 data-nosnippet>1827</a>            ),
+<a href=#1828 id=1828 data-nosnippet>1828</a>        );
+<a href=#1829 id=1829 data-nosnippet>1829</a>    }
+<a href=#1830 id=1830 data-nosnippet>1830</a>
+<a href=#1831 id=1831 data-nosnippet>1831</a>    <span class="attr">#[tokio::test]
+<a href=#1832 id=1832 data-nosnippet>1832</a>    </span><span class="kw">async fn </span>test_register_table() {
+<a href=#1833 id=1833 data-nosnippet>1833</a>        <span class="comment">// Create a catalog and namespace
+<a href=#1834 id=1834 data-nosnippet>1834</a>        </span><span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1835 id=1835 data-nosnippet>1835</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"test_namespace"</span>.into());
+<a href=#1836 id=1836 data-nosnippet>1836</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1837 id=1837 data-nosnippet>1837</a>
+<a href=#1838 id=1838 data-nosnippet>1838</a>        <span class="comment">// Create a table to get a valid metadata file
+<a href=#1839 id=1839 data-nosnippet>1839</a>        </span><span class="kw">let </span>source_table_ident = TableIdent::new(namespace_ident.clone(), <span class="string">"source_table"</span>.into());
+<a href=#1840 id=1840 data-nosnippet>1840</a>        create_table(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>source_table_ident).<span class="kw">await</span>;
+<a href=#1841 id=1841 data-nosnippet>1841</a>
+<a href=#1842 id=1842 data-nosnippet>1842</a>        <span class="comment">// Get the metadata location from the source table
+<a href=#1843 id=1843 data-nosnippet>1843</a>        </span><span class="kw">let </span>source_table = catalog.load_table(<span class="kw-2">&amp;</span>source_table_ident).<span class="kw">await</span>.unwrap();
+<a href=#1844 id=1844 data-nosnippet>1844</a>        <span class="kw">let </span>metadata_location = source_table.metadata_location().unwrap().to_string();
+<a href=#1845 id=1845 data-nosnippet>1845</a>
+<a href=#1846 id=1846 data-nosnippet>1846</a>        <span class="comment">// Register a new table using the same metadata location
+<a href=#1847 id=1847 data-nosnippet>1847</a>        </span><span class="kw">let </span>register_table_ident =
+<a href=#1848 id=1848 data-nosnippet>1848</a>            TableIdent::new(namespace_ident.clone(), <span class="string">"register_table"</span>.into());
+<a href=#1849 id=1849 data-nosnippet>1849</a>        <span class="kw">let </span>registered_table = catalog
+<a href=#1850 id=1850 data-nosnippet>1850</a>            .register_table(<span class="kw-2">&amp;</span>register_table_ident, metadata_location.clone())
+<a href=#1851 id=1851 data-nosnippet>1851</a>            .<span class="kw">await
+<a href=#1852 id=1852 data-nosnippet>1852</a>            </span>.unwrap();
+<a href=#1853 id=1853 data-nosnippet>1853</a>
+<a href=#1854 id=1854 data-nosnippet>1854</a>        <span class="comment">// Verify the registered table has the correct identifier
+<a href=#1855 id=1855 data-nosnippet>1855</a>        </span><span class="macro">assert_eq!</span>(registered_table.identifier(), <span class="kw-2">&amp;</span>register_table_ident);
+<a href=#1856 id=1856 data-nosnippet>1856</a>
+<a href=#1857 id=1857 data-nosnippet>1857</a>        <span class="comment">// Verify the registered table has the correct metadata location
+<a href=#1858 id=1858 data-nosnippet>1858</a>        </span><span class="macro">assert_eq!</span>(
+<a href=#1859 id=1859 data-nosnippet>1859</a>            registered_table.metadata_location().unwrap().to_string(),
+<a href=#1860 id=1860 data-nosnippet>1860</a>            metadata_location
+<a href=#1861 id=1861 data-nosnippet>1861</a>        );
+<a href=#1862 id=1862 data-nosnippet>1862</a>
+<a href=#1863 id=1863 data-nosnippet>1863</a>        <span class="comment">// Verify the table exists in the catalog
+<a href=#1864 id=1864 data-nosnippet>1864</a>        </span><span class="macro">assert!</span>(catalog.table_exists(<span class="kw-2">&amp;</span>register_table_ident).<span class="kw">await</span>.unwrap());
+<a href=#1865 id=1865 data-nosnippet>1865</a>
+<a href=#1866 id=1866 data-nosnippet>1866</a>        <span class="comment">// Verify we can load the registered table
+<a href=#1867 id=1867 data-nosnippet>1867</a>        </span><span class="kw">let </span>loaded_table = catalog.load_table(<span class="kw-2">&amp;</span>register_table_ident).<span class="kw">await</span>.unwrap();
+<a href=#1868 id=1868 data-nosnippet>1868</a>        <span class="macro">assert_eq!</span>(loaded_table.identifier(), <span class="kw-2">&amp;</span>register_table_ident);
+<a href=#1869 id=1869 data-nosnippet>1869</a>        <span class="macro">assert_eq!</span>(
+<a href=#1870 id=1870 data-nosnippet>1870</a>            loaded_table.metadata_location().unwrap().to_string(),
+<a href=#1871 id=1871 data-nosnippet>1871</a>            metadata_location
+<a href=#1872 id=1872 data-nosnippet>1872</a>        );
+<a href=#1873 id=1873 data-nosnippet>1873</a>    }
+<a href=#1874 id=1874 data-nosnippet>1874</a>
+<a href=#1875 id=1875 data-nosnippet>1875</a>    <span class="attr">#[tokio::test]
+<a href=#1876 id=1876 data-nosnippet>1876</a>    </span><span class="kw">async fn </span>test_update_table() {
+<a href=#1877 id=1877 data-nosnippet>1877</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1878 id=1878 data-nosnippet>1878</a>
+<a href=#1879 id=1879 data-nosnippet>1879</a>        <span class="kw">let </span>table = create_table_with_namespace(<span class="kw-2">&amp;</span>catalog).<span class="kw">await</span>;
+<a href=#1880 id=1880 data-nosnippet>1880</a>
+<a href=#1881 id=1881 data-nosnippet>1881</a>        <span class="comment">// Assert the table doesn't contain the update yet
+<a href=#1882 id=1882 data-nosnippet>1882</a>        </span><span class="macro">assert!</span>(!table.metadata().properties().contains_key(<span class="string">"key"</span>));
 <a href=#1883 id=1883 data-nosnippet>1883</a>
-<a href=#1884 id=1884 data-nosnippet>1884</a>        <span class="kw">let </span>table = create_table_with_namespace(<span class="kw-2">&amp;</span>catalog).<span class="kw">await</span>;
-<a href=#1885 id=1885 data-nosnippet>1885</a>
-<a href=#1886 id=1886 data-nosnippet>1886</a>        <span class="comment">// Assert the table doesn't contain the update yet
-<a href=#1887 id=1887 data-nosnippet>1887</a>        </span><span class="macro">assert!</span>(!table.metadata().properties().contains_key(<span class="string">"key"</span>));
+<a href=#1884 id=1884 data-nosnippet>1884</a>        <span class="comment">// `last_updated_ms` is millisecond-resolution `chrono::Utc::now()`.
+<a href=#1885 id=1885 data-nosnippet>1885</a>        // Without this sleep, create and commit can land in the same
+<a href=#1886 id=1886 data-nosnippet>1886</a>        // millisecond and the `&lt;` assertion below flakes.
+<a href=#1887 id=1887 data-nosnippet>1887</a>        </span>tokio::time::sleep(std::time::Duration::from_millis(<span class="number">2</span>)).<span class="kw">await</span>;
 <a href=#1888 id=1888 data-nosnippet>1888</a>
-<a href=#1889 id=1889 data-nosnippet>1889</a>        <span class="comment">// `last_updated_ms` is millisecond-resolution `chrono::Utc::now()`.
-<a href=#1890 id=1890 data-nosnippet>1890</a>        // Without this sleep, create and commit can land in the same
-<a href=#1891 id=1891 data-nosnippet>1891</a>        // millisecond and the `&lt;` assertion below flakes.
-<a href=#1892 id=1892 data-nosnippet>1892</a>        </span>tokio::time::sleep(std::time::Duration::from_millis(<span class="number">2</span>)).<span class="kw">await</span>;
-<a href=#1893 id=1893 data-nosnippet>1893</a>
-<a href=#1894 id=1894 data-nosnippet>1894</a>        <span class="comment">// Update table metadata
-<a href=#1895 id=1895 data-nosnippet>1895</a>        </span><span class="kw">let </span>tx = Transaction::new(<span class="kw-2">&amp;</span>table);
-<a href=#1896 id=1896 data-nosnippet>1896</a>        <span class="kw">let </span>updated_table = tx
-<a href=#1897 id=1897 data-nosnippet>1897</a>            .update_table_properties()
-<a href=#1898 id=1898 data-nosnippet>1898</a>            .set(<span class="string">"key"</span>.to_string(), <span class="string">"value"</span>.to_string())
-<a href=#1899 id=1899 data-nosnippet>1899</a>            .apply(tx)
-<a href=#1900 id=1900 data-nosnippet>1900</a>            .unwrap()
-<a href=#1901 id=1901 data-nosnippet>1901</a>            .commit(<span class="kw-2">&amp;</span>catalog)
-<a href=#1902 id=1902 data-nosnippet>1902</a>            .<span class="kw">await
-<a href=#1903 id=1903 data-nosnippet>1903</a>            </span>.unwrap();
+<a href=#1889 id=1889 data-nosnippet>1889</a>        <span class="comment">// Update table metadata
+<a href=#1890 id=1890 data-nosnippet>1890</a>        </span><span class="kw">let </span>tx = Transaction::new(<span class="kw-2">&amp;</span>table);
+<a href=#1891 id=1891 data-nosnippet>1891</a>        <span class="kw">let </span>updated_table = tx
+<a href=#1892 id=1892 data-nosnippet>1892</a>            .update_table_properties()
+<a href=#1893 id=1893 data-nosnippet>1893</a>            .set(<span class="string">"key"</span>.to_string(), <span class="string">"value"</span>.to_string())
+<a href=#1894 id=1894 data-nosnippet>1894</a>            .apply(tx)
+<a href=#1895 id=1895 data-nosnippet>1895</a>            .unwrap()
+<a href=#1896 id=1896 data-nosnippet>1896</a>            .commit(<span class="kw-2">&amp;</span>catalog)
+<a href=#1897 id=1897 data-nosnippet>1897</a>            .<span class="kw">await
+<a href=#1898 id=1898 data-nosnippet>1898</a>            </span>.unwrap();
+<a href=#1899 id=1899 data-nosnippet>1899</a>
+<a href=#1900 id=1900 data-nosnippet>1900</a>        <span class="macro">assert_eq!</span>(
+<a href=#1901 id=1901 data-nosnippet>1901</a>            updated_table.metadata().properties().get(<span class="string">"key"</span>).unwrap(),
+<a href=#1902 id=1902 data-nosnippet>1902</a>            <span class="string">"value"
+<a href=#1903 id=1903 data-nosnippet>1903</a>        </span>);
 <a href=#1904 id=1904 data-nosnippet>1904</a>
-<a href=#1905 id=1905 data-nosnippet>1905</a>        <span class="macro">assert_eq!</span>(
-<a href=#1906 id=1906 data-nosnippet>1906</a>            updated_table.metadata().properties().get(<span class="string">"key"</span>).unwrap(),
-<a href=#1907 id=1907 data-nosnippet>1907</a>            <span class="string">"value"
-<a href=#1908 id=1908 data-nosnippet>1908</a>        </span>);
-<a href=#1909 id=1909 data-nosnippet>1909</a>
-<a href=#1910 id=1910 data-nosnippet>1910</a>        <span class="macro">assert_eq!</span>(table.identifier(), updated_table.identifier());
-<a href=#1911 id=1911 data-nosnippet>1911</a>        <span class="macro">assert_eq!</span>(table.metadata().uuid(), updated_table.metadata().uuid());
-<a href=#1912 id=1912 data-nosnippet>1912</a>        <span class="macro">assert_ne!</span>(table.metadata_location(), updated_table.metadata_location());
+<a href=#1905 id=1905 data-nosnippet>1905</a>        <span class="macro">assert_eq!</span>(table.identifier(), updated_table.identifier());
+<a href=#1906 id=1906 data-nosnippet>1906</a>        <span class="macro">assert_eq!</span>(table.metadata().uuid(), updated_table.metadata().uuid());
+<a href=#1907 id=1907 data-nosnippet>1907</a>        <span class="macro">assert_ne!</span>(table.metadata_location(), updated_table.metadata_location());
+<a href=#1908 id=1908 data-nosnippet>1908</a>
+<a href=#1909 id=1909 data-nosnippet>1909</a>        <span class="macro">assert!</span>(
+<a href=#1910 id=1910 data-nosnippet>1910</a>            table.metadata().metadata_log().len() &lt; updated_table.metadata().metadata_log().len()
+<a href=#1911 id=1911 data-nosnippet>1911</a>        );
+<a href=#1912 id=1912 data-nosnippet>1912</a>    }
 <a href=#1913 id=1913 data-nosnippet>1913</a>
-<a href=#1914 id=1914 data-nosnippet>1914</a>        <span class="macro">assert!</span>(
-<a href=#1915 id=1915 data-nosnippet>1915</a>            table.metadata().metadata_log().len() &lt; updated_table.metadata().metadata_log().len()
-<a href=#1916 id=1916 data-nosnippet>1916</a>        );
-<a href=#1917 id=1917 data-nosnippet>1917</a>    }
-<a href=#1918 id=1918 data-nosnippet>1918</a>
-<a href=#1919 id=1919 data-nosnippet>1919</a>    <span class="attr">#[tokio::test]
-<a href=#1920 id=1920 data-nosnippet>1920</a>    </span><span class="kw">async fn </span>test_update_table_fails_if_table_doesnt_exist() {
-<a href=#1921 id=1921 data-nosnippet>1921</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
-<a href=#1922 id=1922 data-nosnippet>1922</a>
-<a href=#1923 id=1923 data-nosnippet>1923</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
-<a href=#1924 id=1924 data-nosnippet>1924</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
-<a href=#1925 id=1925 data-nosnippet>1925</a>
-<a href=#1926 id=1926 data-nosnippet>1926</a>        <span class="comment">// This table is not known to the catalog.
-<a href=#1927 id=1927 data-nosnippet>1927</a>        </span><span class="kw">let </span>table_ident = TableIdent::new(namespace_ident, <span class="string">"test"</span>.to_string());
-<a href=#1928 id=1928 data-nosnippet>1928</a>        <span class="kw">let </span>table = build_table(table_ident);
-<a href=#1929 id=1929 data-nosnippet>1929</a>
-<a href=#1930 id=1930 data-nosnippet>1930</a>        <span class="kw">let </span>tx = Transaction::new(<span class="kw-2">&amp;</span>table);
-<a href=#1931 id=1931 data-nosnippet>1931</a>        <span class="kw">let </span>err = tx
-<a href=#1932 id=1932 data-nosnippet>1932</a>            .update_table_properties()
-<a href=#1933 id=1933 data-nosnippet>1933</a>            .set(<span class="string">"key"</span>.to_string(), <span class="string">"value"</span>.to_string())
-<a href=#1934 id=1934 data-nosnippet>1934</a>            .apply(tx)
-<a href=#1935 id=1935 data-nosnippet>1935</a>            .unwrap()
-<a href=#1936 id=1936 data-nosnippet>1936</a>            .commit(<span class="kw-2">&amp;</span>catalog)
-<a href=#1937 id=1937 data-nosnippet>1937</a>            .<span class="kw">await
-<a href=#1938 id=1938 data-nosnippet>1938</a>            </span>.unwrap_err();
-<a href=#1939 id=1939 data-nosnippet>1939</a>        <span class="macro">assert_eq!</span>(err.kind(), ErrorKind::TableNotFound);
-<a href=#1940 id=1940 data-nosnippet>1940</a>    }
-<a href=#1941 id=1941 data-nosnippet>1941</a>
-<a href=#1942 id=1942 data-nosnippet>1942</a>    <span class="kw">fn </span>build_table(ident: TableIdent) -&gt; Table {
-<a href=#1943 id=1943 data-nosnippet>1943</a>        <span class="kw">let </span>file_io = FileIO::new_with_fs();
-<a href=#1944 id=1944 data-nosnippet>1944</a>
-<a href=#1945 id=1945 data-nosnippet>1945</a>        <span class="kw">let </span>temp_dir = TempDir::new().unwrap();
-<a href=#1946 id=1946 data-nosnippet>1946</a>        <span class="kw">let </span>location = temp_dir.path().to_str().unwrap().to_string();
-<a href=#1947 id=1947 data-nosnippet>1947</a>
-<a href=#1948 id=1948 data-nosnippet>1948</a>        <span class="kw">let </span>table_creation = TableCreation::builder()
-<a href=#1949 id=1949 data-nosnippet>1949</a>            .name(ident.name().to_string())
-<a href=#1950 id=1950 data-nosnippet>1950</a>            .schema(simple_table_schema())
-<a href=#1951 id=1951 data-nosnippet>1951</a>            .location(location)
-<a href=#1952 id=1952 data-nosnippet>1952</a>            .build();
-<a href=#1953 id=1953 data-nosnippet>1953</a>        <span class="kw">let </span>metadata = TableMetadataBuilder::from_table_creation(table_creation)
-<a href=#1954 id=1954 data-nosnippet>1954</a>            .unwrap()
-<a href=#1955 id=1955 data-nosnippet>1955</a>            .build()
-<a href=#1956 id=1956 data-nosnippet>1956</a>            .unwrap()
-<a href=#1957 id=1957 data-nosnippet>1957</a>            .metadata;
-<a href=#1958 id=1958 data-nosnippet>1958</a>
-<a href=#1959 id=1959 data-nosnippet>1959</a>        Table::builder()
-<a href=#1960 id=1960 data-nosnippet>1960</a>            .identifier(ident)
-<a href=#1961 id=1961 data-nosnippet>1961</a>            .metadata(metadata)
-<a href=#1962 id=1962 data-nosnippet>1962</a>            .file_io(file_io)
-<a href=#1963 id=1963 data-nosnippet>1963</a>            .runtime(test_runtime())
-<a href=#1964 id=1964 data-nosnippet>1964</a>            .build()
-<a href=#1965 id=1965 data-nosnippet>1965</a>            .unwrap()
-<a href=#1966 id=1966 data-nosnippet>1966</a>    }
-<a href=#1967 id=1967 data-nosnippet>1967</a>}
+<a href=#1914 id=1914 data-nosnippet>1914</a>    <span class="attr">#[tokio::test]
+<a href=#1915 id=1915 data-nosnippet>1915</a>    </span><span class="kw">async fn </span>test_update_table_fails_if_table_doesnt_exist() {
+<a href=#1916 id=1916 data-nosnippet>1916</a>        <span class="kw">let </span>catalog = new_memory_catalog().<span class="kw">await</span>;
+<a href=#1917 id=1917 data-nosnippet>1917</a>
+<a href=#1918 id=1918 data-nosnippet>1918</a>        <span class="kw">let </span>namespace_ident = NamespaceIdent::new(<span class="string">"a"</span>.into());
+<a href=#1919 id=1919 data-nosnippet>1919</a>        create_namespace(<span class="kw-2">&amp;</span>catalog, <span class="kw-2">&amp;</span>namespace_ident).<span class="kw">await</span>;
+<a href=#1920 id=1920 data-nosnippet>1920</a>
+<a href=#1921 id=1921 data-nosnippet>1921</a>        <span class="comment">// This table is not known to the catalog.
+<a href=#1922 id=1922 data-nosnippet>1922</a>        </span><span class="kw">let </span>table_ident = TableIdent::new(namespace_ident, <span class="string">"test"</span>.to_string());
+<a href=#1923 id=1923 data-nosnippet>1923</a>        <span class="kw">let </span>table = build_table(table_ident);
+<a href=#1924 id=1924 data-nosnippet>1924</a>
+<a href=#1925 id=1925 data-nosnippet>1925</a>        <span class="kw">let </span>tx = Transaction::new(<span class="kw-2">&amp;</span>table);
+<a href=#1926 id=1926 data-nosnippet>1926</a>        <span class="kw">let </span>err = tx
+<a href=#1927 id=1927 data-nosnippet>1927</a>            .update_table_properties()
+<a href=#1928 id=1928 data-nosnippet>1928</a>            .set(<span class="string">"key"</span>.to_string(), <span class="string">"value"</span>.to_string())
+<a href=#1929 id=1929 data-nosnippet>1929</a>            .apply(tx)
+<a href=#1930 id=1930 data-nosnippet>1930</a>            .unwrap()
+<a href=#1931 id=1931 data-nosnippet>1931</a>            .commit(<span class="kw-2">&amp;</span>catalog)
+<a href=#1932 id=1932 data-nosnippet>1932</a>            .<span class="kw">await
+<a href=#1933 id=1933 data-nosnippet>1933</a>            </span>.unwrap_err();
+<a href=#1934 id=1934 data-nosnippet>1934</a>        <span class="macro">assert_eq!</span>(err.kind(), ErrorKind::TableNotFound);
+<a href=#1935 id=1935 data-nosnippet>1935</a>    }
+<a href=#1936 id=1936 data-nosnippet>1936</a>
+<a href=#1937 id=1937 data-nosnippet>1937</a>    <span class="kw">fn </span>build_table(ident: TableIdent) -&gt; Table {
+<a href=#1938 id=1938 data-nosnippet>1938</a>        <span class="kw">let </span>file_io = FileIO::new_with_fs();
+<a href=#1939 id=1939 data-nosnippet>1939</a>
+<a href=#1940 id=1940 data-nosnippet>1940</a>        <span class="kw">let </span>temp_dir = TempDir::new().unwrap();
+<a href=#1941 id=1941 data-nosnippet>1941</a>        <span class="kw">let </span>location = temp_dir.path().to_str().unwrap().to_string();
+<a href=#1942 id=1942 data-nosnippet>1942</a>
+<a href=#1943 id=1943 data-nosnippet>1943</a>        <span class="kw">let </span>table_creation = TableCreation::builder()
+<a href=#1944 id=1944 data-nosnippet>1944</a>            .name(ident.name().to_string())
+<a href=#1945 id=1945 data-nosnippet>1945</a>            .schema(simple_table_schema())
+<a href=#1946 id=1946 data-nosnippet>1946</a>            .location(location)
+<a href=#1947 id=1947 data-nosnippet>1947</a>            .build();
+<a href=#1948 id=1948 data-nosnippet>1948</a>        <span class="kw">let </span>metadata = TableMetadataBuilder::from_table_creation(table_creation)
+<a href=#1949 id=1949 data-nosnippet>1949</a>            .unwrap()
+<a href=#1950 id=1950 data-nosnippet>1950</a>            .build()
+<a href=#1951 id=1951 data-nosnippet>1951</a>            .unwrap()
+<a href=#1952 id=1952 data-nosnippet>1952</a>            .metadata;
+<a href=#1953 id=1953 data-nosnippet>1953</a>
+<a href=#1954 id=1954 data-nosnippet>1954</a>        Table::builder()
+<a href=#1955 id=1955 data-nosnippet>1955</a>            .identifier(ident)
+<a href=#1956 id=1956 data-nosnippet>1956</a>            .metadata(metadata)
+<a href=#1957 id=1957 data-nosnippet>1957</a>            .file_io(file_io)
+<a href=#1958 id=1958 data-nosnippet>1958</a>            .runtime(test_runtime())
+<a href=#1959 id=1959 data-nosnippet>1959</a>            .build()
+<a href=#1960 id=1960 data-nosnippet>1960</a>            .unwrap()
+<a href=#1961 id=1961 data-nosnippet>1961</a>    }
+<a href=#1962 id=1962 data-nosnippet>1962</a>}
 </code></pre></div></section></main></body></html>
\ No newline at end of file
diff --git a/api/src/iceberg/catalog/utils.rs.html b/api/src/iceberg/catalog/utils.rs.html
index fae2911b1..1c510ff34 100644
--- a/api/src/iceberg/catalog/utils.rs.html
+++ b/api/src/iceberg/catalog/utils.rs.html
@@ -23,7 +23,7 @@
 <a href=#23 id=23 data-nosnippet>23</a>
 <a href=#24 id=24 data-nosnippet>24</a><span class="kw">use </span><span class="kw">crate</span>::Result;
 <a href=#25 id=25 data-nosnippet>25</a><span class="kw">use </span><span class="kw">crate</span>::io::FileIO;
-<a href=#26 id=26 data-nosnippet>26</a><span class="kw">use </span><span class="kw">crate</span>::spec::TableMetadata;
+<a href=#26 id=26 data-nosnippet>26</a><span class="kw">use </span><span class="kw">crate</span>::table::Table;
 <a href=#27 id=27 data-nosnippet>27</a>
 <a href=#28 id=28 data-nosnippet>28</a><span class="kw">const </span>DELETE_CONCURRENCY: usize = <span class="number">10</span>;
 <a href=#29 id=29 data-nosnippet>29</a>
@@ -36,90 +36,88 @@
 <a href=#36 id=36 data-nosnippet>36</a>/// Data files within manifests are only deleted if the `gc.enabled` table
 <a href=#37 id=37 data-nosnippet>37</a>/// property is `true` (the default), to avoid corrupting other tables that
 <a href=#38 id=38 data-nosnippet>38</a>/// may share the same data files.
-<a href=#39 id=39 data-nosnippet>39</a></span><span class="kw">pub async fn </span>drop_table_data(
-<a href=#40 id=40 data-nosnippet>40</a>    io: <span class="kw-2">&amp;</span>FileIO,
-<a href=#41 id=41 data-nosnippet>41</a>    metadata: <span class="kw-2">&amp;</span>TableMetadata,
-<a href=#42 id=42 data-nosnippet>42</a>    metadata_location: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>str&gt;,
-<a href=#43 id=43 data-nosnippet>43</a>) -&gt; <span class="prelude-ty">Result</span>&lt;()&gt; {
-<a href=#44 id=44 data-nosnippet>44</a>    <span class="kw">let </span><span class="kw-2">mut </span>manifest_lists_to_delete: HashSet&lt;String&gt; = HashSet::new();
-<a href=#45 id=45 data-nosnippet>45</a>    <span class="kw">let </span><span class="kw-2">mut </span>manifests_to_delete: HashSet&lt;String&gt; = HashSet::new();
-<a href=#46 id=46 data-nosnippet>46</a>
-<a href=#47 id=47 data-nosnippet>47</a>    <span class="comment">// Load all manifest lists concurrently
-<a href=#48 id=48 data-nosnippet>48</a>    </span><span class="kw">let </span>results: Vec&lt;<span class="kw">_</span>&gt; =
-<a href=#49 id=49 data-nosnippet>49</a>        futures::future::try_join_all(metadata.snapshots().map(|snapshot| <span class="kw">async </span>{
-<a href=#50 id=50 data-nosnippet>50</a>            <span class="kw">let </span>manifest_list = snapshot.load_manifest_list(io, metadata).<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#51 id=51 data-nosnippet>51</a>            <span class="prelude-val">Ok</span>::&lt;<span class="kw">_</span>, <span class="kw">crate</span>::Error&gt;((snapshot.manifest_list().to_string(), manifest_list))
-<a href=#52 id=52 data-nosnippet>52</a>        }))
-<a href=#53 id=53 data-nosnippet>53</a>        .<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#54 id=54 data-nosnippet>54</a>
-<a href=#55 id=55 data-nosnippet>55</a>    <span class="kw">for </span>(manifest_list_location, manifest_list) <span class="kw">in </span>results {
-<a href=#56 id=56 data-nosnippet>56</a>        <span class="macro">if !</span>manifest_list_location.is_empty() {
-<a href=#57 id=57 data-nosnippet>57</a>            manifest_lists_to_delete.insert(manifest_list_location);
-<a href=#58 id=58 data-nosnippet>58</a>        }
-<a href=#59 id=59 data-nosnippet>59</a>        <span class="kw">for </span>manifest_file <span class="kw">in </span>manifest_list.entries() {
-<a href=#60 id=60 data-nosnippet>60</a>            manifests_to_delete.insert(manifest_file.manifest_path.clone());
-<a href=#61 id=61 data-nosnippet>61</a>        }
-<a href=#62 id=62 data-nosnippet>62</a>    }
-<a href=#63 id=63 data-nosnippet>63</a>
-<a href=#64 id=64 data-nosnippet>64</a>    <span class="comment">// Delete data files only if gc.enabled is true, to avoid corrupting shared tables
-<a href=#65 id=65 data-nosnippet>65</a>    </span><span class="kw">if </span>metadata.table_properties()<span class="question-mark">?</span>.gc_enabled {
-<a href=#66 id=66 data-nosnippet>66</a>        delete_data_files(io, <span class="kw-2">&amp;</span>manifests_to_delete).<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#67 id=67 data-nosnippet>67</a>    }
-<a href=#68 id=68 data-nosnippet>68</a>
-<a href=#69 id=69 data-nosnippet>69</a>    <span class="comment">// Delete manifest files
-<a href=#70 id=70 data-nosnippet>70</a>    </span>io.delete_stream(stream::iter(manifests_to_delete)).<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#71 id=71 data-nosnippet>71</a>
-<a href=#72 id=72 data-nosnippet>72</a>    <span class="comment">// Delete manifest lists
-<a href=#73 id=73 data-nosnippet>73</a>    </span>io.delete_stream(stream::iter(manifest_lists_to_delete))
-<a href=#74 id=74 data-nosnippet>74</a>        .<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#75 id=75 data-nosnippet>75</a>
-<a href=#76 id=76 data-nosnippet>76</a>    <span class="comment">// Delete previous metadata files
-<a href=#77 id=77 data-nosnippet>77</a>    </span><span class="kw">let </span>prev_metadata_paths: Vec&lt;String&gt; = metadata
-<a href=#78 id=78 data-nosnippet>78</a>        .metadata_log()
-<a href=#79 id=79 data-nosnippet>79</a>        .iter()
-<a href=#80 id=80 data-nosnippet>80</a>        .map(|m| m.metadata_file.clone())
-<a href=#81 id=81 data-nosnippet>81</a>        .collect();
-<a href=#82 id=82 data-nosnippet>82</a>    io.delete_stream(stream::iter(prev_metadata_paths)).<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#83 id=83 data-nosnippet>83</a>
-<a href=#84 id=84 data-nosnippet>84</a>    <span class="comment">// Delete statistics files
-<a href=#85 id=85 data-nosnippet>85</a>    </span><span class="kw">let </span>stats_paths: Vec&lt;String&gt; = metadata
-<a href=#86 id=86 data-nosnippet>86</a>        .statistics_iter()
-<a href=#87 id=87 data-nosnippet>87</a>        .map(|s| s.statistics_path.clone())
-<a href=#88 id=88 data-nosnippet>88</a>        .collect();
-<a href=#89 id=89 data-nosnippet>89</a>    io.delete_stream(stream::iter(stats_paths)).<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#90 id=90 data-nosnippet>90</a>
-<a href=#91 id=91 data-nosnippet>91</a>    <span class="comment">// Delete partition statistics files
-<a href=#92 id=92 data-nosnippet>92</a>    </span><span class="kw">let </span>partition_stats_paths: Vec&lt;String&gt; = metadata
-<a href=#93 id=93 data-nosnippet>93</a>        .partition_statistics_iter()
-<a href=#94 id=94 data-nosnippet>94</a>        .map(|s| s.statistics_path.clone())
-<a href=#95 id=95 data-nosnippet>95</a>        .collect();
-<a href=#96 id=96 data-nosnippet>96</a>    io.delete_stream(stream::iter(partition_stats_paths))
-<a href=#97 id=97 data-nosnippet>97</a>        .<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#98 id=98 data-nosnippet>98</a>
-<a href=#99 id=99 data-nosnippet>99</a>    <span class="comment">// Delete the current metadata file
-<a href=#100 id=100 data-nosnippet>100</a>    </span><span class="kw">if let </span><span class="prelude-val">Some</span>(location) = metadata_location {
-<a href=#101 id=101 data-nosnippet>101</a>        io.delete(location).<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#102 id=102 data-nosnippet>102</a>    }
-<a href=#103 id=103 data-nosnippet>103</a>
-<a href=#104 id=104 data-nosnippet>104</a>    <span class="prelude-val">Ok</span>(())
-<a href=#105 id=105 data-nosnippet>105</a>}
-<a href=#106 id=106 data-nosnippet>106</a>
-<a href=#107 id=107 data-nosnippet>107</a><span class="doccomment">/// Reads manifests concurrently and deletes the data files referenced within.
-<a href=#108 id=108 data-nosnippet>108</a></span><span class="kw">async fn </span>delete_data_files(io: <span class="kw-2">&amp;</span>FileIO, manifest_paths: <span class="kw-2">&amp;</span>HashSet&lt;String&gt;) -&gt; <span class="prelude-ty">Result</span>&lt;()&gt; {
-<a href=#109 id=109 data-nosnippet>109</a>    stream::iter(manifest_paths.iter().map(<span class="prelude-val">Ok</span>))
-<a href=#110 id=110 data-nosnippet>110</a>        .try_for_each_concurrent(DELETE_CONCURRENCY, |manifest_path| <span class="kw">async move </span>{
-<a href=#111 id=111 data-nosnippet>111</a>            <span class="kw">let </span>input = io.new_input(manifest_path)<span class="question-mark">?</span>;
-<a href=#112 id=112 data-nosnippet>112</a>            <span class="kw">let </span>manifest_content = input.read().<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#113 id=113 data-nosnippet>113</a>            <span class="kw">let </span>manifest = <span class="kw">crate</span>::spec::Manifest::parse_avro(<span class="kw-2">&amp;</span>manifest_content)<span class="question-mark">?</span>;
-<a href=#114 id=114 data-nosnippet>114</a>
-<a href=#115 id=115 data-nosnippet>115</a>            <span class="kw">let </span>data_file_paths = manifest
-<a href=#116 id=116 data-nosnippet>116</a>                .entries()
-<a href=#117 id=117 data-nosnippet>117</a>                .iter()
-<a href=#118 id=118 data-nosnippet>118</a>                .map(|entry| entry.data_file.file_path().to_string())
-<a href=#119 id=119 data-nosnippet>119</a>                .collect::&lt;Vec&lt;<span class="kw">_</span>&gt;&gt;();
-<a href=#120 id=120 data-nosnippet>120</a>
-<a href=#121 id=121 data-nosnippet>121</a>            io.delete_stream(stream::iter(data_file_paths)).<span class="kw">await
-<a href=#122 id=122 data-nosnippet>122</a>        </span>})
-<a href=#123 id=123 data-nosnippet>123</a>        .<span class="kw">await
-<a href=#124 id=124 data-nosnippet>124</a></span>}
+<a href=#39 id=39 data-nosnippet>39</a></span><span class="kw">pub async fn </span>drop_table_data(table_info: <span class="kw-2">&amp;</span>Table) -&gt; <span class="prelude-ty">Result</span>&lt;()&gt; {
+<a href=#40 id=40 data-nosnippet>40</a>    <span class="kw">let </span><span class="kw-2">mut </span>manifest_lists_to_delete: HashSet&lt;String&gt; = HashSet::new();
+<a href=#41 id=41 data-nosnippet>41</a>    <span class="kw">let </span><span class="kw-2">mut </span>manifests_to_delete: HashSet&lt;String&gt; = HashSet::new();
+<a href=#42 id=42 data-nosnippet>42</a>
+<a href=#43 id=43 data-nosnippet>43</a>    <span class="kw">let </span>metadata = table_info.metadata_ref();
+<a href=#44 id=44 data-nosnippet>44</a>    <span class="kw">let </span>io = table_info.file_io();
+<a href=#45 id=45 data-nosnippet>45</a>    <span class="comment">// Load all manifest lists concurrently
+<a href=#46 id=46 data-nosnippet>46</a>    </span><span class="kw">let </span>results: Vec&lt;<span class="kw">_</span>&gt; =
+<a href=#47 id=47 data-nosnippet>47</a>        futures::future::try_join_all(metadata.snapshots().map(|snapshot| <span class="kw">async </span>{
+<a href=#48 id=48 data-nosnippet>48</a>            <span class="kw">let </span>manifest_list = table_info.manifest_list_reader(snapshot).load().<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#49 id=49 data-nosnippet>49</a>            <span class="prelude-val">Ok</span>::&lt;<span class="kw">_</span>, <span class="kw">crate</span>::Error&gt;((snapshot.manifest_list().to_string(), manifest_list))
+<a href=#50 id=50 data-nosnippet>50</a>        }))
+<a href=#51 id=51 data-nosnippet>51</a>        .<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#52 id=52 data-nosnippet>52</a>
+<a href=#53 id=53 data-nosnippet>53</a>    <span class="kw">for </span>(manifest_list_location, manifest_list) <span class="kw">in </span>results {
+<a href=#54 id=54 data-nosnippet>54</a>        <span class="macro">if !</span>manifest_list_location.is_empty() {
+<a href=#55 id=55 data-nosnippet>55</a>            manifest_lists_to_delete.insert(manifest_list_location);
+<a href=#56 id=56 data-nosnippet>56</a>        }
+<a href=#57 id=57 data-nosnippet>57</a>        <span class="kw">for </span>manifest_file <span class="kw">in </span>manifest_list.entries() {
+<a href=#58 id=58 data-nosnippet>58</a>            manifests_to_delete.insert(manifest_file.manifest_path.clone());
+<a href=#59 id=59 data-nosnippet>59</a>        }
+<a href=#60 id=60 data-nosnippet>60</a>    }
+<a href=#61 id=61 data-nosnippet>61</a>
+<a href=#62 id=62 data-nosnippet>62</a>    <span class="comment">// Delete data files only if gc.enabled is true, to avoid corrupting shared tables
+<a href=#63 id=63 data-nosnippet>63</a>    </span><span class="kw">if </span>metadata.table_properties()<span class="question-mark">?</span>.gc_enabled {
+<a href=#64 id=64 data-nosnippet>64</a>        delete_data_files(io, <span class="kw-2">&amp;</span>manifests_to_delete).<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#65 id=65 data-nosnippet>65</a>    }
+<a href=#66 id=66 data-nosnippet>66</a>
+<a href=#67 id=67 data-nosnippet>67</a>    <span class="comment">// Delete manifest files
+<a href=#68 id=68 data-nosnippet>68</a>    </span>io.delete_stream(stream::iter(manifests_to_delete)).<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#69 id=69 data-nosnippet>69</a>
+<a href=#70 id=70 data-nosnippet>70</a>    <span class="comment">// Delete manifest lists
+<a href=#71 id=71 data-nosnippet>71</a>    </span>io.delete_stream(stream::iter(manifest_lists_to_delete))
+<a href=#72 id=72 data-nosnippet>72</a>        .<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#73 id=73 data-nosnippet>73</a>
+<a href=#74 id=74 data-nosnippet>74</a>    <span class="comment">// Delete previous metadata files
+<a href=#75 id=75 data-nosnippet>75</a>    </span><span class="kw">let </span>prev_metadata_paths: Vec&lt;String&gt; = metadata
+<a href=#76 id=76 data-nosnippet>76</a>        .metadata_log()
+<a href=#77 id=77 data-nosnippet>77</a>        .iter()
+<a href=#78 id=78 data-nosnippet>78</a>        .map(|m| m.metadata_file.clone())
+<a href=#79 id=79 data-nosnippet>79</a>        .collect();
+<a href=#80 id=80 data-nosnippet>80</a>    io.delete_stream(stream::iter(prev_metadata_paths)).<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#81 id=81 data-nosnippet>81</a>
+<a href=#82 id=82 data-nosnippet>82</a>    <span class="comment">// Delete statistics files
+<a href=#83 id=83 data-nosnippet>83</a>    </span><span class="kw">let </span>stats_paths: Vec&lt;String&gt; = metadata
+<a href=#84 id=84 data-nosnippet>84</a>        .statistics_iter()
+<a href=#85 id=85 data-nosnippet>85</a>        .map(|s| s.statistics_path.clone())
+<a href=#86 id=86 data-nosnippet>86</a>        .collect();
+<a href=#87 id=87 data-nosnippet>87</a>    io.delete_stream(stream::iter(stats_paths)).<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#88 id=88 data-nosnippet>88</a>
+<a href=#89 id=89 data-nosnippet>89</a>    <span class="comment">// Delete partition statistics files
+<a href=#90 id=90 data-nosnippet>90</a>    </span><span class="kw">let </span>partition_stats_paths: Vec&lt;String&gt; = metadata
+<a href=#91 id=91 data-nosnippet>91</a>        .partition_statistics_iter()
+<a href=#92 id=92 data-nosnippet>92</a>        .map(|s| s.statistics_path.clone())
+<a href=#93 id=93 data-nosnippet>93</a>        .collect();
+<a href=#94 id=94 data-nosnippet>94</a>    io.delete_stream(stream::iter(partition_stats_paths))
+<a href=#95 id=95 data-nosnippet>95</a>        .<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#96 id=96 data-nosnippet>96</a>
+<a href=#97 id=97 data-nosnippet>97</a>    <span class="comment">// Delete the current metadata file
+<a href=#98 id=98 data-nosnippet>98</a>    </span><span class="kw">if let </span><span class="prelude-val">Some</span>(location) = table_info.metadata_location() {
+<a href=#99 id=99 data-nosnippet>99</a>        io.delete(location).<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#100 id=100 data-nosnippet>100</a>    }
+<a href=#101 id=101 data-nosnippet>101</a>
+<a href=#102 id=102 data-nosnippet>102</a>    <span class="prelude-val">Ok</span>(())
+<a href=#103 id=103 data-nosnippet>103</a>}
+<a href=#104 id=104 data-nosnippet>104</a>
+<a href=#105 id=105 data-nosnippet>105</a><span class="doccomment">/// Reads manifests concurrently and deletes the data files referenced within.
+<a href=#106 id=106 data-nosnippet>106</a></span><span class="kw">async fn </span>delete_data_files(io: <span class="kw-2">&amp;</span>FileIO, manifest_paths: <span class="kw-2">&amp;</span>HashSet&lt;String&gt;) -&gt; <span class="prelude-ty">Result</span>&lt;()&gt; {
+<a href=#107 id=107 data-nosnippet>107</a>    stream::iter(manifest_paths.iter().map(<span class="prelude-val">Ok</span>))
+<a href=#108 id=108 data-nosnippet>108</a>        .try_for_each_concurrent(DELETE_CONCURRENCY, |manifest_path| <span class="kw">async move </span>{
+<a href=#109 id=109 data-nosnippet>109</a>            <span class="kw">let </span>input = io.new_input(manifest_path)<span class="question-mark">?</span>;
+<a href=#110 id=110 data-nosnippet>110</a>            <span class="kw">let </span>manifest_content = input.read().<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#111 id=111 data-nosnippet>111</a>            <span class="kw">let </span>manifest = <span class="kw">crate</span>::spec::Manifest::parse_avro(<span class="kw-2">&amp;</span>manifest_content)<span class="question-mark">?</span>;
+<a href=#112 id=112 data-nosnippet>112</a>
+<a href=#113 id=113 data-nosnippet>113</a>            <span class="kw">let </span>data_file_paths = manifest
+<a href=#114 id=114 data-nosnippet>114</a>                .entries()
+<a href=#115 id=115 data-nosnippet>115</a>                .iter()
+<a href=#116 id=116 data-nosnippet>116</a>                .map(|entry| entry.data_file.file_path().to_string())
+<a href=#117 id=117 data-nosnippet>117</a>                .collect::&lt;Vec&lt;<span class="kw">_</span>&gt;&gt;();
+<a href=#118 id=118 data-nosnippet>118</a>
+<a href=#119 id=119 data-nosnippet>119</a>            io.delete_stream(stream::iter(data_file_paths)).<span class="kw">await
+<a href=#120 id=120 data-nosnippet>120</a>        </span>})
+<a href=#121 id=121 data-nosnippet>121</a>        .<span class="kw">await
+<a href=#122 id=122 data-nosnippet>122</a></span>}
 </code></pre></div></section></main></body></html>
\ No newline at end of file
diff --git a/api/src/iceberg/inspect/manifests.rs.html b/api/src/iceberg/inspect/manifests.rs.html
index a806a30e9..0bae26610 100644
--- a/api/src/iceberg/inspect/manifests.rs.html
+++ b/api/src/iceberg/inspect/manifests.rs.html
@@ -161,225 +161,223 @@
 <a href=#161 id=161 data-nosnippet>161</a>        <span class="kw">let </span><span class="kw-2">mut </span>partition_summaries = <span class="self">self</span>.partition_summary_builder()<span class="question-mark">?</span>;
 <a href=#162 id=162 data-nosnippet>162</a>
 <a href=#163 id=163 data-nosnippet>163</a>        <span class="kw">if let </span><span class="prelude-val">Some</span>(snapshot) = <span class="self">self</span>.table.metadata().current_snapshot() {
-<a href=#164 id=164 data-nosnippet>164</a>            <span class="kw">let </span>manifest_list = snapshot
-<a href=#165 id=165 data-nosnippet>165</a>                .load_manifest_list(<span class="self">self</span>.table.file_io(), <span class="kw-2">&amp;</span><span class="self">self</span>.table.metadata_ref())
-<a href=#166 id=166 data-nosnippet>166</a>                .<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#167 id=167 data-nosnippet>167</a>            <span class="kw">for </span>manifest <span class="kw">in </span>manifest_list.entries() {
-<a href=#168 id=168 data-nosnippet>168</a>                content.append_value(manifest.content <span class="kw">as </span>i32);
-<a href=#169 id=169 data-nosnippet>169</a>                path.append_value(manifest.manifest_path.clone());
-<a href=#170 id=170 data-nosnippet>170</a>                length.append_value(manifest.manifest_length);
-<a href=#171 id=171 data-nosnippet>171</a>                partition_spec_id.append_value(manifest.partition_spec_id);
-<a href=#172 id=172 data-nosnippet>172</a>                added_snapshot_id.append_value(manifest.added_snapshot_id);
-<a href=#173 id=173 data-nosnippet>173</a>                added_data_files_count.append_value(manifest.added_files_count.unwrap_or(<span class="number">0</span>) <span class="kw">as </span>i32);
-<a href=#174 id=174 data-nosnippet>174</a>                existing_data_files_count
-<a href=#175 id=175 data-nosnippet>175</a>                    .append_value(manifest.existing_files_count.unwrap_or(<span class="number">0</span>) <span class="kw">as </span>i32);
-<a href=#176 id=176 data-nosnippet>176</a>                deleted_data_files_count
-<a href=#177 id=177 data-nosnippet>177</a>                    .append_value(manifest.deleted_files_count.unwrap_or(<span class="number">0</span>) <span class="kw">as </span>i32);
-<a href=#178 id=178 data-nosnippet>178</a>                added_delete_files_count
-<a href=#179 id=179 data-nosnippet>179</a>                    .append_value(manifest.added_files_count.unwrap_or(<span class="number">0</span>) <span class="kw">as </span>i32);
-<a href=#180 id=180 data-nosnippet>180</a>                existing_delete_files_count
-<a href=#181 id=181 data-nosnippet>181</a>                    .append_value(manifest.existing_files_count.unwrap_or(<span class="number">0</span>) <span class="kw">as </span>i32);
-<a href=#182 id=182 data-nosnippet>182</a>                deleted_delete_files_count
-<a href=#183 id=183 data-nosnippet>183</a>                    .append_value(manifest.deleted_files_count.unwrap_or(<span class="number">0</span>) <span class="kw">as </span>i32);
-<a href=#184 id=184 data-nosnippet>184</a>
-<a href=#185 id=185 data-nosnippet>185</a>                <span class="kw">let </span>spec = <span class="self">self
-<a href=#186 id=186 data-nosnippet>186</a>                    </span>.table
-<a href=#187 id=187 data-nosnippet>187</a>                    .metadata()
-<a href=#188 id=188 data-nosnippet>188</a>                    .partition_spec_by_id(manifest.partition_spec_id)
-<a href=#189 id=189 data-nosnippet>189</a>                    .unwrap();
-<a href=#190 id=190 data-nosnippet>190</a>                <span class="kw">let </span>spec_struct = spec
-<a href=#191 id=191 data-nosnippet>191</a>                    .partition_type(<span class="self">self</span>.table.metadata().current_schema())
-<a href=#192 id=192 data-nosnippet>192</a>                    .unwrap();
-<a href=#193 id=193 data-nosnippet>193</a>                <span class="self">self</span>.append_partition_summaries(
-<a href=#194 id=194 data-nosnippet>194</a>                    <span class="kw-2">&amp;mut </span>partition_summaries,
-<a href=#195 id=195 data-nosnippet>195</a>                    <span class="kw-2">&amp;</span>manifest.partitions.clone().unwrap_or_else(Vec::new),
-<a href=#196 id=196 data-nosnippet>196</a>                    spec_struct,
-<a href=#197 id=197 data-nosnippet>197</a>                );
-<a href=#198 id=198 data-nosnippet>198</a>            }
-<a href=#199 id=199 data-nosnippet>199</a>        }
-<a href=#200 id=200 data-nosnippet>200</a>
-<a href=#201 id=201 data-nosnippet>201</a>        <span class="kw">let </span>batch = RecordBatch::try_new(Arc::new(schema), <span class="macro">vec!</span>[
-<a href=#202 id=202 data-nosnippet>202</a>            Arc::new(content.finish()),
-<a href=#203 id=203 data-nosnippet>203</a>            Arc::new(path.finish()),
-<a href=#204 id=204 data-nosnippet>204</a>            Arc::new(length.finish()),
-<a href=#205 id=205 data-nosnippet>205</a>            Arc::new(partition_spec_id.finish()),
-<a href=#206 id=206 data-nosnippet>206</a>            Arc::new(added_snapshot_id.finish()),
-<a href=#207 id=207 data-nosnippet>207</a>            Arc::new(added_data_files_count.finish()),
-<a href=#208 id=208 data-nosnippet>208</a>            Arc::new(existing_data_files_count.finish()),
-<a href=#209 id=209 data-nosnippet>209</a>            Arc::new(deleted_data_files_count.finish()),
-<a href=#210 id=210 data-nosnippet>210</a>            Arc::new(added_delete_files_count.finish()),
-<a href=#211 id=211 data-nosnippet>211</a>            Arc::new(existing_delete_files_count.finish()),
-<a href=#212 id=212 data-nosnippet>212</a>            Arc::new(deleted_delete_files_count.finish()),
-<a href=#213 id=213 data-nosnippet>213</a>            Arc::new(partition_summaries.finish()),
-<a href=#214 id=214 data-nosnippet>214</a>        ])<span class="question-mark">?</span>;
-<a href=#215 id=215 data-nosnippet>215</a>        <span class="prelude-val">Ok</span>(stream::iter(<span class="macro">vec!</span>[<span class="prelude-val">Ok</span>(batch)]).boxed())
-<a href=#216 id=216 data-nosnippet>216</a>    }
-<a href=#217 id=217 data-nosnippet>217</a>
-<a href=#218 id=218 data-nosnippet>218</a>    <span class="kw">fn </span>partition_summary_builder(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Result</span>&lt;GenericListBuilder&lt;i32, StructBuilder&gt;&gt; {
-<a href=#219 id=219 data-nosnippet>219</a>        <span class="kw">let </span>schema = schema_to_arrow_schema(<span class="kw-2">&amp;</span><span class="self">self</span>.schema())<span class="question-mark">?</span>;
-<a href=#220 id=220 data-nosnippet>220</a>        <span class="kw">let </span>partition_summary_fields =
-<a href=#221 id=221 data-nosnippet>221</a>            <span class="kw">match </span>schema.field_with_name(<span class="string">"partition_summaries"</span>)<span class="question-mark">?</span>.data_type() {
-<a href=#222 id=222 data-nosnippet>222</a>                DataType::List(list_type) =&gt; <span class="kw">match </span>list_type.data_type() {
-<a href=#223 id=223 data-nosnippet>223</a>                    DataType::Struct(fields) =&gt; fields.to_vec(),
-<a href=#224 id=224 data-nosnippet>224</a>                    <span class="kw">_ </span>=&gt; <span class="macro">unreachable!</span>(),
-<a href=#225 id=225 data-nosnippet>225</a>                },
-<a href=#226 id=226 data-nosnippet>226</a>                <span class="kw">_ </span>=&gt; <span class="macro">unreachable!</span>(),
-<a href=#227 id=227 data-nosnippet>227</a>            };
-<a href=#228 id=228 data-nosnippet>228</a>
-<a href=#229 id=229 data-nosnippet>229</a>        <span class="kw">let </span>partition_summaries = ListBuilder::new(StructBuilder::from_fields(
-<a href=#230 id=230 data-nosnippet>230</a>            Fields::from(partition_summary_fields.clone()),
-<a href=#231 id=231 data-nosnippet>231</a>            <span class="number">0</span>,
-<a href=#232 id=232 data-nosnippet>232</a>        ))
-<a href=#233 id=233 data-nosnippet>233</a>        .with_field(Arc::new(
-<a href=#234 id=234 data-nosnippet>234</a>            Field::new_struct(<span class="string">"item"</span>, partition_summary_fields, <span class="bool-val">false</span>).with_metadata(
-<a href=#235 id=235 data-nosnippet>235</a>                HashMap::from([(<span class="string">"PARQUET:field_id"</span>.to_string(), <span class="string">"9"</span>.to_string())]),
-<a href=#236 id=236 data-nosnippet>236</a>            ),
-<a href=#237 id=237 data-nosnippet>237</a>        ));
-<a href=#238 id=238 data-nosnippet>238</a>
-<a href=#239 id=239 data-nosnippet>239</a>        <span class="prelude-val">Ok</span>(partition_summaries)
-<a href=#240 id=240 data-nosnippet>240</a>    }
-<a href=#241 id=241 data-nosnippet>241</a>
-<a href=#242 id=242 data-nosnippet>242</a>    <span class="kw">fn </span>append_partition_summaries(
-<a href=#243 id=243 data-nosnippet>243</a>        <span class="kw-2">&amp;</span><span class="self">self</span>,
-<a href=#244 id=244 data-nosnippet>244</a>        builder: <span class="kw-2">&amp;mut </span>GenericListBuilder&lt;i32, StructBuilder&gt;,
-<a href=#245 id=245 data-nosnippet>245</a>        partitions: <span class="kw-2">&amp;</span>[FieldSummary],
-<a href=#246 id=246 data-nosnippet>246</a>        partition_struct: StructType,
-<a href=#247 id=247 data-nosnippet>247</a>    ) {
-<a href=#248 id=248 data-nosnippet>248</a>        <span class="kw">let </span>partition_summaries_builder = builder.values();
-<a href=#249 id=249 data-nosnippet>249</a>        <span class="kw">for </span>(summary, field) <span class="kw">in </span>partitions.iter().zip(partition_struct.fields()) {
-<a href=#250 id=250 data-nosnippet>250</a>            partition_summaries_builder
-<a href=#251 id=251 data-nosnippet>251</a>                .field_builder::&lt;BooleanBuilder&gt;(<span class="number">0</span>)
-<a href=#252 id=252 data-nosnippet>252</a>                .unwrap()
-<a href=#253 id=253 data-nosnippet>253</a>                .append_value(summary.contains_null);
-<a href=#254 id=254 data-nosnippet>254</a>            partition_summaries_builder
-<a href=#255 id=255 data-nosnippet>255</a>                .field_builder::&lt;BooleanBuilder&gt;(<span class="number">1</span>)
-<a href=#256 id=256 data-nosnippet>256</a>                .unwrap()
-<a href=#257 id=257 data-nosnippet>257</a>                .append_option(summary.contains_nan);
-<a href=#258 id=258 data-nosnippet>258</a>
-<a href=#259 id=259 data-nosnippet>259</a>            partition_summaries_builder
-<a href=#260 id=260 data-nosnippet>260</a>                .field_builder::&lt;StringBuilder&gt;(<span class="number">2</span>)
-<a href=#261 id=261 data-nosnippet>261</a>                .unwrap()
-<a href=#262 id=262 data-nosnippet>262</a>                .append_option(summary.lower_bound.as_ref().map(|v| {
-<a href=#263 id=263 data-nosnippet>263</a>                    Datum::try_from_bytes(v, field.field_type.as_primitive_type().unwrap().clone())
-<a href=#264 id=264 data-nosnippet>264</a>                        .unwrap()
-<a href=#265 id=265 data-nosnippet>265</a>                        .to_string()
-<a href=#266 id=266 data-nosnippet>266</a>                }));
-<a href=#267 id=267 data-nosnippet>267</a>            partition_summaries_builder
-<a href=#268 id=268 data-nosnippet>268</a>                .field_builder::&lt;StringBuilder&gt;(<span class="number">3</span>)
-<a href=#269 id=269 data-nosnippet>269</a>                .unwrap()
-<a href=#270 id=270 data-nosnippet>270</a>                .append_option(summary.upper_bound.as_ref().map(|v| {
-<a href=#271 id=271 data-nosnippet>271</a>                    Datum::try_from_bytes(v, field.field_type.as_primitive_type().unwrap().clone())
-<a href=#272 id=272 data-nosnippet>272</a>                        .unwrap()
-<a href=#273 id=273 data-nosnippet>273</a>                        .to_string()
-<a href=#274 id=274 data-nosnippet>274</a>                }));
-<a href=#275 id=275 data-nosnippet>275</a>            partition_summaries_builder.append(<span class="bool-val">true</span>);
-<a href=#276 id=276 data-nosnippet>276</a>        }
-<a href=#277 id=277 data-nosnippet>277</a>        builder.append(<span class="bool-val">true</span>);
-<a href=#278 id=278 data-nosnippet>278</a>    }
-<a href=#279 id=279 data-nosnippet>279</a>}
-<a href=#280 id=280 data-nosnippet>280</a>
-<a href=#281 id=281 data-nosnippet>281</a><span class="attr">#[cfg(test)]
-<a href=#282 id=282 data-nosnippet>282</a></span><span class="kw">mod </span>tests {
-<a href=#283 id=283 data-nosnippet>283</a>    <span class="kw">use </span>expect_test::expect;
-<a href=#284 id=284 data-nosnippet>284</a>    <span class="kw">use </span>futures::TryStreamExt;
-<a href=#285 id=285 data-nosnippet>285</a>
-<a href=#286 id=286 data-nosnippet>286</a>    <span class="kw">use </span><span class="kw">crate</span>::scan::tests::TableTestFixture;
-<a href=#287 id=287 data-nosnippet>287</a>    <span class="kw">use </span><span class="kw">crate</span>::test_utils::check_record_batches;
-<a href=#288 id=288 data-nosnippet>288</a>
-<a href=#289 id=289 data-nosnippet>289</a>    <span class="attr">#[tokio::test]
-<a href=#290 id=290 data-nosnippet>290</a>    </span><span class="kw">async fn </span>test_manifests_table() {
-<a href=#291 id=291 data-nosnippet>291</a>        <span class="kw">let </span><span class="kw-2">mut </span>fixture = TableTestFixture::new();
-<a href=#292 id=292 data-nosnippet>292</a>        fixture.setup_manifest_files().<span class="kw">await</span>;
+<a href=#164 id=164 data-nosnippet>164</a>            <span class="kw">let </span>manifest_list = <span class="self">self</span>.table.manifest_list_reader(snapshot).load().<span class="kw">await</span><span class="question-mark">?</span>;
+<a href=#165 id=165 data-nosnippet>165</a>            <span class="kw">for </span>manifest <span class="kw">in </span>manifest_list.entries() {
+<a href=#166 id=166 data-nosnippet>166</a>                content.append_value(manifest.content <span class="kw">as </span>i32);
+<a href=#167 id=167 data-nosnippet>167</a>                path.append_value(manifest.manifest_path.clone());
+<a href=#168 id=168 data-nosnippet>168</a>                length.append_value(manifest.manifest_length);
+<a href=#169 id=169 data-nosnippet>169</a>                partition_spec_id.append_value(manifest.partition_spec_id);
+<a href=#170 id=170 data-nosnippet>170</a>                added_snapshot_id.append_value(manifest.added_snapshot_id);
+<a href=#171 id=171 data-nosnippet>171</a>                added_data_files_count.append_value(manifest.added_files_count.unwrap_or(<span class="number">0</span>) <span class="kw">as </span>i32);
+<a href=#172 id=172 data-nosnippet>172</a>                existing_data_files_count
+<a href=#173 id=173 data-nosnippet>173</a>                    .append_value(manifest.existing_files_count.unwrap_or(<span class="number">0</span>) <span class="kw">as </span>i32);
+<a href=#174 id=174 data-nosnippet>174</a>                deleted_data_files_count
+<a href=#175 id=175 data-nosnippet>175</a>                    .append_value(manifest.deleted_files_count.unwrap_or(<span class="number">0</span>) <span class="kw">as </span>i32);
+<a href=#176 id=176 data-nosnippet>176</a>                added_delete_files_count
+<a href=#177 id=177 data-nosnippet>177</a>                    .append_value(manifest.added_files_count.unwrap_or(<span class="number">0</span>) <span class="kw">as </span>i32);
+<a href=#178 id=178 data-nosnippet>178</a>                existing_delete_files_count
+<a href=#179 id=179 data-nosnippet>179</a>                    .append_value(manifest.existing_files_count.unwrap_or(<span class="number">0</span>) <span class="kw">as </span>i32);
+<a href=#180 id=180 data-nosnippet>180</a>                deleted_delete_files_count
+<a href=#181 id=181 data-nosnippet>181</a>                    .append_value(manifest.deleted_files_count.unwrap_or(<span class="number">0</span>) <span class="kw">as </span>i32);
+<a href=#182 id=182 data-nosnippet>182</a>
+<a href=#183 id=183 data-nosnippet>183</a>                <span class="kw">let </span>spec = <span class="self">self
+<a href=#184 id=184 data-nosnippet>184</a>                    </span>.table
+<a href=#185 id=185 data-nosnippet>185</a>                    .metadata()
+<a href=#186 id=186 data-nosnippet>186</a>                    .partition_spec_by_id(manifest.partition_spec_id)
+<a href=#187 id=187 data-nosnippet>187</a>                    .unwrap();
+<a href=#188 id=188 data-nosnippet>188</a>                <span class="kw">let </span>spec_struct = spec
+<a href=#189 id=189 data-nosnippet>189</a>                    .partition_type(<span class="self">self</span>.table.metadata().current_schema())
+<a href=#190 id=190 data-nosnippet>190</a>                    .unwrap();
+<a href=#191 id=191 data-nosnippet>191</a>                <span class="self">self</span>.append_partition_summaries(
+<a href=#192 id=192 data-nosnippet>192</a>                    <span class="kw-2">&amp;mut </span>partition_summaries,
+<a href=#193 id=193 data-nosnippet>193</a>                    <span class="kw-2">&amp;</span>manifest.partitions.clone().unwrap_or_else(Vec::new),
+<a href=#194 id=194 data-nosnippet>194</a>                    spec_struct,
+<a href=#195 id=195 data-nosnippet>195</a>                );
+<a href=#196 id=196 data-nosnippet>196</a>            }
+<a href=#197 id=197 data-nosnippet>197</a>        }
+<a href=#198 id=198 data-nosnippet>198</a>
+<a href=#199 id=199 data-nosnippet>199</a>        <span class="kw">let </span>batch = RecordBatch::try_new(Arc::new(schema), <span class="macro">vec!</span>[
+<a href=#200 id=200 data-nosnippet>200</a>            Arc::new(content.finish()),
+<a href=#201 id=201 data-nosnippet>201</a>            Arc::new(path.finish()),
+<a href=#202 id=202 data-nosnippet>202</a>            Arc::new(length.finish()),
+<a href=#203 id=203 data-nosnippet>203</a>            Arc::new(partition_spec_id.finish()),
+<a href=#204 id=204 data-nosnippet>204</a>            Arc::new(added_snapshot_id.finish()),
+<a href=#205 id=205 data-nosnippet>205</a>            Arc::new(added_data_files_count.finish()),
+<a href=#206 id=206 data-nosnippet>206</a>            Arc::new(existing_data_files_count.finish()),
+<a href=#207 id=207 data-nosnippet>207</a>            Arc::new(deleted_data_files_count.finish()),
+<a href=#208 id=208 data-nosnippet>208</a>            Arc::new(added_delete_files_count.finish()),
+<a href=#209 id=209 data-nosnippet>209</a>            Arc::new(existing_delete_files_count.finish()),
+<a href=#210 id=210 data-nosnippet>210</a>            Arc::new(deleted_delete_files_count.finish()),
+<a href=#211 id=211 data-nosnippet>211</a>            Arc::new(partition_summaries.finish()),
+<a href=#212 id=212 data-nosnippet>212</a>        ])<span class="question-mark">?</span>;
+<a href=#213 id=213 data-nosnippet>213</a>        <span class="prelude-val">Ok</span>(stream::iter(<span class="macro">vec!</span>[<span class="prelude-val">Ok</span>(batch)]).boxed())
+<a href=#214 id=214 data-nosnippet>214</a>    }
+<a href=#215 id=215 data-nosnippet>215</a>
+<a href=#216 id=216 data-nosnippet>216</a>    <span class="kw">fn </span>partition_summary_builder(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Result</span>&lt;GenericListBuilder&lt;i32, StructBuilder&gt;&gt; {
+<a href=#217 id=217 data-nosnippet>217</a>        <span class="kw">let </span>schema = schema_to_arrow_schema(<span class="kw-2">&amp;</span><span class="self">self</span>.schema())<span class="question-mark">?</span>;
+<a href=#218 id=218 data-nosnippet>218</a>        <span class="kw">let </span>partition_summary_fields =
+<a href=#219 id=219 data-nosnippet>219</a>            <span class="kw">match </span>schema.field_with_name(<span class="string">"partition_summaries"</span>)<span class="question-mark">?</span>.data_type() {
+<a href=#220 id=220 data-nosnippet>220</a>                DataType::List(list_type) =&gt; <span class="kw">match </span>list_type.data_type() {
+<a href=#221 id=221 data-nosnippet>221</a>                    DataType::Struct(fields) =&gt; fields.to_vec(),
+<a href=#222 id=222 data-nosnippet>222</a>                    <span class="kw">_ </span>=&gt; <span class="macro">unreachable!</span>(),
+<a href=#223 id=223 data-nosnippet>223</a>                },
+<a href=#224 id=224 data-nosnippet>224</a>                <span class="kw">_ </span>=&gt; <span class="macro">unreachable!</span>(),
+<a href=#225 id=225 data-nosnippet>225</a>            };
+<a href=#226 id=226 data-nosnippet>226</a>
+<a href=#227 id=227 data-nosnippet>227</a>        <span class="kw">let </span>partition_summaries = ListBuilder::new(StructBuilder::from_fields(
+<a href=#228 id=228 data-nosnippet>228</a>            Fields::from(partition_summary_fields.clone()),
+<a href=#229 id=229 data-nosnippet>229</a>            <span class="number">0</span>,
+<a href=#230 id=230 data-nosnippet>230</a>        ))
+<a href=#231 id=231 data-nosnippet>231</a>        .with_field(Arc::new(
+<a href=#232 id=232 data-nosnippet>232</a>            Field::new_struct(<span class="string">"item"</span>, partition_summary_fields, <span class="bool-val">false</span>).with_metadata(
+<a href=#233 id=233 data-nosnippet>233</a>                HashMap::from([(<span class="string">"PARQUET:field_id"</span>.to_string(), <span class="string">"9"</span>.to_string())]),
+<a href=#234 id=234 data-nosnippet>234</a>            ),
+<a href=#235 id=235 data-nosnippet>235</a>        ));
+<a href=#236 id=236 data-nosnippet>236</a>
+<a href=#237 id=237 data-nosnippet>237</a>        <span class="prelude-val">Ok</span>(partition_summaries)
+<a href=#238 id=238 data-nosnippet>238</a>    }
+<a href=#239 id=239 data-nosnippet>239</a>
+<a href=#240 id=240 data-nosnippet>240</a>    <span class="kw">fn </span>append_partition_summaries(
+<a href=#241 id=241 data-nosnippet>241</a>        <span class="kw-2">&amp;</span><span class="self">self</span>,
+<a href=#242 id=242 data-nosnippet>242</a>        builder: <span class="kw-2">&amp;mut </span>GenericListBuilder&lt;i32, StructBuilder&gt;,
+<a href=#243 id=243 data-nosnippet>243</a>        partitions: <span class="kw-2">&amp;</span>[FieldSummary],
+<a href=#244 id=244 data-nosnippet>244</a>        partition_struct: StructType,
+<a href=#245 id=245 data-nosnippet>245</a>    ) {
+<a href=#246 id=246 data-nosnippet>246</a>        <span class="kw">let </span>partition_summaries_builder = builder.values();
+<a href=#247 id=247 data-nosnippet>247</a>        <span class="kw">for </span>(summary, field) <span class="kw">in </span>partitions.iter().zip(partition_struct.fields()) {
+<a href=#248 id=248 data-nosnippet>248</a>            partition_summaries_builder
+<a href=#249 id=249 data-nosnippet>249</a>                .field_builder::&lt;BooleanBuilder&gt;(<span class="number">0</span>)
+<a href=#250 id=250 data-nosnippet>250</a>                .unwrap()
+<a href=#251 id=251 data-nosnippet>251</a>                .append_value(summary.contains_null);
+<a href=#252 id=252 data-nosnippet>252</a>            partition_summaries_builder
+<a href=#253 id=253 data-nosnippet>253</a>                .field_builder::&lt;BooleanBuilder&gt;(<span class="number">1</span>)
+<a href=#254 id=254 data-nosnippet>254</a>                .unwrap()
+<a href=#255 id=255 data-nosnippet>255</a>                .append_option(summary.contains_nan);
+<a href=#256 id=256 data-nosnippet>256</a>
+<a href=#257 id=257 data-nosnippet>257</a>            partition_summaries_builder
+<a href=#258 id=258 data-nosnippet>258</a>                .field_builder::&lt;StringBuilder&gt;(<span class="number">2</span>)
+<a href=#259 id=259 data-nosnippet>259</a>                .unwrap()
+<a href=#260 id=260 data-nosnippet>260</a>                .append_option(summary.lower_bound.as_ref().map(|v| {
+<a href=#261 id=261 data-nosnippet>261</a>                    Datum::try_from_bytes(v, field.field_type.as_primitive_type().unwrap().clone())
+<a href=#262 id=262 data-nosnippet>262</a>                        .unwrap()
+<a href=#263 id=263 data-nosnippet>263</a>                        .to_string()
+<a href=#264 id=264 data-nosnippet>264</a>                }));
+<a href=#265 id=265 data-nosnippet>265</a>            partition_summaries_builder
+<a href=#266 id=266 data-nosnippet>266</a>                .field_builder::&lt;StringBuilder&gt;(<span class="number">3</span>)
+<a href=#267 id=267 data-nosnippet>267</a>                .unwrap()
+<a href=#268 id=268 data-nosnippet>268</a>                .append_option(summary.upper_bound.as_ref().map(|v| {
+<a href=#269 id=269 data-nosnippet>269</a>                    Datum::try_from_bytes(v, field.field_type.as_primitive_type().unwrap().clone())
+<a href=#270 id=270 data-nosnippet>270</a>                        .unwrap()
+<a href=#271 id=271 data-nosnippet>271</a>                        .to_string()
+<a href=#272 id=272 data-nosnippet>272</a>                }));
+<a href=#273 id=273 data-nosnippet>273</a>            partition_summaries_builder.append(<span class="bool-val">true</span>);
+<a href=#274 id=274 data-nosnippet>274</a>        }
+<a href=#275 id=275 data-nosnippet>275</a>        builder.append(<span class="bool-val">true</span>);
+<a href=#276 id=276 data-nosnippet>276</a>    }
+<a href=#277 id=277 data-nosnippet>277</a>}
+<a href=#278 id=278 data-nosnippet>278</a>
+<a href=#279 id=279 data-nosnippet>279</a><span class="attr">#[cfg(test)]
+<a href=#280 id=280 data-nosnippet>280</a></span><span class="kw">mod </span>tests {
+<a href=#281 id=281 data-nosnippet>281</a>    <span class="kw">use </span>expect_test::expect;
+<a href=#282 id=282 data-nosnippet>282</a>    <span class="kw">use </span>futures::TryStreamExt;
+<a href=#283 id=283 data-nosnippet>283</a>
+<a href=#284 id=284 data-nosnippet>284</a>    <span class="kw">use </span><span class="kw">crate</span>::scan::tests::TableTestFixture;
+<a href=#285 id=285 data-nosnippet>285</a>    <span class="kw">use </span><span class="kw">crate</span>::test_utils::check_record_batches;
+<a href=#286 id=286 data-nosnippet>286</a>
+<a href=#287 id=287 data-nosnippet>287</a>    <span class="attr">#[tokio::test]
+<a href=#288 id=288 data-nosnippet>288</a>    </span><span class="kw">async fn </span>test_manifests_table() {
+<a href=#289 id=289 data-nosnippet>289</a>        <span class="kw">let </span><span class="kw-2">mut </span>fixture = TableTestFixture::new();
+<a href=#290 id=290 data-nosnippet>290</a>        fixture.setup_manifest_files().<span class="kw">await</span>;
+<a href=#291 id=291 data-nosnippet>291</a>
+<a href=#292 id=292 data-nosnippet>292</a>        <span class="kw">let </span>record_batch = fixture.table.inspect().manifests().scan().<span class="kw">await</span>.unwrap();
 <a href=#293 id=293 data-nosnippet>293</a>
-<a href=#294 id=294 data-nosnippet>294</a>        <span class="kw">let </span>record_batch = fixture.table.inspect().manifests().scan().<span class="kw">await</span>.unwrap();
-<a href=#295 id=295 data-nosnippet>295</a>
-<a href=#296 id=296 data-nosnippet>296</a>        check_record_batches(
-<a href=#297 id=297 data-nosnippet>297</a>            record_batch.try_collect::&lt;Vec&lt;<span class="kw">_</span>&gt;&gt;().<span class="kw">await</span>.unwrap(),
-<a href=#298 id=298 data-nosnippet>298</a>            <span class="macro">expect!</span>[[<span class="string">r#"
-<a href=#299 id=299 data-nosnippet>299</a>                Field { "content": Int32, metadata: {"PARQUET:field_id": "14"} },
-<a href=#300 id=300 data-nosnippet>300</a>                Field { "path": Utf8, metadata: {"PARQUET:field_id": "1"} },
-<a href=#301 id=301 data-nosnippet>301</a>                Field { "length": Int64, metadata: {"PARQUET:field_id": "2"} },
-<a href=#302 id=302 data-nosnippet>302</a>                Field { "partition_spec_id": Int32, metadata: {"PARQUET:field_id": "3"} },
-<a href=#303 id=303 data-nosnippet>303</a>                Field { "added_snapshot_id": Int64, metadata: {"PARQUET:field_id": "4"} },
-<a href=#304 id=304 data-nosnippet>304</a>                Field { "added_data_files_count": Int32, metadata: {"PARQUET:field_id": "5"} },
-<a href=#305 id=305 data-nosnippet>305</a>                Field { "existing_data_files_count": Int32, metadata: {"PARQUET:field_id": "6"} },
-<a href=#306 id=306 data-nosnippet>306</a>                Field { "deleted_data_files_count": Int32, metadata: {"PARQUET:field_id": "7"} },
-<a href=#307 id=307 data-nosnippet>307</a>                Field { "added_delete_files_count": Int32, metadata: {"PARQUET:field_id": "15"} },
-<a href=#308 id=308 data-nosnippet>308</a>                Field { "existing_delete_files_count": Int32, metadata: {"PARQUET:field_id": "16"} },
-<a href=#309 id=309 data-nosnippet>309</a>                Field { "deleted_delete_files_count": Int32, metadata: {"PARQUET:field_id": "17"} },
-<a href=#310 id=310 data-nosnippet>310</a>                Field { "partition_summaries": List(non-null Struct("contains_null": non-null Boolean, metadata: {"PARQUET:field_id": "10"}, "contains_nan": Boolean, metadata: {"PARQUET:field_id": "11"}, "lower_bound": Utf8, metadata: {"PARQUET:field_id": "12"}, "upper_bound": Utf8, metadata: {"PARQUET:field_id": "13"}), metadata: {"PARQUET:field_id": "9"}), metadata: {"PARQUET:field_id": "8"} }"#</span>]],
-<a href=#311 id=311 data-nosnippet>311</a>            <span class="macro">expect!</span>[[<span class="string">r#"
-<a href=#312 id=312 data-nosnippet>312</a>                content: PrimitiveArray&lt;Int32&gt;
-<a href=#313 id=313 data-nosnippet>313</a>                [
-<a href=#314 id=314 data-nosnippet>314</a>                  0,
-<a href=#315 id=315 data-nosnippet>315</a>                ],
-<a href=#316 id=316 data-nosnippet>316</a>                path: (skipped),
-<a href=#317 id=317 data-nosnippet>317</a>                length: (skipped),
-<a href=#318 id=318 data-nosnippet>318</a>                partition_spec_id: PrimitiveArray&lt;Int32&gt;
-<a href=#319 id=319 data-nosnippet>319</a>                [
-<a href=#320 id=320 data-nosnippet>320</a>                  0,
-<a href=#321 id=321 data-nosnippet>321</a>                ],
-<a href=#322 id=322 data-nosnippet>322</a>                added_snapshot_id: PrimitiveArray&lt;Int64&gt;
-<a href=#323 id=323 data-nosnippet>323</a>                [
-<a href=#324 id=324 data-nosnippet>324</a>                  3055729675574597004,
-<a href=#325 id=325 data-nosnippet>325</a>                ],
-<a href=#326 id=326 data-nosnippet>326</a>                added_data_files_count: PrimitiveArray&lt;Int32&gt;
-<a href=#327 id=327 data-nosnippet>327</a>                [
-<a href=#328 id=328 data-nosnippet>328</a>                  1,
-<a href=#329 id=329 data-nosnippet>329</a>                ],
-<a href=#330 id=330 data-nosnippet>330</a>                existing_data_files_count: PrimitiveArray&lt;Int32&gt;
-<a href=#331 id=331 data-nosnippet>331</a>                [
-<a href=#332 id=332 data-nosnippet>332</a>                  1,
-<a href=#333 id=333 data-nosnippet>333</a>                ],
-<a href=#334 id=334 data-nosnippet>334</a>                deleted_data_files_count: PrimitiveArray&lt;Int32&gt;
-<a href=#335 id=335 data-nosnippet>335</a>                [
-<a href=#336 id=336 data-nosnippet>336</a>                  1,
-<a href=#337 id=337 data-nosnippet>337</a>                ],
-<a href=#338 id=338 data-nosnippet>338</a>                added_delete_files_count: PrimitiveArray&lt;Int32&gt;
-<a href=#339 id=339 data-nosnippet>339</a>                [
-<a href=#340 id=340 data-nosnippet>340</a>                  1,
-<a href=#341 id=341 data-nosnippet>341</a>                ],
-<a href=#342 id=342 data-nosnippet>342</a>                existing_delete_files_count: PrimitiveArray&lt;Int32&gt;
-<a href=#343 id=343 data-nosnippet>343</a>                [
-<a href=#344 id=344 data-nosnippet>344</a>                  1,
-<a href=#345 id=345 data-nosnippet>345</a>                ],
-<a href=#346 id=346 data-nosnippet>346</a>                deleted_delete_files_count: PrimitiveArray&lt;Int32&gt;
-<a href=#347 id=347 data-nosnippet>347</a>                [
-<a href=#348 id=348 data-nosnippet>348</a>                  1,
-<a href=#349 id=349 data-nosnippet>349</a>                ],
-<a href=#350 id=350 data-nosnippet>350</a>                partition_summaries: ListArray
-<a href=#351 id=351 data-nosnippet>351</a>                [
-<a href=#352 id=352 data-nosnippet>352</a>                  StructArray
-<a href=#353 id=353 data-nosnippet>353</a>                -- validity:
-<a href=#354 id=354 data-nosnippet>354</a>                [
-<a href=#355 id=355 data-nosnippet>355</a>                  valid,
-<a href=#356 id=356 data-nosnippet>356</a>                ]
-<a href=#357 id=357 data-nosnippet>357</a>                [
-<a href=#358 id=358 data-nosnippet>358</a>                -- child 0: "contains_null" (Boolean)
-<a href=#359 id=359 data-nosnippet>359</a>                BooleanArray
-<a href=#360 id=360 data-nosnippet>360</a>                [
-<a href=#361 id=361 data-nosnippet>361</a>                  false,
-<a href=#362 id=362 data-nosnippet>362</a>                ]
-<a href=#363 id=363 data-nosnippet>363</a>                -- child 1: "contains_nan" (Boolean)
-<a href=#364 id=364 data-nosnippet>364</a>                BooleanArray
-<a href=#365 id=365 data-nosnippet>365</a>                [
-<a href=#366 id=366 data-nosnippet>366</a>                  false,
-<a href=#367 id=367 data-nosnippet>367</a>                ]
-<a href=#368 id=368 data-nosnippet>368</a>                -- child 2: "lower_bound" (Utf8)
-<a href=#369 id=369 data-nosnippet>369</a>                StringArray
-<a href=#370 id=370 data-nosnippet>370</a>                [
-<a href=#371 id=371 data-nosnippet>371</a>                  "100",
-<a href=#372 id=372 data-nosnippet>372</a>                ]
-<a href=#373 id=373 data-nosnippet>373</a>                -- child 3: "upper_bound" (Utf8)
-<a href=#374 id=374 data-nosnippet>374</a>                StringArray
-<a href=#375 id=375 data-nosnippet>375</a>                [
-<a href=#376 id=376 data-nosnippet>376</a>                  "300",
-<a href=#377 id=377 data-nosnippet>377</a>                ]
-<a href=#378 id=378 data-nosnippet>378</a>                ],
-<a href=#379 id=379 data-nosnippet>379</a>                ]"#</span>]],
-<a href=#380 id=380 data-nosnippet>380</a>            <span class="kw-2">&amp;</span>[<span class="string">"path"</span>, <span class="string">"length"</span>],
-<a href=#381 id=381 data-nosnippet>381</a>            <span class="prelude-val">Some</span>(<span class="string">"path"</span>),
-<a href=#382 id=382 data-nosnippet>382</a>        );
-<a href=#383 id=383 data-nosnippet>383</a>    }
-<a href=#384 id=384 data-nosnippet>384</a>}
+<a href=#294 id=294 data-nosnippet>294</a>        check_record_batches(
+<a href=#295 id=295 data-nosnippet>295</a>            record_batch.try_collect::&lt;Vec&lt;<span class="kw">_</span>&gt;&gt;().<span class="kw">await</span>.unwrap(),
+<a href=#296 id=296 data-nosnippet>296</a>            <span class="macro">expect!</span>[[<span class="string">r#"
+<a href=#297 id=297 data-nosnippet>297</a>                Field { "content": Int32, metadata: {"PARQUET:field_id": "14"} },
+<a href=#298 id=298 data-nosnippet>298</a>                Field { "path": Utf8, metadata: {"PARQUET:field_id": "1"} },
+<a href=#299 id=299 data-nosnippet>299</a>                Field { "length": Int64, metadata: {"PARQUET:field_id": "2"} },
+<a href=#300 id=300 data-nosnippet>300</a>                Field { "partition_spec_id": Int32, metadata: {"PARQUET:field_id": "3"} },
+<a href=#301 id=301 data-nosnippet>301</a>                Field { "added_snapshot_id": Int64, metadata: {"PARQUET:field_id": "4"} },
+<a href=#302 id=302 data-nosnippet>302</a>                Field { "added_data_files_count": Int32, metadata: {"PARQUET:field_id": "5"} },
+<a href=#303 id=303 data-nosnippet>303</a>                Field { "existing_data_files_count": Int32, metadata: {"PARQUET:field_id": "6"} },
+<a href=#304 id=304 data-nosnippet>304</a>                Field { "deleted_data_files_count": Int32, metadata: {"PARQUET:field_id": "7"} },
+<a href=#305 id=305 data-nosnippet>305</a>                Field { "added_delete_files_count": Int32, metadata: {"PARQUET:field_id": "15"} },
+<a href=#306 id=306 data-nosnippet>306</a>                Field { "existing_delete_files_count": Int32, metadata: {"PARQUET:field_id": "16"} },
+<a href=#307 id=307 data-nosnippet>307</a>                Field { "deleted_delete_files_count": Int32, metadata: {"PARQUET:field_id": "17"} },
+<a href=#308 id=308 data-nosnippet>308</a>                Field { "partition_summaries": List(non-null Struct("contains_null": non-null Boolean, metadata: {"PARQUET:field_id": "10"}, "contains_nan": Boolean, metadata: {"PARQUET:field_id": "11"}, "lower_bound": Utf8, metadata: {"PARQUET:field_id": "12"}, "upper_bound": Utf8, metadata: {"PARQUET:field_id": "13"}), metadata: {"PARQUET:field_id": "9"}), metadata: {"PARQUET:field_id": "8"} }"#</span>]],
+<a href=#309 id=309 data-nosnippet>309</a>            <span class="macro">expect!</span>[[<span class="string">r#"
+<a href=#310 id=310 data-nosnippet>310</a>                content: PrimitiveArray&lt;Int32&gt;
+<a href=#311 id=311 data-nosnippet>311</a>                [
+<a href=#312 id=312 data-nosnippet>312</a>                  0,
+<a href=#313 id=313 data-nosnippet>313</a>                ],
+<a href=#314 id=314 data-nosnippet>314</a>                path: (skipped),
+<a href=#315 id=315 data-nosnippet>315</a>                length: (skipped),
+<a href=#316 id=316 data-nosnippet>316</a>                partition_spec_id: PrimitiveArray&lt;Int32&gt;
+<a href=#317 id=317 data-nosnippet>317</a>                [
+<a href=#318 id=318 data-nosnippet>318</a>                  0,
+<a href=#319 id=319 data-nosnippet>319</a>                ],
+<a href=#320 id=320 data-nosnippet>320</a>                added_snapshot_id: PrimitiveArray&lt;Int64&gt;
+<a href=#321 id=321 data-nosnippet>321</a>                [
+<a href=#322 id=322 data-nosnippet>322</a>                  3055729675574597004,
+<a href=#323 id=323 data-nosnippet>323</a>                ],
+<a href=#324 id=324 data-nosnippet>324</a>                added_data_files_count: PrimitiveArray&lt;Int32&gt;
+<a href=#325 id=325 data-nosnippet>325</a>                [
+<a href=#326 id=326 data-nosnippet>326</a>                  1,
+<a href=#327 id=327 data-nosnippet>327</a>                ],
+<a href=#328 id=328 data-nosnippet>328</a>                existing_data_files_count: PrimitiveArray&lt;Int32&gt;
+<a href=#329 id=329 data-nosnippet>329</a>                [
+<a href=#330 id=330 data-nosnippet>330</a>                  1,
+<a href=#331 id=331 data-nosnippet>331</a>                ],
+<a href=#332 id=332 data-nosnippet>332</a>                deleted_data_files_count: PrimitiveArray&lt;Int32&gt;
+<a href=#333 id=333 data-nosnippet>333</a>                [
+<a href=#334 id=334 data-nosnippet>334</a>                  1,
+<a href=#335 id=335 data-nosnippet>335</a>                ],
+<a href=#336 id=336 data-nosnippet>336</a>                added_delete_files_count: PrimitiveArray&lt;Int32&gt;
+<a href=#337 id=337 data-nosnippet>337</a>                [
+<a href=#338 id=338 data-nosnippet>338</a>                  1,
+<a href=#339 id=339 data-nosnippet>339</a>                ],
+<a href=#340 id=340 data-nosnippet>340</a>                existing_delete_files_count: PrimitiveArray&lt;Int32&gt;
+<a href=#341 id=341 data-nosnippet>341</a>                [
+<a href=#342 id=342 data-nosnippet>342</a>                  1,
+<a href=#343 id=343 data-nosnippet>343</a>                ],
+<a href=#344 id=344 data-nosnippet>344</a>                deleted_delete_files_count: PrimitiveArray&lt;Int32&gt;
+<a href=#345 id=345 data-nosnippet>345</a>                [
+<a href=#346 id=346 data-nosnippet>346</a>                  1,
+<a href=#347 id=347 data-nosnippet>347</a>                ],
+<a href=#348 id=348 data-nosnippet>348</a>                partition_summaries: ListArray
+<a href=#349 id=349 data-nosnippet>349</a>                [
+<a href=#350 id=350 data-nosnippet>350</a>                  StructArray
+<a href=#351 id=351 data-nosnippet>351</a>                -- validity:
+<a href=#352 id=352 data-nosnippet>352</a>                [
+<a href=#353 id=353 data-nosnippet>353</a>                  valid,
+<a href=#354 id=354 data-nosnippet>354</a>                ]
+<a href=#355 id=355 data-nosnippet>355</a>                [
+<a href=#356 id=356 data-nosnippet>356</a>                -- child 0: "contains_null" (Boolean)
+<a href=#357 id=357 data-nosnippet>357</a>                BooleanArray
+<a href=#358 id=358 data-nosnippet>358</a>                [
+<a href=#359 id=359 data-nosnippet>359</a>                  false,
+<a href=#360 id=360 data-nosnippet>360</a>                ]
+<a href=#361 id=361 data-nosnippet>361</a>                -- child 1: "contains_nan" (Boolean)
+<a href=#362 id=362 data-nosnippet>362</a>                BooleanArray
+<a href=#363 id=363 data-nosnippet>363</a>                [
+<a href=#364 id=364 data-nosnippet>364</a>                  false,
+<a href=#365 id=365 data-nosnippet>365</a>                ]
+<a href=#366 id=366 data-nosnippet>366</a>                -- child 2: "lower_bound" (Utf8)
+<a href=#367 id=367 data-nosnippet>367</a>                StringArray
+<a href=#368 id=368 data-nosnippet>368</a>                [
+<a href=#369 id=369 data-nosnippet>369</a>                  "100",
+<a href=#370 id=370 data-nosnippet>370</a>                ]
+<a href=#371 id=371 data-nosnippet>371</a>                -- child 3: "upper_bound" (Utf8)
+<a href=#372 id=372 data-nosnippet>372</a>                StringArray
+<a href=#373 id=373 data-nosnippet>373</a>                [
+<a href=#374 id=374 data-nosnippet>374</a>                  "300",
+<a href=#375 id=375 data-nosnippet>375</a>                ]
+<a href=#376 id=376 data-nosnippet>376</a>                ],
+<a href=#377 id=377 data-nosnippet>377</a>                ]"#</span>]],
+<a href=#378 id=378 data-nosnippet>378</a>            <span class="kw-2">&amp;</span>[<span class="string">"path"</span>, <span class="string">"length"</span>],
+<a href=#379 id=379 data-nosnippet>379</a>            <span class="prelude-val">Some</span>(<span class="string">"path"</span>),
+<a href=#380 id=380 data-nosnippet>380</a>        );
+<a href=#381 id=381 data-nosnippet>381</a>    }
+<a href=#382 id=382 data-nosnippet>382</a>}
 </code></pre></div></section></main></body></html>
\ No newline at end of file
diff --git a/api/src/iceberg/io/object_cache.rs.html b/api/src/iceberg/io/object_cache.rs.html
index a47ddc412..6c65e6faf 100644
--- a/api/src/iceberg/io/object_cache.rs.html
+++ b/api/src/iceberg/io/object_cache.rs.html
@@ -20,393 +20,402 @@
 <a href=#20 id=20 data-nosnippet>20</a>
 <a href=#21 id=21 data-nosnippet>21</a><span class="kw">use </span><span class="kw">crate</span>::io::FileIO;
 <a href=#22 id=22 data-nosnippet>22</a><span class="kw">use </span><span class="kw">crate</span>::spec::{
-<a href=#23 id=23 data-nosnippet>23</a>    FormatVersion, Manifest, ManifestFile, ManifestList, SchemaId, SnapshotRef, TableMetadataRef,
-<a href=#24 id=24 data-nosnippet>24</a>};
-<a href=#25 id=25 data-nosnippet>25</a><span class="kw">use crate</span>::{Error, ErrorKind, <span class="prelude-ty">Result</span>};
-<a href=#26 id=26 data-nosnippet>26</a>
-<a href=#27 id=27 data-nosnippet>27</a><span class="kw">const </span>DEFAULT_CACHE_SIZE_BYTES: u64 = <span class="number">32 </span>* <span class="number">1024 </span>* <span class="number">1024</span>; <span class="comment">// 32MB
-<a href=#28 id=28 data-nosnippet>28</a>
-<a href=#29 id=29 data-nosnippet>29</a></span><span class="attr">#[derive(Clone, Debug)]
-<a href=#30 id=30 data-nosnippet>30</a></span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">enum </span>CachedItem {
-<a href=#31 id=31 data-nosnippet>31</a>    ManifestList(Arc&lt;ManifestList&gt;),
-<a href=#32 id=32 data-nosnippet>32</a>    Manifest(Arc&lt;Manifest&gt;),
-<a href=#33 id=33 data-nosnippet>33</a>}
-<a href=#34 id=34 data-nosnippet>34</a>
-<a href=#35 id=35 data-nosnippet>35</a><span class="attr">#[derive(Clone, Debug, Hash, Eq, PartialEq)]
-<a href=#36 id=36 data-nosnippet>36</a></span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">enum </span>CachedObjectKey {
-<a href=#37 id=37 data-nosnippet>37</a>    ManifestList((String, FormatVersion, SchemaId)),
-<a href=#38 id=38 data-nosnippet>38</a>    Manifest(String),
-<a href=#39 id=39 data-nosnippet>39</a>}
-<a href=#40 id=40 data-nosnippet>40</a>
-<a href=#41 id=41 data-nosnippet>41</a><span class="doccomment">/// Caches metadata objects deserialized from immutable files
-<a href=#42 id=42 data-nosnippet>42</a></span><span class="attr">#[derive(Clone, Debug)]
-<a href=#43 id=43 data-nosnippet>43</a></span><span class="kw">pub struct </span>ObjectCache {
-<a href=#44 id=44 data-nosnippet>44</a>    cache: moka::future::Cache&lt;CachedObjectKey, CachedItem&gt;,
-<a href=#45 id=45 data-nosnippet>45</a>    file_io: FileIO,
-<a href=#46 id=46 data-nosnippet>46</a>    cache_disabled: bool,
-<a href=#47 id=47 data-nosnippet>47</a>}
-<a href=#48 id=48 data-nosnippet>48</a>
-<a href=#49 id=49 data-nosnippet>49</a><span class="kw">impl </span>ObjectCache {
-<a href=#50 id=50 data-nosnippet>50</a>    <span class="doccomment">/// Creates a new [`ObjectCache`]
-<a href=#51 id=51 data-nosnippet>51</a>    /// with the default cache size
-<a href=#52 id=52 data-nosnippet>52</a>    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>new(file_io: FileIO) -&gt; <span class="self">Self </span>{
-<a href=#53 id=53 data-nosnippet>53</a>        <span class="self">Self</span>::new_with_capacity(file_io, DEFAULT_CACHE_SIZE_BYTES)
-<a href=#54 id=54 data-nosnippet>54</a>    }
-<a href=#55 id=55 data-nosnippet>55</a>
-<a href=#56 id=56 data-nosnippet>56</a>    <span class="doccomment">/// Creates a new [`ObjectCache`]
-<a href=#57 id=57 data-nosnippet>57</a>    /// with a specific cache size
-<a href=#58 id=58 data-nosnippet>58</a>    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>new_with_capacity(file_io: FileIO, cache_size_bytes: u64) -&gt; <span class="self">Self </span>{
-<a href=#59 id=59 data-nosnippet>59</a>        <span class="kw">if </span>cache_size_bytes == <span class="number">0 </span>{
-<a href=#60 id=60 data-nosnippet>60</a>            <span class="self">Self</span>::with_disabled_cache(file_io)
-<a href=#61 id=61 data-nosnippet>61</a>        } <span class="kw">else </span>{
-<a href=#62 id=62 data-nosnippet>62</a>            <span class="self">Self </span>{
-<a href=#63 id=63 data-nosnippet>63</a>                cache: moka::future::Cache::builder()
-<a href=#64 id=64 data-nosnippet>64</a>                    .weigher(|<span class="kw">_</span>, val: <span class="kw-2">&amp;</span>CachedItem| <span class="kw">match </span>val {
-<a href=#65 id=65 data-nosnippet>65</a>                        CachedItem::ManifestList(item) =&gt; size_of_val(item.as_ref()),
-<a href=#66 id=66 data-nosnippet>66</a>                        CachedItem::Manifest(item) =&gt; size_of_val(item.as_ref()),
-<a href=#67 id=67 data-nosnippet>67</a>                    } <span class="kw">as </span>u32)
-<a href=#68 id=68 data-nosnippet>68</a>                    .max_capacity(cache_size_bytes)
-<a href=#69 id=69 data-nosnippet>69</a>                    .build(),
-<a href=#70 id=70 data-nosnippet>70</a>                file_io,
-<a href=#71 id=71 data-nosnippet>71</a>                cache_disabled: <span class="bool-val">false</span>,
-<a href=#72 id=72 data-nosnippet>72</a>            }
-<a href=#73 id=73 data-nosnippet>73</a>        }
-<a href=#74 id=74 data-nosnippet>74</a>    }
-<a href=#75 id=75 data-nosnippet>75</a>
-<a href=#76 id=76 data-nosnippet>76</a>    <span class="doccomment">/// Creates a new [`ObjectCache`]
-<a href=#77 id=77 data-nosnippet>77</a>    /// with caching disabled
-<a href=#78 id=78 data-nosnippet>78</a>    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>with_disabled_cache(file_io: FileIO) -&gt; <span class="self">Self </span>{
-<a href=#79 id=79 data-nosnippet>79</a>        <span class="self">Self </span>{
-<a href=#80 id=80 data-nosnippet>80</a>            cache: moka::future::Cache::new(<span class="number">0</span>),
-<a href=#81 id=81 data-nosnippet>81</a>            file_io,
-<a href=#82 id=82 data-nosnippet>82</a>            cache_disabled: <span class="bool-val">true</span>,
-<a href=#83 id=83 data-nosnippet>83</a>        }
-<a href=#84 id=84 data-nosnippet>84</a>    }
-<a href=#85 id=85 data-nosnippet>85</a>
-<a href=#86 id=86 data-nosnippet>86</a>    <span class="doccomment">/// Retrieves an Arc [`Manifest`] from the cache
-<a href=#87 id=87 data-nosnippet>87</a>    /// or retrieves one from FileIO and parses it if not present
-<a href=#88 id=88 data-nosnippet>88</a>    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">async fn </span>get_manifest(<span class="kw-2">&amp;</span><span class="self">self</span>, manifest_file: <span class="kw-2">&amp;</span>ManifestFile) -&gt; <span class="prelude-ty">Result</span>&lt;Arc&lt;Manifest&gt;&gt; {
-<a href=#89 id=89 data-nosnippet>89</a>        <span class="kw">if </span><span class="self">self</span>.cache_disabled {
-<a href=#90 id=90 data-nosnippet>90</a>            <span class="kw">return </span>manifest_file
-<a href=#91 id=91 data-nosnippet>91</a>                .load_manifest(<span class="kw-2">&amp;</span><span class="self">self</span>.file_io)
-<a href=#92 id=92 data-nosnippet>92</a>                .<span class="kw">await
-<a href=#93 id=93 data-nosnippet>93</a>                </span>.map(Arc::new);
-<a href=#94 id=94 data-nosnippet>94</a>        }
-<a href=#95 id=95 data-nosnippet>95</a>
-<a href=#96 id=96 data-nosnippet>96</a>        <span class="kw">let </span>key = CachedObjectKey::Manifest(manifest_file.manifest_path.clone());
-<a href=#97 id=97 data-nosnippet>97</a>
-<a href=#98 id=98 data-nosnippet>98</a>        <span class="kw">let </span>cache_entry = <span class="self">self
-<a href=#99 id=99 data-nosnippet>99</a>            </span>.cache
-<a href=#100 id=100 data-nosnippet>100</a>            .entry_by_ref(<span class="kw-2">&amp;</span>key)
-<a href=#101 id=101 data-nosnippet>101</a>            .or_try_insert_with(<span class="self">self</span>.fetch_and_parse_manifest(manifest_file))
-<a href=#102 id=102 data-nosnippet>102</a>            .<span class="kw">await
-<a href=#103 id=103 data-nosnippet>103</a>            </span>.map_err(|err| {
-<a href=#104 id=104 data-nosnippet>104</a>                Error::new(
-<a href=#105 id=105 data-nosnippet>105</a>                    ErrorKind::Unexpected,
-<a href=#106 id=106 data-nosnippet>106</a>                    <span class="macro">format!</span>(<span class="string">"Failed to load manifest {}"</span>, manifest_file.manifest_path),
-<a href=#107 id=107 data-nosnippet>107</a>                )
-<a href=#108 id=108 data-nosnippet>108</a>                .with_source(err)
-<a href=#109 id=109 data-nosnippet>109</a>            })<span class="question-mark">?
-<a href=#110 id=110 data-nosnippet>110</a>            </span>.into_value();
-<a href=#111 id=111 data-nosnippet>111</a>
-<a href=#112 id=112 data-nosnippet>112</a>        <span class="kw">match </span>cache_entry {
-<a href=#113 id=113 data-nosnippet>113</a>            CachedItem::Manifest(arc_manifest) =&gt; <span class="prelude-val">Ok</span>(arc_manifest),
-<a href=#114 id=114 data-nosnippet>114</a>            <span class="kw">_ </span>=&gt; <span class="prelude-val">Err</span>(Error::new(
-<a href=#115 id=115 data-nosnippet>115</a>                ErrorKind::Unexpected,
-<a href=#116 id=116 data-nosnippet>116</a>                <span class="macro">format!</span>(<span class="string">"cached object for key '{key:?}' is not a Manifest"</span>),
-<a href=#117 id=117 data-nosnippet>117</a>            )),
-<a href=#118 id=118 data-nosnippet>118</a>        }
-<a href=#119 id=119 data-nosnippet>119</a>    }
-<a href=#120 id=120 data-nosnippet>120</a>
-<a href=#121 id=121 data-nosnippet>121</a>    <span class="doccomment">/// Retrieves an Arc [`ManifestList`] from the cache
-<a href=#122 id=122 data-nosnippet>122</a>    /// or retrieves one from FileIO and parses it if not present
-<a href=#123 id=123 data-nosnippet>123</a>    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">async fn </span>get_manifest_list(
-<a href=#124 id=124 data-nosnippet>124</a>        <span class="kw-2">&amp;</span><span class="self">self</span>,
-<a href=#125 id=125 data-nosnippet>125</a>        snapshot: <span class="kw-2">&amp;</span>SnapshotRef,
-<a href=#126 id=126 data-nosnippet>126</a>        table_metadata: <span class="kw-2">&amp;</span>TableMetadataRef,
-<a href=#127 id=127 data-nosnippet>127</a>    ) -&gt; <span class="prelude-ty">Result</span>&lt;Arc&lt;ManifestList&gt;&gt; {
-<a href=#128 id=128 data-nosnippet>128</a>        <span class="kw">if </span><span class="self">self</span>.cache_disabled {
-<a href=#129 id=129 data-nosnippet>129</a>            <span class="kw">return </span>snapshot
-<a href=#130 id=130 data-nosnippet>130</a>                .load_manifest_list(<span class="kw-2">&amp;</span><span class="self">self</span>.file_io, table_metadata)
-<a href=#131 id=131 data-nosnippet>131</a>                .<span class="kw">await
-<a href=#132 id=132 data-nosnippet>132</a>                </span>.map(Arc::new);
-<a href=#133 id=133 data-nosnippet>133</a>        }
-<a href=#134 id=134 data-nosnippet>134</a>
-<a href=#135 id=135 data-nosnippet>135</a>        <span class="kw">let </span>key = CachedObjectKey::ManifestList((
-<a href=#136 id=136 data-nosnippet>136</a>            snapshot.manifest_list().to_string(),
-<a href=#137 id=137 data-nosnippet>137</a>            table_metadata.format_version,
-<a href=#138 id=138 data-nosnippet>138</a>            snapshot.schema_id().unwrap(),
-<a href=#139 id=139 data-nosnippet>139</a>        ));
-<a href=#140 id=140 data-nosnippet>140</a>        <span class="kw">let </span>cache_entry = <span class="self">self
-<a href=#141 id=141 data-nosnippet>141</a>            </span>.cache
-<a href=#142 id=142 data-nosnippet>142</a>            .entry_by_ref(<span class="kw-2">&amp;</span>key)
-<a href=#143 id=143 data-nosnippet>143</a>            .or_try_insert_with(<span class="self">self</span>.fetch_and_parse_manifest_list(snapshot, table_metadata))
-<a href=#144 id=144 data-nosnippet>144</a>            .<span class="kw">await
-<a href=#145 id=145 data-nosnippet>145</a>            </span>.map_err(|err| {
-<a href=#146 id=146 data-nosnippet>146</a>                Arc::try_unwrap(err).unwrap_or_else(|err| {
-<a href=#147 id=147 data-nosnippet>147</a>                    Error::new(
-<a href=#148 id=148 data-nosnippet>148</a>                        ErrorKind::Unexpected,
-<a href=#149 id=149 data-nosnippet>149</a>                        <span class="string">"Failed to load manifest list in cache"</span>,
-<a href=#150 id=150 data-nosnippet>150</a>                    )
-<a href=#151 id=151 data-nosnippet>151</a>                    .with_source(err)
-<a href=#152 id=152 data-nosnippet>152</a>                })
-<a href=#153 id=153 data-nosnippet>153</a>            })<span class="question-mark">?
-<a href=#154 id=154 data-nosnippet>154</a>            </span>.into_value();
-<a href=#155 id=155 data-nosnippet>155</a>
-<a href=#156 id=156 data-nosnippet>156</a>        <span class="kw">match </span>cache_entry {
-<a href=#157 id=157 data-nosnippet>157</a>            CachedItem::ManifestList(arc_manifest_list) =&gt; <span class="prelude-val">Ok</span>(arc_manifest_list),
-<a href=#158 id=158 data-nosnippet>158</a>            <span class="kw">_ </span>=&gt; <span class="prelude-val">Err</span>(Error::new(
-<a href=#159 id=159 data-nosnippet>159</a>                ErrorKind::Unexpected,
-<a href=#160 id=160 data-nosnippet>160</a>                <span class="macro">format!</span>(<span class="string">"cached object for path '{key:?}' is not a manifest list"</span>),
-<a href=#161 id=161 data-nosnippet>161</a>            )),
-<a href=#162 id=162 data-nosnippet>162</a>        }
-<a href=#163 id=163 data-nosnippet>163</a>    }
-<a href=#164 id=164 data-nosnippet>164</a>
-<a href=#165 id=165 data-nosnippet>165</a>    <span class="kw">async fn </span>fetch_and_parse_manifest(<span class="kw-2">&amp;</span><span class="self">self</span>, manifest_file: <span class="kw-2">&amp;</span>ManifestFile) -&gt; <span class="prelude-ty">Result</span>&lt;CachedItem&gt; {
-<a href=#166 id=166 data-nosnippet>166</a>        <span class="kw">let </span>manifest = manifest_file.load_manifest(<span class="kw-2">&amp;</span><span class="self">self</span>.file_io).<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#167 id=167 data-nosnippet>167</a>
-<a href=#168 id=168 data-nosnippet>168</a>        <span class="prelude-val">Ok</span>(CachedItem::Manifest(Arc::new(manifest)))
-<a href=#169 id=169 data-nosnippet>169</a>    }
-<a href=#170 id=170 data-nosnippet>170</a>
-<a href=#171 id=171 data-nosnippet>171</a>    <span class="kw">async fn </span>fetch_and_parse_manifest_list(
-<a href=#172 id=172 data-nosnippet>172</a>        <span class="kw-2">&amp;</span><span class="self">self</span>,
-<a href=#173 id=173 data-nosnippet>173</a>        snapshot: <span class="kw-2">&amp;</span>SnapshotRef,
-<a href=#174 id=174 data-nosnippet>174</a>        table_metadata: <span class="kw-2">&amp;</span>TableMetadataRef,
-<a href=#175 id=175 data-nosnippet>175</a>    ) -&gt; <span class="prelude-ty">Result</span>&lt;CachedItem&gt; {
-<a href=#176 id=176 data-nosnippet>176</a>        <span class="kw">let </span>manifest_list = snapshot
-<a href=#177 id=177 data-nosnippet>177</a>            .load_manifest_list(<span class="kw-2">&amp;</span><span class="self">self</span>.file_io, table_metadata)
-<a href=#178 id=178 data-nosnippet>178</a>            .<span class="kw">await</span><span class="question-mark">?</span>;
-<a href=#179 id=179 data-nosnippet>179</a>
-<a href=#180 id=180 data-nosnippet>180</a>        <span class="prelude-val">Ok</span>(CachedItem::ManifestList(Arc::new(manifest_list)))
-<a href=#181 id=181 data-nosnippet>181</a>    }
-<a href=#182 id=182 data-nosnippet>182</a>}
-<a href=#183 id=183 data-nosnippet>183</a>
-<a href=#184 id=184 data-nosnippet>184</a><span class="attr">#[cfg(test)]
-<a href=#185 id=185 data-nosnippet>185</a></span><span class="kw">mod </span>tests {
-<a href=#186 id=186 data-nosnippet>186</a>    <span class="kw">use </span>std::fs;
-<a href=#187 id=187 data-nosnippet>187</a>
-<a href=#188 id=188 data-nosnippet>188</a>    <span class="kw">use </span>minijinja::value::Value;
-<a href=#189 id=189 data-nosnippet>189</a>    <span class="kw">use </span>minijinja::{AutoEscape, Environment, context};
-<a href=#190 id=190 data-nosnippet>190</a>    <span class="kw">use </span>tempfile::TempDir;
-<a href=#191 id=191 data-nosnippet>191</a>    <span class="kw">use </span>uuid::Uuid;
+<a href=#23 id=23 data-nosnippet>23</a>    FormatVersion, Manifest, ManifestFile, ManifestList, ManifestListReader, SchemaId, SnapshotRef,
+<a href=#24 id=24 data-nosnippet>24</a>    TableMetadataRef,
+<a href=#25 id=25 data-nosnippet>25</a>};
+<a href=#26 id=26 data-nosnippet>26</a><span class="kw">use crate</span>::{Error, ErrorKind, <span class="prelude-ty">Result</span>};
+<a href=#27 id=27 data-nosnippet>27</a>
+<a href=#28 id=28 data-nosnippet>28</a><span class="kw">const </span>DEFAULT_CACHE_SIZE_BYTES: u64 = <span class="number">32 </span>* <span class="number">1024 </span>* <span class="number">1024</span>; <span class="comment">// 32MB
+<a href=#29 id=29 data-nosnippet>29</a>
+<a href=#30 id=30 data-nosnippet>30</a></span><span class="attr">#[derive(Clone, Debug)]
+<a href=#31 id=31 data-nosnippet>31</a></span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">enum </span>CachedItem {
+<a href=#32 id=32 data-nosnippet>32</a>    ManifestList(Arc&lt;ManifestList&gt;),
+<a href=#33 id=33 data-nosnippet>33</a>    Manifest(Arc&lt;Manifest&gt;),
+<a href=#34 id=34 data-nosnippet>34</a>}
+<a href=#35 id=35 data-nosnippet>35</a>
+<a href=#36 id=36 data-nosnippet>36</a><span class="attr">#[derive(Clone, Debug, Hash, Eq, PartialEq)]
+<a href=#37 id=37 data-nosnippet>37</a></span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">enum </span>CachedObjectKey {
+<a href=#38 id=38 data-nosnippet>38</a>    ManifestList((String, FormatVersion, SchemaId)),
+<a href=#39 id=39 data-nosnippet>39</a>    Manifest(String),
+<a href=#40 id=40 data-nosnippet>40</a>}
+<a href=#41 id=41 data-nosnippet>41</a>
+<a href=#42 id=42 data-nosnippet>42</a><span class="doccomment">/// Caches metadata objects deserialized from immutable files
+<a href=#43 id=43 data-nosnippet>43</a></span><span class="attr">#[derive(Clone, Debug)]
+<a href=#44 id=44 data-nosnippet>44</a></span><span class="kw">pub struct </span>ObjectCache {
+<a href=#45 id=45 data-nosnippet>45</a>    cache: moka::future::Cache&lt;CachedObjectKey, CachedItem&gt;,
+<a href=#46 id=46 data-nosnippet>46</a>    file_io: FileIO,
+<a href=#47 id=47 data-nosnippet>47</a>    cache_disabled: bool,
+<a href=#48 id=48 data-nosnippet>48</a>}
+<a href=#49 id=49 data-nosnippet>49</a>
+<a href=#50 id=50 data-nosnippet>50</a><span class="kw">impl </span>ObjectCache {
+<a href=#51 id=51 data-nosnippet>51</a>    <span class="doccomment">/// Creates a new [`ObjectCache`]
+<a href=#52 id=52 data-nosnippet>52</a>    /// with the default cache size
+<a href=#53 id=53 data-nosnippet>53</a>    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>new(file_io: FileIO) -&gt; <span class="self">Self </span>{
+<a href=#54 id=54 data-nosnippet>54</a>        <span class="self">Self</span>::new_with_capacity(file_io, DEFAULT_CACHE_SIZE_BYTES)
+<a href=#55 id=55 data-nosnippet>55</a>    }
+<a href=#56 id=56 data-nosnippet>56</a>
+<a href=#57 id=57 data-nosnippet>57</a>    <span class="doccomment">/// Creates a new [`ObjectCache`]
+<a href=#58 id=58 data-nosnippet>58</a>    /// with a specific cache size
+<a href=#59 id=59 data-nosnippet>59</a>    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>new_with_capacity(file_io: FileIO, cache_size_bytes: u64) -&gt; <span class="self">Self </span>{
+<a href=#60 id=60 data-nosnippet>60</a>        <span class="kw">if </span>cache_size_bytes == <span class="number">0 </span>{
+<a href=#61 id=61 data-nosnippet>61</a>            <span class="self">Self</span>::with_disabled_cache(file_io)
+<a href=#62 id=62 data-nosnippet>62</a>        } <span class="kw">else </span>{
+<a href=#63 id=63 data-nosnippet>63</a>            <span class="self">Self </span>{
+<a href=#64 id=64 data-nosnippet>64</a>                cache: moka::future::Cache::builder()
+<a href=#65 id=65 data-nosnippet>65</a>                    .weigher(|<span class="kw">_</span>, val: <span class="kw-2">&amp;</span>CachedItem| <span class="kw">match </span>val {
+<a href=#66 id=66 data-nosnippet>66</a>                        CachedItem::ManifestList(item) =&gt; size_of_val(item.as_ref()),
+<a href=#67 id=67 data-nosnippet>67</a>                        CachedItem::Manifest(item) =&gt; size_of_val(item.as_ref()),
+<a href=#68 id=68 data-nosnippet>68</a>                    } <span class="kw">as </span>u32)
+<a href=#69 id=69 data-nosnippet>69</a>                    .max_capacity(cache_size_bytes)
+<a href=#70 id=70 data-nosnippet>70</a>                    .build(),
+<a href=#71 id=71 data-nosnippet>71</a>                file_io,
+<a href=#72 id=72 data-nosnippet>72</a>                cache_disabled: <span class="bool-val">false</span>,
+<a href=#73 id=73 data-nosnippet>73</a>            }
+<a href=#74 id=74 data-nosnippet>74</a>        }
+<a href=#75 id=75 data-nosnippet>75</a>    }
+<a href=#76 id=76 data-nosnippet>76</a>
+<a href=#77 id=77 data-nosnippet>77</a>    <span class="doccomment">/// Creates a new [`ObjectCache`]
+<a href=#78 id=78 data-nosnippet>78</a>    /// with caching disabled
+<a href=#79 id=79 data-nosnippet>79</a>    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>with_disabled_cache(file_io: FileIO) -&gt; <span class="self">Self </span>{
+<a href=#80 id=80 data-nosnippet>80</a>        <span class="self">Self </span>{
+<a href=#81 id=81 data-nosnippet>81</a>            cache: moka::future::Cache::new(<span class="number">0</span>),
+<a href=#82 id=82 data-nosnippet>82</a>            file_io,
+<a href=#83 id=83 data-nosnippet>83</a>            cache_disabled: <span class="bool-val">true</span>,
+<a href=#84 id=84 data-nosnippet>84</a>        }
+<a href=#85 id=85 data-nosnippet>85</a>    }
+<a href=#86 id=86 data-nosnippet>86</a>
+<a href=#87 id=87 data-nosnippet>87</a>    <span class="doccomment">/// Retrieves an Arc [`Manifest`] from the cache
+<a href=#88 id=88 data-nosnippet>88</a>    /// or retrieves one from FileIO and parses it if not present
+<a href=#89 id=89 data-nosnippet>89</a>    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">async fn </span>get_manifest(<span class="kw-2">&amp;</span><span class="self">self</span>, manifest_file: <span class="kw-2">&amp;</span>ManifestFile) -&gt; <span class="prelude-ty">Result</span>&lt;Arc&lt;Manifest&gt;&gt; {
+<a href=#90 id=90 data-nosnippet>90</a>        <span class="kw">if </span><span class="self">self</span>.cache_disabled {
+<a href=#91 id=91 data-nosnippet>91</a>            <span class="kw">return </span>manifest_file
+<a href=#92 id=92 data-nosnippet>92</a>                .load_manifest(<span class="kw-2">&amp;</span><span class="self">self</span>.file_io)
+<a href=#93 id=93 data-nosnippet>93</a>                .<span class="kw">await
+<a href=#94 id=94 data-nosnippet>94</a>                </span>.map(Arc::new);
+<a href=#95 id=95 data-nosnippet>95</a>        }
+<a href=#96 id=96 data-nosnippet>96</a>
+<a href=#97 id=97 data-nosnippet>97</a>        <span class="kw">let </span>key = CachedObjectKey::Manifest(manifest_file.manifest_path.clone());
+<a href=#98 id=98 data-nosnippet>98</a>
+<a href=#99 id=99 data-nosnippet>99</a>        <span class="kw">let </span>cache_entry = <span class="self">self
+<a href=#100 id=100 data-nosnippet>100</a>            </span>.cache
+<a href=#101 id=101 data-nosnippet>101</a>            .entry_by_ref(<span class="kw-2">&amp;</span>key)
+<a href=#102 id=102 data-nosnippet>102</a>            .or_try_insert_with(<span class="self">self</span>.fetch_and_parse_manifest(manifest_file))
+<a href=#103 id=103 data-nosnippet>103</a>            .<span class="kw">await
+<a href=#104 id=104 data-nosnippet>104</a>            </span>.map_err(|err| {
+<a href=#105 id=105 data-nosnippet>105</a>                Error::new(
+<a href=#106 id=106 data-nosnippet>106</a>                    ErrorKind::Unexpected,
+<a href=#107 id=107 data-nosnippet>107</a>                    <span class="macro">format!</span>(<span class="string">"Failed to load manifest {}"</span>, manifest_file.manifest_path),
+<a href=#108 id=108 data-nosnippet>108</a>                )
+<a href=#109 id=109 data-nosnippet>109</a>                .with_source(err)
+<a href=#110 id=110 data-nosnippet>110</a>            })<span class="question-mark">?
+<a href=#111 id=111 data-nosnippet>111</a>            </span>.into_value();
+<a href=#112 id=112 data-nosnippet>112</a>
+<a href=#113 id=113 data-nosnippet>113</a>        <span class="kw">match </span>cache_entry {
+<a href=#114 id=114 data-nosnippet>114</a>            CachedItem::Manifest(arc_manifest) =&gt; <span class="prelude-val">Ok</span>(arc_manifest),
+<a href=#115 id=115 data-nosnippet>115</a>            <span class="kw">_ </span>=&gt; <span class="prelude-val">Err</span>(Error::new(
+<a href=#116 id=116 data-nosnippet>116</a>                ErrorKind::Unexpected,
+<a href=#117 id=117 data-nosnippet>117</a>                <span class="macro">format!</span>(<span class="string">"cached object for key '{key:?}' is not a Manifest"</span>),
+<a href=#118 id=118 data-nosnippet>118</a>            )),
+<a href=#119 id=119 data-nosnippet>119</a>        }
+<a href=#120 id=120 data-nosnippet>120</a>    }
+<a href=#121 id=121 data-nosnippet>121</a>
+<a href=#122 id=122 data-nosnippet>122</a>    <span class="doccomment">/// Retrieves an Arc [`ManifestList`] from the cache
+<a href=#123 id=123 data-nosnippet>123</a>    /// or retrieves one from FileIO and parses it if not present
+<a href=#124 id=124 data-nosnippet>124</a>    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">async fn </span>get_manifest_list(
+<a href=#125 id=125 data-nosnippet>125</a>        <span class="kw-2">&amp;</span><span class="self">self</span>,
+<a href=#126 id=126 data-nosnippet>126</a>        snapshot: <span class="kw-2">&amp;</span>SnapshotRef,
+<a href=#127 id=127 data-nosnippet>127</a>        table_metadata: <span class="kw-2">&amp;</span>TableMetadataRef,
+<a href=#128 id=128 data-nosnippet>128</a>    ) -&gt; <span class="prelude-ty">Result</span>&lt;Arc&lt;ManifestList&gt;&gt; {
+<a href=#129 id=129 data-nosnippet>129</a>        <span class="kw">if </span><span class="self">self</span>.cache_disabled {
+<a href=#130 id=130 data-nosnippet>130</a>            <span class="kw">return </span>ManifestListReader::new(
+<a href=#131 id=131 data-nosnippet>131</a>                snapshot.clone(),
+<a href=#132 id=132 data-nosnippet>132</a>                <span class="self">self</span>.file_io.clone(),
+<a href=#133 id=133 data-nosnippet>133</a>                table_metadata.clone(),
+<a href=#134 id=134 data-nosnippet>134</a>            )
+<a href=#135 id=135 data-nosnippet>135</a>            .load()
+<a href=#136 id=136 data-nosnippet>136</a>            .<span class="kw">await
+<a href=#137 id=137 data-nosnippet>137</a>            </span>.map(Arc::new);
+<a href=#138 id=138 data-nosnippet>138</a>        }
+<a href=#139 id=139 data-nosnippet>139</a>
+<a href=#140 id=140 data-nosnippet>140</a>        <span class="kw">let </span>key = CachedObjectKey::ManifestList((
+<a href=#141 id=141 data-nosnippet>141</a>            snapshot.manifest_list().to_string(),
+<a href=#142 id=142 data-nosnippet>142</a>            table_metadata.format_version,
+<a href=#143 id=143 data-nosnippet>143</a>            snapshot.schema_id().unwrap(),
+<a href=#144 id=144 data-nosnippet>144</a>        ));
+<a href=#145 id=145 data-nosnippet>145</a>        <span class="kw">let </span>cache_entry = <span class="self">self
+<a href=#146 id=146 data-nosnippet>146</a>            </span>.cache
+<a href=#147 id=147 data-nosnippet>147</a>            .entry_by_ref(<span class="kw-2">&amp;</span>key)
+<a href=#148 id=148 data-nosnippet>148</a>            .or_try_insert_with(<span class="self">self</span>.fetch_and_parse_manifest_list(snapshot, table_metadata))
+<a href=#149 id=149 data-nosnippet>149</a>            .<span class="kw">await
+<a href=#150 id=150 data-nosnippet>150</a>            </span>.map_err(|err| {
+<a href=#151 id=151 data-nosnippet>151</a>                Arc::try_unwrap(err).unwrap_or_else(|err| {
+<a href=#152 id=152 data-nosnippet>152</a>                    Error::new(
+<a href=#153 id=153 data-nosnippet>153</a>                        ErrorKind::Unexpected,
+<a href=#154 id=154 data-nosnippet>154</a>                        <span class="string">"Failed to load manifest list in cache"</span>,
... 11029 lines suppressed ...