{
  "bytes": 800211,
  "edition": "public-preview",
  "entry_count": 161,
  "file": "sky-degrees-qizheng-preview-2026-09-17.zip",
  "historical_basic_archive_sha256": "812d76b767786c7f8d032f291183f5a645cae267e430c82c46aba73e20e0d60b",
  "public_upload_allowed": true,
  "release_date": "2026-09-17",
  "release_ready": false,
  "schema": 3,
  "sha256": "5e2f6c59a762c24c517e141d4b6c2b54d567bdc37b7c06b00c3082d67294e1ab",
  "source_manifest": {
    "acceptance_status": "Preview publication authorized; extended modes, full scientific boundaries and complete interaction/export acceptance remain unfinished.",
    "authorized_selected_stellar_tables": [
      {
        "path": "qizheng/data/bsc5p-enclosure-stars.json",
        "sha256": "dc9395ed654067adfd8c6dfc133b0a00bc95ea347f4d6a9e5f539298889711ca"
      },
      {
        "path": "qizheng/data/bsc5p-mansion-stars.json",
        "sha256": "339abc4d3a72a01a67e0298af6e87896aa8387461c1ee6a4f75684afb70b8bde"
      }
    ],
    "data_reuse_scope": "Only the exact two independently structured factual subsets and their separately GPL-derived mappings; the retained territorial, third-party and database-right qualifications apply. No whole-catalogue worldwide open licence is asserted.",
    "deployment_source_correspondence": [
      {
        "path": "api/qizheng.py",
        "sha256": "b2035c4d62c7cfb17a15b5ff8c41a5bfa143413eaf2fe7ce5bc1149fe191eadd"
      },
      {
        "path": "app/CN/qizheng/page.tsx",
        "sha256": "3705218ec1d9e748b7b83a44b2bc301618f626609c864ad2ecc436fa734c4eef"
      },
      {
        "path": "app/CN/qizheng/sources/page.tsx",
        "sha256": "197ca3a6f6a92d97d232e85b3673695aea8d476d4db473ee5c6069eb78121699"
      },
      {
        "path": "app/CN/traditions/qizheng/page.tsx",
        "sha256": "eb2d028e4dd20fe6658d5ad8d94adffb6c75b7b06fadef2f10f0edea5cc76e26"
      },
      {
        "path": "app/qizheng/page.tsx",
        "sha256": "9fb74d57c2e3711f29a42e49f0b43d554aabc0d24ecb1c849bb536b87ecda51e"
      },
      {
        "path": "app/qizheng/qizheng.css",
        "sha256": "1597fb7a7aa6c79915b2a29afebe2b159ce00806e2080858226222a5c94b2ade"
      },
      {
        "path": "app/qizheng/sources/page.tsx",
        "sha256": "0a7d0d53f33956549b813020a8ef4a0eeab717fd09194d15be0c691ebb93bf27"
      },
      {
        "path": "app/traditions/qizheng/page.tsx",
        "sha256": "9ce2b5afcf081954336987f0d119b25eff21c18b3d109be7b21eaeee97994bf9"
      },
      {
        "path": "calculation/__init__.py",
        "sha256": "d8a02f0d2001c969ed7729a0875242de044c3c090bed02407fad12382be7c362"
      },
      {
        "path": "calculation/astronomy.py",
        "sha256": "2af5aa13413ea335cc00c9ca9efb82a737676cfb524b0a5a31fafe6c22fcd14f"
      },
      {
        "path": "calculation/clock.py",
        "sha256": "14d96f297ba5cb436c1312e4ffcb916d9d1f5d41c175ed2ed6971cb4554fb9e2"
      },
      {
        "path": "calculation/data/CircularNatal-Unlicense.txt",
        "sha256": "0bdebfeda07d45dada625ae1317c6f833186e798b171d0db640bcf32e92a8240"
      },
      {
        "path": "calculation/data/DE440-COMMENTS.txt",
        "sha256": "e8123d2cd6daba62459661ad355b54f1431e56d2703ba42380dba46e7581eedc"
      },
      {
        "path": "calculation/data/NOTICE.md",
        "sha256": "51c66d005ad2d7248fff8fde6c52fc4932e6eafa0a46c39b33636cc1b3c29a8f"
      },
      {
        "path": "calculation/data/manifest.json",
        "sha256": "ed38d0fb970e3642174fab51346299808c1c97647f8da2c12625c26adbd890bd"
      },
      {
        "path": "calculation/data_access.py",
        "sha256": "a747a06cf92a150847b4c34e796ff2b2b2b79c14b87431ccdf4085a92f027a8e"
      },
      {
        "path": "calculation/engine.py",
        "sha256": "d0f3c310f2b87b7e959474af85c0f9459b7a6154788939cb7291a4828fc149ac"
      },
      {
        "path": "calculation/ephemeris.py",
        "sha256": "61d7e6e3ca5ef6f9659e0b078cce820944f7f4efc1b5ca215a711aaa12256237"
      },
      {
        "path": "calculation/errors.py",
        "sha256": "dd4d0a9a53f02366df17db9618c82bb922d7710b8dd4378905443483069c4bc0"
      },
      {
        "path": "calculation/houses.py",
        "sha256": "ee3617c92898cedc847a25a7464af57883296206491efb6700575f2a49351714"
      },
      {
        "path": "calculation/sidereal.py",
        "sha256": "ae45028e9710926edbf41a432feb790a1e3f67ba83414464c6810587ec7cdffd"
      },
      {
        "path": "components/qizheng/calculation-settings.module.css",
        "sha256": "a2298fdd63bae056081fbb2e7938e3dd861be1412a2b303212d54bd7b6daa3b9"
      },
      {
        "path": "components/qizheng/calculation-settings.tsx",
        "sha256": "3117c5562f25e9bd5e985cf4721f4760ea1c917635509238cbbab4360c7fc8bd"
      },
      {
        "path": "components/qizheng/celestial-panels.tsx",
        "sha256": "dd804906b42dfc10f908c4a3aeda8969f926d935ed695ed93c13a186365fe546"
      },
      {
        "path": "components/qizheng/chart-inspector.module.css",
        "sha256": "877581cbbd8e7d5e651ad4d7ddc7224a4ad60f05e51e44c8d856e5af06a26498"
      },
      {
        "path": "components/qizheng/chart-inspector.tsx",
        "sha256": "a878dd7366245d9984b7e6990f2bac8278d019b614ca5f3287ecd98c1e483044"
      },
      {
        "path": "components/qizheng/chart-rail.module.css",
        "sha256": "97b96208bb31363af327cc5c948152e37d5cbf2e694354025865b15e80145379"
      },
      {
        "path": "components/qizheng/chart-rail.tsx",
        "sha256": "82b542f7b152388cfc5d76dc58819ec0b6e0b5a42bd6d9b60805626f6a4e3f29"
      },
      {
        "path": "components/qizheng/chart-sheet.module.css",
        "sha256": "07b3129c43d2655798151d05effcdd8cb2481615bcaf9aea8838e567151a415e"
      },
      {
        "path": "components/qizheng/chart-sheet.tsx",
        "sha256": "5b388a068b5909cb02aadb64d76280e84d8364e2a52b8dcb6775057e6c8520c2"
      },
      {
        "path": "components/qizheng/explorer.tsx",
        "sha256": "57f3c972a71f05d70dec23b8e686a4c655f29c4bfb929eaed5e74942e178d1ff"
      },
      {
        "path": "components/qizheng/locale.tsx",
        "sha256": "3f236c98418a719d15fc581a225de000f488e6e49ff577dc420401a2c9c609d4"
      },
      {
        "path": "components/qizheng/moira-summary.module.css",
        "sha256": "a7dce6770534ddf0f51f3f6053969e0de364435c5aaae8e06df0161a6aa0bf26"
      },
      {
        "path": "components/qizheng/moira-summary.tsx",
        "sha256": "4983256d6b04425c29ac861b188f4669d1f6baf30837d2e3ec025e158ca4a751"
      },
      {
        "path": "components/qizheng/moira-svg-text.tsx",
        "sha256": "afca2dcec26e45bac854ffc77e1360e163bbec8b663637fe7ef52c5302116232"
      },
      {
        "path": "components/qizheng/notebook.tsx",
        "sha256": "62e9c656c35a7dc49c2fb76af15b63efb35b766eb3dd54dc34dd8452b3f4d00f"
      },
      {
        "path": "components/qizheng/page.tsx",
        "sha256": "5cc4dac40f88c9f4dba3ce5dd1f5f1df9e2418636662577d34982fd3e83f3189"
      },
      {
        "path": "components/qizheng/patterns.tsx",
        "sha256": "26a48518b8b64db24b329b6ddef49cc5114b57b83aefc1641e28b1fa062904b0"
      },
      {
        "path": "components/qizheng/traditional-panels.module.css",
        "sha256": "8e3214c7d0b2dc547a9c72906a14507461e70fc7b1988c73206975d356e4a1cb"
      },
      {
        "path": "components/qizheng/traditional-panels.tsx",
        "sha256": "36a983e2da7b636dec0e92ebb1ee358e84d85ff2960c295c201274b7cbb77391"
      },
      {
        "path": "components/qizheng/wheel.tsx",
        "sha256": "e5c6f35730fcb9b57cbc1f11de2f1d397717bae884b987aa36af1da7811dd5f5"
      },
      {
        "path": "lib/qizheng/api.ts",
        "sha256": "2e952056cd6cc475c41d397b500b80835b6105094a5553e579fd689b14707864"
      },
      {
        "path": "lib/qizheng/chart-geometry.ts",
        "sha256": "b22f492f570f02734d0cf410f595852acf7dcb8cd34cf3b2d3deb9130f95233e"
      },
      {
        "path": "lib/qizheng/chart-inspection.ts",
        "sha256": "362e6fa3747b79558b586eed0410002d37ef7a698c9a2784664c279a082330f3"
      },
      {
        "path": "lib/qizheng/chart-layout.ts",
        "sha256": "080e7872155bb4bcf1e4000a3303322357e7931419bbc5295401884b65b8dea2"
      },
      {
        "path": "lib/qizheng/chart-view.ts",
        "sha256": "a8722bfd3e4e66a0363524431e08cc48c35eb1e83e86d211f35a58b2312c2dbe"
      },
      {
        "path": "lib/qizheng/complete-types.ts",
        "sha256": "6ff8f672d33560051cdcfdb272ca444ca7b35f18d2e2abeb2469717e8fdef65a"
      },
      {
        "path": "lib/qizheng/eclipse-presentation.ts",
        "sha256": "ce39fbc49dc823478dd83cc78857a87e5b4c074edafebc0760a643a9a63296e0"
      },
      {
        "path": "lib/qizheng/locale.ts",
        "sha256": "ae87274147bbad209d1b7135e935e69ab8b0b532c7f58e6f96e16386373b89cf"
      },
      {
        "path": "lib/qizheng/messages.en.ts",
        "sha256": "cfbe563e845be8f00fc7a8be42d89a7d747f02e4459b9b439dd6cf6805c52a99"
      },
      {
        "path": "lib/qizheng/minor-period-presentation.ts",
        "sha256": "4d12996168c4631772772e541b5276028986c873fcad04e1b8f1e184073fb9e4"
      },
      {
        "path": "lib/qizheng/moira-label-layout.ts",
        "sha256": "3737311c1dba93296acb64d8e2ff62693250edd84bd5080c8e70c40dd5534530"
      },
      {
        "path": "lib/qizheng/moira-presentation.ts",
        "sha256": "7ee4a552328a5631a956a96b3b6997b338eaeaae438687a79a195dd6e9f5362d"
      },
      {
        "path": "lib/qizheng/moira-shensha-layout.ts",
        "sha256": "a35e8fb34ff24576a552e897bb80915578ab998b65bd147fa2c635b36b57150f"
      },
      {
        "path": "lib/qizheng/moira-tooltip.ts",
        "sha256": "41f62a8ab715bcc1c061e379263d3d85e931690c068c4fabf7d41d541bcbd87d"
      },
      {
        "path": "lib/qizheng/notebook.ts",
        "sha256": "320c4e6c415f020b153eb1efbf200eba3875235e5a4d82e98be417bb57b9547f"
      },
      {
        "path": "lib/qizheng/proper-names.en.ts",
        "sha256": "0f9243d79438d8e49453674b1c18699468d00ed71566d0e6389c92a3e0fcc332"
      },
      {
        "path": "lib/qizheng/traditional-terms.en.ts",
        "sha256": "641aae8ecf9fd9e8ecc1e132549b93f1991e5eec95b34fad9d1fd2e6b758a240"
      },
      {
        "path": "lib/qizheng/types.ts",
        "sha256": "27b80b17100ab5547baf3297d28b9ed4ef95bf7c8e30f5b95b9fcf68461459d4"
      },
      {
        "path": "qizheng/LICENSE",
        "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
      },
      {
        "path": "qizheng/NOTICE.md",
        "sha256": "5b036f570113730cd62fd819c245fab922a91ebac10bfded6733481133ace800"
      },
      {
        "path": "qizheng/__init__.py",
        "sha256": "6a93980f724bbaa194f39d9f0c7c1b02f993ed6734978d5f37a58fcf11b64c23"
      },
      {
        "path": "qizheng/aspects.py",
        "sha256": "655eb20a843a9d9d01ec0fb8e48cb63e4f2586f8846e42b3484e9624caaba3f7"
      },
      {
        "path": "qizheng/astronomy.py",
        "sha256": "4f06f718fd693da5419cddbcecb1e7d1a19e86b509f9729d83f85667b6487be9"
      },
      {
        "path": "qizheng/calendar.py",
        "sha256": "09425497d90c04847b733c239ecc0cfce30520c3067035f31a2bda69868c50e1"
      },
      {
        "path": "qizheng/calendar_rules.json",
        "sha256": "8874f1afdff906d6aa8fb05a58b17d75faf61da24e8c6850a2fb1b2b1a6506f9"
      },
      {
        "path": "qizheng/candidate.py",
        "sha256": "fa55b70e127042e48f8975efc5f88233b1b8a3cb7f81b2a3c5653180393cfb66"
      },
      {
        "path": "qizheng/data/NOTICE.md",
        "sha256": "e1c0befd7082aaab79221a23fa39de0db957b66110b8f17ceb0840d328b9584a"
      },
      {
        "path": "qizheng/data/bsc5p-enclosure-stars.json",
        "sha256": "dc9395ed654067adfd8c6dfc133b0a00bc95ea347f4d6a9e5f539298889711ca"
      },
      {
        "path": "qizheng/data/bsc5p-mansion-stars.json",
        "sha256": "339abc4d3a72a01a67e0298af6e87896aa8387461c1ee6a4f75684afb70b8bde"
      },
      {
        "path": "qizheng/eclipses.py",
        "sha256": "e7c7e606d0d34a63cc61d0a8293a8a3b2f0e6457c047c3dec5d5a40aad621c03"
      },
      {
        "path": "qizheng/enclosures.py",
        "sha256": "0d8e76b09a7ffc10122b6ee4669b7749e64eb87f3397a4ae0ccdbed9b7f65575"
      },
      {
        "path": "qizheng/engine.py",
        "sha256": "5ed130a921ab0c1b562bb2a9fb8b57e32329fa8af5fb47c6949cca5bfcb6bbd4"
      },
      {
        "path": "qizheng/horizon.py",
        "sha256": "48647319149c47c9627431a7a1d6bf5d0986cd3fca305a72225831c15be2939c"
      },
      {
        "path": "qizheng/life_methods.py",
        "sha256": "e9879bf5fa5a7acfe11619affc8db568a0b99ca93583b15912c2fce73a949369"
      },
      {
        "path": "qizheng/lunar_nodes.py",
        "sha256": "9f1f05fed5de13ceee31242cc426a9ef6139168642f39016a3302c829cb4ae23"
      },
      {
        "path": "qizheng/mansions.py",
        "sha256": "a52facd0df40bd262808addc2a347f742cd41430066dcd35dd7434f09029438f"
      },
      {
        "path": "qizheng/mean_apogee-SDSS-LICENSE.txt",
        "sha256": "535856d8cf91c05ec84b157c04258f4ca0d8d5a08a86ff5f9ecc12d6f3fe4cde"
      },
      {
        "path": "qizheng/mean_apogee.py",
        "sha256": "595a3faa1c2b295c8ef46101677d04f7674143039f16ae443afe9ccf950e98a7"
      },
      {
        "path": "qizheng/minor_periods.py",
        "sha256": "afb963bc4de6a98223bd459862f7be2daf1c6ddf8756476f2c7298a8037a80ef"
      },
      {
        "path": "qizheng/motion_states.py",
        "sha256": "687226ebe74f7982bd51ab21170e3cb51716f8b3992114108f8dc5d89b2a5a8f"
      },
      {
        "path": "qizheng/natal.py",
        "sha256": "95b419723d8b20f3d9f363a25220e379c557858bce3be10f9ab40f65a800df44"
      },
      {
        "path": "qizheng/patterns.py",
        "sha256": "fb89ab8bd7e244122dbd1b7ff781c5099237be9066d4ca3111c4b8c3c84cb44f"
      },
      {
        "path": "qizheng/patterns_facts.py",
        "sha256": "c8efb110d3141ddd8da089156f4cda8eba181763edee636d032d90927524a518"
      },
      {
        "path": "qizheng/patterns_resources.py",
        "sha256": "312d1b689b560bd8c0a701b8a57d5b6253385c05b881a731d3e52f86f8439f62"
      },
      {
        "path": "qizheng/patterns_s.json",
        "sha256": "ab192cb7ccfc5bdb4c2110ea1fc735f29981b221c36f8f032f1a919351a2df08"
      },
      {
        "path": "qizheng/patterns_t.json",
        "sha256": "f26a106b84f5de4d332e444d630d0f84d750e332e145763aea28bcdd23bbb161"
      },
      {
        "path": "qizheng/patterns_workbench.py",
        "sha256": "056a71ac58e3294a2db5a86575d7b3836d518d26054d4c3d8168eab86804fbc1"
      },
      {
        "path": "qizheng/purple_qi.py",
        "sha256": "202dfe59166ee4176d6ed9bae67a1f20c189b9a11ec0f1aba3701b4c9045317f"
      },
      {
        "path": "qizheng/shensha.py",
        "sha256": "8209d04d0e0e28f61b3f9534e56e1ac91817f1c8448db0f80db73040756f5fae"
      },
      {
        "path": "qizheng/shensha_rules.json",
        "sha256": "b8d5b9e87b0e04918c0455e033b3176103ce145c7dc503877bcb2af430098e3c"
      },
      {
        "path": "qizheng/solar_times.py",
        "sha256": "f9ec828f7bbfd04ae1975d72bcd0120cbcd723403ef5e477d0e55f187c6d48a1"
      },
      {
        "path": "qizheng/stellar.py",
        "sha256": "61b1549cb03fed3e334f7e8098c57a073a7ac9f7cc4164e29171bb40ea8997fd"
      },
      {
        "path": "qizheng/traditional_rules.py",
        "sha256": "4b8f06178992c42a7070e6fdf8a8a911603bd0310f45fe326b4e01418705f704"
      },
      {
        "path": "qizheng/workbench.py",
        "sha256": "9d9ebc9173a0c05c40e9ca7155468f49447e6bccf9fbf72301bfe532a986129d"
      },
      {
        "path": "requirements.txt",
        "sha256": "702e5a0c97fbc83357978d10f9b83a01c4d0b6717e6bfc2b1ff9961f606f61aa"
      }
    ],
    "edition": "public-preview",
    "files": [
      {
        "bytes": 35149,
        "origin_kind": "generated_control_or_document",
        "path": "LICENSE",
        "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
      },
      {
        "bytes": 4156,
        "origin_kind": "generated_preview_control_or_document",
        "path": "NOTICE.md",
        "sha256": "e4ffe05dd6ac8f40dcf7bb45414bc7cf97b7a0470434e7e5eb6261990bcb0415"
      },
      {
        "bytes": 4376,
        "origin_kind": "generated_preview_control_or_document",
        "path": "README.md",
        "sha256": "be7b91e416607ec140152e12f66add1b13aca6be478a321a5dd0bcc892be35fb"
      },
      {
        "bytes": 65,
        "origin_kind": "generated_control_or_document",
        "path": "api/__init__.py",
        "sha256": "9b2901baecd40ed28fbc6ac4775b4fe198dd8d1501c6863ac56dd1a29c34ee89"
      },
      {
        "bytes": 6135,
        "origin_kind": "exact_project_source",
        "path": "api/qizheng.py",
        "sha256": "b2035c4d62c7cfb17a15b5ff8c41a5bfa143413eaf2fe7ce5bc1149fe191eadd",
        "source_path": "api/qizheng.py"
      },
      {
        "bytes": 226,
        "origin_kind": "exact_project_source",
        "path": "calculation/__init__.py",
        "sha256": "d8a02f0d2001c969ed7729a0875242de044c3c090bed02407fad12382be7c362",
        "source_path": "calculation/__init__.py"
      },
      {
        "bytes": 5940,
        "origin_kind": "exact_project_source",
        "path": "calculation/astronomy.py",
        "sha256": "2af5aa13413ea335cc00c9ca9efb82a737676cfb524b0a5a31fafe6c22fcd14f",
        "source_path": "calculation/astronomy.py"
      },
      {
        "bytes": 4825,
        "origin_kind": "exact_project_source",
        "path": "calculation/clock.py",
        "sha256": "14d96f297ba5cb436c1312e4ffcb916d9d1f5d41c175ed2ed6971cb4554fb9e2",
        "source_path": "calculation/clock.py"
      },
      {
        "bytes": 1211,
        "origin_kind": "exact_project_source",
        "path": "calculation/data/CircularNatal-Unlicense.txt",
        "sha256": "0bdebfeda07d45dada625ae1317c6f833186e798b171d0db640bcf32e92a8240",
        "source_path": "calculation/data/CircularNatal-Unlicense.txt"
      },
      {
        "bytes": 59312,
        "origin_kind": "exact_project_source",
        "path": "calculation/data/DE440-COMMENTS.txt",
        "sha256": "e8123d2cd6daba62459661ad355b54f1431e56d2703ba42380dba46e7581eedc",
        "source_path": "calculation/data/DE440-COMMENTS.txt"
      },
      {
        "bytes": 3691,
        "origin_kind": "exact_project_source",
        "path": "calculation/data/NOTICE.md",
        "sha256": "51c66d005ad2d7248fff8fde6c52fc4932e6eafa0a46c39b33636cc1b3c29a8f",
        "source_path": "calculation/data/NOTICE.md"
      },
      {
        "bytes": 4926,
        "origin_kind": "exact_project_source",
        "path": "calculation/data/manifest.json",
        "sha256": "ed38d0fb970e3642174fab51346299808c1c97647f8da2c12625c26adbd890bd",
        "source_path": "calculation/data/manifest.json"
      },
      {
        "bytes": 2190,
        "origin_kind": "exact_project_source",
        "path": "calculation/data_access.py",
        "sha256": "a747a06cf92a150847b4c34e796ff2b2b2b79c14b87431ccdf4085a92f027a8e",
        "source_path": "calculation/data_access.py"
      },
      {
        "bytes": 18083,
        "origin_kind": "exact_project_source",
        "path": "calculation/engine.py",
        "sha256": "d0f3c310f2b87b7e959474af85c0f9459b7a6154788939cb7291a4828fc149ac",
        "source_path": "calculation/engine.py"
      },
      {
        "bytes": 5523,
        "origin_kind": "exact_project_source",
        "path": "calculation/ephemeris.py",
        "sha256": "61d7e6e3ca5ef6f9659e0b078cce820944f7f4efc1b5ca215a711aaa12256237",
        "source_path": "calculation/ephemeris.py"
      },
      {
        "bytes": 415,
        "origin_kind": "exact_project_source",
        "path": "calculation/errors.py",
        "sha256": "dd4d0a9a53f02366df17db9618c82bb922d7710b8dd4378905443483069c4bc0",
        "source_path": "calculation/errors.py"
      },
      {
        "bytes": 8613,
        "origin_kind": "exact_project_source",
        "path": "calculation/houses.py",
        "sha256": "ee3617c92898cedc847a25a7464af57883296206491efb6700575f2a49351714",
        "source_path": "calculation/houses.py"
      },
      {
        "bytes": 4682,
        "origin_kind": "exact_project_source",
        "path": "calculation/sidereal.py",
        "sha256": "ae45028e9710926edbf41a432feb790a1e3f67ba83414464c6810587ec7cdffd",
        "source_path": "calculation/sidereal.py"
      },
      {
        "bytes": 260,
        "origin_kind": "generated_preview_control_or_document",
        "path": "examples/request.json",
        "sha256": "6369c619d59f43281a257416402e488d16c5d319ba4919adce4888ff1e0bdab5"
      },
      {
        "bytes": 4482,
        "origin_kind": "exact_project_source",
        "path": "licenses/site/dmsans-OFL.txt",
        "sha256": "9af36190332437f5ecd09974de43c1f7c77a310a996cdd8ceb25628b458840e1",
        "source_path": "licenses/dmsans-OFL.txt"
      },
      {
        "bytes": 1018,
        "origin_kind": "exact_project_source",
        "path": "licenses/site/geonames-CC-BY-4.0.txt",
        "sha256": "110fe468a47c732380a7ce0a647807b02ed8187dccfdc2dba571a1f1b5fdf3b2",
        "source_path": "licenses/geonames-CC-BY-4.0.txt"
      },
      {
        "bytes": 4394,
        "origin_kind": "exact_project_source",
        "path": "licenses/site/newsreader-OFL.txt",
        "sha256": "fdfad38143ec470553cae82a1e45320bdd1b9ec70415d37bd0171051d8a4ded8",
        "source_path": "licenses/newsreader-OFL.txt"
      },
      {
        "bytes": 1081,
        "origin_kind": "exact_project_source",
        "path": "licenses/site/sistine-MIT.txt",
        "sha256": "f47e27743d6239cdce552d17ff00f3b8258a7ac0d2c3f759e8a5b9d6143e81e4",
        "source_path": "licenses/sistine-MIT.txt"
      },
      {
        "bytes": 2651,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/ERFA-LICENSE.txt",
        "sha256": "b1858f9a263f22c438a455a32945da51a31a0ae25a21055da13bb7ed57cc3b51"
      },
      {
        "bytes": 35149,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/GPL-3.0.txt",
        "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986"
      },
      {
        "bytes": 1813,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/MOIRA-RULES-NOTICE.txt",
        "sha256": "9c078a13b85ec2301bed0a061c8d4501d1c4eddb0e809772e25376be2d6f5279"
      },
      {
        "bytes": 1896,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/SDSS-BSD-3-Clause.txt",
        "sha256": "535856d8cf91c05ec84b157c04258f4ca0d8d5a08a86ff5f9ecc12d6f3fe4cde"
      },
      {
        "bytes": 1211,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/data/CircularNatal-Unlicense.txt",
        "sha256": "0bdebfeda07d45dada625ae1317c6f833186e798b171d0db640bcf32e92a8240"
      },
      {
        "bytes": 59312,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/data/DE440-COMMENTS.txt",
        "sha256": "e8123d2cd6daba62459661ad355b54f1431e56d2703ba42380dba46e7581eedc"
      },
      {
        "bytes": 11537,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/data/NAIF-rules-snapshot.txt",
        "sha256": "4f1ea56e376d4a0a2f5c391b3351e70efa8df9252be9ccbca3f1130a839dc7f2"
      },
      {
        "bytes": 3691,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/data/NOTICE.md",
        "sha256": "51c66d005ad2d7248fff8fde6c52fc4932e6eafa0a46c39b33636cc1b3c29a8f"
      },
      {
        "bytes": 989,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/certifi/certifi-2026.7.22.dist-info__licenses__LICENSE",
        "sha256": "e93716da6b9c0d5a4a1df60fe695b370f0695603d21f6f83f053e42cfc10caf7"
      },
      {
        "bytes": 1084,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/jplephem/jplephem-2.24.dist-info__licenses__LICENSE.txt",
        "sha256": "31bbf940baa5da362ef4e16ccda663cf09a096673b9eac30413f899c1055981d"
      },
      {
        "bytes": 46826,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__LICENSE.txt",
        "sha256": "649a589ab31076e79e9ce62ba24eae9959598124176640dbc95f87bd10f34fcf"
      },
      {
        "bytes": 1018,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy___core__include__numpy__libdivide__LICENSE.txt",
        "sha256": "fbc539f47d0cf83bc61378080fb873d5c14630126cacbfe754035c3926daa5ec"
      },
      {
        "bytes": 690,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy___core__src__common__pythoncapi-compat__COPYING",
        "sha256": "3f2c1ffa76383a55ae0aac01c9737cd70050dff63e1f026694fbe9d662573c98"
      },
      {
        "bytes": 20785,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy___core__src__highway__LICENSE",
        "sha256": "e340270d4f64384569a91d546acb5b094d69ce47f0c015db77abb74dc6f815af"
      },
      {
        "bytes": 1414,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy___core__src__multiarray__dragon4_LICENSE.txt",
        "sha256": "f7b14309e5f54e5022b26448eefd419988ada2aec01d3c1162d84a0ea8f21f2c"
      },
      {
        "bytes": 1514,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy___core__src__npysort__x86-simd-sort__LICENSE.md",
        "sha256": "211e7d737d6179a08f791ebb0a99897ce7cd2457410c542876d125576edfe910"
      },
      {
        "bytes": 1543,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy___core__src__umath__svml__LICENSE",
        "sha256": "c17011467b4fe6e20fbfbeda4df09e58c2bca5480a063e55735a4000a379aad9"
      },
      {
        "bytes": 1498,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__fft__pocketfft__LICENSE.md",
        "sha256": "a85ca13fdf90160b64a0698215868c13b74d835ad0a4e2ba44713b8c5058a056"
      },
      {
        "bytes": 2266,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__linalg__lapack_lite__LICENSE.txt",
        "sha256": "a14cc25e10d40a3aa705b7de2fb764a6535d8ee9b2db4e1724900585457dfd55"
      },
      {
        "bytes": 1593,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__ma__LICENSE",
        "sha256": "05f3b88351988ecfad10abe92c0c50e5875c6452d5009a0084cc291551ffcca6"
      },
      {
        "bytes": 3511,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__LICENSE.md",
        "sha256": "103166b62b80443afb9eb3488e052ea06be0cff566b908f199e561fde49af19f"
      },
      {
        "bytes": 2745,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__src__distributions__LICENSE.md",
        "sha256": "469778be8f33d54e1bcaab28c281cc472916d2d273f835e55bc487d30503face"
      },
      {
        "bytes": 2926,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__src__mt19937__LICENSE.md",
        "sha256": "0e111337b25494a773106695f0e799f642b8567aaacca4f116a74a8177179156"
      },
      {
        "bytes": 1154,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__src__pcg64__LICENSE.md",
        "sha256": "e7d4f4fb20358f314210a892ae17351e04993813646f697ec387385ca2a36918"
      },
      {
        "bytes": 1509,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__src__philox__LICENSE.md",
        "sha256": "6f5828a57223d4cc7f8ea505a2623e7b978b242752c1515e355f46ba2cec1800"
      },
      {
        "bytes": 1226,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__src__sfc64__LICENSE.md",
        "sha256": "9d4098846018319cd68e228ee6220361787f73bccbf00237a85e4fc9621b998f"
      },
      {
        "bytes": 332,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy-2.5.3.dist-info__licenses__numpy__random__src__splitmix64__LICENSE.md",
        "sha256": "268b0ca06759d31ea3ca68dd35f20e877916e927b1c2a835e4592a3c4354b1f9"
      },
      {
        "bytes": 1018,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy___core__include__numpy__random__LICENSE.txt",
        "sha256": "fbc539f47d0cf83bc61378080fb873d5c14630126cacbfe754035c3926daa5ec"
      },
      {
        "bytes": 1593,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy__ma__LICENSE",
        "sha256": "05f3b88351988ecfad10abe92c0c50e5875c6452d5009a0084cc291551ffcca6"
      },
      {
        "bytes": 3511,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/numpy/numpy__random__LICENSE.md",
        "sha256": "103166b62b80443afb9eb3488e052ea06be0cff566b908f199e561fde49af19f"
      },
      {
        "bytes": 1494,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/pyerfa/pyerfa-2.0.1.5.dist-info__LICENSE.rst",
        "sha256": "0d404371a5d7d1478307ab142962091ec258b92a71f8cab3736fdb46b03cc716"
      },
      {
        "bytes": 1086,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/sgp4/sgp4-2.27.dist-info__licenses__LICENSE",
        "sha256": "4474ea9eccbb829c6bc3652381bfe78b1c815de021d4a284a2a5b383a374d030"
      },
      {
        "bytes": 1101,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/skyfield/skyfield-1.55.dist-info__LICENSE",
        "sha256": "4b3cad9301fc389f9545079b43384659b908e94d6ab271474b3f6da2bd20d65a"
      },
      {
        "bytes": 625,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/tzdata/tzdata-2026.3.dist-info__licenses__LICENSE",
        "sha256": "df58f69ea88683035d720b5375bcef0cf5aeaa98a1d098d572e0992c378deb46"
      },
      {
        "bytes": 11357,
        "origin_kind": "retained_upstream_notice",
        "path": "licenses/upstream/dependencies/tzdata/tzdata-2026.3.dist-info__licenses__licenses__LICENSE_APACHE",
        "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4"
      },
      {
        "bytes": 35149,
        "origin_kind": "exact_project_source",
        "path": "qizheng/LICENSE",
        "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986",
        "source_path": "qizheng/LICENSE"
      },
      {
        "bytes": 5528,
        "origin_kind": "exact_project_source",
        "path": "qizheng/NOTICE.md",
        "sha256": "5b036f570113730cd62fd819c245fab922a91ebac10bfded6733481133ace800",
        "source_path": "qizheng/NOTICE.md"
      },
      {
        "bytes": 253,
        "origin_kind": "exact_project_source",
        "path": "qizheng/__init__.py",
        "sha256": "6a93980f724bbaa194f39d9f0c7c1b02f993ed6734978d5f37a58fcf11b64c23",
        "source_path": "qizheng/__init__.py"
      },
      {
        "bytes": 3494,
        "origin_kind": "exact_project_source",
        "path": "qizheng/aspects.py",
        "sha256": "655eb20a843a9d9d01ec0fb8e48cb63e4f2586f8846e42b3484e9624caaba3f7",
        "source_path": "qizheng/aspects.py"
      },
      {
        "bytes": 10878,
        "origin_kind": "exact_project_source",
        "path": "qizheng/astronomy.py",
        "sha256": "4f06f718fd693da5419cddbcecb1e7d1a19e86b509f9729d83f85667b6487be9",
        "source_path": "qizheng/astronomy.py"
      },
      {
        "bytes": 17772,
        "origin_kind": "exact_project_source",
        "path": "qizheng/calendar.py",
        "sha256": "09425497d90c04847b733c239ecc0cfce30520c3067035f31a2bda69868c50e1",
        "source_path": "qizheng/calendar.py"
      },
      {
        "bytes": 7653,
        "origin_kind": "exact_project_source",
        "path": "qizheng/calendar_rules.json",
        "sha256": "8874f1afdff906d6aa8fb05a58b17d75faf61da24e8c6850a2fb1b2b1a6506f9",
        "source_path": "qizheng/calendar_rules.json"
      },
      {
        "bytes": 2939,
        "origin_kind": "exact_project_source",
        "path": "qizheng/candidate.py",
        "sha256": "fa55b70e127042e48f8975efc5f88233b1b8a3cb7f81b2a3c5653180393cfb66",
        "source_path": "qizheng/candidate.py"
      },
      {
        "bytes": 9529,
        "origin_kind": "exact_project_source",
        "path": "qizheng/data/NOTICE.md",
        "sha256": "e1c0befd7082aaab79221a23fa39de0db957b66110b8f17ceb0840d328b9584a",
        "source_path": "qizheng/data/NOTICE.md"
      },
      {
        "bytes": 22242,
        "origin_kind": "exact_project_source",
        "path": "qizheng/data/bsc5p-enclosure-stars.json",
        "sha256": "dc9395ed654067adfd8c6dfc133b0a00bc95ea347f4d6a9e5f539298889711ca",
        "source_path": "qizheng/data/bsc5p-enclosure-stars.json"
      },
      {
        "bytes": 13474,
        "origin_kind": "exact_project_source",
        "path": "qizheng/data/bsc5p-mansion-stars.json",
        "sha256": "339abc4d3a72a01a67e0298af6e87896aa8387461c1ee6a4f75684afb70b8bde",
        "source_path": "qizheng/data/bsc5p-mansion-stars.json"
      },
      {
        "bytes": 14496,
        "origin_kind": "exact_project_source",
        "path": "qizheng/eclipses.py",
        "sha256": "e7c7e606d0d34a63cc61d0a8293a8a3b2f0e6457c047c3dec5d5a40aad621c03",
        "source_path": "qizheng/eclipses.py"
      },
      {
        "bytes": 9755,
        "origin_kind": "exact_project_source",
        "path": "qizheng/enclosures.py",
        "sha256": "0d8e76b09a7ffc10122b6ee4669b7749e64eb87f3397a4ae0ccdbed9b7f65575",
        "source_path": "qizheng/enclosures.py"
      },
      {
        "bytes": 7475,
        "origin_kind": "exact_project_source",
        "path": "qizheng/engine.py",
        "sha256": "5ed130a921ab0c1b562bb2a9fb8b57e32329fa8af5fb47c6949cca5bfcb6bbd4",
        "source_path": "qizheng/engine.py"
      },
      {
        "bytes": 13242,
        "origin_kind": "exact_project_source",
        "path": "qizheng/horizon.py",
        "sha256": "48647319149c47c9627431a7a1d6bf5d0986cd3fca305a72225831c15be2939c",
        "source_path": "qizheng/horizon.py"
      },
      {
        "bytes": 2778,
        "origin_kind": "exact_project_source",
        "path": "qizheng/life_methods.py",
        "sha256": "e9879bf5fa5a7acfe11619affc8db568a0b99ca93583b15912c2fce73a949369",
        "source_path": "qizheng/life_methods.py"
      },
      {
        "bytes": 7947,
        "origin_kind": "exact_project_source",
        "path": "qizheng/lunar_nodes.py",
        "sha256": "9f1f05fed5de13ceee31242cc426a9ef6139168642f39016a3302c829cb4ae23",
        "source_path": "qizheng/lunar_nodes.py"
      },
      {
        "bytes": 5104,
        "origin_kind": "exact_project_source",
        "path": "qizheng/mansions.py",
        "sha256": "a52facd0df40bd262808addc2a347f742cd41430066dcd35dd7434f09029438f",
        "source_path": "qizheng/mansions.py"
      },
      {
        "bytes": 1896,
        "origin_kind": "exact_project_source",
        "path": "qizheng/mean_apogee-SDSS-LICENSE.txt",
        "sha256": "535856d8cf91c05ec84b157c04258f4ca0d8d5a08a86ff5f9ecc12d6f3fe4cde",
        "source_path": "qizheng/mean_apogee-SDSS-LICENSE.txt"
      },
      {
        "bytes": 10720,
        "origin_kind": "exact_project_source",
        "path": "qizheng/mean_apogee.py",
        "sha256": "595a3faa1c2b295c8ef46101677d04f7674143039f16ae443afe9ccf950e98a7",
        "source_path": "qizheng/mean_apogee.py"
      },
      {
        "bytes": 6480,
        "origin_kind": "exact_project_source",
        "path": "qizheng/minor_periods.py",
        "sha256": "afb963bc4de6a98223bd459862f7be2daf1c6ddf8756476f2c7298a8037a80ef",
        "source_path": "qizheng/minor_periods.py"
      },
      {
        "bytes": 18940,
        "origin_kind": "exact_project_source",
        "path": "qizheng/motion_states.py",
        "sha256": "687226ebe74f7982bd51ab21170e3cb51716f8b3992114108f8dc5d89b2a5a8f",
        "source_path": "qizheng/motion_states.py"
      },
      {
        "bytes": 2681,
        "origin_kind": "exact_project_source",
        "path": "qizheng/natal.py",
        "sha256": "95b419723d8b20f3d9f363a25220e379c557858bce3be10f9ab40f65a800df44",
        "source_path": "qizheng/natal.py"
      },
      {
        "bytes": 28671,
        "origin_kind": "exact_project_source",
        "path": "qizheng/patterns.py",
        "sha256": "fb89ab8bd7e244122dbd1b7ff781c5099237be9066d4ca3111c4b8c3c84cb44f",
        "source_path": "qizheng/patterns.py"
      },
      {
        "bytes": 18576,
        "origin_kind": "exact_project_source",
        "path": "qizheng/patterns_facts.py",
        "sha256": "c8efb110d3141ddd8da089156f4cda8eba181763edee636d032d90927524a518",
        "source_path": "qizheng/patterns_facts.py"
      },
      {
        "bytes": 1084,
        "origin_kind": "exact_project_source",
        "path": "qizheng/patterns_resources.py",
        "sha256": "312d1b689b560bd8c0a701b8a57d5b6253385c05b881a731d3e52f86f8439f62",
        "source_path": "qizheng/patterns_resources.py"
      },
      {
        "bytes": 44650,
        "origin_kind": "exact_project_source",
        "path": "qizheng/patterns_s.json",
        "sha256": "ab192cb7ccfc5bdb4c2110ea1fc735f29981b221c36f8f032f1a919351a2df08",
        "source_path": "qizheng/patterns_s.json"
      },
      {
        "bytes": 44650,
        "origin_kind": "exact_project_source",
        "path": "qizheng/patterns_t.json",
        "sha256": "f26a106b84f5de4d332e444d630d0f84d750e332e145763aea28bcdd23bbb161",
        "source_path": "qizheng/patterns_t.json"
      },
      {
        "bytes": 4609,
        "origin_kind": "exact_project_source",
        "path": "qizheng/patterns_workbench.py",
        "sha256": "056a71ac58e3294a2db5a86575d7b3836d518d26054d4c3d8168eab86804fbc1",
        "source_path": "qizheng/patterns_workbench.py"
      },
      {
        "bytes": 6035,
        "origin_kind": "exact_project_source",
        "path": "qizheng/purple_qi.py",
        "sha256": "202dfe59166ee4176d6ed9bae67a1f20c189b9a11ec0f1aba3701b4c9045317f",
        "source_path": "qizheng/purple_qi.py"
      },
      {
        "bytes": 12292,
        "origin_kind": "exact_project_source",
        "path": "qizheng/shensha.py",
        "sha256": "8209d04d0e0e28f61b3f9534e56e1ac91817f1c8448db0f80db73040756f5fae",
        "source_path": "qizheng/shensha.py"
      },
      {
        "bytes": 77979,
        "origin_kind": "exact_project_source",
        "path": "qizheng/shensha_rules.json",
        "sha256": "b8d5b9e87b0e04918c0455e033b3176103ce145c7dc503877bcb2af430098e3c",
        "source_path": "qizheng/shensha_rules.json"
      },
      {
        "bytes": 11002,
        "origin_kind": "exact_project_source",
        "path": "qizheng/solar_times.py",
        "sha256": "f9ec828f7bbfd04ae1975d72bcd0120cbcd723403ef5e477d0e55f187c6d48a1",
        "source_path": "qizheng/solar_times.py"
      },
      {
        "bytes": 13181,
        "origin_kind": "exact_project_source",
        "path": "qizheng/stellar.py",
        "sha256": "61b1549cb03fed3e334f7e8098c57a073a7ac9f7cc4164e29171bb40ea8997fd",
        "source_path": "qizheng/stellar.py"
      },
      {
        "bytes": 12774,
        "origin_kind": "exact_project_source",
        "path": "qizheng/traditional_rules.py",
        "sha256": "4b8f06178992c42a7070e6fdf8a8a911603bd0310f45fe326b4e01418705f704",
        "source_path": "qizheng/traditional_rules.py"
      },
      {
        "bytes": 11912,
        "origin_kind": "exact_project_source",
        "path": "qizheng/workbench.py",
        "sha256": "9d9ebc9173a0c05c40e9ca7155468f49447e6bccf9fbf72301bfe532a986129d",
        "source_path": "qizheng/workbench.py"
      },
      {
        "bytes": 104,
        "origin_kind": "exact_project_source",
        "path": "requirements.txt",
        "sha256": "702e5a0c97fbc83357978d10f9b83a01c4d0b6717e6bfc2b1ff9961f606f61aa",
        "source_path": "requirements.txt"
      },
      {
        "bytes": 145,
        "origin_kind": "generated_preview_control_or_document",
        "path": "source/frontend/README.md",
        "sha256": "cf5abc9492a604dbbba6713f6bbe093e8527e7fc204430d8779992b762591cbb"
      },
      {
        "bytes": 581,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/app/CN/qizheng/page.tsx",
        "sha256": "3705218ec1d9e748b7b83a44b2bc301618f626609c864ad2ecc436fa734c4eef",
        "source_path": "app/CN/qizheng/page.tsx"
      },
      {
        "bytes": 5443,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/app/CN/qizheng/sources/page.tsx",
        "sha256": "197ca3a6f6a92d97d232e85b3673695aea8d476d4db473ee5c6069eb78121699",
        "source_path": "app/CN/qizheng/sources/page.tsx"
      },
      {
        "bytes": 738,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/app/CN/traditions/qizheng/page.tsx",
        "sha256": "eb2d028e4dd20fe6658d5ad8d94adffb6c75b7b06fadef2f10f0edea5cc76e26",
        "source_path": "app/CN/traditions/qizheng/page.tsx"
      },
      {
        "bytes": 264,
        "origin_kind": "generated_control_or_document",
        "path": "source/frontend/app/api/locations/route.ts",
        "sha256": "2f7c390c4f764716ee30974173923ea8cbac8ff140c67f454851f15ebce2544a"
      },
      {
        "bytes": 289,
        "origin_kind": "generated_control_or_document",
        "path": "source/frontend/app/layout.tsx",
        "sha256": "1f80927e1bac2c31d09f48b7c5dc161a52442e10fa2bff9de45872337e45b994"
      },
      {
        "bytes": 100,
        "origin_kind": "generated_control_or_document",
        "path": "source/frontend/app/page.tsx",
        "sha256": "6001aa8c40284ce0b54450ac8a74cfe0182431e63aea022de4126515967daee5"
      },
      {
        "bytes": 626,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/app/qizheng/page.tsx",
        "sha256": "9fb74d57c2e3711f29a42e49f0b43d554aabc0d24ecb1c849bb536b87ecda51e",
        "source_path": "app/qizheng/page.tsx"
      },
      {
        "bytes": 41355,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/app/qizheng/qizheng.css",
        "sha256": "1597fb7a7aa6c79915b2a29afebe2b159ce00806e2080858226222a5c94b2ade",
        "source_path": "app/qizheng/qizheng.css"
      },
      {
        "bytes": 6340,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/app/qizheng/sources/page.tsx",
        "sha256": "0a7d0d53f33956549b813020a8ef4a0eeab717fd09194d15be0c691ebb93bf27",
        "source_path": "app/qizheng/sources/page.tsx"
      },
      {
        "bytes": 132,
        "origin_kind": "generated_control_or_document",
        "path": "source/frontend/app/standalone.css",
        "sha256": "58a644aa8272ceaa0deafd4187bc6cd56499e9b19a5ab6229c21a6fc04d7515d"
      },
      {
        "bytes": 746,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/app/traditions/qizheng/page.tsx",
        "sha256": "9ce2b5afcf081954336987f0d119b25eff21c18b3d109be7b21eaeee97994bf9",
        "source_path": "app/traditions/qizheng/page.tsx"
      },
      {
        "bytes": 882,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/calculation-settings.module.css",
        "sha256": "a2298fdd63bae056081fbb2e7938e3dd861be1412a2b303212d54bd7b6daa3b9",
        "source_path": "components/qizheng/calculation-settings.module.css"
      },
      {
        "bytes": 3615,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/calculation-settings.tsx",
        "sha256": "3117c5562f25e9bd5e985cf4721f4760ea1c917635509238cbbab4360c7fc8bd",
        "source_path": "components/qizheng/calculation-settings.tsx"
      },
      {
        "bytes": 8721,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/celestial-panels.tsx",
        "sha256": "dd804906b42dfc10f908c4a3aeda8969f926d935ed695ed93c13a186365fe546",
        "source_path": "components/qizheng/celestial-panels.tsx"
      },
      {
        "bytes": 1787,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/chart-inspector.module.css",
        "sha256": "877581cbbd8e7d5e651ad4d7ddc7224a4ad60f05e51e44c8d856e5af06a26498",
        "source_path": "components/qizheng/chart-inspector.module.css"
      },
      {
        "bytes": 2462,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/chart-inspector.tsx",
        "sha256": "a878dd7366245d9984b7e6990f2bac8278d019b614ca5f3287ecd98c1e483044",
        "source_path": "components/qizheng/chart-inspector.tsx"
      },
      {
        "bytes": 6302,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/chart-rail.module.css",
        "sha256": "97b96208bb31363af327cc5c948152e37d5cbf2e694354025865b15e80145379",
        "source_path": "components/qizheng/chart-rail.module.css"
      },
      {
        "bytes": 15913,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/chart-rail.tsx",
        "sha256": "82b542f7b152388cfc5d76dc58819ec0b6e0b5a42bd6d9b60805626f6a4e3f29",
        "source_path": "components/qizheng/chart-rail.tsx"
      },
      {
        "bytes": 20353,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/chart-sheet.module.css",
        "sha256": "07b3129c43d2655798151d05effcdd8cb2481615bcaf9aea8838e567151a415e",
        "source_path": "components/qizheng/chart-sheet.module.css"
      },
      {
        "bytes": 51859,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/chart-sheet.tsx",
        "sha256": "5b388a068b5909cb02aadb64d76280e84d8364e2a52b8dcb6775057e6c8520c2",
        "source_path": "components/qizheng/chart-sheet.tsx"
      },
      {
        "bytes": 12094,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/explorer.tsx",
        "sha256": "57f3c972a71f05d70dec23b8e686a4c655f29c4bfb929eaed5e74942e178d1ff",
        "source_path": "components/qizheng/explorer.tsx"
      },
      {
        "bytes": 652,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/locale.tsx",
        "sha256": "3f236c98418a719d15fc581a225de000f488e6e49ff577dc420401a2c9c609d4",
        "source_path": "components/qizheng/locale.tsx"
      },
      {
        "bytes": 4158,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/moira-summary.module.css",
        "sha256": "a7dce6770534ddf0f51f3f6053969e0de364435c5aaae8e06df0161a6aa0bf26",
        "source_path": "components/qizheng/moira-summary.module.css"
      },
      {
        "bytes": 6225,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/moira-summary.tsx",
        "sha256": "4983256d6b04425c29ac861b188f4669d1f6baf30837d2e3ec025e158ca4a751",
        "source_path": "components/qizheng/moira-summary.tsx"
      },
      {
        "bytes": 7148,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/moira-svg-text.tsx",
        "sha256": "afca2dcec26e45bac854ffc77e1360e163bbec8b663637fe7ef52c5302116232",
        "source_path": "components/qizheng/moira-svg-text.tsx"
      },
      {
        "bytes": 5324,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/notebook.tsx",
        "sha256": "62e9c656c35a7dc49c2fb76af15b63efb35b766eb3dd54dc34dd8452b3f4d00f",
        "source_path": "components/qizheng/notebook.tsx"
      },
      {
        "bytes": 51532,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/page.tsx",
        "sha256": "5cc4dac40f88c9f4dba3ce5dd1f5f1df9e2418636662577d34982fd3e83f3189",
        "source_path": "components/qizheng/page.tsx"
      },
      {
        "bytes": 3226,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/patterns.tsx",
        "sha256": "26a48518b8b64db24b329b6ddef49cc5114b57b83aefc1641e28b1fa062904b0",
        "source_path": "components/qizheng/patterns.tsx"
      },
      {
        "bytes": 11970,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/traditional-panels.module.css",
        "sha256": "8e3214c7d0b2dc547a9c72906a14507461e70fc7b1988c73206975d356e4a1cb",
        "source_path": "components/qizheng/traditional-panels.module.css"
      },
      {
        "bytes": 22581,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/traditional-panels.tsx",
        "sha256": "36a983e2da7b636dec0e92ebb1ee358e84d85ff2960c295c201274b7cbb77391",
        "source_path": "components/qizheng/traditional-panels.tsx"
      },
      {
        "bytes": 11790,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/components/qizheng/wheel.tsx",
        "sha256": "e5c6f35730fcb9b57cbc1f11de2f1d397717bae884b987aa36af1da7811dd5f5",
        "source_path": "components/qizheng/wheel.tsx"
      },
      {
        "bytes": 6200,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/api.ts",
        "sha256": "2e952056cd6cc475c41d397b500b80835b6105094a5553e579fd689b14707864",
        "source_path": "lib/qizheng/api.ts"
      },
      {
        "bytes": 8897,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/chart-geometry.ts",
        "sha256": "b22f492f570f02734d0cf410f595852acf7dcb8cd34cf3b2d3deb9130f95233e",
        "source_path": "lib/qizheng/chart-geometry.ts"
      },
      {
        "bytes": 19022,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/chart-inspection.ts",
        "sha256": "362e6fa3747b79558b586eed0410002d37ef7a698c9a2784664c279a082330f3",
        "source_path": "lib/qizheng/chart-inspection.ts"
      },
      {
        "bytes": 5014,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/chart-layout.ts",
        "sha256": "080e7872155bb4bcf1e4000a3303322357e7931419bbc5295401884b65b8dea2",
        "source_path": "lib/qizheng/chart-layout.ts"
      },
      {
        "bytes": 7557,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/chart-view.ts",
        "sha256": "a8722bfd3e4e66a0363524431e08cc48c35eb1e83e86d211f35a58b2312c2dbe",
        "source_path": "lib/qizheng/chart-view.ts"
      },
      {
        "bytes": 2788,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/complete-types.ts",
        "sha256": "6ff8f672d33560051cdcfdb272ca444ca7b35f18d2e2abeb2469717e8fdef65a",
        "source_path": "lib/qizheng/complete-types.ts"
      },
      {
        "bytes": 1780,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/eclipse-presentation.ts",
        "sha256": "ce39fbc49dc823478dd83cc78857a87e5b4c074edafebc0760a643a9a63296e0",
        "source_path": "lib/qizheng/eclipse-presentation.ts"
      },
      {
        "bytes": 11885,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/locale.ts",
        "sha256": "ae87274147bbad209d1b7135e935e69ab8b0b532c7f58e6f96e16386373b89cf",
        "source_path": "lib/qizheng/locale.ts"
      },
      {
        "bytes": 40444,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/messages.en.ts",
        "sha256": "cfbe563e845be8f00fc7a8be42d89a7d747f02e4459b9b439dd6cf6805c52a99",
        "source_path": "lib/qizheng/messages.en.ts"
      },
      {
        "bytes": 3668,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/minor-period-presentation.ts",
        "sha256": "4d12996168c4631772772e541b5276028986c873fcad04e1b8f1e184073fb9e4",
        "source_path": "lib/qizheng/minor-period-presentation.ts"
      },
      {
        "bytes": 7557,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/moira-label-layout.ts",
        "sha256": "3737311c1dba93296acb64d8e2ff62693250edd84bd5080c8e70c40dd5534530",
        "source_path": "lib/qizheng/moira-label-layout.ts"
      },
      {
        "bytes": 4762,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/moira-presentation.ts",
        "sha256": "7ee4a552328a5631a956a96b3b6997b338eaeaae438687a79a195dd6e9f5362d",
        "source_path": "lib/qizheng/moira-presentation.ts"
      },
      {
        "bytes": 13579,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/moira-shensha-layout.ts",
        "sha256": "a35e8fb34ff24576a552e897bb80915578ab998b65bd147fa2c635b36b57150f",
        "source_path": "lib/qizheng/moira-shensha-layout.ts"
      },
      {
        "bytes": 14967,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/moira-tooltip.ts",
        "sha256": "41f62a8ab715bcc1c061e379263d3d85e931690c068c4fabf7d41d541bcbd87d",
        "source_path": "lib/qizheng/moira-tooltip.ts"
      },
      {
        "bytes": 3616,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/notebook.ts",
        "sha256": "320c4e6c415f020b153eb1efbf200eba3875235e5a4d82e98be417bb57b9547f",
        "source_path": "lib/qizheng/notebook.ts"
      },
      {
        "bytes": 25446,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/proper-names.en.ts",
        "sha256": "0f9243d79438d8e49453674b1c18699468d00ed71566d0e6389c92a3e0fcc332",
        "source_path": "lib/qizheng/proper-names.en.ts"
      },
      {
        "bytes": 26025,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/traditional-terms.en.ts",
        "sha256": "641aae8ecf9fd9e8ecc1e132549b93f1991e5eec95b34fad9d1fd2e6b758a240",
        "source_path": "lib/qizheng/traditional-terms.en.ts"
      },
      {
        "bytes": 6810,
        "origin_kind": "exact_project_source",
        "path": "source/frontend/lib/qizheng/types.ts",
        "sha256": "27b80b17100ab5547baf3297d28b9ed4ef95bf7c8e30f5b95b9fcf68461459d4",
        "source_path": "lib/qizheng/types.ts"
      },
      {
        "bytes": 247,
        "origin_kind": "generated_control_or_document",
        "path": "source/frontend/next-env.d.ts",
        "sha256": "7b550dda9686c16f36a17bf9051d5dbf31e98555b30d114ac49fc49a1e712651"
      },
      {
        "bytes": 447,
        "origin_kind": "generated_control_or_document",
        "path": "source/frontend/next.config.mjs",
        "sha256": "252f9b222562a8ad359ddc2cb01cef041365407aed3905167791308dabe68b6b"
      },
      {
        "bytes": 613,
        "origin_kind": "generated_control_or_document",
        "path": "source/frontend/package.json",
        "sha256": "1403c9efdfa336df1fbc14fb80c72ace10621eb0def82afb8bde486dabeb5587"
      },
      {
        "bytes": 31080,
        "origin_kind": "generated_control_or_document",
        "path": "source/frontend/pnpm-lock.yaml",
        "sha256": "82f1d3b5c46d610d2c1f7395f11c0f033e4e376d16feb2e43688dc647606f5d3"
      },
      {
        "bytes": 78,
        "origin_kind": "generated_control_or_document",
        "path": "source/frontend/pnpm-workspace.yaml",
        "sha256": "167d75a126d95265a9727dfc24d96885a3d41dda3ba34afbe4ff1cefbfe52f29"
      },
      {
        "bytes": 35149,
        "origin_kind": "exact_historical_release_asset",
        "path": "source/frontend/public/qizheng-source/LICENSE.txt",
        "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986",
        "source_path": "public/qizheng-source/LICENSE.txt"
      },
      {
        "bytes": 3509,
        "origin_kind": "exact_historical_release_asset",
        "path": "source/frontend/public/qizheng-source/NOTICE.md",
        "sha256": "4c92156b83c9076a750ec71ef065c2c47c8b3d5eff148bdcc3faf36ee913d74b",
        "source_path": "public/qizheng-source/NOTICE.md"
      },
      {
        "bytes": 22990,
        "origin_kind": "exact_historical_release_asset",
        "path": "source/frontend/public/qizheng-source/manifest.json",
        "sha256": "50df4fca62db9fa5be351d4bfdb0692784aebf9ee5cf568dcf8ac5e005938310",
        "source_path": "public/qizheng-source/manifest.json"
      },
      {
        "bytes": 244550,
        "origin_kind": "exact_historical_release_asset",
        "path": "source/frontend/public/qizheng-source/sky-degrees-qizheng-source.zip",
        "sha256": "812d76b767786c7f8d032f291183f5a645cae267e430c82c46aba73e20e0d60b",
        "source_path": "public/qizheng-source/sky-degrees-qizheng-source.zip"
      },
      {
        "bytes": 698,
        "origin_kind": "generated_control_or_document",
        "path": "source/frontend/tsconfig.json",
        "sha256": "04044e2b45aff41e6c6d6025824f3254635d0090c8b4cff24e9015e7ed6caa65"
      },
      {
        "bytes": 43090,
        "origin_kind": "exact_project_source",
        "path": "tools/build_source_snapshot.py",
        "sha256": "ce5554fc485563985f06086bbef469e6b2504cbe4e8e0a280a7b1c913a9c0697",
        "source_path": "scripts/build-qizheng-source.py"
      },
      {
        "bytes": 23815,
        "origin_kind": "exact_project_source",
        "path": "tools/package_preview.py",
        "sha256": "433c2bb72be5701dc9c468958415ad9c7378a213dddbec533f9080c0c0e9a460",
        "source_path": "scripts/package-qizheng-preview.py"
      },
      {
        "bytes": 3973,
        "origin_kind": "generated_control_or_document",
        "path": "tools/prepare_data.py",
        "sha256": "a073bff9388ed34502ee153482b7c0681af1bd7fb08318c4ef9700f09b007dcc"
      },
      {
        "bytes": 3182,
        "origin_kind": "generated_preview_control_or_document",
        "path": "tools/prepare_source_downloads.py",
        "sha256": "43c4e9f396bc4ca34ec14e823abb6d102b451fa2c050f3ac2f2a20ecf4d42960"
      },
      {
        "bytes": 1781,
        "origin_kind": "generated_preview_control_or_document",
        "path": "tools/rebuild_archive.py",
        "sha256": "405cad587e90bc34ece0af8416617b3d897e777a31812e2635dba58a2a7762d4"
      }
    ],
    "historical_basic_archive_sha256": "812d76b767786c7f8d032f291183f5a645cae267e430c82c46aba73e20e0d60b",
    "license": "GPL-3.0-or-later",
    "public_upload_allowed": true,
    "release_date": "2026-09-17",
    "release_ready": false,
    "schema": 3,
    "scientific_data_binaries_included": false,
    "scope": "Corresponding Qizheng public-preview program and exact interface sources with labelled standalone build controls; full acceptance remains unfinished.",
    "selected_stellar_unique_objects": 54
  }
}
