commit d9da4301cddf0f4bf36280529594759d36cb3908 Author: mxiaonian Date: Wed Oct 7 17:29:52 2026 +0800 公众授权版:normal · 1000 次 · 有效期至 2026-12-31 副本编号 LY-20261007-AC63(水印指纹已嵌入) 含 README、.gitignore;排除 .DS_Store / __pycache__ / .pytest_cache diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..015fddc --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.DS_Store +__pycache__/ +*.pyc +.pytest_cache/ +.venv/ diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..d8b3874 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,30 @@ +# 子平八字(ZiPingEightChar)技能授权书 + +**授权方**:四川灵爻妙解文化传播有限公司(Sichuan Lingyao Miaojie Cultural Communication Co., Ltd.) + +**授权标的**:本目录所含「子平八字」技能的全部内容,包括但不限于 `SKILL.md` 输出契约、`rules/` 规则库(含蒸馏规则与原文库)、`scripts/` 排盘脚本、`data/` 数据与 `vendor/` 内置依赖。 + +## 一、授权性质 + +本授权为**测试授权**。被授权对象(见本副本水印与 `data/.license.json` 所记授权对象)仅可将本技能用于个人测试与评估。 + +## 二、禁止事项 + +1. **禁止商业用途**:不得以任何形式将本技能或其输出内容用于收费服务、商业产品或经营活动。 +2. **禁止个人传播**:不得转发、复制、分发、转借本技能的全部或部分内容,不得上传至任何公开网络(含公开代码仓库、网盘、群聊)。 + +## 三、副本标识与溯源 + +每份授权副本嵌入唯一水印指纹(副本编号),分布于 `SKILL.md`、`rules/` 各文件、`scripts/cast_chart.py` 及授权状态文件。副本一经泄露,授权方将按编号溯源并追究责任。 + +## 四、软锁说明 + +定制副本内置使用次数与有效期限制(`scripts/_license_gate.py`,总开关为该文件顶部 `_ENABLED` 一行变量):次数用尽或到期后,排盘脚本拒绝运行(退出码 4)。软锁是授权边界的可见表达,防君子不防小人;绕过、篡改、移除软锁或水印,即构成对本授权的违反。 + +## 五、权利保留 + +本技能的全部知识产权归授权方所有。本授权书未明示授予的权利,均由授权方保留。对违反本授权书的行为,授权方保留依法追究责任的权利。 + +--- + +四川灵爻妙解文化传播有限公司 · https://lingyaomiaojie.com diff --git a/README.md b/README.md new file mode 100644 index 0000000..08fcf6b --- /dev/null +++ b/README.md @@ -0,0 +1,82 @@ +# ZiPingEightChar · 子平八字(公众授权版) + +> 子平八字排盘 + 《子平真诠》格局法解释的 AI 技能(Skill)。 +> 输入姓名、性别、出生日期时刻、出生地,输出结构化命盘 Markdown,并由模型依随附的 380 条编号规则完成取格、成败、用神相神、行运、六亲与流年流月解释。 + +## 这是什么 + +这是一个面向 AI Agent 的技能包(Skill),由两部分组成: + +- **排盘脚本(`scripts/`)**:纯计算器,不含任何命理判断。把出生钟表时间换算成真太阳时(经度修正 + 均时差 + 夏令时回拨),经子初换日定日历日,调用内置的 tyme4py 排出命盘,输出自包含 Markdown:四柱、地支藏干、空亡、纳音、神煞、节令、大运、流年、流月及排盘审计。 +- **规则库(`rules/`)**:380 条编号规则,以《子平真诠》格局法为骨架蒸馏而成(`rules/sources/` 附 50 篇原文可供回查),含女命专篇与神煞细节拓展层(拓展条逐条标注【拓展】)。模型按 SKILL.md 的执行顺序加载规则完成解释。 + +## 快速开始 + +**零依赖**:只需 Python ≥ 3.10。tyme4py 1.5.0 与 tzdata 已内置在 `vendor/`,无需 `pip install`。 + +```bash +python scripts/cast_chart.py --name 张三 --gender 男 \ + --birth "1990-05-14 08:30" --place "四川省成都市" +``` + +成功时命盘 Markdown 打印到 stdout(退出码 0),诊断信息走 stderr。 + +| 退出码 | 含义 | +|---|---| +| 0 | 成功 | +| 2 | 输入不可用(地点无法解析 / 时间格式错误或缺时刻) | +| 3 | 库内部错误 | +| 4 | 授权不可用(次数用尽 / 已到期 / 授权文件被改动) | + +四个输入参数全部必需:`--name`、`--gender`(男/女,决定大运顺逆)、`--birth`(当地钟表时间 `"YYYY-MM-DD HH:MM"`,时刻必需)、`--place`(支持全国县级行政区,精确到县最佳)。 + +## 作为 AI Skill 使用 + +将整个目录放入你的 Agent 技能目录(如 Kimi / Claude 等支持 SKILL.md 规范的环境),Agent 会自动按 `SKILL.md` 的契约排盘与解释: + +1. 脚本排盘 → 2. 加载 `rules/00_总纲_取格.md` 六步定格 → 3. 分格文件判成败、用神相神 → 4. `rules/90_行运.md` 断运 → 5. 六亲/女命/神煞细节按需叠加。 + +解释输出遵循「白话先行」契约:先说人话(逐条对应现实场景),再附术语备查与规则编号,最后声明存疑与边界。 + +## 规则库质量 + +规则库已经《子平真诠》原书 92 个命例黄金集验证(`rules/tests/`):87 例重推与原书判定一致,2 例 mismatch 暴露的规则措辞问题已回修,3 例因原书传抄缺陷不可验证。 + +## 目录结构 + +``` +SKILL.md 技能入口:用法、输出契约、解释规则、文风要求 +rules/ 380 条编号解释规则(16 个文件) + sources/ 《子平真诠》50 篇原文(回查用) + tests/golden/ 原书命例黄金集 +scripts/ 排盘脚本(astro/ chart/ geo/ render/ 分层) +data/ 城市经纬度数据与授权状态 +vendor/ 内置依赖:tyme4py 1.5.0 + tzdata(纯 Python) +tests/ 排盘脚本测试(时区、夏令时、日界、端到端) +``` + +## 授权说明(重要) + +本仓库为**公众授权版**副本: + +- **副本编号**:`LY-20261007-AC63`(水印指纹,嵌入 SKILL.md、rules/ 各文件、cast_chart.py 与授权状态文件,泄露可溯源) +- **授权对象**:normal(公众) +- **授权额度**:排盘 **1000 次** +- **有效期至**:**2026-12-31** + +副本内置软锁(`scripts/_license_gate.py`):次数用尽或到期后排盘脚本拒绝运行(退出码 4)。完整授权条款见 [LICENSE.md](LICENSE.md)——**禁止商业用途,禁止二次传播**。本技能全部知识产权归 **四川灵爻妙解文化传播有限公司** 所有。 + +## 开发 + +```bash +pip install -r requirements.txt # 仅开发/跑测试需要 +python -m pytest tests/ # 排盘脚本测试 +``` + +删除 `vendor/` 即回退到环境安装的依赖包,两种方式输出一致(`requirements.txt` 锁定版本)。 + +--- + +灵爻妙解 · 传承易学智慧 · https://lingyaomiaojie.com + +> 本技能输出由 AI 生成,仅供娱乐参考,不替代医疗、法律、投资、心理咨询等任何专业意见。 diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..c0ae14e --- /dev/null +++ b/SKILL.md @@ -0,0 +1,184 @@ +--- +name: ZiPingEightChar +description: 子平八字:排盘与《子平真诠》格局法解释。输入姓名、性别、出生日期时刻(当地钟表时间)、出生地,脚本输出结构化命盘 Markdown(四柱、藏干、空亡、纳音、神煞、节令、大运、流年、流月及排盘审计),模型依随附的 380 条编号规则(蒸馏自《子平真诠》,含女命、神煞细节拓展层)完成取格、成败、用神相神、行运、六亲与流年流月细节的解释。依赖已内置,无需安装。 +--- + + + +# 子平八字(ZiPingEightChar) + +把用户的出生信息换算成真太阳时,经子初换日定日历日,调用 tyme4py 排出命盘,输出一段自包含的 Markdown。**脚本是纯计算器,不含任何命理判断**;你的职责是读盘与解释。 + +## 用法 + +```bash +python scripts/cast_chart.py --name 张三 --gender 男 \ + --birth "1990-05-14 08:30" --place "四川省成都市" +``` + +成功时命盘 Markdown 打印到 stdout,退出码 0。诊断信息只走 stderr。 + +## 运行环境 + +- **只需 Python ≥ 3.10,无需安装任何依赖。** tyme4py 1.5.0 与 tzdata 已内置在 `vendor/`(纯 Python / 纯数据,跨平台跨架构),脚本启动时自动优先加载,优先于环境中已安装的同名包。原理与升级方法见 `vendor/VENDOR.md`。 +- 开发模式回退:删除 `vendor/` 即改用环境安装的包(`requirements.txt` 锁定不变),两种方式输出一致。 + +## 输入参数(四个,全部必需) + +| 参数 | 说明 | +|---|---| +| `--name` | 姓名,仅用于命盘标题 | +| `--gender` | `男` 或 `女`。决定大运顺逆,不可省略 | +| `--birth` | 出生日期时刻,当地钟表时间,格式 `"YYYY-MM-DD HH:MM"` | +| `--place` | 出生地,支持全国县级行政区,精确到县最佳,如「四川省成都市」「浙江省金华市义乌市」「新疆喀什市」 | + +**时刻是必需的。** 时辰决定时柱,差一个时辰就是另一张盘。用户只给了日期(「1990 年 5 月 14 日」)时,**必须追问具体时刻**,不要自行假设 12:00 或任何时刻。 + +## Intake 追问话术 + +输入不全或不可用时,按退出码与下列口径追问,语气温和、一次只问必要的项: + +- **缺时刻**:「时辰决定时柱,差一个时辰就是另一张盘,所以出生时间需要精确到小时。您大概几点出生?(如『早上 8 点半』『下午 3 点左右』均可)」若用户确实记不清:「那我按该时段的两个相邻时辰各排一张,并说明哪些结论会随时柱变化、哪些不受影响。」 +- **缺地点或地点无法解析**(退出码 2):「出生地用来换算真太阳时,差一个经度时辰就可能变。请告诉我您出生的城市或县(如『四川成都』『浙江义乌』)。」 +- **缺性别**:「性别决定大运顺排还是逆排,请补充一下性别。」 +- **时间格式错误**(退出码 2):照 stderr 提示转述,不自行猜测改写。 +- **库内部错误**(退出码 3):把 stderr 原样报告给用户,**不要猜盘**,不要凭印象编造四柱。 +- **授权不可用**(退出码 4):把 stderr 原样转述给用户(次数用尽 / 已到期 / 授权文件被改动)。**不要尝试绕过或猜测授权状态**;需要续期请用户联系授权方(见 LICENSE.md)。 + +## 退出码 + +| 码 | 含义 | 你应做的 | +|---|---|---| +| 0 | 成功 | 读 stdout 的 Markdown,进入解释 | +| 2 | 输入不可用(出生地无法解析 / 时间格式错误或缺时刻) | 读 stderr 的提示,**向用户追问**后重试 | +| 3 | 库内部错误 | 把 stderr 内容原样报告给用户。**不要猜盘**,不要凭印象编造四柱 | +| 4 | 授权不可用(软锁:次数用尽 / 已到期 / 授权文件被改动) | 把 stderr 原样转述给用户,**不要绕过** | + +## 授权与分发 + +本技能归**四川灵爻妙解文化传播有限公司**所有,以**测试授权**方式分发,条款见 `LICENSE.md`:禁止商业用途、禁止个人传播、保留法律追责途径。 + +- **水印指纹**:定制副本在 `SKILL.md`、`rules/` 各文件、`scripts/cast_chart.py` 与授权状态文件中嵌入唯一副本编号(形如 `LY-20261007-A3F9`),副本泄露可按编号溯源。 +- **软锁**:定制副本含 `data/.license.json`,排盘脚本按授权次数与有效期放行;用尽、到期或授权文件被改动时退出码 4。总开关为 `scripts/_license_gate.py` 顶部 `_ENABLED` 一行变量——软锁防君子不防小人,是授权边界的可见表达,真正约束以 `LICENSE.md` 为准。 +- **母版与副本**:技能开发目录为母版(无授权状态文件,不锁)。分发副本由授权方一侧的 `tools/make_license_copy.py` 生成:`python tools/make_license_copy.py --licensee 张三 --uses 20 --expires 2027-12-31 --out <目标目录>`;该工具不随副本分发。 + +## 输出契约(v1.0,章节标题冻结) + +stdout 的 Markdown 依次包含以下章节。标题是解释规则的定位锚点(ABI),**不要改标题名**: + +- `# 命盘:<姓名>` —— 性别、出生地、输入时间、真太阳时,及晚子时提示(仅约 4% 的盘出现) +- `## 四柱` +- `## 地支藏干` +- `## 四柱空亡` +- `## 纳音` +- `## 神煞` +- `## 节令` +- `## 大运` +- `## 流年` +- `## 流月` +- `## 排盘审计` —— 时区/夏令时、经度修正、均时差、日界规则、历法库版本、schema 版本 + +## 排盘口径(解释前必读) + +- **真太阳时**:出生钟表时间先换算 UTC,再经出生地经度修正与均时差修正得到真太阳时。四柱以真太阳时为准,修正量见「排盘审计」。 +- **子初换日**:真太阳时 23:00 起即算次日。日界规则固定在 23:00,见「排盘审计」。 +- **晚子时提示**:仅当命盘落在真太阳时 23:00–24:00(约 4% 的盘)时,命盘开头会出现 ⚠️ 提示。此时「子正换日」一派会排出不同的日柱与时柱,解释须声明此分歧、结论留有余地。其余 96% 的盘无此提示,正常解释即可。 +- **夏令时**:1986–1991 年全国夏令时期间(每年 4 月中旬至 9 月中旬)出生者,钟表时间先回拨 1 小时再作后续修正——「钟表 23 点 ≠ 真太阳时 23 点」,是否晚子时以真太阳时为准(「排盘审计」段有「夏令时:是/否」)。 + +## 解释规则(rules/ 目录,库版本 1.8) + +取格、用神、断运等解释规则在 `rules/` 下,共 16 个文件、380 条编号规则,以《子平真诠》格局法为骨架(`rules/sources/` 有 50 篇原文可供回查),并在体系上拓展了女命专篇与神煞细节层(拓展条均逐条标注【拓展】)。格式规范与锚点约定见 `rules/README.md`。 + +**执行顺序**: + +1. 读命盘 Markdown,加载 `rules/00_总纲_取格.md`,按 §1 六步决策流程定格; +2. 命中后加载对应分格文件(`rules/11_正官格.md` … `rules/19_杂格.md`),判成/败/救/应、用神相神、格局高低; +3. 断运时加载 `rules/90_行运.md`(§7 断运操作序列定喜忌应期,§8 事类落地把关键流年译成现实事件候选)与分格文件的「取运」节;覆盖多个流年的批量断运按 R-运-33 分两轮——先底盘加锚点年请用户核对,核对收窄后再铺逐年; +4. 问六亲、婚姻、子息时:男命加载 `rules/96_六亲.md`,女命加载 `rules/97_女命.md`(体系拓展篇,其【拓展】条须让用户知悉边界)——六亲论在格局成败之后叠加,不回改格局; +5. 追问流年流月细节时加载 `rules/94_神煞细节.md`——神煞、纳音、空亡只作细节参看,叠加于格局定论之后; +6. 格局四层(取格、成败、用神相神、高低)受 `rules/95_禁则.md` 约束——神煞、纳音、空亡**绝不**进入这四层; +7. 结论标注所用规则编号(如「依 R-官-03」);规则与原文疑似冲突时回查 `rules/sources/` 对应篇目,仍存疑则向用户声明,不自行裁决。 + +规则库已经原书 92 个命例黄金集验证(`rules/tests/`):87 例重推与原书判定一致,2 例 mismatch 所暴露的规则措辞问题已回修,3 例因原书传抄缺陷不可验证。 + +## 解释输出契约(v2.1,白话先行) + +解释按以下骨架**分阶段**呈现。标 ★ 的项为强制项,其余为结构引导——行文可详可略,阶段次序不可乱。**输出次序白话在前、术语备查在后**;思考次序不变——先完成取格、成败、用神相神、高低、行运的全部判定,再落笔白话,不得边写白话边编判断。 + +1. **排盘口径** —— 真太阳时修正量(含夏令时回拨);晚子时盘必须在此声明两派分歧(子正换日者日柱、时柱不同),并说明下文按子初换日之盘解释; +2. **说人话** ★(问及婚姻、六亲、财运、健康等具体事项,或断及流年时**必须**有;纯取格问答可省)—— 白话详解,把全部关键判断逐条翻译成现实生活,见下「说人话段」; +3. **依据备查(术语段)** —— 按 取格 → 格之成败 → 用神与相神 → 格局高低 → 行运喜忌 的内部次序给出专业判定;行运喜忌用户问到才展开,按 `rules/90_行运.md` §7 断运操作序列走:先运后年,喜忌系于格局成败,不逐年流水断,关键流年按 §8 落地为现实事件候选(每年 2–3 个、按可能性排序)。说人话段的每一条在这里都必须有出处; +4. **存疑与边界声明** —— 命中的存疑规则、规则两可处、无法确认处,如实声明;无则写「无」; +5. **结尾标识与免责** ★ —— 凡含解读内容的轮次(完整解读、核对轮第一轮的底盘),末尾固定附上以下引用块,一字不改;纯提问或澄清的短轮可省: + +> 以上内容由灵爻妙解依据古籍《子平真诠》制作技能,ai生成,仅供娱乐参考,不替代医疗、法律、投资、心理咨询等任何专业意见。灵爻妙解,传承易学智慧,欢迎访问 https://lingyaomiaojie.com + +**★编号标注**:备查段中取格、成败、用神相神三节的规则编号为**强制**,但**不写进正文句子里**。正文用篇名级出处(如「依《子平真诠》论妻子篇」)或直述,不出现 `R-xx-00` 型编号;完整编号收在每节末尾一行小字: + +``` +依据:R-纲-08、R-官-04 +``` + +正文出现 `(依 R-亲-12)` 这类夹注即视为违规——编号是溯源用的,不是给读者看的。用户追问「凭什么这么断」时,再展开该编号对应的条件、判定与原文。 + +**★边界声明的次数上限**:单轮回答中「这一层我给不出 / 这不是干这个的 / 硬报数字就是忽悠」型的方法边界说明**至多出现一次**,且必须并入第 4 段,不得另起一段、不得打断解读节奏。其余场合一律改用模糊语自然带过(见「文风」节)。声明本身不得写成辩解或自嘲。 + +**阶段纪律**:落笔白话之前遇下列情形,**必须先向用户声明分歧再继续**—— + +- 晚子时盘(两派日柱时柱不同); +- 杂格闸门两可(正格与外格均可入,依总纲第六步逐条核对后声明取舍); +- 命中标 `> 存疑` 且**影响判定走向**的规则条文(仅涉讹字校勘、不影响判定的存疑,归入第 4 段声明即可,无须中途停下)。 + +这一段属判定分歧的声明,不受上条次数限制;但同样只说一次、说完继续,不反复申明。 + +不得自行选边、闷头走完全程。 + +## 断运交互(锚点核对轮) + +用户问「过往发生了什么 / 哪几年是转折」这类覆盖多个流年的问题时,断运**不一次性倾倒**,按 `rules/90_行运.md` R-运-33 分两轮: + +1. **第一轮**:用白话输出底盘(这张盘的主线、各步大运的方向,依据收一行小字)+ 3 个左右锚点年(组数最多、落在人生阶段窗口、用户所问之线各占其一)。**核对一律用询问工具的结构化选项**:每个锚点年一个问题,选项为按可能性排序的 2–3 个候选事件、外加「都对不上」(证伪入口);几个锚点年合成一次提问,不逐条单独打断。断语涉及学业年份时,同一次提问里顺带把学制锚点问实(哪年上大学/哪年毕业、有无复读休学),据此反推中小学节点,不全程按常规学制假设落笔。无询问工具的环境,在正文列出编号选项请用户回复编号。 +2. **第二轮**:按核对结果收窄(R-运-32 第 4 步),按解释输出契约给完整一轮(说人话 + 依据备查 + 存疑声明)。锚点全部落空时先回头查组数判定、阶段假设、时辰边界,不硬铺。 + +豁免:用户只问某一年/某件事,或明确说「不用问我、直接说完」时,一次性输出。 + +## 说人话段(强制阶段 2,白话先行) + +固定用二级标题 `## 说人话`,放在排盘口径之后、依据备查之前——**读者先拿到人话,依据在后备查**。它是白话详解:把取格喜忌、各步大运、关键流年候选、六亲婚姻等关键判断逐条翻译成现实生活,不是一段概括性的比喻。 + +- **逐点对应,一条不落**:每个关键判断——取格与喜忌一句话、每步大运的方向、每个关键流年的事件候选、六亲/婚姻结论——在这段里都必须有对应的白话条目;反过来,这段的每一条都必须能在「依据备查」段找到出处。有行运内容时按「底子与处境 → 各步大运 → 关键年份 → 感情婚姻」的顺序组织。 +- **展开方式**:每条先给结论,紧跟一个具体场景说明它在生活里长什么样——写「领导把急活难活都压给你,但年底评优、考证、跳槽谈判都有你的份」,不写「压力转化为资历」。允许分条分段,每条 40–80 字。 +- **语言**:不出现任何术语——不要「食神」「伤官」「寅申冲」「财旺身弱」,一律换成现实中的对应物与人。 +- **两条硬约束**: + 1. **不得出现备查段没有的判断**——白话段只允许降维表达,不允许新增结论; + 2. **不得软化警示**——「需要注意」不能变成「应该没事」,凶断照样用大白话说凶。 +- **落笔前自检**:写完逐条回查——每条白话都能在备查段找到出处,找不到出处的整条删掉;凶断强度与备查段一致(「难偕老」不许降成「家里事多」);备查段未涉及的年份与事项,白话段不得出现(含「眼下这一年」式的临场新增)。 +- **禁止总结腔**:不许用一段话把整段概括过去(「这些年回头看去,像是……」式)。结尾落在最贴近当下的一两年、或一个具体画面上,不作人生总结。读完这段,用户应能拿着每一条去对号。 +- 用户明显是内行时,可翻转为术语先行、省略此段,并在开头说明「省去白话部分」。 + +## 文风与反 AI 腔(强制) + +命理解读是「一个人对着一个人说话」,不是报告。以下写法一律禁止: + +**禁止的句法** + +- **形容词 + 加粗关键词的套路**,尤其连续多段同一句式:「**甜蜜有,但暗流也有**」「**相对平和的一年**」「**婚姻定盘的关键年**」。这是最典型的 AI 腔,必须避免——同一轮回答里这种「[加粗的形容词短语]」开头不超过一次。 +- **破折号做重点强调**:`——象主:**聚少离多**`。破折号只在真正的语气转折处用,不做加粗的替代品。 +- **概括 + 破折号解释 + 加粗**的三段式排比反复出现。 +- **四字对偶堆叠**:「先拧巴、后转稳」「由动转稳」「落地生根」连用即显假。这类词组一轮最多用一处。 +- **每段末尾补一句总结句**。段落结束就是结束。 +- **「一句总结」「综上」「总而言之」式收束段**。要收束就自然收,别起标题叫「总结」。 +- **对仗工整的排比句群**。人说话是长短不齐的,排比是文案不是说话。 +- **替对方感觉的句子**:「你会感到压力」「你可能有些焦虑」。命理只讲象,不讲人家的心情——让读者自己对号。 +- **反复免责与自我辩护**:「硬报一个数就是忽悠你」这类替自己解释的句子,属存疑段一次性声明,正文里不准出现。 +- **刑冲合害的名目改用虚词代称**:「遥相对」「碰上」「犯到」之类。名目用本名(冲就是冲、刑就是刑),解释可以白话,名目不替。 + +**要求的写法** + +- **句子长短交错**:允许出现短句、半句、口语连接词(「其实」「说到底」「这事」)。全篇句长均匀就是机器味。 +- **有取有舍**:明确说出哪些不是重点、哪些不必看。面面俱到等于没有判断。 +- **未知之处给具体**:不说「因人而异」,说清在哪一种情况下会怎样。 +- **允许一句大白话的口头语**,但一轮最多一次,用多了反而造作。 +- **不复述用户的问题**,不回「好,我来帮你分析」这类开场白,直接进入内容。 + +**模糊语库**(替代方法边界说明的日常工具):大概率 / 多在 / 常见于 / 倾向于 / 易于 / 偶有 / 不止一次 / 偏 / 通常这时候 / 十有七八。需要表达不确定时用这些词,不要停下来论证为什么不确定。 diff --git a/data/.license.json b/data/.license.json new file mode 100644 index 0000000..a29be2b --- /dev/null +++ b/data/.license.json @@ -0,0 +1,9 @@ +{ + "copy_id": "LY-20261007-AC63", + "licensee": "normal", + "issued_at": "2026-10-07", + "expires_at": "2026-12-31", + "max_uses": 1000, + "remaining_uses": 1000, + "sig": "be2d5467c8bc1d78" +} \ No newline at end of file diff --git a/data/cities.json b/data/cities.json new file mode 100644 index 0000000..4c150fc --- /dev/null +++ b/data/cities.json @@ -0,0 +1,27044 @@ +{ + "_meta": { + "source": "县级全量:阿里云 DataV GeoAtlas areas_v3(https://geo.datav.aliyun.com/areas_v3/,高德地图底图,政府驻地 center 坐标,GCJ-02 已转 WGS84);地级 355 条:原手工整理市级表(WGS84)", + "crs": "WGS84(县级条目由高德 GCJ-02 转换而来,残差 < 1 m)", + "generated": "2026-10-07", + "count": 3229, + "count_county": 2874 + }, + "北京": { + "lon": 116.41, + "lat": 39.9, + "tz": "Asia/Shanghai" + }, + "天津": { + "lon": 117.2, + "lat": 39.08, + "tz": "Asia/Shanghai" + }, + "上海": { + "lon": 121.47, + "lat": 31.23, + "tz": "Asia/Shanghai" + }, + "重庆": { + "lon": 106.55, + "lat": 29.56, + "tz": "Asia/Shanghai" + }, + "石家庄": { + "lon": 114.51, + "lat": 38.04, + "tz": "Asia/Shanghai" + }, + "唐山": { + "lon": 118.18, + "lat": 39.63, + "tz": "Asia/Shanghai" + }, + "秦皇岛": { + "lon": 119.6, + "lat": 39.94, + "tz": "Asia/Shanghai" + }, + "邯郸": { + "lon": 114.54, + "lat": 36.61, + "tz": "Asia/Shanghai" + }, + "邢台": { + "lon": 114.5, + "lat": 37.06, + "tz": "Asia/Shanghai" + }, + "保定": { + "lon": 115.46, + "lat": 38.87, + "tz": "Asia/Shanghai" + }, + "张家口": { + "lon": 114.89, + "lat": 40.82, + "tz": "Asia/Shanghai" + }, + "承德": { + "lon": 117.96, + "lat": 40.95, + "tz": "Asia/Shanghai" + }, + "沧州": { + "lon": 116.84, + "lat": 38.31, + "tz": "Asia/Shanghai" + }, + "廊坊": { + "lon": 116.68, + "lat": 39.54, + "tz": "Asia/Shanghai" + }, + "衡水": { + "lon": 115.67, + "lat": 37.73, + "tz": "Asia/Shanghai" + }, + "太原": { + "lon": 112.55, + "lat": 37.87, + "tz": "Asia/Shanghai" + }, + "大同": { + "lon": 113.3, + "lat": 40.08, + "tz": "Asia/Shanghai" + }, + "阳泉": { + "lon": 113.58, + "lat": 37.86, + "tz": "Asia/Shanghai" + }, + "长治": { + "lon": 113.12, + "lat": 36.19, + "tz": "Asia/Shanghai" + }, + "晋城": { + "lon": 112.85, + "lat": 35.49, + "tz": "Asia/Shanghai" + }, + "朔州": { + "lon": 112.43, + "lat": 39.33, + "tz": "Asia/Shanghai" + }, + "晋中": { + "lon": 112.73, + "lat": 37.69, + "tz": "Asia/Shanghai" + }, + "运城": { + "lon": 111.01, + "lat": 35.03, + "tz": "Asia/Shanghai" + }, + "忻州": { + "lon": 112.73, + "lat": 38.42, + "tz": "Asia/Shanghai" + }, + "临汾": { + "lon": 111.52, + "lat": 36.09, + "tz": "Asia/Shanghai" + }, + "吕梁": { + "lon": 111.14, + "lat": 37.52, + "tz": "Asia/Shanghai" + }, + "呼和浩特": { + "lon": 111.75, + "lat": 40.84, + "tz": "Asia/Shanghai" + }, + "包头": { + "lon": 109.84, + "lat": 40.66, + "tz": "Asia/Shanghai" + }, + "乌海": { + "lon": 106.79, + "lat": 39.66, + "tz": "Asia/Shanghai" + }, + "赤峰": { + "lon": 118.89, + "lat": 42.26, + "tz": "Asia/Shanghai" + }, + "通辽": { + "lon": 122.24, + "lat": 43.65, + "tz": "Asia/Shanghai" + }, + "鄂尔多斯": { + "lon": 109.78, + "lat": 39.61, + "tz": "Asia/Shanghai" + }, + "呼伦贝尔": { + "lon": 119.77, + "lat": 49.21, + "tz": "Asia/Shanghai" + }, + "巴彦淖尔": { + "lon": 107.39, + "lat": 40.74, + "tz": "Asia/Shanghai" + }, + "乌兰察布": { + "lon": 113.13, + "lat": 40.99, + "tz": "Asia/Shanghai" + }, + "兴安盟": { + "lon": 122.07, + "lat": 46.07, + "tz": "Asia/Shanghai" + }, + "锡林郭勒盟": { + "lon": 116.09, + "lat": 43.94, + "tz": "Asia/Shanghai" + }, + "阿拉善盟": { + "lon": 105.71, + "lat": 38.85, + "tz": "Asia/Shanghai" + }, + "沈阳": { + "lon": 123.43, + "lat": 41.8, + "tz": "Asia/Shanghai" + }, + "大连": { + "lon": 121.61, + "lat": 38.91, + "tz": "Asia/Shanghai" + }, + "鞍山": { + "lon": 122.99, + "lat": 41.11, + "tz": "Asia/Shanghai" + }, + "抚顺": { + "lon": 123.96, + "lat": 41.88, + "tz": "Asia/Shanghai" + }, + "本溪": { + "lon": 123.77, + "lat": 41.29, + "tz": "Asia/Shanghai" + }, + "丹东": { + "lon": 124.35, + "lat": 40.13, + "tz": "Asia/Shanghai" + }, + "锦州": { + "lon": 121.13, + "lat": 41.1, + "tz": "Asia/Shanghai" + }, + "营口": { + "lon": 122.24, + "lat": 40.67, + "tz": "Asia/Shanghai" + }, + "阜新": { + "lon": 121.67, + "lat": 42.02, + "tz": "Asia/Shanghai" + }, + "辽阳": { + "lon": 123.24, + "lat": 41.27, + "tz": "Asia/Shanghai" + }, + "盘锦": { + "lon": 122.07, + "lat": 41.12, + "tz": "Asia/Shanghai" + }, + "铁岭": { + "lon": 123.73, + "lat": 42.22, + "tz": "Asia/Shanghai" + }, + "朝阳": { + "lon": 120.45, + "lat": 41.57, + "tz": "Asia/Shanghai" + }, + "葫芦岛": { + "lon": 120.84, + "lat": 40.71, + "tz": "Asia/Shanghai" + }, + "长春": { + "lon": 125.32, + "lat": 43.9, + "tz": "Asia/Shanghai" + }, + "吉林": { + "lon": 126.55, + "lat": 43.84, + "tz": "Asia/Shanghai" + }, + "四平": { + "lon": 124.35, + "lat": 43.17, + "tz": "Asia/Shanghai" + }, + "辽源": { + "lon": 125.14, + "lat": 42.89, + "tz": "Asia/Shanghai" + }, + "通化": { + "lon": 125.94, + "lat": 41.73, + "tz": "Asia/Shanghai" + }, + "白山": { + "lon": 126.42, + "lat": 41.94, + "tz": "Asia/Shanghai" + }, + "松原": { + "lon": 124.82, + "lat": 45.14, + "tz": "Asia/Shanghai" + }, + "白城": { + "lon": 122.84, + "lat": 45.62, + "tz": "Asia/Shanghai" + }, + "延边": { + "lon": 129.51, + "lat": 42.89, + "tz": "Asia/Shanghai" + }, + "哈尔滨": { + "lon": 126.63, + "lat": 45.8, + "tz": "Asia/Shanghai" + }, + "齐齐哈尔": { + "lon": 123.92, + "lat": 47.35, + "tz": "Asia/Shanghai" + }, + "鸡西": { + "lon": 130.97, + "lat": 45.3, + "tz": "Asia/Shanghai" + }, + "鹤岗": { + "lon": 130.28, + "lat": 47.33, + "tz": "Asia/Shanghai" + }, + "双鸭山": { + "lon": 131.16, + "lat": 46.65, + "tz": "Asia/Shanghai" + }, + "大庆": { + "lon": 125.1, + "lat": 46.59, + "tz": "Asia/Shanghai" + }, + "伊春": { + "lon": 128.84, + "lat": 47.73, + "tz": "Asia/Shanghai" + }, + "佳木斯": { + "lon": 130.32, + "lat": 46.8, + "tz": "Asia/Shanghai" + }, + "七台河": { + "lon": 131.0, + "lat": 45.77, + "tz": "Asia/Shanghai" + }, + "牡丹江": { + "lon": 129.63, + "lat": 44.55, + "tz": "Asia/Shanghai" + }, + "黑河": { + "lon": 127.53, + "lat": 50.25, + "tz": "Asia/Shanghai" + }, + "绥化": { + "lon": 126.97, + "lat": 46.65, + "tz": "Asia/Shanghai" + }, + "大兴安岭": { + "lon": 124.12, + "lat": 50.42, + "tz": "Asia/Shanghai" + }, + "南京": { + "lon": 118.8, + "lat": 32.06, + "tz": "Asia/Shanghai" + }, + "无锡": { + "lon": 120.31, + "lat": 31.49, + "tz": "Asia/Shanghai" + }, + "徐州": { + "lon": 117.28, + "lat": 34.2, + "tz": "Asia/Shanghai" + }, + "常州": { + "lon": 119.97, + "lat": 31.81, + "tz": "Asia/Shanghai" + }, + "苏州": { + "lon": 120.58, + "lat": 31.3, + "tz": "Asia/Shanghai" + }, + "南通": { + "lon": 120.86, + "lat": 31.98, + "tz": "Asia/Shanghai" + }, + "连云港": { + "lon": 119.22, + "lat": 34.6, + "tz": "Asia/Shanghai" + }, + "淮安": { + "lon": 119.02, + "lat": 33.61, + "tz": "Asia/Shanghai" + }, + "盐城": { + "lon": 120.16, + "lat": 33.35, + "tz": "Asia/Shanghai" + }, + "扬州": { + "lon": 119.41, + "lat": 32.39, + "tz": "Asia/Shanghai" + }, + "镇江": { + "lon": 119.43, + "lat": 32.19, + "tz": "Asia/Shanghai" + }, + "泰州": { + "lon": 119.92, + "lat": 32.46, + "tz": "Asia/Shanghai" + }, + "宿迁": { + "lon": 118.28, + "lat": 33.96, + "tz": "Asia/Shanghai" + }, + "杭州": { + "lon": 120.15, + "lat": 30.29, + "tz": "Asia/Shanghai" + }, + "宁波": { + "lon": 121.55, + "lat": 29.88, + "tz": "Asia/Shanghai" + }, + "温州": { + "lon": 120.7, + "lat": 28.0, + "tz": "Asia/Shanghai" + }, + "嘉兴": { + "lon": 120.76, + "lat": 30.75, + "tz": "Asia/Shanghai" + }, + "湖州": { + "lon": 120.09, + "lat": 30.89, + "tz": "Asia/Shanghai" + }, + "绍兴": { + "lon": 120.58, + "lat": 30.03, + "tz": "Asia/Shanghai" + }, + "金华": { + "lon": 119.65, + "lat": 29.08, + "tz": "Asia/Shanghai" + }, + "衢州": { + "lon": 118.86, + "lat": 28.97, + "tz": "Asia/Shanghai" + }, + "舟山": { + "lon": 122.21, + "lat": 29.99, + "tz": "Asia/Shanghai" + }, + "台州": { + "lon": 121.42, + "lat": 28.66, + "tz": "Asia/Shanghai" + }, + "丽水": { + "lon": 119.92, + "lat": 28.47, + "tz": "Asia/Shanghai" + }, + "合肥": { + "lon": 117.28, + "lat": 31.86, + "tz": "Asia/Shanghai" + }, + "芜湖": { + "lon": 118.43, + "lat": 31.35, + "tz": "Asia/Shanghai" + }, + "蚌埠": { + "lon": 117.39, + "lat": 32.92, + "tz": "Asia/Shanghai" + }, + "淮南": { + "lon": 117.0, + "lat": 32.63, + "tz": "Asia/Shanghai" + }, + "马鞍山": { + "lon": 118.51, + "lat": 31.67, + "tz": "Asia/Shanghai" + }, + "淮北": { + "lon": 116.8, + "lat": 33.96, + "tz": "Asia/Shanghai" + }, + "铜陵": { + "lon": 117.81, + "lat": 30.95, + "tz": "Asia/Shanghai" + }, + "安庆": { + "lon": 117.06, + "lat": 30.54, + "tz": "Asia/Shanghai" + }, + "黄山": { + "lon": 118.34, + "lat": 29.71, + "tz": "Asia/Shanghai" + }, + "滁州": { + "lon": 118.32, + "lat": 32.3, + "tz": "Asia/Shanghai" + }, + "阜阳": { + "lon": 115.81, + "lat": 32.89, + "tz": "Asia/Shanghai" + }, + "宿州": { + "lon": 116.96, + "lat": 33.63, + "tz": "Asia/Shanghai" + }, + "六安": { + "lon": 116.52, + "lat": 31.73, + "tz": "Asia/Shanghai" + }, + "亳州": { + "lon": 115.78, + "lat": 33.87, + "tz": "Asia/Shanghai" + }, + "池州": { + "lon": 117.49, + "lat": 30.66, + "tz": "Asia/Shanghai" + }, + "宣城": { + "lon": 118.76, + "lat": 30.94, + "tz": "Asia/Shanghai" + }, + "福州": { + "lon": 119.3, + "lat": 26.08, + "tz": "Asia/Shanghai" + }, + "厦门": { + "lon": 118.09, + "lat": 24.48, + "tz": "Asia/Shanghai" + }, + "莆田": { + "lon": 119.01, + "lat": 25.45, + "tz": "Asia/Shanghai" + }, + "三明": { + "lon": 117.64, + "lat": 26.26, + "tz": "Asia/Shanghai" + }, + "泉州": { + "lon": 118.68, + "lat": 24.87, + "tz": "Asia/Shanghai" + }, + "漳州": { + "lon": 117.65, + "lat": 24.51, + "tz": "Asia/Shanghai" + }, + "南平": { + "lon": 118.18, + "lat": 26.64, + "tz": "Asia/Shanghai" + }, + "龙岩": { + "lon": 117.02, + "lat": 25.09, + "tz": "Asia/Shanghai" + }, + "宁德": { + "lon": 119.55, + "lat": 26.67, + "tz": "Asia/Shanghai" + }, + "南昌": { + "lon": 115.86, + "lat": 28.68, + "tz": "Asia/Shanghai" + }, + "景德镇": { + "lon": 117.18, + "lat": 29.27, + "tz": "Asia/Shanghai" + }, + "萍乡": { + "lon": 113.85, + "lat": 27.62, + "tz": "Asia/Shanghai" + }, + "九江": { + "lon": 116.0, + "lat": 29.71, + "tz": "Asia/Shanghai" + }, + "新余": { + "lon": 114.92, + "lat": 27.82, + "tz": "Asia/Shanghai" + }, + "鹰潭": { + "lon": 117.07, + "lat": 28.26, + "tz": "Asia/Shanghai" + }, + "赣州": { + "lon": 114.94, + "lat": 25.83, + "tz": "Asia/Shanghai" + }, + "吉安": { + "lon": 114.99, + "lat": 27.09, + "tz": "Asia/Shanghai" + }, + "宜春": { + "lon": 114.42, + "lat": 27.81, + "tz": "Asia/Shanghai" + }, + "抚州": { + "lon": 116.36, + "lat": 27.95, + "tz": "Asia/Shanghai" + }, + "上饶": { + "lon": 117.94, + "lat": 28.45, + "tz": "Asia/Shanghai" + }, + "济南": { + "lon": 117.12, + "lat": 36.65, + "tz": "Asia/Shanghai" + }, + "青岛": { + "lon": 120.38, + "lat": 36.07, + "tz": "Asia/Shanghai" + }, + "淄博": { + "lon": 118.05, + "lat": 36.81, + "tz": "Asia/Shanghai" + }, + "枣庄": { + "lon": 117.32, + "lat": 34.81, + "tz": "Asia/Shanghai" + }, + "东营": { + "lon": 118.67, + "lat": 37.43, + "tz": "Asia/Shanghai" + }, + "烟台": { + "lon": 121.45, + "lat": 37.46, + "tz": "Asia/Shanghai" + }, + "潍坊": { + "lon": 119.16, + "lat": 36.71, + "tz": "Asia/Shanghai" + }, + "济宁": { + "lon": 116.59, + "lat": 35.41, + "tz": "Asia/Shanghai" + }, + "泰安": { + "lon": 117.09, + "lat": 36.2, + "tz": "Asia/Shanghai" + }, + "威海": { + "lon": 122.12, + "lat": 37.51, + "tz": "Asia/Shanghai" + }, + "日照": { + "lon": 119.53, + "lat": 35.42, + "tz": "Asia/Shanghai" + }, + "临沂": { + "lon": 118.36, + "lat": 35.1, + "tz": "Asia/Shanghai" + }, + "德州": { + "lon": 116.36, + "lat": 37.44, + "tz": "Asia/Shanghai" + }, + "聊城": { + "lon": 115.99, + "lat": 36.46, + "tz": "Asia/Shanghai" + }, + "滨州": { + "lon": 117.97, + "lat": 37.38, + "tz": "Asia/Shanghai" + }, + "菏泽": { + "lon": 115.48, + "lat": 35.23, + "tz": "Asia/Shanghai" + }, + "郑州": { + "lon": 113.63, + "lat": 34.75, + "tz": "Asia/Shanghai" + }, + "开封": { + "lon": 114.31, + "lat": 34.8, + "tz": "Asia/Shanghai" + }, + "洛阳": { + "lon": 112.45, + "lat": 34.62, + "tz": "Asia/Shanghai" + }, + "平顶山": { + "lon": 113.19, + "lat": 33.77, + "tz": "Asia/Shanghai" + }, + "安阳": { + "lon": 114.39, + "lat": 36.1, + "tz": "Asia/Shanghai" + }, + "鹤壁": { + "lon": 114.3, + "lat": 35.75, + "tz": "Asia/Shanghai" + }, + "新乡": { + "lon": 113.93, + "lat": 35.3, + "tz": "Asia/Shanghai" + }, + "焦作": { + "lon": 113.24, + "lat": 35.22, + "tz": "Asia/Shanghai" + }, + "濮阳": { + "lon": 115.03, + "lat": 35.76, + "tz": "Asia/Shanghai" + }, + "许昌": { + "lon": 113.85, + "lat": 34.04, + "tz": "Asia/Shanghai" + }, + "漯河": { + "lon": 114.02, + "lat": 33.58, + "tz": "Asia/Shanghai" + }, + "三门峡": { + "lon": 111.2, + "lat": 34.77, + "tz": "Asia/Shanghai" + }, + "南阳": { + "lon": 112.53, + "lat": 32.99, + "tz": "Asia/Shanghai" + }, + "商丘": { + "lon": 115.66, + "lat": 34.41, + "tz": "Asia/Shanghai" + }, + "信阳": { + "lon": 114.09, + "lat": 32.15, + "tz": "Asia/Shanghai" + }, + "周口": { + "lon": 114.65, + "lat": 33.63, + "tz": "Asia/Shanghai" + }, + "驻马店": { + "lon": 114.02, + "lat": 32.98, + "tz": "Asia/Shanghai" + }, + "济源": { + "lon": 112.58, + "lat": 35.07, + "tz": "Asia/Shanghai" + }, + "武汉": { + "lon": 114.3, + "lat": 30.59, + "tz": "Asia/Shanghai" + }, + "黄石": { + "lon": 115.04, + "lat": 30.2, + "tz": "Asia/Shanghai" + }, + "十堰": { + "lon": 110.8, + "lat": 32.63, + "tz": "Asia/Shanghai" + }, + "宜昌": { + "lon": 111.29, + "lat": 30.69, + "tz": "Asia/Shanghai" + }, + "襄阳": { + "lon": 112.12, + "lat": 32.01, + "tz": "Asia/Shanghai" + }, + "鄂州": { + "lon": 114.89, + "lat": 30.39, + "tz": "Asia/Shanghai" + }, + "荆门": { + "lon": 112.2, + "lat": 31.04, + "tz": "Asia/Shanghai" + }, + "孝感": { + "lon": 113.92, + "lat": 30.92, + "tz": "Asia/Shanghai" + }, + "荆州": { + "lon": 112.24, + "lat": 30.33, + "tz": "Asia/Shanghai" + }, + "黄冈": { + "lon": 114.87, + "lat": 30.45, + "tz": "Asia/Shanghai" + }, + "咸宁": { + "lon": 114.32, + "lat": 29.84, + "tz": "Asia/Shanghai" + }, + "随州": { + "lon": 113.38, + "lat": 31.69, + "tz": "Asia/Shanghai" + }, + "恩施": { + "lon": 109.49, + "lat": 30.27, + "tz": "Asia/Shanghai" + }, + "仙桃": { + "lon": 113.44, + "lat": 30.36, + "tz": "Asia/Shanghai" + }, + "潜江": { + "lon": 112.9, + "lat": 30.4, + "tz": "Asia/Shanghai" + }, + "天门": { + "lon": 113.17, + "lat": 30.65, + "tz": "Asia/Shanghai" + }, + "长沙": { + "lon": 112.94, + "lat": 28.23, + "tz": "Asia/Shanghai" + }, + "株洲": { + "lon": 113.13, + "lat": 27.83, + "tz": "Asia/Shanghai" + }, + "湘潭": { + "lon": 112.94, + "lat": 27.83, + "tz": "Asia/Shanghai" + }, + "衡阳": { + "lon": 112.57, + "lat": 26.89, + "tz": "Asia/Shanghai" + }, + "邵阳": { + "lon": 111.47, + "lat": 27.24, + "tz": "Asia/Shanghai" + }, + "岳阳": { + "lon": 113.13, + "lat": 29.37, + "tz": "Asia/Shanghai" + }, + "常德": { + "lon": 111.7, + "lat": 29.03, + "tz": "Asia/Shanghai" + }, + "张家界": { + "lon": 110.48, + "lat": 29.12, + "tz": "Asia/Shanghai" + }, + "益阳": { + "lon": 112.36, + "lat": 28.55, + "tz": "Asia/Shanghai" + }, + "郴州": { + "lon": 113.01, + "lat": 25.77, + "tz": "Asia/Shanghai" + }, + "永州": { + "lon": 111.61, + "lat": 26.42, + "tz": "Asia/Shanghai" + }, + "怀化": { + "lon": 110.0, + "lat": 27.57, + "tz": "Asia/Shanghai" + }, + "娄底": { + "lon": 112.0, + "lat": 27.7, + "tz": "Asia/Shanghai" + }, + "湘西": { + "lon": 109.74, + "lat": 28.31, + "tz": "Asia/Shanghai" + }, + "广州": { + "lon": 113.26, + "lat": 23.13, + "tz": "Asia/Shanghai" + }, + "韶关": { + "lon": 113.6, + "lat": 24.81, + "tz": "Asia/Shanghai" + }, + "深圳": { + "lon": 114.06, + "lat": 22.55, + "tz": "Asia/Shanghai" + }, + "珠海": { + "lon": 113.58, + "lat": 22.27, + "tz": "Asia/Shanghai" + }, + "汕头": { + "lon": 116.68, + "lat": 23.35, + "tz": "Asia/Shanghai" + }, + "佛山": { + "lon": 113.12, + "lat": 23.02, + "tz": "Asia/Shanghai" + }, + "江门": { + "lon": 113.08, + "lat": 22.58, + "tz": "Asia/Shanghai" + }, + "湛江": { + "lon": 110.36, + "lat": 21.27, + "tz": "Asia/Shanghai" + }, + "茂名": { + "lon": 110.93, + "lat": 21.66, + "tz": "Asia/Shanghai" + }, + "肇庆": { + "lon": 112.47, + "lat": 23.05, + "tz": "Asia/Shanghai" + }, + "惠州": { + "lon": 114.42, + "lat": 23.11, + "tz": "Asia/Shanghai" + }, + "梅州": { + "lon": 116.12, + "lat": 24.29, + "tz": "Asia/Shanghai" + }, + "汕尾": { + "lon": 115.38, + "lat": 22.79, + "tz": "Asia/Shanghai" + }, + "河源": { + "lon": 114.7, + "lat": 23.74, + "tz": "Asia/Shanghai" + }, + "阳江": { + "lon": 111.98, + "lat": 21.86, + "tz": "Asia/Shanghai" + }, + "清远": { + "lon": 113.06, + "lat": 23.68, + "tz": "Asia/Shanghai" + }, + "东莞": { + "lon": 113.75, + "lat": 23.02, + "tz": "Asia/Shanghai" + }, + "中山": { + "lon": 113.39, + "lat": 22.52, + "tz": "Asia/Shanghai" + }, + "潮州": { + "lon": 116.62, + "lat": 23.66, + "tz": "Asia/Shanghai" + }, + "揭阳": { + "lon": 116.37, + "lat": 23.55, + "tz": "Asia/Shanghai" + }, + "云浮": { + "lon": 112.04, + "lat": 22.92, + "tz": "Asia/Shanghai" + }, + "南宁": { + "lon": 108.37, + "lat": 22.82, + "tz": "Asia/Shanghai" + }, + "柳州": { + "lon": 109.43, + "lat": 24.33, + "tz": "Asia/Shanghai" + }, + "桂林": { + "lon": 110.29, + "lat": 25.27, + "tz": "Asia/Shanghai" + }, + "梧州": { + "lon": 111.28, + "lat": 23.48, + "tz": "Asia/Shanghai" + }, + "北海": { + "lon": 109.12, + "lat": 21.48, + "tz": "Asia/Shanghai" + }, + "防城港": { + "lon": 108.35, + "lat": 21.69, + "tz": "Asia/Shanghai" + }, + "钦州": { + "lon": 108.65, + "lat": 21.98, + "tz": "Asia/Shanghai" + }, + "贵港": { + "lon": 109.6, + "lat": 23.11, + "tz": "Asia/Shanghai" + }, + "玉林": { + "lon": 110.18, + "lat": 22.65, + "tz": "Asia/Shanghai" + }, + "百色": { + "lon": 106.62, + "lat": 23.9, + "tz": "Asia/Shanghai" + }, + "贺州": { + "lon": 111.57, + "lat": 24.4, + "tz": "Asia/Shanghai" + }, + "河池": { + "lon": 108.06, + "lat": 24.69, + "tz": "Asia/Shanghai" + }, + "来宾": { + "lon": 109.22, + "lat": 23.75, + "tz": "Asia/Shanghai" + }, + "崇左": { + "lon": 107.36, + "lat": 22.38, + "tz": "Asia/Shanghai" + }, + "海口": { + "lon": 110.33, + "lat": 20.03, + "tz": "Asia/Shanghai" + }, + "三亚": { + "lon": 109.51, + "lat": 18.25, + "tz": "Asia/Shanghai" + }, + "三沙": { + "lon": 112.34, + "lat": 16.83, + "tz": "Asia/Shanghai" + }, + "儋州": { + "lon": 109.58, + "lat": 19.52, + "tz": "Asia/Shanghai" + }, + "琼海": { + "lon": 110.47, + "lat": 19.26, + "tz": "Asia/Shanghai" + }, + "文昌": { + "lon": 110.8, + "lat": 19.54, + "tz": "Asia/Shanghai" + }, + "万宁": { + "lon": 110.39, + "lat": 18.8, + "tz": "Asia/Shanghai" + }, + "五指山": { + "lon": 109.52, + "lat": 18.78, + "tz": "Asia/Shanghai" + }, + "东方": { + "lon": 108.65, + "lat": 19.1, + "tz": "Asia/Shanghai" + }, + "成都": { + "lon": 104.07, + "lat": 30.57, + "tz": "Asia/Shanghai" + }, + "自贡": { + "lon": 104.78, + "lat": 29.34, + "tz": "Asia/Shanghai" + }, + "攀枝花": { + "lon": 101.72, + "lat": 26.58, + "tz": "Asia/Shanghai" + }, + "泸州": { + "lon": 105.44, + "lat": 28.87, + "tz": "Asia/Shanghai" + }, + "德阳": { + "lon": 104.4, + "lat": 31.13, + "tz": "Asia/Shanghai" + }, + "绵阳": { + "lon": 104.68, + "lat": 31.47, + "tz": "Asia/Shanghai" + }, + "广元": { + "lon": 105.84, + "lat": 32.44, + "tz": "Asia/Shanghai" + }, + "遂宁": { + "lon": 105.59, + "lat": 30.53, + "tz": "Asia/Shanghai" + }, + "内江": { + "lon": 105.06, + "lat": 29.58, + "tz": "Asia/Shanghai" + }, + "乐山": { + "lon": 103.77, + "lat": 29.55, + "tz": "Asia/Shanghai" + }, + "南充": { + "lon": 106.11, + "lat": 30.84, + "tz": "Asia/Shanghai" + }, + "眉山": { + "lon": 103.85, + "lat": 30.08, + "tz": "Asia/Shanghai" + }, + "宜宾": { + "lon": 104.64, + "lat": 28.75, + "tz": "Asia/Shanghai" + }, + "广安": { + "lon": 106.63, + "lat": 30.46, + "tz": "Asia/Shanghai" + }, + "达州": { + "lon": 107.47, + "lat": 31.21, + "tz": "Asia/Shanghai" + }, + "雅安": { + "lon": 103.01, + "lat": 29.98, + "tz": "Asia/Shanghai" + }, + "巴中": { + "lon": 106.75, + "lat": 31.87, + "tz": "Asia/Shanghai" + }, + "资阳": { + "lon": 104.63, + "lat": 30.12, + "tz": "Asia/Shanghai" + }, + "阿坝": { + "lon": 102.22, + "lat": 31.9, + "tz": "Asia/Shanghai" + }, + "甘孜": { + "lon": 101.96, + "lat": 30.05, + "tz": "Asia/Shanghai" + }, + "凉山": { + "lon": 102.26, + "lat": 27.88, + "tz": "Asia/Shanghai" + }, + "贵阳": { + "lon": 106.63, + "lat": 26.65, + "tz": "Asia/Shanghai" + }, + "六盘水": { + "lon": 104.83, + "lat": 26.59, + "tz": "Asia/Shanghai" + }, + "遵义": { + "lon": 106.93, + "lat": 27.73, + "tz": "Asia/Shanghai" + }, + "安顺": { + "lon": 105.95, + "lat": 26.25, + "tz": "Asia/Shanghai" + }, + "毕节": { + "lon": 105.29, + "lat": 27.3, + "tz": "Asia/Shanghai" + }, + "铜仁": { + "lon": 109.19, + "lat": 27.73, + "tz": "Asia/Shanghai" + }, + "黔西南": { + "lon": 104.9, + "lat": 25.09, + "tz": "Asia/Shanghai" + }, + "黔东南": { + "lon": 107.98, + "lat": 26.58, + "tz": "Asia/Shanghai" + }, + "黔南": { + "lon": 107.52, + "lat": 26.26, + "tz": "Asia/Shanghai" + }, + "昆明": { + "lon": 102.83, + "lat": 24.88, + "tz": "Asia/Shanghai" + }, + "曲靖": { + "lon": 103.8, + "lat": 25.49, + "tz": "Asia/Shanghai" + }, + "玉溪": { + "lon": 102.55, + "lat": 24.35, + "tz": "Asia/Shanghai" + }, + "保山": { + "lon": 99.16, + "lat": 25.11, + "tz": "Asia/Shanghai" + }, + "昭通": { + "lon": 103.72, + "lat": 27.34, + "tz": "Asia/Shanghai" + }, + "丽江": { + "lon": 100.23, + "lat": 26.86, + "tz": "Asia/Shanghai" + }, + "普洱": { + "lon": 100.97, + "lat": 22.78, + "tz": "Asia/Shanghai" + }, + "临沧": { + "lon": 100.09, + "lat": 23.88, + "tz": "Asia/Shanghai" + }, + "楚雄": { + "lon": 101.55, + "lat": 25.04, + "tz": "Asia/Shanghai" + }, + "红河": { + "lon": 103.37, + "lat": 23.36, + "tz": "Asia/Shanghai" + }, + "文山": { + "lon": 104.22, + "lat": 23.4, + "tz": "Asia/Shanghai" + }, + "西双版纳": { + "lon": 100.8, + "lat": 22.01, + "tz": "Asia/Shanghai" + }, + "大理": { + "lon": 100.23, + "lat": 25.59, + "tz": "Asia/Shanghai" + }, + "德宏": { + "lon": 98.59, + "lat": 24.43, + "tz": "Asia/Shanghai" + }, + "怒江": { + "lon": 98.85, + "lat": 25.85, + "tz": "Asia/Shanghai" + }, + "迪庆": { + "lon": 99.7, + "lat": 27.83, + "tz": "Asia/Shanghai" + }, + "拉萨": { + "lon": 91.11, + "lat": 29.66, + "tz": "Asia/Shanghai" + }, + "日喀则": { + "lon": 88.88, + "lat": 29.27, + "tz": "Asia/Shanghai" + }, + "昌都": { + "lon": 97.17, + "lat": 31.14, + "tz": "Asia/Shanghai" + }, + "林芝": { + "lon": 94.36, + "lat": 29.65, + "tz": "Asia/Shanghai" + }, + "山南": { + "lon": 91.77, + "lat": 29.24, + "tz": "Asia/Shanghai" + }, + "那曲": { + "lon": 92.05, + "lat": 31.48, + "tz": "Asia/Shanghai" + }, + "阿里": { + "lon": 80.11, + "lat": 32.5, + "tz": "Asia/Shanghai" + }, + "西安": { + "lon": 108.94, + "lat": 34.34, + "tz": "Asia/Shanghai" + }, + "铜川": { + "lon": 108.98, + "lat": 34.91, + "tz": "Asia/Shanghai" + }, + "宝鸡": { + "lon": 107.24, + "lat": 34.36, + "tz": "Asia/Shanghai" + }, + "咸阳": { + "lon": 108.71, + "lat": 34.33, + "tz": "Asia/Shanghai" + }, + "渭南": { + "lon": 109.51, + "lat": 34.5, + "tz": "Asia/Shanghai" + }, + "延安": { + "lon": 109.49, + "lat": 36.6, + "tz": "Asia/Shanghai" + }, + "汉中": { + "lon": 107.03, + "lat": 33.07, + "tz": "Asia/Shanghai" + }, + "榆林": { + "lon": 109.73, + "lat": 38.29, + "tz": "Asia/Shanghai" + }, + "安康": { + "lon": 109.03, + "lat": 32.69, + "tz": "Asia/Shanghai" + }, + "商洛": { + "lon": 109.94, + "lat": 33.87, + "tz": "Asia/Shanghai" + }, + "兰州": { + "lon": 103.83, + "lat": 36.06, + "tz": "Asia/Shanghai" + }, + "嘉峪关": { + "lon": 98.29, + "lat": 39.77, + "tz": "Asia/Shanghai" + }, + "金昌": { + "lon": 102.19, + "lat": 38.52, + "tz": "Asia/Shanghai" + }, + "白银": { + "lon": 104.14, + "lat": 36.54, + "tz": "Asia/Shanghai" + }, + "天水": { + "lon": 105.72, + "lat": 34.58, + "tz": "Asia/Shanghai" + }, + "武威": { + "lon": 102.64, + "lat": 37.93, + "tz": "Asia/Shanghai" + }, + "张掖": { + "lon": 100.45, + "lat": 38.93, + "tz": "Asia/Shanghai" + }, + "平凉": { + "lon": 106.67, + "lat": 35.54, + "tz": "Asia/Shanghai" + }, + "酒泉": { + "lon": 98.49, + "lat": 39.73, + "tz": "Asia/Shanghai" + }, + "庆阳": { + "lon": 107.64, + "lat": 35.71, + "tz": "Asia/Shanghai" + }, + "定西": { + "lon": 104.63, + "lat": 35.58, + "tz": "Asia/Shanghai" + }, + "陇南": { + "lon": 104.92, + "lat": 33.4, + "tz": "Asia/Shanghai" + }, + "临夏": { + "lon": 103.21, + "lat": 35.6, + "tz": "Asia/Shanghai" + }, + "甘南": { + "lon": 102.91, + "lat": 35.0, + "tz": "Asia/Shanghai" + }, + "西宁": { + "lon": 101.78, + "lat": 36.62, + "tz": "Asia/Shanghai" + }, + "海东": { + "lon": 102.1, + "lat": 36.5, + "tz": "Asia/Shanghai" + }, + "海北": { + "lon": 100.9, + "lat": 36.96, + "tz": "Asia/Shanghai" + }, + "黄南": { + "lon": 102.02, + "lat": 35.52, + "tz": "Asia/Shanghai" + }, + "海南州": { + "lon": 100.62, + "lat": 36.28, + "tz": "Asia/Shanghai" + }, + "果洛": { + "lon": 100.24, + "lat": 34.47, + "tz": "Asia/Shanghai" + }, + "玉树": { + "lon": 97.01, + "lat": 33.0, + "tz": "Asia/Shanghai" + }, + "海西": { + "lon": 97.37, + "lat": 37.38, + "tz": "Asia/Shanghai" + }, + "德令哈": { + "lon": 97.37, + "lat": 37.37, + "tz": "Asia/Shanghai" + }, + "格尔木": { + "lon": 94.9, + "lat": 36.41, + "tz": "Asia/Shanghai" + }, + "银川": { + "lon": 106.23, + "lat": 38.49, + "tz": "Asia/Shanghai" + }, + "石嘴山": { + "lon": 106.38, + "lat": 39.01, + "tz": "Asia/Shanghai" + }, + "吴忠": { + "lon": 106.2, + "lat": 37.99, + "tz": "Asia/Shanghai" + }, + "固原": { + "lon": 106.24, + "lat": 36.02, + "tz": "Asia/Shanghai" + }, + "中卫": { + "lon": 105.19, + "lat": 37.51, + "tz": "Asia/Shanghai" + }, + "乌鲁木齐": { + "lon": 87.62, + "lat": 43.83, + "tz": "Asia/Shanghai" + }, + "克拉玛依": { + "lon": 84.87, + "lat": 45.58, + "tz": "Asia/Shanghai" + }, + "吐鲁番": { + "lon": 89.19, + "lat": 42.95, + "tz": "Asia/Shanghai" + }, + "哈密": { + "lon": 93.51, + "lat": 42.82, + "tz": "Asia/Shanghai" + }, + "昌吉": { + "lon": 87.3, + "lat": 44.01, + "tz": "Asia/Shanghai" + }, + "博乐": { + "lon": 82.07, + "lat": 44.9, + "tz": "Asia/Shanghai" + }, + "库尔勒": { + "lon": 86.15, + "lat": 41.73, + "tz": "Asia/Shanghai" + }, + "阿图什": { + "lon": 76.17, + "lat": 39.72, + "tz": "Asia/Shanghai" + }, + "阿克苏": { + "lon": 80.26, + "lat": 41.17, + "tz": "Asia/Shanghai" + }, + "喀什": { + "lon": 75.99, + "lat": 39.47, + "tz": "Asia/Shanghai" + }, + "和田": { + "lon": 79.92, + "lat": 37.11, + "tz": "Asia/Shanghai" + }, + "伊宁": { + "lon": 81.32, + "lat": 43.92, + "tz": "Asia/Shanghai" + }, + "塔城": { + "lon": 82.98, + "lat": 46.75, + "tz": "Asia/Shanghai" + }, + "阿勒泰": { + "lon": 88.14, + "lat": 47.85, + "tz": "Asia/Shanghai" + }, + "石河子": { + "lon": 86.04, + "lat": 44.31, + "tz": "Asia/Shanghai" + }, + "阿拉尔": { + "lon": 81.28, + "lat": 40.55, + "tz": "Asia/Shanghai" + }, + "图木舒克": { + "lon": 79.07, + "lat": 39.87, + "tz": "Asia/Shanghai" + }, + "五家渠": { + "lon": 87.54, + "lat": 44.17, + "tz": "Asia/Shanghai" + }, + "北屯": { + "lon": 87.8, + "lat": 47.35, + "tz": "Asia/Shanghai" + }, + "香港": { + "lon": 114.17, + "lat": 22.32, + "tz": "Asia/Shanghai" + }, + "澳门": { + "lon": 113.54, + "lat": 22.2, + "tz": "Asia/Shanghai" + }, + "北京市东城区": { + "lon": 116.4125, + "lat": 39.9161, + "tz": "Asia/Shanghai" + }, + "北京市西城区": { + "lon": 116.3606, + "lat": 39.9139, + "tz": "Asia/Shanghai" + }, + "北京市朝阳区": { + "lon": 116.4803, + "lat": 39.9202, + "tz": "Asia/Shanghai" + }, + "北京市丰台区": { + "lon": 116.2809, + "lat": 39.8624, + "tz": "Asia/Shanghai" + }, + "北京市石景山区": { + "lon": 116.1893, + "lat": 39.9133, + "tz": "Asia/Shanghai" + }, + "北京市海淀区": { + "lon": 116.3042, + "lat": 39.9548, + "tz": "Asia/Shanghai" + }, + "北京市门头沟区": { + "lon": 116.0991, + "lat": 39.9358, + "tz": "Asia/Shanghai" + }, + "北京市房山区": { + "lon": 116.1329, + "lat": 39.7342, + "tz": "Asia/Shanghai" + }, + "北京市通州区": { + "lon": 116.6527, + "lat": 39.9014, + "tz": "Asia/Shanghai" + }, + "北京市顺义区": { + "lon": 116.6476, + "lat": 40.1278, + "tz": "Asia/Shanghai" + }, + "北京市昌平区": { + "lon": 116.2298, + "lat": 40.2168, + "tz": "Asia/Shanghai" + }, + "北京市大兴区": { + "lon": 116.3319, + "lat": 39.7276, + "tz": "Asia/Shanghai" + }, + "北京市怀柔区": { + "lon": 116.6312, + "lat": 40.3232, + "tz": "Asia/Shanghai" + }, + "北京市平谷区": { + "lon": 117.1058, + "lat": 40.1434, + "tz": "Asia/Shanghai" + }, + "北京市密云区": { + "lon": 116.8373, + "lat": 40.3762, + "tz": "Asia/Shanghai" + }, + "北京市延庆区": { + "lon": 115.9789, + "lat": 40.4641, + "tz": "Asia/Shanghai" + }, + "天津市和平区": { + "lon": 117.1896, + "lat": 39.1173, + "tz": "Asia/Shanghai" + }, + "天津市河东区": { + "lon": 117.2203, + "lat": 39.1211, + "tz": "Asia/Shanghai" + }, + "天津市河西区": { + "lon": 117.2113, + "lat": 39.1009, + "tz": "Asia/Shanghai" + }, + "天津市南开区": { + "lon": 117.1578, + "lat": 39.1194, + "tz": "Asia/Shanghai" + }, + "天津市河北区": { + "lon": 117.1953, + "lat": 39.1556, + "tz": "Asia/Shanghai" + }, + "天津市红桥区": { + "lon": 117.1569, + "lat": 39.1739, + "tz": "Asia/Shanghai" + }, + "天津市东丽区": { + "lon": 117.3076, + "lat": 39.0867, + "tz": "Asia/Shanghai" + }, + "天津市西青区": { + "lon": 117.0061, + "lat": 39.1384, + "tz": "Asia/Shanghai" + }, + "天津市津南区": { + "lon": 117.376, + "lat": 38.9885, + "tz": "Asia/Shanghai" + }, + "天津市北辰区": { + "lon": 117.1284, + "lat": 39.2243, + "tz": "Asia/Shanghai" + }, + "天津市武清区": { + "lon": 117.0516, + "lat": 39.3757, + "tz": "Asia/Shanghai" + }, + "天津市宝坻区": { + "lon": 117.3017, + "lat": 39.7157, + "tz": "Asia/Shanghai" + }, + "天津市滨海新区": { + "lon": 117.648, + "lat": 39.032, + "tz": "Asia/Shanghai" + }, + "天津市宁河区": { + "lon": 117.8221, + "lat": 39.3279, + "tz": "Asia/Shanghai" + }, + "天津市静海区": { + "lon": 116.9195, + "lat": 38.935, + "tz": "Asia/Shanghai" + }, + "天津市蓟州区": { + "lon": 117.4008, + "lat": 40.0439, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市长安区": { + "lon": 114.5423, + "lat": 38.047, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市桥西区": { + "lon": 114.4567, + "lat": 38.0276, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市新华区": { + "lon": 114.4598, + "lat": 38.0664, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市井陉矿区": { + "lon": 114.0517, + "lat": 38.069, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市裕华区": { + "lon": 114.5273, + "lat": 38.0271, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市藁城区": { + "lon": 114.8438, + "lat": 38.0332, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市鹿泉区": { + "lon": 114.3148, + "lat": 38.0933, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市栾城区": { + "lon": 114.6485, + "lat": 37.8863, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市井陉县": { + "lon": 114.138, + "lat": 38.0328, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市正定县": { + "lon": 114.5641, + "lat": 38.1474, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市行唐县": { + "lon": 114.5468, + "lat": 38.4369, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市灵寿县": { + "lon": 114.3731, + "lat": 38.3058, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市高邑县": { + "lon": 114.605, + "lat": 37.6052, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市深泽县": { + "lon": 115.194, + "lat": 38.1838, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市赞皇县": { + "lon": 114.3815, + "lat": 37.6593, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市无极县": { + "lon": 114.9719, + "lat": 38.1758, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市平山县": { + "lon": 114.1778, + "lat": 38.2586, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市元氏县": { + "lon": 114.5203, + "lat": 37.7619, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市赵县": { + "lon": 114.7694, + "lat": 37.7536, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市辛集市": { + "lon": 115.2114, + "lat": 37.9283, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市晋州市": { + "lon": 115.0387, + "lat": 38.0267, + "tz": "Asia/Shanghai" + }, + "河北省石家庄市新乐市": { + "lon": 114.6798, + "lat": 38.3442, + "tz": "Asia/Shanghai" + }, + "河北省唐山市路南区": { + "lon": 118.2046, + "lat": 39.6139, + "tz": "Asia/Shanghai" + }, + "河北省唐山市路北区": { + "lon": 118.1684, + "lat": 39.6272, + "tz": "Asia/Shanghai" + }, + "河北省唐山市古冶区": { + "lon": 118.448, + "lat": 39.7143, + "tz": "Asia/Shanghai" + }, + "河北省唐山市开平区": { + "lon": 118.2583, + "lat": 39.6749, + "tz": "Asia/Shanghai" + }, + "河北省唐山市丰南区": { + "lon": 118.1043, + "lat": 39.5616, + "tz": "Asia/Shanghai" + }, + "河北省唐山市丰润区": { + "lon": 118.1494, + "lat": 39.83, + "tz": "Asia/Shanghai" + }, + "河北省唐山市曹妃甸区": { + "lon": 118.4404, + "lat": 39.277, + "tz": "Asia/Shanghai" + }, + "河北省唐山市滦南县": { + "lon": 118.6756, + "lat": 39.5051, + "tz": "Asia/Shanghai" + }, + "河北省唐山市乐亭县": { + "lon": 118.8995, + "lat": 39.4271, + "tz": "Asia/Shanghai" + }, + "河北省唐山市迁西县": { + "lon": 118.2989, + "lat": 40.1449, + "tz": "Asia/Shanghai" + }, + "河北省唐山市玉田县": { + "lon": 117.7473, + "lat": 39.8861, + "tz": "Asia/Shanghai" + }, + "河北省唐山市遵化市": { + "lon": 117.9597, + "lat": 40.1875, + "tz": "Asia/Shanghai" + }, + "河北省唐山市迁安市": { + "lon": 118.6959, + "lat": 40.0109, + "tz": "Asia/Shanghai" + }, + "河北省唐山市滦州市": { + "lon": 118.6936, + "lat": 39.7436, + "tz": "Asia/Shanghai" + }, + "河北省秦皇岛市海港区": { + "lon": 119.5904, + "lat": 39.9423, + "tz": "Asia/Shanghai" + }, + "河北省秦皇岛市山海关区": { + "lon": 119.7477, + "lat": 39.9967, + "tz": "Asia/Shanghai" + }, + "河北省秦皇岛市北戴河区": { + "lon": 119.4801, + "lat": 39.8238, + "tz": "Asia/Shanghai" + }, + "河北省秦皇岛市抚宁区": { + "lon": 119.2345, + "lat": 39.8858, + "tz": "Asia/Shanghai" + }, + "河北省秦皇岛市青龙满族自治县": { + "lon": 118.9486, + "lat": 40.4048, + "tz": "Asia/Shanghai" + }, + "河北省秦皇岛市昌黎县": { + "lon": 119.1583, + "lat": 39.7083, + "tz": "Asia/Shanghai" + }, + "河北省秦皇岛市卢龙县": { + "lon": 118.8759, + "lat": 39.8905, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市邯山区": { + "lon": 114.479, + "lat": 36.603, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市丛台区": { + "lon": 114.4888, + "lat": 36.6109, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市复兴区": { + "lon": 114.4522, + "lat": 36.6152, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市峰峰矿区": { + "lon": 114.2039, + "lat": 36.4204, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市肥乡区": { + "lon": 114.7994, + "lat": 36.5557, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市永年区": { + "lon": 114.4902, + "lat": 36.7761, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市临漳县": { + "lon": 114.6051, + "lat": 36.3377, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市成安县": { + "lon": 114.6746, + "lat": 36.4438, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市大名县": { + "lon": 115.1465, + "lat": 36.2831, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市涉县": { + "lon": 113.667, + "lat": 36.5631, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市磁县": { + "lon": 114.376, + "lat": 36.3674, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市邱县": { + "lon": 115.1625, + "lat": 36.8128, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市鸡泽县": { + "lon": 114.8728, + "lat": 36.9147, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市广平县": { + "lon": 114.9452, + "lat": 36.4836, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市馆陶县": { + "lon": 115.2831, + "lat": 36.5393, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市魏县": { + "lon": 114.9285, + "lat": 36.3543, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市曲周县": { + "lon": 114.9519, + "lat": 36.7732, + "tz": "Asia/Shanghai" + }, + "河北省邯郸市武安市": { + "lon": 114.1884, + "lat": 36.6958, + "tz": "Asia/Shanghai" + }, + "河北省邢台市襄都区": { + "lon": 114.5012, + "lat": 37.0636, + "tz": "Asia/Shanghai" + }, + "河北省邢台市信都区": { + "lon": 114.4676, + "lat": 37.0674, + "tz": "Asia/Shanghai" + }, + "河北省邢台市任泽区": { + "lon": 114.6787, + "lat": 37.1295, + "tz": "Asia/Shanghai" + }, + "河北省邢台市南和区": { + "lon": 114.6856, + "lat": 37.0034, + "tz": "Asia/Shanghai" + }, + "河北省邢台市临城县": { + "lon": 114.5009, + "lat": 37.4433, + "tz": "Asia/Shanghai" + }, + "河北省邢台市内丘县": { + "lon": 114.5056, + "lat": 37.2871, + "tz": "Asia/Shanghai" + }, + "河北省邢台市柏乡县": { + "lon": 114.6875, + "lat": 37.483, + "tz": "Asia/Shanghai" + }, + "河北省邢台市隆尧县": { + "lon": 114.7704, + "lat": 37.3503, + "tz": "Asia/Shanghai" + }, + "河北省邢台市宁晋县": { + "lon": 114.9153, + "lat": 37.6184, + "tz": "Asia/Shanghai" + }, + "河北省邢台市巨鹿县": { + "lon": 115.0327, + "lat": 37.217, + "tz": "Asia/Shanghai" + }, + "河北省邢台市新河县": { + "lon": 115.2415, + "lat": 37.5255, + "tz": "Asia/Shanghai" + }, + "河北省邢台市广宗县": { + "lon": 115.1367, + "lat": 37.0749, + "tz": "Asia/Shanghai" + }, + "河北省邢台市平乡县": { + "lon": 115.0232, + "lat": 37.0688, + "tz": "Asia/Shanghai" + }, + "河北省邢台市威县": { + "lon": 115.2668, + "lat": 36.9828, + "tz": "Asia/Shanghai" + }, + "河北省邢台市清河县": { + "lon": 115.6632, + "lat": 37.0596, + "tz": "Asia/Shanghai" + }, + "河北省邢台市临西县": { + "lon": 115.4927, + "lat": 36.8638, + "tz": "Asia/Shanghai" + }, + "河北省邢台市南宫市": { + "lon": 115.3919, + "lat": 37.3588, + "tz": "Asia/Shanghai" + }, + "河北省邢台市沙河市": { + "lon": 114.499, + "lat": 36.8616, + "tz": "Asia/Shanghai" + }, + "河北省保定市竞秀区": { + "lon": 115.4643, + "lat": 38.8857, + "tz": "Asia/Shanghai" + }, + "河北省保定市莲池区": { + "lon": 115.4947, + "lat": 38.8642, + "tz": "Asia/Shanghai" + }, + "河北省保定市满城区": { + "lon": 115.3181, + "lat": 38.9505, + "tz": "Asia/Shanghai" + }, + "河北省保定市清苑区": { + "lon": 115.486, + "lat": 38.7702, + "tz": "Asia/Shanghai" + }, + "河北省保定市徐水区": { + "lon": 115.6434, + "lat": 39.0197, + "tz": "Asia/Shanghai" + }, + "河北省保定市涞水县": { + "lon": 115.7058, + "lat": 39.3921, + "tz": "Asia/Shanghai" + }, + "河北省保定市阜平县": { + "lon": 114.1924, + "lat": 38.8465, + "tz": "Asia/Shanghai" + }, + "河北省保定市定兴县": { + "lon": 115.7908, + "lat": 39.2652, + "tz": "Asia/Shanghai" + }, + "河北省保定市唐县": { + "lon": 114.9752, + "lat": 38.7479, + "tz": "Asia/Shanghai" + }, + "河北省保定市高阳县": { + "lon": 115.7728, + "lat": 38.6894, + "tz": "Asia/Shanghai" + }, + "河北省保定市容城县": { + "lon": 115.8603, + "lat": 39.0521, + "tz": "Asia/Shanghai" + }, + "河北省保定市涞源县": { + "lon": 114.6865, + "lat": 39.3566, + "tz": "Asia/Shanghai" + }, + "河北省保定市望都县": { + "lon": 115.1477, + "lat": 38.7066, + "tz": "Asia/Shanghai" + }, + "河北省保定市安新县": { + "lon": 115.9262, + "lat": 38.9292, + "tz": "Asia/Shanghai" + }, + "河北省保定市易县": { + "lon": 115.4949, + "lat": 39.3519, + "tz": "Asia/Shanghai" + }, + "河北省保定市曲阳县": { + "lon": 114.6981, + "lat": 38.6194, + "tz": "Asia/Shanghai" + }, + "河北省保定市蠡县": { + "lon": 115.5777, + "lat": 38.4959, + "tz": "Asia/Shanghai" + }, + "河北省保定市顺平县": { + "lon": 115.1264, + "lat": 38.8442, + "tz": "Asia/Shanghai" + }, + "河北省保定市博野县": { + "lon": 115.4555, + "lat": 38.4575, + "tz": "Asia/Shanghai" + }, + "河北省保定市雄县": { + "lon": 116.1013, + "lat": 38.9898, + "tz": "Asia/Shanghai" + }, + "河北省保定市涿州市": { + "lon": 115.9674, + "lat": 39.4847, + "tz": "Asia/Shanghai" + }, + "河北省保定市定州市": { + "lon": 114.9854, + "lat": 38.517, + "tz": "Asia/Shanghai" + }, + "河北省保定市安国市": { + "lon": 115.3252, + "lat": 38.4206, + "tz": "Asia/Shanghai" + }, + "河北省保定市高碑店市": { + "lon": 115.8768, + "lat": 39.3268, + "tz": "Asia/Shanghai" + }, + "河北省张家口市桥东区": { + "lon": 114.8795, + "lat": 40.8126, + "tz": "Asia/Shanghai" + }, + "河北省张家口市桥西区": { + "lon": 114.876, + "lat": 40.8231, + "tz": "Asia/Shanghai" + }, + "河北省张家口市宣化区": { + "lon": 115.0566, + "lat": 40.6079, + "tz": "Asia/Shanghai" + }, + "河北省张家口市下花园区": { + "lon": 115.2746, + "lat": 40.4873, + "tz": "Asia/Shanghai" + }, + "河北省张家口市万全区": { + "lon": 114.7298, + "lat": 40.7637, + "tz": "Asia/Shanghai" + }, + "河北省张家口市崇礼区": { + "lon": 115.2752, + "lat": 40.9697, + "tz": "Asia/Shanghai" + }, + "河北省张家口市张北县": { + "lon": 114.7096, + "lat": 41.15, + "tz": "Asia/Shanghai" + }, + "河北省张家口市康保县": { + "lon": 114.6096, + "lat": 41.8482, + "tz": "Asia/Shanghai" + }, + "河北省张家口市沽源县": { + "lon": 115.6784, + "lat": 41.6654, + "tz": "Asia/Shanghai" + }, + "河北省张家口市尚义县": { + "lon": 113.971, + "lat": 41.0785, + "tz": "Asia/Shanghai" + }, + "河北省张家口市蔚县": { + "lon": 114.5767, + "lat": 39.8362, + "tz": "Asia/Shanghai" + }, + "河北省张家口市阳原县": { + "lon": 114.1607, + "lat": 40.1121, + "tz": "Asia/Shanghai" + }, + "河北省张家口市怀安县": { + "lon": 114.4157, + "lat": 40.6697, + "tz": "Asia/Shanghai" + }, + "河北省张家口市怀来县": { + "lon": 115.5145, + "lat": 40.4042, + "tz": "Asia/Shanghai" + }, + "河北省张家口市涿鹿县": { + "lon": 115.2128, + "lat": 40.3774, + "tz": "Asia/Shanghai" + }, + "河北省张家口市赤城县": { + "lon": 115.8265, + "lat": 40.9106, + "tz": "Asia/Shanghai" + }, + "河北省承德市双桥区": { + "lon": 117.9329, + "lat": 40.9747, + "tz": "Asia/Shanghai" + }, + "河北省承德市双滦区": { + "lon": 117.791, + "lat": 40.9581, + "tz": "Asia/Shanghai" + }, + "河北省承德市鹰手营子矿区": { + "lon": 117.6548, + "lat": 40.5457, + "tz": "Asia/Shanghai" + }, + "河北省承德市承德县": { + "lon": 118.166, + "lat": 40.767, + "tz": "Asia/Shanghai" + }, + "河北省承德市兴隆县": { + "lon": 117.5006, + "lat": 40.4172, + "tz": "Asia/Shanghai" + }, + "河北省承德市滦平县": { + "lon": 117.3304, + "lat": 40.9349, + "tz": "Asia/Shanghai" + }, + "河北省承德市隆化县": { + "lon": 117.7297, + "lat": 41.3147, + "tz": "Asia/Shanghai" + }, + "河北省承德市丰宁满族自治县": { + "lon": 116.6452, + "lat": 41.2082, + "tz": "Asia/Shanghai" + }, + "河北省承德市宽城满族自治县": { + "lon": 118.4824, + "lat": 40.6065, + "tz": "Asia/Shanghai" + }, + "河北省承德市围场满族蒙古族自治县": { + "lon": 117.7574, + "lat": 41.9473, + "tz": "Asia/Shanghai" + }, + "河北省承德市平泉市": { + "lon": 118.6841, + "lat": 41.0039, + "tz": "Asia/Shanghai" + }, + "河北省沧州市新华区": { + "lon": 116.8673, + "lat": 38.3078, + "tz": "Asia/Shanghai" + }, + "河北省沧州市运河区": { + "lon": 116.8343, + "lat": 38.3068, + "tz": "Asia/Shanghai" + }, + "河北省沧州市沧县": { + "lon": 117.0015, + "lat": 38.2192, + "tz": "Asia/Shanghai" + }, + "河北省沧州市青县": { + "lon": 116.8326, + "lat": 38.5691, + "tz": "Asia/Shanghai" + }, + "河北省沧州市东光县": { + "lon": 116.5364, + "lat": 37.8859, + "tz": "Asia/Shanghai" + }, + "河北省沧州市海兴县": { + "lon": 117.4903, + "lat": 38.1408, + "tz": "Asia/Shanghai" + }, + "河北省沧州市盐山县": { + "lon": 117.2237, + "lat": 38.0554, + "tz": "Asia/Shanghai" + }, + "河北省沧州市肃宁县": { + "lon": 115.83, + "lat": 38.4265, + "tz": "Asia/Shanghai" + }, + "河北省沧州市南皮县": { + "lon": 116.7034, + "lat": 38.0418, + "tz": "Asia/Shanghai" + }, + "河北省沧州市吴桥县": { + "lon": 116.3856, + "lat": 37.6272, + "tz": "Asia/Shanghai" + }, + "河北省沧州市献县": { + "lon": 116.1178, + "lat": 38.1888, + "tz": "Asia/Shanghai" + }, + "河北省沧州市孟村回族自治县": { + "lon": 117.0988, + "lat": 38.0571, + "tz": "Asia/Shanghai" + }, + "河北省沧州市泊头市": { + "lon": 116.5646, + "lat": 38.0729, + "tz": "Asia/Shanghai" + }, + "河北省沧州市任丘市": { + "lon": 116.1006, + "lat": 38.7056, + "tz": "Asia/Shanghai" + }, + "河北省沧州市黄骅市": { + "lon": 117.3374, + "lat": 38.3684, + "tz": "Asia/Shanghai" + }, + "河北省沧州市河间市": { + "lon": 116.0833, + "lat": 38.4407, + "tz": "Asia/Shanghai" + }, + "河北省廊坊市安次区": { + "lon": 116.6886, + "lat": 39.5015, + "tz": "Asia/Shanghai" + }, + "河北省廊坊市广阳区": { + "lon": 116.7077, + "lat": 39.5208, + "tz": "Asia/Shanghai" + }, + "河北省廊坊市固安县": { + "lon": 116.2939, + "lat": 39.4353, + "tz": "Asia/Shanghai" + }, + "河北省廊坊市永清县": { + "lon": 116.4921, + "lat": 39.3186, + "tz": "Asia/Shanghai" + }, + "河北省廊坊市香河县": { + "lon": 117.0009, + "lat": 39.756, + "tz": "Asia/Shanghai" + }, + "河北省廊坊市大城县": { + "lon": 116.635, + "lat": 38.6986, + "tz": "Asia/Shanghai" + }, + "河北省廊坊市文安县": { + "lon": 116.4541, + "lat": 38.8659, + "tz": "Asia/Shanghai" + }, + "河北省廊坊市大厂回族自治县": { + "lon": 116.9804, + "lat": 39.8881, + "tz": "Asia/Shanghai" + }, + "河北省廊坊市霸州市": { + "lon": 116.3859, + "lat": 39.1162, + "tz": "Asia/Shanghai" + }, + "河北省廊坊市三河市": { + "lon": 117.0705, + "lat": 39.9814, + "tz": "Asia/Shanghai" + }, + "河北省衡水市桃城区": { + "lon": 115.689, + "lat": 37.7316, + "tz": "Asia/Shanghai" + }, + "河北省衡水市冀州区": { + "lon": 115.5734, + "lat": 37.5422, + "tz": "Asia/Shanghai" + }, + "河北省衡水市枣强县": { + "lon": 115.7206, + "lat": 37.5108, + "tz": "Asia/Shanghai" + }, + "河北省衡水市武邑县": { + "lon": 115.8867, + "lat": 37.8032, + "tz": "Asia/Shanghai" + }, + "河北省衡水市武强县": { + "lon": 115.9644, + "lat": 38.0364, + "tz": "Asia/Shanghai" + }, + "河北省衡水市饶阳县": { + "lon": 115.7205, + "lat": 38.232, + "tz": "Asia/Shanghai" + }, + "河北省衡水市安平县": { + "lon": 115.5136, + "lat": 38.2329, + "tz": "Asia/Shanghai" + }, + "河北省衡水市故城县": { + "lon": 115.961, + "lat": 37.3504, + "tz": "Asia/Shanghai" + }, + "河北省衡水市景县": { + "lon": 116.2527, + "lat": 37.6859, + "tz": "Asia/Shanghai" + }, + "河北省衡水市阜城县": { + "lon": 116.1588, + "lat": 37.8691, + "tz": "Asia/Shanghai" + }, + "河北省衡水市深州市": { + "lon": 115.5487, + "lat": 38.0029, + "tz": "Asia/Shanghai" + }, + "山西省太原市小店区": { + "lon": 112.558, + "lat": 37.8175, + "tz": "Asia/Shanghai" + }, + "山西省太原市迎泽区": { + "lon": 112.5526, + "lat": 37.8553, + "tz": "Asia/Shanghai" + }, + "山西省太原市杏花岭区": { + "lon": 112.5545, + "lat": 37.8788, + "tz": "Asia/Shanghai" + }, + "山西省太原市尖草坪区": { + "lon": 112.4806, + "lat": 37.9392, + "tz": "Asia/Shanghai" + }, + "山西省太原市万柏林区": { + "lon": 112.5159, + "lat": 37.862, + "tz": "Asia/Shanghai" + }, + "山西省太原市晋源区": { + "lon": 112.4713, + "lat": 37.7149, + "tz": "Asia/Shanghai" + }, + "山西省太原市清徐县": { + "lon": 112.3514, + "lat": 37.6065, + "tz": "Asia/Shanghai" + }, + "山西省太原市阳曲县": { + "lon": 112.6674, + "lat": 38.0583, + "tz": "Asia/Shanghai" + }, + "山西省太原市娄烦县": { + "lon": 111.7873, + "lat": 38.0655, + "tz": "Asia/Shanghai" + }, + "山西省太原市古交市": { + "lon": 112.1677, + "lat": 37.9078, + "tz": "Asia/Shanghai" + }, + "山西省大同市新荣区": { + "lon": 113.1339, + "lat": 40.2569, + "tz": "Asia/Shanghai" + }, + "山西省大同市平城区": { + "lon": 113.291, + "lat": 40.0745, + "tz": "Asia/Shanghai" + }, + "山西省大同市云冈区": { + "lon": 113.1426, + "lat": 40.0041, + "tz": "Asia/Shanghai" + }, + "山西省大同市云州区": { + "lon": 113.6058, + "lat": 40.0393, + "tz": "Asia/Shanghai" + }, + "山西省大同市阳高县": { + "lon": 113.743, + "lat": 40.3637, + "tz": "Asia/Shanghai" + }, + "山西省大同市天镇县": { + "lon": 114.0843, + "lat": 40.4199, + "tz": "Asia/Shanghai" + }, + "山西省大同市广灵县": { + "lon": 114.2729, + "lat": 39.7619, + "tz": "Asia/Shanghai" + }, + "山西省大同市灵丘县": { + "lon": 114.2294, + "lat": 39.4378, + "tz": "Asia/Shanghai" + }, + "山西省大同市浑源县": { + "lon": 113.6914, + "lat": 39.698, + "tz": "Asia/Shanghai" + }, + "山西省大同市左云县": { + "lon": 112.6997, + "lat": 40.0118, + "tz": "Asia/Shanghai" + }, + "山西省阳泉市城区": { + "lon": 113.5801, + "lat": 37.8604, + "tz": "Asia/Shanghai" + }, + "山西省阳泉市矿区": { + "lon": 113.5526, + "lat": 37.8695, + "tz": "Asia/Shanghai" + }, + "山西省阳泉市郊区": { + "lon": 113.5802, + "lat": 37.9405, + "tz": "Asia/Shanghai" + }, + "山西省阳泉市平定县": { + "lon": 113.6247, + "lat": 37.7998, + "tz": "Asia/Shanghai" + }, + "山西省阳泉市盂县": { + "lon": 113.4053, + "lat": 38.0853, + "tz": "Asia/Shanghai" + }, + "山西省长治市潞州区": { + "lon": 113.1074, + "lat": 36.1877, + "tz": "Asia/Shanghai" + }, + "山西省长治市上党区": { + "lon": 113.0501, + "lat": 36.0523, + "tz": "Asia/Shanghai" + }, + "山西省长治市屯留区": { + "lon": 112.8866, + "lat": 36.3142, + "tz": "Asia/Shanghai" + }, + "山西省长治市潞城区": { + "lon": 113.2167, + "lat": 36.3322, + "tz": "Asia/Shanghai" + }, + "山西省长治市襄垣县": { + "lon": 113.0435, + "lat": 36.5326, + "tz": "Asia/Shanghai" + }, + "山西省长治市平顺县": { + "lon": 113.4321, + "lat": 36.2, + "tz": "Asia/Shanghai" + }, + "山西省长治市黎城县": { + "lon": 113.3806, + "lat": 36.5027, + "tz": "Asia/Shanghai" + }, + "山西省长治市壶关县": { + "lon": 113.1996, + "lat": 36.1109, + "tz": "Asia/Shanghai" + }, + "山西省长治市长子县": { + "lon": 112.8785, + "lat": 36.1197, + "tz": "Asia/Shanghai" + }, + "山西省长治市武乡县": { + "lon": 112.8591, + "lat": 36.8342, + "tz": "Asia/Shanghai" + }, + "山西省长治市沁县": { + "lon": 112.6951, + "lat": 36.7569, + "tz": "Asia/Shanghai" + }, + "山西省长治市沁源县": { + "lon": 112.3344, + "lat": 36.5006, + "tz": "Asia/Shanghai" + }, + "山西省晋城市城区": { + "lon": 112.847, + "lat": 35.497, + "tz": "Asia/Shanghai" + }, + "山西省晋城市沁水县": { + "lon": 112.1809, + "lat": 35.6896, + "tz": "Asia/Shanghai" + }, + "山西省晋城市阳城县": { + "lon": 112.4156, + "lat": 35.4823, + "tz": "Asia/Shanghai" + }, + "山西省晋城市陵川县": { + "lon": 113.2724, + "lat": 35.7757, + "tz": "Asia/Shanghai" + }, + "山西省晋城市泽州县": { + "lon": 112.8931, + "lat": 35.6176, + "tz": "Asia/Shanghai" + }, + "山西省晋城市高平市": { + "lon": 112.9246, + "lat": 35.7916, + "tz": "Asia/Shanghai" + }, + "山西省朔州市朔城区": { + "lon": 112.4218, + "lat": 39.3234, + "tz": "Asia/Shanghai" + }, + "山西省朔州市平鲁区": { + "lon": 112.2885, + "lat": 39.5145, + "tz": "Asia/Shanghai" + }, + "山西省朔州市山阴县": { + "lon": 112.8097, + "lat": 39.5257, + "tz": "Asia/Shanghai" + }, + "山西省朔州市应县": { + "lon": 113.1805, + "lat": 39.558, + "tz": "Asia/Shanghai" + }, + "山西省朔州市右玉县": { + "lon": 112.4587, + "lat": 39.9876, + "tz": "Asia/Shanghai" + }, + "山西省朔州市怀仁市": { + "lon": 113.0934, + "lat": 39.8195, + "tz": "Asia/Shanghai" + }, + "山西省晋中市榆次区": { + "lon": 112.7336, + "lat": 37.6969, + "tz": "Asia/Shanghai" + }, + "山西省晋中市太谷区": { + "lon": 112.5479, + "lat": 37.4241, + "tz": "Asia/Shanghai" + }, + "山西省晋中市榆社县": { + "lon": 112.9671, + "lat": 37.0687, + "tz": "Asia/Shanghai" + }, + "山西省晋中市左权县": { + "lon": 113.371, + "lat": 37.079, + "tz": "Asia/Shanghai" + }, + "山西省晋中市和顺县": { + "lon": 113.5666, + "lat": 37.3266, + "tz": "Asia/Shanghai" + }, + "山西省晋中市昔阳县": { + "lon": 113.6997, + "lat": 37.6037, + "tz": "Asia/Shanghai" + }, + "山西省晋中市寿阳县": { + "lon": 113.1709, + "lat": 37.8904, + "tz": "Asia/Shanghai" + }, + "山西省晋中市祁县": { + "lon": 112.324, + "lat": 37.358, + "tz": "Asia/Shanghai" + }, + "山西省晋中市平遥县": { + "lon": 112.1675, + "lat": 37.1948, + "tz": "Asia/Shanghai" + }, + "山西省晋中市灵石县": { + "lon": 111.7663, + "lat": 36.8472, + "tz": "Asia/Shanghai" + }, + "山西省晋中市介休市": { + "lon": 111.9077, + "lat": 37.0274, + "tz": "Asia/Shanghai" + }, + "山西省运城市盐湖区": { + "lon": 110.9949, + "lat": 35.0264, + "tz": "Asia/Shanghai" + }, + "山西省运城市临猗县": { + "lon": 110.7694, + "lat": 35.1425, + "tz": "Asia/Shanghai" + }, + "山西省运城市万荣县": { + "lon": 110.838, + "lat": 35.4175, + "tz": "Asia/Shanghai" + }, + "山西省运城市闻喜县": { + "lon": 111.2143, + "lat": 35.3542, + "tz": "Asia/Shanghai" + }, + "山西省运城市稷山县": { + "lon": 110.9733, + "lat": 35.6007, + "tz": "Asia/Shanghai" + }, + "山西省运城市新绛县": { + "lon": 111.2191, + "lat": 35.6139, + "tz": "Asia/Shanghai" + }, + "山西省运城市绛县": { + "lon": 111.5701, + "lat": 35.4909, + "tz": "Asia/Shanghai" + }, + "山西省运城市垣曲县": { + "lon": 111.6649, + "lat": 35.2989, + "tz": "Asia/Shanghai" + }, + "山西省运城市夏县": { + "lon": 111.2172, + "lat": 35.1411, + "tz": "Asia/Shanghai" + }, + "山西省运城市平陆县": { + "lon": 111.2064, + "lat": 34.8382, + "tz": "Asia/Shanghai" + }, + "山西省运城市芮城县": { + "lon": 110.6858, + "lat": 34.696, + "tz": "Asia/Shanghai" + }, + "山西省运城市永济市": { + "lon": 110.4425, + "lat": 34.8659, + "tz": "Asia/Shanghai" + }, + "山西省运城市河津市": { + "lon": 110.7047, + "lat": 35.5974, + "tz": "Asia/Shanghai" + }, + "山西省忻州市忻府区": { + "lon": 112.7276, + "lat": 38.4172, + "tz": "Asia/Shanghai" + }, + "山西省忻州市定襄县": { + "lon": 112.9567, + "lat": 38.4845, + "tz": "Asia/Shanghai" + }, + "山西省忻州市五台县": { + "lon": 113.2522, + "lat": 38.725, + "tz": "Asia/Shanghai" + }, + "山西省忻州市代县": { + "lon": 112.9559, + "lat": 39.0644, + "tz": "Asia/Shanghai" + }, + "山西省忻州市繁峙县": { + "lon": 113.2609, + "lat": 39.1872, + "tz": "Asia/Shanghai" + }, + "山西省忻州市宁武县": { + "lon": 112.3013, + "lat": 39.0009, + "tz": "Asia/Shanghai" + }, + "山西省忻州市静乐县": { + "lon": 111.9339, + "lat": 38.3555, + "tz": "Asia/Shanghai" + }, + "山西省忻州市神池县": { + "lon": 112.1937, + "lat": 39.0876, + "tz": "Asia/Shanghai" + }, + "山西省忻州市五寨县": { + "lon": 111.8345, + "lat": 38.9121, + "tz": "Asia/Shanghai" + }, + "山西省忻州市岢岚县": { + "lon": 111.5634, + "lat": 38.7052, + "tz": "Asia/Shanghai" + }, + "山西省忻州市河曲县": { + "lon": 111.14, + "lat": 39.3808, + "tz": "Asia/Shanghai" + }, + "山西省忻州市保德县": { + "lon": 111.0792, + "lat": 39.0216, + "tz": "Asia/Shanghai" + }, + "山西省忻州市偏关县": { + "lon": 111.4938, + "lat": 39.4411, + "tz": "Asia/Shanghai" + }, + "山西省忻州市原平市": { + "lon": 112.7066, + "lat": 38.7286, + "tz": "Asia/Shanghai" + }, + "山西省临汾市尧都区": { + "lon": 111.5167, + "lat": 36.0805, + "tz": "Asia/Shanghai" + }, + "山西省临汾市曲沃县": { + "lon": 111.4692, + "lat": 35.6415, + "tz": "Asia/Shanghai" + }, + "山西省临汾市翼城县": { + "lon": 111.7073, + "lat": 35.7388, + "tz": "Asia/Shanghai" + }, + "山西省临汾市襄汾县": { + "lon": 111.4365, + "lat": 35.8761, + "tz": "Asia/Shanghai" + }, + "山西省临汾市洪洞县": { + "lon": 111.6675, + "lat": 36.2559, + "tz": "Asia/Shanghai" + }, + "山西省临汾市古县": { + "lon": 111.9141, + "lat": 36.2687, + "tz": "Asia/Shanghai" + }, + "山西省临汾市安泽县": { + "lon": 112.2451, + "lat": 36.1461, + "tz": "Asia/Shanghai" + }, + "山西省临汾市浮山县": { + "lon": 111.8439, + "lat": 35.9716, + "tz": "Asia/Shanghai" + }, + "山西省临汾市吉县": { + "lon": 110.6774, + "lat": 36.0995, + "tz": "Asia/Shanghai" + }, + "山西省临汾市乡宁县": { + "lon": 110.8518, + "lat": 35.9756, + "tz": "Asia/Shanghai" + }, + "山西省临汾市大宁县": { + "lon": 110.7456, + "lat": 36.4638, + "tz": "Asia/Shanghai" + }, + "山西省临汾市隰县": { + "lon": 110.9301, + "lat": 36.6927, + "tz": "Asia/Shanghai" + }, + "山西省临汾市永和县": { + "lon": 110.6259, + "lat": 36.7606, + "tz": "Asia/Shanghai" + }, + "山西省临汾市蒲县": { + "lon": 111.0911, + "lat": 36.4115, + "tz": "Asia/Shanghai" + }, + "山西省临汾市汾西县": { + "lon": 111.5568, + "lat": 36.6534, + "tz": "Asia/Shanghai" + }, + "山西省临汾市侯马市": { + "lon": 111.3649, + "lat": 35.6204, + "tz": "Asia/Shanghai" + }, + "山西省临汾市霍州市": { + "lon": 111.7167, + "lat": 36.5719, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市离石区": { + "lon": 111.1281, + "lat": 37.5232, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市文水县": { + "lon": 112.026, + "lat": 37.4356, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市交城县": { + "lon": 112.1525, + "lat": 37.5544, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市兴县": { + "lon": 111.1183, + "lat": 38.4634, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市临县": { + "lon": 110.9899, + "lat": 37.9602, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市柳林县": { + "lon": 110.8904, + "lat": 37.4312, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市石楼县": { + "lon": 110.8314, + "lat": 36.9992, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市岚县": { + "lon": 111.6651, + "lat": 38.2782, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市方山县": { + "lon": 111.2326, + "lat": 37.892, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市中阳县": { + "lon": 111.187, + "lat": 37.3414, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市交口县": { + "lon": 111.1769, + "lat": 36.9826, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市孝义市": { + "lon": 111.7751, + "lat": 37.144, + "tz": "Asia/Shanghai" + }, + "山西省吕梁市汾阳市": { + "lon": 111.7788, + "lat": 37.2672, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼和浩特市新城区": { + "lon": 111.6792, + "lat": 40.8249, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼和浩特市回民区": { + "lon": 111.6554, + "lat": 40.8139, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼和浩特市玉泉区": { + "lon": 111.6587, + "lat": 40.7981, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼和浩特市赛罕区": { + "lon": 111.6916, + "lat": 40.8065, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼和浩特市土默特左旗": { + "lon": 111.1268, + "lat": 40.7189, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼和浩特市托克托县": { + "lon": 111.1907, + "lat": 40.2755, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼和浩特市和林格尔县": { + "lon": 111.8174, + "lat": 40.3792, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼和浩特市清水河县": { + "lon": 111.6656, + "lat": 39.9115, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼和浩特市武川县": { + "lon": 111.4495, + "lat": 41.0927, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区包头市东河区": { + "lon": 110.021, + "lat": 40.5858, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区包头市昆都仑区": { + "lon": 109.8172, + "lat": 40.6602, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区包头市青山区": { + "lon": 109.8744, + "lat": 40.6675, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区包头市石拐区": { + "lon": 110.2667, + "lat": 40.6708, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区包头市白云鄂博矿区": { + "lon": 109.9643, + "lat": 41.7674, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区包头市九原区": { + "lon": 109.9624, + "lat": 40.5995, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区包头市土默特右旗": { + "lon": 110.5209, + "lat": 40.5653, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区包头市固阳县": { + "lon": 110.0573, + "lat": 41.0283, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区包头市达尔罕茂明安联合旗": { + "lon": 110.4322, + "lat": 41.7007, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌海市海勃湾区": { + "lon": 106.813, + "lat": 39.6726, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌海市海南区": { + "lon": 106.8802, + "lat": 39.4408, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌海市乌达区": { + "lon": 106.718, + "lat": 39.5014, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区赤峰市红山区": { + "lon": 118.9548, + "lat": 42.2677, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区赤峰市元宝山区": { + "lon": 119.2834, + "lat": 42.039, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区赤峰市松山区": { + "lon": 118.9328, + "lat": 42.2791, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区赤峰市阿鲁科尔沁旗": { + "lon": 120.0886, + "lat": 43.8764, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区赤峰市巴林左旗": { + "lon": 119.3848, + "lat": 43.9784, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区赤峰市巴林右旗": { + "lon": 118.6719, + "lat": 43.5268, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区赤峰市林西县": { + "lon": 118.0508, + "lat": 43.6029, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区赤峰市克什克腾旗": { + "lon": 117.5357, + "lat": 43.2541, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区赤峰市翁牛特旗": { + "lon": 119.016, + "lat": 42.9348, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区赤峰市喀喇沁旗": { + "lon": 118.7023, + "lat": 41.9257, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区赤峰市宁城县": { + "lon": 119.3328, + "lat": 41.5965, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区赤峰市敖汉旗": { + "lon": 119.9007, + "lat": 42.2851, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区通辽市科尔沁区": { + "lon": 122.2585, + "lat": 43.615, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区通辽市科尔沁左翼中旗": { + "lon": 123.3076, + "lat": 44.125, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区通辽市科尔沁左翼后旗": { + "lon": 122.3495, + "lat": 42.9521, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区通辽市开鲁县": { + "lon": 121.3029, + "lat": 43.6, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区通辽市库伦旗": { + "lon": 121.7693, + "lat": 42.7325, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区通辽市奈曼旗": { + "lon": 120.6571, + "lat": 42.8447, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区通辽市扎鲁特旗": { + "lon": 120.8997, + "lat": 44.5536, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区通辽市霍林郭勒市": { + "lon": 119.6513, + "lat": 45.5305, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区鄂尔多斯市东胜区": { + "lon": 109.9838, + "lat": 39.8169, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区鄂尔多斯市康巴什区": { + "lon": 109.7844, + "lat": 39.6065, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区鄂尔多斯市达拉特旗": { + "lon": 110.0343, + "lat": 40.4028, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区鄂尔多斯市准格尔旗": { + "lon": 111.2318, + "lat": 39.8641, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区鄂尔多斯市鄂托克前旗": { + "lon": 107.4765, + "lat": 38.1827, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区鄂尔多斯市鄂托克旗": { + "lon": 107.9775, + "lat": 39.0951, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区鄂尔多斯市杭锦旗": { + "lon": 108.7311, + "lat": 39.8308, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区鄂尔多斯市乌审旗": { + "lon": 108.8374, + "lat": 38.5962, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区鄂尔多斯市伊金霍洛旗": { + "lon": 109.7817, + "lat": 39.6033, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市海拉尔区": { + "lon": 119.7576, + "lat": 49.2119, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市扎赉诺尔区": { + "lon": 117.7084, + "lat": 49.4547, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市阿荣旗": { + "lon": 123.4575, + "lat": 48.1283, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市莫力达瓦达斡尔族自治旗": { + "lon": 124.5005, + "lat": 48.4763, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市鄂伦春自治旗": { + "lon": 123.7182, + "lat": 50.5887, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市鄂温克族自治旗": { + "lon": 119.7467, + "lat": 49.1414, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市陈巴尔虎旗": { + "lon": 119.4297, + "lat": 49.3263, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市新巴尔虎左旗": { + "lon": 118.26, + "lat": 48.2147, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市新巴尔虎右旗": { + "lon": 116.8186, + "lat": 48.6674, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市满洲里市": { + "lon": 117.4473, + "lat": 49.5888, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市牙克石市": { + "lon": 120.7224, + "lat": 49.2851, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市扎兰屯市": { + "lon": 122.7381, + "lat": 48.0053, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市额尔古纳市": { + "lon": 120.1714, + "lat": 50.2423, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区呼伦贝尔市根河市": { + "lon": 121.5258, + "lat": 50.7792, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区巴彦淖尔市临河区": { + "lon": 107.4114, + "lat": 40.7556, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区巴彦淖尔市五原县": { + "lon": 108.2654, + "lat": 41.0961, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区巴彦淖尔市磴口县": { + "lon": 107.001, + "lat": 40.3294, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区巴彦淖尔市乌拉特前旗": { + "lon": 108.6517, + "lat": 40.7241, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区巴彦淖尔市乌拉特中旗": { + "lon": 108.51, + "lat": 41.5707, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区巴彦淖尔市乌拉特后旗": { + "lon": 107.0695, + "lat": 41.0826, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区巴彦淖尔市杭锦后旗": { + "lon": 107.1423, + "lat": 40.8873, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌兰察布市集宁区": { + "lon": 113.1092, + "lat": 41.0323, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌兰察布市卓资县": { + "lon": 112.5711, + "lat": 40.8944, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌兰察布市化德县": { + "lon": 114.0032, + "lat": 41.8973, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌兰察布市商都县": { + "lon": 113.5537, + "lat": 41.5583, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌兰察布市兴和县": { + "lon": 113.8273, + "lat": 40.871, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌兰察布市凉城县": { + "lon": 112.4941, + "lat": 40.5304, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌兰察布市察哈尔右翼前旗": { + "lon": 113.2049, + "lat": 40.7854, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌兰察布市察哈尔右翼中旗": { + "lon": 112.6269, + "lat": 41.2726, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌兰察布市察哈尔右翼后旗": { + "lon": 113.1834, + "lat": 41.4452, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌兰察布市四子王旗": { + "lon": 111.6943, + "lat": 41.5262, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区乌兰察布市丰镇市": { + "lon": 113.1563, + "lat": 40.4362, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区兴安盟乌兰浩特市": { + "lon": 122.0628, + "lat": 46.0752, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区兴安盟阿尔山市": { + "lon": 119.9371, + "lat": 47.1751, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区兴安盟科尔沁右翼前旗": { + "lon": 121.9517, + "lat": 46.0748, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区兴安盟科尔沁右翼中旗": { + "lon": 121.4667, + "lat": 45.0576, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区兴安盟扎赉特旗": { + "lon": 122.9033, + "lat": 46.7234, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区兴安盟突泉县": { + "lon": 121.559, + "lat": 45.3791, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区锡林郭勒盟二连浩特市": { + "lon": 111.9726, + "lat": 43.6509, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区锡林郭勒盟锡林浩特市": { + "lon": 116.085, + "lat": 43.9421, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区锡林郭勒盟阿巴嘎旗": { + "lon": 114.9639, + "lat": 44.0209, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区锡林郭勒盟苏尼特左旗": { + "lon": 113.6462, + "lat": 43.8522, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区锡林郭勒盟苏尼特右旗": { + "lon": 112.6484, + "lat": 42.7448, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区锡林郭勒盟东乌珠穆沁旗": { + "lon": 116.9731, + "lat": 45.5085, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区锡林郭勒盟西乌珠穆沁旗": { + "lon": 117.6084, + "lat": 44.5845, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区锡林郭勒盟太仆寺旗": { + "lon": 115.2807, + "lat": 41.8931, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区锡林郭勒盟镶黄旗": { + "lon": 113.837, + "lat": 42.2373, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区锡林郭勒盟正镶白旗": { + "lon": 115.0247, + "lat": 42.2847, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区锡林郭勒盟正蓝旗": { + "lon": 115.9969, + "lat": 42.2439, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区锡林郭勒盟多伦县": { + "lon": 116.4709, + "lat": 42.1958, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区阿拉善盟阿拉善左旗": { + "lon": 105.6977, + "lat": 38.8467, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区阿拉善盟阿拉善右旗": { + "lon": 101.67, + "lat": 39.211, + "tz": "Asia/Shanghai" + }, + "内蒙古自治区阿拉善盟额济纳旗": { + "lon": 101.0672, + "lat": 41.9569, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市和平区": { + "lon": 123.4005, + "lat": 41.7856, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市沈河区": { + "lon": 123.4396, + "lat": 41.7932, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市大东区": { + "lon": 123.4639, + "lat": 41.8061, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市皇姑区": { + "lon": 123.3995, + "lat": 41.8199, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市铁西区": { + "lon": 123.3446, + "lat": 41.7854, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市苏家屯区": { + "lon": 123.3356, + "lat": 41.6635, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市浑南区": { + "lon": 123.4529, + "lat": 41.7396, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市沈北新区": { + "lon": 123.5156, + "lat": 42.0501, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市于洪区": { + "lon": 123.3049, + "lat": 41.7935, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市辽中区": { + "lon": 122.7259, + "lat": 41.5105, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市康平县": { + "lon": 123.3465, + "lat": 42.7391, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市法库县": { + "lon": 123.4105, + "lat": 42.5046, + "tz": "Asia/Shanghai" + }, + "辽宁省沈阳市新民市": { + "lon": 122.8235, + "lat": 41.9944, + "tz": "Asia/Shanghai" + }, + "辽宁省大连市中山区": { + "lon": 121.6388, + "lat": 38.9207, + "tz": "Asia/Shanghai" + }, + "辽宁省大连市西岗区": { + "lon": 121.6112, + "lat": 38.9135, + "tz": "Asia/Shanghai" + }, + "辽宁省大连市沙河口区": { + "lon": 121.5888, + "lat": 38.9121, + "tz": "Asia/Shanghai" + }, + "辽宁省大连市甘井子区": { + "lon": 121.5777, + "lat": 38.9743, + "tz": "Asia/Shanghai" + }, + "辽宁省大连市旅顺口区": { + "lon": 121.262, + "lat": 38.8111, + "tz": "Asia/Shanghai" + }, + "辽宁省大连市金州区": { + "lon": 121.7843, + "lat": 39.0517, + "tz": "Asia/Shanghai" + }, + "辽宁省大连市普兰店区": { + "lon": 121.9655, + "lat": 39.4004, + "tz": "Asia/Shanghai" + }, + "辽宁省大连市长海县": { + "lon": 122.583, + "lat": 39.2714, + "tz": "Asia/Shanghai" + }, + "辽宁省大连市瓦房店市": { + "lon": 121.9975, + "lat": 39.6293, + "tz": "Asia/Shanghai" + }, + "辽宁省大连市庄河市": { + "lon": 122.9654, + "lat": 39.697, + "tz": "Asia/Shanghai" + }, + "辽宁省鞍山市铁东区": { + "lon": 122.989, + "lat": 41.1084, + "tz": "Asia/Shanghai" + }, + "辽宁省鞍山市铁西区": { + "lon": 122.9665, + "lat": 41.1088, + "tz": "Asia/Shanghai" + }, + "辽宁省鞍山市立山区": { + "lon": 123.0192, + "lat": 41.1486, + "tz": "Asia/Shanghai" + }, + "辽宁省鞍山市千山区": { + "lon": 122.944, + "lat": 41.0672, + "tz": "Asia/Shanghai" + }, + "辽宁省鞍山市台安县": { + "lon": 122.4243, + "lat": 41.3846, + "tz": "Asia/Shanghai" + }, + "辽宁省鞍山市岫岩满族自治县": { + "lon": 123.2827, + "lat": 40.2801, + "tz": "Asia/Shanghai" + }, + "辽宁省鞍山市海城市": { + "lon": 122.7469, + "lat": 40.8508, + "tz": "Asia/Shanghai" + }, + "辽宁省抚顺市新抚区": { + "lon": 123.8972, + "lat": 41.8587, + "tz": "Asia/Shanghai" + }, + "辽宁省抚顺市东洲区": { + "lon": 124.0412, + "lat": 41.8644, + "tz": "Asia/Shanghai" + }, + "辽宁省抚顺市望花区": { + "lon": 123.7956, + "lat": 41.8496, + "tz": "Asia/Shanghai" + }, + "辽宁省抚顺市顺城区": { + "lon": 123.9115, + "lat": 41.879, + "tz": "Asia/Shanghai" + }, + "辽宁省抚顺市抚顺县": { + "lon": 124.0918, + "lat": 41.9202, + "tz": "Asia/Shanghai" + }, + "辽宁省抚顺市新宾满族自治县": { + "lon": 125.0314, + "lat": 41.7301, + "tz": "Asia/Shanghai" + }, + "辽宁省抚顺市清原满族自治县": { + "lon": 124.9214, + "lat": 42.0992, + "tz": "Asia/Shanghai" + }, + "辽宁省本溪市平山区": { + "lon": 123.7553, + "lat": 41.2895, + "tz": "Asia/Shanghai" + }, + "辽宁省本溪市溪湖区": { + "lon": 123.7593, + "lat": 41.3279, + "tz": "Asia/Shanghai" + }, + "辽宁省本溪市明山区": { + "lon": 123.7574, + "lat": 41.3003, + "tz": "Asia/Shanghai" + }, + "辽宁省本溪市南芬区": { + "lon": 123.7425, + "lat": 41.1021, + "tz": "Asia/Shanghai" + }, + "辽宁省本溪市本溪满族自治县": { + "lon": 124.1201, + "lat": 41.2981, + "tz": "Asia/Shanghai" + }, + "辽宁省本溪市桓仁满族自治县": { + "lon": 125.353, + "lat": 41.2667, + "tz": "Asia/Shanghai" + }, + "辽宁省丹东市元宝区": { + "lon": 124.392, + "lat": 40.1349, + "tz": "Asia/Shanghai" + }, + "辽宁省丹东市振兴区": { + "lon": 124.3554, + "lat": 40.1012, + "tz": "Asia/Shanghai" + }, + "辽宁省丹东市振安区": { + "lon": 124.4219, + "lat": 40.157, + "tz": "Asia/Shanghai" + }, + "辽宁省丹东市宽甸满族自治县": { + "lon": 124.7791, + "lat": 40.7288, + "tz": "Asia/Shanghai" + }, + "辽宁省丹东市东港市": { + "lon": 124.1436, + "lat": 39.8819, + "tz": "Asia/Shanghai" + }, + "辽宁省丹东市凤城市": { + "lon": 124.0651, + "lat": 40.4559, + "tz": "Asia/Shanghai" + }, + "辽宁省锦州市古塔区": { + "lon": 121.1244, + "lat": 41.1137, + "tz": "Asia/Shanghai" + }, + "辽宁省锦州市凌河区": { + "lon": 121.1457, + "lat": 41.1126, + "tz": "Asia/Shanghai" + }, + "辽宁省锦州市太和区": { + "lon": 121.1016, + "lat": 41.1033, + "tz": "Asia/Shanghai" + }, + "辽宁省锦州市黑山县": { + "lon": 122.1123, + "lat": 41.6894, + "tz": "Asia/Shanghai" + }, + "辽宁省锦州市义县": { + "lon": 121.2373, + "lat": 41.5351, + "tz": "Asia/Shanghai" + }, + "辽宁省锦州市凌海市": { + "lon": 121.3586, + "lat": 41.1696, + "tz": "Asia/Shanghai" + }, + "辽宁省锦州市北镇市": { + "lon": 121.7906, + "lat": 41.5966, + "tz": "Asia/Shanghai" + }, + "辽宁省营口市站前区": { + "lon": 122.2481, + "lat": 40.6684, + "tz": "Asia/Shanghai" + }, + "辽宁省营口市西市区": { + "lon": 122.2048, + "lat": 40.6615, + "tz": "Asia/Shanghai" + }, + "辽宁省营口市鲅鱼圈区": { + "lon": 122.1219, + "lat": 40.2621, + "tz": "Asia/Shanghai" + }, + "辽宁省营口市老边区": { + "lon": 122.3772, + "lat": 40.681, + "tz": "Asia/Shanghai" + }, + "辽宁省营口市盖州市": { + "lon": 122.3502, + "lat": 40.4037, + "tz": "Asia/Shanghai" + }, + "辽宁省营口市大石桥市": { + "lon": 122.5007, + "lat": 40.6324, + "tz": "Asia/Shanghai" + }, + "辽宁省阜新市海州区": { + "lon": 121.6523, + "lat": 42.0091, + "tz": "Asia/Shanghai" + }, + "辽宁省阜新市新邱区": { + "lon": 121.7851, + "lat": 42.0844, + "tz": "Asia/Shanghai" + }, + "辽宁省阜新市太平区": { + "lon": 121.6722, + "lat": 42.009, + "tz": "Asia/Shanghai" + }, + "辽宁省阜新市清河门区": { + "lon": 121.4144, + "lat": 41.7781, + "tz": "Asia/Shanghai" + }, + "辽宁省阜新市细河区": { + "lon": 121.6494, + "lat": 42.0171, + "tz": "Asia/Shanghai" + }, + "辽宁省阜新市阜新蒙古族自治县": { + "lon": 121.7376, + "lat": 42.0564, + "tz": "Asia/Shanghai" + }, + "辽宁省阜新市彰武县": { + "lon": 122.5322, + "lat": 42.3827, + "tz": "Asia/Shanghai" + }, + "辽宁省辽阳市白塔区": { + "lon": 123.1668, + "lat": 41.2653, + "tz": "Asia/Shanghai" + }, + "辽宁省辽阳市文圣区": { + "lon": 123.1824, + "lat": 41.2646, + "tz": "Asia/Shanghai" + }, + "辽宁省辽阳市宏伟区": { + "lon": 123.1947, + "lat": 41.2037, + "tz": "Asia/Shanghai" + }, + "辽宁省辽阳市弓长岭区": { + "lon": 123.4256, + "lat": 41.1557, + "tz": "Asia/Shanghai" + }, + "辽宁省辽阳市太子河区": { + "lon": 123.1795, + "lat": 41.2496, + "tz": "Asia/Shanghai" + }, + "辽宁省辽阳市辽阳县": { + "lon": 123.0738, + "lat": 41.2143, + "tz": "Asia/Shanghai" + }, + "辽宁省辽阳市灯塔市": { + "lon": 123.32, + "lat": 41.4256, + "tz": "Asia/Shanghai" + }, + "辽宁省盘锦市双台子区": { + "lon": 122.0503, + "lat": 41.1883, + "tz": "Asia/Shanghai" + }, + "辽宁省盘锦市兴隆台区": { + "lon": 122.0661, + "lat": 41.1203, + "tz": "Asia/Shanghai" + }, + "辽宁省盘锦市大洼区": { + "lon": 122.0662, + "lat": 40.9924, + "tz": "Asia/Shanghai" + }, + "辽宁省盘锦市盘山县": { + "lon": 121.98, + "lat": 41.2387, + "tz": "Asia/Shanghai" + }, + "辽宁省铁岭市银州区": { + "lon": 123.839, + "lat": 42.2902, + "tz": "Asia/Shanghai" + }, + "辽宁省铁岭市清河区": { + "lon": 124.1428, + "lat": 42.5406, + "tz": "Asia/Shanghai" + }, + "辽宁省铁岭市铁岭县": { + "lon": 123.7197, + "lat": 42.2211, + "tz": "Asia/Shanghai" + }, + "辽宁省铁岭市西丰县": { + "lon": 124.7173, + "lat": 42.7358, + "tz": "Asia/Shanghai" + }, + "辽宁省铁岭市昌图县": { + "lon": 124.1039, + "lat": 42.7819, + "tz": "Asia/Shanghai" + }, + "辽宁省铁岭市调兵山市": { + "lon": 123.5395, + "lat": 42.4486, + "tz": "Asia/Shanghai" + }, + "辽宁省铁岭市开原市": { + "lon": 124.0394, + "lat": 42.5398, + "tz": "Asia/Shanghai" + }, + "辽宁省朝阳市双塔区": { + "lon": 120.4431, + "lat": 41.5771, + "tz": "Asia/Shanghai" + }, + "辽宁省朝阳市龙城区": { + "lon": 120.4076, + "lat": 41.5744, + "tz": "Asia/Shanghai" + }, + "辽宁省朝阳市朝阳县": { + "lon": 120.3984, + "lat": 41.524, + "tz": "Asia/Shanghai" + }, + "辽宁省朝阳市建平县": { + "lon": 119.6364, + "lat": 41.4007, + "tz": "Asia/Shanghai" + }, + "辽宁省朝阳市喀喇沁左翼蒙古族自治县": { + "lon": 119.7388, + "lat": 41.1236, + "tz": "Asia/Shanghai" + }, + "辽宁省朝阳市北票市": { + "lon": 120.7615, + "lat": 41.8011, + "tz": "Asia/Shanghai" + }, + "辽宁省朝阳市凌源市": { + "lon": 119.3983, + "lat": 41.2409, + "tz": "Asia/Shanghai" + }, + "辽宁省葫芦岛市连山区": { + "lon": 120.8542, + "lat": 40.7537, + "tz": "Asia/Shanghai" + }, + "辽宁省葫芦岛市龙港区": { + "lon": 120.8334, + "lat": 40.7085, + "tz": "Asia/Shanghai" + }, + "辽宁省葫芦岛市南票区": { + "lon": 120.7469, + "lat": 41.0969, + "tz": "Asia/Shanghai" + }, + "辽宁省葫芦岛市绥中县": { + "lon": 120.3366, + "lat": 40.3269, + "tz": "Asia/Shanghai" + }, + "辽宁省葫芦岛市建昌县": { + "lon": 119.8019, + "lat": 40.8113, + "tz": "Asia/Shanghai" + }, + "辽宁省葫芦岛市兴城市": { + "lon": 120.7241, + "lat": 40.6179, + "tz": "Asia/Shanghai" + }, + "吉林省长春市南关区": { + "lon": 125.3307, + "lat": 43.8878, + "tz": "Asia/Shanghai" + }, + "吉林省长春市宽城区": { + "lon": 125.3363, + "lat": 43.9014, + "tz": "Asia/Shanghai" + }, + "吉林省长春市朝阳区": { + "lon": 125.3116, + "lat": 43.8625, + "tz": "Asia/Shanghai" + }, + "吉林省长春市二道区": { + "lon": 125.3781, + "lat": 43.8683, + "tz": "Asia/Shanghai" + }, + "吉林省长春市绿园区": { + "lon": 125.2661, + "lat": 43.8898, + "tz": "Asia/Shanghai" + }, + "吉林省长春市双阳区": { + "lon": 125.6529, + "lat": 43.5228, + "tz": "Asia/Shanghai" + }, + "吉林省长春市九台区": { + "lon": 125.8385, + "lat": 44.1551, + "tz": "Asia/Shanghai" + }, + "吉林省长春市农安县": { + "lon": 125.1687, + "lat": 44.4291, + "tz": "Asia/Shanghai" + }, + "吉林省长春市榆树市": { + "lon": 126.5443, + "lat": 44.8257, + "tz": "Asia/Shanghai" + }, + "吉林省长春市德惠市": { + "lon": 125.697, + "lat": 44.5319, + "tz": "Asia/Shanghai" + }, + "吉林省长春市公主岭市": { + "lon": 124.8115, + "lat": 43.5071, + "tz": "Asia/Shanghai" + }, + "吉林省吉林市昌邑区": { + "lon": 126.5651, + "lat": 43.8489, + "tz": "Asia/Shanghai" + }, + "吉林省吉林市龙潭区": { + "lon": 126.5557, + "lat": 43.9076, + "tz": "Asia/Shanghai" + }, + "吉林省吉林市船营区": { + "lon": 126.5467, + "lat": 43.8415, + "tz": "Asia/Shanghai" + }, + "吉林省吉林市丰满区": { + "lon": 126.5551, + "lat": 43.8143, + "tz": "Asia/Shanghai" + }, + "吉林省吉林市永吉县": { + "lon": 126.4958, + "lat": 43.6649, + "tz": "Asia/Shanghai" + }, + "吉林省吉林市蛟河市": { + "lon": 127.3364, + "lat": 43.718, + "tz": "Asia/Shanghai" + }, + "吉林省吉林市桦甸市": { + "lon": 126.7397, + "lat": 42.9697, + "tz": "Asia/Shanghai" + }, + "吉林省吉林市舒兰市": { + "lon": 126.942, + "lat": 44.409, + "tz": "Asia/Shanghai" + }, + "吉林省吉林市磐石市": { + "lon": 126.0538, + "lat": 42.9399, + "tz": "Asia/Shanghai" + }, + "吉林省四平市铁西区": { + "lon": 124.3547, + "lat": 43.1737, + "tz": "Asia/Shanghai" + }, + "吉林省四平市铁东区": { + "lon": 124.3822, + "lat": 43.1646, + "tz": "Asia/Shanghai" + }, + "吉林省四平市梨树县": { + "lon": 124.3296, + "lat": 43.3057, + "tz": "Asia/Shanghai" + }, + "吉林省四平市伊通满族自治县": { + "lon": 125.2968, + "lat": 43.3429, + "tz": "Asia/Shanghai" + }, + "吉林省四平市双辽市": { + "lon": 123.4991, + "lat": 43.5158, + "tz": "Asia/Shanghai" + }, + "吉林省辽源市龙山区": { + "lon": 125.1388, + "lat": 42.9002, + "tz": "Asia/Shanghai" + }, + "吉林省辽源市西安区": { + "lon": 125.145, + "lat": 42.9179, + "tz": "Asia/Shanghai" + }, + "吉林省辽源市东丰县": { + "lon": 125.5235, + "lat": 42.673, + "tz": "Asia/Shanghai" + }, + "吉林省辽源市东辽县": { + "lon": 124.9859, + "lat": 42.9254, + "tz": "Asia/Shanghai" + }, + "吉林省通化市东昌区": { + "lon": 125.9311, + "lat": 41.7191, + "tz": "Asia/Shanghai" + }, + "吉林省通化市二道江区": { + "lon": 126.04, + "lat": 41.7751, + "tz": "Asia/Shanghai" + }, + "吉林省通化市通化县": { + "lon": 125.7471, + "lat": 41.6756, + "tz": "Asia/Shanghai" + }, + "吉林省通化市辉南县": { + "lon": 126.0367, + "lat": 42.681, + "tz": "Asia/Shanghai" + }, + "吉林省通化市柳河县": { + "lon": 125.7345, + "lat": 42.2792, + "tz": "Asia/Shanghai" + }, + "吉林省通化市梅河口市": { + "lon": 125.6813, + "lat": 42.5278, + "tz": "Asia/Shanghai" + }, + "吉林省通化市集安市": { + "lon": 126.1805, + "lat": 41.1242, + "tz": "Asia/Shanghai" + }, + "吉林省白山市浑江区": { + "lon": 126.4222, + "lat": 41.9406, + "tz": "Asia/Shanghai" + }, + "吉林省白山市江源区": { + "lon": 126.5789, + "lat": 42.046, + "tz": "Asia/Shanghai" + }, + "吉林省白山市抚松县": { + "lon": 127.2679, + "lat": 42.3303, + "tz": "Asia/Shanghai" + }, + "吉林省白山市靖宇县": { + "lon": 126.8027, + "lat": 42.3874, + "tz": "Asia/Shanghai" + }, + "吉林省白山市长白朝鲜族自治县": { + "lon": 128.1975, + "lat": 41.417, + "tz": "Asia/Shanghai" + }, + "吉林省白山市临江市": { + "lon": 126.9139, + "lat": 41.8085, + "tz": "Asia/Shanghai" + }, + "吉林省松原市宁江区": { + "lon": 124.8216, + "lat": 45.1745, + "tz": "Asia/Shanghai" + }, + "吉林省松原市前郭尔罗斯蒙古族自治县": { + "lon": 124.8205, + "lat": 45.1143, + "tz": "Asia/Shanghai" + }, + "吉林省松原市长岭县": { + "lon": 123.979, + "lat": 44.2746, + "tz": "Asia/Shanghai" + }, + "吉林省松原市乾安县": { + "lon": 124.0179, + "lat": 45.0048, + "tz": "Asia/Shanghai" + }, + "吉林省松原市扶余市": { + "lon": 126.0363, + "lat": 44.984, + "tz": "Asia/Shanghai" + }, + "吉林省白城市洮北区": { + "lon": 122.8366, + "lat": 45.6173, + "tz": "Asia/Shanghai" + }, + "吉林省白城市镇赉县": { + "lon": 123.1958, + "lat": 45.8441, + "tz": "Asia/Shanghai" + }, + "吉林省白城市通榆县": { + "lon": 123.0822, + "lat": 44.807, + "tz": "Asia/Shanghai" + }, + "吉林省白城市洮南市": { + "lon": 122.7779, + "lat": 45.3371, + "tz": "Asia/Shanghai" + }, + "吉林省白城市大安市": { + "lon": 124.2851, + "lat": 45.5055, + "tz": "Asia/Shanghai" + }, + "吉林省延边朝鲜族自治州延吉市": { + "lon": 129.5089, + "lat": 42.9045, + "tz": "Asia/Shanghai" + }, + "吉林省延边朝鲜族自治州图们市": { + "lon": 129.8398, + "lat": 42.9642, + "tz": "Asia/Shanghai" + }, + "吉林省延边朝鲜族自治州敦化市": { + "lon": 128.2237, + "lat": 43.3643, + "tz": "Asia/Shanghai" + }, + "吉林省延边朝鲜族自治州珲春市": { + "lon": 130.3586, + "lat": 42.8684, + "tz": "Asia/Shanghai" + }, + "吉林省延边朝鲜族自治州龙井市": { + "lon": 129.4186, + "lat": 42.7684, + "tz": "Asia/Shanghai" + }, + "吉林省延边朝鲜族自治州和龙市": { + "lon": 129.0022, + "lat": 42.5446, + "tz": "Asia/Shanghai" + }, + "吉林省延边朝鲜族自治州汪清县": { + "lon": 129.7591, + "lat": 43.3128, + "tz": "Asia/Shanghai" + }, + "吉林省延边朝鲜族自治州安图县": { + "lon": 128.8956, + "lat": 43.1086, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市道里区": { + "lon": 126.6066, + "lat": 45.7601, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市南岗区": { + "lon": 126.6461, + "lat": 45.754, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市道外区": { + "lon": 126.6429, + "lat": 45.7826, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市平房区": { + "lon": 126.6233, + "lat": 45.6036, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市松北区": { + "lon": 126.5571, + "lat": 45.8127, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市香坊区": { + "lon": 126.661, + "lat": 45.7111, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市呼兰区": { + "lon": 126.5974, + "lat": 45.9824, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市阿城区": { + "lon": 126.9666, + "lat": 45.5363, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市双城区": { + "lon": 126.3025, + "lat": 45.3758, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市依兰县": { + "lon": 129.5582, + "lat": 46.3132, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市方正县": { + "lon": 128.8294, + "lat": 45.8375, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市宾县": { + "lon": 127.4793, + "lat": 45.7572, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市巴彦县": { + "lon": 127.3968, + "lat": 46.0797, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市木兰县": { + "lon": 128.036, + "lat": 45.9476, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市通河县": { + "lon": 128.741, + "lat": 45.9755, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市延寿县": { + "lon": 128.3253, + "lat": 45.4534, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市尚志市": { + "lon": 127.9623, + "lat": 45.2129, + "tz": "Asia/Shanghai" + }, + "黑龙江省哈尔滨市五常市": { + "lon": 127.1511, + "lat": 44.9172, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市龙沙区": { + "lon": 123.9507, + "lat": 47.3397, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市建华区": { + "lon": 123.9493, + "lat": 47.3524, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市铁锋区": { + "lon": 123.9669, + "lat": 47.3374, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市昂昂溪区": { + "lon": 123.8065, + "lat": 47.1548, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市富拉尔基区": { + "lon": 123.6323, + "lat": 47.205, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市碾子山区": { + "lon": 122.8819, + "lat": 47.512, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市梅里斯达斡尔族区": { + "lon": 123.7478, + "lat": 47.3089, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市龙江县": { + "lon": 123.1805, + "lat": 47.3341, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市依安县": { + "lon": 125.3004, + "lat": 47.8878, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市泰来县": { + "lon": 123.4127, + "lat": 46.3903, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市甘南县": { + "lon": 123.4991, + "lat": 47.9157, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市富裕县": { + "lon": 124.4622, + "lat": 47.7948, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市克山县": { + "lon": 125.8677, + "lat": 48.0323, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市克东县": { + "lon": 126.2424, + "lat": 48.0351, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市拜泉县": { + "lon": 126.0849, + "lat": 47.6049, + "tz": "Asia/Shanghai" + }, + "黑龙江省齐齐哈尔市讷河市": { + "lon": 124.8754, + "lat": 48.4793, + "tz": "Asia/Shanghai" + }, + "黑龙江省鸡西市鸡冠区": { + "lon": 130.9669, + "lat": 45.2982, + "tz": "Asia/Shanghai" + }, + "黑龙江省鸡西市恒山区": { + "lon": 130.9034, + "lat": 45.2112, + "tz": "Asia/Shanghai" + }, + "黑龙江省鸡西市滴道区": { + "lon": 130.8395, + "lat": 45.3467, + "tz": "Asia/Shanghai" + }, + "黑龙江省鸡西市梨树区": { + "lon": 130.6905, + "lat": 45.09, + "tz": "Asia/Shanghai" + }, + "黑龙江省鸡西市城子河区": { + "lon": 131.0029, + "lat": 45.336, + "tz": "Asia/Shanghai" + }, + "黑龙江省鸡西市麻山区": { + "lon": 130.4736, + "lat": 45.2073, + "tz": "Asia/Shanghai" + }, + "黑龙江省鸡西市鸡东县": { + "lon": 131.141, + "lat": 45.2485, + "tz": "Asia/Shanghai" + }, + "黑龙江省鸡西市虎林市": { + "lon": 132.9668, + "lat": 45.7658, + "tz": "Asia/Shanghai" + }, + "黑龙江省鸡西市密山市": { + "lon": 131.8668, + "lat": 45.5451, + "tz": "Asia/Shanghai" + }, + "黑龙江省鹤岗市向阳区": { + "lon": 130.2847, + "lat": 47.3429, + "tz": "Asia/Shanghai" + }, + "黑龙江省鹤岗市工农区": { + "lon": 130.2688, + "lat": 47.3293, + "tz": "Asia/Shanghai" + }, + "黑龙江省鹤岗市南山区": { + "lon": 130.2677, + "lat": 47.3108, + "tz": "Asia/Shanghai" + }, + "黑龙江省鹤岗市兴安区": { + "lon": 130.2284, + "lat": 47.2505, + "tz": "Asia/Shanghai" + }, + "黑龙江省鹤岗市东山区": { + "lon": 130.3093, + "lat": 47.3349, + "tz": "Asia/Shanghai" + }, + "黑龙江省鹤岗市兴山区": { + "lon": 130.2975, + "lat": 47.3575, + "tz": "Asia/Shanghai" + }, + "黑龙江省鹤岗市萝北县": { + "lon": 130.8212, + "lat": 47.5752, + "tz": "Asia/Shanghai" + }, + "黑龙江省鹤岗市绥滨县": { + "lon": 131.8528, + "lat": 47.2876, + "tz": "Asia/Shanghai" + }, + "黑龙江省双鸭山市尖山区": { + "lon": 131.1508, + "lat": 46.6407, + "tz": "Asia/Shanghai" + }, + "黑龙江省双鸭山市岭东区": { + "lon": 131.1556, + "lat": 46.5889, + "tz": "Asia/Shanghai" + }, + "黑龙江省双鸭山市四方台区": { + "lon": 131.3251, + "lat": 46.5922, + "tz": "Asia/Shanghai" + }, + "黑龙江省双鸭山市宝山区": { + "lon": 131.3961, + "lat": 46.5711, + "tz": "Asia/Shanghai" + }, + "黑龙江省双鸭山市集贤县": { + "lon": 131.1312, + "lat": 46.7267, + "tz": "Asia/Shanghai" + }, + "黑龙江省双鸭山市友谊县": { + "lon": 131.8028, + "lat": 46.773, + "tz": "Asia/Shanghai" + }, + "黑龙江省双鸭山市宝清县": { + "lon": 132.1989, + "lat": 46.3266, + "tz": "Asia/Shanghai" + }, + "黑龙江省双鸭山市饶河县": { + "lon": 134.0137, + "lat": 46.799, + "tz": "Asia/Shanghai" + }, + "黑龙江省大庆市萨尔图区": { + "lon": 125.1076, + "lat": 46.5943, + "tz": "Asia/Shanghai" + }, + "黑龙江省大庆市龙凤区": { + "lon": 125.1388, + "lat": 46.5719, + "tz": "Asia/Shanghai" + }, + "黑龙江省大庆市让胡路区": { + "lon": 124.8619, + "lat": 46.6515, + "tz": "Asia/Shanghai" + }, + "黑龙江省大庆市红岗区": { + "lon": 124.8831, + "lat": 46.4013, + "tz": "Asia/Shanghai" + }, + "黑龙江省大庆市大同区": { + "lon": 124.812, + "lat": 46.0324, + "tz": "Asia/Shanghai" + }, + "黑龙江省大庆市肇州县": { + "lon": 125.2666, + "lat": 45.7066, + "tz": "Asia/Shanghai" + }, + "黑龙江省大庆市肇源县": { + "lon": 125.0751, + "lat": 45.5166, + "tz": "Asia/Shanghai" + }, + "黑龙江省大庆市林甸县": { + "lon": 124.8712, + "lat": 47.1844, + "tz": "Asia/Shanghai" + }, + "黑龙江省大庆市杜尔伯特蒙古族自治县": { + "lon": 124.4394, + "lat": 46.8638, + "tz": "Asia/Shanghai" + }, + "黑龙江省伊春市伊美区": { + "lon": 128.9003, + "lat": 47.726, + "tz": "Asia/Shanghai" + }, + "黑龙江省伊春市乌翠区": { + "lon": 128.663, + "lat": 47.7245, + "tz": "Asia/Shanghai" + }, + "黑龙江省伊春市友好区": { + "lon": 128.8337, + "lat": 47.8515, + "tz": "Asia/Shanghai" + }, + "黑龙江省伊春市嘉荫县": { + "lon": 130.3893, + "lat": 48.889, + "tz": "Asia/Shanghai" + }, + "黑龙江省伊春市汤旺县": { + "lon": 129.5633, + "lat": 48.4526, + "tz": "Asia/Shanghai" + }, + "黑龙江省伊春市丰林县": { + "lon": 129.5257, + "lat": 48.2883, + "tz": "Asia/Shanghai" + }, + "黑龙江省伊春市大箐山县": { + "lon": 129.0135, + "lat": 47.0261, + "tz": "Asia/Shanghai" + }, + "黑龙江省伊春市南岔县": { + "lon": 129.2749, + "lat": 47.135, + "tz": "Asia/Shanghai" + }, + "黑龙江省伊春市金林区": { + "lon": 129.4211, + "lat": 47.4105, + "tz": "Asia/Shanghai" + }, + "黑龙江省伊春市铁力市": { + "lon": 128.0237, + "lat": 46.9835, + "tz": "Asia/Shanghai" + }, + "黑龙江省佳木斯市向阳区": { + "lon": 130.3539, + "lat": 46.8074, + "tz": "Asia/Shanghai" + }, + "黑龙江省佳木斯市前进区": { + "lon": 130.3698, + "lat": 46.81, + "tz": "Asia/Shanghai" + }, + "黑龙江省佳木斯市东风区": { + "lon": 130.3953, + "lat": 46.8201, + "tz": "Asia/Shanghai" + }, + "黑龙江省佳木斯市郊区": { + "lon": 130.3437, + "lat": 46.8048, + "tz": "Asia/Shanghai" + }, + "黑龙江省佳木斯市桦南县": { + "lon": 130.5627, + "lat": 46.2382, + "tz": "Asia/Shanghai" + }, + "黑龙江省佳木斯市桦川县": { + "lon": 130.7159, + "lat": 47.0208, + "tz": "Asia/Shanghai" + }, + "黑龙江省佳木斯市汤原县": { + "lon": 129.897, + "lat": 46.7281, + "tz": "Asia/Shanghai" + }, + "黑龙江省佳木斯市同江市": { + "lon": 132.5026, + "lat": 47.6486, + "tz": "Asia/Shanghai" + }, + "黑龙江省佳木斯市富锦市": { + "lon": 132.03, + "lat": 47.2482, + "tz": "Asia/Shanghai" + }, + "黑龙江省佳木斯市抚远市": { + "lon": 134.2868, + "lat": 48.3623, + "tz": "Asia/Shanghai" + }, + "黑龙江省七台河市新兴区": { + "lon": 130.8821, + "lat": 45.7922, + "tz": "Asia/Shanghai" + }, + "黑龙江省七台河市桃山区": { + "lon": 131.0081, + "lat": 45.769, + "tz": "Asia/Shanghai" + }, + "黑龙江省七台河市茄子河区": { + "lon": 131.0636, + "lat": 45.7742, + "tz": "Asia/Shanghai" + }, + "黑龙江省七台河市勃利县": { + "lon": 130.5678, + "lat": 45.7495, + "tz": "Asia/Shanghai" + }, + "黑龙江省牡丹江市东安区": { + "lon": 129.6162, + "lat": 44.5805, + "tz": "Asia/Shanghai" + }, + "黑龙江省牡丹江市阳明区": { + "lon": 129.6276, + "lat": 44.5944, + "tz": "Asia/Shanghai" + }, + "黑龙江省牡丹江市爱民区": { + "lon": 129.5942, + "lat": 44.5935, + "tz": "Asia/Shanghai" + }, + "黑龙江省牡丹江市西安区": { + "lon": 129.6061, + "lat": 44.5791, + "tz": "Asia/Shanghai" + }, + "黑龙江省牡丹江市林口县": { + "lon": 130.261, + "lat": 45.2844, + "tz": "Asia/Shanghai" + }, + "黑龙江省牡丹江市绥芬河市": { + "lon": 131.1572, + "lat": 44.3945, + "tz": "Asia/Shanghai" + }, + "黑龙江省牡丹江市海林市": { + "lon": 129.3805, + "lat": 44.5719, + "tz": "Asia/Shanghai" + }, + "黑龙江省牡丹江市宁安市": { + "lon": 129.4627, + "lat": 44.3445, + "tz": "Asia/Shanghai" + }, + "黑龙江省牡丹江市穆棱市": { + "lon": 130.5198, + "lat": 44.9176, + "tz": "Asia/Shanghai" + }, + "黑龙江省牡丹江市东宁市": { + "lon": 131.1176, + "lat": 44.061, + "tz": "Asia/Shanghai" + }, + "黑龙江省黑河市爱辉区": { + "lon": 127.4902, + "lat": 50.2473, + "tz": "Asia/Shanghai" + }, + "黑龙江省黑河市逊克县": { + "lon": 128.4687, + "lat": 49.5807, + "tz": "Asia/Shanghai" + }, + "黑龙江省黑河市孙吴县": { + "lon": 127.32, + "lat": 49.4217, + "tz": "Asia/Shanghai" + }, + "黑龙江省黑河市北安市": { + "lon": 126.5021, + "lat": 48.2433, + "tz": "Asia/Shanghai" + }, + "黑龙江省黑河市五大连池市": { + "lon": 126.1908, + "lat": 48.5105, + "tz": "Asia/Shanghai" + }, + "黑龙江省黑河市嫩江市": { + "lon": 125.2226, + "lat": 49.1753, + "tz": "Asia/Shanghai" + }, + "黑龙江省绥化市北林区": { + "lon": 126.9843, + "lat": 46.633, + "tz": "Asia/Shanghai" + }, + "黑龙江省绥化市望奎县": { + "lon": 126.4777, + "lat": 46.8314, + "tz": "Asia/Shanghai" + }, + "黑龙江省绥化市兰西县": { + "lon": 126.283, + "lat": 46.2571, + "tz": "Asia/Shanghai" + }, + "黑龙江省绥化市青冈县": { + "lon": 126.1055, + "lat": 46.6844, + "tz": "Asia/Shanghai" + }, + "黑龙江省绥化市庆安县": { + "lon": 127.5033, + "lat": 46.8771, + "tz": "Asia/Shanghai" + }, + "黑龙江省绥化市明水县": { + "lon": 125.9011, + "lat": 47.1815, + "tz": "Asia/Shanghai" + }, + "黑龙江省绥化市绥棱县": { + "lon": 127.1042, + "lat": 47.2447, + "tz": "Asia/Shanghai" + }, + "黑龙江省绥化市安达市": { + "lon": 125.323, + "lat": 46.4086, + "tz": "Asia/Shanghai" + }, + "黑龙江省绥化市肇东市": { + "lon": 125.985, + "lat": 46.0675, + "tz": "Asia/Shanghai" + }, + "黑龙江省绥化市海伦市": { + "lon": 126.9629, + "lat": 47.4582, + "tz": "Asia/Shanghai" + }, + "黑龙江省大兴安岭地区漠河市": { + "lon": 122.5292, + "lat": 52.9705, + "tz": "Asia/Shanghai" + }, + "黑龙江省大兴安岭地区加格达奇区": { + "lon": 124.1191, + "lat": 50.423, + "tz": "Asia/Shanghai" + }, + "黑龙江省大兴安岭地区呼玛县": { + "lon": 126.655, + "lat": 51.7255, + "tz": "Asia/Shanghai" + }, + "黑龙江省大兴安岭地区塔河县": { + "lon": 124.7028, + "lat": 52.3338, + "tz": "Asia/Shanghai" + }, + "上海市黄浦区": { + "lon": 121.4858, + "lat": 31.2248, + "tz": "Asia/Shanghai" + }, + "上海市徐汇区": { + "lon": 121.4329, + "lat": 31.1819, + "tz": "Asia/Shanghai" + }, + "上海市长宁区": { + "lon": 121.4176, + "lat": 31.22, + "tz": "Asia/Shanghai" + }, + "上海市静安区": { + "lon": 121.4436, + "lat": 31.2309, + "tz": "Asia/Shanghai" + }, + "上海市普陀区": { + "lon": 121.3879, + "lat": 31.2435, + "tz": "Asia/Shanghai" + }, + "上海市虹口区": { + "lon": 121.4874, + "lat": 31.2629, + "tz": "Asia/Shanghai" + }, + "上海市杨浦区": { + "lon": 121.5184, + "lat": 31.2728, + "tz": "Asia/Shanghai" + }, + "上海市闵行区": { + "lon": 121.3714, + "lat": 31.1136, + "tz": "Asia/Shanghai" + }, + "上海市宝山区": { + "lon": 121.4854, + "lat": 31.4008, + "tz": "Asia/Shanghai" + }, + "上海市嘉定区": { + "lon": 121.2459, + "lat": 31.3855, + "tz": "Asia/Shanghai" + }, + "上海市浦东新区": { + "lon": 121.5635, + "lat": 31.2481, + "tz": "Asia/Shanghai" + }, + "上海市金山区": { + "lon": 121.3262, + "lat": 30.7269, + "tz": "Asia/Shanghai" + }, + "上海市松江区": { + "lon": 121.2191, + "lat": 31.0326, + "tz": "Asia/Shanghai" + }, + "上海市青浦区": { + "lon": 121.1084, + "lat": 31.1531, + "tz": "Asia/Shanghai" + }, + "上海市奉贤区": { + "lon": 121.4539, + "lat": 30.9144, + "tz": "Asia/Shanghai" + }, + "上海市崇明区": { + "lon": 121.3928, + "lat": 31.6287, + "tz": "Asia/Shanghai" + }, + "江苏省南京市玄武区": { + "lon": 118.787, + "lat": 32.0527, + "tz": "Asia/Shanghai" + }, + "江苏省南京市秦淮区": { + "lon": 118.7809, + "lat": 32.0359, + "tz": "Asia/Shanghai" + }, + "江苏省南京市建邺区": { + "lon": 118.7275, + "lat": 32.0066, + "tz": "Asia/Shanghai" + }, + "江苏省南京市鼓楼区": { + "lon": 118.7645, + "lat": 32.069, + "tz": "Asia/Shanghai" + }, + "江苏省南京市浦口区": { + "lon": 118.6203, + "lat": 32.0606, + "tz": "Asia/Shanghai" + }, + "江苏省南京市栖霞区": { + "lon": 118.8035, + "lat": 32.1042, + "tz": "Asia/Shanghai" + }, + "江苏省南京市雨花台区": { + "lon": 118.7669, + "lat": 31.998, + "tz": "Asia/Shanghai" + }, + "江苏省南京市江宁区": { + "lon": 118.8455, + "lat": 31.9556, + "tz": "Asia/Shanghai" + }, + "江苏省南京市六合区": { + "lon": 118.8455, + "lat": 32.3429, + "tz": "Asia/Shanghai" + }, + "江苏省南京市溧水区": { + "lon": 119.0234, + "lat": 31.655, + "tz": "Asia/Shanghai" + }, + "江苏省南京市高淳区": { + "lon": 118.8709, + "lat": 31.3293, + "tz": "Asia/Shanghai" + }, + "江苏省无锡市锡山区": { + "lon": 120.3526, + "lat": 31.5874, + "tz": "Asia/Shanghai" + }, + "江苏省无锡市惠山区": { + "lon": 120.2989, + "lat": 31.6829, + "tz": "Asia/Shanghai" + }, + "江苏省无锡市滨湖区": { + "lon": 120.2615, + "lat": 31.5522, + "tz": "Asia/Shanghai" + }, + "江苏省无锡市梁溪区": { + "lon": 120.292, + "lat": 31.5776, + "tz": "Asia/Shanghai" + }, + "江苏省无锡市新吴区": { + "lon": 120.3481, + "lat": 31.5528, + "tz": "Asia/Shanghai" + }, + "江苏省无锡市江阴市": { + "lon": 120.2713, + "lat": 31.913, + "tz": "Asia/Shanghai" + }, + "江苏省无锡市宜兴市": { + "lon": 119.8157, + "lat": 31.3664, + "tz": "Asia/Shanghai" + }, + "江苏省徐州市鼓楼区": { + "lon": 117.1872, + "lat": 34.2706, + "tz": "Asia/Shanghai" + }, + "江苏省徐州市云龙区": { + "lon": 117.1888, + "lat": 34.256, + "tz": "Asia/Shanghai" + }, + "江苏省徐州市贾汪区": { + "lon": 117.4442, + "lat": 34.4427, + "tz": "Asia/Shanghai" + }, + "江苏省徐州市泉山区": { + "lon": 117.1764, + "lat": 34.2635, + "tz": "Asia/Shanghai" + }, + "江苏省徐州市铜山区": { + "lon": 117.1781, + "lat": 34.1941, + "tz": "Asia/Shanghai" + }, + "江苏省徐州市丰县": { + "lon": 116.5877, + "lat": 34.6981, + "tz": "Asia/Shanghai" + }, + "江苏省徐州市沛县": { + "lon": 116.9318, + "lat": 34.7302, + "tz": "Asia/Shanghai" + }, + "江苏省徐州市睢宁县": { + "lon": 117.9452, + "lat": 33.9007, + "tz": "Asia/Shanghai" + }, + "江苏省徐州市新沂市": { + "lon": 118.3402, + "lat": 34.3699, + "tz": "Asia/Shanghai" + }, + "江苏省徐州市邳州市": { + "lon": 117.9584, + "lat": 34.3161, + "tz": "Asia/Shanghai" + }, + "江苏省常州市天宁区": { + "lon": 119.9591, + "lat": 31.7817, + "tz": "Asia/Shanghai" + }, + "江苏省常州市钟楼区": { + "lon": 119.9437, + "lat": 31.7831, + "tz": "Asia/Shanghai" + }, + "江苏省常州市新北区": { + "lon": 119.9699, + "lat": 31.8267, + "tz": "Asia/Shanghai" + }, + "江苏省常州市武进区": { + "lon": 119.9541, + "lat": 31.7206, + "tz": "Asia/Shanghai" + }, + "江苏省常州市金坛区": { + "lon": 119.5684, + "lat": 31.7465, + "tz": "Asia/Shanghai" + }, + "江苏省常州市溧阳市": { + "lon": 119.4826, + "lat": 31.429, + "tz": "Asia/Shanghai" + }, + "江苏省苏州市虎丘区": { + "lon": 120.5626, + "lat": 31.297, + "tz": "Asia/Shanghai" + }, + "江苏省苏州市吴中区": { + "lon": 120.6204, + "lat": 31.273, + "tz": "Asia/Shanghai" + }, + "江苏省苏州市相城区": { + "lon": 120.6148, + "lat": 31.3988, + "tz": "Asia/Shanghai" + }, + "江苏省苏州市姑苏区": { + "lon": 120.6181, + "lat": 31.3136, + "tz": "Asia/Shanghai" + }, + "江苏省苏州市吴江区": { + "lon": 120.6374, + "lat": 31.1626, + "tz": "Asia/Shanghai" + }, + "江苏省苏州市常熟市": { + "lon": 120.7441, + "lat": 31.6601, + "tz": "Asia/Shanghai" + }, + "江苏省苏州市张家港市": { + "lon": 120.5391, + "lat": 31.8676, + "tz": "Asia/Shanghai" + }, + "江苏省苏州市昆山市": { + "lon": 120.9539, + "lat": 31.384, + "tz": "Asia/Shanghai" + }, + "江苏省苏州市太仓市": { + "lon": 121.1076, + "lat": 31.4543, + "tz": "Asia/Shanghai" + }, + "江苏省南通市崇川区": { + "lon": 120.8621, + "lat": 32.0174, + "tz": "Asia/Shanghai" + }, + "江苏省南通市通州区": { + "lon": 121.0685, + "lat": 32.0861, + "tz": "Asia/Shanghai" + }, + "江苏省南通市如东县": { + "lon": 121.1815, + "lat": 32.3138, + "tz": "Asia/Shanghai" + }, + "江苏省南通市启东市": { + "lon": 121.6554, + "lat": 31.8122, + "tz": "Asia/Shanghai" + }, + "江苏省南通市如皋市": { + "lon": 120.562, + "lat": 32.3938, + "tz": "Asia/Shanghai" + }, + "江苏省南通市海门区": { + "lon": 121.172, + "lat": 31.8954, + "tz": "Asia/Shanghai" + }, + "江苏省南通市海安市": { + "lon": 120.4613, + "lat": 32.5422, + "tz": "Asia/Shanghai" + }, + "江苏省连云港市连云区": { + "lon": 119.3608, + "lat": 34.7403, + "tz": "Asia/Shanghai" + }, + "江苏省连云港市海州区": { + "lon": 119.1742, + "lat": 34.6025, + "tz": "Asia/Shanghai" + }, + "江苏省连云港市赣榆区": { + "lon": 119.123, + "lat": 34.8398, + "tz": "Asia/Shanghai" + }, + "江苏省连云港市东海县": { + "lon": 118.761, + "lat": 34.524, + "tz": "Asia/Shanghai" + }, + "江苏省连云港市灌云县": { + "lon": 119.2503, + "lat": 34.2997, + "tz": "Asia/Shanghai" + }, + "江苏省连云港市灌南县": { + "lon": 119.3467, + "lat": 34.0937, + "tz": "Asia/Shanghai" + }, + "江苏省淮安市淮安区": { + "lon": 119.1408, + "lat": 33.5088, + "tz": "Asia/Shanghai" + }, + "江苏省淮安市淮阴区": { + "lon": 119.0154, + "lat": 33.6238, + "tz": "Asia/Shanghai" + }, + "江苏省淮安市清江浦区": { + "lon": 119.014, + "lat": 33.6046, + "tz": "Asia/Shanghai" + }, + "江苏省淮安市洪泽区": { + "lon": 118.8627, + "lat": 33.2967, + "tz": "Asia/Shanghai" + }, + "江苏省淮安市涟水县": { + "lon": 119.2606, + "lat": 33.7727, + "tz": "Asia/Shanghai" + }, + "江苏省淮安市盱眙县": { + "lon": 118.4885, + "lat": 33.0062, + "tz": "Asia/Shanghai" + }, + "江苏省淮安市金湖县": { + "lon": 119.0116, + "lat": 33.0199, + "tz": "Asia/Shanghai" + }, + "江苏省盐城市亭湖区": { + "lon": 120.131, + "lat": 33.3853, + "tz": "Asia/Shanghai" + }, + "江苏省盐城市盐都区": { + "lon": 120.1347, + "lat": 33.3427, + "tz": "Asia/Shanghai" + }, + "江苏省盐城市大丰区": { + "lon": 120.4656, + "lat": 33.2011, + "tz": "Asia/Shanghai" + }, + "江苏省盐城市响水县": { + "lon": 119.5744, + "lat": 34.2014, + "tz": "Asia/Shanghai" + }, + "江苏省盐城市滨海县": { + "lon": 119.8234, + "lat": 33.9913, + "tz": "Asia/Shanghai" + }, + "江苏省盐城市阜宁县": { + "lon": 119.8002, + "lat": 33.7871, + "tz": "Asia/Shanghai" + }, + "江苏省盐城市射阳县": { + "lon": 120.2527, + "lat": 33.7751, + "tz": "Asia/Shanghai" + }, + "江苏省盐城市建湖县": { + "lon": 119.788, + "lat": 33.4741, + "tz": "Asia/Shanghai" + }, + "江苏省盐城市东台市": { + "lon": 120.3094, + "lat": 32.855, + "tz": "Asia/Shanghai" + }, + "江苏省扬州市广陵区": { + "lon": 119.4368, + "lat": 32.3941, + "tz": "Asia/Shanghai" + }, + "江苏省扬州市邗江区": { + "lon": 119.3923, + "lat": 32.3798, + "tz": "Asia/Shanghai" + }, + "江苏省扬州市江都区": { + "lon": 119.5625, + "lat": 32.4288, + "tz": "Asia/Shanghai" + }, + "江苏省扬州市宝应县": { + "lon": 119.3158, + "lat": 33.2385, + "tz": "Asia/Shanghai" + }, + "江苏省扬州市仪征市": { + "lon": 119.1771, + "lat": 32.2739, + "tz": "Asia/Shanghai" + }, + "江苏省扬州市高邮市": { + "lon": 119.4384, + "lat": 32.7869, + "tz": "Asia/Shanghai" + }, + "江苏省镇江市京口区": { + "lon": 119.4492, + "lat": 32.2081, + "tz": "Asia/Shanghai" + }, + "江苏省镇江市润州区": { + "lon": 119.4094, + "lat": 32.2154, + "tz": "Asia/Shanghai" + }, + "江苏省镇江市丹徒区": { + "lon": 119.4284, + "lat": 32.1308, + "tz": "Asia/Shanghai" + }, + "江苏省镇江市丹阳市": { + "lon": 119.577, + "lat": 31.9936, + "tz": "Asia/Shanghai" + }, + "江苏省镇江市扬中市": { + "lon": 119.8231, + "lat": 32.2394, + "tz": "Asia/Shanghai" + }, + "江苏省镇江市句容市": { + "lon": 119.1617, + "lat": 31.9492, + "tz": "Asia/Shanghai" + }, + "江苏省泰州市海陵区": { + "lon": 119.9154, + "lat": 32.4906, + "tz": "Asia/Shanghai" + }, + "江苏省泰州市高港区": { + "lon": 119.8769, + "lat": 32.3179, + "tz": "Asia/Shanghai" + }, + "江苏省泰州市姜堰区": { + "lon": 120.1433, + "lat": 32.5104, + "tz": "Asia/Shanghai" + }, + "江苏省泰州市兴化市": { + "lon": 119.8352, + "lat": 32.94, + "tz": "Asia/Shanghai" + }, + "江苏省泰州市靖江市": { + "lon": 120.2636, + "lat": 32.0202, + "tz": "Asia/Shanghai" + }, + "江苏省泰州市泰兴市": { + "lon": 120.0153, + "lat": 32.1708, + "tz": "Asia/Shanghai" + }, + "江苏省宿迁市宿城区": { + "lon": 118.2735, + "lat": 33.9391, + "tz": "Asia/Shanghai" + }, + "江苏省宿迁市宿豫区": { + "lon": 118.3244, + "lat": 33.9423, + "tz": "Asia/Shanghai" + }, + "江苏省宿迁市沭阳县": { + "lon": 118.7705, + "lat": 34.1304, + "tz": "Asia/Shanghai" + }, + "江苏省宿迁市泗阳县": { + "lon": 118.676, + "lat": 33.7129, + "tz": "Asia/Shanghai" + }, + "江苏省宿迁市泗洪县": { + "lon": 118.2063, + "lat": 33.458, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市上城区": { + "lon": 120.1668, + "lat": 30.2526, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市拱墅区": { + "lon": 120.1453, + "lat": 30.317, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市西湖区": { + "lon": 120.1426, + "lat": 30.2752, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市滨江区": { + "lon": 120.2061, + "lat": 30.209, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市萧山区": { + "lon": 120.2662, + "lat": 30.1654, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市余杭区": { + "lon": 119.9743, + "lat": 30.2762, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市富阳区": { + "lon": 119.9453, + "lat": 30.0525, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市临安区": { + "lon": 119.7102, + "lat": 30.2336, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市钱塘区": { + "lon": 120.4896, + "lat": 30.3253, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市临平区": { + "lon": 120.2949, + "lat": 30.4214, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市桐庐县": { + "lon": 119.6802, + "lat": 29.8, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市淳安县": { + "lon": 119.0391, + "lat": 29.6066, + "tz": "Asia/Shanghai" + }, + "浙江省杭州市建德市": { + "lon": 119.274, + "lat": 29.4748, + "tz": "Asia/Shanghai" + }, + "浙江省宁波市海曙区": { + "lon": 121.5355, + "lat": 29.877, + "tz": "Asia/Shanghai" + }, + "浙江省宁波市江北区": { + "lon": 121.5551, + "lat": 29.891, + "tz": "Asia/Shanghai" + }, + "浙江省宁波市北仑区": { + "lon": 121.8272, + "lat": 29.912, + "tz": "Asia/Shanghai" + }, + "浙江省宁波市镇海区": { + "lon": 121.7089, + "lat": 29.9546, + "tz": "Asia/Shanghai" + }, + "浙江省宁波市鄞州区": { + "lon": 121.5543, + "lat": 29.8343, + "tz": "Asia/Shanghai" + }, + "浙江省宁波市奉化区": { + "lon": 121.4064, + "lat": 29.6646, + "tz": "Asia/Shanghai" + }, + "浙江省宁波市象山县": { + "lon": 121.8731, + "lat": 29.4729, + "tz": "Asia/Shanghai" + }, + "浙江省宁波市宁海县": { + "lon": 121.4281, + "lat": 29.3023, + "tz": "Asia/Shanghai" + }, + "浙江省宁波市余姚市": { + "lon": 121.1518, + "lat": 30.0477, + "tz": "Asia/Shanghai" + }, + "浙江省宁波市慈溪市": { + "lon": 121.2437, + "lat": 30.1796, + "tz": "Asia/Shanghai" + }, + "浙江省温州市鹿城区": { + "lon": 120.6702, + "lat": 28.0067, + "tz": "Asia/Shanghai" + }, + "浙江省温州市龙湾区": { + "lon": 120.7594, + "lat": 27.9735, + "tz": "Asia/Shanghai" + }, + "浙江省温州市瓯海区": { + "lon": 120.6332, + "lat": 28.0098, + "tz": "Asia/Shanghai" + }, + "浙江省温州市洞头区": { + "lon": 121.1519, + "lat": 27.8391, + "tz": "Asia/Shanghai" + }, + "浙江省温州市永嘉县": { + "lon": 120.6869, + "lat": 28.1572, + "tz": "Asia/Shanghai" + }, + "浙江省温州市平阳县": { + "lon": 120.5604, + "lat": 27.6726, + "tz": "Asia/Shanghai" + }, + "浙江省温州市苍南县": { + "lon": 120.4019, + "lat": 27.5108, + "tz": "Asia/Shanghai" + }, + "浙江省温州市文成县": { + "lon": 120.0878, + "lat": 27.7922, + "tz": "Asia/Shanghai" + }, + "浙江省温州市泰顺县": { + "lon": 119.7116, + "lat": 27.5605, + "tz": "Asia/Shanghai" + }, + "浙江省温州市瑞安市": { + "lon": 120.6422, + "lat": 27.7827, + "tz": "Asia/Shanghai" + }, + "浙江省温州市乐清市": { + "lon": 120.9631, + "lat": 28.1194, + "tz": "Asia/Shanghai" + }, + "浙江省温州市龙港市": { + "lon": 120.5491, + "lat": 27.5815, + "tz": "Asia/Shanghai" + }, + "浙江省嘉兴市南湖区": { + "lon": 120.7456, + "lat": 30.7669, + "tz": "Asia/Shanghai" + }, + "浙江省嘉兴市秀洲区": { + "lon": 120.7161, + "lat": 30.7656, + "tz": "Asia/Shanghai" + }, + "浙江省嘉兴市嘉善县": { + "lon": 120.9177, + "lat": 30.8438, + "tz": "Asia/Shanghai" + }, + "浙江省嘉兴市海盐县": { + "lon": 120.9379, + "lat": 30.5248, + "tz": "Asia/Shanghai" + }, + "浙江省嘉兴市海宁市": { + "lon": 120.6846, + "lat": 30.528, + "tz": "Asia/Shanghai" + }, + "浙江省嘉兴市平湖市": { + "lon": 121.0103, + "lat": 30.7012, + "tz": "Asia/Shanghai" + }, + "浙江省嘉兴市桐乡市": { + "lon": 120.5469, + "lat": 30.6315, + "tz": "Asia/Shanghai" + }, + "浙江省湖州市吴兴区": { + "lon": 120.0966, + "lat": 30.8693, + "tz": "Asia/Shanghai" + }, + "浙江省湖州市南浔区": { + "lon": 120.4126, + "lat": 30.8748, + "tz": "Asia/Shanghai" + }, + "浙江省湖州市德清县": { + "lon": 119.963, + "lat": 30.5374, + "tz": "Asia/Shanghai" + }, + "浙江省湖州市长兴县": { + "lon": 119.9055, + "lat": 31.0071, + "tz": "Asia/Shanghai" + }, + "浙江省湖州市安吉县": { + "lon": 119.683, + "lat": 30.6344, + "tz": "Asia/Shanghai" + }, + "浙江省绍兴市越城区": { + "lon": 120.5812, + "lat": 29.9996, + "tz": "Asia/Shanghai" + }, + "浙江省绍兴市柯桥区": { + "lon": 120.4717, + "lat": 30.0804, + "tz": "Asia/Shanghai" + }, + "浙江省绍兴市上虞区": { + "lon": 120.8701, + "lat": 30.0194, + "tz": "Asia/Shanghai" + }, + "浙江省绍兴市新昌县": { + "lon": 120.9016, + "lat": 29.5039, + "tz": "Asia/Shanghai" + }, + "浙江省绍兴市诸暨市": { + "lon": 120.2399, + "lat": 29.7161, + "tz": "Asia/Shanghai" + }, + "浙江省绍兴市嵊州市": { + "lon": 120.8248, + "lat": 29.5892, + "tz": "Asia/Shanghai" + }, + "浙江省金华市婺城区": { + "lon": 119.6479, + "lat": 29.0856, + "tz": "Asia/Shanghai" + }, + "浙江省金华市金东区": { + "lon": 119.6765, + "lat": 29.0987, + "tz": "Asia/Shanghai" + }, + "浙江省金华市武义县": { + "lon": 119.8145, + "lat": 28.8996, + "tz": "Asia/Shanghai" + }, + "浙江省金华市浦江县": { + "lon": 119.8889, + "lat": 29.454, + "tz": "Asia/Shanghai" + }, + "浙江省金华市磐安县": { + "lon": 120.4407, + "lat": 29.0553, + "tz": "Asia/Shanghai" + }, + "浙江省金华市兰溪市": { + "lon": 119.4554, + "lat": 29.2127, + "tz": "Asia/Shanghai" + }, + "浙江省金华市义乌市": { + "lon": 120.0702, + "lat": 29.3094, + "tz": "Asia/Shanghai" + }, + "浙江省金华市东阳市": { + "lon": 120.2289, + "lat": 29.2652, + "tz": "Asia/Shanghai" + }, + "浙江省金华市永康市": { + "lon": 120.0317, + "lat": 28.8982, + "tz": "Asia/Shanghai" + }, + "浙江省衢州市柯城区": { + "lon": 118.8683, + "lat": 28.9477, + "tz": "Asia/Shanghai" + }, + "浙江省衢州市衢江区": { + "lon": 118.9529, + "lat": 28.9763, + "tz": "Asia/Shanghai" + }, + "浙江省衢州市常山县": { + "lon": 118.5167, + "lat": 28.9031, + "tz": "Asia/Shanghai" + }, + "浙江省衢州市开化县": { + "lon": 118.4092, + "lat": 29.1391, + "tz": "Asia/Shanghai" + }, + "浙江省衢州市龙游县": { + "lon": 119.1674, + "lat": 29.0341, + "tz": "Asia/Shanghai" + }, + "浙江省衢州市江山市": { + "lon": 118.6231, + "lat": 28.738, + "tz": "Asia/Shanghai" + }, + "浙江省舟山市定海区": { + "lon": 122.1041, + "lat": 30.0187, + "tz": "Asia/Shanghai" + }, + "浙江省舟山市普陀区": { + "lon": 122.2978, + "lat": 29.948, + "tz": "Asia/Shanghai" + }, + "浙江省舟山市岱山县": { + "lon": 122.1969, + "lat": 30.2452, + "tz": "Asia/Shanghai" + }, + "浙江省舟山市嵊泗县": { + "lon": 122.4535, + "lat": 30.7293, + "tz": "Asia/Shanghai" + }, + "浙江省台州市椒江区": { + "lon": 121.4266, + "lat": 28.6791, + "tz": "Asia/Shanghai" + }, + "浙江省台州市黄岩区": { + "lon": 121.2579, + "lat": 28.648, + "tz": "Asia/Shanghai" + }, + "浙江省台州市路桥区": { + "lon": 121.3685, + "lat": 28.5848, + "tz": "Asia/Shanghai" + }, + "浙江省台州市三门县": { + "lon": 121.372, + "lat": 29.1216, + "tz": "Asia/Shanghai" + }, + "浙江省台州市天台县": { + "lon": 121.0269, + "lat": 29.1438, + "tz": "Asia/Shanghai" + }, + "浙江省台州市仙居县": { + "lon": 120.7309, + "lat": 28.8522, + "tz": "Asia/Shanghai" + }, + "浙江省台州市温岭市": { + "lon": 121.3692, + "lat": 28.3719, + "tz": "Asia/Shanghai" + }, + "浙江省台州市临海市": { + "lon": 121.1268, + "lat": 28.8483, + "tz": "Asia/Shanghai" + }, + "浙江省台州市玉环市": { + "lon": 121.2282, + "lat": 28.1317, + "tz": "Asia/Shanghai" + }, + "浙江省丽水市莲都区": { + "lon": 119.9179, + "lat": 28.4545, + "tz": "Asia/Shanghai" + }, + "浙江省丽水市青田县": { + "lon": 120.2876, + "lat": 28.1385, + "tz": "Asia/Shanghai" + }, + "浙江省丽水市缙云县": { + "lon": 120.0743, + "lat": 28.6572, + "tz": "Asia/Shanghai" + }, + "浙江省丽水市遂昌县": { + "lon": 119.2709, + "lat": 28.5956, + "tz": "Asia/Shanghai" + }, + "浙江省丽水市松阳县": { + "lon": 119.4803, + "lat": 28.4531, + "tz": "Asia/Shanghai" + }, + "浙江省丽水市云和县": { + "lon": 119.5648, + "lat": 28.1145, + "tz": "Asia/Shanghai" + }, + "浙江省丽水市庆元县": { + "lon": 119.0622, + "lat": 27.6213, + "tz": "Asia/Shanghai" + }, + "浙江省丽水市景宁畲族自治县": { + "lon": 119.6301, + "lat": 27.9807, + "tz": "Asia/Shanghai" + }, + "浙江省丽水市龙泉市": { + "lon": 119.1272, + "lat": 28.0723, + "tz": "Asia/Shanghai" + }, + "安徽省合肥市瑶海区": { + "lon": 117.3098, + "lat": 31.8716, + "tz": "Asia/Shanghai" + }, + "安徽省合肥市庐阳区": { + "lon": 117.2783, + "lat": 31.871, + "tz": "Asia/Shanghai" + }, + "安徽省合肥市蜀山区": { + "lon": 117.2566, + "lat": 31.8579, + "tz": "Asia/Shanghai" + }, + "安徽省合肥市包河区": { + "lon": 117.2802, + "lat": 31.8316, + "tz": "Asia/Shanghai" + }, + "安徽省合肥市长丰县": { + "lon": 117.1591, + "lat": 32.4805, + "tz": "Asia/Shanghai" + }, + "安徽省合肥市肥东县": { + "lon": 117.4575, + "lat": 31.8859, + "tz": "Asia/Shanghai" + }, + "安徽省合肥市肥西县": { + "lon": 117.1606, + "lat": 31.7215, + "tz": "Asia/Shanghai" + }, + "安徽省合肥市庐江县": { + "lon": 117.2844, + "lat": 31.2535, + "tz": "Asia/Shanghai" + }, + "安徽省合肥市巢湖市": { + "lon": 117.8689, + "lat": 31.6027, + "tz": "Asia/Shanghai" + }, + "安徽省芜湖市镜湖区": { + "lon": 118.3709, + "lat": 31.3275, + "tz": "Asia/Shanghai" + }, + "安徽省芜湖市鸠江区": { + "lon": 118.3948, + "lat": 31.3645, + "tz": "Asia/Shanghai" + }, + "安徽省芜湖市弋江区": { + "lon": 118.3721, + "lat": 31.3153, + "tz": "Asia/Shanghai" + }, + "安徽省芜湖市湾沚区": { + "lon": 118.5673, + "lat": 31.1475, + "tz": "Asia/Shanghai" + }, + "安徽省芜湖市繁昌区": { + "lon": 118.196, + "lat": 31.083, + "tz": "Asia/Shanghai" + }, + "安徽省芜湖市南陵县": { + "lon": 118.3318, + "lat": 30.9218, + "tz": "Asia/Shanghai" + }, + "安徽省芜湖市无为市": { + "lon": 117.9062, + "lat": 31.3053, + "tz": "Asia/Shanghai" + }, + "安徽省蚌埠市龙子湖区": { + "lon": 117.3765, + "lat": 32.9521, + "tz": "Asia/Shanghai" + }, + "安徽省蚌埠市蚌山区": { + "lon": 117.35, + "lat": 32.9398, + "tz": "Asia/Shanghai" + }, + "安徽省蚌埠市禹会区": { + "lon": 117.3468, + "lat": 32.9337, + "tz": "Asia/Shanghai" + }, + "安徽省蚌埠市淮上区": { + "lon": 117.3413, + "lat": 32.9649, + "tz": "Asia/Shanghai" + }, + "安徽省蚌埠市怀远县": { + "lon": 117.1945, + "lat": 32.9587, + "tz": "Asia/Shanghai" + }, + "安徽省蚌埠市五河县": { + "lon": 117.8834, + "lat": 33.1481, + "tz": "Asia/Shanghai" + }, + "安徽省蚌埠市固镇县": { + "lon": 117.3102, + "lat": 33.3202, + "tz": "Asia/Shanghai" + }, + "安徽省淮南市大通区": { + "lon": 117.0473, + "lat": 32.634, + "tz": "Asia/Shanghai" + }, + "安徽省淮南市田家庵区": { + "lon": 117.0128, + "lat": 32.6463, + "tz": "Asia/Shanghai" + }, + "安徽省淮南市谢家集区": { + "lon": 116.8602, + "lat": 32.6005, + "tz": "Asia/Shanghai" + }, + "安徽省淮南市八公山区": { + "lon": 116.8359, + "lat": 32.6304, + "tz": "Asia/Shanghai" + }, + "安徽省淮南市潘集区": { + "lon": 116.8116, + "lat": 32.7842, + "tz": "Asia/Shanghai" + }, + "安徽省淮南市凤台县": { + "lon": 116.7175, + "lat": 32.7074, + "tz": "Asia/Shanghai" + }, + "安徽省淮南市寿县": { + "lon": 116.7801, + "lat": 32.5794, + "tz": "Asia/Shanghai" + }, + "安徽省马鞍山市花山区": { + "lon": 118.5061, + "lat": 31.701, + "tz": "Asia/Shanghai" + }, + "安徽省马鞍山市雨山区": { + "lon": 118.4879, + "lat": 31.6878, + "tz": "Asia/Shanghai" + }, + "安徽省马鞍山市博望区": { + "lon": 118.8387, + "lat": 31.5644, + "tz": "Asia/Shanghai" + }, + "安徽省马鞍山市当涂县": { + "lon": 118.4846, + "lat": 31.5581, + "tz": "Asia/Shanghai" + }, + "安徽省马鞍山市含山县": { + "lon": 118.1, + "lat": 31.7296, + "tz": "Asia/Shanghai" + }, + "安徽省马鞍山市和县": { + "lon": 118.3576, + "lat": 31.7185, + "tz": "Asia/Shanghai" + }, + "安徽省淮北市杜集区": { + "lon": 116.8286, + "lat": 33.9927, + "tz": "Asia/Shanghai" + }, + "安徽省淮北市相山区": { + "lon": 116.7854, + "lat": 33.9723, + "tz": "Asia/Shanghai" + }, + "安徽省淮北市烈山区": { + "lon": 116.8041, + "lat": 33.891, + "tz": "Asia/Shanghai" + }, + "安徽省淮北市濉溪县": { + "lon": 116.762, + "lat": 33.9178, + "tz": "Asia/Shanghai" + }, + "安徽省铜陵市铜官区": { + "lon": 117.8108, + "lat": 30.9299, + "tz": "Asia/Shanghai" + }, + "安徽省铜陵市义安区": { + "lon": 117.7869, + "lat": 30.9546, + "tz": "Asia/Shanghai" + }, + "安徽省铜陵市郊区": { + "lon": 117.8017, + "lat": 30.9112, + "tz": "Asia/Shanghai" + }, + "安徽省铜陵市枞阳县": { + "lon": 117.2166, + "lat": 30.703, + "tz": "Asia/Shanghai" + }, + "安徽省安庆市迎江区": { + "lon": 117.0396, + "lat": 30.5087, + "tz": "Asia/Shanghai" + }, + "安徽省安庆市大观区": { + "lon": 117.0292, + "lat": 30.508, + "tz": "Asia/Shanghai" + }, + "安徽省安庆市宜秀区": { + "lon": 117.0645, + "lat": 30.5436, + "tz": "Asia/Shanghai" + }, + "安徽省安庆市怀宁县": { + "lon": 116.8236, + "lat": 30.7374, + "tz": "Asia/Shanghai" + }, + "安徽省安庆市太湖县": { + "lon": 116.3001, + "lat": 30.4543, + "tz": "Asia/Shanghai" + }, + "安徽省安庆市宿松县": { + "lon": 116.1149, + "lat": 30.1607, + "tz": "Asia/Shanghai" + }, + "安徽省安庆市望江县": { + "lon": 116.686, + "lat": 30.1275, + "tz": "Asia/Shanghai" + }, + "安徽省安庆市岳西县": { + "lon": 116.3552, + "lat": 30.8507, + "tz": "Asia/Shanghai" + }, + "安徽省安庆市桐城市": { + "lon": 116.9545, + "lat": 31.0529, + "tz": "Asia/Shanghai" + }, + "安徽省安庆市潜山市": { + "lon": 116.5688, + "lat": 30.6408, + "tz": "Asia/Shanghai" + }, + "安徽省黄山市屯溪区": { + "lon": 118.3122, + "lat": 29.7116, + "tz": "Asia/Shanghai" + }, + "安徽省黄山市黄山区": { + "lon": 118.1312, + "lat": 30.2968, + "tz": "Asia/Shanghai" + }, + "安徽省黄山市徽州区": { + "lon": 118.3345, + "lat": 29.8276, + "tz": "Asia/Shanghai" + }, + "安徽省黄山市歙县": { + "lon": 118.4228, + "lat": 29.8701, + "tz": "Asia/Shanghai" + }, + "安徽省黄山市休宁县": { + "lon": 118.1833, + "lat": 29.7913, + "tz": "Asia/Shanghai" + }, + "安徽省黄山市黟县": { + "lon": 117.9378, + "lat": 29.9265, + "tz": "Asia/Shanghai" + }, + "安徽省黄山市祁门县": { + "lon": 117.7119, + "lat": 29.856, + "tz": "Asia/Shanghai" + }, + "安徽省滁州市琅琊区": { + "lon": 118.3111, + "lat": 32.3058, + "tz": "Asia/Shanghai" + }, + "安徽省滁州市南谯区": { + "lon": 118.2916, + "lat": 32.3319, + "tz": "Asia/Shanghai" + }, + "安徽省滁州市来安县": { + "lon": 118.4278, + "lat": 32.4521, + "tz": "Asia/Shanghai" + }, + "安徽省滁州市全椒县": { + "lon": 118.2633, + "lat": 32.0959, + "tz": "Asia/Shanghai" + }, + "安徽省滁州市定远县": { + "lon": 117.6782, + "lat": 32.5293, + "tz": "Asia/Shanghai" + }, + "安徽省滁州市凤阳县": { + "lon": 117.557, + "lat": 32.8692, + "tz": "Asia/Shanghai" + }, + "安徽省滁州市天长市": { + "lon": 119.0059, + "lat": 32.6835, + "tz": "Asia/Shanghai" + }, + "安徽省滁州市明光市": { + "lon": 117.9926, + "lat": 32.7832, + "tz": "Asia/Shanghai" + }, + "安徽省阜阳市颍州区": { + "lon": 115.8085, + "lat": 32.8932, + "tz": "Asia/Shanghai" + }, + "安徽省阜阳市颍东区": { + "lon": 115.8535, + "lat": 32.9109, + "tz": "Asia/Shanghai" + }, + "安徽省阜阳市颍泉区": { + "lon": 115.7991, + "lat": 32.9267, + "tz": "Asia/Shanghai" + }, + "安徽省阜阳市临泉县": { + "lon": 115.2561, + "lat": 33.0645, + "tz": "Asia/Shanghai" + }, + "安徽省阜阳市太和县": { + "lon": 115.6219, + "lat": 33.1642, + "tz": "Asia/Shanghai" + }, + "安徽省阜阳市阜南县": { + "lon": 115.5852, + "lat": 32.6404, + "tz": "Asia/Shanghai" + }, + "安徽省阜阳市颍上县": { + "lon": 116.2539, + "lat": 32.6391, + "tz": "Asia/Shanghai" + }, + "安徽省阜阳市界首市": { + "lon": 115.3564, + "lat": 33.2631, + "tz": "Asia/Shanghai" + }, + "安徽省宿州市埇桥区": { + "lon": 116.9779, + "lat": 33.6354, + "tz": "Asia/Shanghai" + }, + "安徽省宿州市砀山县": { + "lon": 116.3456, + "lat": 34.4273, + "tz": "Asia/Shanghai" + }, + "安徽省宿州市萧县": { + "lon": 116.94, + "lat": 34.1847, + "tz": "Asia/Shanghai" + }, + "安徽省宿州市灵璧县": { + "lon": 117.5459, + "lat": 33.5422, + "tz": "Asia/Shanghai" + }, + "安徽省宿州市泗县": { + "lon": 117.88, + "lat": 33.4793, + "tz": "Asia/Shanghai" + }, + "安徽省六安市金安区": { + "lon": 116.4981, + "lat": 31.7565, + "tz": "Asia/Shanghai" + }, + "安徽省六安市裕安区": { + "lon": 116.4894, + "lat": 31.7527, + "tz": "Asia/Shanghai" + }, + "安徽省六安市叶集区": { + "lon": 115.9085, + "lat": 31.8499, + "tz": "Asia/Shanghai" + }, + "安徽省六安市霍邱县": { + "lon": 116.2736, + "lat": 32.3434, + "tz": "Asia/Shanghai" + }, + "安徽省六安市舒城县": { + "lon": 116.939, + "lat": 31.465, + "tz": "Asia/Shanghai" + }, + "安徽省六安市金寨县": { + "lon": 115.8734, + "lat": 31.6838, + "tz": "Asia/Shanghai" + }, + "安徽省六安市霍山县": { + "lon": 116.3278, + "lat": 31.4044, + "tz": "Asia/Shanghai" + }, + "安徽省亳州市谯城区": { + "lon": 115.7757, + "lat": 33.8707, + "tz": "Asia/Shanghai" + }, + "安徽省亳州市涡阳县": { + "lon": 116.2062, + "lat": 33.5043, + "tz": "Asia/Shanghai" + }, + "安徽省亳州市蒙城县": { + "lon": 116.5552, + "lat": 33.2626, + "tz": "Asia/Shanghai" + }, + "安徽省亳州市利辛县": { + "lon": 116.2024, + "lat": 33.1452, + "tz": "Asia/Shanghai" + }, + "安徽省池州市贵池区": { + "lon": 117.4828, + "lat": 30.6597, + "tz": "Asia/Shanghai" + }, + "安徽省池州市东至县": { + "lon": 117.0162, + "lat": 30.099, + "tz": "Asia/Shanghai" + }, + "安徽省池州市石台县": { + "lon": 117.4774, + "lat": 30.2128, + "tz": "Asia/Shanghai" + }, + "安徽省池州市青阳县": { + "lon": 117.8522, + "lat": 30.6407, + "tz": "Asia/Shanghai" + }, + "安徽省宣城市宣州区": { + "lon": 118.7533, + "lat": 30.9482, + "tz": "Asia/Shanghai" + }, + "安徽省宣城市郎溪县": { + "lon": 119.1798, + "lat": 31.1299, + "tz": "Asia/Shanghai" + }, + "安徽省宣城市泾县": { + "lon": 118.407, + "lat": 30.6882, + "tz": "Asia/Shanghai" + }, + "安徽省宣城市绩溪县": { + "lon": 118.5899, + "lat": 30.0679, + "tz": "Asia/Shanghai" + }, + "安徽省宣城市旌德县": { + "lon": 118.5381, + "lat": 30.2906, + "tz": "Asia/Shanghai" + }, + "安徽省宣城市宁国市": { + "lon": 118.9784, + "lat": 30.629, + "tz": "Asia/Shanghai" + }, + "安徽省宣城市广德市": { + "lon": 119.4122, + "lat": 30.8952, + "tz": "Asia/Shanghai" + }, + "福建省福州市鼓楼区": { + "lon": 119.2945, + "lat": 26.0854, + "tz": "Asia/Shanghai" + }, + "福建省福州市台江区": { + "lon": 119.3053, + "lat": 26.0617, + "tz": "Asia/Shanghai" + }, + "福建省福州市仓山区": { + "lon": 119.3162, + "lat": 26.042, + "tz": "Asia/Shanghai" + }, + "福建省福州市马尾区": { + "lon": 119.4539, + "lat": 25.9949, + "tz": "Asia/Shanghai" + }, + "福建省福州市晋安区": { + "lon": 119.3237, + "lat": 26.0819, + "tz": "Asia/Shanghai" + }, + "福建省福州市长乐区": { + "lon": 119.5062, + "lat": 25.9637, + "tz": "Asia/Shanghai" + }, + "福建省福州市闽侯县": { + "lon": 119.1402, + "lat": 26.1516, + "tz": "Asia/Shanghai" + }, + "福建省福州市连江县": { + "lon": 119.5338, + "lat": 26.2054, + "tz": "Asia/Shanghai" + }, + "福建省福州市罗源县": { + "lon": 119.5481, + "lat": 26.4907, + "tz": "Asia/Shanghai" + }, + "福建省福州市闽清县": { + "lon": 118.8638, + "lat": 26.2272, + "tz": "Asia/Shanghai" + }, + "福建省福州市永泰县": { + "lon": 118.9345, + "lat": 25.868, + "tz": "Asia/Shanghai" + }, + "福建省福州市平潭县": { + "lon": 119.7867, + "lat": 25.5065, + "tz": "Asia/Shanghai" + }, + "福建省福州市福清市": { + "lon": 119.3721, + "lat": 25.7231, + "tz": "Asia/Shanghai" + }, + "福建省厦门市思明区": { + "lon": 118.0829, + "lat": 24.4647, + "tz": "Asia/Shanghai" + }, + "福建省厦门市海沧区": { + "lon": 118.0315, + "lat": 24.4953, + "tz": "Asia/Shanghai" + }, + "福建省厦门市湖里区": { + "lon": 118.1045, + "lat": 24.5154, + "tz": "Asia/Shanghai" + }, + "福建省厦门市集美区": { + "lon": 118.0959, + "lat": 24.5755, + "tz": "Asia/Shanghai" + }, + "福建省厦门市同安区": { + "lon": 118.1455, + "lat": 24.732, + "tz": "Asia/Shanghai" + }, + "福建省厦门市翔安区": { + "lon": 118.2381, + "lat": 24.6403, + "tz": "Asia/Shanghai" + }, + "福建省莆田市城厢区": { + "lon": 118.9963, + "lat": 25.4365, + "tz": "Asia/Shanghai" + }, + "福建省莆田市涵江区": { + "lon": 119.1142, + "lat": 25.4619, + "tz": "Asia/Shanghai" + }, + "福建省莆田市荔城区": { + "lon": 119.0153, + "lat": 25.4328, + "tz": "Asia/Shanghai" + }, + "福建省莆田市秀屿区": { + "lon": 119.0877, + "lat": 25.3187, + "tz": "Asia/Shanghai" + }, + "福建省莆田市仙游县": { + "lon": 118.6897, + "lat": 25.3594, + "tz": "Asia/Shanghai" + }, + "福建省三明市三元区": { + "lon": 117.6026, + "lat": 26.2376, + "tz": "Asia/Shanghai" + }, + "福建省三明市明溪县": { + "lon": 117.1968, + "lat": 26.3606, + "tz": "Asia/Shanghai" + }, + "福建省三明市清流县": { + "lon": 116.8111, + "lat": 26.1809, + "tz": "Asia/Shanghai" + }, + "福建省三明市宁化县": { + "lon": 116.6551, + "lat": 26.2633, + "tz": "Asia/Shanghai" + }, + "福建省三明市大田县": { + "lon": 117.8445, + "lat": 25.6938, + "tz": "Asia/Shanghai" + }, + "福建省三明市尤溪县": { + "lon": 118.1836, + "lat": 26.1724, + "tz": "Asia/Shanghai" + }, + "福建省三明市沙县区": { + "lon": 117.7841, + "lat": 26.4007, + "tz": "Asia/Shanghai" + }, + "福建省三明市将乐县": { + "lon": 117.4683, + "lat": 26.732, + "tz": "Asia/Shanghai" + }, + "福建省三明市泰宁县": { + "lon": 117.1724, + "lat": 26.9013, + "tz": "Asia/Shanghai" + }, + "福建省三明市建宁县": { + "lon": 116.8411, + "lat": 26.8349, + "tz": "Asia/Shanghai" + }, + "福建省三明市永安市": { + "lon": 117.3593, + "lat": 25.977, + "tz": "Asia/Shanghai" + }, + "福建省泉州市鲤城区": { + "lon": 118.5845, + "lat": 24.9106, + "tz": "Asia/Shanghai" + }, + "福建省泉州市丰泽区": { + "lon": 118.6007, + "lat": 24.899, + "tz": "Asia/Shanghai" + }, + "福建省泉州市洛江区": { + "lon": 118.6658, + "lat": 24.9441, + "tz": "Asia/Shanghai" + }, + "福建省泉州市泉港区": { + "lon": 118.9078, + "lat": 25.1298, + "tz": "Asia/Shanghai" + }, + "福建省泉州市惠安县": { + "lon": 118.7943, + "lat": 25.0316, + "tz": "Asia/Shanghai" + }, + "福建省泉州市安溪县": { + "lon": 118.1812, + "lat": 25.0595, + "tz": "Asia/Shanghai" + }, + "福建省泉州市永春县": { + "lon": 118.2902, + "lat": 25.3235, + "tz": "Asia/Shanghai" + }, + "福建省泉州市德化县": { + "lon": 118.2382, + "lat": 25.4918, + "tz": "Asia/Shanghai" + }, + "福建省泉州市金门县": { + "lon": 118.3185, + "lat": 24.4392, + "tz": "Asia/Shanghai" + }, + "福建省泉州市石狮市": { + "lon": 118.624, + "lat": 24.735, + "tz": "Asia/Shanghai" + }, + "福建省泉州市晋江市": { + "lon": 118.5729, + "lat": 24.8103, + "tz": "Asia/Shanghai" + }, + "福建省泉州市南安市": { + "lon": 118.3821, + "lat": 24.9621, + "tz": "Asia/Shanghai" + }, + "福建省漳州市芗城区": { + "lon": 117.6517, + "lat": 24.5129, + "tz": "Asia/Shanghai" + }, + "福建省漳州市龙文区": { + "lon": 117.6666, + "lat": 24.5186, + "tz": "Asia/Shanghai" + }, + "福建省漳州市云霄县": { + "lon": 117.3359, + "lat": 23.953, + "tz": "Asia/Shanghai" + }, + "福建省漳州市漳浦县": { + "lon": 117.6093, + "lat": 24.1208, + "tz": "Asia/Shanghai" + }, + "福建省漳州市诏安县": { + "lon": 117.1712, + "lat": 23.7133, + "tz": "Asia/Shanghai" + }, + "福建省漳州市长泰区": { + "lon": 117.751, + "lat": 24.6243, + "tz": "Asia/Shanghai" + }, + "福建省漳州市东山县": { + "lon": 117.4226, + "lat": 23.7052, + "tz": "Asia/Shanghai" + }, + "福建省漳州市南靖县": { + "lon": 117.3604, + "lat": 24.5191, + "tz": "Asia/Shanghai" + }, + "福建省漳州市平和县": { + "lon": 117.3086, + "lat": 24.3689, + "tz": "Asia/Shanghai" + }, + "福建省漳州市华安县": { + "lon": 117.5314, + "lat": 25.0043, + "tz": "Asia/Shanghai" + }, + "福建省漳州市龙海区": { + "lon": 117.8125, + "lat": 24.4482, + "tz": "Asia/Shanghai" + }, + "福建省南平市延平区": { + "lon": 118.1739, + "lat": 26.6394, + "tz": "Asia/Shanghai" + }, + "福建省南平市建阳区": { + "lon": 118.1175, + "lat": 27.3351, + "tz": "Asia/Shanghai" + }, + "福建省南平市顺昌县": { + "lon": 117.8027, + "lat": 26.7963, + "tz": "Asia/Shanghai" + }, + "福建省南平市浦城县": { + "lon": 118.532, + "lat": 27.9238, + "tz": "Asia/Shanghai" + }, + "福建省南平市光泽县": { + "lon": 117.3326, + "lat": 27.5459, + "tz": "Asia/Shanghai" + }, + "福建省南平市松溪县": { + "lon": 118.7787, + "lat": 27.529, + "tz": "Asia/Shanghai" + }, + "福建省南平市政和县": { + "lon": 118.854, + "lat": 27.3688, + "tz": "Asia/Shanghai" + }, + "福建省南平市邵武市": { + "lon": 117.4863, + "lat": 27.3412, + "tz": "Asia/Shanghai" + }, + "福建省南平市武夷山市": { + "lon": 118.0277, + "lat": 27.7549, + "tz": "Asia/Shanghai" + }, + "福建省南平市建瓯市": { + "lon": 118.3168, + "lat": 27.0383, + "tz": "Asia/Shanghai" + }, + "福建省龙岩市新罗区": { + "lon": 117.0258, + "lat": 25.0945, + "tz": "Asia/Shanghai" + }, + "福建省龙岩市永定区": { + "lon": 116.728, + "lat": 24.7233, + "tz": "Asia/Shanghai" + }, + "福建省龙岩市长汀县": { + "lon": 116.3562, + "lat": 25.8451, + "tz": "Asia/Shanghai" + }, + "福建省龙岩市上杭县": { + "lon": 116.42, + "lat": 25.0527, + "tz": "Asia/Shanghai" + }, + "福建省龙岩市武平县": { + "lon": 116.096, + "lat": 25.0913, + "tz": "Asia/Shanghai" + }, + "福建省龙岩市连城县": { + "lon": 116.752, + "lat": 25.7114, + "tz": "Asia/Shanghai" + }, + "福建省龙岩市漳平市": { + "lon": 117.4155, + "lat": 25.2942, + "tz": "Asia/Shanghai" + }, + "福建省宁德市蕉城区": { + "lon": 119.5226, + "lat": 26.6627, + "tz": "Asia/Shanghai" + }, + "福建省宁德市霞浦县": { + "lon": 120.0008, + "lat": 26.8854, + "tz": "Asia/Shanghai" + }, + "福建省宁德市古田县": { + "lon": 118.7384, + "lat": 26.5809, + "tz": "Asia/Shanghai" + }, + "福建省宁德市屏南县": { + "lon": 118.9828, + "lat": 26.9142, + "tz": "Asia/Shanghai" + }, + "福建省宁德市寿宁县": { + "lon": 119.5019, + "lat": 27.461, + "tz": "Asia/Shanghai" + }, + "福建省宁德市周宁县": { + "lon": 119.3333, + "lat": 27.1063, + "tz": "Asia/Shanghai" + }, + "福建省宁德市柘荣县": { + "lon": 119.8939, + "lat": 27.2396, + "tz": "Asia/Shanghai" + }, + "福建省宁德市福安市": { + "lon": 119.6463, + "lat": 27.0877, + "tz": "Asia/Shanghai" + }, + "福建省宁德市福鼎市": { + "lon": 120.2155, + "lat": 27.3221, + "tz": "Asia/Shanghai" + }, + "江西省南昌市东湖区": { + "lon": 115.8848, + "lat": 28.6863, + "tz": "Asia/Shanghai" + }, + "江西省南昌市西湖区": { + "lon": 115.9058, + "lat": 28.6663, + "tz": "Asia/Shanghai" + }, + "江西省南昌市青云谱区": { + "lon": 115.9025, + "lat": 28.6391, + "tz": "Asia/Shanghai" + }, + "江西省南昌市青山湖区": { + "lon": 115.9442, + "lat": 28.6926, + "tz": "Asia/Shanghai" + }, + "江西省南昌市新建区": { + "lon": 115.8158, + "lat": 28.694, + "tz": "Asia/Shanghai" + }, + "江西省南昌市红谷滩区": { + "lon": 115.8531, + "lat": 28.7015, + "tz": "Asia/Shanghai" + }, + "江西省南昌市南昌县": { + "lon": 115.9376, + "lat": 28.5472, + "tz": "Asia/Shanghai" + }, + "江西省南昌市安义县": { + "lon": 115.5481, + "lat": 28.8445, + "tz": "Asia/Shanghai" + }, + "江西省南昌市进贤县": { + "lon": 116.2628, + "lat": 28.369, + "tz": "Asia/Shanghai" + }, + "江西省景德镇市昌江区": { + "lon": 117.1897, + "lat": 29.2911, + "tz": "Asia/Shanghai" + }, + "江西省景德镇市珠山区": { + "lon": 117.2095, + "lat": 29.2955, + "tz": "Asia/Shanghai" + }, + "江西省景德镇市浮梁县": { + "lon": 117.2123, + "lat": 29.3549, + "tz": "Asia/Shanghai" + }, + "江西省景德镇市乐平市": { + "lon": 117.124, + "lat": 28.9701, + "tz": "Asia/Shanghai" + }, + "江西省萍乡市安源区": { + "lon": 113.8497, + "lat": 27.6292, + "tz": "Asia/Shanghai" + }, + "江西省萍乡市湘东区": { + "lon": 113.7401, + "lat": 27.6426, + "tz": "Asia/Shanghai" + }, + "江西省萍乡市莲花县": { + "lon": 113.9504, + "lat": 27.1313, + "tz": "Asia/Shanghai" + }, + "江西省萍乡市上栗县": { + "lon": 113.795, + "lat": 27.8804, + "tz": "Asia/Shanghai" + }, + "江西省萍乡市芦溪县": { + "lon": 114.0358, + "lat": 27.6368, + "tz": "Asia/Shanghai" + }, + "江西省九江市濂溪区": { + "lon": 115.9851, + "lat": 29.6788, + "tz": "Asia/Shanghai" + }, + "江西省九江市浔阳区": { + "lon": 115.9909, + "lat": 29.7272, + "tz": "Asia/Shanghai" + }, + "江西省九江市柴桑区": { + "lon": 115.8881, + "lat": 29.613, + "tz": "Asia/Shanghai" + }, + "江西省九江市武宁县": { + "lon": 115.1002, + "lat": 29.2628, + "tz": "Asia/Shanghai" + }, + "江西省九江市修水县": { + "lon": 114.5685, + "lat": 29.0358, + "tz": "Asia/Shanghai" + }, + "江西省九江市永修县": { + "lon": 115.804, + "lat": 29.0212, + "tz": "Asia/Shanghai" + }, + "江西省九江市德安县": { + "lon": 115.7575, + "lat": 29.3302, + "tz": "Asia/Shanghai" + }, + "江西省九江市都昌县": { + "lon": 116.2001, + "lat": 29.2778, + "tz": "Asia/Shanghai" + }, + "江西省九江市湖口县": { + "lon": 116.2393, + "lat": 29.7288, + "tz": "Asia/Shanghai" + }, + "江西省九江市彭泽县": { + "lon": 116.551, + "lat": 29.9015, + "tz": "Asia/Shanghai" + }, + "江西省九江市瑞昌市": { + "lon": 115.664, + "lat": 29.6793, + "tz": "Asia/Shanghai" + }, + "江西省九江市共青城市": { + "lon": 115.8006, + "lat": 29.2507, + "tz": "Asia/Shanghai" + }, + "江西省九江市庐山市": { + "lon": 116.0386, + "lat": 29.4587, + "tz": "Asia/Shanghai" + }, + "江西省新余市渝水区": { + "lon": 114.9191, + "lat": 27.8226, + "tz": "Asia/Shanghai" + }, + "江西省新余市分宜县": { + "lon": 114.6703, + "lat": 27.8147, + "tz": "Asia/Shanghai" + }, + "江西省鹰潭市月湖区": { + "lon": 117.029, + "lat": 28.2423, + "tz": "Asia/Shanghai" + }, + "江西省鹰潭市余江区": { + "lon": 116.8179, + "lat": 28.2096, + "tz": "Asia/Shanghai" + }, + "江西省鹰潭市贵溪市": { + "lon": 117.2069, + "lat": 28.287, + "tz": "Asia/Shanghai" + }, + "江西省赣州市章贡区": { + "lon": 114.934, + "lat": 25.8546, + "tz": "Asia/Shanghai" + }, + "江西省赣州市南康区": { + "lon": 114.7521, + "lat": 25.6646, + "tz": "Asia/Shanghai" + }, + "江西省赣州市赣县区": { + "lon": 115.0135, + "lat": 25.8684, + "tz": "Asia/Shanghai" + }, + "江西省赣州市信丰县": { + "lon": 114.9262, + "lat": 25.3832, + "tz": "Asia/Shanghai" + }, + "江西省赣州市大余县": { + "lon": 114.3571, + "lat": 25.3986, + "tz": "Asia/Shanghai" + }, + "江西省赣州市上犹县": { + "lon": 114.5357, + "lat": 25.7974, + "tz": "Asia/Shanghai" + }, + "江西省赣州市崇义县": { + "lon": 114.3023, + "lat": 25.6908, + "tz": "Asia/Shanghai" + }, + "江西省赣州市安远县": { + "lon": 115.3872, + "lat": 25.1372, + "tz": "Asia/Shanghai" + }, + "江西省赣州市定南县": { + "lon": 115.0277, + "lat": 24.7771, + "tz": "Asia/Shanghai" + }, + "江西省赣州市全南县": { + "lon": 114.5268, + "lat": 24.7456, + "tz": "Asia/Shanghai" + }, + "江西省赣州市宁都县": { + "lon": 116.0139, + "lat": 26.4754, + "tz": "Asia/Shanghai" + }, + "江西省赣州市于都县": { + "lon": 115.406, + "lat": 25.9579, + "tz": "Asia/Shanghai" + }, + "江西省赣州市兴国县": { + "lon": 115.3468, + "lat": 26.3337, + "tz": "Asia/Shanghai" + }, + "江西省赣州市会昌县": { + "lon": 115.7863, + "lat": 25.602, + "tz": "Asia/Shanghai" + }, + "江西省赣州市寻乌县": { + "lon": 115.6467, + "lat": 24.9571, + "tz": "Asia/Shanghai" + }, + "江西省赣州市石城县": { + "lon": 116.3374, + "lat": 26.3298, + "tz": "Asia/Shanghai" + }, + "江西省赣州市瑞金市": { + "lon": 116.03, + "lat": 25.8782, + "tz": "Asia/Shanghai" + }, + "江西省赣州市龙南市": { + "lon": 114.7879, + "lat": 24.9076, + "tz": "Asia/Shanghai" + }, + "江西省吉安市吉州区": { + "lon": 114.9824, + "lat": 27.1157, + "tz": "Asia/Shanghai" + }, + "江西省吉安市青原区": { + "lon": 115.0113, + "lat": 27.1092, + "tz": "Asia/Shanghai" + }, + "江西省吉安市吉安县": { + "lon": 114.9003, + "lat": 27.0436, + "tz": "Asia/Shanghai" + }, + "江西省吉安市吉水县": { + "lon": 115.1293, + "lat": 27.2166, + "tz": "Asia/Shanghai" + }, + "江西省吉安市峡江县": { + "lon": 115.3142, + "lat": 27.584, + "tz": "Asia/Shanghai" + }, + "江西省吉安市新干县": { + "lon": 115.394, + "lat": 27.7588, + "tz": "Asia/Shanghai" + }, + "江西省吉安市永丰县": { + "lon": 115.4303, + "lat": 27.3242, + "tz": "Asia/Shanghai" + }, + "江西省吉安市泰和县": { + "lon": 114.8966, + "lat": 26.7938, + "tz": "Asia/Shanghai" + }, + "江西省吉安市遂川县": { + "lon": 114.512, + "lat": 26.3271, + "tz": "Asia/Shanghai" + }, + "江西省吉安市万安县": { + "lon": 114.7798, + "lat": 26.4655, + "tz": "Asia/Shanghai" + }, + "江西省吉安市安福县": { + "lon": 114.609, + "lat": 27.3862, + "tz": "Asia/Shanghai" + }, + "江西省吉安市永新县": { + "lon": 114.2374, + "lat": 26.9481, + "tz": "Asia/Shanghai" + }, + "江西省吉安市井冈山市": { + "lon": 114.2793, + "lat": 26.7493, + "tz": "Asia/Shanghai" + }, + "江西省宜春市袁州区": { + "lon": 114.3821, + "lat": 27.8032, + "tz": "Asia/Shanghai" + }, + "江西省宜春市奉新县": { + "lon": 115.3845, + "lat": 28.7037, + "tz": "Asia/Shanghai" + }, + "江西省宜春市万载县": { + "lon": 114.4437, + "lat": 28.1077, + "tz": "Asia/Shanghai" + }, + "江西省宜春市上高县": { + "lon": 114.9278, + "lat": 28.2383, + "tz": "Asia/Shanghai" + }, + "江西省宜春市宜丰县": { + "lon": 114.7823, + "lat": 28.3916, + "tz": "Asia/Shanghai" + }, + "江西省宜春市靖安县": { + "lon": 115.3564, + "lat": 28.8635, + "tz": "Asia/Shanghai" + }, + "江西省宜春市铜鼓县": { + "lon": 114.3648, + "lat": 28.5241, + "tz": "Asia/Shanghai" + }, + "江西省宜春市丰城市": { + "lon": 115.781, + "lat": 28.1949, + "tz": "Asia/Shanghai" + }, + "江西省宜春市樟树市": { + "lon": 115.5384, + "lat": 28.0593, + "tz": "Asia/Shanghai" + }, + "江西省宜春市高安市": { + "lon": 115.3762, + "lat": 28.4241, + "tz": "Asia/Shanghai" + }, + "江西省抚州市临川区": { + "lon": 116.3564, + "lat": 27.9851, + "tz": "Asia/Shanghai" + }, + "江西省抚州市东乡区": { + "lon": 116.6007, + "lat": 28.236, + "tz": "Asia/Shanghai" + }, + "江西省抚州市南城县": { + "lon": 116.6348, + "lat": 27.5587, + "tz": "Asia/Shanghai" + }, + "江西省抚州市黎川县": { + "lon": 116.9099, + "lat": 27.296, + "tz": "Asia/Shanghai" + }, + "江西省抚州市南丰县": { + "lon": 116.5283, + "lat": 27.2135, + "tz": "Asia/Shanghai" + }, + "江西省抚州市崇仁县": { + "lon": 116.054, + "lat": 27.764, + "tz": "Asia/Shanghai" + }, + "江西省抚州市乐安县": { + "lon": 115.8336, + "lat": 27.4235, + "tz": "Asia/Shanghai" + }, + "江西省抚州市宜黄县": { + "lon": 116.2182, + "lat": 27.5497, + "tz": "Asia/Shanghai" + }, + "江西省抚州市金溪县": { + "lon": 116.7739, + "lat": 27.9107, + "tz": "Asia/Shanghai" + }, + "江西省抚州市资溪县": { + "lon": 117.0609, + "lat": 27.7096, + "tz": "Asia/Shanghai" + }, + "江西省抚州市广昌县": { + "lon": 116.3224, + "lat": 26.8417, + "tz": "Asia/Shanghai" + }, + "江西省上饶市信州区": { + "lon": 117.9655, + "lat": 28.4487, + "tz": "Asia/Shanghai" + }, + "江西省上饶市广丰区": { + "lon": 118.1847, + "lat": 28.4435, + "tz": "Asia/Shanghai" + }, + "江西省上饶市广信区": { + "lon": 117.9012, + "lat": 28.4573, + "tz": "Asia/Shanghai" + }, + "江西省上饶市玉山县": { + "lon": 118.2394, + "lat": 28.6766, + "tz": "Asia/Shanghai" + }, + "江西省上饶市铅山县": { + "lon": 117.7067, + "lat": 28.3142, + "tz": "Asia/Shanghai" + }, + "江西省上饶市横峰县": { + "lon": 117.6032, + "lat": 28.4186, + "tz": "Asia/Shanghai" + }, + "江西省上饶市弋阳县": { + "lon": 117.4296, + "lat": 28.4055, + "tz": "Asia/Shanghai" + }, + "江西省上饶市余干县": { + "lon": 116.6862, + "lat": 28.695, + "tz": "Asia/Shanghai" + }, + "江西省上饶市鄱阳县": { + "lon": 116.6689, + "lat": 28.9964, + "tz": "Asia/Shanghai" + }, + "江西省上饶市万年县": { + "lon": 117.0648, + "lat": 28.6956, + "tz": "Asia/Shanghai" + }, + "江西省上饶市婺源县": { + "lon": 117.8571, + "lat": 29.2569, + "tz": "Asia/Shanghai" + }, + "江西省上饶市德兴市": { + "lon": 117.5736, + "lat": 28.9482, + "tz": "Asia/Shanghai" + }, + "山东省济南市历下区": { + "lon": 117.0326, + "lat": 36.6638, + "tz": "Asia/Shanghai" + }, + "山东省济南市市中区": { + "lon": 116.9932, + "lat": 36.6571, + "tz": "Asia/Shanghai" + }, + "山东省济南市槐荫区": { + "lon": 116.9423, + "lat": 36.6681, + "tz": "Asia/Shanghai" + }, + "山东省济南市天桥区": { + "lon": 116.9903, + "lat": 36.6931, + "tz": "Asia/Shanghai" + }, + "山东省济南市历城区": { + "lon": 117.0577, + "lat": 36.6813, + "tz": "Asia/Shanghai" + }, + "山东省济南市长清区": { + "lon": 116.7402, + "lat": 36.5609, + "tz": "Asia/Shanghai" + }, + "山东省济南市章丘区": { + "lon": 117.5348, + "lat": 36.7119, + "tz": "Asia/Shanghai" + }, + "山东省济南市济阳区": { + "lon": 117.1699, + "lat": 36.9762, + "tz": "Asia/Shanghai" + }, + "山东省济南市莱芜区": { + "lon": 117.6699, + "lat": 36.2144, + "tz": "Asia/Shanghai" + }, + "山东省济南市钢城区": { + "lon": 117.8145, + "lat": 36.0581, + "tz": "Asia/Shanghai" + }, + "山东省济南市平阴县": { + "lon": 116.4493, + "lat": 36.2867, + "tz": "Asia/Shanghai" + }, + "山东省济南市商河县": { + "lon": 117.1502, + "lat": 37.3097, + "tz": "Asia/Shanghai" + }, + "山东省青岛市市南区": { + "lon": 120.3908, + "lat": 36.0706, + "tz": "Asia/Shanghai" + }, + "山东省青岛市市北区": { + "lon": 120.3499, + "lat": 36.0836, + "tz": "Asia/Shanghai" + }, + "山东省青岛市黄岛区": { + "lon": 119.9903, + "lat": 35.8751, + "tz": "Asia/Shanghai" + }, + "山东省青岛市崂山区": { + "lon": 120.4624, + "lat": 36.1024, + "tz": "Asia/Shanghai" + }, + "山东省青岛市李沧区": { + "lon": 120.4161, + "lat": 36.1597, + "tz": "Asia/Shanghai" + }, + "山东省青岛市城阳区": { + "lon": 120.384, + "lat": 36.3065, + "tz": "Asia/Shanghai" + }, + "山东省青岛市即墨区": { + "lon": 120.4423, + "lat": 36.3905, + "tz": "Asia/Shanghai" + }, + "山东省青岛市胶州市": { + "lon": 120.0009, + "lat": 36.2857, + "tz": "Asia/Shanghai" + }, + "山东省青岛市平度市": { + "lon": 119.9538, + "lat": 36.7886, + "tz": "Asia/Shanghai" + }, + "山东省青岛市莱西市": { + "lon": 120.5214, + "lat": 36.8647, + "tz": "Asia/Shanghai" + }, + "山东省淄博市淄川区": { + "lon": 117.9619, + "lat": 36.6471, + "tz": "Asia/Shanghai" + }, + "山东省淄博市张店区": { + "lon": 118.0475, + "lat": 36.8065, + "tz": "Asia/Shanghai" + }, + "山东省淄博市博山区": { + "lon": 117.8524, + "lat": 36.4975, + "tz": "Asia/Shanghai" + }, + "山东省淄博市临淄区": { + "lon": 118.3002, + "lat": 36.8162, + "tz": "Asia/Shanghai" + }, + "山东省淄博市周村区": { + "lon": 117.8452, + "lat": 36.8035, + "tz": "Asia/Shanghai" + }, + "山东省淄博市桓台县": { + "lon": 118.0954, + "lat": 36.9591, + "tz": "Asia/Shanghai" + }, + "山东省淄博市高青县": { + "lon": 117.8239, + "lat": 37.169, + "tz": "Asia/Shanghai" + }, + "山东省淄博市沂源县": { + "lon": 118.1602, + "lat": 36.1861, + "tz": "Asia/Shanghai" + }, + "山东省枣庄市市中区": { + "lon": 117.5516, + "lat": 34.8576, + "tz": "Asia/Shanghai" + }, + "山东省枣庄市薛城区": { + "lon": 117.2595, + "lat": 34.7988, + "tz": "Asia/Shanghai" + }, + "山东省枣庄市峄城区": { + "lon": 117.5807, + "lat": 34.7688, + "tz": "Asia/Shanghai" + }, + "山东省枣庄市台儿庄区": { + "lon": 117.729, + "lat": 34.5659, + "tz": "Asia/Shanghai" + }, + "山东省枣庄市山亭区": { + "lon": 117.4529, + "lat": 35.0965, + "tz": "Asia/Shanghai" + }, + "山东省枣庄市滕州市": { + "lon": 117.1562, + "lat": 35.089, + "tz": "Asia/Shanghai" + }, + "山东省东营市东营区": { + "lon": 118.5018, + "lat": 37.4608, + "tz": "Asia/Shanghai" + }, + "山东省东营市河口区": { + "lon": 118.5239, + "lat": 37.8853, + "tz": "Asia/Shanghai" + }, + "山东省东营市垦利区": { + "lon": 118.5457, + "lat": 37.588, + "tz": "Asia/Shanghai" + }, + "山东省东营市利津县": { + "lon": 118.243, + "lat": 37.4926, + "tz": "Asia/Shanghai" + }, + "山东省东营市广饶县": { + "lon": 118.4015, + "lat": 37.0509, + "tz": "Asia/Shanghai" + }, + "山东省烟台市芝罘区": { + "lon": 121.3806, + "lat": 37.5399, + "tz": "Asia/Shanghai" + }, + "山东省烟台市福山区": { + "lon": 121.2597, + "lat": 37.496, + "tz": "Asia/Shanghai" + }, + "山东省烟台市牟平区": { + "lon": 121.5967, + "lat": 37.3877, + "tz": "Asia/Shanghai" + }, + "山东省烟台市莱山区": { + "lon": 121.4436, + "lat": 37.4726, + "tz": "Asia/Shanghai" + }, + "山东省烟台市蓬莱区": { + "lon": 120.7541, + "lat": 37.8102, + "tz": "Asia/Shanghai" + }, + "山东省烟台市龙口市": { + "lon": 120.5234, + "lat": 37.6477, + "tz": "Asia/Shanghai" + }, + "山东省烟台市莱阳市": { + "lon": 120.7063, + "lat": 36.9765, + "tz": "Asia/Shanghai" + }, + "山东省烟台市莱州市": { + "lon": 119.9369, + "lat": 37.1822, + "tz": "Asia/Shanghai" + }, + "山东省烟台市招远市": { + "lon": 120.3979, + "lat": 37.364, + "tz": "Asia/Shanghai" + }, + "山东省烟台市栖霞市": { + "lon": 120.8293, + "lat": 37.3052, + "tz": "Asia/Shanghai" + }, + "山东省烟台市海阳市": { + "lon": 121.1633, + "lat": 36.7801, + "tz": "Asia/Shanghai" + }, + "山东省潍坊市潍城区": { + "lon": 119.0978, + "lat": 36.7095, + "tz": "Asia/Shanghai" + }, + "山东省潍坊市寒亭区": { + "lon": 119.2021, + "lat": 36.7717, + "tz": "Asia/Shanghai" + }, + "山东省潍坊市坊子区": { + "lon": 119.1604, + "lat": 36.6542, + "tz": "Asia/Shanghai" + }, + "山东省潍坊市奎文区": { + "lon": 119.1314, + "lat": 36.709, + "tz": "Asia/Shanghai" + }, + "山东省潍坊市临朐县": { + "lon": 118.5343, + "lat": 36.5163, + "tz": "Asia/Shanghai" + }, + "山东省潍坊市昌乐县": { + "lon": 118.8344, + "lat": 36.703, + "tz": "Asia/Shanghai" + }, + "山东省潍坊市青州市": { + "lon": 118.4789, + "lat": 36.6975, + "tz": "Asia/Shanghai" + }, + "山东省潍坊市诸城市": { + "lon": 119.3973, + "lat": 35.9968, + "tz": "Asia/Shanghai" + }, + "山东省潍坊市寿光市": { + "lon": 118.7307, + "lat": 36.874, + "tz": "Asia/Shanghai" + }, + "山东省潍坊市安丘市": { + "lon": 119.2011, + "lat": 36.4272, + "tz": "Asia/Shanghai" + }, + "山东省潍坊市高密市": { + "lon": 119.7516, + "lat": 36.3774, + "tz": "Asia/Shanghai" + }, + "山东省潍坊市昌邑市": { + "lon": 119.3885, + "lat": 36.8543, + "tz": "Asia/Shanghai" + }, + "山东省济宁市任城区": { + "lon": 116.59, + "lat": 35.4153, + "tz": "Asia/Shanghai" + }, + "山东省济宁市兖州区": { + "lon": 116.8235, + "lat": 35.5567, + "tz": "Asia/Shanghai" + }, + "山东省济宁市微山县": { + "lon": 117.1227, + "lat": 34.8102, + "tz": "Asia/Shanghai" + }, + "山东省济宁市鱼台县": { + "lon": 116.6447, + "lat": 34.9985, + "tz": "Asia/Shanghai" + }, + "山东省济宁市金乡县": { + "lon": 116.3048, + "lat": 35.0703, + "tz": "Asia/Shanghai" + }, + "山东省济宁市嘉祥县": { + "lon": 116.3372, + "lat": 35.3983, + "tz": "Asia/Shanghai" + }, + "山东省济宁市汶上县": { + "lon": 116.4815, + "lat": 35.7218, + "tz": "Asia/Shanghai" + }, + "山东省济宁市泗水县": { + "lon": 117.2677, + "lat": 35.6533, + "tz": "Asia/Shanghai" + }, + "山东省济宁市梁山县": { + "lon": 116.0838, + "lat": 35.8017, + "tz": "Asia/Shanghai" + }, + "山东省济宁市曲阜市": { + "lon": 116.9862, + "lat": 35.593, + "tz": "Asia/Shanghai" + }, + "山东省济宁市邹城市": { + "lon": 116.9612, + "lat": 35.4056, + "tz": "Asia/Shanghai" + }, + "山东省泰安市泰山区": { + "lon": 117.1239, + "lat": 36.1891, + "tz": "Asia/Shanghai" + }, + "山东省泰安市岱岳区": { + "lon": 117.0376, + "lat": 36.1839, + "tz": "Asia/Shanghai" + }, + "山东省泰安市宁阳县": { + "lon": 116.7937, + "lat": 35.7676, + "tz": "Asia/Shanghai" + }, + "山东省泰安市东平县": { + "lon": 116.4554, + "lat": 35.9304, + "tz": "Asia/Shanghai" + }, + "山东省泰安市新泰市": { + "lon": 117.7602, + "lat": 35.9104, + "tz": "Asia/Shanghai" + }, + "山东省泰安市肥城市": { + "lon": 116.758, + "lat": 36.1855, + "tz": "Asia/Shanghai" + }, + "山东省威海市环翠区": { + "lon": 122.1111, + "lat": 37.5097, + "tz": "Asia/Shanghai" + }, + "山东省威海市文登区": { + "lon": 122.0521, + "lat": 37.1953, + "tz": "Asia/Shanghai" + }, + "山东省威海市荣成市": { + "lon": 122.4179, + "lat": 37.1592, + "tz": "Asia/Shanghai" + }, + "山东省威海市乳山市": { + "lon": 121.5315, + "lat": 36.9192, + "tz": "Asia/Shanghai" + }, + "山东省日照市东港区": { + "lon": 119.452, + "lat": 35.4262, + "tz": "Asia/Shanghai" + }, + "山东省日照市岚山区": { + "lon": 119.3102, + "lat": 35.1202, + "tz": "Asia/Shanghai" + }, + "山东省日照市五莲县": { + "lon": 119.2011, + "lat": 35.7519, + "tz": "Asia/Shanghai" + }, + "山东省日照市莒县": { + "lon": 118.8274, + "lat": 35.5883, + "tz": "Asia/Shanghai" + }, + "山东省临沂市兰山区": { + "lon": 118.322, + "lat": 35.0621, + "tz": "Asia/Shanghai" + }, + "山东省临沂市罗庄区": { + "lon": 118.2792, + "lat": 34.9978, + "tz": "Asia/Shanghai" + }, + "山东省临沂市河东区": { + "lon": 118.3925, + "lat": 35.0854, + "tz": "Asia/Shanghai" + }, + "山东省临沂市沂南县": { + "lon": 118.4496, + "lat": 35.547, + "tz": "Asia/Shanghai" + }, + "山东省临沂市郯城县": { + "lon": 118.3373, + "lat": 34.6157, + "tz": "Asia/Shanghai" + }, + "山东省临沂市沂水县": { + "lon": 118.6291, + "lat": 35.7872, + "tz": "Asia/Shanghai" + }, + "山东省临沂市兰陵县": { + "lon": 118.0441, + "lat": 34.8563, + "tz": "Asia/Shanghai" + }, + "山东省临沂市费县": { + "lon": 117.9632, + "lat": 35.2696, + "tz": "Asia/Shanghai" + }, + "山东省临沂市平邑县": { + "lon": 117.6262, + "lat": 35.5119, + "tz": "Asia/Shanghai" + }, + "山东省临沂市莒南县": { + "lon": 118.8329, + "lat": 35.1765, + "tz": "Asia/Shanghai" + }, + "山东省临沂市蒙阴县": { + "lon": 117.9376, + "lat": 35.7126, + "tz": "Asia/Shanghai" + }, + "山东省临沂市临沭县": { + "lon": 118.6431, + "lat": 34.9179, + "tz": "Asia/Shanghai" + }, + "山东省德州市德城区": { + "lon": 116.3013, + "lat": 37.4532, + "tz": "Asia/Shanghai" + }, + "山东省德州市陵城区": { + "lon": 116.5694, + "lat": 37.3323, + "tz": "Asia/Shanghai" + }, + "山东省德州市宁津县": { + "lon": 116.7879, + "lat": 37.6489, + "tz": "Asia/Shanghai" + }, + "山东省德州市庆云县": { + "lon": 117.3841, + "lat": 37.7768, + "tz": "Asia/Shanghai" + }, + "山东省德州市临邑县": { + "lon": 116.8614, + "lat": 37.1916, + "tz": "Asia/Shanghai" + }, + "山东省德州市齐河县": { + "lon": 116.7527, + "lat": 36.7952, + "tz": "Asia/Shanghai" + }, + "山东省德州市平原县": { + "lon": 116.428, + "lat": 37.1637, + "tz": "Asia/Shanghai" + }, + "山东省德州市夏津县": { + "lon": 115.998, + "lat": 36.9501, + "tz": "Asia/Shanghai" + }, + "山东省德州市武城县": { + "lon": 116.0726, + "lat": 37.2087, + "tz": "Asia/Shanghai" + }, + "山东省德州市乐陵市": { + "lon": 117.2105, + "lat": 37.7283, + "tz": "Asia/Shanghai" + }, + "山东省德州市禹城市": { + "lon": 116.6371, + "lat": 36.9342, + "tz": "Asia/Shanghai" + }, + "山东省聊城市东昌府区": { + "lon": 115.9744, + "lat": 36.456, + "tz": "Asia/Shanghai" + }, + "山东省聊城市茌平区": { + "lon": 116.2477, + "lat": 36.5917, + "tz": "Asia/Shanghai" + }, + "山东省聊城市阳谷县": { + "lon": 115.7785, + "lat": 36.1137, + "tz": "Asia/Shanghai" + }, + "山东省聊城市莘县": { + "lon": 115.6616, + "lat": 36.2377, + "tz": "Asia/Shanghai" + }, + "山东省聊城市东阿县": { + "lon": 116.2432, + "lat": 36.3359, + "tz": "Asia/Shanghai" + }, + "山东省聊城市冠县": { + "lon": 115.4387, + "lat": 36.4835, + "tz": "Asia/Shanghai" + }, + "山东省聊城市高唐县": { + "lon": 116.224, + "lat": 36.8594, + "tz": "Asia/Shanghai" + }, + "山东省聊城市临清市": { + "lon": 115.7076, + "lat": 36.8423, + "tz": "Asia/Shanghai" + }, + "山东省滨州市滨城区": { + "lon": 118.0141, + "lat": 37.3841, + "tz": "Asia/Shanghai" + }, + "山东省滨州市沾化区": { + "lon": 118.1237, + "lat": 37.6975, + "tz": "Asia/Shanghai" + }, + "山东省滨州市惠民县": { + "lon": 117.5028, + "lat": 37.4831, + "tz": "Asia/Shanghai" + }, + "山东省滨州市阳信县": { + "lon": 117.5754, + "lat": 37.6399, + "tz": "Asia/Shanghai" + }, + "山东省滨州市无棣县": { + "lon": 117.6104, + "lat": 37.7403, + "tz": "Asia/Shanghai" + }, + "山东省滨州市博兴县": { + "lon": 118.117, + "lat": 37.1462, + "tz": "Asia/Shanghai" + }, + "山东省滨州市邹平市": { + "lon": 117.7308, + "lat": 36.8776, + "tz": "Asia/Shanghai" + }, + "山东省菏泽市牡丹区": { + "lon": 115.465, + "lat": 35.2435, + "tz": "Asia/Shanghai" + }, + "山东省菏泽市定陶区": { + "lon": 115.564, + "lat": 35.0735, + "tz": "Asia/Shanghai" + }, + "山东省菏泽市曹县": { + "lon": 115.5439, + "lat": 34.8243, + "tz": "Asia/Shanghai" + }, + "山东省菏泽市单县": { + "lon": 116.0769, + "lat": 34.7916, + "tz": "Asia/Shanghai" + }, + "山东省菏泽市成武县": { + "lon": 115.892, + "lat": 34.9483, + "tz": "Asia/Shanghai" + }, + "山东省菏泽市巨野县": { + "lon": 116.0835, + "lat": 35.3911, + "tz": "Asia/Shanghai" + }, + "山东省菏泽市郓城县": { + "lon": 115.9334, + "lat": 35.5951, + "tz": "Asia/Shanghai" + }, + "山东省菏泽市鄄城县": { + "lon": 115.5086, + "lat": 35.5605, + "tz": "Asia/Shanghai" + }, + "山东省菏泽市东明县": { + "lon": 115.0924, + "lat": 35.2899, + "tz": "Asia/Shanghai" + }, + "河南省郑州市中原区": { + "lon": 113.6055, + "lat": 34.7495, + "tz": "Asia/Shanghai" + }, + "河南省郑州市二七区": { + "lon": 113.6394, + "lat": 34.7321, + "tz": "Asia/Shanghai" + }, + "河南省郑州市管城回族区": { + "lon": 113.6792, + "lat": 34.7475, + "tz": "Asia/Shanghai" + }, + "河南省郑州市金水区": { + "lon": 113.6799, + "lat": 34.7769, + "tz": "Asia/Shanghai" + }, + "河南省郑州市上街区": { + "lon": 113.2919, + "lat": 34.8096, + "tz": "Asia/Shanghai" + }, + "河南省郑州市惠济区": { + "lon": 113.6123, + "lat": 34.8297, + "tz": "Asia/Shanghai" + }, + "河南省郑州市中牟县": { + "lon": 114.0165, + "lat": 34.723, + "tz": "Asia/Shanghai" + }, + "河南省郑州市巩义市": { + "lon": 112.9767, + "lat": 34.7533, + "tz": "Asia/Shanghai" + }, + "河南省郑州市荥阳市": { + "lon": 113.385, + "lat": 34.7899, + "tz": "Asia/Shanghai" + }, + "河南省郑州市新密市": { + "lon": 113.3741, + "lat": 34.5389, + "tz": "Asia/Shanghai" + }, + "河南省郑州市新郑市": { + "lon": 113.7335, + "lat": 34.3955, + "tz": "Asia/Shanghai" + }, + "河南省郑州市登封市": { + "lon": 113.0314, + "lat": 34.4611, + "tz": "Asia/Shanghai" + }, + "河南省开封市龙亭区": { + "lon": 114.3474, + "lat": 34.8006, + "tz": "Asia/Shanghai" + }, + "河南省开封市顺河回族区": { + "lon": 114.3589, + "lat": 34.8013, + "tz": "Asia/Shanghai" + }, + "河南省开封市鼓楼区": { + "lon": 114.3426, + "lat": 34.7932, + "tz": "Asia/Shanghai" + }, + "河南省开封市禹王台区": { + "lon": 114.3443, + "lat": 34.7806, + "tz": "Asia/Shanghai" + }, + "河南省开封市祥符区": { + "lon": 114.4317, + "lat": 34.7573, + "tz": "Asia/Shanghai" + }, + "河南省开封市杞县": { + "lon": 114.7649, + "lat": 34.5558, + "tz": "Asia/Shanghai" + }, + "河南省开封市通许县": { + "lon": 114.4619, + "lat": 34.4784, + "tz": "Asia/Shanghai" + }, + "河南省开封市尉氏县": { + "lon": 114.188, + "lat": 34.4135, + "tz": "Asia/Shanghai" + }, + "河南省开封市兰考县": { + "lon": 114.815, + "lat": 34.8309, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市老城区": { + "lon": 112.4711, + "lat": 34.684, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市西工区": { + "lon": 112.4369, + "lat": 34.6688, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市瀍河回族区": { + "lon": 112.4855, + "lat": 34.6858, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市涧西区": { + "lon": 112.3929, + "lat": 34.6552, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市孟津区": { + "lon": 112.4376, + "lat": 34.8273, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市洛龙区": { + "lon": 112.4504, + "lat": 34.6196, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市新安县": { + "lon": 112.1351, + "lat": 34.7296, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市栾川县": { + "lon": 111.6125, + "lat": 33.7849, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市嵩县": { + "lon": 112.0815, + "lat": 34.1328, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市汝阳县": { + "lon": 112.4676, + "lat": 34.1545, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市宜阳县": { + "lon": 112.1738, + "lat": 34.5176, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市洛宁县": { + "lon": 111.6494, + "lat": 34.3886, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市伊川县": { + "lon": 112.4231, + "lat": 34.4245, + "tz": "Asia/Shanghai" + }, + "河南省洛阳市偃师区": { + "lon": 112.7816, + "lat": 34.7241, + "tz": "Asia/Shanghai" + }, + "河南省平顶山市新华区": { + "lon": 113.2928, + "lat": 33.739, + "tz": "Asia/Shanghai" + }, + "河南省平顶山市卫东区": { + "lon": 113.3041, + "lat": 33.7407, + "tz": "Asia/Shanghai" + }, + "河南省平顶山市石龙区": { + "lon": 112.884, + "lat": 33.9032, + "tz": "Asia/Shanghai" + }, + "河南省平顶山市湛河区": { + "lon": 113.3146, + "lat": 33.7271, + "tz": "Asia/Shanghai" + }, + "河南省平顶山市宝丰县": { + "lon": 113.0604, + "lat": 33.8677, + "tz": "Asia/Shanghai" + }, + "河南省平顶山市叶县": { + "lon": 113.3519, + "lat": 33.6226, + "tz": "Asia/Shanghai" + }, + "河南省平顶山市鲁山县": { + "lon": 112.9008, + "lat": 33.742, + "tz": "Asia/Shanghai" + }, + "河南省平顶山市郏县": { + "lon": 113.2142, + "lat": 33.9734, + "tz": "Asia/Shanghai" + }, + "河南省平顶山市舞钢市": { + "lon": 113.5202, + "lat": 33.3038, + "tz": "Asia/Shanghai" + }, + "河南省平顶山市汝州市": { + "lon": 112.8393, + "lat": 34.1689, + "tz": "Asia/Shanghai" + }, + "河南省安阳市文峰区": { + "lon": 114.3465, + "lat": 36.098, + "tz": "Asia/Shanghai" + }, + "河南省安阳市北关区": { + "lon": 114.3466, + "lat": 36.1097, + "tz": "Asia/Shanghai" + }, + "河南省安阳市殷都区": { + "lon": 114.2941, + "lat": 36.1089, + "tz": "Asia/Shanghai" + }, + "河南省安阳市龙安区": { + "lon": 114.3175, + "lat": 36.0955, + "tz": "Asia/Shanghai" + }, + "河南省安阳市安阳县": { + "lon": 114.124, + "lat": 36.1304, + "tz": "Asia/Shanghai" + }, + "河南省安阳市汤阴县": { + "lon": 114.3563, + "lat": 35.9223, + "tz": "Asia/Shanghai" + }, + "河南省安阳市滑县": { + "lon": 114.5183, + "lat": 35.5749, + "tz": "Asia/Shanghai" + }, + "河南省安阳市内黄县": { + "lon": 114.899, + "lat": 35.9539, + "tz": "Asia/Shanghai" + }, + "河南省安阳市林州市": { + "lon": 113.8176, + "lat": 36.0635, + "tz": "Asia/Shanghai" + }, + "河南省鹤壁市鹤山区": { + "lon": 114.1604, + "lat": 35.9361, + "tz": "Asia/Shanghai" + }, + "河南省鹤壁市山城区": { + "lon": 114.1781, + "lat": 35.896, + "tz": "Asia/Shanghai" + }, + "河南省鹤壁市淇滨区": { + "lon": 114.288, + "lat": 35.7485, + "tz": "Asia/Shanghai" + }, + "河南省鹤壁市浚县": { + "lon": 114.5446, + "lat": 35.6715, + "tz": "Asia/Shanghai" + }, + "河南省鹤壁市淇县": { + "lon": 114.1944, + "lat": 35.6096, + "tz": "Asia/Shanghai" + }, + "河南省新乡市红旗区": { + "lon": 113.8722, + "lat": 35.3033, + "tz": "Asia/Shanghai" + }, + "河南省新乡市卫滨区": { + "lon": 113.8601, + "lat": 35.3055, + "tz": "Asia/Shanghai" + }, + "河南省新乡市凤泉区": { + "lon": 113.9008, + "lat": 35.3804, + "tz": "Asia/Shanghai" + }, + "河南省新乡市牧野区": { + "lon": 113.8912, + "lat": 35.3136, + "tz": "Asia/Shanghai" + }, + "河南省新乡市新乡县": { + "lon": 113.8, + "lat": 35.1906, + "tz": "Asia/Shanghai" + }, + "河南省新乡市获嘉县": { + "lon": 113.6511, + "lat": 35.2623, + "tz": "Asia/Shanghai" + }, + "河南省新乡市原阳县": { + "lon": 113.96, + "lat": 35.0548, + "tz": "Asia/Shanghai" + }, + "河南省新乡市延津县": { + "lon": 114.195, + "lat": 35.15, + "tz": "Asia/Shanghai" + }, + "河南省新乡市封丘县": { + "lon": 114.4174, + "lat": 35.0411, + "tz": "Asia/Shanghai" + }, + "河南省新乡市卫辉市": { + "lon": 114.0597, + "lat": 35.4045, + "tz": "Asia/Shanghai" + }, + "河南省新乡市辉县市": { + "lon": 113.7963, + "lat": 35.4616, + "tz": "Asia/Shanghai" + }, + "河南省新乡市长垣市": { + "lon": 114.6682, + "lat": 35.1968, + "tz": "Asia/Shanghai" + }, + "河南省焦作市解放区": { + "lon": 113.2197, + "lat": 35.2418, + "tz": "Asia/Shanghai" + }, + "河南省焦作市中站区": { + "lon": 113.169, + "lat": 35.2365, + "tz": "Asia/Shanghai" + }, + "河南省焦作市马村区": { + "lon": 113.3152, + "lat": 35.2658, + "tz": "Asia/Shanghai" + }, + "河南省焦作市山阳区": { + "lon": 113.2613, + "lat": 35.2153, + "tz": "Asia/Shanghai" + }, + "河南省焦作市修武县": { + "lon": 113.4409, + "lat": 35.2303, + "tz": "Asia/Shanghai" + }, + "河南省焦作市博爱县": { + "lon": 113.0628, + "lat": 35.1708, + "tz": "Asia/Shanghai" + }, + "河南省焦作市武陟县": { + "lon": 113.4018, + "lat": 35.0993, + "tz": "Asia/Shanghai" + }, + "河南省焦作市温县": { + "lon": 113.0726, + "lat": 34.9419, + "tz": "Asia/Shanghai" + }, + "河南省焦作市沁阳市": { + "lon": 112.9285, + "lat": 35.0898, + "tz": "Asia/Shanghai" + }, + "河南省焦作市孟州市": { + "lon": 112.7809, + "lat": 34.9105, + "tz": "Asia/Shanghai" + }, + "河南省濮阳市华龙区": { + "lon": 115.026, + "lat": 35.7605, + "tz": "Asia/Shanghai" + }, + "河南省濮阳市清丰县": { + "lon": 115.1012, + "lat": 35.9023, + "tz": "Asia/Shanghai" + }, + "河南省濮阳市南乐县": { + "lon": 115.1984, + "lat": 36.0752, + "tz": "Asia/Shanghai" + }, + "河南省濮阳市范县": { + "lon": 115.4984, + "lat": 35.852, + "tz": "Asia/Shanghai" + }, + "河南省濮阳市台前县": { + "lon": 115.8501, + "lat": 35.9966, + "tz": "Asia/Shanghai" + }, + "河南省濮阳市濮阳县": { + "lon": 115.018, + "lat": 35.7104, + "tz": "Asia/Shanghai" + }, + "河南省许昌市魏都区": { + "lon": 113.8223, + "lat": 34.0286, + "tz": "Asia/Shanghai" + }, + "河南省许昌市建安区": { + "lon": 113.837, + "lat": 34.0066, + "tz": "Asia/Shanghai" + }, + "河南省许昌市鄢陵县": { + "lon": 114.1826, + "lat": 34.1018, + "tz": "Asia/Shanghai" + }, + "河南省许昌市襄城县": { + "lon": 113.4869, + "lat": 33.8574, + "tz": "Asia/Shanghai" + }, + "河南省许昌市禹州市": { + "lon": 113.465, + "lat": 34.1557, + "tz": "Asia/Shanghai" + }, + "河南省许昌市长葛市": { + "lon": 113.7628, + "lat": 34.2206, + "tz": "Asia/Shanghai" + }, + "河南省漯河市源汇区": { + "lon": 114.012, + "lat": 33.5669, + "tz": "Asia/Shanghai" + }, + "河南省漯河市郾城区": { + "lon": 114.0109, + "lat": 33.5904, + "tz": "Asia/Shanghai" + }, + "河南省漯河市召陵区": { + "lon": 114.0457, + "lat": 33.569, + "tz": "Asia/Shanghai" + }, + "河南省漯河市舞阳县": { + "lon": 113.6047, + "lat": 33.4381, + "tz": "Asia/Shanghai" + }, + "河南省漯河市临颍县": { + "lon": 113.9331, + "lat": 33.8077, + "tz": "Asia/Shanghai" + }, + "河南省三门峡市湖滨区": { + "lon": 111.1889, + "lat": 34.7791, + "tz": "Asia/Shanghai" + }, + "河南省三门峡市陕州区": { + "lon": 111.0978, + "lat": 34.7211, + "tz": "Asia/Shanghai" + }, + "河南省三门峡市渑池县": { + "lon": 111.7568, + "lat": 34.7645, + "tz": "Asia/Shanghai" + }, + "河南省三门峡市卢氏县": { + "lon": 111.0468, + "lat": 34.0553, + "tz": "Asia/Shanghai" + }, + "河南省三门峡市义马市": { + "lon": 111.8634, + "lat": 34.7481, + "tz": "Asia/Shanghai" + }, + "河南省三门峡市灵宝市": { + "lon": 110.8804, + "lat": 34.5227, + "tz": "Asia/Shanghai" + }, + "河南省南阳市宛城区": { + "lon": 112.5388, + "lat": 32.9969, + "tz": "Asia/Shanghai" + }, + "河南省南阳市卧龙区": { + "lon": 112.5229, + "lat": 32.9919, + "tz": "Asia/Shanghai" + }, + "河南省南阳市南召县": { + "lon": 112.4294, + "lat": 33.4901, + "tz": "Asia/Shanghai" + }, + "河南省南阳市方城县": { + "lon": 113.0048, + "lat": 33.2568, + "tz": "Asia/Shanghai" + }, + "河南省南阳市西峡县": { + "lon": 111.4797, + "lat": 33.3046, + "tz": "Asia/Shanghai" + }, + "河南省南阳市镇平县": { + "lon": 112.2268, + "lat": 33.0385, + "tz": "Asia/Shanghai" + }, + "河南省南阳市内乡县": { + "lon": 111.8379, + "lat": 33.0484, + "tz": "Asia/Shanghai" + }, + "河南省南阳市淅川县": { + "lon": 111.483, + "lat": 33.1379, + "tz": "Asia/Shanghai" + }, + "河南省南阳市社旗县": { + "lon": 112.9324, + "lat": 33.0582, + "tz": "Asia/Shanghai" + }, + "河南省南阳市唐河县": { + "lon": 112.8326, + "lat": 32.6901, + "tz": "Asia/Shanghai" + }, + "河南省南阳市新野县": { + "lon": 112.3596, + "lat": 32.526, + "tz": "Asia/Shanghai" + }, + "河南省南阳市桐柏县": { + "lon": 113.3998, + "lat": 32.3691, + "tz": "Asia/Shanghai" + }, + "河南省南阳市邓州市": { + "lon": 112.0866, + "lat": 32.6836, + "tz": "Asia/Shanghai" + }, + "河南省商丘市梁园区": { + "lon": 115.6491, + "lat": 34.4379, + "tz": "Asia/Shanghai" + }, + "河南省商丘市睢阳区": { + "lon": 115.6483, + "lat": 34.3919, + "tz": "Asia/Shanghai" + }, + "河南省商丘市民权县": { + "lon": 115.1423, + "lat": 34.6494, + "tz": "Asia/Shanghai" + }, + "河南省商丘市睢县": { + "lon": 115.0643, + "lat": 34.4295, + "tz": "Asia/Shanghai" + }, + "河南省商丘市宁陵县": { + "lon": 115.3143, + "lat": 34.4505, + "tz": "Asia/Shanghai" + }, + "河南省商丘市柘城县": { + "lon": 115.3017, + "lat": 34.0766, + "tz": "Asia/Shanghai" + }, + "河南省商丘市虞城县": { + "lon": 115.8584, + "lat": 34.401, + "tz": "Asia/Shanghai" + }, + "河南省商丘市夏邑县": { + "lon": 116.1343, + "lat": 34.2421, + "tz": "Asia/Shanghai" + }, + "河南省商丘市永城市": { + "lon": 116.4441, + "lat": 33.9326, + "tz": "Asia/Shanghai" + }, + "河南省信阳市浉河区": { + "lon": 114.0691, + "lat": 32.1252, + "tz": "Asia/Shanghai" + }, + "河南省信阳市平桥区": { + "lon": 114.1202, + "lat": 32.1003, + "tz": "Asia/Shanghai" + }, + "河南省信阳市罗山县": { + "lon": 114.5281, + "lat": 32.2054, + "tz": "Asia/Shanghai" + }, + "河南省信阳市光山县": { + "lon": 114.8984, + "lat": 32.0127, + "tz": "Asia/Shanghai" + }, + "河南省信阳市新县": { + "lon": 114.8719, + "lat": 31.6373, + "tz": "Asia/Shanghai" + }, + "河南省信阳市商城县": { + "lon": 115.4006, + "lat": 31.8018, + "tz": "Asia/Shanghai" + }, + "河南省信阳市固始县": { + "lon": 115.662, + "lat": 32.1853, + "tz": "Asia/Shanghai" + }, + "河南省信阳市潢川县": { + "lon": 115.0445, + "lat": 32.136, + "tz": "Asia/Shanghai" + }, + "河南省信阳市淮滨县": { + "lon": 115.4097, + "lat": 32.4546, + "tz": "Asia/Shanghai" + }, + "河南省信阳市息县": { + "lon": 114.7353, + "lat": 32.3469, + "tz": "Asia/Shanghai" + }, + "河南省周口市川汇区": { + "lon": 114.6468, + "lat": 33.6165, + "tz": "Asia/Shanghai" + }, + "河南省周口市淮阳区": { + "lon": 114.8648, + "lat": 33.7342, + "tz": "Asia/Shanghai" + }, + "河南省周口市扶沟县": { + "lon": 114.3861, + "lat": 34.0553, + "tz": "Asia/Shanghai" + }, + "河南省周口市西华县": { + "lon": 114.5246, + "lat": 33.7859, + "tz": "Asia/Shanghai" + }, + "河南省周口市商水县": { + "lon": 114.604, + "lat": 33.5456, + "tz": "Asia/Shanghai" + }, + "河南省周口市沈丘县": { + "lon": 115.0726, + "lat": 33.3969, + "tz": "Asia/Shanghai" + }, + "河南省周口市郸城县": { + "lon": 115.1833, + "lat": 33.6453, + "tz": "Asia/Shanghai" + }, + "河南省周口市太康县": { + "lon": 114.8484, + "lat": 34.0668, + "tz": "Asia/Shanghai" + }, + "河南省周口市鹿邑县": { + "lon": 115.4807, + "lat": 33.8624, + "tz": "Asia/Shanghai" + }, + "河南省周口市项城市": { + "lon": 114.8942, + "lat": 33.4449, + "tz": "Asia/Shanghai" + }, + "河南省驻马店市驿城区": { + "lon": 114.0233, + "lat": 32.9794, + "tz": "Asia/Shanghai" + }, + "河南省驻马店市西平县": { + "lon": 114.0209, + "lat": 33.3839, + "tz": "Asia/Shanghai" + }, + "河南省驻马店市上蔡县": { + "lon": 114.2612, + "lat": 33.2664, + "tz": "Asia/Shanghai" + }, + "河南省驻马店市平舆县": { + "lon": 114.6318, + "lat": 32.9577, + "tz": "Asia/Shanghai" + }, + "河南省驻马店市正阳县": { + "lon": 114.3837, + "lat": 32.6037, + "tz": "Asia/Shanghai" + }, + "河南省驻马店市确山县": { + "lon": 114.0208, + "lat": 32.8035, + "tz": "Asia/Shanghai" + }, + "河南省驻马店市泌阳县": { + "lon": 113.3198, + "lat": 32.7271, + "tz": "Asia/Shanghai" + }, + "河南省驻马店市汝南县": { + "lon": 114.3538, + "lat": 33.0063, + "tz": "Asia/Shanghai" + }, + "河南省驻马店市遂平县": { + "lon": 113.9979, + "lat": 33.1488, + "tz": "Asia/Shanghai" + }, + "河南省驻马店市新蔡县": { + "lon": 114.9699, + "lat": 32.7521, + "tz": "Asia/Shanghai" + }, + "河南省济源市": { + "lon": 112.5841, + "lat": 35.0912, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市江岸区": { + "lon": 114.2976, + "lat": 30.5973, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市江汉区": { + "lon": 114.2777, + "lat": 30.5812, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市硚口区": { + "lon": 114.2592, + "lat": 30.5731, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市汉阳区": { + "lon": 114.2604, + "lat": 30.5518, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市武昌区": { + "lon": 114.3019, + "lat": 30.549, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市青山区": { + "lon": 114.3915, + "lat": 30.6365, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市洪山区": { + "lon": 114.3952, + "lat": 30.5066, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市东西湖区": { + "lon": 114.1368, + "lat": 30.6248, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市汉南区": { + "lon": 114.0755, + "lat": 30.312, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市蔡甸区": { + "lon": 114.0237, + "lat": 30.5846, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市江夏区": { + "lon": 114.3085, + "lat": 30.3515, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市黄陂区": { + "lon": 114.3685, + "lat": 30.8763, + "tz": "Asia/Shanghai" + }, + "湖北省武汉市新洲区": { + "lon": 114.7969, + "lat": 30.8445, + "tz": "Asia/Shanghai" + }, + "湖北省黄石市黄石港区": { + "lon": 115.0847, + "lat": 30.2144, + "tz": "Asia/Shanghai" + }, + "湖北省黄石市西塞山区": { + "lon": 115.0879, + "lat": 30.2077, + "tz": "Asia/Shanghai" + }, + "湖北省黄石市下陆区": { + "lon": 114.9706, + "lat": 30.1805, + "tz": "Asia/Shanghai" + }, + "湖北省黄石市铁山区": { + "lon": 114.8963, + "lat": 30.2087, + "tz": "Asia/Shanghai" + }, + "湖北省黄石市阳新县": { + "lon": 115.2076, + "lat": 29.8441, + "tz": "Asia/Shanghai" + }, + "湖北省黄石市大冶市": { + "lon": 114.9697, + "lat": 30.1014, + "tz": "Asia/Shanghai" + }, + "湖北省十堰市茅箭区": { + "lon": 110.7809, + "lat": 32.6466, + "tz": "Asia/Shanghai" + }, + "湖北省十堰市张湾区": { + "lon": 110.767, + "lat": 32.6547, + "tz": "Asia/Shanghai" + }, + "湖北省十堰市郧阳区": { + "lon": 110.8068, + "lat": 32.8404, + "tz": "Asia/Shanghai" + }, + "湖北省十堰市郧西县": { + "lon": 110.4211, + "lat": 32.9932, + "tz": "Asia/Shanghai" + }, + "湖北省十堰市竹山县": { + "lon": 110.2245, + "lat": 32.2281, + "tz": "Asia/Shanghai" + }, + "湖北省十堰市竹溪县": { + "lon": 109.7122, + "lat": 32.3176, + "tz": "Asia/Shanghai" + }, + "湖北省十堰市房县": { + "lon": 110.7367, + "lat": 32.0572, + "tz": "Asia/Shanghai" + }, + "湖北省十堰市丹江口市": { + "lon": 111.5079, + "lat": 32.541, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市西陵区": { + "lon": 111.2898, + "lat": 30.7049, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市伍家岗区": { + "lon": 111.3015, + "lat": 30.6815, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市点军区": { + "lon": 111.2625, + "lat": 30.6948, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市猇亭区": { + "lon": 111.4217, + "lat": 30.5331, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市夷陵区": { + "lon": 111.321, + "lat": 30.7725, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市远安县": { + "lon": 111.6377, + "lat": 31.062, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市兴山县": { + "lon": 110.7493, + "lat": 31.3501, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市秭归县": { + "lon": 110.9715, + "lat": 30.8264, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市长阳土家族自治县": { + "lon": 111.1929, + "lat": 30.469, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市五峰土家族自治县": { + "lon": 110.67, + "lat": 30.2019, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市宜都市": { + "lon": 111.4485, + "lat": 30.3897, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市当阳市": { + "lon": 111.7876, + "lat": 30.8269, + "tz": "Asia/Shanghai" + }, + "湖北省宜昌市枝江市": { + "lon": 111.746, + "lat": 30.4279, + "tz": "Asia/Shanghai" + }, + "湖北省襄阳市襄城区": { + "lon": 112.1443, + "lat": 32.0171, + "tz": "Asia/Shanghai" + }, + "湖北省襄阳市樊城区": { + "lon": 112.1335, + "lat": 32.0606, + "tz": "Asia/Shanghai" + }, + "湖北省襄阳市襄州区": { + "lon": 112.1914, + "lat": 32.0876, + "tz": "Asia/Shanghai" + }, + "湖北省襄阳市南漳县": { + "lon": 111.8387, + "lat": 31.7791, + "tz": "Asia/Shanghai" + }, + "湖北省襄阳市谷城县": { + "lon": 111.6344, + "lat": 32.265, + "tz": "Asia/Shanghai" + }, + "湖北省襄阳市保康县": { + "lon": 111.2565, + "lat": 31.8756, + "tz": "Asia/Shanghai" + }, + "湖北省襄阳市老河口市": { + "lon": 111.6699, + "lat": 32.3877, + "tz": "Asia/Shanghai" + }, + "湖北省襄阳市枣阳市": { + "lon": 112.7594, + "lat": 32.1252, + "tz": "Asia/Shanghai" + }, + "湖北省襄阳市宜城市": { + "lon": 112.2556, + "lat": 31.7113, + "tz": "Asia/Shanghai" + }, + "湖北省鄂州市梁子湖区": { + "lon": 114.6768, + "lat": 30.1008, + "tz": "Asia/Shanghai" + }, + "湖北省鄂州市华容区": { + "lon": 114.7362, + "lat": 30.5369, + "tz": "Asia/Shanghai" + }, + "湖北省鄂州市鄂城区": { + "lon": 114.885, + "lat": 30.3994, + "tz": "Asia/Shanghai" + }, + "湖北省荆门市东宝区": { + "lon": 112.199, + "lat": 31.0357, + "tz": "Asia/Shanghai" + }, + "湖北省荆门市掇刀区": { + "lon": 112.1926, + "lat": 30.983, + "tz": "Asia/Shanghai" + }, + "湖北省荆门市沙洋县": { + "lon": 112.5897, + "lat": 30.7062, + "tz": "Asia/Shanghai" + }, + "湖北省荆门市钟祥市": { + "lon": 112.5817, + "lat": 31.1679, + "tz": "Asia/Shanghai" + }, + "湖北省荆门市京山市": { + "lon": 113.1085, + "lat": 31.0245, + "tz": "Asia/Shanghai" + }, + "湖北省孝感市孝南区": { + "lon": 113.9204, + "lat": 30.9284, + "tz": "Asia/Shanghai" + }, + "湖北省孝感市孝昌县": { + "lon": 113.9833, + "lat": 31.2538, + "tz": "Asia/Shanghai" + }, + "湖北省孝感市大悟县": { + "lon": 114.1204, + "lat": 31.5673, + "tz": "Asia/Shanghai" + }, + "湖北省孝感市云梦县": { + "lon": 113.7448, + "lat": 31.0239, + "tz": "Asia/Shanghai" + }, + "湖北省孝感市应城市": { + "lon": 113.5681, + "lat": 30.9415, + "tz": "Asia/Shanghai" + }, + "湖北省孝感市安陆市": { + "lon": 113.6846, + "lat": 31.2639, + "tz": "Asia/Shanghai" + }, + "湖北省孝感市汉川市": { + "lon": 113.8297, + "lat": 30.6547, + "tz": "Asia/Shanghai" + }, + "湖北省荆州市沙市区": { + "lon": 112.2517, + "lat": 30.3185, + "tz": "Asia/Shanghai" + }, + "湖北省荆州市荆州区": { + "lon": 112.1896, + "lat": 30.3532, + "tz": "Asia/Shanghai" + }, + "湖北省荆州市公安县": { + "lon": 112.2245, + "lat": 30.0616, + "tz": "Asia/Shanghai" + }, + "湖北省荆州市监利市": { + "lon": 112.8988, + "lat": 29.8228, + "tz": "Asia/Shanghai" + }, + "湖北省荆州市江陵县": { + "lon": 112.4115, + "lat": 30.0363, + "tz": "Asia/Shanghai" + }, + "湖北省荆州市石首市": { + "lon": 112.403, + "lat": 29.7188, + "tz": "Asia/Shanghai" + }, + "湖北省荆州市洪湖市": { + "lon": 113.4644, + "lat": 29.8154, + "tz": "Asia/Shanghai" + }, + "湖北省荆州市松滋市": { + "lon": 111.7724, + "lat": 30.1786, + "tz": "Asia/Shanghai" + }, + "湖北省黄冈市黄州区": { + "lon": 114.8739, + "lat": 30.4501, + "tz": "Asia/Shanghai" + }, + "湖北省黄冈市团风县": { + "lon": 114.8669, + "lat": 30.6383, + "tz": "Asia/Shanghai" + }, + "湖北省黄冈市红安县": { + "lon": 114.61, + "lat": 31.2871, + "tz": "Asia/Shanghai" + }, + "湖北省黄冈市罗田县": { + "lon": 115.3934, + "lat": 30.7839, + "tz": "Asia/Shanghai" + }, + "湖北省黄冈市英山县": { + "lon": 115.6723, + "lat": 30.7383, + "tz": "Asia/Shanghai" + }, + "湖北省黄冈市浠水县": { + "lon": 115.2581, + "lat": 30.4573, + "tz": "Asia/Shanghai" + }, + "湖北省黄冈市蕲春县": { + "lon": 115.4285, + "lat": 30.2373, + "tz": "Asia/Shanghai" + }, + "湖北省黄冈市黄梅县": { + "lon": 115.9376, + "lat": 30.0778, + "tz": "Asia/Shanghai" + }, + "湖北省黄冈市麻城市": { + "lon": 115.02, + "lat": 31.18, + "tz": "Asia/Shanghai" + }, + "湖北省黄冈市武穴市": { + "lon": 115.5573, + "lat": 29.852, + "tz": "Asia/Shanghai" + }, + "湖北省咸宁市咸安区": { + "lon": 114.3285, + "lat": 29.8272, + "tz": "Asia/Shanghai" + }, + "湖北省咸宁市嘉鱼县": { + "lon": 113.9161, + "lat": 29.9761, + "tz": "Asia/Shanghai" + }, + "湖北省咸宁市通城县": { + "lon": 113.8086, + "lat": 29.2489, + "tz": "Asia/Shanghai" + }, + "湖北省咸宁市崇阳县": { + "lon": 114.0443, + "lat": 29.5435, + "tz": "Asia/Shanghai" + }, + "湖北省咸宁市通山县": { + "lon": 114.4879, + "lat": 29.607, + "tz": "Asia/Shanghai" + }, + "湖北省咸宁市赤壁市": { + "lon": 113.8782, + "lat": 29.7196, + "tz": "Asia/Shanghai" + }, + "湖北省随州市曾都区": { + "lon": 113.3683, + "lat": 31.7194, + "tz": "Asia/Shanghai" + }, + "湖北省随州市随县": { + "lon": 113.2953, + "lat": 31.8563, + "tz": "Asia/Shanghai" + }, + "湖北省随州市广水市": { + "lon": 113.8209, + "lat": 31.6199, + "tz": "Asia/Shanghai" + }, + "湖北省恩施土家族苗族自治州恩施市": { + "lon": 109.4819, + "lat": 30.285, + "tz": "Asia/Shanghai" + }, + "湖北省恩施土家族苗族自治州利川市": { + "lon": 108.9391, + "lat": 30.297, + "tz": "Asia/Shanghai" + }, + "湖北省恩施土家族苗族自治州建始县": { + "lon": 109.7189, + "lat": 30.6042, + "tz": "Asia/Shanghai" + }, + "湖北省恩施土家族苗族自治州巴东县": { + "lon": 110.3316, + "lat": 31.0436, + "tz": "Asia/Shanghai" + }, + "湖北省恩施土家族苗族自治州宣恩县": { + "lon": 109.4779, + "lat": 29.9912, + "tz": "Asia/Shanghai" + }, + "湖北省恩施土家族苗族自治州咸丰县": { + "lon": 109.1456, + "lat": 29.6815, + "tz": "Asia/Shanghai" + }, + "湖北省恩施土家族苗族自治州来凤县": { + "lon": 109.4034, + "lat": 29.5095, + "tz": "Asia/Shanghai" + }, + "湖北省恩施土家族苗族自治州鹤峰县": { + "lon": 110.0288, + "lat": 29.8898, + "tz": "Asia/Shanghai" + }, + "湖北省仙桃市": { + "lon": 113.4479, + "lat": 30.3674, + "tz": "Asia/Shanghai" + }, + "湖北省潜江市": { + "lon": 112.8913, + "lat": 30.4239, + "tz": "Asia/Shanghai" + }, + "湖北省天门市": { + "lon": 113.1598, + "lat": 30.6554, + "tz": "Asia/Shanghai" + }, + "湖北省神农架林区": { + "lon": 110.6665, + "lat": 31.7467, + "tz": "Asia/Shanghai" + }, + "湖南省长沙市芙蓉区": { + "lon": 112.9825, + "lat": 28.1965, + "tz": "Asia/Shanghai" + }, + "湖南省长沙市天心区": { + "lon": 112.9675, + "lat": 28.1958, + "tz": "Asia/Shanghai" + }, + "湖南省长沙市岳麓区": { + "lon": 112.9062, + "lat": 28.2166, + "tz": "Asia/Shanghai" + }, + "湖南省长沙市开福区": { + "lon": 112.98, + "lat": 28.2047, + "tz": "Asia/Shanghai" + }, + "湖南省长沙市雨花区": { + "lon": 113.0107, + "lat": 28.1133, + "tz": "Asia/Shanghai" + }, + "湖南省长沙市望城区": { + "lon": 112.814, + "lat": 28.3509, + "tz": "Asia/Shanghai" + }, + "湖南省长沙市长沙县": { + "lon": 113.0742, + "lat": 28.2411, + "tz": "Asia/Shanghai" + }, + "湖南省长沙市浏阳市": { + "lon": 113.6279, + "lat": 28.1446, + "tz": "Asia/Shanghai" + }, + "湖南省长沙市宁乡市": { + "lon": 112.5478, + "lat": 28.2574, + "tz": "Asia/Shanghai" + }, + "湖南省株洲市荷塘区": { + "lon": 113.1568, + "lat": 27.8362, + "tz": "Asia/Shanghai" + }, + "湖南省株洲市芦淞区": { + "lon": 113.1494, + "lat": 27.8304, + "tz": "Asia/Shanghai" + }, + "湖南省株洲市石峰区": { + "lon": 113.1071, + "lat": 27.8751, + "tz": "Asia/Shanghai" + }, + "湖南省株洲市天元区": { + "lon": 113.1304, + "lat": 27.83, + "tz": "Asia/Shanghai" + }, + "湖南省株洲市渌口区": { + "lon": 113.1404, + "lat": 27.709, + "tz": "Asia/Shanghai" + }, + "湖南省株洲市攸县": { + "lon": 113.34, + "lat": 27.0033, + "tz": "Asia/Shanghai" + }, + "湖南省株洲市茶陵县": { + "lon": 113.5411, + "lat": 26.7931, + "tz": "Asia/Shanghai" + }, + "湖南省株洲市炎陵县": { + "lon": 113.7715, + "lat": 26.4929, + "tz": "Asia/Shanghai" + }, + "湖南省株洲市醴陵市": { + "lon": 113.5015, + "lat": 27.6612, + "tz": "Asia/Shanghai" + }, + "湖南省湘潭市雨湖区": { + "lon": 112.9021, + "lat": 27.8643, + "tz": "Asia/Shanghai" + }, + "湖南省湘潭市岳塘区": { + "lon": 112.9223, + "lat": 27.8323, + "tz": "Asia/Shanghai" + }, + "湖南省湘潭市湘潭县": { + "lon": 112.9474, + "lat": 27.782, + "tz": "Asia/Shanghai" + }, + "湖南省湘潭市湘乡市": { + "lon": 112.5198, + "lat": 27.7383, + "tz": "Asia/Shanghai" + }, + "湖南省湘潭市韶山市": { + "lon": 112.5231, + "lat": 27.9261, + "tz": "Asia/Shanghai" + }, + "湖南省衡阳市珠晖区": { + "lon": 112.6211, + "lat": 26.8947, + "tz": "Asia/Shanghai" + }, + "湖南省衡阳市雁峰区": { + "lon": 112.607, + "lat": 26.8973, + "tz": "Asia/Shanghai" + }, + "湖南省衡阳市石鼓区": { + "lon": 112.6024, + "lat": 26.9075, + "tz": "Asia/Shanghai" + }, + "湖南省衡阳市蒸湘区": { + "lon": 112.5654, + "lat": 26.8944, + "tz": "Asia/Shanghai" + }, + "湖南省衡阳市南岳区": { + "lon": 112.7287, + "lat": 27.2439, + "tz": "Asia/Shanghai" + }, + "湖南省衡阳市衡阳县": { + "lon": 112.374, + "lat": 26.9656, + "tz": "Asia/Shanghai" + }, + "湖南省衡阳市衡南县": { + "lon": 112.6721, + "lat": 26.7435, + "tz": "Asia/Shanghai" + }, + "湖南省衡阳市衡山县": { + "lon": 112.8644, + "lat": 27.2383, + "tz": "Asia/Shanghai" + }, + "湖南省衡阳市衡东县": { + "lon": 112.945, + "lat": 27.087, + "tz": "Asia/Shanghai" + }, + "湖南省衡阳市祁东县": { + "lon": 112.1055, + "lat": 26.7904, + "tz": "Asia/Shanghai" + }, + "湖南省衡阳市耒阳市": { + "lon": 112.8419, + "lat": 26.4177, + "tz": "Asia/Shanghai" + }, + "湖南省衡阳市常宁市": { + "lon": 112.3912, + "lat": 26.41, + "tz": "Asia/Shanghai" + }, + "湖南省邵阳市双清区": { + "lon": 111.4742, + "lat": 27.2433, + "tz": "Asia/Shanghai" + }, + "湖南省邵阳市大祥区": { + "lon": 111.4574, + "lat": 27.2368, + "tz": "Asia/Shanghai" + }, + "湖南省邵阳市北塔区": { + "lon": 111.4467, + "lat": 27.2489, + "tz": "Asia/Shanghai" + }, + "湖南省邵阳市新邵县": { + "lon": 111.4542, + "lat": 27.3146, + "tz": "Asia/Shanghai" + }, + "湖南省邵阳市邵阳县": { + "lon": 111.2704, + "lat": 26.9931, + "tz": "Asia/Shanghai" + }, + "湖南省邵阳市隆回县": { + "lon": 111.0335, + "lat": 27.1193, + "tz": "Asia/Shanghai" + }, + "湖南省邵阳市洞口县": { + "lon": 110.5746, + "lat": 27.0659, + "tz": "Asia/Shanghai" + }, + "湖南省邵阳市绥宁县": { + "lon": 110.1503, + "lat": 26.5839, + "tz": "Asia/Shanghai" + }, + "湖南省邵阳市新宁县": { + "lon": 110.8543, + "lat": 26.4425, + "tz": "Asia/Shanghai" + }, + "湖南省邵阳市城步苗族自治县": { + "lon": 110.3085, + "lat": 26.3669, + "tz": "Asia/Shanghai" + }, + "湖南省邵阳市武冈市": { + "lon": 110.6322, + "lat": 26.7357, + "tz": "Asia/Shanghai" + }, + "湖南省邵阳市邵东市": { + "lon": 111.7376, + "lat": 27.2606, + "tz": "Asia/Shanghai" + }, + "湖南省岳阳市岳阳楼区": { + "lon": 113.1148, + "lat": 29.3693, + "tz": "Asia/Shanghai" + }, + "湖南省岳阳市云溪区": { + "lon": 113.2681, + "lat": 29.476, + "tz": "Asia/Shanghai" + }, + "湖南省岳阳市君山区": { + "lon": 112.9983, + "lat": 29.4407, + "tz": "Asia/Shanghai" + }, + "湖南省岳阳市岳阳县": { + "lon": 113.1101, + "lat": 29.1475, + "tz": "Asia/Shanghai" + }, + "湖南省岳阳市华容县": { + "lon": 112.5539, + "lat": 29.5269, + "tz": "Asia/Shanghai" + }, + "湖南省岳阳市湘阴县": { + "lon": 112.8843, + "lat": 28.6809, + "tz": "Asia/Shanghai" + }, + "湖南省岳阳市平江县": { + "lon": 113.5883, + "lat": 28.7049, + "tz": "Asia/Shanghai" + }, + "湖南省岳阳市汨罗市": { + "lon": 113.0735, + "lat": 28.8061, + "tz": "Asia/Shanghai" + }, + "湖南省岳阳市临湘市": { + "lon": 113.4448, + "lat": 29.4741, + "tz": "Asia/Shanghai" + }, + "湖南省常德市武陵区": { + "lon": 111.6851, + "lat": 29.0435, + "tz": "Asia/Shanghai" + }, + "湖南省常德市鼎城区": { + "lon": 111.6798, + "lat": 29.0175, + "tz": "Asia/Shanghai" + }, + "湖南省常德市安乡县": { + "lon": 112.1665, + "lat": 29.4171, + "tz": "Asia/Shanghai" + }, + "湖南省常德市汉寿县": { + "lon": 111.963, + "lat": 28.9105, + "tz": "Asia/Shanghai" + }, + "湖南省常德市澧县": { + "lon": 111.756, + "lat": 29.6453, + "tz": "Asia/Shanghai" + }, + "湖南省常德市临澧县": { + "lon": 111.6401, + "lat": 29.4461, + "tz": "Asia/Shanghai" + }, + "湖南省常德市桃源县": { + "lon": 111.4788, + "lat": 28.9058, + "tz": "Asia/Shanghai" + }, + "湖南省常德市石门县": { + "lon": 111.3733, + "lat": 29.5872, + "tz": "Asia/Shanghai" + }, + "湖南省常德市津市市": { + "lon": 111.8741, + "lat": 29.6337, + "tz": "Asia/Shanghai" + }, + "湖南省张家界市永定区": { + "lon": 110.4796, + "lat": 29.1288, + "tz": "Asia/Shanghai" + }, + "湖南省张家界市武陵源区": { + "lon": 110.5428, + "lat": 29.3507, + "tz": "Asia/Shanghai" + }, + "湖南省张家界市慈利县": { + "lon": 111.1271, + "lat": 29.4264, + "tz": "Asia/Shanghai" + }, + "湖南省张家界市桑植县": { + "lon": 110.1591, + "lat": 29.4026, + "tz": "Asia/Shanghai" + }, + "湖南省益阳市资阳区": { + "lon": 112.3252, + "lat": 28.596, + "tz": "Asia/Shanghai" + }, + "湖南省益阳市赫山区": { + "lon": 112.3552, + "lat": 28.5715, + "tz": "Asia/Shanghai" + }, + "湖南省益阳市南县": { + "lon": 112.4046, + "lat": 29.3747, + "tz": "Asia/Shanghai" + }, + "湖南省益阳市桃江县": { + "lon": 112.134, + "lat": 28.5241, + "tz": "Asia/Shanghai" + }, + "湖南省益阳市安化县": { + "lon": 111.2164, + "lat": 28.3808, + "tz": "Asia/Shanghai" + }, + "湖南省益阳市沅江市": { + "lon": 112.3554, + "lat": 28.8427, + "tz": "Asia/Shanghai" + }, + "湖南省郴州市北湖区": { + "lon": 113.0267, + "lat": 25.7956, + "tz": "Asia/Shanghai" + }, + "湖南省郴州市苏仙区": { + "lon": 113.0331, + "lat": 25.7961, + "tz": "Asia/Shanghai" + }, + "湖南省郴州市桂阳县": { + "lon": 112.7291, + "lat": 25.7404, + "tz": "Asia/Shanghai" + }, + "湖南省郴州市宜章县": { + "lon": 112.9426, + "lat": 25.3973, + "tz": "Asia/Shanghai" + }, + "湖南省郴州市永兴县": { + "lon": 113.1091, + "lat": 26.1325, + "tz": "Asia/Shanghai" + }, + "湖南省郴州市嘉禾县": { + "lon": 112.3651, + "lat": 25.5901, + "tz": "Asia/Shanghai" + }, + "湖南省郴州市临武县": { + "lon": 112.5595, + "lat": 25.2821, + "tz": "Asia/Shanghai" + }, + "湖南省郴州市汝城县": { + "lon": 113.6804, + "lat": 25.5567, + "tz": "Asia/Shanghai" + }, + "湖南省郴州市桂东县": { + "lon": 113.9408, + "lat": 26.0773, + "tz": "Asia/Shanghai" + }, + "湖南省郴州市安仁县": { + "lon": 113.2666, + "lat": 26.7121, + "tz": "Asia/Shanghai" + }, + "湖南省郴州市资兴市": { + "lon": 113.2313, + "lat": 25.9773, + "tz": "Asia/Shanghai" + }, + "湖南省永州市零陵区": { + "lon": 111.6211, + "lat": 26.2268, + "tz": "Asia/Shanghai" + }, + "湖南省永州市冷水滩区": { + "lon": 111.6019, + "lat": 26.438, + "tz": "Asia/Shanghai" + }, + "湖南省永州市祁阳市": { + "lon": 111.852, + "lat": 26.5895, + "tz": "Asia/Shanghai" + }, + "湖南省永州市东安县": { + "lon": 111.3077, + "lat": 26.4006, + "tz": "Asia/Shanghai" + }, + "湖南省永州市双牌县": { + "lon": 111.6569, + "lat": 25.9627, + "tz": "Asia/Shanghai" + }, + "湖南省永州市道县": { + "lon": 111.5864, + "lat": 25.5215, + "tz": "Asia/Shanghai" + }, + "湖南省永州市江永县": { + "lon": 111.3414, + "lat": 25.2709, + "tz": "Asia/Shanghai" + }, + "湖南省永州市宁远县": { + "lon": 111.9393, + "lat": 25.5872, + "tz": "Asia/Shanghai" + }, + "湖南省永州市蓝山县": { + "lon": 112.1888, + "lat": 25.378, + "tz": "Asia/Shanghai" + }, + "湖南省永州市新田县": { + "lon": 112.215, + "lat": 25.91, + "tz": "Asia/Shanghai" + }, + "湖南省永州市江华瑶族自治县": { + "lon": 111.5721, + "lat": 25.1856, + "tz": "Asia/Shanghai" + }, + "湖南省怀化市鹤城区": { + "lon": 109.9776, + "lat": 27.5519, + "tz": "Asia/Shanghai" + }, + "湖南省怀化市中方县": { + "lon": 109.9435, + "lat": 27.4408, + "tz": "Asia/Shanghai" + }, + "湖南省怀化市沅陵县": { + "lon": 110.3942, + "lat": 28.4587, + "tz": "Asia/Shanghai" + }, + "湖南省怀化市辰溪县": { + "lon": 110.1922, + "lat": 28.0088, + "tz": "Asia/Shanghai" + }, + "湖南省怀化市溆浦县": { + "lon": 110.5887, + "lat": 27.9073, + "tz": "Asia/Shanghai" + }, + "湖南省怀化市会同县": { + "lon": 109.7162, + "lat": 26.8743, + "tz": "Asia/Shanghai" + }, + "湖南省怀化市麻阳苗族自治县": { + "lon": 109.7981, + "lat": 27.8694, + "tz": "Asia/Shanghai" + }, + "湖南省怀化市新晃侗族自治县": { + "lon": 109.1699, + "lat": 27.3631, + "tz": "Asia/Shanghai" + }, + "湖南省怀化市芷江侗族自治县": { + "lon": 109.6832, + "lat": 27.4414, + "tz": "Asia/Shanghai" + }, + "湖南省怀化市靖州苗族侗族自治县": { + "lon": 109.6866, + "lat": 26.577, + "tz": "Asia/Shanghai" + }, + "湖南省怀化市通道侗族自治县": { + "lon": 109.7788, + "lat": 26.1617, + "tz": "Asia/Shanghai" + }, + "湖南省怀化市洪江市": { + "lon": 109.8272, + "lat": 27.2053, + "tz": "Asia/Shanghai" + }, + "湖南省娄底市娄星区": { + "lon": 112.0029, + "lat": 27.7299, + "tz": "Asia/Shanghai" + }, + "湖南省娄底市双峰县": { + "lon": 112.1927, + "lat": 27.4624, + "tz": "Asia/Shanghai" + }, + "湖南省娄底市新化县": { + "lon": 111.3013, + "lat": 27.7407, + "tz": "Asia/Shanghai" + }, + "湖南省娄底市冷水江市": { + "lon": 111.429, + "lat": 27.6889, + "tz": "Asia/Shanghai" + }, + "湖南省娄底市涟源市": { + "lon": 111.6654, + "lat": 27.6957, + "tz": "Asia/Shanghai" + }, + "湖南省湘西土家族苗族自治州吉首市": { + "lon": 109.7335, + "lat": 28.3182, + "tz": "Asia/Shanghai" + }, + "湖南省湘西土家族苗族自治州泸溪县": { + "lon": 110.2097, + "lat": 28.2179, + "tz": "Asia/Shanghai" + }, + "湖南省湘西土家族苗族自治州凤凰县": { + "lon": 109.5947, + "lat": 27.9519, + "tz": "Asia/Shanghai" + }, + "湖南省湘西土家族苗族自治州花垣县": { + "lon": 109.4743, + "lat": 28.5846, + "tz": "Asia/Shanghai" + }, + "湖南省湘西土家族苗族自治州保靖县": { + "lon": 109.6469, + "lat": 28.713, + "tz": "Asia/Shanghai" + }, + "湖南省湘西土家族苗族自治州古丈县": { + "lon": 109.945, + "lat": 28.6204, + "tz": "Asia/Shanghai" + }, + "湖南省湘西土家族苗族自治州永顺县": { + "lon": 109.8487, + "lat": 29.0012, + "tz": "Asia/Shanghai" + }, + "湖南省湘西土家族苗族自治州龙山县": { + "lon": 109.4363, + "lat": 29.456, + "tz": "Asia/Shanghai" + }, + "广东省广州市荔湾区": { + "lon": 113.2377, + "lat": 23.1276, + "tz": "Asia/Shanghai" + }, + "广东省广州市越秀区": { + "lon": 113.2754, + "lat": 23.1283, + "tz": "Asia/Shanghai" + }, + "广东省广州市海珠区": { + "lon": 113.2567, + "lat": 23.1058, + "tz": "Asia/Shanghai" + }, + "广东省广州市天河区": { + "lon": 113.3299, + "lat": 23.1382, + "tz": "Asia/Shanghai" + }, + "广东省广州市白云区": { + "lon": 113.2575, + "lat": 23.1649, + "tz": "Asia/Shanghai" + }, + "广东省广州市黄埔区": { + "lon": 113.4453, + "lat": 23.1058, + "tz": "Asia/Shanghai" + }, + "广东省广州市番禺区": { + "lon": 113.3591, + "lat": 22.9412, + "tz": "Asia/Shanghai" + }, + "广东省广州市花都区": { + "lon": 113.2058, + "lat": 23.3946, + "tz": "Asia/Shanghai" + }, + "广东省广州市南沙区": { + "lon": 113.5322, + "lat": 22.7974, + "tz": "Asia/Shanghai" + }, + "广东省广州市从化区": { + "lon": 113.5823, + "lat": 23.5481, + "tz": "Asia/Shanghai" + }, + "广东省广州市增城区": { + "lon": 113.8245, + "lat": 23.2932, + "tz": "Asia/Shanghai" + }, + "广东省韶关市武江区": { + "lon": 113.5831, + "lat": 24.8032, + "tz": "Asia/Shanghai" + }, + "广东省韶关市浈江区": { + "lon": 113.594, + "lat": 24.807, + "tz": "Asia/Shanghai" + }, + "广东省韶关市曲江区": { + "lon": 113.6004, + "lat": 24.6833, + "tz": "Asia/Shanghai" + }, + "广东省韶关市始兴县": { + "lon": 114.0619, + "lat": 24.9511, + "tz": "Asia/Shanghai" + }, + "广东省韶关市仁化县": { + "lon": 113.7433, + "lat": 25.0911, + "tz": "Asia/Shanghai" + }, + "广东省韶关市翁源县": { + "lon": 114.1261, + "lat": 24.3566, + "tz": "Asia/Shanghai" + }, + "广东省韶关市乳源瑶族自治县": { + "lon": 113.273, + "lat": 24.779, + "tz": "Asia/Shanghai" + }, + "广东省韶关市新丰县": { + "lon": 114.202, + "lat": 24.0581, + "tz": "Asia/Shanghai" + }, + "广东省韶关市乐昌市": { + "lon": 113.3468, + "lat": 25.1312, + "tz": "Asia/Shanghai" + }, + "广东省韶关市南雄市": { + "lon": 114.3062, + "lat": 25.1181, + "tz": "Asia/Shanghai" + }, + "广东省深圳市罗湖区": { + "lon": 114.1188, + "lat": 22.558, + "tz": "Asia/Shanghai" + }, + "广东省深圳市福田区": { + "lon": 114.0459, + "lat": 22.5438, + "tz": "Asia/Shanghai" + }, + "广东省深圳市南山区": { + "lon": 113.9246, + "lat": 22.5343, + "tz": "Asia/Shanghai" + }, + "广东省深圳市宝安区": { + "lon": 113.8236, + "lat": 22.7577, + "tz": "Asia/Shanghai" + }, + "广东省深圳市龙岗区": { + "lon": 114.2465, + "lat": 22.7243, + "tz": "Asia/Shanghai" + }, + "广东省深圳市盐田区": { + "lon": 114.2305, + "lat": 22.5579, + "tz": "Asia/Shanghai" + }, + "广东省深圳市龙华区": { + "lon": 114.0393, + "lat": 22.6947, + "tz": "Asia/Shanghai" + }, + "广东省深圳市坪山区": { + "lon": 114.3335, + "lat": 22.697, + "tz": "Asia/Shanghai" + }, + "广东省深圳市光明区": { + "lon": 113.931, + "lat": 22.7518, + "tz": "Asia/Shanghai" + }, + "广东省珠海市香洲区": { + "lon": 113.5452, + "lat": 22.2742, + "tz": "Asia/Shanghai" + }, + "广东省珠海市斗门区": { + "lon": 113.2924, + "lat": 22.2119, + "tz": "Asia/Shanghai" + }, + "广东省珠海市金湾区": { + "lon": 113.3397, + "lat": 22.1418, + "tz": "Asia/Shanghai" + }, + "广东省汕头市龙湖区": { + "lon": 116.7275, + "lat": 23.3763, + "tz": "Asia/Shanghai" + }, + "广东省汕头市金平区": { + "lon": 116.6991, + "lat": 23.3697, + "tz": "Asia/Shanghai" + }, + "广东省汕头市濠江区": { + "lon": 116.725, + "lat": 23.282, + "tz": "Asia/Shanghai" + }, + "广东省汕头市潮阳区": { + "lon": 116.5983, + "lat": 23.2651, + "tz": "Asia/Shanghai" + }, + "广东省汕头市潮南区": { + "lon": 116.4189, + "lat": 23.2522, + "tz": "Asia/Shanghai" + }, + "广东省汕头市澄海区": { + "lon": 116.7588, + "lat": 23.471, + "tz": "Asia/Shanghai" + }, + "广东省汕头市南澳县": { + "lon": 117.0223, + "lat": 23.4221, + "tz": "Asia/Shanghai" + }, + "广东省佛山市禅城区": { + "lon": 113.1069, + "lat": 23.0222, + "tz": "Asia/Shanghai" + }, + "广东省佛山市南海区": { + "lon": 113.1401, + "lat": 23.0341, + "tz": "Asia/Shanghai" + }, + "广东省佛山市顺德区": { + "lon": 113.2765, + "lat": 22.7613, + "tz": "Asia/Shanghai" + }, + "广东省佛山市三水区": { + "lon": 112.8944, + "lat": 23.1679, + "tz": "Asia/Shanghai" + }, + "广东省佛山市高明区": { + "lon": 112.8771, + "lat": 22.8968, + "tz": "Asia/Shanghai" + }, + "广东省江门市蓬江区": { + "lon": 113.0731, + "lat": 22.5995, + "tz": "Asia/Shanghai" + }, + "广东省江门市江海区": { + "lon": 113.1151, + "lat": 22.5749, + "tz": "Asia/Shanghai" + }, + "广东省江门市新会区": { + "lon": 113.0332, + "lat": 22.523, + "tz": "Asia/Shanghai" + }, + "广东省江门市台山市": { + "lon": 112.7883, + "lat": 22.2536, + "tz": "Asia/Shanghai" + }, + "广东省江门市开平市": { + "lon": 112.6872, + "lat": 22.3692, + "tz": "Asia/Shanghai" + }, + "广东省江门市鹤山市": { + "lon": 112.9567, + "lat": 22.7711, + "tz": "Asia/Shanghai" + }, + "广东省江门市恩平市": { + "lon": 112.3089, + "lat": 22.1857, + "tz": "Asia/Shanghai" + }, + "广东省湛江市赤坎区": { + "lon": 110.3571, + "lat": 21.2758, + "tz": "Asia/Shanghai" + }, + "广东省湛江市霞山区": { + "lon": 110.4018, + "lat": 21.1966, + "tz": "Asia/Shanghai" + }, + "广东省湛江市坡头区": { + "lon": 110.4511, + "lat": 21.2468, + "tz": "Asia/Shanghai" + }, + "广东省湛江市麻章区": { + "lon": 110.3247, + "lat": 21.2684, + "tz": "Asia/Shanghai" + }, + "广东省湛江市遂溪县": { + "lon": 110.251, + "lat": 21.3795, + "tz": "Asia/Shanghai" + }, + "广东省湛江市徐闻县": { + "lon": 110.1714, + "lat": 20.3284, + "tz": "Asia/Shanghai" + }, + "广东省湛江市廉江市": { + "lon": 110.2806, + "lat": 21.6139, + "tz": "Asia/Shanghai" + }, + "广东省湛江市雷州市": { + "lon": 110.0838, + "lat": 20.9109, + "tz": "Asia/Shanghai" + }, + "广东省湛江市吴川市": { + "lon": 110.776, + "lat": 21.431, + "tz": "Asia/Shanghai" + }, + "广东省茂名市茂南区": { + "lon": 110.916, + "lat": 21.6632, + "tz": "Asia/Shanghai" + }, + "广东省茂名市电白区": { + "lon": 111.0025, + "lat": 21.5098, + "tz": "Asia/Shanghai" + }, + "广东省茂名市高州市": { + "lon": 110.8487, + "lat": 21.918, + "tz": "Asia/Shanghai" + }, + "广东省茂名市化州市": { + "lon": 110.6341, + "lat": 21.6577, + "tz": "Asia/Shanghai" + }, + "广东省茂名市信宜市": { + "lon": 110.9371, + "lat": 22.3557, + "tz": "Asia/Shanghai" + }, + "广东省肇庆市端州区": { + "lon": 112.4671, + "lat": 23.0553, + "tz": "Asia/Shanghai" + }, + "广东省肇庆市鼎湖区": { + "lon": 112.5603, + "lat": 23.1587, + "tz": "Asia/Shanghai" + }, + "广东省肇庆市高要区": { + "lon": 112.4556, + "lat": 23.0303, + "tz": "Asia/Shanghai" + }, + "广东省肇庆市广宁县": { + "lon": 112.4351, + "lat": 23.6339, + "tz": "Asia/Shanghai" + }, + "广东省肇庆市怀集县": { + "lon": 112.1771, + "lat": 23.9157, + "tz": "Asia/Shanghai" + }, + "广东省肇庆市封开县": { + "lon": 111.4978, + "lat": 23.4373, + "tz": "Asia/Shanghai" + }, + "广东省肇庆市德庆县": { + "lon": 111.7763, + "lat": 23.1444, + "tz": "Asia/Shanghai" + }, + "广东省肇庆市四会市": { + "lon": 112.6899, + "lat": 23.343, + "tz": "Asia/Shanghai" + }, + "广东省惠州市惠城区": { + "lon": 114.409, + "lat": 23.0824, + "tz": "Asia/Shanghai" + }, + "广东省惠州市惠阳区": { + "lon": 114.4646, + "lat": 22.7912, + "tz": "Asia/Shanghai" + }, + "广东省惠州市博罗县": { + "lon": 114.2794, + "lat": 23.1702, + "tz": "Asia/Shanghai" + }, + "广东省惠州市惠东县": { + "lon": 114.7184, + "lat": 22.9858, + "tz": "Asia/Shanghai" + }, + "广东省惠州市龙门县": { + "lon": 114.2551, + "lat": 23.7265, + "tz": "Asia/Shanghai" + }, + "广东省梅州市梅江区": { + "lon": 116.1163, + "lat": 24.3052, + "tz": "Asia/Shanghai" + }, + "广东省梅州市梅县区": { + "lon": 116.0786, + "lat": 24.2704, + "tz": "Asia/Shanghai" + }, + "广东省梅州市大埔县": { + "lon": 116.691, + "lat": 24.3545, + "tz": "Asia/Shanghai" + }, + "广东省梅州市丰顺县": { + "lon": 116.1798, + "lat": 23.7553, + "tz": "Asia/Shanghai" + }, + "广东省梅州市五华县": { + "lon": 115.7703, + "lat": 23.9281, + "tz": "Asia/Shanghai" + }, + "广东省梅州市平远县": { + "lon": 115.8872, + "lat": 24.5727, + "tz": "Asia/Shanghai" + }, + "广东省梅州市蕉岭县": { + "lon": 116.1658, + "lat": 24.6561, + "tz": "Asia/Shanghai" + }, + "广东省梅州市兴宁市": { + "lon": 115.7269, + "lat": 24.1408, + "tz": "Asia/Shanghai" + }, + "广东省汕尾市城区": { + "lon": 115.3587, + "lat": 22.7789, + "tz": "Asia/Shanghai" + }, + "广东省汕尾市海丰县": { + "lon": 115.3324, + "lat": 22.9737, + "tz": "Asia/Shanghai" + }, + "广东省汕尾市陆河县": { + "lon": 115.653, + "lat": 23.3054, + "tz": "Asia/Shanghai" + }, + "广东省汕尾市陆丰市": { + "lon": 115.6396, + "lat": 22.949, + "tz": "Asia/Shanghai" + }, + "广东省河源市源城区": { + "lon": 114.6921, + "lat": 23.7489, + "tz": "Asia/Shanghai" + }, + "广东省河源市紫金县": { + "lon": 115.1795, + "lat": 23.6362, + "tz": "Asia/Shanghai" + }, + "广东省河源市龙川县": { + "lon": 115.2516, + "lat": 24.1039, + "tz": "Asia/Shanghai" + }, + "广东省河源市连平县": { + "lon": 114.4911, + "lat": 24.367, + "tz": "Asia/Shanghai" + }, + "广东省河源市和平县": { + "lon": 114.9368, + "lat": 24.4462, + "tz": "Asia/Shanghai" + }, + "广东省河源市东源县": { + "lon": 114.738, + "lat": 23.7917, + "tz": "Asia/Shanghai" + }, + "广东省阳江市江城区": { + "lon": 111.9639, + "lat": 21.862, + "tz": "Asia/Shanghai" + }, + "广东省阳江市阳东区": { + "lon": 112.0061, + "lat": 21.8674, + "tz": "Asia/Shanghai" + }, + "广东省阳江市阳西县": { + "lon": 111.6126, + "lat": 21.7565, + "tz": "Asia/Shanghai" + }, + "广东省阳江市阳春市": { + "lon": 111.7854, + "lat": 22.1724, + "tz": "Asia/Shanghai" + }, + "广东省清远市清城区": { + "lon": 113.0432, + "lat": 23.6915, + "tz": "Asia/Shanghai" + }, + "广东省清远市清新区": { + "lon": 113.0099, + "lat": 23.7395, + "tz": "Asia/Shanghai" + }, + "广东省清远市佛冈县": { + "lon": 113.5288, + "lat": 23.8695, + "tz": "Asia/Shanghai" + }, + "广东省清远市阳山县": { + "lon": 112.6289, + "lat": 24.4733, + "tz": "Asia/Shanghai" + }, + "广东省清远市连山壮族瑶族自治县": { + "lon": 112.0811, + "lat": 24.57, + "tz": "Asia/Shanghai" + }, + "广东省清远市连南瑶族自治县": { + "lon": 112.2855, + "lat": 24.722, + "tz": "Asia/Shanghai" + }, + "广东省清远市英德市": { + "lon": 113.3998, + "lat": 24.1887, + "tz": "Asia/Shanghai" + }, + "广东省清远市连州市": { + "lon": 112.3738, + "lat": 24.7867, + "tz": "Asia/Shanghai" + }, + "广东省东莞市": { + "lon": 113.7411, + "lat": 23.0489, + "tz": "Asia/Shanghai" + }, + "广东省中山市": { + "lon": 113.3769, + "lat": 22.5238, + "tz": "Asia/Shanghai" + }, + "广东省潮州市湘桥区": { + "lon": 116.6293, + "lat": 23.6674, + "tz": "Asia/Shanghai" + }, + "广东省潮州市潮安区": { + "lon": 116.6749, + "lat": 23.4637, + "tz": "Asia/Shanghai" + }, + "广东省潮州市饶平县": { + "lon": 116.9973, + "lat": 23.6708, + "tz": "Asia/Shanghai" + }, + "广东省揭阳市榕城区": { + "lon": 116.3524, + "lat": 23.538, + "tz": "Asia/Shanghai" + }, + "广东省揭阳市揭东区": { + "lon": 116.4082, + "lat": 23.5723, + "tz": "Asia/Shanghai" + }, + "广东省揭阳市揭西县": { + "lon": 115.8341, + "lat": 23.43, + "tz": "Asia/Shanghai" + }, + "广东省揭阳市惠来县": { + "lon": 116.2913, + "lat": 23.0325, + "tz": "Asia/Shanghai" + }, + "广东省揭阳市普宁市": { + "lon": 116.1604, + "lat": 23.3004, + "tz": "Asia/Shanghai" + }, + "广东省云浮市云城区": { + "lon": 112.0394, + "lat": 22.9335, + "tz": "Asia/Shanghai" + }, + "广东省云浮市云安区": { + "lon": 112.0004, + "lat": 23.0759, + "tz": "Asia/Shanghai" + }, + "广东省云浮市新兴县": { + "lon": 112.2257, + "lat": 22.706, + "tz": "Asia/Shanghai" + }, + "广东省云浮市郁南县": { + "lon": 111.5308, + "lat": 23.2405, + "tz": "Asia/Shanghai" + }, + "广东省云浮市罗定市": { + "lon": 111.5732, + "lat": 22.7684, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区南宁市兴宁区": { + "lon": 108.3162, + "lat": 22.8223, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区南宁市青秀区": { + "lon": 108.3421, + "lat": 22.8193, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区南宁市江南区": { + "lon": 108.3065, + "lat": 22.8024, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区南宁市西乡塘区": { + "lon": 108.3029, + "lat": 22.8356, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区南宁市良庆区": { + "lon": 108.3181, + "lat": 22.7619, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区南宁市邕宁区": { + "lon": 108.4803, + "lat": 22.7594, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区南宁市武鸣区": { + "lon": 108.2768, + "lat": 23.1599, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区南宁市隆安县": { + "lon": 107.6847, + "lat": 23.1775, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区南宁市马山县": { + "lon": 108.1688, + "lat": 23.7143, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区南宁市上林县": { + "lon": 108.6002, + "lat": 23.4346, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区南宁市宾阳县": { + "lon": 108.8128, + "lat": 23.2196, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区南宁市横州市": { + "lon": 109.2667, + "lat": 22.6903, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区柳州市城中区": { + "lon": 109.4071, + "lat": 24.315, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区柳州市鱼峰区": { + "lon": 109.4108, + "lat": 24.3065, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区柳州市柳南区": { + "lon": 109.3913, + "lat": 24.2897, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区柳州市柳北区": { + "lon": 109.402, + "lat": 24.3618, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区柳州市柳江区": { + "lon": 109.33, + "lat": 24.2603, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区柳州市柳城县": { + "lon": 109.2415, + "lat": 24.658, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区柳州市鹿寨县": { + "lon": 109.7363, + "lat": 24.4863, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区柳州市融安县": { + "lon": 109.399, + "lat": 25.2174, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区柳州市融水苗族自治县": { + "lon": 109.2484, + "lat": 25.0717, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区柳州市三江侗族自治县": { + "lon": 109.6105, + "lat": 25.7888, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市秀峰区": { + "lon": 110.2879, + "lat": 25.2814, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市叠彩区": { + "lon": 110.2962, + "lat": 25.3042, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市象山区": { + "lon": 110.2803, + "lat": 25.2648, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市七星区": { + "lon": 110.3129, + "lat": 25.2571, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市雁山区": { + "lon": 110.3011, + "lat": 25.0805, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市临桂区": { + "lon": 110.2009, + "lat": 25.2491, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市阳朔县": { + "lon": 110.4901, + "lat": 24.7782, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市灵川县": { + "lon": 110.3211, + "lat": 25.4113, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市全州县": { + "lon": 111.0677, + "lat": 25.9329, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市兴安县": { + "lon": 110.6662, + "lat": 25.6126, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市永福县": { + "lon": 109.9847, + "lat": 24.9896, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市灌阳县": { + "lon": 111.155, + "lat": 25.4919, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市龙胜各族自治县": { + "lon": 110.0048, + "lat": 25.7995, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市资源县": { + "lon": 110.638, + "lat": 26.0376, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市平乐县": { + "lon": 110.6383, + "lat": 24.6353, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市恭城瑶族自治县": { + "lon": 110.8248, + "lat": 24.8366, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区桂林市荔浦市": { + "lon": 110.3954, + "lat": 24.5005, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区梧州市万秀区": { + "lon": 111.3106, + "lat": 23.4739, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区梧州市长洲区": { + "lon": 111.2706, + "lat": 23.4803, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区梧州市龙圩区": { + "lon": 111.241, + "lat": 23.4126, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区梧州市苍梧县": { + "lon": 111.5389, + "lat": 23.8479, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区梧州市藤县": { + "lon": 110.9272, + "lat": 23.3768, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区梧州市蒙山县": { + "lon": 110.5181, + "lat": 24.2027, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区梧州市岑溪市": { + "lon": 110.9933, + "lat": 22.9212, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区北海市海城区": { + "lon": 109.1032, + "lat": 21.4708, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区北海市银海区": { + "lon": 109.1144, + "lat": 21.4473, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区北海市铁山港区": { + "lon": 109.4462, + "lat": 21.5952, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区北海市合浦县": { + "lon": 109.1965, + "lat": 21.6661, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区防城港市港口区": { + "lon": 108.3423, + "lat": 21.6169, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区防城港市防城区": { + "lon": 108.3544, + "lat": 21.7673, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区防城港市上思县": { + "lon": 107.9783, + "lat": 22.1543, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区防城港市东兴市": { + "lon": 107.9663, + "lat": 21.5439, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区钦州市钦南区": { + "lon": 108.6229, + "lat": 21.9697, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区钦州市钦北区": { + "lon": 108.4451, + "lat": 22.1354, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区钦州市灵山县": { + "lon": 109.2892, + "lat": 22.4209, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区钦州市浦北县": { + "lon": 109.5522, + "lat": 22.2713, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区贵港市港北区": { + "lon": 109.5906, + "lat": 23.1106, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区贵港市港南区": { + "lon": 109.6005, + "lat": 23.0704, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区贵港市覃塘区": { + "lon": 109.4112, + "lat": 23.1353, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区贵港市平南县": { + "lon": 110.3928, + "lat": 23.547, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区贵港市桂平市": { + "lon": 110.0701, + "lat": 23.3849, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区玉林市玉州区": { + "lon": 110.1504, + "lat": 22.6349, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区玉林市福绵区": { + "lon": 110.0496, + "lat": 22.5844, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区玉林市容县": { + "lon": 110.5481, + "lat": 22.8594, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区玉林市陆川县": { + "lon": 110.2605, + "lat": 22.3239, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区玉林市博白县": { + "lon": 109.9757, + "lat": 22.2742, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区玉林市兴业县": { + "lon": 109.8736, + "lat": 22.7449, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区玉林市北流市": { + "lon": 110.3435, + "lat": 22.7044, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区百色市右江区": { + "lon": 106.6123, + "lat": 23.9006, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区百色市田阳区": { + "lon": 106.9007, + "lat": 23.7389, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区百色市田东县": { + "lon": 107.1201, + "lat": 23.6029, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区百色市德保县": { + "lon": 106.6148, + "lat": 23.3243, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区百色市那坡县": { + "lon": 105.8303, + "lat": 23.4035, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区百色市凌云县": { + "lon": 106.5614, + "lat": 24.3487, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区百色市乐业县": { + "lon": 106.5562, + "lat": 24.7853, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区百色市田林县": { + "lon": 106.2316, + "lat": 24.2931, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区百色市西林县": { + "lon": 105.092, + "lat": 24.4948, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区百色市隆林各族自治县": { + "lon": 105.3391, + "lat": 24.7772, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区百色市靖西市": { + "lon": 106.4139, + "lat": 23.1373, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区百色市平果市": { + "lon": 107.5765, + "lat": 23.3233, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区贺州市八步区": { + "lon": 111.5468, + "lat": 24.4154, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区贺州市平桂区": { + "lon": 111.5188, + "lat": 24.4201, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区贺州市昭平县": { + "lon": 110.8062, + "lat": 24.1758, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区贺州市钟山县": { + "lon": 111.2984, + "lat": 24.5314, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区贺州市富川瑶族自治县": { + "lon": 111.272, + "lat": 24.8218, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区河池市金城江区": { + "lon": 108.0579, + "lat": 24.6984, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区河池市宜州区": { + "lon": 108.6501, + "lat": 24.4952, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区河池市南丹县": { + "lon": 107.5426, + "lat": 24.9862, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区河池市天峨县": { + "lon": 107.1708, + "lat": 24.9888, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区河池市凤山县": { + "lon": 107.0405, + "lat": 24.5474, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区河池市东兰县": { + "lon": 107.3694, + "lat": 24.5121, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区河池市罗城仫佬族自治县": { + "lon": 108.8985, + "lat": 24.7824, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区河池市环江毛南族自治县": { + "lon": 108.2546, + "lat": 24.8306, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区河池市巴马瑶族自治县": { + "lon": 107.2491, + "lat": 24.1424, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区河池市都安瑶族自治县": { + "lon": 108.0986, + "lat": 23.9375, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区河池市大化瑶族自治县": { + "lon": 107.9905, + "lat": 23.7423, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区来宾市兴宾区": { + "lon": 109.2262, + "lat": 23.7356, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区来宾市忻城县": { + "lon": 108.6635, + "lat": 24.0677, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区来宾市象州县": { + "lon": 109.6802, + "lat": 23.9626, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区来宾市武宣县": { + "lon": 109.6586, + "lat": 23.6069, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区来宾市金秀瑶族自治县": { + "lon": 110.184, + "lat": 24.1377, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区来宾市合山市": { + "lon": 108.8847, + "lat": 23.816, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区崇左市江州区": { + "lon": 107.3503, + "lat": 22.4075, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区崇左市扶绥县": { + "lon": 107.9077, + "lat": 22.6389, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区崇左市宁明县": { + "lon": 107.0636, + "lat": 22.134, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区崇左市龙州县": { + "lon": 106.854, + "lat": 22.3468, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区崇左市大新县": { + "lon": 107.1968, + "lat": 22.8362, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区崇左市天等县": { + "lon": 107.1384, + "lat": 23.0851, + "tz": "Asia/Shanghai" + }, + "广西壮族自治区崇左市凭祥市": { + "lon": 106.7554, + "lat": 22.1117, + "tz": "Asia/Shanghai" + }, + "海南省海口市秀英区": { + "lon": 110.2781, + "lat": 20.0103, + "tz": "Asia/Shanghai" + }, + "海南省海口市龙华区": { + "lon": 110.326, + "lat": 20.0331, + "tz": "Asia/Shanghai" + }, + "海南省海口市琼山区": { + "lon": 110.3503, + "lat": 20.003, + "tz": "Asia/Shanghai" + }, + "海南省海口市美兰区": { + "lon": 110.3521, + "lat": 20.0327, + "tz": "Asia/Shanghai" + }, + "海南省三亚市海棠区": { + "lon": 109.7566, + "lat": 18.4092, + "tz": "Asia/Shanghai" + }, + "海南省三亚市吉阳区": { + "lon": 109.508, + "lat": 18.2491, + "tz": "Asia/Shanghai" + }, + "海南省三亚市天涯区": { + "lon": 109.5022, + "lat": 18.249, + "tz": "Asia/Shanghai" + }, + "海南省三亚市崖州区": { + "lon": 109.1702, + "lat": 18.3538, + "tz": "Asia/Shanghai" + }, + "海南省三沙市西沙区": { + "lon": 112.3337, + "lat": 16.8326, + "tz": "Asia/Shanghai" + }, + "海南省三沙市南沙区": { + "lon": 112.8867, + "lat": 9.5456, + "tz": "Asia/Shanghai" + }, + "海南省儋州市": { + "lon": 109.5728, + "lat": 19.5195, + "tz": "Asia/Shanghai" + }, + "海南省五指山市": { + "lon": 109.5126, + "lat": 18.7787, + "tz": "Asia/Shanghai" + }, + "海南省琼海市": { + "lon": 110.4624, + "lat": 19.2476, + "tz": "Asia/Shanghai" + }, + "海南省文昌市": { + "lon": 110.7495, + "lat": 19.6148, + "tz": "Asia/Shanghai" + }, + "海南省万宁市": { + "lon": 110.3844, + "lat": 18.7978, + "tz": "Asia/Shanghai" + }, + "海南省东方市": { + "lon": 108.6502, + "lat": 19.1038, + "tz": "Asia/Shanghai" + }, + "海南省定安县": { + "lon": 110.3449, + "lat": 19.6867, + "tz": "Asia/Shanghai" + }, + "海南省屯昌县": { + "lon": 110.0984, + "lat": 19.3645, + "tz": "Asia/Shanghai" + }, + "海南省澄迈县": { + "lon": 110.0029, + "lat": 19.739, + "tz": "Asia/Shanghai" + }, + "海南省临高县": { + "lon": 109.6835, + "lat": 19.9104, + "tz": "Asia/Shanghai" + }, + "海南省白沙黎族自治县": { + "lon": 109.4483, + "lat": 19.2262, + "tz": "Asia/Shanghai" + }, + "海南省昌江黎族自治县": { + "lon": 109.0493, + "lat": 19.2626, + "tz": "Asia/Shanghai" + }, + "海南省乐东黎族自治县": { + "lon": 109.1713, + "lat": 18.7492, + "tz": "Asia/Shanghai" + }, + "海南省陵水黎族自治县": { + "lon": 110.033, + "lat": 18.5066, + "tz": "Asia/Shanghai" + }, + "海南省保亭黎族苗族自治县": { + "lon": 109.6983, + "lat": 18.6382, + "tz": "Asia/Shanghai" + }, + "海南省琼中黎族苗族自治县": { + "lon": 109.8359, + "lat": 19.0374, + "tz": "Asia/Shanghai" + }, + "重庆市万州区": { + "lon": 108.3757, + "lat": 30.8101, + "tz": "Asia/Shanghai" + }, + "重庆市涪陵区": { + "lon": 107.3903, + "lat": 29.7061, + "tz": "Asia/Shanghai" + }, + "重庆市渝中区": { + "lon": 106.5592, + "lat": 29.5596, + "tz": "Asia/Shanghai" + }, + "重庆市大渡口区": { + "lon": 106.4822, + "lat": 29.4837, + "tz": "Asia/Shanghai" + }, + "重庆市江北区": { + "lon": 106.5291, + "lat": 29.5781, + "tz": "Asia/Shanghai" + }, + "重庆市沙坪坝区": { + "lon": 106.4502, + "lat": 29.5438, + "tz": "Asia/Shanghai" + }, + "重庆市九龙坡区": { + "lon": 106.4771, + "lat": 29.5262, + "tz": "Asia/Shanghai" + }, + "重庆市南岸区": { + "lon": 106.5571, + "lat": 29.5269, + "tz": "Asia/Shanghai" + }, + "重庆市北碚区": { + "lon": 106.4338, + "lat": 29.8279, + "tz": "Asia/Shanghai" + }, + "重庆市綦江区": { + "lon": 106.6477, + "lat": 29.0313, + "tz": "Asia/Shanghai" + }, + "重庆市大足区": { + "lon": 105.7117, + "lat": 29.7032, + "tz": "Asia/Shanghai" + }, + "重庆市渝北区": { + "lon": 106.509, + "lat": 29.6042, + "tz": "Asia/Shanghai" + }, + "重庆市巴南区": { + "lon": 106.5156, + "lat": 29.3848, + "tz": "Asia/Shanghai" + }, + "重庆市黔江区": { + "lon": 108.7782, + "lat": 29.5303, + "tz": "Asia/Shanghai" + }, + "重庆市长寿区": { + "lon": 107.0704, + "lat": 29.8362, + "tz": "Asia/Shanghai" + }, + "重庆市江津区": { + "lon": 106.2494, + "lat": 29.2862, + "tz": "Asia/Shanghai" + }, + "重庆市合川区": { + "lon": 106.2618, + "lat": 29.9936, + "tz": "Asia/Shanghai" + }, + "重庆市永川区": { + "lon": 105.8912, + "lat": 29.3518, + "tz": "Asia/Shanghai" + }, + "重庆市南川区": { + "lon": 107.0937, + "lat": 29.1594, + "tz": "Asia/Shanghai" + }, + "重庆市璧山区": { + "lon": 106.2274, + "lat": 29.5963, + "tz": "Asia/Shanghai" + }, + "重庆市铜梁区": { + "lon": 106.0511, + "lat": 29.8425, + "tz": "Asia/Shanghai" + }, + "重庆市潼南区": { + "lon": 105.8382, + "lat": 30.1923, + "tz": "Asia/Shanghai" + }, + "重庆市荣昌区": { + "lon": 105.5907, + "lat": 29.4066, + "tz": "Asia/Shanghai" + }, + "重庆市开州区": { + "lon": 108.4087, + "lat": 31.1698, + "tz": "Asia/Shanghai" + }, + "重庆市梁平区": { + "lon": 107.7956, + "lat": 30.6747, + "tz": "Asia/Shanghai" + }, + "重庆市武隆区": { + "lon": 107.7521, + "lat": 29.3266, + "tz": "Asia/Shanghai" + }, + "重庆市城口县": { + "lon": 108.6605, + "lat": 31.9486, + "tz": "Asia/Shanghai" + }, + "重庆市丰都县": { + "lon": 107.728, + "lat": 29.8691, + "tz": "Asia/Shanghai" + }, + "重庆市垫江县": { + "lon": 107.3441, + "lat": 30.3325, + "tz": "Asia/Shanghai" + }, + "重庆市忠县": { + "lon": 108.033, + "lat": 30.2941, + "tz": "Asia/Shanghai" + }, + "重庆市云阳县": { + "lon": 108.6933, + "lat": 30.933, + "tz": "Asia/Shanghai" + }, + "重庆市奉节县": { + "lon": 109.4608, + "lat": 31.0222, + "tz": "Asia/Shanghai" + }, + "重庆市巫山县": { + "lon": 109.8742, + "lat": 31.0773, + "tz": "Asia/Shanghai" + }, + "重庆市巫溪县": { + "lon": 109.6242, + "lat": 31.3989, + "tz": "Asia/Shanghai" + }, + "重庆市石柱土家族自治县": { + "lon": 108.1079, + "lat": 30.001, + "tz": "Asia/Shanghai" + }, + "重庆市秀山土家族苗族自治县": { + "lon": 108.9916, + "lat": 28.4482, + "tz": "Asia/Shanghai" + }, + "重庆市酉阳土家族苗族自治县": { + "lon": 108.7629, + "lat": 28.843, + "tz": "Asia/Shanghai" + }, + "重庆市彭水苗族土家族自治县": { + "lon": 108.1621, + "lat": 29.2966, + "tz": "Asia/Shanghai" + }, + "四川省成都市锦江区": { + "lon": 104.0785, + "lat": 30.6601, + "tz": "Asia/Shanghai" + }, + "四川省成都市青羊区": { + "lon": 104.0533, + "lat": 30.6701, + "tz": "Asia/Shanghai" + }, + "四川省成都市金牛区": { + "lon": 104.041, + "lat": 30.6945, + "tz": "Asia/Shanghai" + }, + "四川省成都市武侯区": { + "lon": 104.0492, + "lat": 30.6333, + "tz": "Asia/Shanghai" + }, + "四川省成都市成华区": { + "lon": 104.1005, + "lat": 30.6627, + "tz": "Asia/Shanghai" + }, + "四川省成都市龙泉驿区": { + "lon": 104.2668, + "lat": 30.5633, + "tz": "Asia/Shanghai" + }, + "四川省成都市青白江区": { + "lon": 104.2526, + "lat": 30.8859, + "tz": "Asia/Shanghai" + }, + "四川省成都市新都区": { + "lon": 104.1577, + "lat": 30.8266, + "tz": "Asia/Shanghai" + }, + "四川省成都市温江区": { + "lon": 103.8346, + "lat": 30.7007, + "tz": "Asia/Shanghai" + }, + "四川省成都市双流区": { + "lon": 103.9206, + "lat": 30.576, + "tz": "Asia/Shanghai" + }, + "四川省成都市郫都区": { + "lon": 103.8858, + "lat": 30.8114, + "tz": "Asia/Shanghai" + }, + "四川省成都市新津区": { + "lon": 103.8103, + "lat": 30.417, + "tz": "Asia/Shanghai" + }, + "四川省成都市金堂县": { + "lon": 104.4129, + "lat": 30.8607, + "tz": "Asia/Shanghai" + }, + "四川省成都市大邑县": { + "lon": 103.5203, + "lat": 30.5893, + "tz": "Asia/Shanghai" + }, + "四川省成都市蒲江县": { + "lon": 103.5094, + "lat": 30.1971, + "tz": "Asia/Shanghai" + }, + "四川省成都市都江堰市": { + "lon": 103.6259, + "lat": 30.9937, + "tz": "Asia/Shanghai" + }, + "四川省成都市彭州市": { + "lon": 103.939, + "lat": 30.9877, + "tz": "Asia/Shanghai" + }, + "四川省成都市邛崃市": { + "lon": 103.4592, + "lat": 30.4158, + "tz": "Asia/Shanghai" + }, + "四川省成都市崇州市": { + "lon": 103.6689, + "lat": 30.6342, + "tz": "Asia/Shanghai" + }, + "四川省成都市简阳市": { + "lon": 104.548, + "lat": 30.3935, + "tz": "Asia/Shanghai" + }, + "四川省自贡市自流井区": { + "lon": 104.7755, + "lat": 29.3461, + "tz": "Asia/Shanghai" + }, + "四川省自贡市贡井区": { + "lon": 104.7118, + "lat": 29.3485, + "tz": "Asia/Shanghai" + }, + "四川省自贡市大安区": { + "lon": 104.7805, + "lat": 29.37, + "tz": "Asia/Shanghai" + }, + "四川省自贡市沿滩区": { + "lon": 104.8738, + "lat": 29.2756, + "tz": "Asia/Shanghai" + }, + "四川省自贡市荣县": { + "lon": 104.4213, + "lat": 29.4575, + "tz": "Asia/Shanghai" + }, + "四川省自贡市富顺县": { + "lon": 104.9814, + "lat": 29.1843, + "tz": "Asia/Shanghai" + }, + "四川省攀枝花市东区": { + "lon": 101.7136, + "lat": 26.5845, + "tz": "Asia/Shanghai" + }, + "四川省攀枝花市西区": { + "lon": 101.6365, + "lat": 26.6005, + "tz": "Asia/Shanghai" + }, + "四川省攀枝花市仁和区": { + "lon": 101.7363, + "lat": 26.5007, + "tz": "Asia/Shanghai" + }, + "四川省攀枝花市米易县": { + "lon": 102.1082, + "lat": 26.8908, + "tz": "Asia/Shanghai" + }, + "四川省攀枝花市盐边县": { + "lon": 101.8504, + "lat": 26.6813, + "tz": "Asia/Shanghai" + }, + "四川省泸州市江阳区": { + "lon": 105.4415, + "lat": 28.8859, + "tz": "Asia/Shanghai" + }, + "四川省泸州市纳溪区": { + "lon": 105.3737, + "lat": 28.7794, + "tz": "Asia/Shanghai" + }, + "四川省泸州市龙马潭区": { + "lon": 105.4316, + "lat": 28.9006, + "tz": "Asia/Shanghai" + }, + "四川省泸州市泸县": { + "lon": 105.3728, + "lat": 29.1541, + "tz": "Asia/Shanghai" + }, + "四川省泸州市合江县": { + "lon": 105.8306, + "lat": 28.8136, + "tz": "Asia/Shanghai" + }, + "四川省泸州市叙永县": { + "lon": 105.4342, + "lat": 28.1712, + "tz": "Asia/Shanghai" + }, + "四川省泸州市古蔺县": { + "lon": 105.8098, + "lat": 28.043, + "tz": "Asia/Shanghai" + }, + "四川省德阳市旌阳区": { + "lon": 104.387, + "lat": 31.1326, + "tz": "Asia/Shanghai" + }, + "四川省德阳市罗江区": { + "lon": 104.5046, + "lat": 31.3055, + "tz": "Asia/Shanghai" + }, + "四川省德阳市中江县": { + "lon": 104.6752, + "lat": 31.0393, + "tz": "Asia/Shanghai" + }, + "四川省德阳市广汉市": { + "lon": 104.2795, + "lat": 30.9795, + "tz": "Asia/Shanghai" + }, + "四川省德阳市什邡市": { + "lon": 104.1712, + "lat": 31.1291, + "tz": "Asia/Shanghai" + }, + "四川省德阳市绵竹市": { + "lon": 104.1977, + "lat": 31.3453, + "tz": "Asia/Shanghai" + }, + "四川省绵阳市涪城区": { + "lon": 104.7382, + "lat": 31.4658, + "tz": "Asia/Shanghai" + }, + "四川省绵阳市游仙区": { + "lon": 104.7672, + "lat": 31.487, + "tz": "Asia/Shanghai" + }, + "四川省绵阳市安州区": { + "lon": 104.5579, + "lat": 31.5413, + "tz": "Asia/Shanghai" + }, + "四川省绵阳市三台县": { + "lon": 105.0869, + "lat": 31.0931, + "tz": "Asia/Shanghai" + }, + "四川省绵阳市盐亭县": { + "lon": 105.3883, + "lat": 31.2253, + "tz": "Asia/Shanghai" + }, + "四川省绵阳市梓潼县": { + "lon": 105.1601, + "lat": 31.6373, + "tz": "Asia/Shanghai" + }, + "四川省绵阳市北川羌族自治县": { + "lon": 104.4654, + "lat": 31.6179, + "tz": "Asia/Shanghai" + }, + "四川省绵阳市平武县": { + "lon": 104.528, + "lat": 32.41, + "tz": "Asia/Shanghai" + }, + "四川省绵阳市江油市": { + "lon": 104.7416, + "lat": 31.7786, + "tz": "Asia/Shanghai" + }, + "四川省广元市利州区": { + "lon": 105.8224, + "lat": 32.4346, + "tz": "Asia/Shanghai" + }, + "四川省广元市昭化区": { + "lon": 105.9604, + "lat": 32.3252, + "tz": "Asia/Shanghai" + }, + "四川省广元市朝天区": { + "lon": 105.8855, + "lat": 32.645, + "tz": "Asia/Shanghai" + }, + "四川省广元市旺苍县": { + "lon": 106.2865, + "lat": 32.2306, + "tz": "Asia/Shanghai" + }, + "四川省广元市青川县": { + "lon": 105.2354, + "lat": 32.5879, + "tz": "Asia/Shanghai" + }, + "四川省广元市剑阁县": { + "lon": 105.5234, + "lat": 32.2889, + "tz": "Asia/Shanghai" + }, + "四川省广元市苍溪县": { + "lon": 105.9361, + "lat": 31.7346, + "tz": "Asia/Shanghai" + }, + "四川省遂宁市船山区": { + "lon": 105.5788, + "lat": 30.5054, + "tz": "Asia/Shanghai" + }, + "四川省遂宁市安居区": { + "lon": 105.4557, + "lat": 30.3487, + "tz": "Asia/Shanghai" + }, + "四川省遂宁市蓬溪县": { + "lon": 105.71, + "lat": 30.7774, + "tz": "Asia/Shanghai" + }, + "四川省遂宁市大英县": { + "lon": 105.2489, + "lat": 30.5842, + "tz": "Asia/Shanghai" + }, + "四川省遂宁市射洪市": { + "lon": 105.3782, + "lat": 30.871, + "tz": "Asia/Shanghai" + }, + "四川省内江市市中区": { + "lon": 105.0622, + "lat": 29.5878, + "tz": "Asia/Shanghai" + }, + "四川省内江市东兴区": { + "lon": 105.064, + "lat": 29.6027, + "tz": "Asia/Shanghai" + }, + "四川省内江市威远县": { + "lon": 104.6658, + "lat": 29.5297, + "tz": "Asia/Shanghai" + }, + "四川省内江市资中县": { + "lon": 104.8498, + "lat": 29.7781, + "tz": "Asia/Shanghai" + }, + "四川省内江市隆昌市": { + "lon": 105.2847, + "lat": 29.341, + "tz": "Asia/Shanghai" + }, + "四川省乐山市市中区": { + "lon": 103.7532, + "lat": 29.5911, + "tz": "Asia/Shanghai" + }, + "四川省乐山市沙湾区": { + "lon": 103.548, + "lat": 29.4195, + "tz": "Asia/Shanghai" + }, + "四川省乐山市五通桥区": { + "lon": 103.8147, + "lat": 29.4091, + "tz": "Asia/Shanghai" + }, + "四川省乐山市金口河区": { + "lon": 103.0758, + "lat": 29.2488, + "tz": "Asia/Shanghai" + }, + "四川省乐山市犍为县": { + "lon": 103.9422, + "lat": 29.2129, + "tz": "Asia/Shanghai" + }, + "四川省乐山市井研县": { + "lon": 104.0664, + "lat": 29.6542, + "tz": "Asia/Shanghai" + }, + "四川省乐山市夹江县": { + "lon": 103.5769, + "lat": 29.7439, + "tz": "Asia/Shanghai" + }, + "四川省乐山市沐川县": { + "lon": 103.9001, + "lat": 28.9597, + "tz": "Asia/Shanghai" + }, + "四川省乐山市峨边彝族自治县": { + "lon": 103.2602, + "lat": 29.2332, + "tz": "Asia/Shanghai" + }, + "四川省乐山市马边彝族自治县": { + "lon": 103.5449, + "lat": 28.8423, + "tz": "Asia/Shanghai" + }, + "四川省乐山市峨眉山市": { + "lon": 103.4903, + "lat": 29.6002, + "tz": "Asia/Shanghai" + }, + "四川省南充市顺庆区": { + "lon": 106.0801, + "lat": 30.7979, + "tz": "Asia/Shanghai" + }, + "四川省南充市高坪区": { + "lon": 106.105, + "lat": 30.7841, + "tz": "Asia/Shanghai" + }, + "四川省南充市嘉陵区": { + "lon": 106.063, + "lat": 30.7653, + "tz": "Asia/Shanghai" + }, + "四川省南充市南部县": { + "lon": 106.0571, + "lat": 31.3515, + "tz": "Asia/Shanghai" + }, + "四川省南充市营山县": { + "lon": 106.5611, + "lat": 31.0784, + "tz": "Asia/Shanghai" + }, + "四川省南充市蓬安县": { + "lon": 106.4094, + "lat": 31.0301, + "tz": "Asia/Shanghai" + }, + "四川省南充市仪陇县": { + "lon": 106.2932, + "lat": 31.2735, + "tz": "Asia/Shanghai" + }, + "四川省南充市西充县": { + "lon": 105.8895, + "lat": 30.9972, + "tz": "Asia/Shanghai" + }, + "四川省南充市阆中市": { + "lon": 105.9715, + "lat": 31.5827, + "tz": "Asia/Shanghai" + }, + "四川省眉山市东坡区": { + "lon": 103.8294, + "lat": 30.0509, + "tz": "Asia/Shanghai" + }, + "四川省眉山市彭山区": { + "lon": 103.868, + "lat": 30.1951, + "tz": "Asia/Shanghai" + }, + "四川省眉山市仁寿县": { + "lon": 104.1452, + "lat": 29.9993, + "tz": "Asia/Shanghai" + }, + "四川省眉山市洪雅县": { + "lon": 103.3727, + "lat": 29.9074, + "tz": "Asia/Shanghai" + }, + "四川省眉山市丹棱县": { + "lon": 103.5162, + "lat": 30.0155, + "tz": "Asia/Shanghai" + }, + "四川省眉山市青神县": { + "lon": 103.844, + "lat": 29.8343, + "tz": "Asia/Shanghai" + }, + "四川省宜宾市翠屏区": { + "lon": 104.6279, + "lat": 28.7636, + "tz": "Asia/Shanghai" + }, + "四川省宜宾市南溪区": { + "lon": 104.9783, + "lat": 28.8431, + "tz": "Asia/Shanghai" + }, + "四川省宜宾市叙州区": { + "lon": 104.5392, + "lat": 28.6991, + "tz": "Asia/Shanghai" + }, + "四川省宜宾市江安县": { + "lon": 105.0655, + "lat": 28.7312, + "tz": "Asia/Shanghai" + }, + "四川省宜宾市长宁县": { + "lon": 104.9185, + "lat": 28.5808, + "tz": "Asia/Shanghai" + }, + "四川省宜宾市高县": { + "lon": 104.5168, + "lat": 28.4392, + "tz": "Asia/Shanghai" + }, + "四川省宜宾市珙县": { + "lon": 104.7097, + "lat": 28.4525, + "tz": "Asia/Shanghai" + }, + "四川省宜宾市筠连县": { + "lon": 104.5055, + "lat": 28.1655, + "tz": "Asia/Shanghai" + }, + "四川省宜宾市兴文县": { + "lon": 105.2334, + "lat": 28.3064, + "tz": "Asia/Shanghai" + }, + "四川省宜宾市屏山县": { + "lon": 104.1602, + "lat": 28.6456, + "tz": "Asia/Shanghai" + }, + "四川省广安市广安区": { + "lon": 106.6291, + "lat": 30.4592, + "tz": "Asia/Shanghai" + }, + "四川省广安市前锋区": { + "lon": 106.8893, + "lat": 30.4991, + "tz": "Asia/Shanghai" + }, + "四川省广安市岳池县": { + "lon": 106.4404, + "lat": 30.536, + "tz": "Asia/Shanghai" + }, + "四川省广安市武胜县": { + "lon": 106.2886, + "lat": 30.3469, + "tz": "Asia/Shanghai" + }, + "四川省广安市邻水县": { + "lon": 106.931, + "lat": 30.3371, + "tz": "Asia/Shanghai" + }, + "四川省广安市华蓥市": { + "lon": 106.7738, + "lat": 30.3832, + "tz": "Asia/Shanghai" + }, + "四川省达州市通川区": { + "lon": 107.4965, + "lat": 31.2157, + "tz": "Asia/Shanghai" + }, + "四川省达州市达川区": { + "lon": 107.5034, + "lat": 31.2013, + "tz": "Asia/Shanghai" + }, + "四川省达州市宣汉县": { + "lon": 107.7177, + "lat": 31.3572, + "tz": "Asia/Shanghai" + }, + "四川省达州市开江县": { + "lon": 107.8598, + "lat": 31.088, + "tz": "Asia/Shanghai" + }, + "四川省达州市大竹县": { + "lon": 107.203, + "lat": 30.7388, + "tz": "Asia/Shanghai" + }, + "四川省达州市渠县": { + "lon": 106.9666, + "lat": 30.8389, + "tz": "Asia/Shanghai" + }, + "四川省达州市万源市": { + "lon": 108.0329, + "lat": 32.0699, + "tz": "Asia/Shanghai" + }, + "四川省雅安市雨城区": { + "lon": 103.0016, + "lat": 29.9845, + "tz": "Asia/Shanghai" + }, + "四川省雅安市名山区": { + "lon": 103.1101, + "lat": 30.0872, + "tz": "Asia/Shanghai" + }, + "四川省雅安市荥经县": { + "lon": 102.8431, + "lat": 29.7984, + "tz": "Asia/Shanghai" + }, + "四川省雅安市汉源县": { + "lon": 102.6757, + "lat": 29.3529, + "tz": "Asia/Shanghai" + }, + "四川省雅安市石棉县": { + "lon": 102.3579, + "lat": 29.2369, + "tz": "Asia/Shanghai" + }, + "四川省雅安市天全县": { + "lon": 102.7618, + "lat": 30.0627, + "tz": "Asia/Shanghai" + }, + "四川省雅安市芦山县": { + "lon": 102.9225, + "lat": 30.1558, + "tz": "Asia/Shanghai" + }, + "四川省雅安市宝兴县": { + "lon": 102.8118, + "lat": 30.3718, + "tz": "Asia/Shanghai" + }, + "四川省巴中市巴州区": { + "lon": 106.7495, + "lat": 31.8605, + "tz": "Asia/Shanghai" + }, + "四川省巴中市恩阳区": { + "lon": 106.4825, + "lat": 31.8185, + "tz": "Asia/Shanghai" + }, + "四川省巴中市通江县": { + "lon": 107.2431, + "lat": 31.9143, + "tz": "Asia/Shanghai" + }, + "四川省巴中市南江县": { + "lon": 106.8393, + "lat": 32.3555, + "tz": "Asia/Shanghai" + }, + "四川省巴中市平昌县": { + "lon": 107.0973, + "lat": 31.5648, + "tz": "Asia/Shanghai" + }, + "四川省资阳市雁江区": { + "lon": 104.6399, + "lat": 30.1245, + "tz": "Asia/Shanghai" + }, + "四川省资阳市安岳县": { + "lon": 105.3333, + "lat": 30.1018, + "tz": "Asia/Shanghai" + }, + "四川省资阳市乐至县": { + "lon": 105.028, + "lat": 30.2782, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州马尔康市": { + "lon": 102.2195, + "lat": 31.902, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州汶川县": { + "lon": 103.5786, + "lat": 31.477, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州理县": { + "lon": 103.1634, + "lat": 31.4389, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州茂县": { + "lon": 103.8485, + "lat": 31.6827, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州松潘县": { + "lon": 103.5971, + "lat": 32.6408, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州九寨沟县": { + "lon": 104.2338, + "lat": 33.264, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州金川县": { + "lon": 102.0628, + "lat": 31.4784, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州小金县": { + "lon": 102.3614, + "lat": 31.0013, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州黑水县": { + "lon": 102.989, + "lat": 32.064, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州壤塘县": { + "lon": 100.9777, + "lat": 32.2673, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州阿坝县": { + "lon": 101.6992, + "lat": 32.9064, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州若尔盖县": { + "lon": 102.9619, + "lat": 33.5778, + "tz": "Asia/Shanghai" + }, + "四川省阿坝藏族羌族自治州红原县": { + "lon": 102.5434, + "lat": 32.7962, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州康定市": { + "lon": 101.9625, + "lat": 30.0536, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州泸定县": { + "lon": 102.2317, + "lat": 29.9152, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州丹巴县": { + "lon": 101.8846, + "lat": 30.8798, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州九龙县": { + "lon": 101.5053, + "lat": 29.0051, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州雅江县": { + "lon": 101.0142, + "lat": 30.0349, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州道孚县": { + "lon": 101.1215, + "lat": 30.981, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州炉霍县": { + "lon": 100.6782, + "lat": 31.395, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州甘孜县": { + "lon": 99.9905, + "lat": 31.622, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州新龙县": { + "lon": 100.3108, + "lat": 30.9414, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州德格县": { + "lon": 98.5797, + "lat": 31.8092, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州白玉县": { + "lon": 98.8238, + "lat": 31.2113, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州石渠县": { + "lon": 98.1002, + "lat": 32.9773, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州色达县": { + "lon": 100.3303, + "lat": 32.271, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州理塘县": { + "lon": 100.2686, + "lat": 29.9945, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州巴塘县": { + "lon": 99.108, + "lat": 30.0083, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州乡城县": { + "lon": 99.7988, + "lat": 28.9341, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州稻城县": { + "lon": 100.2955, + "lat": 29.0406, + "tz": "Asia/Shanghai" + }, + "四川省甘孜藏族自治州得荣县": { + "lon": 99.287, + "lat": 28.7147, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州西昌市": { + "lon": 102.2573, + "lat": 27.8892, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州木里藏族自治县": { + "lon": 101.2786, + "lat": 27.9303, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州盐源县": { + "lon": 101.5073, + "lat": 27.4269, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州德昌县": { + "lon": 102.1773, + "lat": 27.4072, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州会理市": { + "lon": 102.2481, + "lat": 26.6623, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州会东县": { + "lon": 102.5777, + "lat": 26.6344, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州宁南县": { + "lon": 102.7558, + "lat": 27.0687, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州普格县": { + "lon": 102.5397, + "lat": 27.3804, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州布拖县": { + "lon": 102.8073, + "lat": 27.7125, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州金阳县": { + "lon": 103.2468, + "lat": 27.6993, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州昭觉县": { + "lon": 102.8425, + "lat": 28.0141, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州喜德县": { + "lon": 102.4106, + "lat": 28.3088, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州冕宁县": { + "lon": 102.1684, + "lat": 28.5542, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州越西县": { + "lon": 102.5074, + "lat": 28.643, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州甘洛县": { + "lon": 102.7743, + "lat": 28.9802, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州美姑县": { + "lon": 103.13, + "lat": 28.3312, + "tz": "Asia/Shanghai" + }, + "四川省凉山彝族自治州雷波县": { + "lon": 103.5697, + "lat": 28.2666, + "tz": "Asia/Shanghai" + }, + "贵州省贵阳市南明区": { + "lon": 106.7122, + "lat": 26.5773, + "tz": "Asia/Shanghai" + }, + "贵州省贵阳市云岩区": { + "lon": 106.7096, + "lat": 26.5865, + "tz": "Asia/Shanghai" + }, + "贵州省贵阳市花溪区": { + "lon": 106.6671, + "lat": 26.414, + "tz": "Asia/Shanghai" + }, + "贵州省贵阳市乌当区": { + "lon": 106.7583, + "lat": 26.6344, + "tz": "Asia/Shanghai" + }, + "贵州省贵阳市白云区": { + "lon": 106.6295, + "lat": 26.6805, + "tz": "Asia/Shanghai" + }, + "贵州省贵阳市观山湖区": { + "lon": 106.6228, + "lat": 26.65, + "tz": "Asia/Shanghai" + }, + "贵州省贵阳市开阳县": { + "lon": 106.9655, + "lat": 27.0603, + "tz": "Asia/Shanghai" + }, + "贵州省贵阳市息烽县": { + "lon": 106.7339, + "lat": 27.0961, + "tz": "Asia/Shanghai" + }, + "贵州省贵阳市修文县": { + "lon": 106.5957, + "lat": 26.8443, + "tz": "Asia/Shanghai" + }, + "贵州省贵阳市清镇市": { + "lon": 106.4665, + "lat": 26.5547, + "tz": "Asia/Shanghai" + }, + "贵州省六盘水市钟山区": { + "lon": 104.8437, + "lat": 26.5884, + "tz": "Asia/Shanghai" + }, + "贵州省六盘水市六枝特区": { + "lon": 105.4708, + "lat": 26.214, + "tz": "Asia/Shanghai" + }, + "贵州省六盘水市水城区": { + "lon": 104.9542, + "lat": 26.5441, + "tz": "Asia/Shanghai" + }, + "贵州省六盘水市盘州市": { + "lon": 104.466, + "lat": 25.7099, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市红花岗区": { + "lon": 106.9399, + "lat": 27.6979, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市汇川区": { + "lon": 106.9334, + "lat": 27.7101, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市播州区": { + "lon": 106.8278, + "lat": 27.5387, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市桐梓县": { + "lon": 106.8227, + "lat": 28.1351, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市绥阳县": { + "lon": 107.1867, + "lat": 27.9547, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市正安县": { + "lon": 107.4373, + "lat": 28.5535, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市道真仡佬族苗族自治县": { + "lon": 107.6011, + "lat": 28.8834, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市务川仡佬族苗族自治县": { + "lon": 107.8837, + "lat": 28.5251, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市凤冈县": { + "lon": 107.7177, + "lat": 27.9643, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市湄潭县": { + "lon": 107.4813, + "lat": 27.7691, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市余庆县": { + "lon": 107.8885, + "lat": 27.2251, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市习水县": { + "lon": 106.1972, + "lat": 28.3312, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市赤水市": { + "lon": 105.6946, + "lat": 28.5905, + "tz": "Asia/Shanghai" + }, + "贵州省遵义市仁怀市": { + "lon": 106.4086, + "lat": 27.8066, + "tz": "Asia/Shanghai" + }, + "贵州省安顺市西秀区": { + "lon": 105.9428, + "lat": 26.2519, + "tz": "Asia/Shanghai" + }, + "贵州省安顺市平坝区": { + "lon": 106.2564, + "lat": 26.4095, + "tz": "Asia/Shanghai" + }, + "贵州省安顺市普定县": { + "lon": 105.7421, + "lat": 26.3092, + "tz": "Asia/Shanghai" + }, + "贵州省安顺市镇宁布依族苗族自治县": { + "lon": 105.7652, + "lat": 26.0594, + "tz": "Asia/Shanghai" + }, + "贵州省安顺市关岭布依族苗族自治县": { + "lon": 105.6153, + "lat": 25.9476, + "tz": "Asia/Shanghai" + }, + "贵州省安顺市紫云苗族布依族自治县": { + "lon": 106.0808, + "lat": 25.7545, + "tz": "Asia/Shanghai" + }, + "贵州省毕节市七星关区": { + "lon": 105.2816, + "lat": 27.3055, + "tz": "Asia/Shanghai" + }, + "贵州省毕节市大方县": { + "lon": 105.606, + "lat": 27.1471, + "tz": "Asia/Shanghai" + }, + "贵州省毕节市黔西市": { + "lon": 106.0346, + "lat": 27.0283, + "tz": "Asia/Shanghai" + }, + "贵州省毕节市金沙县": { + "lon": 106.2184, + "lat": 27.463, + "tz": "Asia/Shanghai" + }, + "贵州省毕节市织金县": { + "lon": 105.7655, + "lat": 26.672, + "tz": "Asia/Shanghai" + }, + "贵州省毕节市纳雍县": { + "lon": 105.3719, + "lat": 26.7732, + "tz": "Asia/Shanghai" + }, + "贵州省毕节市威宁彝族回族苗族自治县": { + "lon": 104.2843, + "lat": 26.8626, + "tz": "Asia/Shanghai" + }, + "贵州省毕节市赫章县": { + "lon": 104.7239, + "lat": 27.1227, + "tz": "Asia/Shanghai" + }, + "贵州省铜仁市碧江区": { + "lon": 109.1875, + "lat": 27.722, + "tz": "Asia/Shanghai" + }, + "贵州省铜仁市万山区": { + "lon": 109.2074, + "lat": 27.5223, + "tz": "Asia/Shanghai" + }, + "贵州省铜仁市江口县": { + "lon": 108.8443, + "lat": 27.6954, + "tz": "Asia/Shanghai" + }, + "贵州省铜仁市玉屏侗族自治县": { + "lon": 108.9138, + "lat": 27.2416, + "tz": "Asia/Shanghai" + }, + "贵州省铜仁市石阡县": { + "lon": 108.2257, + "lat": 27.5227, + "tz": "Asia/Shanghai" + }, + "贵州省铜仁市思南县": { + "lon": 108.2516, + "lat": 27.9447, + "tz": "Asia/Shanghai" + }, + "贵州省铜仁市印江土家族苗族自治县": { + "lon": 108.4011, + "lat": 28.0012, + "tz": "Asia/Shanghai" + }, + "贵州省铜仁市德江县": { + "lon": 108.1129, + "lat": 28.2642, + "tz": "Asia/Shanghai" + }, + "贵州省铜仁市沿河土家族自治县": { + "lon": 108.4915, + "lat": 28.5638, + "tz": "Asia/Shanghai" + }, + "贵州省铜仁市松桃苗族自治县": { + "lon": 109.198, + "lat": 28.1688, + "tz": "Asia/Shanghai" + }, + "贵州省黔西南布依族苗族自治州兴义市": { + "lon": 104.8955, + "lat": 25.0917, + "tz": "Asia/Shanghai" + }, + "贵州省黔西南布依族苗族自治州兴仁市": { + "lon": 105.1897, + "lat": 25.4343, + "tz": "Asia/Shanghai" + }, + "贵州省黔西南布依族苗族自治州普安县": { + "lon": 104.9527, + "lat": 25.7896, + "tz": "Asia/Shanghai" + }, + "贵州省黔西南布依族苗族自治州晴隆县": { + "lon": 105.2157, + "lat": 25.836, + "tz": "Asia/Shanghai" + }, + "贵州省黔西南布依族苗族自治州贞丰县": { + "lon": 105.6469, + "lat": 25.3888, + "tz": "Asia/Shanghai" + }, + "贵州省黔西南布依族苗族自治州望谟县": { + "lon": 106.0879, + "lat": 25.1694, + "tz": "Asia/Shanghai" + }, + "贵州省黔西南布依族苗族自治州册亨县": { + "lon": 105.8091, + "lat": 24.9863, + "tz": "Asia/Shanghai" + }, + "贵州省黔西南布依族苗族自治州安龙县": { + "lon": 105.4681, + "lat": 25.1118, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州凯里市": { + "lon": 107.9734, + "lat": 26.5865, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州黄平县": { + "lon": 107.8973, + "lat": 26.9006, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州施秉县": { + "lon": 108.1224, + "lat": 27.0379, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州三穗县": { + "lon": 108.677, + "lat": 26.9634, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州镇远县": { + "lon": 108.4193, + "lat": 27.0535, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州岑巩县": { + "lon": 108.8123, + "lat": 27.1767, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州天柱县": { + "lon": 109.2083, + "lat": 26.9131, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州锦屏县": { + "lon": 109.198, + "lat": 26.6841, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州剑河县": { + "lon": 108.4362, + "lat": 26.7307, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州台江县": { + "lon": 108.3105, + "lat": 26.6726, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州黎平县": { + "lon": 109.1319, + "lat": 26.2338, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州榕江县": { + "lon": 108.517, + "lat": 25.9343, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州从江县": { + "lon": 108.9086, + "lat": 25.7503, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州雷山县": { + "lon": 108.0753, + "lat": 26.3843, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州麻江县": { + "lon": 107.5891, + "lat": 26.4985, + "tz": "Asia/Shanghai" + }, + "贵州省黔东南苗族侗族自治州丹寨县": { + "lon": 107.7906, + "lat": 26.2029, + "tz": "Asia/Shanghai" + }, + "贵州省黔南布依族苗族自治州都匀市": { + "lon": 107.5128, + "lat": 26.2616, + "tz": "Asia/Shanghai" + }, + "贵州省黔南布依族苗族自治州福泉市": { + "lon": 107.5093, + "lat": 26.706, + "tz": "Asia/Shanghai" + }, + "贵州省黔南布依族苗族自治州荔波县": { + "lon": 107.8798, + "lat": 25.4153, + "tz": "Asia/Shanghai" + }, + "贵州省黔南布依族苗族自治州贵定县": { + "lon": 107.2294, + "lat": 26.5843, + "tz": "Asia/Shanghai" + }, + "贵州省黔南布依族苗族自治州瓮安县": { + "lon": 107.4741, + "lat": 27.0697, + "tz": "Asia/Shanghai" + }, + "贵州省黔南布依族苗族自治州独山县": { + "lon": 107.5387, + "lat": 25.8295, + "tz": "Asia/Shanghai" + }, + "贵州省黔南布依族苗族自治州平塘县": { + "lon": 107.3198, + "lat": 25.8348, + "tz": "Asia/Shanghai" + }, + "贵州省黔南布依族苗族自治州罗甸县": { + "lon": 106.7462, + "lat": 25.4328, + "tz": "Asia/Shanghai" + }, + "贵州省黔南布依族苗族自治州长顺县": { + "lon": 106.4436, + "lat": 26.0252, + "tz": "Asia/Shanghai" + }, + "贵州省黔南布依族苗族自治州龙里县": { + "lon": 106.9738, + "lat": 26.4524, + "tz": "Asia/Shanghai" + }, + "贵州省黔南布依族苗族自治州惠水县": { + "lon": 106.6543, + "lat": 26.1321, + "tz": "Asia/Shanghai" + }, + "贵州省黔南布依族苗族自治州三都水族自治县": { + "lon": 107.8735, + "lat": 25.9886, + "tz": "Asia/Shanghai" + }, + "云南省昆明市五华区": { + "lon": 102.703, + "lat": 25.0452, + "tz": "Asia/Shanghai" + }, + "云南省昆明市盘龙区": { + "lon": 102.7276, + "lat": 25.0732, + "tz": "Asia/Shanghai" + }, + "云南省昆明市官渡区": { + "lon": 102.722, + "lat": 25.0242, + "tz": "Asia/Shanghai" + }, + "云南省昆明市西山区": { + "lon": 102.7045, + "lat": 25.0273, + "tz": "Asia/Shanghai" + }, + "云南省昆明市东川区": { + "lon": 103.1801, + "lat": 26.0867, + "tz": "Asia/Shanghai" + }, + "云南省昆明市呈贡区": { + "lon": 102.7999, + "lat": 24.8923, + "tz": "Asia/Shanghai" + }, + "云南省昆明市晋宁区": { + "lon": 102.5938, + "lat": 24.6701, + "tz": "Asia/Shanghai" + }, + "云南省昆明市富民县": { + "lon": 102.4965, + "lat": 25.2226, + "tz": "Asia/Shanghai" + }, + "云南省昆明市宜良县": { + "lon": 103.1441, + "lat": 24.921, + "tz": "Asia/Shanghai" + }, + "云南省昆明市石林彝族自治县": { + "lon": 103.2701, + "lat": 24.7575, + "tz": "Asia/Shanghai" + }, + "云南省昆明市嵩明县": { + "lon": 103.037, + "lat": 25.3379, + "tz": "Asia/Shanghai" + }, + "云南省昆明市禄劝彝族苗族自治县": { + "lon": 102.4675, + "lat": 25.5594, + "tz": "Asia/Shanghai" + }, + "云南省昆明市寻甸回族彝族自治县": { + "lon": 103.2557, + "lat": 25.5625, + "tz": "Asia/Shanghai" + }, + "云南省昆明市安宁市": { + "lon": 102.4841, + "lat": 24.9247, + "tz": "Asia/Shanghai" + }, + "云南省曲靖市麒麟区": { + "lon": 103.796, + "lat": 25.5043, + "tz": "Asia/Shanghai" + }, + "云南省曲靖市沾益区": { + "lon": 103.8173, + "lat": 25.604, + "tz": "Asia/Shanghai" + }, + "云南省曲靖市马龙区": { + "lon": 103.5769, + "lat": 25.4326, + "tz": "Asia/Shanghai" + }, + "云南省曲靖市陆良县": { + "lon": 103.6534, + "lat": 25.0259, + "tz": "Asia/Shanghai" + }, + "云南省曲靖市师宗县": { + "lon": 103.9918, + "lat": 24.8287, + "tz": "Asia/Shanghai" + }, + "云南省曲靖市罗平县": { + "lon": 104.307, + "lat": 24.8886, + "tz": "Asia/Shanghai" + }, + "云南省曲靖市富源县": { + "lon": 104.2547, + "lat": 25.6737, + "tz": "Asia/Shanghai" + }, + "云南省曲靖市会泽县": { + "lon": 103.2981, + "lat": 26.4163, + "tz": "Asia/Shanghai" + }, + "云南省曲靖市宣威市": { + "lon": 104.0932, + "lat": 26.231, + "tz": "Asia/Shanghai" + }, + "云南省玉溪市红塔区": { + "lon": 102.5422, + "lat": 24.3538, + "tz": "Asia/Shanghai" + }, + "云南省玉溪市江川区": { + "lon": 102.7484, + "lat": 24.2939, + "tz": "Asia/Shanghai" + }, + "云南省玉溪市通海县": { + "lon": 102.7586, + "lat": 24.1151, + "tz": "Asia/Shanghai" + }, + "云南省玉溪市华宁县": { + "lon": 102.9276, + "lat": 24.1929, + "tz": "Asia/Shanghai" + }, + "云南省玉溪市易门县": { + "lon": 102.1606, + "lat": 24.6725, + "tz": "Asia/Shanghai" + }, + "云南省玉溪市峨山彝族自治县": { + "lon": 102.4028, + "lat": 24.1759, + "tz": "Asia/Shanghai" + }, + "云南省玉溪市新平彝族傣族自治县": { + "lon": 101.9895, + "lat": 24.0693, + "tz": "Asia/Shanghai" + }, + "云南省玉溪市元江哈尼族彝族傣族自治县": { + "lon": 101.9982, + "lat": 23.6003, + "tz": "Asia/Shanghai" + }, + "云南省玉溪市澄江市": { + "lon": 102.9153, + "lat": 24.6728, + "tz": "Asia/Shanghai" + }, + "云南省保山市隆阳区": { + "lon": 99.1649, + "lat": 25.115, + "tz": "Asia/Shanghai" + }, + "云南省保山市施甸县": { + "lon": 99.1829, + "lat": 24.7338, + "tz": "Asia/Shanghai" + }, + "云南省保山市龙陵县": { + "lon": 98.6932, + "lat": 24.595, + "tz": "Asia/Shanghai" + }, + "云南省保山市昌宁县": { + "lon": 99.6115, + "lat": 24.8268, + "tz": "Asia/Shanghai" + }, + "云南省保山市腾冲市": { + "lon": 98.497, + "lat": 25.0205, + "tz": "Asia/Shanghai" + }, + "云南省昭通市昭阳区": { + "lon": 103.7152, + "lat": 27.3401, + "tz": "Asia/Shanghai" + }, + "云南省昭通市鲁甸县": { + "lon": 103.5474, + "lat": 27.1952, + "tz": "Asia/Shanghai" + }, + "云南省昭通市巧家县": { + "lon": 102.9278, + "lat": 26.9154, + "tz": "Asia/Shanghai" + }, + "云南省昭通市盐津县": { + "lon": 104.2328, + "lat": 28.1104, + "tz": "Asia/Shanghai" + }, + "云南省昭通市大关县": { + "lon": 103.8896, + "lat": 27.7507, + "tz": "Asia/Shanghai" + }, + "云南省昭通市永善县": { + "lon": 103.6354, + "lat": 28.2351, + "tz": "Asia/Shanghai" + }, + "云南省昭通市绥江县": { + "lon": 103.959, + "lat": 28.6034, + "tz": "Asia/Shanghai" + }, + "云南省昭通市镇雄县": { + "lon": 104.8705, + "lat": 27.4398, + "tz": "Asia/Shanghai" + }, + "云南省昭通市彝良县": { + "lon": 104.0462, + "lat": 27.6307, + "tz": "Asia/Shanghai" + }, + "云南省昭通市威信县": { + "lon": 105.0456, + "lat": 27.8467, + "tz": "Asia/Shanghai" + }, + "云南省昭通市水富市": { + "lon": 104.4128, + "lat": 28.6329, + "tz": "Asia/Shanghai" + }, + "云南省丽江市古城区": { + "lon": 100.2333, + "lat": 26.8758, + "tz": "Asia/Shanghai" + }, + "云南省丽江市玉龙纳西族自治县": { + "lon": 100.2372, + "lat": 26.8341, + "tz": "Asia/Shanghai" + }, + "云南省丽江市永胜县": { + "lon": 100.7496, + "lat": 26.6892, + "tz": "Asia/Shanghai" + }, + "云南省丽江市华坪县": { + "lon": 101.2662, + "lat": 26.6324, + "tz": "Asia/Shanghai" + }, + "云南省丽江市宁蒗彝族自治县": { + "lon": 100.8512, + "lat": 27.2847, + "tz": "Asia/Shanghai" + }, + "云南省普洱市思茅区": { + "lon": 100.972, + "lat": 22.7796, + "tz": "Asia/Shanghai" + }, + "云南省普洱市宁洱哈尼族彝族自治县": { + "lon": 101.0438, + "lat": 23.0652, + "tz": "Asia/Shanghai" + }, + "云南省普洱市墨江哈尼族自治县": { + "lon": 101.6862, + "lat": 23.4309, + "tz": "Asia/Shanghai" + }, + "云南省普洱市景东彝族自治县": { + "lon": 100.8389, + "lat": 24.4516, + "tz": "Asia/Shanghai" + }, + "云南省普洱市景谷傣族彝族自治县": { + "lon": 100.7003, + "lat": 23.503, + "tz": "Asia/Shanghai" + }, + "云南省普洱市镇沅彝族哈尼族拉祜族自治县": { + "lon": 101.1069, + "lat": 24.0083, + "tz": "Asia/Shanghai" + }, + "云南省普洱市江城哈尼族彝族自治县": { + "lon": 101.8579, + "lat": 22.5865, + "tz": "Asia/Shanghai" + }, + "云南省普洱市孟连傣族拉祜族佤族自治县": { + "lon": 99.5846, + "lat": 22.3291, + "tz": "Asia/Shanghai" + }, + "云南省普洱市澜沧拉祜族自治县": { + "lon": 99.9304, + "lat": 22.5562, + "tz": "Asia/Shanghai" + }, + "云南省普洱市西盟佤族自治县": { + "lon": 99.5936, + "lat": 22.6476, + "tz": "Asia/Shanghai" + }, + "云南省临沧市临翔区": { + "lon": 100.0852, + "lat": 23.8892, + "tz": "Asia/Shanghai" + }, + "云南省临沧市凤庆县": { + "lon": 99.9178, + "lat": 24.5959, + "tz": "Asia/Shanghai" + }, + "云南省临沧市云县": { + "lon": 100.1244, + "lat": 24.4418, + "tz": "Asia/Shanghai" + }, + "云南省临沧市永德县": { + "lon": 99.2528, + "lat": 24.031, + "tz": "Asia/Shanghai" + }, + "云南省临沧市镇康县": { + "lon": 98.827, + "lat": 23.7642, + "tz": "Asia/Shanghai" + }, + "云南省临沧市双江拉祜族佤族布朗族傣族自治县": { + "lon": 99.8235, + "lat": 23.4803, + "tz": "Asia/Shanghai" + }, + "云南省临沧市耿马傣族佤族自治县": { + "lon": 99.4014, + "lat": 23.5371, + "tz": "Asia/Shanghai" + }, + "云南省临沧市沧源佤族自治县": { + "lon": 99.2466, + "lat": 23.1497, + "tz": "Asia/Shanghai" + }, + "云南省楚雄彝族自治州楚雄市": { + "lon": 101.5447, + "lat": 25.044, + "tz": "Asia/Shanghai" + }, + "云南省楚雄彝族自治州双柏县": { + "lon": 101.6369, + "lat": 24.6882, + "tz": "Asia/Shanghai" + }, + "云南省楚雄彝族自治州牟定县": { + "lon": 101.5416, + "lat": 25.3152, + "tz": "Asia/Shanghai" + }, + "云南省楚雄彝族自治州南华县": { + "lon": 101.2735, + "lat": 25.1953, + "tz": "Asia/Shanghai" + }, + "云南省楚雄彝族自治州姚安县": { + "lon": 101.2369, + "lat": 25.5084, + "tz": "Asia/Shanghai" + }, + "云南省楚雄彝族自治州大姚县": { + "lon": 101.322, + "lat": 25.7254, + "tz": "Asia/Shanghai" + }, + "云南省楚雄彝族自治州永仁县": { + "lon": 101.6697, + "lat": 26.0597, + "tz": "Asia/Shanghai" + }, + "云南省楚雄彝族自治州元谋县": { + "lon": 101.8695, + "lat": 25.7066, + "tz": "Asia/Shanghai" + }, + "云南省楚雄彝族自治州武定县": { + "lon": 102.4052, + "lat": 25.5329, + "tz": "Asia/Shanghai" + }, + "云南省楚雄彝族自治州禄丰市": { + "lon": 102.0741, + "lat": 25.146, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州个旧市": { + "lon": 103.1529, + "lat": 23.3629, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州开远市": { + "lon": 103.2569, + "lat": 23.7165, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州蒙自市": { + "lon": 103.383, + "lat": 23.3693, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州弥勒市": { + "lon": 103.4349, + "lat": 24.4112, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州屏边苗族自治县": { + "lon": 103.6853, + "lat": 22.9899, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州建水县": { + "lon": 102.8191, + "lat": 23.6211, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州石屏县": { + "lon": 102.4831, + "lat": 23.7152, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州泸西县": { + "lon": 103.7576, + "lat": 24.5353, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州元阳县": { + "lon": 102.8357, + "lat": 23.2226, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州红河县": { + "lon": 102.4197, + "lat": 23.3717, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州金平苗族瑶族傣族自治县": { + "lon": 103.2266, + "lat": 22.7829, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州绿春县": { + "lon": 102.3913, + "lat": 22.9962, + "tz": "Asia/Shanghai" + }, + "云南省红河哈尼族彝族自治州河口瑶族自治县": { + "lon": 103.9597, + "lat": 22.5106, + "tz": "Asia/Shanghai" + }, + "云南省文山壮族苗族自治州文山市": { + "lon": 104.2422, + "lat": 23.3719, + "tz": "Asia/Shanghai" + }, + "云南省文山壮族苗族自治州砚山县": { + "lon": 104.3417, + "lat": 23.6148, + "tz": "Asia/Shanghai" + }, + "云南省文山壮族苗族自治州西畴县": { + "lon": 104.6734, + "lat": 23.4402, + "tz": "Asia/Shanghai" + }, + "云南省文山壮族苗族自治州麻栗坡县": { + "lon": 104.6996, + "lat": 23.127, + "tz": "Asia/Shanghai" + }, + "云南省文山壮族苗族自治州马关县": { + "lon": 104.3963, + "lat": 23.0143, + "tz": "Asia/Shanghai" + }, + "云南省文山壮族苗族自治州丘北县": { + "lon": 104.1922, + "lat": 24.0437, + "tz": "Asia/Shanghai" + }, + "云南省文山壮族苗族自治州广南县": { + "lon": 105.0537, + "lat": 24.0529, + "tz": "Asia/Shanghai" + }, + "云南省文山壮族苗族自治州富宁县": { + "lon": 105.6255, + "lat": 23.6293, + "tz": "Asia/Shanghai" + }, + "云南省西双版纳傣族自治州景洪市": { + "lon": 100.7968, + "lat": 22.0049, + "tz": "Asia/Shanghai" + }, + "云南省西双版纳傣族自治州勐海县": { + "lon": 100.4471, + "lat": 21.9585, + "tz": "Asia/Shanghai" + }, + "云南省西双版纳傣族自治州勐腊县": { + "lon": 101.5658, + "lat": 21.4822, + "tz": "Asia/Shanghai" + }, + "云南省大理白族自治州大理市": { + "lon": 100.2403, + "lat": 25.5961, + "tz": "Asia/Shanghai" + }, + "云南省大理白族自治州漾濞彝族自治县": { + "lon": 99.957, + "lat": 25.6727, + "tz": "Asia/Shanghai" + }, + "云南省大理白族自治州祥云县": { + "lon": 100.553, + "lat": 25.4802, + "tz": "Asia/Shanghai" + }, + "云南省大理白族自治州宾川县": { + "lon": 100.578, + "lat": 25.8292, + "tz": "Asia/Shanghai" + }, + "云南省大理白族自治州弥渡县": { + "lon": 100.4895, + "lat": 25.3455, + "tz": "Asia/Shanghai" + }, + "云南省大理白族自治州南涧彝族自治县": { + "lon": 100.5176, + "lat": 25.0443, + "tz": "Asia/Shanghai" + }, + "云南省大理白族自治州巍山彝族回族自治县": { + "lon": 100.3068, + "lat": 25.2338, + "tz": "Asia/Shanghai" + }, + "云南省大理白族自治州永平县": { + "lon": 99.5326, + "lat": 25.4644, + "tz": "Asia/Shanghai" + }, + "云南省大理白族自治州云龙县": { + "lon": 99.3683, + "lat": 25.888, + "tz": "Asia/Shanghai" + }, + "云南省大理白族自治州洱源县": { + "lon": 99.9507, + "lat": 26.1147, + "tz": "Asia/Shanghai" + }, + "云南省大理白族自治州剑川县": { + "lon": 99.905, + "lat": 26.5338, + "tz": "Asia/Shanghai" + }, + "云南省大理白族自治州鹤庆县": { + "lon": 100.1722, + "lat": 26.5619, + "tz": "Asia/Shanghai" + }, + "云南省德宏傣族景颇族自治州瑞丽市": { + "lon": 97.8557, + "lat": 24.0137, + "tz": "Asia/Shanghai" + }, + "云南省德宏傣族景颇族自治州芒市": { + "lon": 98.5775, + "lat": 24.4399, + "tz": "Asia/Shanghai" + }, + "云南省德宏傣族景颇族自治州梁河县": { + "lon": 98.2979, + "lat": 24.8104, + "tz": "Asia/Shanghai" + }, + "云南省德宏傣族景颇族自治州盈江县": { + "lon": 97.9338, + "lat": 24.7127, + "tz": "Asia/Shanghai" + }, + "云南省德宏傣族景颇族自治州陇川县": { + "lon": 97.7941, + "lat": 24.187, + "tz": "Asia/Shanghai" + }, + "云南省怒江傈僳族自治州泸水市": { + "lon": 98.8537, + "lat": 25.8545, + "tz": "Asia/Shanghai" + }, + "云南省怒江傈僳族自治州福贡县": { + "lon": 98.867, + "lat": 26.9065, + "tz": "Asia/Shanghai" + }, + "云南省怒江傈僳族自治州贡山独龙族怒族自治县": { + "lon": 98.6658, + "lat": 27.7416, + "tz": "Asia/Shanghai" + }, + "云南省怒江傈僳族自治州兰坪白族普米族自治县": { + "lon": 99.4202, + "lat": 26.4572, + "tz": "Asia/Shanghai" + }, + "云南省迪庆藏族自治州香格里拉市": { + "lon": 99.7076, + "lat": 27.8293, + "tz": "Asia/Shanghai" + }, + "云南省迪庆藏族自治州德钦县": { + "lon": 98.9146, + "lat": 28.4869, + "tz": "Asia/Shanghai" + }, + "云南省迪庆藏族自治州维西傈僳族自治县": { + "lon": 99.2854, + "lat": 27.1844, + "tz": "Asia/Shanghai" + }, + "西藏自治区拉萨市城关区": { + "lon": 91.1314, + "lat": 29.6622, + "tz": "Asia/Shanghai" + }, + "西藏自治区拉萨市堆龙德庆区": { + "lon": 91.0015, + "lat": 29.6502, + "tz": "Asia/Shanghai" + }, + "西藏自治区拉萨市达孜区": { + "lon": 91.3495, + "lat": 29.6731, + "tz": "Asia/Shanghai" + }, + "西藏自治区拉萨市林周县": { + "lon": 91.2605, + "lat": 29.8986, + "tz": "Asia/Shanghai" + }, + "西藏自治区拉萨市当雄县": { + "lon": 91.102, + "lat": 30.4775, + "tz": "Asia/Shanghai" + }, + "西藏自治区拉萨市尼木县": { + "lon": 90.1638, + "lat": 29.4342, + "tz": "Asia/Shanghai" + }, + "西藏自治区拉萨市曲水县": { + "lon": 90.7367, + "lat": 29.3529, + "tz": "Asia/Shanghai" + }, + "西藏自治区拉萨市墨竹工卡县": { + "lon": 91.7299, + "lat": 29.8375, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市桑珠孜区": { + "lon": 88.8846, + "lat": 29.2703, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市南木林县": { + "lon": 89.097, + "lat": 29.6832, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市江孜县": { + "lon": 89.6031, + "lat": 28.9124, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市定日县": { + "lon": 87.1213, + "lat": 28.66, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市萨迦县": { + "lon": 88.0205, + "lat": 28.9044, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市拉孜县": { + "lon": 87.6351, + "lat": 29.0885, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市昂仁县": { + "lon": 87.2333, + "lat": 29.2978, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市谢通门县": { + "lon": 88.2582, + "lat": 29.4346, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市白朗县": { + "lon": 89.2614, + "lat": 29.1098, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市仁布县": { + "lon": 89.8414, + "lat": 29.2335, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市康马县": { + "lon": 89.6814, + "lat": 28.5584, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市定结县": { + "lon": 87.7653, + "lat": 28.3677, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市仲巴县": { + "lon": 84.0303, + "lat": 29.7712, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市亚东县": { + "lon": 88.9048, + "lat": 27.4865, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市吉隆县": { + "lon": 85.2961, + "lat": 28.8558, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市聂拉木县": { + "lon": 85.9799, + "lat": 28.1597, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市萨嘎县": { + "lon": 85.2324, + "lat": 29.3313, + "tz": "Asia/Shanghai" + }, + "西藏自治区日喀则市岗巴县": { + "lon": 88.5168, + "lat": 28.2781, + "tz": "Asia/Shanghai" + }, + "西藏自治区昌都市卡若区": { + "lon": 97.1777, + "lat": 31.1394, + "tz": "Asia/Shanghai" + }, + "西藏自治区昌都市江达县": { + "lon": 98.2179, + "lat": 31.5018, + "tz": "Asia/Shanghai" + }, + "西藏自治区昌都市贡觉县": { + "lon": 98.2708, + "lat": 30.8618, + "tz": "Asia/Shanghai" + }, + "西藏自治区昌都市类乌齐县": { + "lon": 96.6011, + "lat": 31.2156, + "tz": "Asia/Shanghai" + }, + "西藏自治区昌都市丁青县": { + "lon": 95.597, + "lat": 31.4132, + "tz": "Asia/Shanghai" + }, + "西藏自治区昌都市察雅县": { + "lon": 97.5654, + "lat": 30.6559, + "tz": "Asia/Shanghai" + }, + "西藏自治区昌都市八宿县": { + "lon": 96.9178, + "lat": 30.0564, + "tz": "Asia/Shanghai" + }, + "西藏自治区昌都市左贡县": { + "lon": 97.8402, + "lat": 29.6742, + "tz": "Asia/Shanghai" + }, + "西藏自治区昌都市芒康县": { + "lon": 98.5962, + "lat": 29.6896, + "tz": "Asia/Shanghai" + }, + "西藏自治区昌都市洛隆县": { + "lon": 95.8227, + "lat": 30.7447, + "tz": "Asia/Shanghai" + }, + "西藏自治区昌都市边坝县": { + "lon": 94.7066, + "lat": 30.9365, + "tz": "Asia/Shanghai" + }, + "西藏自治区林芝市巴宜区": { + "lon": 94.3598, + "lat": 29.6564, + "tz": "Asia/Shanghai" + }, + "西藏自治区林芝市工布江达县": { + "lon": 93.2453, + "lat": 29.8873, + "tz": "Asia/Shanghai" + }, + "西藏自治区林芝市米林县": { + "lon": 94.2126, + "lat": 29.2168, + "tz": "Asia/Shanghai" + }, + "西藏自治区林芝市墨脱县": { + "lon": 95.3311, + "lat": 29.3286, + "tz": "Asia/Shanghai" + }, + "西藏自治区林芝市波密县": { + "lon": 95.7673, + "lat": 29.8616, + "tz": "Asia/Shanghai" + }, + "西藏自治区林芝市察隅县": { + "lon": 97.4644, + "lat": 28.6636, + "tz": "Asia/Shanghai" + }, + "西藏自治区林芝市朗县": { + "lon": 93.0721, + "lat": 29.0476, + "tz": "Asia/Shanghai" + }, + "西藏自治区山南市乃东区": { + "lon": 91.764, + "lat": 29.2392, + "tz": "Asia/Shanghai" + }, + "西藏自治区山南市扎囊县": { + "lon": 91.3365, + "lat": 29.2494, + "tz": "Asia/Shanghai" + }, + "西藏自治区山南市贡嘎县": { + "lon": 90.984, + "lat": 29.2922, + "tz": "Asia/Shanghai" + }, + "西藏自治区山南市桑日县": { + "lon": 92.0146, + "lat": 29.2628, + "tz": "Asia/Shanghai" + }, + "西藏自治区山南市琼结县": { + "lon": 91.6826, + "lat": 29.0285, + "tz": "Asia/Shanghai" + }, + "西藏自治区山南市曲松县": { + "lon": 92.2, + "lat": 29.0668, + "tz": "Asia/Shanghai" + }, + "西藏自治区山南市措美县": { + "lon": 91.4308, + "lat": 28.4408, + "tz": "Asia/Shanghai" + }, + "西藏自治区山南市洛扎县": { + "lon": 90.8571, + "lat": 28.3895, + "tz": "Asia/Shanghai" + }, + "西藏自治区山南市加查县": { + "lon": 92.5903, + "lat": 29.1442, + "tz": "Asia/Shanghai" + }, + "西藏自治区山南市隆子县": { + "lon": 92.4623, + "lat": 28.412, + "tz": "Asia/Shanghai" + }, + "西藏自治区山南市错那县": { + "lon": 91.9592, + "lat": 27.9954, + "tz": "Asia/Shanghai" + }, + "西藏自治区山南市浪卡子县": { + "lon": 90.3971, + "lat": 28.9715, + "tz": "Asia/Shanghai" + }, + "西藏自治区那曲市色尼区": { + "lon": 92.0606, + "lat": 31.478, + "tz": "Asia/Shanghai" + }, + "西藏自治区那曲市嘉黎县": { + "lon": 93.2317, + "lat": 30.6436, + "tz": "Asia/Shanghai" + }, + "西藏自治区那曲市比如县": { + "lon": 93.6792, + "lat": 31.4823, + "tz": "Asia/Shanghai" + }, + "西藏自治区那曲市聂荣县": { + "lon": 92.3026, + "lat": 32.1103, + "tz": "Asia/Shanghai" + }, + "西藏自治区那曲市安多县": { + "lon": 91.6806, + "lat": 32.2629, + "tz": "Asia/Shanghai" + }, + "西藏自治区那曲市申扎县": { + "lon": 88.7075, + "lat": 30.9317, + "tz": "Asia/Shanghai" + }, + "西藏自治区那曲市索县": { + "lon": 93.7837, + "lat": 31.8886, + "tz": "Asia/Shanghai" + }, + "西藏自治区那曲市班戈县": { + "lon": 90.0099, + "lat": 31.397, + "tz": "Asia/Shanghai" + }, + "西藏自治区那曲市巴青县": { + "lon": 94.0527, + "lat": 31.9209, + "tz": "Asia/Shanghai" + }, + "西藏自治区那曲市尼玛县": { + "lon": 87.2341, + "lat": 31.7874, + "tz": "Asia/Shanghai" + }, + "西藏自治区那曲市双湖县": { + "lon": 88.8364, + "lat": 33.1893, + "tz": "Asia/Shanghai" + }, + "西藏自治区阿里地区普兰县": { + "lon": 81.1751, + "lat": 30.2948, + "tz": "Asia/Shanghai" + }, + "西藏自治区阿里地区札达县": { + "lon": 79.8012, + "lat": 31.4812, + "tz": "Asia/Shanghai" + }, + "西藏自治区阿里地区噶尔县": { + "lon": 80.1028, + "lat": 32.5059, + "tz": "Asia/Shanghai" + }, + "西藏自治区阿里地区日土县": { + "lon": 79.7298, + "lat": 33.3847, + "tz": "Asia/Shanghai" + }, + "西藏自治区阿里地区革吉县": { + "lon": 81.1403, + "lat": 32.3917, + "tz": "Asia/Shanghai" + }, + "西藏自治区阿里地区改则县": { + "lon": 84.0598, + "lat": 32.3045, + "tz": "Asia/Shanghai" + }, + "西藏自治区阿里地区措勤县": { + "lon": 85.1569, + "lat": 31.0193, + "tz": "Asia/Shanghai" + }, + "陕西省西安市新城区": { + "lon": 108.9552, + "lat": 34.2708, + "tz": "Asia/Shanghai" + }, + "陕西省西安市碑林区": { + "lon": 108.9423, + "lat": 34.2527, + "tz": "Asia/Shanghai" + }, + "陕西省西安市莲湖区": { + "lon": 108.9286, + "lat": 34.2672, + "tz": "Asia/Shanghai" + }, + "陕西省西安市灞桥区": { + "lon": 109.0622, + "lat": 34.2687, + "tz": "Asia/Shanghai" + }, + "陕西省西安市未央区": { + "lon": 108.9414, + "lat": 34.3098, + "tz": "Asia/Shanghai" + }, + "陕西省西安市雁塔区": { + "lon": 108.922, + "lat": 34.215, + "tz": "Asia/Shanghai" + }, + "陕西省西安市阎良区": { + "lon": 109.2229, + "lat": 34.6633, + "tz": "Asia/Shanghai" + }, + "陕西省西安市临潼区": { + "lon": 109.2089, + "lat": 34.3734, + "tz": "Asia/Shanghai" + }, + "陕西省西安市长安区": { + "lon": 108.9369, + "lat": 34.1587, + "tz": "Asia/Shanghai" + }, + "陕西省西安市高陵区": { + "lon": 109.0837, + "lat": 34.5362, + "tz": "Asia/Shanghai" + }, + "陕西省西安市鄠邑区": { + "lon": 108.603, + "lat": 34.1103, + "tz": "Asia/Shanghai" + }, + "陕西省西安市蓝田县": { + "lon": 109.3125, + "lat": 34.1576, + "tz": "Asia/Shanghai" + }, + "陕西省西安市周至县": { + "lon": 108.2118, + "lat": 34.163, + "tz": "Asia/Shanghai" + }, + "陕西省铜川市王益区": { + "lon": 109.0707, + "lat": 35.0697, + "tz": "Asia/Shanghai" + }, + "陕西省铜川市印台区": { + "lon": 109.0956, + "lat": 35.1124, + "tz": "Asia/Shanghai" + }, + "陕西省铜川市耀州区": { + "lon": 108.9578, + "lat": 34.9112, + "tz": "Asia/Shanghai" + }, + "陕西省铜川市宜君县": { + "lon": 109.113, + "lat": 35.399, + "tz": "Asia/Shanghai" + }, + "陕西省宝鸡市渭滨区": { + "lon": 107.1397, + "lat": 34.3723, + "tz": "Asia/Shanghai" + }, + "陕西省宝鸡市金台区": { + "lon": 107.1451, + "lat": 34.3765, + "tz": "Asia/Shanghai" + }, + "陕西省宝鸡市陈仓区": { + "lon": 107.3787, + "lat": 34.354, + "tz": "Asia/Shanghai" + }, + "陕西省宝鸡市凤翔区": { + "lon": 107.3956, + "lat": 34.5228, + "tz": "Asia/Shanghai" + }, + "陕西省宝鸡市岐山县": { + "lon": 107.6199, + "lat": 34.4445, + "tz": "Asia/Shanghai" + }, + "陕西省宝鸡市扶风县": { + "lon": 107.8869, + "lat": 34.3771, + "tz": "Asia/Shanghai" + }, + "陕西省宝鸡市眉县": { + "lon": 107.7476, + "lat": 34.2736, + "tz": "Asia/Shanghai" + }, + "陕西省宝鸡市陇县": { + "lon": 106.8528, + "lat": 34.8944, + "tz": "Asia/Shanghai" + }, + "陕西省宝鸡市千阳县": { + "lon": 107.1281, + "lat": 34.6436, + "tz": "Asia/Shanghai" + }, + "陕西省宝鸡市麟游县": { + "lon": 107.7918, + "lat": 34.6789, + "tz": "Asia/Shanghai" + }, + "陕西省宝鸡市凤县": { + "lon": 106.5211, + "lat": 33.9141, + "tz": "Asia/Shanghai" + }, + "陕西省宝鸡市太白县": { + "lon": 107.3118, + "lat": 34.0607, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市秦都区": { + "lon": 108.694, + "lat": 34.3313, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市杨陵区": { + "lon": 108.0814, + "lat": 34.2726, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市渭城区": { + "lon": 108.7263, + "lat": 34.3383, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市三原县": { + "lon": 108.9388, + "lat": 34.6154, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市泾阳县": { + "lon": 108.8332, + "lat": 34.5299, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市乾县": { + "lon": 108.2427, + "lat": 34.5286, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市礼泉县": { + "lon": 108.4235, + "lat": 34.4837, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市永寿县": { + "lon": 108.1382, + "lat": 34.6936, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市长武县": { + "lon": 107.791, + "lat": 35.2068, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市旬邑县": { + "lon": 108.3324, + "lat": 35.1128, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市淳化县": { + "lon": 108.5767, + "lat": 34.7992, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市武功县": { + "lon": 108.2082, + "lat": 34.2612, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市兴平市": { + "lon": 108.4838, + "lat": 34.2985, + "tz": "Asia/Shanghai" + }, + "陕西省咸阳市彬州市": { + "lon": 108.0787, + "lat": 35.0349, + "tz": "Asia/Shanghai" + }, + "陕西省渭南市临渭区": { + "lon": 109.4981, + "lat": 34.5026, + "tz": "Asia/Shanghai" + }, + "陕西省渭南市华州区": { + "lon": 109.7562, + "lat": 34.5132, + "tz": "Asia/Shanghai" + }, + "陕西省渭南市潼关县": { + "lon": 110.242, + "lat": 34.5458, + "tz": "Asia/Shanghai" + }, + "陕西省渭南市大荔县": { + "lon": 109.9381, + "lat": 34.7962, + "tz": "Asia/Shanghai" + }, + "陕西省渭南市合阳县": { + "lon": 110.1425, + "lat": 35.2375, + "tz": "Asia/Shanghai" + }, + "陕西省渭南市澄城县": { + "lon": 109.9325, + "lat": 35.1848, + "tz": "Asia/Shanghai" + }, + "陕西省渭南市蒲城县": { + "lon": 109.5846, + "lat": 34.9571, + "tz": "Asia/Shanghai" + }, + "陕西省渭南市白水县": { + "lon": 109.5893, + "lat": 35.1781, + "tz": "Asia/Shanghai" + }, + "陕西省渭南市富平县": { + "lon": 109.182, + "lat": 34.7477, + "tz": "Asia/Shanghai" + }, + "陕西省渭南市韩城市": { + "lon": 110.4468, + "lat": 35.4754, + "tz": "Asia/Shanghai" + }, + "陕西省渭南市华阴市": { + "lon": 110.0841, + "lat": 34.5664, + "tz": "Asia/Shanghai" + }, + "陕西省延安市宝塔区": { + "lon": 109.4853, + "lat": 36.5962, + "tz": "Asia/Shanghai" + }, + "陕西省延安市安塞区": { + "lon": 109.3199, + "lat": 36.8641, + "tz": "Asia/Shanghai" + }, + "陕西省延安市延长县": { + "lon": 110.0075, + "lat": 36.5782, + "tz": "Asia/Shanghai" + }, + "陕西省延安市延川县": { + "lon": 110.1848, + "lat": 36.8817, + "tz": "Asia/Shanghai" + }, + "陕西省延安市志丹县": { + "lon": 108.764, + "lat": 36.8228, + "tz": "Asia/Shanghai" + }, + "陕西省延安市吴起县": { + "lon": 108.172, + "lat": 36.9245, + "tz": "Asia/Shanghai" + }, + "陕西省延安市甘泉县": { + "lon": 109.3442, + "lat": 36.2777, + "tz": "Asia/Shanghai" + }, + "陕西省延安市富县": { + "lon": 109.3787, + "lat": 35.9965, + "tz": "Asia/Shanghai" + }, + "陕西省延安市洛川县": { + "lon": 109.4302, + "lat": 35.7622, + "tz": "Asia/Shanghai" + }, + "陕西省延安市宜川县": { + "lon": 110.17, + "lat": 36.0504, + "tz": "Asia/Shanghai" + }, + "陕西省延安市黄龙县": { + "lon": 109.8298, + "lat": 35.5836, + "tz": "Asia/Shanghai" + }, + "陕西省延安市黄陵县": { + "lon": 109.2573, + "lat": 35.5805, + "tz": "Asia/Shanghai" + }, + "陕西省延安市子长市": { + "lon": 109.6706, + "lat": 37.1417, + "tz": "Asia/Shanghai" + }, + "陕西省汉中市汉台区": { + "lon": 107.0237, + "lat": 33.0796, + "tz": "Asia/Shanghai" + }, + "陕西省汉中市南郑区": { + "lon": 106.9382, + "lat": 33.0055, + "tz": "Asia/Shanghai" + }, + "陕西省汉中市城固县": { + "lon": 107.3251, + "lat": 33.1549, + "tz": "Asia/Shanghai" + }, + "陕西省汉中市洋县": { + "lon": 107.5454, + "lat": 33.2252, + "tz": "Asia/Shanghai" + }, + "陕西省汉中市西乡县": { + "lon": 107.7612, + "lat": 32.99, + "tz": "Asia/Shanghai" + }, + "陕西省汉中市勉县": { + "lon": 106.6761, + "lat": 33.1576, + "tz": "Asia/Shanghai" + }, + "陕西省汉中市宁强县": { + "lon": 106.2534, + "lat": 32.8329, + "tz": "Asia/Shanghai" + }, + "陕西省汉中市略阳县": { + "lon": 106.1498, + "lat": 33.3313, + "tz": "Asia/Shanghai" + }, + "陕西省汉中市镇巴县": { + "lon": 107.8909, + "lat": 32.5383, + "tz": "Asia/Shanghai" + }, + "陕西省汉中市留坝县": { + "lon": 106.9202, + "lat": 33.6152, + "tz": "Asia/Shanghai" + }, + "陕西省汉中市佛坪县": { + "lon": 107.984, + "lat": 33.5225, + "tz": "Asia/Shanghai" + }, + "陕西省榆林市榆阳区": { + "lon": 109.7423, + "lat": 38.2987, + "tz": "Asia/Shanghai" + }, + "陕西省榆林市横山区": { + "lon": 109.2872, + "lat": 37.9635, + "tz": "Asia/Shanghai" + }, + "陕西省榆林市府谷县": { + "lon": 111.0632, + "lat": 39.0283, + "tz": "Asia/Shanghai" + }, + "陕西省榆林市靖边县": { + "lon": 108.8007, + "lat": 37.5955, + "tz": "Asia/Shanghai" + }, + "陕西省榆林市定边县": { + "lon": 107.5964, + "lat": 37.5948, + "tz": "Asia/Shanghai" + }, + "陕西省榆林市绥德县": { + "lon": 110.2598, + "lat": 37.5071, + "tz": "Asia/Shanghai" + }, + "陕西省榆林市米脂县": { + "lon": 110.173, + "lat": 37.7584, + "tz": "Asia/Shanghai" + }, + "陕西省榆林市佳县": { + "lon": 110.4877, + "lat": 38.021, + "tz": "Asia/Shanghai" + }, + "陕西省榆林市吴堡县": { + "lon": 110.7335, + "lat": 37.4513, + "tz": "Asia/Shanghai" + }, + "陕西省榆林市清涧县": { + "lon": 110.1158, + "lat": 37.0871, + "tz": "Asia/Shanghai" + }, + "陕西省榆林市子洲县": { + "lon": 110.0289, + "lat": 37.6109, + "tz": "Asia/Shanghai" + }, + "陕西省榆林市神木市": { + "lon": 110.4912, + "lat": 38.8349, + "tz": "Asia/Shanghai" + }, + "陕西省安康市汉滨区": { + "lon": 109.0243, + "lat": 32.6929, + "tz": "Asia/Shanghai" + }, + "陕西省安康市汉阴县": { + "lon": 108.5064, + "lat": 32.8932, + "tz": "Asia/Shanghai" + }, + "陕西省安康市石泉县": { + "lon": 108.246, + "lat": 33.0405, + "tz": "Asia/Shanghai" + }, + "陕西省安康市宁陕县": { + "lon": 108.3091, + "lat": 33.3139, + "tz": "Asia/Shanghai" + }, + "陕西省安康市紫阳县": { + "lon": 108.5334, + "lat": 32.5225, + "tz": "Asia/Shanghai" + }, + "陕西省安康市岚皋县": { + "lon": 108.8962, + "lat": 32.3131, + "tz": "Asia/Shanghai" + }, + "陕西省安康市平利县": { + "lon": 109.3568, + "lat": 32.39, + "tz": "Asia/Shanghai" + }, + "陕西省安康市镇坪县": { + "lon": 109.5215, + "lat": 31.8856, + "tz": "Asia/Shanghai" + }, + "陕西省安康市旬阳市": { + "lon": 109.363, + "lat": 32.8355, + "tz": "Asia/Shanghai" + }, + "陕西省安康市白河县": { + "lon": 110.1089, + "lat": 32.8114, + "tz": "Asia/Shanghai" + }, + "陕西省商洛市商州区": { + "lon": 109.9327, + "lat": 33.8709, + "tz": "Asia/Shanghai" + }, + "陕西省商洛市洛南县": { + "lon": 110.1403, + "lat": 34.0898, + "tz": "Asia/Shanghai" + }, + "陕西省商洛市丹凤县": { + "lon": 110.3266, + "lat": 33.6962, + "tz": "Asia/Shanghai" + }, + "陕西省商洛市商南县": { + "lon": 110.8801, + "lat": 33.5282, + "tz": "Asia/Shanghai" + }, + "陕西省商洛市山阳县": { + "lon": 109.8755, + "lat": 33.5322, + "tz": "Asia/Shanghai" + }, + "陕西省商洛市镇安县": { + "lon": 109.146, + "lat": 33.4255, + "tz": "Asia/Shanghai" + }, + "陕西省商洛市柞水县": { + "lon": 109.1061, + "lat": 33.6842, + "tz": "Asia/Shanghai" + }, + "甘肃省兰州市城关区": { + "lon": 103.8386, + "lat": 36.0495, + "tz": "Asia/Shanghai" + }, + "甘肃省兰州市七里河区": { + "lon": 103.7818, + "lat": 36.067, + "tz": "Asia/Shanghai" + }, + "甘肃省兰州市西固区": { + "lon": 103.6201, + "lat": 36.1008, + "tz": "Asia/Shanghai" + }, + "甘肃省兰州市安宁区": { + "lon": 103.7215, + "lat": 36.1035, + "tz": "Asia/Shanghai" + }, + "甘肃省兰州市红古区": { + "lon": 102.86, + "lat": 36.3445, + "tz": "Asia/Shanghai" + }, + "甘肃省兰州市永登县": { + "lon": 103.2599, + "lat": 36.7344, + "tz": "Asia/Shanghai" + }, + "甘肃省兰州市皋兰县": { + "lon": 103.9469, + "lat": 36.3315, + "tz": "Asia/Shanghai" + }, + "甘肃省兰州市榆中县": { + "lon": 104.1122, + "lat": 35.8445, + "tz": "Asia/Shanghai" + }, + "甘肃省嘉峪关市": { + "lon": 98.2767, + "lat": 39.7857, + "tz": "Asia/Shanghai" + }, + "甘肃省金昌市金川区": { + "lon": 102.1857, + "lat": 38.5134, + "tz": "Asia/Shanghai" + }, + "甘肃省金昌市永昌县": { + "lon": 101.9701, + "lat": 38.2471, + "tz": "Asia/Shanghai" + }, + "甘肃省白银市白银区": { + "lon": 104.1715, + "lat": 36.5456, + "tz": "Asia/Shanghai" + }, + "甘肃省白银市平川区": { + "lon": 104.8161, + "lat": 36.7292, + "tz": "Asia/Shanghai" + }, + "甘肃省白银市靖远县": { + "lon": 104.6841, + "lat": 36.5615, + "tz": "Asia/Shanghai" + }, + "甘肃省白银市会宁县": { + "lon": 105.0508, + "lat": 35.6927, + "tz": "Asia/Shanghai" + }, + "甘肃省白银市景泰县": { + "lon": 104.0636, + "lat": 37.193, + "tz": "Asia/Shanghai" + }, + "甘肃省天水市秦州区": { + "lon": 105.7205, + "lat": 34.58, + "tz": "Asia/Shanghai" + }, + "甘肃省天水市麦积区": { + "lon": 105.8938, + "lat": 34.565, + "tz": "Asia/Shanghai" + }, + "甘肃省天水市清水县": { + "lon": 106.1356, + "lat": 34.7539, + "tz": "Asia/Shanghai" + }, + "甘肃省天水市秦安县": { + "lon": 105.6695, + "lat": 34.8635, + "tz": "Asia/Shanghai" + }, + "甘肃省天水市甘谷县": { + "lon": 105.3286, + "lat": 34.7484, + "tz": "Asia/Shanghai" + }, + "甘肃省天水市武山县": { + "lon": 104.8888, + "lat": 34.7233, + "tz": "Asia/Shanghai" + }, + "甘肃省天水市张家川回族自治县": { + "lon": 106.2083, + "lat": 34.9941, + "tz": "Asia/Shanghai" + }, + "甘肃省武威市凉州区": { + "lon": 102.6328, + "lat": 37.93, + "tz": "Asia/Shanghai" + }, + "甘肃省武威市民勤县": { + "lon": 103.0882, + "lat": 38.624, + "tz": "Asia/Shanghai" + }, + "甘肃省武威市古浪县": { + "lon": 102.8962, + "lat": 37.4703, + "tz": "Asia/Shanghai" + }, + "甘肃省武威市天祝藏族自治县": { + "lon": 103.1396, + "lat": 36.9713, + "tz": "Asia/Shanghai" + }, + "甘肃省张掖市甘州区": { + "lon": 100.4532, + "lat": 38.9311, + "tz": "Asia/Shanghai" + }, + "甘肃省张掖市肃南裕固族自治县": { + "lon": 99.6159, + "lat": 38.837, + "tz": "Asia/Shanghai" + }, + "甘肃省张掖市民乐县": { + "lon": 100.815, + "lat": 38.4342, + "tz": "Asia/Shanghai" + }, + "甘肃省张掖市临泽县": { + "lon": 100.1647, + "lat": 39.1514, + "tz": "Asia/Shanghai" + }, + "甘肃省张掖市高台县": { + "lon": 99.8152, + "lat": 39.3756, + "tz": "Asia/Shanghai" + }, + "甘肃省张掖市山丹县": { + "lon": 101.0863, + "lat": 38.7842, + "tz": "Asia/Shanghai" + }, + "甘肃省平凉市崆峒区": { + "lon": 106.68, + "lat": 35.5422, + "tz": "Asia/Shanghai" + }, + "甘肃省平凉市泾川县": { + "lon": 107.3602, + "lat": 35.3356, + "tz": "Asia/Shanghai" + }, + "甘肃省平凉市灵台县": { + "lon": 107.6159, + "lat": 35.065, + "tz": "Asia/Shanghai" + }, + "甘肃省平凉市崇信县": { + "lon": 107.0265, + "lat": 35.305, + "tz": "Asia/Shanghai" + }, + "甘肃省平凉市庄浪县": { + "lon": 106.0378, + "lat": 35.204, + "tz": "Asia/Shanghai" + }, + "甘肃省平凉市静宁县": { + "lon": 105.7295, + "lat": 35.5256, + "tz": "Asia/Shanghai" + }, + "甘肃省平凉市华亭市": { + "lon": 106.6452, + "lat": 35.2161, + "tz": "Asia/Shanghai" + }, + "甘肃省酒泉市肃州区": { + "lon": 98.5106, + "lat": 39.7431, + "tz": "Asia/Shanghai" + }, + "甘肃省酒泉市金塔县": { + "lon": 98.9023, + "lat": 39.9824, + "tz": "Asia/Shanghai" + }, + "甘肃省酒泉市瓜州县": { + "lon": 95.7796, + "lat": 40.5157, + "tz": "Asia/Shanghai" + }, + "甘肃省酒泉市肃北蒙古族自治县": { + "lon": 94.8763, + "lat": 39.5117, + "tz": "Asia/Shanghai" + }, + "甘肃省酒泉市阿克塞哈萨克族自治县": { + "lon": 94.3363, + "lat": 39.6308, + "tz": "Asia/Shanghai" + }, + "甘肃省酒泉市玉门市": { + "lon": 97.0365, + "lat": 40.2859, + "tz": "Asia/Shanghai" + }, + "甘肃省酒泉市敦煌市": { + "lon": 94.6632, + "lat": 40.1405, + "tz": "Asia/Shanghai" + }, + "甘肃省庆阳市西峰区": { + "lon": 107.6341, + "lat": 35.7341, + "tz": "Asia/Shanghai" + }, + "甘肃省庆阳市庆城县": { + "lon": 107.881, + "lat": 36.0138, + "tz": "Asia/Shanghai" + }, + "甘肃省庆阳市环县": { + "lon": 107.3038, + "lat": 36.5693, + "tz": "Asia/Shanghai" + }, + "甘肃省庆阳市华池县": { + "lon": 107.9814, + "lat": 36.4574, + "tz": "Asia/Shanghai" + }, + "甘肃省庆阳市合水县": { + "lon": 108.015, + "lat": 35.8192, + "tz": "Asia/Shanghai" + }, + "甘肃省庆阳市正宁县": { + "lon": 108.3562, + "lat": 35.4909, + "tz": "Asia/Shanghai" + }, + "甘肃省庆阳市宁县": { + "lon": 107.9166, + "lat": 35.5026, + "tz": "Asia/Shanghai" + }, + "甘肃省庆阳市镇原县": { + "lon": 107.1909, + "lat": 35.678, + "tz": "Asia/Shanghai" + }, + "甘肃省定西市安定区": { + "lon": 104.6231, + "lat": 35.5803, + "tz": "Asia/Shanghai" + }, + "甘肃省定西市通渭县": { + "lon": 105.2465, + "lat": 35.2096, + "tz": "Asia/Shanghai" + }, + "甘肃省定西市陇西县": { + "lon": 104.6349, + "lat": 35.0045, + "tz": "Asia/Shanghai" + }, + "甘肃省定西市渭源县": { + "lon": 104.2091, + "lat": 35.1338, + "tz": "Asia/Shanghai" + }, + "甘肃省定西市临洮县": { + "lon": 103.8599, + "lat": 35.3769, + "tz": "Asia/Shanghai" + }, + "甘肃省定西市漳县": { + "lon": 104.4639, + "lat": 34.8496, + "tz": "Asia/Shanghai" + }, + "甘肃省定西市岷县": { + "lon": 104.0373, + "lat": 34.4404, + "tz": "Asia/Shanghai" + }, + "甘肃省陇南市武都区": { + "lon": 104.927, + "lat": 33.3901, + "tz": "Asia/Shanghai" + }, + "甘肃省陇南市成县": { + "lon": 105.7305, + "lat": 33.7415, + "tz": "Asia/Shanghai" + }, + "甘肃省陇南市文县": { + "lon": 104.6798, + "lat": 32.9443, + "tz": "Asia/Shanghai" + }, + "甘肃省陇南市宕昌县": { + "lon": 104.3916, + "lat": 34.0441, + "tz": "Asia/Shanghai" + }, + "甘肃省陇南市康县": { + "lon": 105.6059, + "lat": 33.3303, + "tz": "Asia/Shanghai" + }, + "甘肃省陇南市西和县": { + "lon": 105.2961, + "lat": 34.0153, + "tz": "Asia/Shanghai" + }, + "甘肃省陇南市礼县": { + "lon": 105.1781, + "lat": 34.1908, + "tz": "Asia/Shanghai" + }, + "甘肃省陇南市徽县": { + "lon": 106.0814, + "lat": 33.7692, + "tz": "Asia/Shanghai" + }, + "甘肃省陇南市两当县": { + "lon": 106.3028, + "lat": 33.9123, + "tz": "Asia/Shanghai" + }, + "甘肃省临夏回族自治州临夏市": { + "lon": 103.2094, + "lat": 35.5998, + "tz": "Asia/Shanghai" + }, + "甘肃省临夏回族自治州临夏县": { + "lon": 102.9919, + "lat": 35.4928, + "tz": "Asia/Shanghai" + }, + "甘肃省临夏回族自治州康乐县": { + "lon": 103.7074, + "lat": 35.3725, + "tz": "Asia/Shanghai" + }, + "甘肃省临夏回族自治州永靖县": { + "lon": 103.3175, + "lat": 35.9391, + "tz": "Asia/Shanghai" + }, + "甘肃省临夏回族自治州广河县": { + "lon": 103.574, + "lat": 35.4823, + "tz": "Asia/Shanghai" + }, + "甘肃省临夏回族自治州和政县": { + "lon": 103.3479, + "lat": 35.4263, + "tz": "Asia/Shanghai" + }, + "甘肃省临夏回族自治州东乡族自治县": { + "lon": 103.387, + "lat": 35.664, + "tz": "Asia/Shanghai" + }, + "甘肃省临夏回族自治州积石山保安族东乡族撒拉族自治县": { + "lon": 102.8757, + "lat": 35.7134, + "tz": "Asia/Shanghai" + }, + "甘肃省甘南藏族自治州合作市": { + "lon": 102.9098, + "lat": 34.9871, + "tz": "Asia/Shanghai" + }, + "甘肃省甘南藏族自治州临潭县": { + "lon": 103.3506, + "lat": 34.6928, + "tz": "Asia/Shanghai" + }, + "甘肃省甘南藏族自治州卓尼县": { + "lon": 103.5062, + "lat": 34.5895, + "tz": "Asia/Shanghai" + }, + "甘肃省甘南藏族自治州舟曲县": { + "lon": 104.3675, + "lat": 33.7844, + "tz": "Asia/Shanghai" + }, + "甘肃省甘南藏族自治州迭部县": { + "lon": 103.2188, + "lat": 34.0569, + "tz": "Asia/Shanghai" + }, + "甘肃省甘南藏族自治州玛曲县": { + "lon": 102.0738, + "lat": 33.9995, + "tz": "Asia/Shanghai" + }, + "甘肃省甘南藏族自治州碌曲县": { + "lon": 102.4867, + "lat": 34.5909, + "tz": "Asia/Shanghai" + }, + "甘肃省甘南藏族自治州夏河县": { + "lon": 102.5191, + "lat": 35.2016, + "tz": "Asia/Shanghai" + }, + "青海省西宁市城东区": { + "lon": 101.7942, + "lat": 36.6161, + "tz": "Asia/Shanghai" + }, + "青海省西宁市城中区": { + "lon": 101.7826, + "lat": 36.6213, + "tz": "Asia/Shanghai" + }, + "青海省西宁市城西区": { + "lon": 101.7617, + "lat": 36.6284, + "tz": "Asia/Shanghai" + }, + "青海省西宁市城北区": { + "lon": 101.7593, + "lat": 36.6485, + "tz": "Asia/Shanghai" + }, + "青海省西宁市湟中区": { + "lon": 101.5677, + "lat": 36.5007, + "tz": "Asia/Shanghai" + }, + "青海省西宁市大通回族土族自治县": { + "lon": 101.6823, + "lat": 36.9313, + "tz": "Asia/Shanghai" + }, + "青海省西宁市湟源县": { + "lon": 101.2615, + "lat": 36.6849, + "tz": "Asia/Shanghai" + }, + "青海省海东市乐都区": { + "lon": 102.4004, + "lat": 36.4802, + "tz": "Asia/Shanghai" + }, + "青海省海东市平安区": { + "lon": 102.1022, + "lat": 36.5026, + "tz": "Asia/Shanghai" + }, + "青海省海东市民和回族土族自治县": { + "lon": 102.8023, + "lat": 36.3297, + "tz": "Asia/Shanghai" + }, + "青海省海东市互助土族自治县": { + "lon": 101.955, + "lat": 36.84, + "tz": "Asia/Shanghai" + }, + "青海省海东市化隆回族自治县": { + "lon": 102.2605, + "lat": 36.0986, + "tz": "Asia/Shanghai" + }, + "青海省海东市循化撒拉族自治县": { + "lon": 102.4847, + "lat": 35.8475, + "tz": "Asia/Shanghai" + }, + "青海省海北藏族自治州门源回族自治县": { + "lon": 101.6167, + "lat": 37.3764, + "tz": "Asia/Shanghai" + }, + "青海省海北藏族自治州祁连县": { + "lon": 100.2483, + "lat": 38.1751, + "tz": "Asia/Shanghai" + }, + "青海省海北藏族自治州海晏县": { + "lon": 100.899, + "lat": 36.9596, + "tz": "Asia/Shanghai" + }, + "青海省海北藏族自治州刚察县": { + "lon": 100.1368, + "lat": 37.3258, + "tz": "Asia/Shanghai" + }, + "青海省黄南藏族自治州同仁市": { + "lon": 102.0157, + "lat": 35.5168, + "tz": "Asia/Shanghai" + }, + "青海省黄南藏族自治州尖扎县": { + "lon": 102.03, + "lat": 35.9384, + "tz": "Asia/Shanghai" + }, + "青海省黄南藏族自治州泽库县": { + "lon": 101.4673, + "lat": 35.0377, + "tz": "Asia/Shanghai" + }, + "青海省黄南藏族自治州河南蒙古族自治县": { + "lon": 101.6102, + "lat": 34.7359, + "tz": "Asia/Shanghai" + }, + "青海省海南藏族自治州共和县": { + "lon": 100.6183, + "lat": 36.2807, + "tz": "Asia/Shanghai" + }, + "青海省海南藏族自治州同德县": { + "lon": 100.5782, + "lat": 35.2554, + "tz": "Asia/Shanghai" + }, + "青海省海南藏族自治州贵德县": { + "lon": 101.4297, + "lat": 36.0406, + "tz": "Asia/Shanghai" + }, + "青海省海南藏族自治州兴海县": { + "lon": 99.9856, + "lat": 35.5896, + "tz": "Asia/Shanghai" + }, + "青海省海南藏族自治州贵南县": { + "lon": 100.7464, + "lat": 35.5875, + "tz": "Asia/Shanghai" + }, + "青海省果洛藏族自治州玛沁县": { + "lon": 100.2422, + "lat": 34.4749, + "tz": "Asia/Shanghai" + }, + "青海省果洛藏族自治州班玛县": { + "lon": 100.7365, + "lat": 32.9337, + "tz": "Asia/Shanghai" + }, + "青海省果洛藏族自治州甘德县": { + "lon": 99.9015, + "lat": 33.9688, + "tz": "Asia/Shanghai" + }, + "青海省果洛藏族自治州达日县": { + "lon": 99.6506, + "lat": 33.7551, + "tz": "Asia/Shanghai" + }, + "青海省果洛藏族自治州久治县": { + "lon": 101.483, + "lat": 33.432, + "tz": "Asia/Shanghai" + }, + "青海省果洛藏族自治州玛多县": { + "lon": 98.2109, + "lat": 34.9164, + "tz": "Asia/Shanghai" + }, + "青海省玉树藏族自治州玉树市": { + "lon": 97.0083, + "lat": 33.0061, + "tz": "Asia/Shanghai" + }, + "青海省玉树藏族自治州杂多县": { + "lon": 95.2923, + "lat": 32.8941, + "tz": "Asia/Shanghai" + }, + "青海省玉树藏族自治州称多县": { + "lon": 97.1102, + "lat": 33.3696, + "tz": "Asia/Shanghai" + }, + "青海省玉树藏族自治州治多县": { + "lon": 95.6161, + "lat": 33.8543, + "tz": "Asia/Shanghai" + }, + "青海省玉树藏族自治州囊谦县": { + "lon": 96.4794, + "lat": 32.2056, + "tz": "Asia/Shanghai" + }, + "青海省玉树藏族自治州曲麻莱县": { + "lon": 95.7998, + "lat": 34.1283, + "tz": "Asia/Shanghai" + }, + "青海省海西蒙古族藏族自治州格尔木市": { + "lon": 94.9049, + "lat": 36.402, + "tz": "Asia/Shanghai" + }, + "青海省海西蒙古族藏族自治州德令哈市": { + "lon": 97.3693, + "lat": 37.3741, + "tz": "Asia/Shanghai" + }, + "青海省海西蒙古族藏族自治州茫崖市": { + "lon": 90.8546, + "lat": 38.2471, + "tz": "Asia/Shanghai" + }, + "青海省海西蒙古族藏族自治州乌兰县": { + "lon": 98.4792, + "lat": 36.9303, + "tz": "Asia/Shanghai" + }, + "青海省海西蒙古族藏族自治州都兰县": { + "lon": 98.0884, + "lat": 36.2986, + "tz": "Asia/Shanghai" + }, + "青海省海西蒙古族藏族自治州天峻县": { + "lon": 99.0197, + "lat": 37.2987, + "tz": "Asia/Shanghai" + }, + "青海省海西蒙古族藏族自治州海西蒙古族藏族自治州直辖": { + "lon": 95.3559, + "lat": 37.8532, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区银川市兴庆区": { + "lon": 106.274, + "lat": 38.467, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区银川市西夏区": { + "lon": 106.1275, + "lat": 38.4918, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区银川市金凤区": { + "lon": 106.2241, + "lat": 38.4769, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区银川市永宁县": { + "lon": 106.2494, + "lat": 38.28, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区银川市贺兰县": { + "lon": 106.3413, + "lat": 38.554, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区银川市灵武市": { + "lon": 106.3302, + "lat": 38.0935, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区石嘴山市大武口区": { + "lon": 106.372, + "lat": 39.0133, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区石嘴山市惠农区": { + "lon": 106.7708, + "lat": 39.2293, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区石嘴山市平罗县": { + "lon": 106.5405, + "lat": 38.9062, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区吴忠市利通区": { + "lon": 106.195, + "lat": 37.9854, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区吴忠市红寺堡区": { + "lon": 106.0629, + "lat": 37.421, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区吴忠市盐池县": { + "lon": 107.4001, + "lat": 37.7835, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区吴忠市同心县": { + "lon": 105.9108, + "lat": 36.9828, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区吴忠市青铜峡市": { + "lon": 106.0709, + "lat": 38.0209, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区固原市原州区": { + "lon": 106.2805, + "lat": 36.0055, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区固原市西吉县": { + "lon": 105.7278, + "lat": 35.9656, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区固原市隆德县": { + "lon": 106.1191, + "lat": 35.6184, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区固原市泾源县": { + "lon": 106.3344, + "lat": 35.4937, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区固原市彭阳县": { + "lon": 106.6373, + "lat": 35.8503, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区中卫市沙坡头区": { + "lon": 105.1868, + "lat": 37.514, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区中卫市中宁县": { + "lon": 105.6718, + "lat": 37.4893, + "tz": "Asia/Shanghai" + }, + "宁夏回族自治区中卫市海原县": { + "lon": 105.6434, + "lat": 36.5622, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区乌鲁木齐市天山区": { + "lon": 87.6173, + "lat": 43.7952, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区乌鲁木齐市沙依巴克区": { + "lon": 87.5938, + "lat": 43.7877, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区乌鲁木齐市新市区": { + "lon": 87.5578, + "lat": 43.8697, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区乌鲁木齐市水磨沟区": { + "lon": 87.6102, + "lat": 43.8155, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区乌鲁木齐市头屯河区": { + "lon": 87.4225, + "lat": 43.8745, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区乌鲁木齐市达坂城区": { + "lon": 88.3071, + "lat": 43.3602, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区乌鲁木齐市米东区": { + "lon": 87.6888, + "lat": 43.9597, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区乌鲁木齐市乌鲁木齐县": { + "lon": 87.5025, + "lat": 43.9813, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区克拉玛依市独山子区": { + "lon": 84.8799, + "lat": 44.3264, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区克拉玛依市克拉玛依区": { + "lon": 84.8665, + "lat": 45.5997, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区克拉玛依市白碱滩区": { + "lon": 85.1269, + "lat": 45.6879, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区克拉玛依市乌尔禾区": { + "lon": 85.695, + "lat": 46.087, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区吐鲁番市高昌区": { + "lon": 89.1795, + "lat": 42.9461, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区吐鲁番市鄯善县": { + "lon": 90.2106, + "lat": 42.864, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区吐鲁番市托克逊县": { + "lon": 88.6532, + "lat": 42.7922, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区哈密市伊州区": { + "lon": 93.5075, + "lat": 42.8323, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区哈密市巴里坤哈萨克自治县": { + "lon": 93.0202, + "lat": 43.5973, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区哈密市伊吾县": { + "lon": 94.6916, + "lat": 43.2504, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区昌吉回族自治州昌吉市": { + "lon": 87.301, + "lat": 44.0119, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区昌吉回族自治州阜康市": { + "lon": 87.9809, + "lat": 44.151, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区昌吉回族自治州呼图壁县": { + "lon": 86.8861, + "lat": 44.1884, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区昌吉回族自治州玛纳斯县": { + "lon": 86.2151, + "lat": 44.3045, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区昌吉回族自治州奇台县": { + "lon": 89.589, + "lat": 44.0209, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区昌吉回族自治州吉木萨尔县": { + "lon": 89.1784, + "lat": 43.9958, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区昌吉回族自治州木垒哈萨克自治县": { + "lon": 90.2808, + "lat": 43.831, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区博尔塔拉蒙古自治州博乐市": { + "lon": 82.069, + "lat": 44.9021, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区博尔塔拉蒙古自治州阿拉山口市": { + "lon": 82.5666, + "lat": 45.167, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区博尔塔拉蒙古自治州精河县": { + "lon": 82.8901, + "lat": 44.605, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区博尔塔拉蒙古自治州温泉县": { + "lon": 81.0282, + "lat": 44.9728, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区巴音郭楞蒙古自治州库尔勒市": { + "lon": 86.1433, + "lat": 41.7616, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区巴音郭楞蒙古自治州轮台县": { + "lon": 84.2459, + "lat": 41.7799, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区巴音郭楞蒙古自治州尉犁县": { + "lon": 86.261, + "lat": 41.3362, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区巴音郭楞蒙古自治州若羌县": { + "lon": 88.166, + "lat": 39.0234, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区巴音郭楞蒙古自治州且末县": { + "lon": 85.5302, + "lat": 38.1386, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区巴音郭楞蒙古自治州焉耆回族自治县": { + "lon": 86.5675, + "lat": 42.0632, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区巴音郭楞蒙古自治州和静县": { + "lon": 86.3884, + "lat": 42.3157, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区巴音郭楞蒙古自治州和硕县": { + "lon": 86.8625, + "lat": 42.2677, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区巴音郭楞蒙古自治州博湖县": { + "lon": 86.6293, + "lat": 41.979, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿克苏地区阿克苏市": { + "lon": 80.2607, + "lat": 41.1703, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿克苏地区库车市": { + "lon": 82.9602, + "lat": 41.716, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿克苏地区温宿县": { + "lon": 80.2411, + "lat": 41.2719, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿克苏地区沙雅县": { + "lon": 82.7779, + "lat": 41.2252, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿克苏地区新和县": { + "lon": 82.6082, + "lat": 41.5501, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿克苏地区拜城县": { + "lon": 81.8671, + "lat": 41.795, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿克苏地区乌什县": { + "lon": 79.2285, + "lat": 41.2149, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿克苏地区阿瓦提县": { + "lon": 80.376, + "lat": 40.6377, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿克苏地区柯坪县": { + "lon": 79.0455, + "lat": 40.5056, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿图什市": { + "lon": 76.1709, + "lat": 39.7125, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿克陶县": { + "lon": 75.9423, + "lat": 39.1471, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿合奇县": { + "lon": 78.4478, + "lat": 40.9367, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区克孜勒苏柯尔克孜自治州乌恰县": { + "lon": 75.2566, + "lat": 39.7163, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区喀什地区喀什市": { + "lon": 75.9854, + "lat": 39.4676, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区喀什地区疏附县": { + "lon": 75.8602, + "lat": 39.3782, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区喀什地区疏勒县": { + "lon": 76.0505, + "lat": 39.3991, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区喀什地区英吉沙县": { + "lon": 76.1713, + "lat": 38.9298, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区喀什地区泽普县": { + "lon": 77.2708, + "lat": 38.1913, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区喀什地区莎车县": { + "lon": 77.2461, + "lat": 38.4147, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区喀什地区叶城县": { + "lon": 77.4173, + "lat": 37.8846, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区喀什地区麦盖提县": { + "lon": 77.649, + "lat": 38.9035, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区喀什地区岳普湖县": { + "lon": 76.7696, + "lat": 39.2351, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区喀什地区伽师县": { + "lon": 76.7392, + "lat": 39.494, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区喀什地区巴楚县": { + "lon": 78.5485, + "lat": 39.7832, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区喀什地区塔什库尔干塔吉克自治县": { + "lon": 75.225, + "lat": 37.7755, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区和田地区和田市": { + "lon": 79.9256, + "lat": 37.1093, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区和田地区和田县": { + "lon": 79.817, + "lat": 37.1203, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区和田地区墨玉县": { + "lon": 79.7344, + "lat": 37.2716, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区和田地区皮山县": { + "lon": 78.2801, + "lat": 37.6163, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区和田地区洛浦县": { + "lon": 80.1819, + "lat": 37.0745, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区和田地区策勒县": { + "lon": 80.8014, + "lat": 37.0019, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区和田地区于田县": { + "lon": 81.6652, + "lat": 36.855, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区和田地区民丰县": { + "lon": 82.6897, + "lat": 37.0651, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区伊犁哈萨克自治州伊宁市": { + "lon": 81.3133, + "lat": 43.921, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区伊犁哈萨克自治州奎屯市": { + "lon": 84.8992, + "lat": 44.4227, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区伊犁哈萨克自治州霍尔果斯市": { + "lon": 80.4182, + "lat": 44.2005, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区伊犁哈萨克自治州伊宁县": { + "lon": 81.5217, + "lat": 43.9768, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区伊犁哈萨克自治州察布查尔锡伯自治县": { + "lon": 81.1479, + "lat": 43.8375, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区伊犁哈萨克自治州霍城县": { + "lon": 80.8702, + "lat": 44.049, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区伊犁哈萨克自治州巩留县": { + "lon": 82.2241, + "lat": 43.4802, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区伊犁哈萨克自治州新源县": { + "lon": 83.2553, + "lat": 43.4328, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区伊犁哈萨克自治州昭苏县": { + "lon": 81.1231, + "lat": 43.1562, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区伊犁哈萨克自治州特克斯县": { + "lon": 81.8372, + "lat": 43.2136, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区伊犁哈萨克自治州尼勒克县": { + "lon": 82.5012, + "lat": 43.7885, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区塔城地区塔城市": { + "lon": 82.9808, + "lat": 46.7456, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区塔城地区乌苏市": { + "lon": 84.6752, + "lat": 44.4292, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区塔城地区额敏县": { + "lon": 83.6191, + "lat": 46.522, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区塔城地区沙湾市": { + "lon": 85.62, + "lat": 44.3287, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区塔城地区托里县": { + "lon": 83.6017, + "lat": 45.9352, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区塔城地区裕民县": { + "lon": 82.979, + "lat": 46.2021, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区塔城地区和布克赛尔蒙古自治县": { + "lon": 85.7307, + "lat": 46.7921, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿勒泰地区阿勒泰市": { + "lon": 88.1354, + "lat": 47.8476, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿勒泰地区布尔津县": { + "lon": 86.8592, + "lat": 47.7035, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿勒泰地区富蕴县": { + "lon": 89.5222, + "lat": 46.9921, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿勒泰地区福海县": { + "lon": 87.4912, + "lat": 47.112, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿勒泰地区哈巴河县": { + "lon": 86.416, + "lat": 48.0581, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿勒泰地区青河县": { + "lon": 90.3793, + "lat": 46.6713, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿勒泰地区吉木乃县": { + "lon": 85.8735, + "lat": 47.4337, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区石河子市": { + "lon": 86.0383, + "lat": 44.3047, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区阿拉尔市": { + "lon": 81.2831, + "lat": 40.5413, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区图木舒克市": { + "lon": 79.0756, + "lat": 39.8668, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区五家渠市": { + "lon": 87.5239, + "lat": 44.1663, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区北屯市": { + "lon": 87.8218, + "lat": 47.3521, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区铁门关市": { + "lon": 85.4986, + "lat": 41.8259, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区双河市": { + "lon": 82.3505, + "lat": 44.8395, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区可克达拉市": { + "lon": 80.6337, + "lat": 43.6821, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区昆玉市": { + "lon": 79.2852, + "lat": 37.2081, + "tz": "Asia/Shanghai" + }, + "新疆维吾尔自治区胡杨河市": { + "lon": 84.8251, + "lat": 44.6921, + "tz": "Asia/Shanghai" + }, + "香港特别行政区中西区": { + "lon": 114.1494, + "lat": 22.2847, + "tz": "Asia/Shanghai" + }, + "香港特别行政区湾仔区": { + "lon": 114.178, + "lat": 22.2791, + "tz": "Asia/Shanghai" + }, + "香港特别行政区东区": { + "lon": 114.2212, + "lat": 22.2825, + "tz": "Asia/Shanghai" + }, + "香港特别行政区南区": { + "lon": 114.155, + "lat": 22.2486, + "tz": "Asia/Shanghai" + }, + "香港特别行政区油尖旺区": { + "lon": 114.1684, + "lat": 22.3145, + "tz": "Asia/Shanghai" + }, + "香港特别行政区深水埗区": { + "lon": 114.1582, + "lat": 22.3366, + "tz": "Asia/Shanghai" + }, + "香港特别行政区九龙城区": { + "lon": 114.1879, + "lat": 22.3153, + "tz": "Asia/Shanghai" + }, + "香港特别行政区黄大仙区": { + "lon": 114.199, + "lat": 22.3391, + "tz": "Asia/Shanghai" + }, + "香港特别行政区观塘区": { + "lon": 114.2092, + "lat": 22.3237, + "tz": "Asia/Shanghai" + }, + "香港特别行政区荃湾区": { + "lon": 114.116, + "lat": 22.371, + "tz": "Asia/Shanghai" + }, + "香港特别行政区屯门区": { + "lon": 113.9717, + "lat": 22.3968, + "tz": "Asia/Shanghai" + }, + "香港特别行政区元朗区": { + "lon": 114.0274, + "lat": 22.4442, + "tz": "Asia/Shanghai" + }, + "香港特别行政区北区": { + "lon": 114.1423, + "lat": 22.4988, + "tz": "Asia/Shanghai" + }, + "香港特别行政区大埔区": { + "lon": 114.1668, + "lat": 22.4484, + "tz": "Asia/Shanghai" + }, + "香港特别行政区西贡区": { + "lon": 114.2598, + "lat": 22.3171, + "tz": "Asia/Shanghai" + }, + "香港特别行政区沙田区": { + "lon": 114.1905, + "lat": 22.3823, + "tz": "Asia/Shanghai" + }, + "香港特别行政区葵青区": { + "lon": 114.1343, + "lat": 22.3666, + "tz": "Asia/Shanghai" + }, + "香港特别行政区离岛区": { + "lon": 113.9413, + "lat": 22.2894, + "tz": "Asia/Shanghai" + }, + "澳门特别行政区花地玛堂区": { + "lon": 113.5478, + "lat": 22.2108, + "tz": "Asia/Shanghai" + }, + "澳门特别行政区花王堂区": { + "lon": 113.5439, + "lat": 22.2021, + "tz": "Asia/Shanghai" + }, + "澳门特别行政区望德堂区": { + "lon": 113.5451, + "lat": 22.1967, + "tz": "Asia/Shanghai" + }, + "澳门特别行政区大堂区": { + "lon": 113.5486, + "lat": 22.1915, + "tz": "Asia/Shanghai" + }, + "澳门特别行政区风顺堂区": { + "lon": 113.5368, + "lat": 22.1903, + "tz": "Asia/Shanghai" + }, + "澳门特别行政区嘉模堂区": { + "lon": 113.5536, + "lat": 22.1567, + "tz": "Asia/Shanghai" + }, + "澳门特别行政区路凼填海区": { + "lon": 113.5645, + "lat": 22.1396, + "tz": "Asia/Shanghai" + }, + "澳门特别行政区圣方济各堂区": { + "lon": 113.5549, + "lat": 22.1264, + "tz": "Asia/Shanghai" + }, + "_aliases": { + "乌市": "乌鲁木齐", + "蓉城": "成都", + "羊城": "广州", + "花城": "广州", + "申城": "上海", + "泉城": "济南", + "榕城": "福州", + "鹏城": "深圳", + "山城": "重庆", + "江城": "武汉", + "春城": "昆明", + "冰城": "哈尔滨", + "哈市": "哈尔滨", + "金陵": "南京", + "姑苏": "苏州", + "锡城": "无锡", + "彭城": "徐州", + "长安": "西安", + "庐州": "合肥", + "甬城": "宁波", + "鹭岛": "厦门", + "琴岛": "青岛", + "滨城": "大连", + "鹿城": "温州", + "邕城": "南宁", + "椰城": "海口", + "筑城": "贵阳", + "盐都": "自贡", + "瓷都": "景德镇", + "并州": "太原", + "奉天": "沈阳", + "盛京": "沈阳", + "商都": "郑州", + "延吉": "延边", + "吉首": "湘西", + "西昌": "凉山", + "康定": "甘孜", + "马尔康": "阿坝", + "兴义": "黔西南", + "凯里": "黔东南", + "都匀": "黔南", + "蒙自": "红河", + "景洪": "西双版纳", + "芒市": "德宏", + "香格里拉": "迪庆", + "同仁": "黄南", + "共和": "海南州", + "合作": "甘南", + "乌兰浩特": "兴安盟", + "锡林浩特": "锡林郭勒盟", + "巴彦浩特": "阿拉善盟", + "伊犁": "伊宁", + "巴音郭楞": "库尔勒", + "博尔塔拉": "博乐", + "克孜勒苏": "阿图什", + "东城区": "北京市东城区", + "西城区": "北京市西城区", + "丰台区": "北京市丰台区", + "石景山区": "北京市石景山区", + "海淀区": "北京市海淀区", + "门头沟区": "北京市门头沟区", + "房山区": "北京市房山区", + "顺义区": "北京市顺义区", + "昌平区": "北京市昌平区", + "大兴区": "北京市大兴区", + "怀柔区": "北京市怀柔区", + "平谷区": "北京市平谷区", + "密云区": "北京市密云区", + "延庆区": "北京市延庆区", + "河西区": "天津市河西区", + "南开区": "天津市南开区", + "河北区": "天津市河北区", + "红桥区": "天津市红桥区", + "东丽区": "天津市东丽区", + "西青区": "天津市西青区", + "津南区": "天津市津南区", + "北辰区": "天津市北辰区", + "武清区": "天津市武清区", + "宝坻区": "天津市宝坻区", + "滨海新区": "天津市滨海新区", + "宁河区": "天津市宁河区", + "静海区": "天津市静海区", + "蓟州区": "天津市蓟州区", + "井陉矿区": "河北省石家庄市井陉矿区", + "裕华区": "河北省石家庄市裕华区", + "藁城区": "河北省石家庄市藁城区", + "鹿泉区": "河北省石家庄市鹿泉区", + "栾城区": "河北省石家庄市栾城区", + "井陉县": "河北省石家庄市井陉县", + "正定县": "河北省石家庄市正定县", + "行唐县": "河北省石家庄市行唐县", + "灵寿县": "河北省石家庄市灵寿县", + "高邑县": "河北省石家庄市高邑县", + "深泽县": "河北省石家庄市深泽县", + "赞皇县": "河北省石家庄市赞皇县", + "无极县": "河北省石家庄市无极县", + "平山县": "河北省石家庄市平山县", + "元氏县": "河北省石家庄市元氏县", + "赵县": "河北省石家庄市赵县", + "辛集市": "河北省石家庄市辛集市", + "晋州市": "河北省石家庄市晋州市", + "新乐市": "河北省石家庄市新乐市", + "路南区": "河北省唐山市路南区", + "路北区": "河北省唐山市路北区", + "古冶区": "河北省唐山市古冶区", + "开平区": "河北省唐山市开平区", + "丰南区": "河北省唐山市丰南区", + "丰润区": "河北省唐山市丰润区", + "曹妃甸区": "河北省唐山市曹妃甸区", + "滦南县": "河北省唐山市滦南县", + "乐亭县": "河北省唐山市乐亭县", + "迁西县": "河北省唐山市迁西县", + "玉田县": "河北省唐山市玉田县", + "遵化市": "河北省唐山市遵化市", + "迁安市": "河北省唐山市迁安市", + "滦州市": "河北省唐山市滦州市", + "海港区": "河北省秦皇岛市海港区", + "山海关区": "河北省秦皇岛市山海关区", + "北戴河区": "河北省秦皇岛市北戴河区", + "抚宁区": "河北省秦皇岛市抚宁区", + "青龙满族自治县": "河北省秦皇岛市青龙满族自治县", + "昌黎县": "河北省秦皇岛市昌黎县", + "卢龙县": "河北省秦皇岛市卢龙县", + "邯山区": "河北省邯郸市邯山区", + "丛台区": "河北省邯郸市丛台区", + "复兴区": "河北省邯郸市复兴区", + "峰峰矿区": "河北省邯郸市峰峰矿区", + "肥乡区": "河北省邯郸市肥乡区", + "永年区": "河北省邯郸市永年区", + "临漳县": "河北省邯郸市临漳县", + "成安县": "河北省邯郸市成安县", + "大名县": "河北省邯郸市大名县", + "涉县": "河北省邯郸市涉县", + "磁县": "河北省邯郸市磁县", + "邱县": "河北省邯郸市邱县", + "鸡泽县": "河北省邯郸市鸡泽县", + "广平县": "河北省邯郸市广平县", + "馆陶县": "河北省邯郸市馆陶县", + "魏县": "河北省邯郸市魏县", + "曲周县": "河北省邯郸市曲周县", + "武安市": "河北省邯郸市武安市", + "襄都区": "河北省邢台市襄都区", + "信都区": "河北省邢台市信都区", + "任泽区": "河北省邢台市任泽区", + "南和区": "河北省邢台市南和区", + "临城县": "河北省邢台市临城县", + "内丘县": "河北省邢台市内丘县", + "柏乡县": "河北省邢台市柏乡县", + "隆尧县": "河北省邢台市隆尧县", + "宁晋县": "河北省邢台市宁晋县", + "巨鹿县": "河北省邢台市巨鹿县", + "新河县": "河北省邢台市新河县", + "广宗县": "河北省邢台市广宗县", + "平乡县": "河北省邢台市平乡县", + "威县": "河北省邢台市威县", + "清河县": "河北省邢台市清河县", + "临西县": "河北省邢台市临西县", + "南宫市": "河北省邢台市南宫市", + "沙河市": "河北省邢台市沙河市", + "竞秀区": "河北省保定市竞秀区", + "莲池区": "河北省保定市莲池区", + "满城区": "河北省保定市满城区", + "清苑区": "河北省保定市清苑区", + "徐水区": "河北省保定市徐水区", + "涞水县": "河北省保定市涞水县", + "阜平县": "河北省保定市阜平县", + "定兴县": "河北省保定市定兴县", + "唐县": "河北省保定市唐县", + "高阳县": "河北省保定市高阳县", + "容城县": "河北省保定市容城县", + "涞源县": "河北省保定市涞源县", + "望都县": "河北省保定市望都县", + "安新县": "河北省保定市安新县", + "易县": "河北省保定市易县", + "曲阳县": "河北省保定市曲阳县", + "蠡县": "河北省保定市蠡县", + "顺平县": "河北省保定市顺平县", + "博野县": "河北省保定市博野县", + "雄县": "河北省保定市雄县", + "涿州市": "河北省保定市涿州市", + "定州市": "河北省保定市定州市", + "安国市": "河北省保定市安国市", + "高碑店市": "河北省保定市高碑店市", + "桥东区": "河北省张家口市桥东区", + "宣化区": "河北省张家口市宣化区", + "下花园区": "河北省张家口市下花园区", + "万全区": "河北省张家口市万全区", + "崇礼区": "河北省张家口市崇礼区", + "张北县": "河北省张家口市张北县", + "康保县": "河北省张家口市康保县", + "沽源县": "河北省张家口市沽源县", + "尚义县": "河北省张家口市尚义县", + "蔚县": "河北省张家口市蔚县", + "阳原县": "河北省张家口市阳原县", + "怀安县": "河北省张家口市怀安县", + "怀来县": "河北省张家口市怀来县", + "涿鹿县": "河北省张家口市涿鹿县", + "赤城县": "河北省张家口市赤城县", + "双桥区": "河北省承德市双桥区", + "双滦区": "河北省承德市双滦区", + "鹰手营子矿区": "河北省承德市鹰手营子矿区", + "承德县": "河北省承德市承德县", + "兴隆县": "河北省承德市兴隆县", + "滦平县": "河北省承德市滦平县", + "隆化县": "河北省承德市隆化县", + "丰宁满族自治县": "河北省承德市丰宁满族自治县", + "宽城满族自治县": "河北省承德市宽城满族自治县", + "围场满族蒙古族自治县": "河北省承德市围场满族蒙古族自治县", + "平泉市": "河北省承德市平泉市", + "运河区": "河北省沧州市运河区", + "沧县": "河北省沧州市沧县", + "青县": "河北省沧州市青县", + "东光县": "河北省沧州市东光县", + "海兴县": "河北省沧州市海兴县", + "盐山县": "河北省沧州市盐山县", + "肃宁县": "河北省沧州市肃宁县", + "南皮县": "河北省沧州市南皮县", + "吴桥县": "河北省沧州市吴桥县", + "献县": "河北省沧州市献县", + "孟村回族自治县": "河北省沧州市孟村回族自治县", + "泊头市": "河北省沧州市泊头市", + "任丘市": "河北省沧州市任丘市", + "黄骅市": "河北省沧州市黄骅市", + "河间市": "河北省沧州市河间市", + "安次区": "河北省廊坊市安次区", + "广阳区": "河北省廊坊市广阳区", + "固安县": "河北省廊坊市固安县", + "永清县": "河北省廊坊市永清县", + "香河县": "河北省廊坊市香河县", + "大城县": "河北省廊坊市大城县", + "文安县": "河北省廊坊市文安县", + "大厂回族自治县": "河北省廊坊市大厂回族自治县", + "霸州市": "河北省廊坊市霸州市", + "三河市": "河北省廊坊市三河市", + "桃城区": "河北省衡水市桃城区", + "冀州区": "河北省衡水市冀州区", + "枣强县": "河北省衡水市枣强县", + "武邑县": "河北省衡水市武邑县", + "武强县": "河北省衡水市武强县", + "饶阳县": "河北省衡水市饶阳县", + "安平县": "河北省衡水市安平县", + "故城县": "河北省衡水市故城县", + "景县": "河北省衡水市景县", + "阜城县": "河北省衡水市阜城县", + "深州市": "河北省衡水市深州市", + "小店区": "山西省太原市小店区", + "迎泽区": "山西省太原市迎泽区", + "杏花岭区": "山西省太原市杏花岭区", + "尖草坪区": "山西省太原市尖草坪区", + "万柏林区": "山西省太原市万柏林区", + "晋源区": "山西省太原市晋源区", + "清徐县": "山西省太原市清徐县", + "阳曲县": "山西省太原市阳曲县", + "娄烦县": "山西省太原市娄烦县", + "古交市": "山西省太原市古交市", + "新荣区": "山西省大同市新荣区", + "平城区": "山西省大同市平城区", + "云冈区": "山西省大同市云冈区", + "云州区": "山西省大同市云州区", + "阳高县": "山西省大同市阳高县", + "天镇县": "山西省大同市天镇县", + "广灵县": "山西省大同市广灵县", + "灵丘县": "山西省大同市灵丘县", + "浑源县": "山西省大同市浑源县", + "左云县": "山西省大同市左云县", + "矿区": "山西省阳泉市矿区", + "平定县": "山西省阳泉市平定县", + "盂县": "山西省阳泉市盂县", + "潞州区": "山西省长治市潞州区", + "上党区": "山西省长治市上党区", + "屯留区": "山西省长治市屯留区", + "潞城区": "山西省长治市潞城区", + "襄垣县": "山西省长治市襄垣县", + "平顺县": "山西省长治市平顺县", + "黎城县": "山西省长治市黎城县", + "壶关县": "山西省长治市壶关县", + "长子县": "山西省长治市长子县", + "武乡县": "山西省长治市武乡县", + "沁县": "山西省长治市沁县", + "沁源县": "山西省长治市沁源县", + "沁水县": "山西省晋城市沁水县", + "阳城县": "山西省晋城市阳城县", + "陵川县": "山西省晋城市陵川县", + "泽州县": "山西省晋城市泽州县", + "高平市": "山西省晋城市高平市", + "朔城区": "山西省朔州市朔城区", + "平鲁区": "山西省朔州市平鲁区", + "山阴县": "山西省朔州市山阴县", + "应县": "山西省朔州市应县", + "右玉县": "山西省朔州市右玉县", + "怀仁市": "山西省朔州市怀仁市", + "榆次区": "山西省晋中市榆次区", + "太谷区": "山西省晋中市太谷区", + "榆社县": "山西省晋中市榆社县", + "左权县": "山西省晋中市左权县", + "和顺县": "山西省晋中市和顺县", + "昔阳县": "山西省晋中市昔阳县", + "寿阳县": "山西省晋中市寿阳县", + "祁县": "山西省晋中市祁县", + "平遥县": "山西省晋中市平遥县", + "灵石县": "山西省晋中市灵石县", + "介休市": "山西省晋中市介休市", + "盐湖区": "山西省运城市盐湖区", + "临猗县": "山西省运城市临猗县", + "万荣县": "山西省运城市万荣县", + "闻喜县": "山西省运城市闻喜县", + "稷山县": "山西省运城市稷山县", + "新绛县": "山西省运城市新绛县", + "绛县": "山西省运城市绛县", + "垣曲县": "山西省运城市垣曲县", + "夏县": "山西省运城市夏县", + "平陆县": "山西省运城市平陆县", + "芮城县": "山西省运城市芮城县", + "永济市": "山西省运城市永济市", + "河津市": "山西省运城市河津市", + "忻府区": "山西省忻州市忻府区", + "定襄县": "山西省忻州市定襄县", + "五台县": "山西省忻州市五台县", + "代县": "山西省忻州市代县", + "繁峙县": "山西省忻州市繁峙县", + "宁武县": "山西省忻州市宁武县", + "静乐县": "山西省忻州市静乐县", + "神池县": "山西省忻州市神池县", + "五寨县": "山西省忻州市五寨县", + "岢岚县": "山西省忻州市岢岚县", + "河曲县": "山西省忻州市河曲县", + "保德县": "山西省忻州市保德县", + "偏关县": "山西省忻州市偏关县", + "原平市": "山西省忻州市原平市", + "尧都区": "山西省临汾市尧都区", + "曲沃县": "山西省临汾市曲沃县", + "翼城县": "山西省临汾市翼城县", + "襄汾县": "山西省临汾市襄汾县", + "洪洞县": "山西省临汾市洪洞县", + "古县": "山西省临汾市古县", + "安泽县": "山西省临汾市安泽县", + "浮山县": "山西省临汾市浮山县", + "吉县": "山西省临汾市吉县", + "乡宁县": "山西省临汾市乡宁县", + "大宁县": "山西省临汾市大宁县", + "隰县": "山西省临汾市隰县", + "永和县": "山西省临汾市永和县", + "蒲县": "山西省临汾市蒲县", + "汾西县": "山西省临汾市汾西县", + "侯马市": "山西省临汾市侯马市", + "霍州市": "山西省临汾市霍州市", + "离石区": "山西省吕梁市离石区", + "文水县": "山西省吕梁市文水县", + "交城县": "山西省吕梁市交城县", + "兴县": "山西省吕梁市兴县", + "临县": "山西省吕梁市临县", + "柳林县": "山西省吕梁市柳林县", + "石楼县": "山西省吕梁市石楼县", + "岚县": "山西省吕梁市岚县", + "方山县": "山西省吕梁市方山县", + "中阳县": "山西省吕梁市中阳县", + "交口县": "山西省吕梁市交口县", + "孝义市": "山西省吕梁市孝义市", + "汾阳市": "山西省吕梁市汾阳市", + "回民区": "内蒙古自治区呼和浩特市回民区", + "玉泉区": "内蒙古自治区呼和浩特市玉泉区", + "赛罕区": "内蒙古自治区呼和浩特市赛罕区", + "土默特左旗": "内蒙古自治区呼和浩特市土默特左旗", + "托克托县": "内蒙古自治区呼和浩特市托克托县", + "和林格尔县": "内蒙古自治区呼和浩特市和林格尔县", + "清水河县": "内蒙古自治区呼和浩特市清水河县", + "武川县": "内蒙古自治区呼和浩特市武川县", + "东河区": "内蒙古自治区包头市东河区", + "昆都仑区": "内蒙古自治区包头市昆都仑区", + "石拐区": "内蒙古自治区包头市石拐区", + "白云鄂博矿区": "内蒙古自治区包头市白云鄂博矿区", + "九原区": "内蒙古自治区包头市九原区", + "土默特右旗": "内蒙古自治区包头市土默特右旗", + "固阳县": "内蒙古自治区包头市固阳县", + "达尔罕茂明安联合旗": "内蒙古自治区包头市达尔罕茂明安联合旗", + "海勃湾区": "内蒙古自治区乌海市海勃湾区", + "海南区": "内蒙古自治区乌海市海南区", + "乌达区": "内蒙古自治区乌海市乌达区", + "红山区": "内蒙古自治区赤峰市红山区", + "元宝山区": "内蒙古自治区赤峰市元宝山区", + "松山区": "内蒙古自治区赤峰市松山区", + "阿鲁科尔沁旗": "内蒙古自治区赤峰市阿鲁科尔沁旗", + "巴林左旗": "内蒙古自治区赤峰市巴林左旗", + "巴林右旗": "内蒙古自治区赤峰市巴林右旗", + "林西县": "内蒙古自治区赤峰市林西县", + "克什克腾旗": "内蒙古自治区赤峰市克什克腾旗", + "翁牛特旗": "内蒙古自治区赤峰市翁牛特旗", + "喀喇沁旗": "内蒙古自治区赤峰市喀喇沁旗", + "宁城县": "内蒙古自治区赤峰市宁城县", + "敖汉旗": "内蒙古自治区赤峰市敖汉旗", + "科尔沁区": "内蒙古自治区通辽市科尔沁区", + "科尔沁左翼中旗": "内蒙古自治区通辽市科尔沁左翼中旗", + "科尔沁左翼后旗": "内蒙古自治区通辽市科尔沁左翼后旗", + "开鲁县": "内蒙古自治区通辽市开鲁县", + "库伦旗": "内蒙古自治区通辽市库伦旗", + "奈曼旗": "内蒙古自治区通辽市奈曼旗", + "扎鲁特旗": "内蒙古自治区通辽市扎鲁特旗", + "霍林郭勒市": "内蒙古自治区通辽市霍林郭勒市", + "东胜区": "内蒙古自治区鄂尔多斯市东胜区", + "康巴什区": "内蒙古自治区鄂尔多斯市康巴什区", + "达拉特旗": "内蒙古自治区鄂尔多斯市达拉特旗", + "准格尔旗": "内蒙古自治区鄂尔多斯市准格尔旗", + "鄂托克前旗": "内蒙古自治区鄂尔多斯市鄂托克前旗", + "鄂托克旗": "内蒙古自治区鄂尔多斯市鄂托克旗", + "杭锦旗": "内蒙古自治区鄂尔多斯市杭锦旗", + "乌审旗": "内蒙古自治区鄂尔多斯市乌审旗", + "伊金霍洛旗": "内蒙古自治区鄂尔多斯市伊金霍洛旗", + "海拉尔区": "内蒙古自治区呼伦贝尔市海拉尔区", + "扎赉诺尔区": "内蒙古自治区呼伦贝尔市扎赉诺尔区", + "阿荣旗": "内蒙古自治区呼伦贝尔市阿荣旗", + "莫力达瓦达斡尔族自治旗": "内蒙古自治区呼伦贝尔市莫力达瓦达斡尔族自治旗", + "鄂伦春自治旗": "内蒙古自治区呼伦贝尔市鄂伦春自治旗", + "鄂温克族自治旗": "内蒙古自治区呼伦贝尔市鄂温克族自治旗", + "陈巴尔虎旗": "内蒙古自治区呼伦贝尔市陈巴尔虎旗", + "新巴尔虎左旗": "内蒙古自治区呼伦贝尔市新巴尔虎左旗", + "新巴尔虎右旗": "内蒙古自治区呼伦贝尔市新巴尔虎右旗", + "满洲里市": "内蒙古自治区呼伦贝尔市满洲里市", + "牙克石市": "内蒙古自治区呼伦贝尔市牙克石市", + "扎兰屯市": "内蒙古自治区呼伦贝尔市扎兰屯市", + "额尔古纳市": "内蒙古自治区呼伦贝尔市额尔古纳市", + "根河市": "内蒙古自治区呼伦贝尔市根河市", + "临河区": "内蒙古自治区巴彦淖尔市临河区", + "五原县": "内蒙古自治区巴彦淖尔市五原县", + "磴口县": "内蒙古自治区巴彦淖尔市磴口县", + "乌拉特前旗": "内蒙古自治区巴彦淖尔市乌拉特前旗", + "乌拉特中旗": "内蒙古自治区巴彦淖尔市乌拉特中旗", + "乌拉特后旗": "内蒙古自治区巴彦淖尔市乌拉特后旗", + "杭锦后旗": "内蒙古自治区巴彦淖尔市杭锦后旗", + "集宁区": "内蒙古自治区乌兰察布市集宁区", + "卓资县": "内蒙古自治区乌兰察布市卓资县", + "化德县": "内蒙古自治区乌兰察布市化德县", + "商都县": "内蒙古自治区乌兰察布市商都县", + "兴和县": "内蒙古自治区乌兰察布市兴和县", + "凉城县": "内蒙古自治区乌兰察布市凉城县", + "察哈尔右翼前旗": "内蒙古自治区乌兰察布市察哈尔右翼前旗", + "察哈尔右翼中旗": "内蒙古自治区乌兰察布市察哈尔右翼中旗", + "察哈尔右翼后旗": "内蒙古自治区乌兰察布市察哈尔右翼后旗", + "四子王旗": "内蒙古自治区乌兰察布市四子王旗", + "丰镇市": "内蒙古自治区乌兰察布市丰镇市", + "乌兰浩特市": "内蒙古自治区兴安盟乌兰浩特市", + "阿尔山市": "内蒙古自治区兴安盟阿尔山市", + "科尔沁右翼前旗": "内蒙古自治区兴安盟科尔沁右翼前旗", + "科尔沁右翼中旗": "内蒙古自治区兴安盟科尔沁右翼中旗", + "扎赉特旗": "内蒙古自治区兴安盟扎赉特旗", + "突泉县": "内蒙古自治区兴安盟突泉县", + "二连浩特市": "内蒙古自治区锡林郭勒盟二连浩特市", + "锡林浩特市": "内蒙古自治区锡林郭勒盟锡林浩特市", + "阿巴嘎旗": "内蒙古自治区锡林郭勒盟阿巴嘎旗", + "苏尼特左旗": "内蒙古自治区锡林郭勒盟苏尼特左旗", + "苏尼特右旗": "内蒙古自治区锡林郭勒盟苏尼特右旗", + "东乌珠穆沁旗": "内蒙古自治区锡林郭勒盟东乌珠穆沁旗", + "西乌珠穆沁旗": "内蒙古自治区锡林郭勒盟西乌珠穆沁旗", + "太仆寺旗": "内蒙古自治区锡林郭勒盟太仆寺旗", + "镶黄旗": "内蒙古自治区锡林郭勒盟镶黄旗", + "正镶白旗": "内蒙古自治区锡林郭勒盟正镶白旗", + "正蓝旗": "内蒙古自治区锡林郭勒盟正蓝旗", + "多伦县": "内蒙古自治区锡林郭勒盟多伦县", + "阿拉善左旗": "内蒙古自治区阿拉善盟阿拉善左旗", + "阿拉善右旗": "内蒙古自治区阿拉善盟阿拉善右旗", + "额济纳旗": "内蒙古自治区阿拉善盟额济纳旗", + "沈河区": "辽宁省沈阳市沈河区", + "大东区": "辽宁省沈阳市大东区", + "皇姑区": "辽宁省沈阳市皇姑区", + "苏家屯区": "辽宁省沈阳市苏家屯区", + "浑南区": "辽宁省沈阳市浑南区", + "沈北新区": "辽宁省沈阳市沈北新区", + "于洪区": "辽宁省沈阳市于洪区", + "辽中区": "辽宁省沈阳市辽中区", + "康平县": "辽宁省沈阳市康平县", + "法库县": "辽宁省沈阳市法库县", + "新民市": "辽宁省沈阳市新民市", + "中山区": "辽宁省大连市中山区", + "西岗区": "辽宁省大连市西岗区", + "沙河口区": "辽宁省大连市沙河口区", + "甘井子区": "辽宁省大连市甘井子区", + "旅顺口区": "辽宁省大连市旅顺口区", + "金州区": "辽宁省大连市金州区", + "普兰店区": "辽宁省大连市普兰店区", + "长海县": "辽宁省大连市长海县", + "瓦房店市": "辽宁省大连市瓦房店市", + "庄河市": "辽宁省大连市庄河市", + "立山区": "辽宁省鞍山市立山区", + "千山区": "辽宁省鞍山市千山区", + "台安县": "辽宁省鞍山市台安县", + "岫岩满族自治县": "辽宁省鞍山市岫岩满族自治县", + "海城市": "辽宁省鞍山市海城市", + "新抚区": "辽宁省抚顺市新抚区", + "东洲区": "辽宁省抚顺市东洲区", + "望花区": "辽宁省抚顺市望花区", + "顺城区": "辽宁省抚顺市顺城区", + "抚顺县": "辽宁省抚顺市抚顺县", + "新宾满族自治县": "辽宁省抚顺市新宾满族自治县", + "清原满族自治县": "辽宁省抚顺市清原满族自治县", + "平山区": "辽宁省本溪市平山区", + "溪湖区": "辽宁省本溪市溪湖区", + "明山区": "辽宁省本溪市明山区", + "南芬区": "辽宁省本溪市南芬区", + "本溪满族自治县": "辽宁省本溪市本溪满族自治县", + "桓仁满族自治县": "辽宁省本溪市桓仁满族自治县", + "元宝区": "辽宁省丹东市元宝区", + "振兴区": "辽宁省丹东市振兴区", + "振安区": "辽宁省丹东市振安区", + "宽甸满族自治县": "辽宁省丹东市宽甸满族自治县", + "东港市": "辽宁省丹东市东港市", + "凤城市": "辽宁省丹东市凤城市", + "古塔区": "辽宁省锦州市古塔区", + "凌河区": "辽宁省锦州市凌河区", + "太和区": "辽宁省锦州市太和区", + "黑山县": "辽宁省锦州市黑山县", + "义县": "辽宁省锦州市义县", + "凌海市": "辽宁省锦州市凌海市", + "北镇市": "辽宁省锦州市北镇市", + "站前区": "辽宁省营口市站前区", + "西市区": "辽宁省营口市西市区", + "鲅鱼圈区": "辽宁省营口市鲅鱼圈区", + "老边区": "辽宁省营口市老边区", + "盖州市": "辽宁省营口市盖州市", + "大石桥市": "辽宁省营口市大石桥市", + "新邱区": "辽宁省阜新市新邱区", + "太平区": "辽宁省阜新市太平区", + "清河门区": "辽宁省阜新市清河门区", + "细河区": "辽宁省阜新市细河区", + "阜新蒙古族自治县": "辽宁省阜新市阜新蒙古族自治县", + "彰武县": "辽宁省阜新市彰武县", + "白塔区": "辽宁省辽阳市白塔区", + "文圣区": "辽宁省辽阳市文圣区", + "宏伟区": "辽宁省辽阳市宏伟区", + "弓长岭区": "辽宁省辽阳市弓长岭区", + "太子河区": "辽宁省辽阳市太子河区", + "辽阳县": "辽宁省辽阳市辽阳县", + "灯塔市": "辽宁省辽阳市灯塔市", + "双台子区": "辽宁省盘锦市双台子区", + "兴隆台区": "辽宁省盘锦市兴隆台区", + "大洼区": "辽宁省盘锦市大洼区", + "盘山县": "辽宁省盘锦市盘山县", + "银州区": "辽宁省铁岭市银州区", + "清河区": "辽宁省铁岭市清河区", + "铁岭县": "辽宁省铁岭市铁岭县", + "西丰县": "辽宁省铁岭市西丰县", + "昌图县": "辽宁省铁岭市昌图县", + "调兵山市": "辽宁省铁岭市调兵山市", + "开原市": "辽宁省铁岭市开原市", + "双塔区": "辽宁省朝阳市双塔区", + "龙城区": "辽宁省朝阳市龙城区", + "朝阳县": "辽宁省朝阳市朝阳县", + "建平县": "辽宁省朝阳市建平县", + "喀喇沁左翼蒙古族自治县": "辽宁省朝阳市喀喇沁左翼蒙古族自治县", + "北票市": "辽宁省朝阳市北票市", + "凌源市": "辽宁省朝阳市凌源市", + "连山区": "辽宁省葫芦岛市连山区", + "龙港区": "辽宁省葫芦岛市龙港区", + "南票区": "辽宁省葫芦岛市南票区", + "绥中县": "辽宁省葫芦岛市绥中县", + "建昌县": "辽宁省葫芦岛市建昌县", + "兴城市": "辽宁省葫芦岛市兴城市", + "南关区": "吉林省长春市南关区", + "宽城区": "吉林省长春市宽城区", + "二道区": "吉林省长春市二道区", + "绿园区": "吉林省长春市绿园区", + "双阳区": "吉林省长春市双阳区", + "九台区": "吉林省长春市九台区", + "农安县": "吉林省长春市农安县", + "榆树市": "吉林省长春市榆树市", + "德惠市": "吉林省长春市德惠市", + "公主岭市": "吉林省长春市公主岭市", + "昌邑区": "吉林省吉林市昌邑区", + "龙潭区": "吉林省吉林市龙潭区", + "船营区": "吉林省吉林市船营区", + "丰满区": "吉林省吉林市丰满区", + "永吉县": "吉林省吉林市永吉县", + "蛟河市": "吉林省吉林市蛟河市", + "桦甸市": "吉林省吉林市桦甸市", + "舒兰市": "吉林省吉林市舒兰市", + "磐石市": "吉林省吉林市磐石市", + "梨树县": "吉林省四平市梨树县", + "伊通满族自治县": "吉林省四平市伊通满族自治县", + "双辽市": "吉林省四平市双辽市", + "龙山区": "吉林省辽源市龙山区", + "东丰县": "吉林省辽源市东丰县", + "东辽县": "吉林省辽源市东辽县", + "东昌区": "吉林省通化市东昌区", + "二道江区": "吉林省通化市二道江区", + "通化县": "吉林省通化市通化县", + "辉南县": "吉林省通化市辉南县", + "柳河县": "吉林省通化市柳河县", + "梅河口市": "吉林省通化市梅河口市", + "集安市": "吉林省通化市集安市", + "浑江区": "吉林省白山市浑江区", + "江源区": "吉林省白山市江源区", + "抚松县": "吉林省白山市抚松县", + "靖宇县": "吉林省白山市靖宇县", + "长白朝鲜族自治县": "吉林省白山市长白朝鲜族自治县", + "临江市": "吉林省白山市临江市", + "宁江区": "吉林省松原市宁江区", + "前郭尔罗斯蒙古族自治县": "吉林省松原市前郭尔罗斯蒙古族自治县", + "长岭县": "吉林省松原市长岭县", + "乾安县": "吉林省松原市乾安县", + "扶余市": "吉林省松原市扶余市", + "洮北区": "吉林省白城市洮北区", + "镇赉县": "吉林省白城市镇赉县", + "通榆县": "吉林省白城市通榆县", + "洮南市": "吉林省白城市洮南市", + "大安市": "吉林省白城市大安市", + "延吉市": "吉林省延边朝鲜族自治州延吉市", + "图们市": "吉林省延边朝鲜族自治州图们市", + "敦化市": "吉林省延边朝鲜族自治州敦化市", + "珲春市": "吉林省延边朝鲜族自治州珲春市", + "龙井市": "吉林省延边朝鲜族自治州龙井市", + "和龙市": "吉林省延边朝鲜族自治州和龙市", + "汪清县": "吉林省延边朝鲜族自治州汪清县", + "安图县": "吉林省延边朝鲜族自治州安图县", + "道里区": "黑龙江省哈尔滨市道里区", + "南岗区": "黑龙江省哈尔滨市南岗区", + "道外区": "黑龙江省哈尔滨市道外区", + "平房区": "黑龙江省哈尔滨市平房区", + "松北区": "黑龙江省哈尔滨市松北区", + "香坊区": "黑龙江省哈尔滨市香坊区", + "呼兰区": "黑龙江省哈尔滨市呼兰区", + "阿城区": "黑龙江省哈尔滨市阿城区", + "双城区": "黑龙江省哈尔滨市双城区", + "依兰县": "黑龙江省哈尔滨市依兰县", + "方正县": "黑龙江省哈尔滨市方正县", + "宾县": "黑龙江省哈尔滨市宾县", + "巴彦县": "黑龙江省哈尔滨市巴彦县", + "木兰县": "黑龙江省哈尔滨市木兰县", + "通河县": "黑龙江省哈尔滨市通河县", + "延寿县": "黑龙江省哈尔滨市延寿县", + "尚志市": "黑龙江省哈尔滨市尚志市", + "五常市": "黑龙江省哈尔滨市五常市", + "龙沙区": "黑龙江省齐齐哈尔市龙沙区", + "建华区": "黑龙江省齐齐哈尔市建华区", + "铁锋区": "黑龙江省齐齐哈尔市铁锋区", + "昂昂溪区": "黑龙江省齐齐哈尔市昂昂溪区", + "富拉尔基区": "黑龙江省齐齐哈尔市富拉尔基区", + "碾子山区": "黑龙江省齐齐哈尔市碾子山区", + "梅里斯达斡尔族区": "黑龙江省齐齐哈尔市梅里斯达斡尔族区", + "龙江县": "黑龙江省齐齐哈尔市龙江县", + "依安县": "黑龙江省齐齐哈尔市依安县", + "泰来县": "黑龙江省齐齐哈尔市泰来县", + "甘南县": "黑龙江省齐齐哈尔市甘南县", + "富裕县": "黑龙江省齐齐哈尔市富裕县", + "克山县": "黑龙江省齐齐哈尔市克山县", + "克东县": "黑龙江省齐齐哈尔市克东县", + "拜泉县": "黑龙江省齐齐哈尔市拜泉县", + "讷河市": "黑龙江省齐齐哈尔市讷河市", + "鸡冠区": "黑龙江省鸡西市鸡冠区", + "恒山区": "黑龙江省鸡西市恒山区", + "滴道区": "黑龙江省鸡西市滴道区", + "梨树区": "黑龙江省鸡西市梨树区", + "城子河区": "黑龙江省鸡西市城子河区", + "麻山区": "黑龙江省鸡西市麻山区", + "鸡东县": "黑龙江省鸡西市鸡东县", + "虎林市": "黑龙江省鸡西市虎林市", + "密山市": "黑龙江省鸡西市密山市", + "工农区": "黑龙江省鹤岗市工农区", + "兴安区": "黑龙江省鹤岗市兴安区", + "东山区": "黑龙江省鹤岗市东山区", + "兴山区": "黑龙江省鹤岗市兴山区", + "萝北县": "黑龙江省鹤岗市萝北县", + "绥滨县": "黑龙江省鹤岗市绥滨县", + "尖山区": "黑龙江省双鸭山市尖山区", + "岭东区": "黑龙江省双鸭山市岭东区", + "四方台区": "黑龙江省双鸭山市四方台区", + "集贤县": "黑龙江省双鸭山市集贤县", + "友谊县": "黑龙江省双鸭山市友谊县", + "宝清县": "黑龙江省双鸭山市宝清县", + "饶河县": "黑龙江省双鸭山市饶河县", + "萨尔图区": "黑龙江省大庆市萨尔图区", + "龙凤区": "黑龙江省大庆市龙凤区", + "让胡路区": "黑龙江省大庆市让胡路区", + "红岗区": "黑龙江省大庆市红岗区", + "大同区": "黑龙江省大庆市大同区", + "肇州县": "黑龙江省大庆市肇州县", + "肇源县": "黑龙江省大庆市肇源县", + "林甸县": "黑龙江省大庆市林甸县", + "杜尔伯特蒙古族自治县": "黑龙江省大庆市杜尔伯特蒙古族自治县", + "伊美区": "黑龙江省伊春市伊美区", + "乌翠区": "黑龙江省伊春市乌翠区", + "友好区": "黑龙江省伊春市友好区", + "嘉荫县": "黑龙江省伊春市嘉荫县", + "汤旺县": "黑龙江省伊春市汤旺县", + "丰林县": "黑龙江省伊春市丰林县", + "大箐山县": "黑龙江省伊春市大箐山县", + "南岔县": "黑龙江省伊春市南岔县", + "金林区": "黑龙江省伊春市金林区", + "铁力市": "黑龙江省伊春市铁力市", + "前进区": "黑龙江省佳木斯市前进区", + "东风区": "黑龙江省佳木斯市东风区", + "桦南县": "黑龙江省佳木斯市桦南县", + "桦川县": "黑龙江省佳木斯市桦川县", + "汤原县": "黑龙江省佳木斯市汤原县", + "同江市": "黑龙江省佳木斯市同江市", + "富锦市": "黑龙江省佳木斯市富锦市", + "抚远市": "黑龙江省佳木斯市抚远市", + "新兴区": "黑龙江省七台河市新兴区", + "桃山区": "黑龙江省七台河市桃山区", + "茄子河区": "黑龙江省七台河市茄子河区", + "勃利县": "黑龙江省七台河市勃利县", + "东安区": "黑龙江省牡丹江市东安区", + "阳明区": "黑龙江省牡丹江市阳明区", + "爱民区": "黑龙江省牡丹江市爱民区", + "林口县": "黑龙江省牡丹江市林口县", + "绥芬河市": "黑龙江省牡丹江市绥芬河市", + "海林市": "黑龙江省牡丹江市海林市", + "宁安市": "黑龙江省牡丹江市宁安市", + "穆棱市": "黑龙江省牡丹江市穆棱市", + "东宁市": "黑龙江省牡丹江市东宁市", + "爱辉区": "黑龙江省黑河市爱辉区", + "逊克县": "黑龙江省黑河市逊克县", + "孙吴县": "黑龙江省黑河市孙吴县", + "北安市": "黑龙江省黑河市北安市", + "五大连池市": "黑龙江省黑河市五大连池市", + "嫩江市": "黑龙江省黑河市嫩江市", + "北林区": "黑龙江省绥化市北林区", + "望奎县": "黑龙江省绥化市望奎县", + "兰西县": "黑龙江省绥化市兰西县", + "青冈县": "黑龙江省绥化市青冈县", + "庆安县": "黑龙江省绥化市庆安县", + "明水县": "黑龙江省绥化市明水县", + "绥棱县": "黑龙江省绥化市绥棱县", + "安达市": "黑龙江省绥化市安达市", + "肇东市": "黑龙江省绥化市肇东市", + "海伦市": "黑龙江省绥化市海伦市", + "漠河市": "黑龙江省大兴安岭地区漠河市", + "加格达奇区": "黑龙江省大兴安岭地区加格达奇区", + "呼玛县": "黑龙江省大兴安岭地区呼玛县", + "塔河县": "黑龙江省大兴安岭地区塔河县", + "黄浦区": "上海市黄浦区", + "徐汇区": "上海市徐汇区", + "长宁区": "上海市长宁区", + "静安区": "上海市静安区", + "虹口区": "上海市虹口区", + "杨浦区": "上海市杨浦区", + "闵行区": "上海市闵行区", + "嘉定区": "上海市嘉定区", + "浦东新区": "上海市浦东新区", + "金山区": "上海市金山区", + "松江区": "上海市松江区", + "青浦区": "上海市青浦区", + "奉贤区": "上海市奉贤区", + "崇明区": "上海市崇明区", + "玄武区": "江苏省南京市玄武区", + "秦淮区": "江苏省南京市秦淮区", + "建邺区": "江苏省南京市建邺区", + "浦口区": "江苏省南京市浦口区", + "栖霞区": "江苏省南京市栖霞区", + "雨花台区": "江苏省南京市雨花台区", + "江宁区": "江苏省南京市江宁区", + "六合区": "江苏省南京市六合区", + "溧水区": "江苏省南京市溧水区", + "高淳区": "江苏省南京市高淳区", + "锡山区": "江苏省无锡市锡山区", + "惠山区": "江苏省无锡市惠山区", + "滨湖区": "江苏省无锡市滨湖区", + "梁溪区": "江苏省无锡市梁溪区", + "新吴区": "江苏省无锡市新吴区", + "江阴市": "江苏省无锡市江阴市", + "宜兴市": "江苏省无锡市宜兴市", + "云龙区": "江苏省徐州市云龙区", + "贾汪区": "江苏省徐州市贾汪区", + "泉山区": "江苏省徐州市泉山区", + "铜山区": "江苏省徐州市铜山区", + "丰县": "江苏省徐州市丰县", + "沛县": "江苏省徐州市沛县", + "睢宁县": "江苏省徐州市睢宁县", + "新沂市": "江苏省徐州市新沂市", + "邳州市": "江苏省徐州市邳州市", + "天宁区": "江苏省常州市天宁区", + "钟楼区": "江苏省常州市钟楼区", + "新北区": "江苏省常州市新北区", + "武进区": "江苏省常州市武进区", + "金坛区": "江苏省常州市金坛区", + "溧阳市": "江苏省常州市溧阳市", + "虎丘区": "江苏省苏州市虎丘区", + "吴中区": "江苏省苏州市吴中区", + "相城区": "江苏省苏州市相城区", + "姑苏区": "江苏省苏州市姑苏区", + "吴江区": "江苏省苏州市吴江区", + "常熟市": "江苏省苏州市常熟市", + "张家港市": "江苏省苏州市张家港市", + "昆山市": "江苏省苏州市昆山市", + "太仓市": "江苏省苏州市太仓市", + "崇川区": "江苏省南通市崇川区", + "如东县": "江苏省南通市如东县", + "启东市": "江苏省南通市启东市", + "如皋市": "江苏省南通市如皋市", + "海门区": "江苏省南通市海门区", + "海安市": "江苏省南通市海安市", + "连云区": "江苏省连云港市连云区", + "赣榆区": "江苏省连云港市赣榆区", + "东海县": "江苏省连云港市东海县", + "灌云县": "江苏省连云港市灌云县", + "灌南县": "江苏省连云港市灌南县", + "淮安区": "江苏省淮安市淮安区", + "淮阴区": "江苏省淮安市淮阴区", + "清江浦区": "江苏省淮安市清江浦区", + "洪泽区": "江苏省淮安市洪泽区", + "涟水县": "江苏省淮安市涟水县", + "盱眙县": "江苏省淮安市盱眙县", + "金湖县": "江苏省淮安市金湖县", + "亭湖区": "江苏省盐城市亭湖区", + "盐都区": "江苏省盐城市盐都区", + "大丰区": "江苏省盐城市大丰区", + "响水县": "江苏省盐城市响水县", + "滨海县": "江苏省盐城市滨海县", + "阜宁县": "江苏省盐城市阜宁县", + "射阳县": "江苏省盐城市射阳县", + "建湖县": "江苏省盐城市建湖县", + "东台市": "江苏省盐城市东台市", + "广陵区": "江苏省扬州市广陵区", + "邗江区": "江苏省扬州市邗江区", + "江都区": "江苏省扬州市江都区", + "宝应县": "江苏省扬州市宝应县", + "仪征市": "江苏省扬州市仪征市", + "高邮市": "江苏省扬州市高邮市", + "京口区": "江苏省镇江市京口区", + "润州区": "江苏省镇江市润州区", + "丹徒区": "江苏省镇江市丹徒区", + "丹阳市": "江苏省镇江市丹阳市", + "扬中市": "江苏省镇江市扬中市", + "句容市": "江苏省镇江市句容市", + "海陵区": "江苏省泰州市海陵区", + "高港区": "江苏省泰州市高港区", + "姜堰区": "江苏省泰州市姜堰区", + "兴化市": "江苏省泰州市兴化市", + "靖江市": "江苏省泰州市靖江市", + "泰兴市": "江苏省泰州市泰兴市", + "宿城区": "江苏省宿迁市宿城区", + "宿豫区": "江苏省宿迁市宿豫区", + "沭阳县": "江苏省宿迁市沭阳县", + "泗阳县": "江苏省宿迁市泗阳县", + "泗洪县": "江苏省宿迁市泗洪县", + "上城区": "浙江省杭州市上城区", + "拱墅区": "浙江省杭州市拱墅区", + "滨江区": "浙江省杭州市滨江区", + "萧山区": "浙江省杭州市萧山区", + "余杭区": "浙江省杭州市余杭区", + "富阳区": "浙江省杭州市富阳区", + "临安区": "浙江省杭州市临安区", + "钱塘区": "浙江省杭州市钱塘区", + "临平区": "浙江省杭州市临平区", + "桐庐县": "浙江省杭州市桐庐县", + "淳安县": "浙江省杭州市淳安县", + "建德市": "浙江省杭州市建德市", + "海曙区": "浙江省宁波市海曙区", + "北仑区": "浙江省宁波市北仑区", + "镇海区": "浙江省宁波市镇海区", + "鄞州区": "浙江省宁波市鄞州区", + "奉化区": "浙江省宁波市奉化区", + "象山县": "浙江省宁波市象山县", + "宁海县": "浙江省宁波市宁海县", + "余姚市": "浙江省宁波市余姚市", + "慈溪市": "浙江省宁波市慈溪市", + "鹿城区": "浙江省温州市鹿城区", + "龙湾区": "浙江省温州市龙湾区", + "瓯海区": "浙江省温州市瓯海区", + "洞头区": "浙江省温州市洞头区", + "永嘉县": "浙江省温州市永嘉县", + "平阳县": "浙江省温州市平阳县", + "苍南县": "浙江省温州市苍南县", + "文成县": "浙江省温州市文成县", + "泰顺县": "浙江省温州市泰顺县", + "瑞安市": "浙江省温州市瑞安市", + "乐清市": "浙江省温州市乐清市", + "龙港市": "浙江省温州市龙港市", + "南湖区": "浙江省嘉兴市南湖区", + "秀洲区": "浙江省嘉兴市秀洲区", + "嘉善县": "浙江省嘉兴市嘉善县", + "海盐县": "浙江省嘉兴市海盐县", + "海宁市": "浙江省嘉兴市海宁市", + "平湖市": "浙江省嘉兴市平湖市", + "桐乡市": "浙江省嘉兴市桐乡市", + "吴兴区": "浙江省湖州市吴兴区", + "南浔区": "浙江省湖州市南浔区", + "德清县": "浙江省湖州市德清县", + "长兴县": "浙江省湖州市长兴县", + "安吉县": "浙江省湖州市安吉县", + "越城区": "浙江省绍兴市越城区", + "柯桥区": "浙江省绍兴市柯桥区", + "上虞区": "浙江省绍兴市上虞区", + "新昌县": "浙江省绍兴市新昌县", + "诸暨市": "浙江省绍兴市诸暨市", + "嵊州市": "浙江省绍兴市嵊州市", + "婺城区": "浙江省金华市婺城区", + "金东区": "浙江省金华市金东区", + "武义县": "浙江省金华市武义县", + "浦江县": "浙江省金华市浦江县", + "磐安县": "浙江省金华市磐安县", + "兰溪市": "浙江省金华市兰溪市", + "义乌市": "浙江省金华市义乌市", + "东阳市": "浙江省金华市东阳市", + "永康市": "浙江省金华市永康市", + "柯城区": "浙江省衢州市柯城区", + "衢江区": "浙江省衢州市衢江区", + "常山县": "浙江省衢州市常山县", + "开化县": "浙江省衢州市开化县", + "龙游县": "浙江省衢州市龙游县", + "江山市": "浙江省衢州市江山市", + "定海区": "浙江省舟山市定海区", + "岱山县": "浙江省舟山市岱山县", + "嵊泗县": "浙江省舟山市嵊泗县", + "椒江区": "浙江省台州市椒江区", + "黄岩区": "浙江省台州市黄岩区", + "路桥区": "浙江省台州市路桥区", + "三门县": "浙江省台州市三门县", + "天台县": "浙江省台州市天台县", + "仙居县": "浙江省台州市仙居县", + "温岭市": "浙江省台州市温岭市", + "临海市": "浙江省台州市临海市", + "玉环市": "浙江省台州市玉环市", + "莲都区": "浙江省丽水市莲都区", + "青田县": "浙江省丽水市青田县", + "缙云县": "浙江省丽水市缙云县", + "遂昌县": "浙江省丽水市遂昌县", + "松阳县": "浙江省丽水市松阳县", + "云和县": "浙江省丽水市云和县", + "庆元县": "浙江省丽水市庆元县", + "景宁畲族自治县": "浙江省丽水市景宁畲族自治县", + "龙泉市": "浙江省丽水市龙泉市", + "瑶海区": "安徽省合肥市瑶海区", + "庐阳区": "安徽省合肥市庐阳区", + "蜀山区": "安徽省合肥市蜀山区", + "包河区": "安徽省合肥市包河区", + "长丰县": "安徽省合肥市长丰县", + "肥东县": "安徽省合肥市肥东县", + "肥西县": "安徽省合肥市肥西县", + "庐江县": "安徽省合肥市庐江县", + "巢湖市": "安徽省合肥市巢湖市", + "镜湖区": "安徽省芜湖市镜湖区", + "鸠江区": "安徽省芜湖市鸠江区", + "弋江区": "安徽省芜湖市弋江区", + "湾沚区": "安徽省芜湖市湾沚区", + "繁昌区": "安徽省芜湖市繁昌区", + "南陵县": "安徽省芜湖市南陵县", + "无为市": "安徽省芜湖市无为市", + "龙子湖区": "安徽省蚌埠市龙子湖区", + "蚌山区": "安徽省蚌埠市蚌山区", + "禹会区": "安徽省蚌埠市禹会区", + "淮上区": "安徽省蚌埠市淮上区", + "怀远县": "安徽省蚌埠市怀远县", + "五河县": "安徽省蚌埠市五河县", + "固镇县": "安徽省蚌埠市固镇县", + "大通区": "安徽省淮南市大通区", + "田家庵区": "安徽省淮南市田家庵区", + "谢家集区": "安徽省淮南市谢家集区", + "八公山区": "安徽省淮南市八公山区", + "潘集区": "安徽省淮南市潘集区", + "凤台县": "安徽省淮南市凤台县", + "寿县": "安徽省淮南市寿县", + "花山区": "安徽省马鞍山市花山区", + "雨山区": "安徽省马鞍山市雨山区", + "博望区": "安徽省马鞍山市博望区", + "当涂县": "安徽省马鞍山市当涂县", + "含山县": "安徽省马鞍山市含山县", + "和县": "安徽省马鞍山市和县", + "杜集区": "安徽省淮北市杜集区", + "相山区": "安徽省淮北市相山区", + "烈山区": "安徽省淮北市烈山区", + "濉溪县": "安徽省淮北市濉溪县", + "铜官区": "安徽省铜陵市铜官区", + "义安区": "安徽省铜陵市义安区", + "枞阳县": "安徽省铜陵市枞阳县", + "迎江区": "安徽省安庆市迎江区", + "大观区": "安徽省安庆市大观区", + "宜秀区": "安徽省安庆市宜秀区", + "怀宁县": "安徽省安庆市怀宁县", + "太湖县": "安徽省安庆市太湖县", + "宿松县": "安徽省安庆市宿松县", + "望江县": "安徽省安庆市望江县", + "岳西县": "安徽省安庆市岳西县", + "桐城市": "安徽省安庆市桐城市", + "潜山市": "安徽省安庆市潜山市", + "屯溪区": "安徽省黄山市屯溪区", + "黄山区": "安徽省黄山市黄山区", + "徽州区": "安徽省黄山市徽州区", + "歙县": "安徽省黄山市歙县", + "休宁县": "安徽省黄山市休宁县", + "黟县": "安徽省黄山市黟县", + "祁门县": "安徽省黄山市祁门县", + "琅琊区": "安徽省滁州市琅琊区", + "南谯区": "安徽省滁州市南谯区", + "来安县": "安徽省滁州市来安县", + "全椒县": "安徽省滁州市全椒县", + "定远县": "安徽省滁州市定远县", + "凤阳县": "安徽省滁州市凤阳县", + "天长市": "安徽省滁州市天长市", + "明光市": "安徽省滁州市明光市", + "颍州区": "安徽省阜阳市颍州区", + "颍东区": "安徽省阜阳市颍东区", + "颍泉区": "安徽省阜阳市颍泉区", + "临泉县": "安徽省阜阳市临泉县", + "太和县": "安徽省阜阳市太和县", + "阜南县": "安徽省阜阳市阜南县", + "颍上县": "安徽省阜阳市颍上县", + "界首市": "安徽省阜阳市界首市", + "埇桥区": "安徽省宿州市埇桥区", + "砀山县": "安徽省宿州市砀山县", + "萧县": "安徽省宿州市萧县", + "灵璧县": "安徽省宿州市灵璧县", + "泗县": "安徽省宿州市泗县", + "金安区": "安徽省六安市金安区", + "裕安区": "安徽省六安市裕安区", + "叶集区": "安徽省六安市叶集区", + "霍邱县": "安徽省六安市霍邱县", + "舒城县": "安徽省六安市舒城县", + "金寨县": "安徽省六安市金寨县", + "霍山县": "安徽省六安市霍山县", + "谯城区": "安徽省亳州市谯城区", + "涡阳县": "安徽省亳州市涡阳县", + "蒙城县": "安徽省亳州市蒙城县", + "利辛县": "安徽省亳州市利辛县", + "贵池区": "安徽省池州市贵池区", + "东至县": "安徽省池州市东至县", + "石台县": "安徽省池州市石台县", + "青阳县": "安徽省池州市青阳县", + "宣州区": "安徽省宣城市宣州区", + "郎溪县": "安徽省宣城市郎溪县", + "泾县": "安徽省宣城市泾县", + "绩溪县": "安徽省宣城市绩溪县", + "旌德县": "安徽省宣城市旌德县", + "宁国市": "安徽省宣城市宁国市", + "广德市": "安徽省宣城市广德市", + "台江区": "福建省福州市台江区", + "仓山区": "福建省福州市仓山区", + "马尾区": "福建省福州市马尾区", + "晋安区": "福建省福州市晋安区", + "长乐区": "福建省福州市长乐区", + "闽侯县": "福建省福州市闽侯县", + "连江县": "福建省福州市连江县", + "罗源县": "福建省福州市罗源县", + "闽清县": "福建省福州市闽清县", + "永泰县": "福建省福州市永泰县", + "平潭县": "福建省福州市平潭县", + "福清市": "福建省福州市福清市", + "思明区": "福建省厦门市思明区", + "海沧区": "福建省厦门市海沧区", + "湖里区": "福建省厦门市湖里区", + "集美区": "福建省厦门市集美区", + "同安区": "福建省厦门市同安区", + "翔安区": "福建省厦门市翔安区", + "城厢区": "福建省莆田市城厢区", + "涵江区": "福建省莆田市涵江区", + "荔城区": "福建省莆田市荔城区", + "秀屿区": "福建省莆田市秀屿区", + "仙游县": "福建省莆田市仙游县", + "三元区": "福建省三明市三元区", + "明溪县": "福建省三明市明溪县", + "清流县": "福建省三明市清流县", + "宁化县": "福建省三明市宁化县", + "大田县": "福建省三明市大田县", + "尤溪县": "福建省三明市尤溪县", + "沙县区": "福建省三明市沙县区", + "将乐县": "福建省三明市将乐县", + "泰宁县": "福建省三明市泰宁县", + "建宁县": "福建省三明市建宁县", + "永安市": "福建省三明市永安市", + "鲤城区": "福建省泉州市鲤城区", + "丰泽区": "福建省泉州市丰泽区", + "洛江区": "福建省泉州市洛江区", + "泉港区": "福建省泉州市泉港区", + "惠安县": "福建省泉州市惠安县", + "安溪县": "福建省泉州市安溪县", + "永春县": "福建省泉州市永春县", + "德化县": "福建省泉州市德化县", + "金门县": "福建省泉州市金门县", + "石狮市": "福建省泉州市石狮市", + "晋江市": "福建省泉州市晋江市", + "南安市": "福建省泉州市南安市", + "芗城区": "福建省漳州市芗城区", + "龙文区": "福建省漳州市龙文区", + "云霄县": "福建省漳州市云霄县", + "漳浦县": "福建省漳州市漳浦县", + "诏安县": "福建省漳州市诏安县", + "长泰区": "福建省漳州市长泰区", + "东山县": "福建省漳州市东山县", + "南靖县": "福建省漳州市南靖县", + "平和县": "福建省漳州市平和县", + "华安县": "福建省漳州市华安县", + "龙海区": "福建省漳州市龙海区", + "延平区": "福建省南平市延平区", + "建阳区": "福建省南平市建阳区", + "顺昌县": "福建省南平市顺昌县", + "浦城县": "福建省南平市浦城县", + "光泽县": "福建省南平市光泽县", + "松溪县": "福建省南平市松溪县", + "政和县": "福建省南平市政和县", + "邵武市": "福建省南平市邵武市", + "武夷山市": "福建省南平市武夷山市", + "建瓯市": "福建省南平市建瓯市", + "新罗区": "福建省龙岩市新罗区", + "长汀县": "福建省龙岩市长汀县", + "上杭县": "福建省龙岩市上杭县", + "武平县": "福建省龙岩市武平县", + "连城县": "福建省龙岩市连城县", + "漳平市": "福建省龙岩市漳平市", + "蕉城区": "福建省宁德市蕉城区", + "霞浦县": "福建省宁德市霞浦县", + "古田县": "福建省宁德市古田县", + "屏南县": "福建省宁德市屏南县", + "寿宁县": "福建省宁德市寿宁县", + "周宁县": "福建省宁德市周宁县", + "柘荣县": "福建省宁德市柘荣县", + "福安市": "福建省宁德市福安市", + "福鼎市": "福建省宁德市福鼎市", + "东湖区": "江西省南昌市东湖区", + "青云谱区": "江西省南昌市青云谱区", + "青山湖区": "江西省南昌市青山湖区", + "新建区": "江西省南昌市新建区", + "红谷滩区": "江西省南昌市红谷滩区", + "南昌县": "江西省南昌市南昌县", + "安义县": "江西省南昌市安义县", + "进贤县": "江西省南昌市进贤县", + "昌江区": "江西省景德镇市昌江区", + "珠山区": "江西省景德镇市珠山区", + "浮梁县": "江西省景德镇市浮梁县", + "乐平市": "江西省景德镇市乐平市", + "安源区": "江西省萍乡市安源区", + "湘东区": "江西省萍乡市湘东区", + "莲花县": "江西省萍乡市莲花县", + "上栗县": "江西省萍乡市上栗县", + "芦溪县": "江西省萍乡市芦溪县", + "濂溪区": "江西省九江市濂溪区", + "浔阳区": "江西省九江市浔阳区", + "柴桑区": "江西省九江市柴桑区", + "武宁县": "江西省九江市武宁县", + "修水县": "江西省九江市修水县", + "永修县": "江西省九江市永修县", + "德安县": "江西省九江市德安县", + "都昌县": "江西省九江市都昌县", + "湖口县": "江西省九江市湖口县", + "彭泽县": "江西省九江市彭泽县", + "瑞昌市": "江西省九江市瑞昌市", + "共青城市": "江西省九江市共青城市", + "庐山市": "江西省九江市庐山市", + "渝水区": "江西省新余市渝水区", + "分宜县": "江西省新余市分宜县", + "月湖区": "江西省鹰潭市月湖区", + "余江区": "江西省鹰潭市余江区", + "贵溪市": "江西省鹰潭市贵溪市", + "章贡区": "江西省赣州市章贡区", + "南康区": "江西省赣州市南康区", + "赣县区": "江西省赣州市赣县区", + "信丰县": "江西省赣州市信丰县", + "大余县": "江西省赣州市大余县", + "上犹县": "江西省赣州市上犹县", + "崇义县": "江西省赣州市崇义县", + "安远县": "江西省赣州市安远县", + "定南县": "江西省赣州市定南县", + "全南县": "江西省赣州市全南县", + "宁都县": "江西省赣州市宁都县", + "于都县": "江西省赣州市于都县", + "兴国县": "江西省赣州市兴国县", + "会昌县": "江西省赣州市会昌县", + "寻乌县": "江西省赣州市寻乌县", + "石城县": "江西省赣州市石城县", + "瑞金市": "江西省赣州市瑞金市", + "龙南市": "江西省赣州市龙南市", + "吉州区": "江西省吉安市吉州区", + "青原区": "江西省吉安市青原区", + "吉安县": "江西省吉安市吉安县", + "吉水县": "江西省吉安市吉水县", + "峡江县": "江西省吉安市峡江县", + "新干县": "江西省吉安市新干县", + "永丰县": "江西省吉安市永丰县", + "泰和县": "江西省吉安市泰和县", + "遂川县": "江西省吉安市遂川县", + "万安县": "江西省吉安市万安县", + "安福县": "江西省吉安市安福县", + "永新县": "江西省吉安市永新县", + "井冈山市": "江西省吉安市井冈山市", + "袁州区": "江西省宜春市袁州区", + "奉新县": "江西省宜春市奉新县", + "万载县": "江西省宜春市万载县", + "上高县": "江西省宜春市上高县", + "宜丰县": "江西省宜春市宜丰县", + "靖安县": "江西省宜春市靖安县", + "铜鼓县": "江西省宜春市铜鼓县", + "丰城市": "江西省宜春市丰城市", + "樟树市": "江西省宜春市樟树市", + "高安市": "江西省宜春市高安市", + "临川区": "江西省抚州市临川区", + "东乡区": "江西省抚州市东乡区", + "南城县": "江西省抚州市南城县", + "黎川县": "江西省抚州市黎川县", + "南丰县": "江西省抚州市南丰县", + "崇仁县": "江西省抚州市崇仁县", + "乐安县": "江西省抚州市乐安县", + "宜黄县": "江西省抚州市宜黄县", + "金溪县": "江西省抚州市金溪县", + "资溪县": "江西省抚州市资溪县", + "广昌县": "江西省抚州市广昌县", + "信州区": "江西省上饶市信州区", + "广丰区": "江西省上饶市广丰区", + "广信区": "江西省上饶市广信区", + "玉山县": "江西省上饶市玉山县", + "铅山县": "江西省上饶市铅山县", + "横峰县": "江西省上饶市横峰县", + "弋阳县": "江西省上饶市弋阳县", + "余干县": "江西省上饶市余干县", + "鄱阳县": "江西省上饶市鄱阳县", + "万年县": "江西省上饶市万年县", + "婺源县": "江西省上饶市婺源县", + "德兴市": "江西省上饶市德兴市", + "历下区": "山东省济南市历下区", + "槐荫区": "山东省济南市槐荫区", + "天桥区": "山东省济南市天桥区", + "历城区": "山东省济南市历城区", + "长清区": "山东省济南市长清区", + "章丘区": "山东省济南市章丘区", + "济阳区": "山东省济南市济阳区", + "莱芜区": "山东省济南市莱芜区", + "钢城区": "山东省济南市钢城区", + "平阴县": "山东省济南市平阴县", + "商河县": "山东省济南市商河县", + "市南区": "山东省青岛市市南区", + "市北区": "山东省青岛市市北区", + "黄岛区": "山东省青岛市黄岛区", + "崂山区": "山东省青岛市崂山区", + "李沧区": "山东省青岛市李沧区", + "城阳区": "山东省青岛市城阳区", + "即墨区": "山东省青岛市即墨区", + "胶州市": "山东省青岛市胶州市", + "平度市": "山东省青岛市平度市", + "莱西市": "山东省青岛市莱西市", + "淄川区": "山东省淄博市淄川区", + "张店区": "山东省淄博市张店区", + "博山区": "山东省淄博市博山区", + "临淄区": "山东省淄博市临淄区", + "周村区": "山东省淄博市周村区", + "桓台县": "山东省淄博市桓台县", + "高青县": "山东省淄博市高青县", + "沂源县": "山东省淄博市沂源县", + "薛城区": "山东省枣庄市薛城区", + "峄城区": "山东省枣庄市峄城区", + "台儿庄区": "山东省枣庄市台儿庄区", + "山亭区": "山东省枣庄市山亭区", + "滕州市": "山东省枣庄市滕州市", + "东营区": "山东省东营市东营区", + "河口区": "山东省东营市河口区", + "垦利区": "山东省东营市垦利区", + "利津县": "山东省东营市利津县", + "广饶县": "山东省东营市广饶县", + "芝罘区": "山东省烟台市芝罘区", + "福山区": "山东省烟台市福山区", + "牟平区": "山东省烟台市牟平区", + "莱山区": "山东省烟台市莱山区", + "蓬莱区": "山东省烟台市蓬莱区", + "龙口市": "山东省烟台市龙口市", + "莱阳市": "山东省烟台市莱阳市", + "莱州市": "山东省烟台市莱州市", + "招远市": "山东省烟台市招远市", + "栖霞市": "山东省烟台市栖霞市", + "海阳市": "山东省烟台市海阳市", + "潍城区": "山东省潍坊市潍城区", + "寒亭区": "山东省潍坊市寒亭区", + "坊子区": "山东省潍坊市坊子区", + "奎文区": "山东省潍坊市奎文区", + "临朐县": "山东省潍坊市临朐县", + "昌乐县": "山东省潍坊市昌乐县", + "青州市": "山东省潍坊市青州市", + "诸城市": "山东省潍坊市诸城市", + "寿光市": "山东省潍坊市寿光市", + "安丘市": "山东省潍坊市安丘市", + "高密市": "山东省潍坊市高密市", + "昌邑市": "山东省潍坊市昌邑市", + "任城区": "山东省济宁市任城区", + "兖州区": "山东省济宁市兖州区", + "微山县": "山东省济宁市微山县", + "鱼台县": "山东省济宁市鱼台县", + "金乡县": "山东省济宁市金乡县", + "嘉祥县": "山东省济宁市嘉祥县", + "汶上县": "山东省济宁市汶上县", + "泗水县": "山东省济宁市泗水县", + "梁山县": "山东省济宁市梁山县", + "曲阜市": "山东省济宁市曲阜市", + "邹城市": "山东省济宁市邹城市", + "泰山区": "山东省泰安市泰山区", + "岱岳区": "山东省泰安市岱岳区", + "宁阳县": "山东省泰安市宁阳县", + "东平县": "山东省泰安市东平县", + "新泰市": "山东省泰安市新泰市", + "肥城市": "山东省泰安市肥城市", + "环翠区": "山东省威海市环翠区", + "文登区": "山东省威海市文登区", + "荣成市": "山东省威海市荣成市", + "乳山市": "山东省威海市乳山市", + "东港区": "山东省日照市东港区", + "岚山区": "山东省日照市岚山区", + "五莲县": "山东省日照市五莲县", + "莒县": "山东省日照市莒县", + "兰山区": "山东省临沂市兰山区", + "罗庄区": "山东省临沂市罗庄区", + "沂南县": "山东省临沂市沂南县", + "郯城县": "山东省临沂市郯城县", + "沂水县": "山东省临沂市沂水县", + "兰陵县": "山东省临沂市兰陵县", + "费县": "山东省临沂市费县", + "平邑县": "山东省临沂市平邑县", + "莒南县": "山东省临沂市莒南县", + "蒙阴县": "山东省临沂市蒙阴县", + "临沭县": "山东省临沂市临沭县", + "德城区": "山东省德州市德城区", + "陵城区": "山东省德州市陵城区", + "宁津县": "山东省德州市宁津县", + "庆云县": "山东省德州市庆云县", + "临邑县": "山东省德州市临邑县", + "齐河县": "山东省德州市齐河县", + "平原县": "山东省德州市平原县", + "夏津县": "山东省德州市夏津县", + "武城县": "山东省德州市武城县", + "乐陵市": "山东省德州市乐陵市", + "禹城市": "山东省德州市禹城市", + "东昌府区": "山东省聊城市东昌府区", + "茌平区": "山东省聊城市茌平区", + "阳谷县": "山东省聊城市阳谷县", + "莘县": "山东省聊城市莘县", + "东阿县": "山东省聊城市东阿县", + "冠县": "山东省聊城市冠县", + "高唐县": "山东省聊城市高唐县", + "临清市": "山东省聊城市临清市", + "滨城区": "山东省滨州市滨城区", + "沾化区": "山东省滨州市沾化区", + "惠民县": "山东省滨州市惠民县", + "阳信县": "山东省滨州市阳信县", + "无棣县": "山东省滨州市无棣县", + "博兴县": "山东省滨州市博兴县", + "邹平市": "山东省滨州市邹平市", + "牡丹区": "山东省菏泽市牡丹区", + "定陶区": "山东省菏泽市定陶区", + "曹县": "山东省菏泽市曹县", + "单县": "山东省菏泽市单县", + "成武县": "山东省菏泽市成武县", + "巨野县": "山东省菏泽市巨野县", + "郓城县": "山东省菏泽市郓城县", + "鄄城县": "山东省菏泽市鄄城县", + "东明县": "山东省菏泽市东明县", + "中原区": "河南省郑州市中原区", + "二七区": "河南省郑州市二七区", + "管城回族区": "河南省郑州市管城回族区", + "金水区": "河南省郑州市金水区", + "上街区": "河南省郑州市上街区", + "惠济区": "河南省郑州市惠济区", + "中牟县": "河南省郑州市中牟县", + "巩义市": "河南省郑州市巩义市", + "荥阳市": "河南省郑州市荥阳市", + "新密市": "河南省郑州市新密市", + "新郑市": "河南省郑州市新郑市", + "登封市": "河南省郑州市登封市", + "龙亭区": "河南省开封市龙亭区", + "顺河回族区": "河南省开封市顺河回族区", + "禹王台区": "河南省开封市禹王台区", + "祥符区": "河南省开封市祥符区", + "杞县": "河南省开封市杞县", + "通许县": "河南省开封市通许县", + "尉氏县": "河南省开封市尉氏县", + "兰考县": "河南省开封市兰考县", + "老城区": "河南省洛阳市老城区", + "西工区": "河南省洛阳市西工区", + "瀍河回族区": "河南省洛阳市瀍河回族区", + "涧西区": "河南省洛阳市涧西区", + "孟津区": "河南省洛阳市孟津区", + "洛龙区": "河南省洛阳市洛龙区", + "新安县": "河南省洛阳市新安县", + "栾川县": "河南省洛阳市栾川县", + "嵩县": "河南省洛阳市嵩县", + "汝阳县": "河南省洛阳市汝阳县", + "宜阳县": "河南省洛阳市宜阳县", + "洛宁县": "河南省洛阳市洛宁县", + "伊川县": "河南省洛阳市伊川县", + "偃师区": "河南省洛阳市偃师区", + "卫东区": "河南省平顶山市卫东区", + "石龙区": "河南省平顶山市石龙区", + "湛河区": "河南省平顶山市湛河区", + "宝丰县": "河南省平顶山市宝丰县", + "叶县": "河南省平顶山市叶县", + "鲁山县": "河南省平顶山市鲁山县", + "郏县": "河南省平顶山市郏县", + "舞钢市": "河南省平顶山市舞钢市", + "汝州市": "河南省平顶山市汝州市", + "文峰区": "河南省安阳市文峰区", + "北关区": "河南省安阳市北关区", + "殷都区": "河南省安阳市殷都区", + "龙安区": "河南省安阳市龙安区", + "安阳县": "河南省安阳市安阳县", + "汤阴县": "河南省安阳市汤阴县", + "滑县": "河南省安阳市滑县", + "内黄县": "河南省安阳市内黄县", + "林州市": "河南省安阳市林州市", + "鹤山区": "河南省鹤壁市鹤山区", + "山城区": "河南省鹤壁市山城区", + "淇滨区": "河南省鹤壁市淇滨区", + "浚县": "河南省鹤壁市浚县", + "淇县": "河南省鹤壁市淇县", + "红旗区": "河南省新乡市红旗区", + "卫滨区": "河南省新乡市卫滨区", + "凤泉区": "河南省新乡市凤泉区", + "牧野区": "河南省新乡市牧野区", + "新乡县": "河南省新乡市新乡县", + "获嘉县": "河南省新乡市获嘉县", + "原阳县": "河南省新乡市原阳县", + "延津县": "河南省新乡市延津县", + "封丘县": "河南省新乡市封丘县", + "卫辉市": "河南省新乡市卫辉市", + "辉县市": "河南省新乡市辉县市", + "长垣市": "河南省新乡市长垣市", + "解放区": "河南省焦作市解放区", + "中站区": "河南省焦作市中站区", + "马村区": "河南省焦作市马村区", + "山阳区": "河南省焦作市山阳区", + "修武县": "河南省焦作市修武县", + "博爱县": "河南省焦作市博爱县", + "武陟县": "河南省焦作市武陟县", + "温县": "河南省焦作市温县", + "沁阳市": "河南省焦作市沁阳市", + "孟州市": "河南省焦作市孟州市", + "华龙区": "河南省濮阳市华龙区", + "清丰县": "河南省濮阳市清丰县", + "南乐县": "河南省濮阳市南乐县", + "范县": "河南省濮阳市范县", + "台前县": "河南省濮阳市台前县", + "濮阳县": "河南省濮阳市濮阳县", + "魏都区": "河南省许昌市魏都区", + "建安区": "河南省许昌市建安区", + "鄢陵县": "河南省许昌市鄢陵县", + "襄城县": "河南省许昌市襄城县", + "禹州市": "河南省许昌市禹州市", + "长葛市": "河南省许昌市长葛市", + "源汇区": "河南省漯河市源汇区", + "郾城区": "河南省漯河市郾城区", + "召陵区": "河南省漯河市召陵区", + "舞阳县": "河南省漯河市舞阳县", + "临颍县": "河南省漯河市临颍县", + "湖滨区": "河南省三门峡市湖滨区", + "陕州区": "河南省三门峡市陕州区", + "渑池县": "河南省三门峡市渑池县", + "卢氏县": "河南省三门峡市卢氏县", + "义马市": "河南省三门峡市义马市", + "灵宝市": "河南省三门峡市灵宝市", + "宛城区": "河南省南阳市宛城区", + "卧龙区": "河南省南阳市卧龙区", + "南召县": "河南省南阳市南召县", + "方城县": "河南省南阳市方城县", + "西峡县": "河南省南阳市西峡县", + "镇平县": "河南省南阳市镇平县", + "内乡县": "河南省南阳市内乡县", + "淅川县": "河南省南阳市淅川县", + "社旗县": "河南省南阳市社旗县", + "唐河县": "河南省南阳市唐河县", + "新野县": "河南省南阳市新野县", + "桐柏县": "河南省南阳市桐柏县", + "邓州市": "河南省南阳市邓州市", + "梁园区": "河南省商丘市梁园区", + "睢阳区": "河南省商丘市睢阳区", + "民权县": "河南省商丘市民权县", + "睢县": "河南省商丘市睢县", + "宁陵县": "河南省商丘市宁陵县", + "柘城县": "河南省商丘市柘城县", + "虞城县": "河南省商丘市虞城县", + "夏邑县": "河南省商丘市夏邑县", + "永城市": "河南省商丘市永城市", + "浉河区": "河南省信阳市浉河区", + "平桥区": "河南省信阳市平桥区", + "罗山县": "河南省信阳市罗山县", + "光山县": "河南省信阳市光山县", + "新县": "河南省信阳市新县", + "商城县": "河南省信阳市商城县", + "固始县": "河南省信阳市固始县", + "潢川县": "河南省信阳市潢川县", + "淮滨县": "河南省信阳市淮滨县", + "息县": "河南省信阳市息县", + "川汇区": "河南省周口市川汇区", + "淮阳区": "河南省周口市淮阳区", + "扶沟县": "河南省周口市扶沟县", + "西华县": "河南省周口市西华县", + "商水县": "河南省周口市商水县", + "沈丘县": "河南省周口市沈丘县", + "郸城县": "河南省周口市郸城县", + "太康县": "河南省周口市太康县", + "鹿邑县": "河南省周口市鹿邑县", + "项城市": "河南省周口市项城市", + "驿城区": "河南省驻马店市驿城区", + "西平县": "河南省驻马店市西平县", + "上蔡县": "河南省驻马店市上蔡县", + "平舆县": "河南省驻马店市平舆县", + "正阳县": "河南省驻马店市正阳县", + "确山县": "河南省驻马店市确山县", + "泌阳县": "河南省驻马店市泌阳县", + "汝南县": "河南省驻马店市汝南县", + "遂平县": "河南省驻马店市遂平县", + "新蔡县": "河南省驻马店市新蔡县", + "济源市": "河南省济源市", + "江岸区": "湖北省武汉市江岸区", + "江汉区": "湖北省武汉市江汉区", + "硚口区": "湖北省武汉市硚口区", + "汉阳区": "湖北省武汉市汉阳区", + "武昌区": "湖北省武汉市武昌区", + "洪山区": "湖北省武汉市洪山区", + "东西湖区": "湖北省武汉市东西湖区", + "汉南区": "湖北省武汉市汉南区", + "蔡甸区": "湖北省武汉市蔡甸区", + "江夏区": "湖北省武汉市江夏区", + "黄陂区": "湖北省武汉市黄陂区", + "新洲区": "湖北省武汉市新洲区", + "黄石港区": "湖北省黄石市黄石港区", + "西塞山区": "湖北省黄石市西塞山区", + "下陆区": "湖北省黄石市下陆区", + "铁山区": "湖北省黄石市铁山区", + "阳新县": "湖北省黄石市阳新县", + "大冶市": "湖北省黄石市大冶市", + "茅箭区": "湖北省十堰市茅箭区", + "张湾区": "湖北省十堰市张湾区", + "郧阳区": "湖北省十堰市郧阳区", + "郧西县": "湖北省十堰市郧西县", + "竹山县": "湖北省十堰市竹山县", + "竹溪县": "湖北省十堰市竹溪县", + "房县": "湖北省十堰市房县", + "丹江口市": "湖北省十堰市丹江口市", + "西陵区": "湖北省宜昌市西陵区", + "伍家岗区": "湖北省宜昌市伍家岗区", + "点军区": "湖北省宜昌市点军区", + "猇亭区": "湖北省宜昌市猇亭区", + "夷陵区": "湖北省宜昌市夷陵区", + "远安县": "湖北省宜昌市远安县", + "兴山县": "湖北省宜昌市兴山县", + "秭归县": "湖北省宜昌市秭归县", + "长阳土家族自治县": "湖北省宜昌市长阳土家族自治县", + "五峰土家族自治县": "湖北省宜昌市五峰土家族自治县", + "宜都市": "湖北省宜昌市宜都市", + "当阳市": "湖北省宜昌市当阳市", + "枝江市": "湖北省宜昌市枝江市", + "襄城区": "湖北省襄阳市襄城区", + "樊城区": "湖北省襄阳市樊城区", + "襄州区": "湖北省襄阳市襄州区", + "南漳县": "湖北省襄阳市南漳县", + "谷城县": "湖北省襄阳市谷城县", + "保康县": "湖北省襄阳市保康县", + "老河口市": "湖北省襄阳市老河口市", + "枣阳市": "湖北省襄阳市枣阳市", + "宜城市": "湖北省襄阳市宜城市", + "梁子湖区": "湖北省鄂州市梁子湖区", + "华容区": "湖北省鄂州市华容区", + "鄂城区": "湖北省鄂州市鄂城区", + "东宝区": "湖北省荆门市东宝区", + "掇刀区": "湖北省荆门市掇刀区", + "沙洋县": "湖北省荆门市沙洋县", + "钟祥市": "湖北省荆门市钟祥市", + "京山市": "湖北省荆门市京山市", + "孝南区": "湖北省孝感市孝南区", + "孝昌县": "湖北省孝感市孝昌县", + "大悟县": "湖北省孝感市大悟县", + "云梦县": "湖北省孝感市云梦县", + "应城市": "湖北省孝感市应城市", + "安陆市": "湖北省孝感市安陆市", + "汉川市": "湖北省孝感市汉川市", + "沙市区": "湖北省荆州市沙市区", + "荆州区": "湖北省荆州市荆州区", + "公安县": "湖北省荆州市公安县", + "监利市": "湖北省荆州市监利市", + "江陵县": "湖北省荆州市江陵县", + "石首市": "湖北省荆州市石首市", + "洪湖市": "湖北省荆州市洪湖市", + "松滋市": "湖北省荆州市松滋市", + "黄州区": "湖北省黄冈市黄州区", + "团风县": "湖北省黄冈市团风县", + "红安县": "湖北省黄冈市红安县", + "罗田县": "湖北省黄冈市罗田县", + "英山县": "湖北省黄冈市英山县", + "浠水县": "湖北省黄冈市浠水县", + "蕲春县": "湖北省黄冈市蕲春县", + "黄梅县": "湖北省黄冈市黄梅县", + "麻城市": "湖北省黄冈市麻城市", + "武穴市": "湖北省黄冈市武穴市", + "咸安区": "湖北省咸宁市咸安区", + "嘉鱼县": "湖北省咸宁市嘉鱼县", + "通城县": "湖北省咸宁市通城县", + "崇阳县": "湖北省咸宁市崇阳县", + "通山县": "湖北省咸宁市通山县", + "赤壁市": "湖北省咸宁市赤壁市", + "曾都区": "湖北省随州市曾都区", + "随县": "湖北省随州市随县", + "广水市": "湖北省随州市广水市", + "恩施市": "湖北省恩施土家族苗族自治州恩施市", + "利川市": "湖北省恩施土家族苗族自治州利川市", + "建始县": "湖北省恩施土家族苗族自治州建始县", + "巴东县": "湖北省恩施土家族苗族自治州巴东县", + "宣恩县": "湖北省恩施土家族苗族自治州宣恩县", + "咸丰县": "湖北省恩施土家族苗族自治州咸丰县", + "来凤县": "湖北省恩施土家族苗族自治州来凤县", + "鹤峰县": "湖北省恩施土家族苗族自治州鹤峰县", + "仙桃市": "湖北省仙桃市", + "潜江市": "湖北省潜江市", + "天门市": "湖北省天门市", + "神农架林区": "湖北省神农架林区", + "芙蓉区": "湖南省长沙市芙蓉区", + "天心区": "湖南省长沙市天心区", + "岳麓区": "湖南省长沙市岳麓区", + "开福区": "湖南省长沙市开福区", + "雨花区": "湖南省长沙市雨花区", + "望城区": "湖南省长沙市望城区", + "长沙县": "湖南省长沙市长沙县", + "浏阳市": "湖南省长沙市浏阳市", + "宁乡市": "湖南省长沙市宁乡市", + "荷塘区": "湖南省株洲市荷塘区", + "芦淞区": "湖南省株洲市芦淞区", + "石峰区": "湖南省株洲市石峰区", + "天元区": "湖南省株洲市天元区", + "渌口区": "湖南省株洲市渌口区", + "攸县": "湖南省株洲市攸县", + "茶陵县": "湖南省株洲市茶陵县", + "炎陵县": "湖南省株洲市炎陵县", + "醴陵市": "湖南省株洲市醴陵市", + "雨湖区": "湖南省湘潭市雨湖区", + "岳塘区": "湖南省湘潭市岳塘区", + "湘潭县": "湖南省湘潭市湘潭县", + "湘乡市": "湖南省湘潭市湘乡市", + "韶山市": "湖南省湘潭市韶山市", + "珠晖区": "湖南省衡阳市珠晖区", + "雁峰区": "湖南省衡阳市雁峰区", + "石鼓区": "湖南省衡阳市石鼓区", + "蒸湘区": "湖南省衡阳市蒸湘区", + "南岳区": "湖南省衡阳市南岳区", + "衡阳县": "湖南省衡阳市衡阳县", + "衡南县": "湖南省衡阳市衡南县", + "衡山县": "湖南省衡阳市衡山县", + "衡东县": "湖南省衡阳市衡东县", + "祁东县": "湖南省衡阳市祁东县", + "耒阳市": "湖南省衡阳市耒阳市", + "常宁市": "湖南省衡阳市常宁市", + "双清区": "湖南省邵阳市双清区", + "大祥区": "湖南省邵阳市大祥区", + "北塔区": "湖南省邵阳市北塔区", + "新邵县": "湖南省邵阳市新邵县", + "邵阳县": "湖南省邵阳市邵阳县", + "隆回县": "湖南省邵阳市隆回县", + "洞口县": "湖南省邵阳市洞口县", + "绥宁县": "湖南省邵阳市绥宁县", + "新宁县": "湖南省邵阳市新宁县", + "城步苗族自治县": "湖南省邵阳市城步苗族自治县", + "武冈市": "湖南省邵阳市武冈市", + "邵东市": "湖南省邵阳市邵东市", + "岳阳楼区": "湖南省岳阳市岳阳楼区", + "云溪区": "湖南省岳阳市云溪区", + "君山区": "湖南省岳阳市君山区", + "岳阳县": "湖南省岳阳市岳阳县", + "华容县": "湖南省岳阳市华容县", + "湘阴县": "湖南省岳阳市湘阴县", + "平江县": "湖南省岳阳市平江县", + "汨罗市": "湖南省岳阳市汨罗市", + "临湘市": "湖南省岳阳市临湘市", + "武陵区": "湖南省常德市武陵区", + "鼎城区": "湖南省常德市鼎城区", + "安乡县": "湖南省常德市安乡县", + "汉寿县": "湖南省常德市汉寿县", + "澧县": "湖南省常德市澧县", + "临澧县": "湖南省常德市临澧县", + "桃源县": "湖南省常德市桃源县", + "石门县": "湖南省常德市石门县", + "津市市": "湖南省常德市津市市", + "武陵源区": "湖南省张家界市武陵源区", + "慈利县": "湖南省张家界市慈利县", + "桑植县": "湖南省张家界市桑植县", + "资阳区": "湖南省益阳市资阳区", + "赫山区": "湖南省益阳市赫山区", + "南县": "湖南省益阳市南县", + "桃江县": "湖南省益阳市桃江县", + "安化县": "湖南省益阳市安化县", + "沅江市": "湖南省益阳市沅江市", + "北湖区": "湖南省郴州市北湖区", + "苏仙区": "湖南省郴州市苏仙区", + "桂阳县": "湖南省郴州市桂阳县", + "宜章县": "湖南省郴州市宜章县", + "永兴县": "湖南省郴州市永兴县", + "嘉禾县": "湖南省郴州市嘉禾县", + "临武县": "湖南省郴州市临武县", + "汝城县": "湖南省郴州市汝城县", + "桂东县": "湖南省郴州市桂东县", + "安仁县": "湖南省郴州市安仁县", + "资兴市": "湖南省郴州市资兴市", + "零陵区": "湖南省永州市零陵区", + "冷水滩区": "湖南省永州市冷水滩区", + "祁阳市": "湖南省永州市祁阳市", + "东安县": "湖南省永州市东安县", + "双牌县": "湖南省永州市双牌县", + "道县": "湖南省永州市道县", + "江永县": "湖南省永州市江永县", + "宁远县": "湖南省永州市宁远县", + "蓝山县": "湖南省永州市蓝山县", + "新田县": "湖南省永州市新田县", + "江华瑶族自治县": "湖南省永州市江华瑶族自治县", + "鹤城区": "湖南省怀化市鹤城区", + "中方县": "湖南省怀化市中方县", + "沅陵县": "湖南省怀化市沅陵县", + "辰溪县": "湖南省怀化市辰溪县", + "溆浦县": "湖南省怀化市溆浦县", + "会同县": "湖南省怀化市会同县", + "麻阳苗族自治县": "湖南省怀化市麻阳苗族自治县", + "新晃侗族自治县": "湖南省怀化市新晃侗族自治县", + "芷江侗族自治县": "湖南省怀化市芷江侗族自治县", + "靖州苗族侗族自治县": "湖南省怀化市靖州苗族侗族自治县", + "通道侗族自治县": "湖南省怀化市通道侗族自治县", + "洪江市": "湖南省怀化市洪江市", + "娄星区": "湖南省娄底市娄星区", + "双峰县": "湖南省娄底市双峰县", + "新化县": "湖南省娄底市新化县", + "冷水江市": "湖南省娄底市冷水江市", + "涟源市": "湖南省娄底市涟源市", + "吉首市": "湖南省湘西土家族苗族自治州吉首市", + "泸溪县": "湖南省湘西土家族苗族自治州泸溪县", + "凤凰县": "湖南省湘西土家族苗族自治州凤凰县", + "花垣县": "湖南省湘西土家族苗族自治州花垣县", + "保靖县": "湖南省湘西土家族苗族自治州保靖县", + "古丈县": "湖南省湘西土家族苗族自治州古丈县", + "永顺县": "湖南省湘西土家族苗族自治州永顺县", + "龙山县": "湖南省湘西土家族苗族自治州龙山县", + "荔湾区": "广东省广州市荔湾区", + "越秀区": "广东省广州市越秀区", + "海珠区": "广东省广州市海珠区", + "天河区": "广东省广州市天河区", + "黄埔区": "广东省广州市黄埔区", + "番禺区": "广东省广州市番禺区", + "花都区": "广东省广州市花都区", + "从化区": "广东省广州市从化区", + "增城区": "广东省广州市增城区", + "武江区": "广东省韶关市武江区", + "浈江区": "广东省韶关市浈江区", + "曲江区": "广东省韶关市曲江区", + "始兴县": "广东省韶关市始兴县", + "仁化县": "广东省韶关市仁化县", + "翁源县": "广东省韶关市翁源县", + "乳源瑶族自治县": "广东省韶关市乳源瑶族自治县", + "新丰县": "广东省韶关市新丰县", + "乐昌市": "广东省韶关市乐昌市", + "南雄市": "广东省韶关市南雄市", + "罗湖区": "广东省深圳市罗湖区", + "福田区": "广东省深圳市福田区", + "宝安区": "广东省深圳市宝安区", + "龙岗区": "广东省深圳市龙岗区", + "盐田区": "广东省深圳市盐田区", + "坪山区": "广东省深圳市坪山区", + "光明区": "广东省深圳市光明区", + "香洲区": "广东省珠海市香洲区", + "斗门区": "广东省珠海市斗门区", + "金湾区": "广东省珠海市金湾区", + "龙湖区": "广东省汕头市龙湖区", + "金平区": "广东省汕头市金平区", + "濠江区": "广东省汕头市濠江区", + "潮阳区": "广东省汕头市潮阳区", + "潮南区": "广东省汕头市潮南区", + "澄海区": "广东省汕头市澄海区", + "南澳县": "广东省汕头市南澳县", + "禅城区": "广东省佛山市禅城区", + "南海区": "广东省佛山市南海区", + "顺德区": "广东省佛山市顺德区", + "三水区": "广东省佛山市三水区", + "高明区": "广东省佛山市高明区", + "蓬江区": "广东省江门市蓬江区", + "江海区": "广东省江门市江海区", + "新会区": "广东省江门市新会区", + "台山市": "广东省江门市台山市", + "开平市": "广东省江门市开平市", + "鹤山市": "广东省江门市鹤山市", + "恩平市": "广东省江门市恩平市", + "赤坎区": "广东省湛江市赤坎区", + "霞山区": "广东省湛江市霞山区", + "坡头区": "广东省湛江市坡头区", + "麻章区": "广东省湛江市麻章区", + "遂溪县": "广东省湛江市遂溪县", + "徐闻县": "广东省湛江市徐闻县", + "廉江市": "广东省湛江市廉江市", + "雷州市": "广东省湛江市雷州市", + "吴川市": "广东省湛江市吴川市", + "茂南区": "广东省茂名市茂南区", + "电白区": "广东省茂名市电白区", + "高州市": "广东省茂名市高州市", + "化州市": "广东省茂名市化州市", + "信宜市": "广东省茂名市信宜市", + "端州区": "广东省肇庆市端州区", + "鼎湖区": "广东省肇庆市鼎湖区", + "高要区": "广东省肇庆市高要区", + "广宁县": "广东省肇庆市广宁县", + "怀集县": "广东省肇庆市怀集县", + "封开县": "广东省肇庆市封开县", + "德庆县": "广东省肇庆市德庆县", + "四会市": "广东省肇庆市四会市", + "惠城区": "广东省惠州市惠城区", + "惠阳区": "广东省惠州市惠阳区", + "博罗县": "广东省惠州市博罗县", + "惠东县": "广东省惠州市惠东县", + "龙门县": "广东省惠州市龙门县", + "梅江区": "广东省梅州市梅江区", + "梅县区": "广东省梅州市梅县区", + "大埔县": "广东省梅州市大埔县", + "丰顺县": "广东省梅州市丰顺县", + "五华县": "广东省梅州市五华县", + "平远县": "广东省梅州市平远县", + "蕉岭县": "广东省梅州市蕉岭县", + "兴宁市": "广东省梅州市兴宁市", + "海丰县": "广东省汕尾市海丰县", + "陆河县": "广东省汕尾市陆河县", + "陆丰市": "广东省汕尾市陆丰市", + "源城区": "广东省河源市源城区", + "紫金县": "广东省河源市紫金县", + "龙川县": "广东省河源市龙川县", + "连平县": "广东省河源市连平县", + "和平县": "广东省河源市和平县", + "东源县": "广东省河源市东源县", + "江城区": "广东省阳江市江城区", + "阳东区": "广东省阳江市阳东区", + "阳西县": "广东省阳江市阳西县", + "阳春市": "广东省阳江市阳春市", + "清城区": "广东省清远市清城区", + "清新区": "广东省清远市清新区", + "佛冈县": "广东省清远市佛冈县", + "阳山县": "广东省清远市阳山县", + "连山壮族瑶族自治县": "广东省清远市连山壮族瑶族自治县", + "连南瑶族自治县": "广东省清远市连南瑶族自治县", + "英德市": "广东省清远市英德市", + "连州市": "广东省清远市连州市", + "东莞市": "广东省东莞市", + "中山市": "广东省中山市", + "湘桥区": "广东省潮州市湘桥区", + "潮安区": "广东省潮州市潮安区", + "饶平县": "广东省潮州市饶平县", + "榕城区": "广东省揭阳市榕城区", + "揭东区": "广东省揭阳市揭东区", + "揭西县": "广东省揭阳市揭西县", + "惠来县": "广东省揭阳市惠来县", + "普宁市": "广东省揭阳市普宁市", + "云城区": "广东省云浮市云城区", + "云安区": "广东省云浮市云安区", + "新兴县": "广东省云浮市新兴县", + "郁南县": "广东省云浮市郁南县", + "罗定市": "广东省云浮市罗定市", + "兴宁区": "广西壮族自治区南宁市兴宁区", + "青秀区": "广西壮族自治区南宁市青秀区", + "江南区": "广西壮族自治区南宁市江南区", + "西乡塘区": "广西壮族自治区南宁市西乡塘区", + "良庆区": "广西壮族自治区南宁市良庆区", + "邕宁区": "广西壮族自治区南宁市邕宁区", + "武鸣区": "广西壮族自治区南宁市武鸣区", + "隆安县": "广西壮族自治区南宁市隆安县", + "马山县": "广西壮族自治区南宁市马山县", + "上林县": "广西壮族自治区南宁市上林县", + "宾阳县": "广西壮族自治区南宁市宾阳县", + "横州市": "广西壮族自治区南宁市横州市", + "鱼峰区": "广西壮族自治区柳州市鱼峰区", + "柳南区": "广西壮族自治区柳州市柳南区", + "柳北区": "广西壮族自治区柳州市柳北区", + "柳江区": "广西壮族自治区柳州市柳江区", + "柳城县": "广西壮族自治区柳州市柳城县", + "鹿寨县": "广西壮族自治区柳州市鹿寨县", + "融安县": "广西壮族自治区柳州市融安县", + "融水苗族自治县": "广西壮族自治区柳州市融水苗族自治县", + "三江侗族自治县": "广西壮族自治区柳州市三江侗族自治县", + "秀峰区": "广西壮族自治区桂林市秀峰区", + "叠彩区": "广西壮族自治区桂林市叠彩区", + "象山区": "广西壮族自治区桂林市象山区", + "七星区": "广西壮族自治区桂林市七星区", + "雁山区": "广西壮族自治区桂林市雁山区", + "临桂区": "广西壮族自治区桂林市临桂区", + "阳朔县": "广西壮族自治区桂林市阳朔县", + "灵川县": "广西壮族自治区桂林市灵川县", + "全州县": "广西壮族自治区桂林市全州县", + "兴安县": "广西壮族自治区桂林市兴安县", + "永福县": "广西壮族自治区桂林市永福县", + "灌阳县": "广西壮族自治区桂林市灌阳县", + "龙胜各族自治县": "广西壮族自治区桂林市龙胜各族自治县", + "资源县": "广西壮族自治区桂林市资源县", + "平乐县": "广西壮族自治区桂林市平乐县", + "恭城瑶族自治县": "广西壮族自治区桂林市恭城瑶族自治县", + "荔浦市": "广西壮族自治区桂林市荔浦市", + "万秀区": "广西壮族自治区梧州市万秀区", + "长洲区": "广西壮族自治区梧州市长洲区", + "龙圩区": "广西壮族自治区梧州市龙圩区", + "苍梧县": "广西壮族自治区梧州市苍梧县", + "藤县": "广西壮族自治区梧州市藤县", + "蒙山县": "广西壮族自治区梧州市蒙山县", + "岑溪市": "广西壮族自治区梧州市岑溪市", + "海城区": "广西壮族自治区北海市海城区", + "银海区": "广西壮族自治区北海市银海区", + "铁山港区": "广西壮族自治区北海市铁山港区", + "合浦县": "广西壮族自治区北海市合浦县", + "港口区": "广西壮族自治区防城港市港口区", + "防城区": "广西壮族自治区防城港市防城区", + "上思县": "广西壮族自治区防城港市上思县", + "东兴市": "广西壮族自治区防城港市东兴市", + "钦南区": "广西壮族自治区钦州市钦南区", + "钦北区": "广西壮族自治区钦州市钦北区", + "灵山县": "广西壮族自治区钦州市灵山县", + "浦北县": "广西壮族自治区钦州市浦北县", + "港北区": "广西壮族自治区贵港市港北区", + "港南区": "广西壮族自治区贵港市港南区", + "覃塘区": "广西壮族自治区贵港市覃塘区", + "平南县": "广西壮族自治区贵港市平南县", + "桂平市": "广西壮族自治区贵港市桂平市", + "玉州区": "广西壮族自治区玉林市玉州区", + "福绵区": "广西壮族自治区玉林市福绵区", + "容县": "广西壮族自治区玉林市容县", + "陆川县": "广西壮族自治区玉林市陆川县", + "博白县": "广西壮族自治区玉林市博白县", + "兴业县": "广西壮族自治区玉林市兴业县", + "北流市": "广西壮族自治区玉林市北流市", + "右江区": "广西壮族自治区百色市右江区", + "田阳区": "广西壮族自治区百色市田阳区", + "田东县": "广西壮族自治区百色市田东县", + "德保县": "广西壮族自治区百色市德保县", + "那坡县": "广西壮族自治区百色市那坡县", + "凌云县": "广西壮族自治区百色市凌云县", + "乐业县": "广西壮族自治区百色市乐业县", + "田林县": "广西壮族自治区百色市田林县", + "西林县": "广西壮族自治区百色市西林县", + "隆林各族自治县": "广西壮族自治区百色市隆林各族自治县", + "靖西市": "广西壮族自治区百色市靖西市", + "平果市": "广西壮族自治区百色市平果市", + "八步区": "广西壮族自治区贺州市八步区", + "平桂区": "广西壮族自治区贺州市平桂区", + "昭平县": "广西壮族自治区贺州市昭平县", + "钟山县": "广西壮族自治区贺州市钟山县", + "富川瑶族自治县": "广西壮族自治区贺州市富川瑶族自治县", + "金城江区": "广西壮族自治区河池市金城江区", + "宜州区": "广西壮族自治区河池市宜州区", + "南丹县": "广西壮族自治区河池市南丹县", + "天峨县": "广西壮族自治区河池市天峨县", + "凤山县": "广西壮族自治区河池市凤山县", + "东兰县": "广西壮族自治区河池市东兰县", + "罗城仫佬族自治县": "广西壮族自治区河池市罗城仫佬族自治县", + "环江毛南族自治县": "广西壮族自治区河池市环江毛南族自治县", + "巴马瑶族自治县": "广西壮族自治区河池市巴马瑶族自治县", + "都安瑶族自治县": "广西壮族自治区河池市都安瑶族自治县", + "大化瑶族自治县": "广西壮族自治区河池市大化瑶族自治县", + "兴宾区": "广西壮族自治区来宾市兴宾区", + "忻城县": "广西壮族自治区来宾市忻城县", + "象州县": "广西壮族自治区来宾市象州县", + "武宣县": "广西壮族自治区来宾市武宣县", + "金秀瑶族自治县": "广西壮族自治区来宾市金秀瑶族自治县", + "合山市": "广西壮族自治区来宾市合山市", + "江州区": "广西壮族自治区崇左市江州区", + "扶绥县": "广西壮族自治区崇左市扶绥县", + "宁明县": "广西壮族自治区崇左市宁明县", + "龙州县": "广西壮族自治区崇左市龙州县", + "大新县": "广西壮族自治区崇左市大新县", + "天等县": "广西壮族自治区崇左市天等县", + "凭祥市": "广西壮族自治区崇左市凭祥市", + "秀英区": "海南省海口市秀英区", + "琼山区": "海南省海口市琼山区", + "美兰区": "海南省海口市美兰区", + "海棠区": "海南省三亚市海棠区", + "吉阳区": "海南省三亚市吉阳区", + "天涯区": "海南省三亚市天涯区", + "崖州区": "海南省三亚市崖州区", + "西沙区": "海南省三沙市西沙区", + "儋州市": "海南省儋州市", + "五指山市": "海南省五指山市", + "琼海市": "海南省琼海市", + "文昌市": "海南省文昌市", + "万宁市": "海南省万宁市", + "东方市": "海南省东方市", + "定安县": "海南省定安县", + "屯昌县": "海南省屯昌县", + "澄迈县": "海南省澄迈县", + "临高县": "海南省临高县", + "白沙黎族自治县": "海南省白沙黎族自治县", + "昌江黎族自治县": "海南省昌江黎族自治县", + "乐东黎族自治县": "海南省乐东黎族自治县", + "陵水黎族自治县": "海南省陵水黎族自治县", + "保亭黎族苗族自治县": "海南省保亭黎族苗族自治县", + "琼中黎族苗族自治县": "海南省琼中黎族苗族自治县", + "万州区": "重庆市万州区", + "涪陵区": "重庆市涪陵区", + "渝中区": "重庆市渝中区", + "大渡口区": "重庆市大渡口区", + "沙坪坝区": "重庆市沙坪坝区", + "九龙坡区": "重庆市九龙坡区", + "南岸区": "重庆市南岸区", + "北碚区": "重庆市北碚区", + "綦江区": "重庆市綦江区", + "大足区": "重庆市大足区", + "渝北区": "重庆市渝北区", + "巴南区": "重庆市巴南区", + "黔江区": "重庆市黔江区", + "长寿区": "重庆市长寿区", + "江津区": "重庆市江津区", + "合川区": "重庆市合川区", + "永川区": "重庆市永川区", + "南川区": "重庆市南川区", + "璧山区": "重庆市璧山区", + "铜梁区": "重庆市铜梁区", + "潼南区": "重庆市潼南区", + "荣昌区": "重庆市荣昌区", + "开州区": "重庆市开州区", + "梁平区": "重庆市梁平区", + "武隆区": "重庆市武隆区", + "城口县": "重庆市城口县", + "丰都县": "重庆市丰都县", + "垫江县": "重庆市垫江县", + "忠县": "重庆市忠县", + "云阳县": "重庆市云阳县", + "奉节县": "重庆市奉节县", + "巫山县": "重庆市巫山县", + "巫溪县": "重庆市巫溪县", + "石柱土家族自治县": "重庆市石柱土家族自治县", + "秀山土家族苗族自治县": "重庆市秀山土家族苗族自治县", + "酉阳土家族苗族自治县": "重庆市酉阳土家族苗族自治县", + "彭水苗族土家族自治县": "重庆市彭水苗族土家族自治县", + "锦江区": "四川省成都市锦江区", + "青羊区": "四川省成都市青羊区", + "金牛区": "四川省成都市金牛区", + "武侯区": "四川省成都市武侯区", + "成华区": "四川省成都市成华区", + "龙泉驿区": "四川省成都市龙泉驿区", + "青白江区": "四川省成都市青白江区", + "新都区": "四川省成都市新都区", + "温江区": "四川省成都市温江区", + "双流区": "四川省成都市双流区", + "郫都区": "四川省成都市郫都区", + "新津区": "四川省成都市新津区", + "金堂县": "四川省成都市金堂县", + "大邑县": "四川省成都市大邑县", + "蒲江县": "四川省成都市蒲江县", + "都江堰市": "四川省成都市都江堰市", + "彭州市": "四川省成都市彭州市", + "邛崃市": "四川省成都市邛崃市", + "崇州市": "四川省成都市崇州市", + "简阳市": "四川省成都市简阳市", + "自流井区": "四川省自贡市自流井区", + "贡井区": "四川省自贡市贡井区", + "大安区": "四川省自贡市大安区", + "沿滩区": "四川省自贡市沿滩区", + "荣县": "四川省自贡市荣县", + "富顺县": "四川省自贡市富顺县", + "西区": "四川省攀枝花市西区", + "仁和区": "四川省攀枝花市仁和区", + "米易县": "四川省攀枝花市米易县", + "盐边县": "四川省攀枝花市盐边县", + "江阳区": "四川省泸州市江阳区", + "纳溪区": "四川省泸州市纳溪区", + "龙马潭区": "四川省泸州市龙马潭区", + "泸县": "四川省泸州市泸县", + "合江县": "四川省泸州市合江县", + "叙永县": "四川省泸州市叙永县", + "古蔺县": "四川省泸州市古蔺县", + "旌阳区": "四川省德阳市旌阳区", + "罗江区": "四川省德阳市罗江区", + "中江县": "四川省德阳市中江县", + "广汉市": "四川省德阳市广汉市", + "什邡市": "四川省德阳市什邡市", + "绵竹市": "四川省德阳市绵竹市", + "涪城区": "四川省绵阳市涪城区", + "游仙区": "四川省绵阳市游仙区", + "安州区": "四川省绵阳市安州区", + "三台县": "四川省绵阳市三台县", + "盐亭县": "四川省绵阳市盐亭县", + "梓潼县": "四川省绵阳市梓潼县", + "北川羌族自治县": "四川省绵阳市北川羌族自治县", + "平武县": "四川省绵阳市平武县", + "江油市": "四川省绵阳市江油市", + "利州区": "四川省广元市利州区", + "昭化区": "四川省广元市昭化区", + "朝天区": "四川省广元市朝天区", + "旺苍县": "四川省广元市旺苍县", + "青川县": "四川省广元市青川县", + "剑阁县": "四川省广元市剑阁县", + "苍溪县": "四川省广元市苍溪县", + "船山区": "四川省遂宁市船山区", + "安居区": "四川省遂宁市安居区", + "蓬溪县": "四川省遂宁市蓬溪县", + "大英县": "四川省遂宁市大英县", + "射洪市": "四川省遂宁市射洪市", + "东兴区": "四川省内江市东兴区", + "威远县": "四川省内江市威远县", + "资中县": "四川省内江市资中县", + "隆昌市": "四川省内江市隆昌市", + "沙湾区": "四川省乐山市沙湾区", + "五通桥区": "四川省乐山市五通桥区", + "金口河区": "四川省乐山市金口河区", + "犍为县": "四川省乐山市犍为县", + "井研县": "四川省乐山市井研县", + "夹江县": "四川省乐山市夹江县", + "沐川县": "四川省乐山市沐川县", + "峨边彝族自治县": "四川省乐山市峨边彝族自治县", + "马边彝族自治县": "四川省乐山市马边彝族自治县", + "峨眉山市": "四川省乐山市峨眉山市", + "顺庆区": "四川省南充市顺庆区", + "高坪区": "四川省南充市高坪区", + "嘉陵区": "四川省南充市嘉陵区", + "南部县": "四川省南充市南部县", + "营山县": "四川省南充市营山县", + "蓬安县": "四川省南充市蓬安县", + "仪陇县": "四川省南充市仪陇县", + "西充县": "四川省南充市西充县", + "阆中市": "四川省南充市阆中市", + "东坡区": "四川省眉山市东坡区", + "彭山区": "四川省眉山市彭山区", + "仁寿县": "四川省眉山市仁寿县", + "洪雅县": "四川省眉山市洪雅县", + "丹棱县": "四川省眉山市丹棱县", + "青神县": "四川省眉山市青神县", + "翠屏区": "四川省宜宾市翠屏区", + "南溪区": "四川省宜宾市南溪区", + "叙州区": "四川省宜宾市叙州区", + "江安县": "四川省宜宾市江安县", + "长宁县": "四川省宜宾市长宁县", + "高县": "四川省宜宾市高县", + "珙县": "四川省宜宾市珙县", + "筠连县": "四川省宜宾市筠连县", + "兴文县": "四川省宜宾市兴文县", + "屏山县": "四川省宜宾市屏山县", + "广安区": "四川省广安市广安区", + "前锋区": "四川省广安市前锋区", + "岳池县": "四川省广安市岳池县", + "武胜县": "四川省广安市武胜县", + "邻水县": "四川省广安市邻水县", + "华蓥市": "四川省广安市华蓥市", + "通川区": "四川省达州市通川区", + "达川区": "四川省达州市达川区", + "宣汉县": "四川省达州市宣汉县", + "开江县": "四川省达州市开江县", + "大竹县": "四川省达州市大竹县", + "渠县": "四川省达州市渠县", + "万源市": "四川省达州市万源市", + "雨城区": "四川省雅安市雨城区", + "名山区": "四川省雅安市名山区", + "荥经县": "四川省雅安市荥经县", + "汉源县": "四川省雅安市汉源县", + "石棉县": "四川省雅安市石棉县", + "天全县": "四川省雅安市天全县", + "芦山县": "四川省雅安市芦山县", + "宝兴县": "四川省雅安市宝兴县", + "巴州区": "四川省巴中市巴州区", + "恩阳区": "四川省巴中市恩阳区", + "通江县": "四川省巴中市通江县", + "南江县": "四川省巴中市南江县", + "平昌县": "四川省巴中市平昌县", + "雁江区": "四川省资阳市雁江区", + "安岳县": "四川省资阳市安岳县", + "乐至县": "四川省资阳市乐至县", + "马尔康市": "四川省阿坝藏族羌族自治州马尔康市", + "汶川县": "四川省阿坝藏族羌族自治州汶川县", + "理县": "四川省阿坝藏族羌族自治州理县", + "茂县": "四川省阿坝藏族羌族自治州茂县", + "松潘县": "四川省阿坝藏族羌族自治州松潘县", + "九寨沟县": "四川省阿坝藏族羌族自治州九寨沟县", + "金川县": "四川省阿坝藏族羌族自治州金川县", + "小金县": "四川省阿坝藏族羌族自治州小金县", + "黑水县": "四川省阿坝藏族羌族自治州黑水县", + "壤塘县": "四川省阿坝藏族羌族自治州壤塘县", + "阿坝县": "四川省阿坝藏族羌族自治州阿坝县", + "若尔盖县": "四川省阿坝藏族羌族自治州若尔盖县", + "红原县": "四川省阿坝藏族羌族自治州红原县", + "康定市": "四川省甘孜藏族自治州康定市", + "泸定县": "四川省甘孜藏族自治州泸定县", + "丹巴县": "四川省甘孜藏族自治州丹巴县", + "九龙县": "四川省甘孜藏族自治州九龙县", + "雅江县": "四川省甘孜藏族自治州雅江县", + "道孚县": "四川省甘孜藏族自治州道孚县", + "炉霍县": "四川省甘孜藏族自治州炉霍县", + "甘孜县": "四川省甘孜藏族自治州甘孜县", + "新龙县": "四川省甘孜藏族自治州新龙县", + "德格县": "四川省甘孜藏族自治州德格县", + "白玉县": "四川省甘孜藏族自治州白玉县", + "石渠县": "四川省甘孜藏族自治州石渠县", + "色达县": "四川省甘孜藏族自治州色达县", + "理塘县": "四川省甘孜藏族自治州理塘县", + "巴塘县": "四川省甘孜藏族自治州巴塘县", + "乡城县": "四川省甘孜藏族自治州乡城县", + "稻城县": "四川省甘孜藏族自治州稻城县", + "得荣县": "四川省甘孜藏族自治州得荣县", + "西昌市": "四川省凉山彝族自治州西昌市", + "木里藏族自治县": "四川省凉山彝族自治州木里藏族自治县", + "盐源县": "四川省凉山彝族自治州盐源县", + "德昌县": "四川省凉山彝族自治州德昌县", + "会理市": "四川省凉山彝族自治州会理市", + "会东县": "四川省凉山彝族自治州会东县", + "宁南县": "四川省凉山彝族自治州宁南县", + "普格县": "四川省凉山彝族自治州普格县", + "布拖县": "四川省凉山彝族自治州布拖县", + "金阳县": "四川省凉山彝族自治州金阳县", + "昭觉县": "四川省凉山彝族自治州昭觉县", + "喜德县": "四川省凉山彝族自治州喜德县", + "冕宁县": "四川省凉山彝族自治州冕宁县", + "越西县": "四川省凉山彝族自治州越西县", + "甘洛县": "四川省凉山彝族自治州甘洛县", + "美姑县": "四川省凉山彝族自治州美姑县", + "雷波县": "四川省凉山彝族自治州雷波县", + "南明区": "贵州省贵阳市南明区", + "云岩区": "贵州省贵阳市云岩区", + "花溪区": "贵州省贵阳市花溪区", + "乌当区": "贵州省贵阳市乌当区", + "观山湖区": "贵州省贵阳市观山湖区", + "开阳县": "贵州省贵阳市开阳县", + "息烽县": "贵州省贵阳市息烽县", + "修文县": "贵州省贵阳市修文县", + "清镇市": "贵州省贵阳市清镇市", + "钟山区": "贵州省六盘水市钟山区", + "六枝特区": "贵州省六盘水市六枝特区", + "水城区": "贵州省六盘水市水城区", + "盘州市": "贵州省六盘水市盘州市", + "红花岗区": "贵州省遵义市红花岗区", + "汇川区": "贵州省遵义市汇川区", + "播州区": "贵州省遵义市播州区", + "桐梓县": "贵州省遵义市桐梓县", + "绥阳县": "贵州省遵义市绥阳县", + "正安县": "贵州省遵义市正安县", + "道真仡佬族苗族自治县": "贵州省遵义市道真仡佬族苗族自治县", + "务川仡佬族苗族自治县": "贵州省遵义市务川仡佬族苗族自治县", + "凤冈县": "贵州省遵义市凤冈县", + "湄潭县": "贵州省遵义市湄潭县", + "余庆县": "贵州省遵义市余庆县", + "习水县": "贵州省遵义市习水县", + "赤水市": "贵州省遵义市赤水市", + "仁怀市": "贵州省遵义市仁怀市", + "西秀区": "贵州省安顺市西秀区", + "平坝区": "贵州省安顺市平坝区", + "普定县": "贵州省安顺市普定县", + "镇宁布依族苗族自治县": "贵州省安顺市镇宁布依族苗族自治县", + "关岭布依族苗族自治县": "贵州省安顺市关岭布依族苗族自治县", + "紫云苗族布依族自治县": "贵州省安顺市紫云苗族布依族自治县", + "七星关区": "贵州省毕节市七星关区", + "大方县": "贵州省毕节市大方县", + "黔西市": "贵州省毕节市黔西市", + "金沙县": "贵州省毕节市金沙县", + "织金县": "贵州省毕节市织金县", + "纳雍县": "贵州省毕节市纳雍县", + "威宁彝族回族苗族自治县": "贵州省毕节市威宁彝族回族苗族自治县", + "赫章县": "贵州省毕节市赫章县", + "碧江区": "贵州省铜仁市碧江区", + "万山区": "贵州省铜仁市万山区", + "江口县": "贵州省铜仁市江口县", + "玉屏侗族自治县": "贵州省铜仁市玉屏侗族自治县", + "石阡县": "贵州省铜仁市石阡县", + "思南县": "贵州省铜仁市思南县", + "印江土家族苗族自治县": "贵州省铜仁市印江土家族苗族自治县", + "德江县": "贵州省铜仁市德江县", + "沿河土家族自治县": "贵州省铜仁市沿河土家族自治县", + "松桃苗族自治县": "贵州省铜仁市松桃苗族自治县", + "兴义市": "贵州省黔西南布依族苗族自治州兴义市", + "兴仁市": "贵州省黔西南布依族苗族自治州兴仁市", + "普安县": "贵州省黔西南布依族苗族自治州普安县", + "晴隆县": "贵州省黔西南布依族苗族自治州晴隆县", + "贞丰县": "贵州省黔西南布依族苗族自治州贞丰县", + "望谟县": "贵州省黔西南布依族苗族自治州望谟县", + "册亨县": "贵州省黔西南布依族苗族自治州册亨县", + "安龙县": "贵州省黔西南布依族苗族自治州安龙县", + "凯里市": "贵州省黔东南苗族侗族自治州凯里市", + "黄平县": "贵州省黔东南苗族侗族自治州黄平县", + "施秉县": "贵州省黔东南苗族侗族自治州施秉县", + "三穗县": "贵州省黔东南苗族侗族自治州三穗县", + "镇远县": "贵州省黔东南苗族侗族自治州镇远县", + "岑巩县": "贵州省黔东南苗族侗族自治州岑巩县", + "天柱县": "贵州省黔东南苗族侗族自治州天柱县", + "锦屏县": "贵州省黔东南苗族侗族自治州锦屏县", + "剑河县": "贵州省黔东南苗族侗族自治州剑河县", + "台江县": "贵州省黔东南苗族侗族自治州台江县", + "黎平县": "贵州省黔东南苗族侗族自治州黎平县", + "榕江县": "贵州省黔东南苗族侗族自治州榕江县", + "从江县": "贵州省黔东南苗族侗族自治州从江县", + "雷山县": "贵州省黔东南苗族侗族自治州雷山县", + "麻江县": "贵州省黔东南苗族侗族自治州麻江县", + "丹寨县": "贵州省黔东南苗族侗族自治州丹寨县", + "都匀市": "贵州省黔南布依族苗族自治州都匀市", + "福泉市": "贵州省黔南布依族苗族自治州福泉市", + "荔波县": "贵州省黔南布依族苗族自治州荔波县", + "贵定县": "贵州省黔南布依族苗族自治州贵定县", + "瓮安县": "贵州省黔南布依族苗族自治州瓮安县", + "独山县": "贵州省黔南布依族苗族自治州独山县", + "平塘县": "贵州省黔南布依族苗族自治州平塘县", + "罗甸县": "贵州省黔南布依族苗族自治州罗甸县", + "长顺县": "贵州省黔南布依族苗族自治州长顺县", + "龙里县": "贵州省黔南布依族苗族自治州龙里县", + "惠水县": "贵州省黔南布依族苗族自治州惠水县", + "三都水族自治县": "贵州省黔南布依族苗族自治州三都水族自治县", + "五华区": "云南省昆明市五华区", + "盘龙区": "云南省昆明市盘龙区", + "官渡区": "云南省昆明市官渡区", + "西山区": "云南省昆明市西山区", + "东川区": "云南省昆明市东川区", + "呈贡区": "云南省昆明市呈贡区", + "晋宁区": "云南省昆明市晋宁区", + "富民县": "云南省昆明市富民县", + "宜良县": "云南省昆明市宜良县", + "石林彝族自治县": "云南省昆明市石林彝族自治县", + "嵩明县": "云南省昆明市嵩明县", + "禄劝彝族苗族自治县": "云南省昆明市禄劝彝族苗族自治县", + "寻甸回族彝族自治县": "云南省昆明市寻甸回族彝族自治县", + "安宁市": "云南省昆明市安宁市", + "麒麟区": "云南省曲靖市麒麟区", + "沾益区": "云南省曲靖市沾益区", + "马龙区": "云南省曲靖市马龙区", + "陆良县": "云南省曲靖市陆良县", + "师宗县": "云南省曲靖市师宗县", + "罗平县": "云南省曲靖市罗平县", + "富源县": "云南省曲靖市富源县", + "会泽县": "云南省曲靖市会泽县", + "宣威市": "云南省曲靖市宣威市", + "红塔区": "云南省玉溪市红塔区", + "江川区": "云南省玉溪市江川区", + "通海县": "云南省玉溪市通海县", + "华宁县": "云南省玉溪市华宁县", + "易门县": "云南省玉溪市易门县", + "峨山彝族自治县": "云南省玉溪市峨山彝族自治县", + "新平彝族傣族自治县": "云南省玉溪市新平彝族傣族自治县", + "元江哈尼族彝族傣族自治县": "云南省玉溪市元江哈尼族彝族傣族自治县", + "澄江市": "云南省玉溪市澄江市", + "隆阳区": "云南省保山市隆阳区", + "施甸县": "云南省保山市施甸县", + "龙陵县": "云南省保山市龙陵县", + "昌宁县": "云南省保山市昌宁县", + "腾冲市": "云南省保山市腾冲市", + "昭阳区": "云南省昭通市昭阳区", + "鲁甸县": "云南省昭通市鲁甸县", + "巧家县": "云南省昭通市巧家县", + "盐津县": "云南省昭通市盐津县", + "大关县": "云南省昭通市大关县", + "永善县": "云南省昭通市永善县", + "绥江县": "云南省昭通市绥江县", + "镇雄县": "云南省昭通市镇雄县", + "彝良县": "云南省昭通市彝良县", + "威信县": "云南省昭通市威信县", + "水富市": "云南省昭通市水富市", + "古城区": "云南省丽江市古城区", + "玉龙纳西族自治县": "云南省丽江市玉龙纳西族自治县", + "永胜县": "云南省丽江市永胜县", + "华坪县": "云南省丽江市华坪县", + "宁蒗彝族自治县": "云南省丽江市宁蒗彝族自治县", + "思茅区": "云南省普洱市思茅区", + "宁洱哈尼族彝族自治县": "云南省普洱市宁洱哈尼族彝族自治县", + "墨江哈尼族自治县": "云南省普洱市墨江哈尼族自治县", + "景东彝族自治县": "云南省普洱市景东彝族自治县", + "景谷傣族彝族自治县": "云南省普洱市景谷傣族彝族自治县", + "镇沅彝族哈尼族拉祜族自治县": "云南省普洱市镇沅彝族哈尼族拉祜族自治县", + "江城哈尼族彝族自治县": "云南省普洱市江城哈尼族彝族自治县", + "孟连傣族拉祜族佤族自治县": "云南省普洱市孟连傣族拉祜族佤族自治县", + "澜沧拉祜族自治县": "云南省普洱市澜沧拉祜族自治县", + "西盟佤族自治县": "云南省普洱市西盟佤族自治县", + "临翔区": "云南省临沧市临翔区", + "凤庆县": "云南省临沧市凤庆县", + "云县": "云南省临沧市云县", + "永德县": "云南省临沧市永德县", + "镇康县": "云南省临沧市镇康县", + "双江拉祜族佤族布朗族傣族自治县": "云南省临沧市双江拉祜族佤族布朗族傣族自治县", + "耿马傣族佤族自治县": "云南省临沧市耿马傣族佤族自治县", + "沧源佤族自治县": "云南省临沧市沧源佤族自治县", + "楚雄市": "云南省楚雄彝族自治州楚雄市", + "双柏县": "云南省楚雄彝族自治州双柏县", + "牟定县": "云南省楚雄彝族自治州牟定县", + "南华县": "云南省楚雄彝族自治州南华县", + "姚安县": "云南省楚雄彝族自治州姚安县", + "大姚县": "云南省楚雄彝族自治州大姚县", + "永仁县": "云南省楚雄彝族自治州永仁县", + "元谋县": "云南省楚雄彝族自治州元谋县", + "武定县": "云南省楚雄彝族自治州武定县", + "禄丰市": "云南省楚雄彝族自治州禄丰市", + "个旧市": "云南省红河哈尼族彝族自治州个旧市", + "开远市": "云南省红河哈尼族彝族自治州开远市", + "蒙自市": "云南省红河哈尼族彝族自治州蒙自市", + "弥勒市": "云南省红河哈尼族彝族自治州弥勒市", + "屏边苗族自治县": "云南省红河哈尼族彝族自治州屏边苗族自治县", + "建水县": "云南省红河哈尼族彝族自治州建水县", + "石屏县": "云南省红河哈尼族彝族自治州石屏县", + "泸西县": "云南省红河哈尼族彝族自治州泸西县", + "元阳县": "云南省红河哈尼族彝族自治州元阳县", + "红河县": "云南省红河哈尼族彝族自治州红河县", + "金平苗族瑶族傣族自治县": "云南省红河哈尼族彝族自治州金平苗族瑶族傣族自治县", + "绿春县": "云南省红河哈尼族彝族自治州绿春县", + "河口瑶族自治县": "云南省红河哈尼族彝族自治州河口瑶族自治县", + "文山市": "云南省文山壮族苗族自治州文山市", + "砚山县": "云南省文山壮族苗族自治州砚山县", + "西畴县": "云南省文山壮族苗族自治州西畴县", + "麻栗坡县": "云南省文山壮族苗族自治州麻栗坡县", + "马关县": "云南省文山壮族苗族自治州马关县", + "丘北县": "云南省文山壮族苗族自治州丘北县", + "广南县": "云南省文山壮族苗族自治州广南县", + "富宁县": "云南省文山壮族苗族自治州富宁县", + "景洪市": "云南省西双版纳傣族自治州景洪市", + "勐海县": "云南省西双版纳傣族自治州勐海县", + "勐腊县": "云南省西双版纳傣族自治州勐腊县", + "大理市": "云南省大理白族自治州大理市", + "漾濞彝族自治县": "云南省大理白族自治州漾濞彝族自治县", + "祥云县": "云南省大理白族自治州祥云县", + "宾川县": "云南省大理白族自治州宾川县", + "弥渡县": "云南省大理白族自治州弥渡县", + "南涧彝族自治县": "云南省大理白族自治州南涧彝族自治县", + "巍山彝族回族自治县": "云南省大理白族自治州巍山彝族回族自治县", + "永平县": "云南省大理白族自治州永平县", + "云龙县": "云南省大理白族自治州云龙县", + "洱源县": "云南省大理白族自治州洱源县", + "剑川县": "云南省大理白族自治州剑川县", + "鹤庆县": "云南省大理白族自治州鹤庆县", + "瑞丽市": "云南省德宏傣族景颇族自治州瑞丽市", + "梁河县": "云南省德宏傣族景颇族自治州梁河县", + "盈江县": "云南省德宏傣族景颇族自治州盈江县", + "陇川县": "云南省德宏傣族景颇族自治州陇川县", + "泸水市": "云南省怒江傈僳族自治州泸水市", + "福贡县": "云南省怒江傈僳族自治州福贡县", + "贡山独龙族怒族自治县": "云南省怒江傈僳族自治州贡山独龙族怒族自治县", + "兰坪白族普米族自治县": "云南省怒江傈僳族自治州兰坪白族普米族自治县", + "香格里拉市": "云南省迪庆藏族自治州香格里拉市", + "德钦县": "云南省迪庆藏族自治州德钦县", + "维西傈僳族自治县": "云南省迪庆藏族自治州维西傈僳族自治县", + "堆龙德庆区": "西藏自治区拉萨市堆龙德庆区", + "达孜区": "西藏自治区拉萨市达孜区", + "林周县": "西藏自治区拉萨市林周县", + "当雄县": "西藏自治区拉萨市当雄县", + "尼木县": "西藏自治区拉萨市尼木县", + "曲水县": "西藏自治区拉萨市曲水县", + "墨竹工卡县": "西藏自治区拉萨市墨竹工卡县", + "桑珠孜区": "西藏自治区日喀则市桑珠孜区", + "南木林县": "西藏自治区日喀则市南木林县", + "江孜县": "西藏自治区日喀则市江孜县", + "定日县": "西藏自治区日喀则市定日县", + "萨迦县": "西藏自治区日喀则市萨迦县", + "拉孜县": "西藏自治区日喀则市拉孜县", + "昂仁县": "西藏自治区日喀则市昂仁县", + "谢通门县": "西藏自治区日喀则市谢通门县", + "白朗县": "西藏自治区日喀则市白朗县", + "仁布县": "西藏自治区日喀则市仁布县", + "康马县": "西藏自治区日喀则市康马县", + "定结县": "西藏自治区日喀则市定结县", + "仲巴县": "西藏自治区日喀则市仲巴县", + "亚东县": "西藏自治区日喀则市亚东县", + "吉隆县": "西藏自治区日喀则市吉隆县", + "聂拉木县": "西藏自治区日喀则市聂拉木县", + "萨嘎县": "西藏自治区日喀则市萨嘎县", + "岗巴县": "西藏自治区日喀则市岗巴县", + "卡若区": "西藏自治区昌都市卡若区", + "江达县": "西藏自治区昌都市江达县", + "贡觉县": "西藏自治区昌都市贡觉县", + "类乌齐县": "西藏自治区昌都市类乌齐县", + "丁青县": "西藏自治区昌都市丁青县", + "察雅县": "西藏自治区昌都市察雅县", + "八宿县": "西藏自治区昌都市八宿县", + "左贡县": "西藏自治区昌都市左贡县", + "芒康县": "西藏自治区昌都市芒康县", + "洛隆县": "西藏自治区昌都市洛隆县", + "边坝县": "西藏自治区昌都市边坝县", + "巴宜区": "西藏自治区林芝市巴宜区", + "工布江达县": "西藏自治区林芝市工布江达县", + "米林县": "西藏自治区林芝市米林县", + "墨脱县": "西藏自治区林芝市墨脱县", + "波密县": "西藏自治区林芝市波密县", + "察隅县": "西藏自治区林芝市察隅县", + "朗县": "西藏自治区林芝市朗县", + "乃东区": "西藏自治区山南市乃东区", + "扎囊县": "西藏自治区山南市扎囊县", + "贡嘎县": "西藏自治区山南市贡嘎县", + "桑日县": "西藏自治区山南市桑日县", + "琼结县": "西藏自治区山南市琼结县", + "曲松县": "西藏自治区山南市曲松县", + "措美县": "西藏自治区山南市措美县", + "洛扎县": "西藏自治区山南市洛扎县", + "加查县": "西藏自治区山南市加查县", + "隆子县": "西藏自治区山南市隆子县", + "错那县": "西藏自治区山南市错那县", + "浪卡子县": "西藏自治区山南市浪卡子县", + "色尼区": "西藏自治区那曲市色尼区", + "嘉黎县": "西藏自治区那曲市嘉黎县", + "比如县": "西藏自治区那曲市比如县", + "聂荣县": "西藏自治区那曲市聂荣县", + "安多县": "西藏自治区那曲市安多县", + "申扎县": "西藏自治区那曲市申扎县", + "索县": "西藏自治区那曲市索县", + "班戈县": "西藏自治区那曲市班戈县", + "巴青县": "西藏自治区那曲市巴青县", + "尼玛县": "西藏自治区那曲市尼玛县", + "双湖县": "西藏自治区那曲市双湖县", + "普兰县": "西藏自治区阿里地区普兰县", + "札达县": "西藏自治区阿里地区札达县", + "噶尔县": "西藏自治区阿里地区噶尔县", + "日土县": "西藏自治区阿里地区日土县", + "革吉县": "西藏自治区阿里地区革吉县", + "改则县": "西藏自治区阿里地区改则县", + "措勤县": "西藏自治区阿里地区措勤县", + "碑林区": "陕西省西安市碑林区", + "莲湖区": "陕西省西安市莲湖区", + "灞桥区": "陕西省西安市灞桥区", + "未央区": "陕西省西安市未央区", + "雁塔区": "陕西省西安市雁塔区", + "阎良区": "陕西省西安市阎良区", + "临潼区": "陕西省西安市临潼区", + "高陵区": "陕西省西安市高陵区", + "鄠邑区": "陕西省西安市鄠邑区", + "蓝田县": "陕西省西安市蓝田县", + "周至县": "陕西省西安市周至县", + "王益区": "陕西省铜川市王益区", + "印台区": "陕西省铜川市印台区", + "耀州区": "陕西省铜川市耀州区", + "宜君县": "陕西省铜川市宜君县", + "渭滨区": "陕西省宝鸡市渭滨区", + "金台区": "陕西省宝鸡市金台区", + "陈仓区": "陕西省宝鸡市陈仓区", + "凤翔区": "陕西省宝鸡市凤翔区", + "岐山县": "陕西省宝鸡市岐山县", + "扶风县": "陕西省宝鸡市扶风县", + "眉县": "陕西省宝鸡市眉县", + "陇县": "陕西省宝鸡市陇县", + "千阳县": "陕西省宝鸡市千阳县", + "麟游县": "陕西省宝鸡市麟游县", + "凤县": "陕西省宝鸡市凤县", + "太白县": "陕西省宝鸡市太白县", + "秦都区": "陕西省咸阳市秦都区", + "杨陵区": "陕西省咸阳市杨陵区", + "渭城区": "陕西省咸阳市渭城区", + "三原县": "陕西省咸阳市三原县", + "泾阳县": "陕西省咸阳市泾阳县", + "乾县": "陕西省咸阳市乾县", + "礼泉县": "陕西省咸阳市礼泉县", + "永寿县": "陕西省咸阳市永寿县", + "长武县": "陕西省咸阳市长武县", + "旬邑县": "陕西省咸阳市旬邑县", + "淳化县": "陕西省咸阳市淳化县", + "武功县": "陕西省咸阳市武功县", + "兴平市": "陕西省咸阳市兴平市", + "彬州市": "陕西省咸阳市彬州市", + "临渭区": "陕西省渭南市临渭区", + "华州区": "陕西省渭南市华州区", + "潼关县": "陕西省渭南市潼关县", + "大荔县": "陕西省渭南市大荔县", + "合阳县": "陕西省渭南市合阳县", + "澄城县": "陕西省渭南市澄城县", + "蒲城县": "陕西省渭南市蒲城县", + "白水县": "陕西省渭南市白水县", + "富平县": "陕西省渭南市富平县", + "韩城市": "陕西省渭南市韩城市", + "华阴市": "陕西省渭南市华阴市", + "宝塔区": "陕西省延安市宝塔区", + "安塞区": "陕西省延安市安塞区", + "延长县": "陕西省延安市延长县", + "延川县": "陕西省延安市延川县", + "志丹县": "陕西省延安市志丹县", + "吴起县": "陕西省延安市吴起县", + "甘泉县": "陕西省延安市甘泉县", + "富县": "陕西省延安市富县", + "洛川县": "陕西省延安市洛川县", + "宜川县": "陕西省延安市宜川县", + "黄龙县": "陕西省延安市黄龙县", + "黄陵县": "陕西省延安市黄陵县", + "子长市": "陕西省延安市子长市", + "汉台区": "陕西省汉中市汉台区", + "南郑区": "陕西省汉中市南郑区", + "城固县": "陕西省汉中市城固县", + "洋县": "陕西省汉中市洋县", + "西乡县": "陕西省汉中市西乡县", + "勉县": "陕西省汉中市勉县", + "宁强县": "陕西省汉中市宁强县", + "略阳县": "陕西省汉中市略阳县", + "镇巴县": "陕西省汉中市镇巴县", + "留坝县": "陕西省汉中市留坝县", + "佛坪县": "陕西省汉中市佛坪县", + "榆阳区": "陕西省榆林市榆阳区", + "横山区": "陕西省榆林市横山区", + "府谷县": "陕西省榆林市府谷县", + "靖边县": "陕西省榆林市靖边县", + "定边县": "陕西省榆林市定边县", + "绥德县": "陕西省榆林市绥德县", + "米脂县": "陕西省榆林市米脂县", + "佳县": "陕西省榆林市佳县", + "吴堡县": "陕西省榆林市吴堡县", + "清涧县": "陕西省榆林市清涧县", + "子洲县": "陕西省榆林市子洲县", + "神木市": "陕西省榆林市神木市", + "汉滨区": "陕西省安康市汉滨区", + "汉阴县": "陕西省安康市汉阴县", + "石泉县": "陕西省安康市石泉县", + "宁陕县": "陕西省安康市宁陕县", + "紫阳县": "陕西省安康市紫阳县", + "岚皋县": "陕西省安康市岚皋县", + "平利县": "陕西省安康市平利县", + "镇坪县": "陕西省安康市镇坪县", + "旬阳市": "陕西省安康市旬阳市", + "白河县": "陕西省安康市白河县", + "商州区": "陕西省商洛市商州区", + "洛南县": "陕西省商洛市洛南县", + "丹凤县": "陕西省商洛市丹凤县", + "商南县": "陕西省商洛市商南县", + "山阳县": "陕西省商洛市山阳县", + "镇安县": "陕西省商洛市镇安县", + "柞水县": "陕西省商洛市柞水县", + "七里河区": "甘肃省兰州市七里河区", + "西固区": "甘肃省兰州市西固区", + "安宁区": "甘肃省兰州市安宁区", + "红古区": "甘肃省兰州市红古区", + "永登县": "甘肃省兰州市永登县", + "皋兰县": "甘肃省兰州市皋兰县", + "榆中县": "甘肃省兰州市榆中县", + "嘉峪关市": "甘肃省嘉峪关市", + "金川区": "甘肃省金昌市金川区", + "永昌县": "甘肃省金昌市永昌县", + "白银区": "甘肃省白银市白银区", + "平川区": "甘肃省白银市平川区", + "靖远县": "甘肃省白银市靖远县", + "会宁县": "甘肃省白银市会宁县", + "景泰县": "甘肃省白银市景泰县", + "秦州区": "甘肃省天水市秦州区", + "麦积区": "甘肃省天水市麦积区", + "清水县": "甘肃省天水市清水县", + "秦安县": "甘肃省天水市秦安县", + "甘谷县": "甘肃省天水市甘谷县", + "武山县": "甘肃省天水市武山县", + "张家川回族自治县": "甘肃省天水市张家川回族自治县", + "凉州区": "甘肃省武威市凉州区", + "民勤县": "甘肃省武威市民勤县", + "古浪县": "甘肃省武威市古浪县", + "天祝藏族自治县": "甘肃省武威市天祝藏族自治县", + "甘州区": "甘肃省张掖市甘州区", + "肃南裕固族自治县": "甘肃省张掖市肃南裕固族自治县", + "民乐县": "甘肃省张掖市民乐县", + "临泽县": "甘肃省张掖市临泽县", + "高台县": "甘肃省张掖市高台县", + "山丹县": "甘肃省张掖市山丹县", + "崆峒区": "甘肃省平凉市崆峒区", + "泾川县": "甘肃省平凉市泾川县", + "灵台县": "甘肃省平凉市灵台县", + "崇信县": "甘肃省平凉市崇信县", + "庄浪县": "甘肃省平凉市庄浪县", + "静宁县": "甘肃省平凉市静宁县", + "华亭市": "甘肃省平凉市华亭市", + "肃州区": "甘肃省酒泉市肃州区", + "金塔县": "甘肃省酒泉市金塔县", + "瓜州县": "甘肃省酒泉市瓜州县", + "肃北蒙古族自治县": "甘肃省酒泉市肃北蒙古族自治县", + "阿克塞哈萨克族自治县": "甘肃省酒泉市阿克塞哈萨克族自治县", + "玉门市": "甘肃省酒泉市玉门市", + "敦煌市": "甘肃省酒泉市敦煌市", + "西峰区": "甘肃省庆阳市西峰区", + "庆城县": "甘肃省庆阳市庆城县", + "环县": "甘肃省庆阳市环县", + "华池县": "甘肃省庆阳市华池县", + "合水县": "甘肃省庆阳市合水县", + "正宁县": "甘肃省庆阳市正宁县", + "宁县": "甘肃省庆阳市宁县", + "镇原县": "甘肃省庆阳市镇原县", + "安定区": "甘肃省定西市安定区", + "通渭县": "甘肃省定西市通渭县", + "陇西县": "甘肃省定西市陇西县", + "渭源县": "甘肃省定西市渭源县", + "临洮县": "甘肃省定西市临洮县", + "漳县": "甘肃省定西市漳县", + "岷县": "甘肃省定西市岷县", + "武都区": "甘肃省陇南市武都区", + "成县": "甘肃省陇南市成县", + "文县": "甘肃省陇南市文县", + "宕昌县": "甘肃省陇南市宕昌县", + "康县": "甘肃省陇南市康县", + "西和县": "甘肃省陇南市西和县", + "礼县": "甘肃省陇南市礼县", + "徽县": "甘肃省陇南市徽县", + "两当县": "甘肃省陇南市两当县", + "临夏市": "甘肃省临夏回族自治州临夏市", + "临夏县": "甘肃省临夏回族自治州临夏县", + "康乐县": "甘肃省临夏回族自治州康乐县", + "永靖县": "甘肃省临夏回族自治州永靖县", + "广河县": "甘肃省临夏回族自治州广河县", + "和政县": "甘肃省临夏回族自治州和政县", + "东乡族自治县": "甘肃省临夏回族自治州东乡族自治县", + "积石山保安族东乡族撒拉族自治县": "甘肃省临夏回族自治州积石山保安族东乡族撒拉族自治县", + "合作市": "甘肃省甘南藏族自治州合作市", + "临潭县": "甘肃省甘南藏族自治州临潭县", + "卓尼县": "甘肃省甘南藏族自治州卓尼县", + "舟曲县": "甘肃省甘南藏族自治州舟曲县", + "迭部县": "甘肃省甘南藏族自治州迭部县", + "玛曲县": "甘肃省甘南藏族自治州玛曲县", + "碌曲县": "甘肃省甘南藏族自治州碌曲县", + "夏河县": "甘肃省甘南藏族自治州夏河县", + "城东区": "青海省西宁市城东区", + "城西区": "青海省西宁市城西区", + "城北区": "青海省西宁市城北区", + "湟中区": "青海省西宁市湟中区", + "大通回族土族自治县": "青海省西宁市大通回族土族自治县", + "湟源县": "青海省西宁市湟源县", + "乐都区": "青海省海东市乐都区", + "平安区": "青海省海东市平安区", + "民和回族土族自治县": "青海省海东市民和回族土族自治县", + "互助土族自治县": "青海省海东市互助土族自治县", + "化隆回族自治县": "青海省海东市化隆回族自治县", + "循化撒拉族自治县": "青海省海东市循化撒拉族自治县", + "门源回族自治县": "青海省海北藏族自治州门源回族自治县", + "祁连县": "青海省海北藏族自治州祁连县", + "海晏县": "青海省海北藏族自治州海晏县", + "刚察县": "青海省海北藏族自治州刚察县", + "同仁市": "青海省黄南藏族自治州同仁市", + "尖扎县": "青海省黄南藏族自治州尖扎县", + "泽库县": "青海省黄南藏族自治州泽库县", + "河南蒙古族自治县": "青海省黄南藏族自治州河南蒙古族自治县", + "共和县": "青海省海南藏族自治州共和县", + "同德县": "青海省海南藏族自治州同德县", + "贵德县": "青海省海南藏族自治州贵德县", + "兴海县": "青海省海南藏族自治州兴海县", + "贵南县": "青海省海南藏族自治州贵南县", + "玛沁县": "青海省果洛藏族自治州玛沁县", + "班玛县": "青海省果洛藏族自治州班玛县", + "甘德县": "青海省果洛藏族自治州甘德县", + "达日县": "青海省果洛藏族自治州达日县", + "久治县": "青海省果洛藏族自治州久治县", + "玛多县": "青海省果洛藏族自治州玛多县", + "玉树市": "青海省玉树藏族自治州玉树市", + "杂多县": "青海省玉树藏族自治州杂多县", + "称多县": "青海省玉树藏族自治州称多县", + "治多县": "青海省玉树藏族自治州治多县", + "囊谦县": "青海省玉树藏族自治州囊谦县", + "曲麻莱县": "青海省玉树藏族自治州曲麻莱县", + "格尔木市": "青海省海西蒙古族藏族自治州格尔木市", + "德令哈市": "青海省海西蒙古族藏族自治州德令哈市", + "茫崖市": "青海省海西蒙古族藏族自治州茫崖市", + "乌兰县": "青海省海西蒙古族藏族自治州乌兰县", + "都兰县": "青海省海西蒙古族藏族自治州都兰县", + "天峻县": "青海省海西蒙古族藏族自治州天峻县", + "海西蒙古族藏族自治州直辖": "青海省海西蒙古族藏族自治州海西蒙古族藏族自治州直辖", + "兴庆区": "宁夏回族自治区银川市兴庆区", + "西夏区": "宁夏回族自治区银川市西夏区", + "金凤区": "宁夏回族自治区银川市金凤区", + "永宁县": "宁夏回族自治区银川市永宁县", + "贺兰县": "宁夏回族自治区银川市贺兰县", + "灵武市": "宁夏回族自治区银川市灵武市", + "大武口区": "宁夏回族自治区石嘴山市大武口区", + "惠农区": "宁夏回族自治区石嘴山市惠农区", + "平罗县": "宁夏回族自治区石嘴山市平罗县", + "利通区": "宁夏回族自治区吴忠市利通区", + "红寺堡区": "宁夏回族自治区吴忠市红寺堡区", + "盐池县": "宁夏回族自治区吴忠市盐池县", + "同心县": "宁夏回族自治区吴忠市同心县", + "青铜峡市": "宁夏回族自治区吴忠市青铜峡市", + "原州区": "宁夏回族自治区固原市原州区", + "西吉县": "宁夏回族自治区固原市西吉县", + "隆德县": "宁夏回族自治区固原市隆德县", + "泾源县": "宁夏回族自治区固原市泾源县", + "彭阳县": "宁夏回族自治区固原市彭阳县", + "沙坡头区": "宁夏回族自治区中卫市沙坡头区", + "中宁县": "宁夏回族自治区中卫市中宁县", + "海原县": "宁夏回族自治区中卫市海原县", + "天山区": "新疆维吾尔自治区乌鲁木齐市天山区", + "沙依巴克区": "新疆维吾尔自治区乌鲁木齐市沙依巴克区", + "新市区": "新疆维吾尔自治区乌鲁木齐市新市区", + "水磨沟区": "新疆维吾尔自治区乌鲁木齐市水磨沟区", + "头屯河区": "新疆维吾尔自治区乌鲁木齐市头屯河区", + "达坂城区": "新疆维吾尔自治区乌鲁木齐市达坂城区", + "米东区": "新疆维吾尔自治区乌鲁木齐市米东区", + "乌鲁木齐县": "新疆维吾尔自治区乌鲁木齐市乌鲁木齐县", + "独山子区": "新疆维吾尔自治区克拉玛依市独山子区", + "克拉玛依区": "新疆维吾尔自治区克拉玛依市克拉玛依区", + "白碱滩区": "新疆维吾尔自治区克拉玛依市白碱滩区", + "乌尔禾区": "新疆维吾尔自治区克拉玛依市乌尔禾区", + "高昌区": "新疆维吾尔自治区吐鲁番市高昌区", + "鄯善县": "新疆维吾尔自治区吐鲁番市鄯善县", + "托克逊县": "新疆维吾尔自治区吐鲁番市托克逊县", + "伊州区": "新疆维吾尔自治区哈密市伊州区", + "巴里坤哈萨克自治县": "新疆维吾尔自治区哈密市巴里坤哈萨克自治县", + "伊吾县": "新疆维吾尔自治区哈密市伊吾县", + "昌吉市": "新疆维吾尔自治区昌吉回族自治州昌吉市", + "阜康市": "新疆维吾尔自治区昌吉回族自治州阜康市", + "呼图壁县": "新疆维吾尔自治区昌吉回族自治州呼图壁县", + "玛纳斯县": "新疆维吾尔自治区昌吉回族自治州玛纳斯县", + "奇台县": "新疆维吾尔自治区昌吉回族自治州奇台县", + "吉木萨尔县": "新疆维吾尔自治区昌吉回族自治州吉木萨尔县", + "木垒哈萨克自治县": "新疆维吾尔自治区昌吉回族自治州木垒哈萨克自治县", + "博乐市": "新疆维吾尔自治区博尔塔拉蒙古自治州博乐市", + "阿拉山口市": "新疆维吾尔自治区博尔塔拉蒙古自治州阿拉山口市", + "精河县": "新疆维吾尔自治区博尔塔拉蒙古自治州精河县", + "温泉县": "新疆维吾尔自治区博尔塔拉蒙古自治州温泉县", + "库尔勒市": "新疆维吾尔自治区巴音郭楞蒙古自治州库尔勒市", + "轮台县": "新疆维吾尔自治区巴音郭楞蒙古自治州轮台县", + "尉犁县": "新疆维吾尔自治区巴音郭楞蒙古自治州尉犁县", + "若羌县": "新疆维吾尔自治区巴音郭楞蒙古自治州若羌县", + "且末县": "新疆维吾尔自治区巴音郭楞蒙古自治州且末县", + "焉耆回族自治县": "新疆维吾尔自治区巴音郭楞蒙古自治州焉耆回族自治县", + "和静县": "新疆维吾尔自治区巴音郭楞蒙古自治州和静县", + "和硕县": "新疆维吾尔自治区巴音郭楞蒙古自治州和硕县", + "博湖县": "新疆维吾尔自治区巴音郭楞蒙古自治州博湖县", + "阿克苏市": "新疆维吾尔自治区阿克苏地区阿克苏市", + "库车市": "新疆维吾尔自治区阿克苏地区库车市", + "温宿县": "新疆维吾尔自治区阿克苏地区温宿县", + "沙雅县": "新疆维吾尔自治区阿克苏地区沙雅县", + "新和县": "新疆维吾尔自治区阿克苏地区新和县", + "拜城县": "新疆维吾尔自治区阿克苏地区拜城县", + "乌什县": "新疆维吾尔自治区阿克苏地区乌什县", + "阿瓦提县": "新疆维吾尔自治区阿克苏地区阿瓦提县", + "柯坪县": "新疆维吾尔自治区阿克苏地区柯坪县", + "阿图什市": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿图什市", + "阿克陶县": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿克陶县", + "阿合奇县": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿合奇县", + "乌恰县": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州乌恰县", + "喀什市": "新疆维吾尔自治区喀什地区喀什市", + "疏附县": "新疆维吾尔自治区喀什地区疏附县", + "疏勒县": "新疆维吾尔自治区喀什地区疏勒县", + "英吉沙县": "新疆维吾尔自治区喀什地区英吉沙县", + "泽普县": "新疆维吾尔自治区喀什地区泽普县", + "莎车县": "新疆维吾尔自治区喀什地区莎车县", + "叶城县": "新疆维吾尔自治区喀什地区叶城县", + "麦盖提县": "新疆维吾尔自治区喀什地区麦盖提县", + "岳普湖县": "新疆维吾尔自治区喀什地区岳普湖县", + "伽师县": "新疆维吾尔自治区喀什地区伽师县", + "巴楚县": "新疆维吾尔自治区喀什地区巴楚县", + "塔什库尔干塔吉克自治县": "新疆维吾尔自治区喀什地区塔什库尔干塔吉克自治县", + "和田市": "新疆维吾尔自治区和田地区和田市", + "和田县": "新疆维吾尔自治区和田地区和田县", + "墨玉县": "新疆维吾尔自治区和田地区墨玉县", + "皮山县": "新疆维吾尔自治区和田地区皮山县", + "洛浦县": "新疆维吾尔自治区和田地区洛浦县", + "策勒县": "新疆维吾尔自治区和田地区策勒县", + "于田县": "新疆维吾尔自治区和田地区于田县", + "民丰县": "新疆维吾尔自治区和田地区民丰县", + "伊宁市": "新疆维吾尔自治区伊犁哈萨克自治州伊宁市", + "奎屯市": "新疆维吾尔自治区伊犁哈萨克自治州奎屯市", + "霍尔果斯市": "新疆维吾尔自治区伊犁哈萨克自治州霍尔果斯市", + "伊宁县": "新疆维吾尔自治区伊犁哈萨克自治州伊宁县", + "察布查尔锡伯自治县": "新疆维吾尔自治区伊犁哈萨克自治州察布查尔锡伯自治县", + "霍城县": "新疆维吾尔自治区伊犁哈萨克自治州霍城县", + "巩留县": "新疆维吾尔自治区伊犁哈萨克自治州巩留县", + "新源县": "新疆维吾尔自治区伊犁哈萨克自治州新源县", + "昭苏县": "新疆维吾尔自治区伊犁哈萨克自治州昭苏县", + "特克斯县": "新疆维吾尔自治区伊犁哈萨克自治州特克斯县", + "尼勒克县": "新疆维吾尔自治区伊犁哈萨克自治州尼勒克县", + "塔城市": "新疆维吾尔自治区塔城地区塔城市", + "乌苏市": "新疆维吾尔自治区塔城地区乌苏市", + "额敏县": "新疆维吾尔自治区塔城地区额敏县", + "沙湾市": "新疆维吾尔自治区塔城地区沙湾市", + "托里县": "新疆维吾尔自治区塔城地区托里县", + "裕民县": "新疆维吾尔自治区塔城地区裕民县", + "和布克赛尔蒙古自治县": "新疆维吾尔自治区塔城地区和布克赛尔蒙古自治县", + "阿勒泰市": "新疆维吾尔自治区阿勒泰地区阿勒泰市", + "布尔津县": "新疆维吾尔自治区阿勒泰地区布尔津县", + "富蕴县": "新疆维吾尔自治区阿勒泰地区富蕴县", + "福海县": "新疆维吾尔自治区阿勒泰地区福海县", + "哈巴河县": "新疆维吾尔自治区阿勒泰地区哈巴河县", + "青河县": "新疆维吾尔自治区阿勒泰地区青河县", + "吉木乃县": "新疆维吾尔自治区阿勒泰地区吉木乃县", + "石河子市": "新疆维吾尔自治区石河子市", + "阿拉尔市": "新疆维吾尔自治区阿拉尔市", + "图木舒克市": "新疆维吾尔自治区图木舒克市", + "五家渠市": "新疆维吾尔自治区五家渠市", + "北屯市": "新疆维吾尔自治区北屯市", + "铁门关市": "新疆维吾尔自治区铁门关市", + "双河市": "新疆维吾尔自治区双河市", + "可克达拉市": "新疆维吾尔自治区可克达拉市", + "昆玉市": "新疆维吾尔自治区昆玉市", + "胡杨河市": "新疆维吾尔自治区胡杨河市", + "中西区": "香港特别行政区中西区", + "湾仔区": "香港特别行政区湾仔区", + "南区": "香港特别行政区南区", + "油尖旺区": "香港特别行政区油尖旺区", + "深水埗区": "香港特别行政区深水埗区", + "九龙城区": "香港特别行政区九龙城区", + "黄大仙区": "香港特别行政区黄大仙区", + "观塘区": "香港特别行政区观塘区", + "荃湾区": "香港特别行政区荃湾区", + "屯门区": "香港特别行政区屯门区", + "元朗区": "香港特别行政区元朗区", + "北区": "香港特别行政区北区", + "大埔区": "香港特别行政区大埔区", + "西贡区": "香港特别行政区西贡区", + "沙田区": "香港特别行政区沙田区", + "葵青区": "香港特别行政区葵青区", + "离岛区": "香港特别行政区离岛区", + "花地玛堂区": "澳门特别行政区花地玛堂区", + "花王堂区": "澳门特别行政区花王堂区", + "望德堂区": "澳门特别行政区望德堂区", + "大堂区": "澳门特别行政区大堂区", + "风顺堂区": "澳门特别行政区风顺堂区", + "嘉模堂区": "澳门特别行政区嘉模堂区", + "路凼填海区": "澳门特别行政区路凼填海区", + "圣方济各堂区": "澳门特别行政区圣方济各堂区", + "东城": "北京市东城区", + "西城": "北京市西城区", + "丰台": "北京市丰台区", + "石景山": "北京市石景山区", + "海淀": "北京市海淀区", + "门头沟": "北京市门头沟区", + "房山": "北京市房山区", + "顺义": "北京市顺义区", + "昌平": "北京市昌平区", + "大兴": "北京市大兴区", + "怀柔": "北京市怀柔区", + "平谷": "北京市平谷区", + "密云": "北京市密云区", + "延庆": "北京市延庆区", + "河西": "天津市河西区", + "南开": "天津市南开区", + "红桥": "天津市红桥区", + "东丽": "天津市东丽区", + "西青": "天津市西青区", + "津南": "天津市津南区", + "北辰": "天津市北辰区", + "武清": "天津市武清区", + "宝坻": "天津市宝坻区", + "滨海新": "天津市滨海新区", + "宁河": "天津市宁河区", + "静海": "天津市静海区", + "蓟州": "天津市蓟州区", + "井陉矿": "河北省石家庄市井陉矿区", + "裕华": "河北省石家庄市裕华区", + "藁城": "河北省石家庄市藁城区", + "鹿泉": "河北省石家庄市鹿泉区", + "栾城": "河北省石家庄市栾城区", + "井陉": "河北省石家庄市井陉县", + "正定": "河北省石家庄市正定县", + "行唐": "河北省石家庄市行唐县", + "灵寿": "河北省石家庄市灵寿县", + "高邑": "河北省石家庄市高邑县", + "深泽": "河北省石家庄市深泽县", + "赞皇": "河北省石家庄市赞皇县", + "无极": "河北省石家庄市无极县", + "元氏": "河北省石家庄市元氏县", + "辛集": "河北省石家庄市辛集市", + "晋州": "河北省石家庄市晋州市", + "新乐": "河北省石家庄市新乐市", + "路南": "河北省唐山市路南区", + "路北": "河北省唐山市路北区", + "古冶": "河北省唐山市古冶区", + "丰南": "河北省唐山市丰南区", + "丰润": "河北省唐山市丰润区", + "曹妃甸": "河北省唐山市曹妃甸区", + "滦南": "河北省唐山市滦南县", + "乐亭": "河北省唐山市乐亭县", + "迁西": "河北省唐山市迁西县", + "玉田": "河北省唐山市玉田县", + "遵化": "河北省唐山市遵化市", + "迁安": "河北省唐山市迁安市", + "滦州": "河北省唐山市滦州市", + "海港": "河北省秦皇岛市海港区", + "山海关": "河北省秦皇岛市山海关区", + "北戴河": "河北省秦皇岛市北戴河区", + "抚宁": "河北省秦皇岛市抚宁区", + "昌黎": "河北省秦皇岛市昌黎县", + "卢龙": "河北省秦皇岛市卢龙县", + "邯山": "河北省邯郸市邯山区", + "丛台": "河北省邯郸市丛台区", + "复兴": "河北省邯郸市复兴区", + "峰峰矿": "河北省邯郸市峰峰矿区", + "肥乡": "河北省邯郸市肥乡区", + "永年": "河北省邯郸市永年区", + "临漳": "河北省邯郸市临漳县", + "成安": "河北省邯郸市成安县", + "大名": "河北省邯郸市大名县", + "鸡泽": "河北省邯郸市鸡泽县", + "广平": "河北省邯郸市广平县", + "馆陶": "河北省邯郸市馆陶县", + "曲周": "河北省邯郸市曲周县", + "武安": "河北省邯郸市武安市", + "襄都": "河北省邢台市襄都区", + "信都": "河北省邢台市信都区", + "任泽": "河北省邢台市任泽区", + "南和": "河北省邢台市南和区", + "临城": "河北省邢台市临城县", + "内丘": "河北省邢台市内丘县", + "柏乡": "河北省邢台市柏乡县", + "隆尧": "河北省邢台市隆尧县", + "宁晋": "河北省邢台市宁晋县", + "巨鹿": "河北省邢台市巨鹿县", + "新河": "河北省邢台市新河县", + "广宗": "河北省邢台市广宗县", + "平乡": "河北省邢台市平乡县", + "临西": "河北省邢台市临西县", + "南宫": "河北省邢台市南宫市", + "沙河": "河北省邢台市沙河市", + "竞秀": "河北省保定市竞秀区", + "莲池": "河北省保定市莲池区", + "满城": "河北省保定市满城区", + "清苑": "河北省保定市清苑区", + "徐水": "河北省保定市徐水区", + "涞水": "河北省保定市涞水县", + "阜平": "河北省保定市阜平县", + "定兴": "河北省保定市定兴县", + "高阳": "河北省保定市高阳县", + "容城": "河北省保定市容城县", + "涞源": "河北省保定市涞源县", + "望都": "河北省保定市望都县", + "安新": "河北省保定市安新县", + "曲阳": "河北省保定市曲阳县", + "顺平": "河北省保定市顺平县", + "博野": "河北省保定市博野县", + "涿州": "河北省保定市涿州市", + "定州": "河北省保定市定州市", + "安国": "河北省保定市安国市", + "高碑店": "河北省保定市高碑店市", + "桥东": "河北省张家口市桥东区", + "宣化": "河北省张家口市宣化区", + "下花园": "河北省张家口市下花园区", + "万全": "河北省张家口市万全区", + "崇礼": "河北省张家口市崇礼区", + "张北": "河北省张家口市张北县", + "康保": "河北省张家口市康保县", + "沽源": "河北省张家口市沽源县", + "尚义": "河北省张家口市尚义县", + "阳原": "河北省张家口市阳原县", + "怀安": "河北省张家口市怀安县", + "怀来": "河北省张家口市怀来县", + "涿鹿": "河北省张家口市涿鹿县", + "赤城": "河北省张家口市赤城县", + "双桥": "河北省承德市双桥区", + "双滦": "河北省承德市双滦区", + "鹰手营子矿": "河北省承德市鹰手营子矿区", + "兴隆": "河北省承德市兴隆县", + "滦平": "河北省承德市滦平县", + "隆化": "河北省承德市隆化县", + "平泉": "河北省承德市平泉市", + "运河": "河北省沧州市运河区", + "东光": "河北省沧州市东光县", + "海兴": "河北省沧州市海兴县", + "盐山": "河北省沧州市盐山县", + "肃宁": "河北省沧州市肃宁县", + "南皮": "河北省沧州市南皮县", + "吴桥": "河北省沧州市吴桥县", + "泊头": "河北省沧州市泊头市", + "任丘": "河北省沧州市任丘市", + "黄骅": "河北省沧州市黄骅市", + "河间": "河北省沧州市河间市", + "安次": "河北省廊坊市安次区", + "广阳": "河北省廊坊市广阳区", + "固安": "河北省廊坊市固安县", + "永清": "河北省廊坊市永清县", + "香河": "河北省廊坊市香河县", + "大城": "河北省廊坊市大城县", + "文安": "河北省廊坊市文安县", + "霸州": "河北省廊坊市霸州市", + "三河": "河北省廊坊市三河市", + "桃城": "河北省衡水市桃城区", + "冀州": "河北省衡水市冀州区", + "枣强": "河北省衡水市枣强县", + "武邑": "河北省衡水市武邑县", + "武强": "河北省衡水市武强县", + "饶阳": "河北省衡水市饶阳县", + "安平": "河北省衡水市安平县", + "故城": "河北省衡水市故城县", + "阜城": "河北省衡水市阜城县", + "深州": "河北省衡水市深州市", + "小店": "山西省太原市小店区", + "迎泽": "山西省太原市迎泽区", + "杏花岭": "山西省太原市杏花岭区", + "尖草坪": "山西省太原市尖草坪区", + "万柏": "山西省太原市万柏林区", + "晋源": "山西省太原市晋源区", + "清徐": "山西省太原市清徐县", + "阳曲": "山西省太原市阳曲县", + "娄烦": "山西省太原市娄烦县", + "古交": "山西省太原市古交市", + "新荣": "山西省大同市新荣区", + "平城": "山西省大同市平城区", + "云冈": "山西省大同市云冈区", + "云州": "山西省大同市云州区", + "阳高": "山西省大同市阳高县", + "天镇": "山西省大同市天镇县", + "广灵": "山西省大同市广灵县", + "灵丘": "山西省大同市灵丘县", + "浑源": "山西省大同市浑源县", + "左云": "山西省大同市左云县", + "平定": "山西省阳泉市平定县", + "潞州": "山西省长治市潞州区", + "上党": "山西省长治市上党区", + "屯留": "山西省长治市屯留区", + "潞城": "山西省长治市潞城区", + "襄垣": "山西省长治市襄垣县", + "平顺": "山西省长治市平顺县", + "黎城": "山西省长治市黎城县", + "壶关": "山西省长治市壶关县", + "长子": "山西省长治市长子县", + "武乡": "山西省长治市武乡县", + "沁源": "山西省长治市沁源县", + "沁水": "山西省晋城市沁水县", + "阳城": "山西省晋城市阳城县", + "陵川": "山西省晋城市陵川县", + "泽州": "山西省晋城市泽州县", + "高平": "山西省晋城市高平市", + "朔城": "山西省朔州市朔城区", + "平鲁": "山西省朔州市平鲁区", + "山阴": "山西省朔州市山阴县", + "右玉": "山西省朔州市右玉县", + "怀仁": "山西省朔州市怀仁市", + "榆次": "山西省晋中市榆次区", + "太谷": "山西省晋中市太谷区", + "榆社": "山西省晋中市榆社县", + "左权": "山西省晋中市左权县", + "和顺": "山西省晋中市和顺县", + "昔阳": "山西省晋中市昔阳县", + "寿阳": "山西省晋中市寿阳县", + "平遥": "山西省晋中市平遥县", + "灵石": "山西省晋中市灵石县", + "介休": "山西省晋中市介休市", + "盐湖": "山西省运城市盐湖区", + "临猗": "山西省运城市临猗县", + "万荣": "山西省运城市万荣县", + "闻喜": "山西省运城市闻喜县", + "稷山": "山西省运城市稷山县", + "新绛": "山西省运城市新绛县", + "垣曲": "山西省运城市垣曲县", + "平陆": "山西省运城市平陆县", + "芮城": "山西省运城市芮城县", + "永济": "山西省运城市永济市", + "河津": "山西省运城市河津市", + "忻府": "山西省忻州市忻府区", + "定襄": "山西省忻州市定襄县", + "五台": "山西省忻州市五台县", + "繁峙": "山西省忻州市繁峙县", + "宁武": "山西省忻州市宁武县", + "静乐": "山西省忻州市静乐县", + "神池": "山西省忻州市神池县", + "五寨": "山西省忻州市五寨县", + "岢岚": "山西省忻州市岢岚县", + "河曲": "山西省忻州市河曲县", + "保德": "山西省忻州市保德县", + "偏关": "山西省忻州市偏关县", + "原平": "山西省忻州市原平市", + "尧都": "山西省临汾市尧都区", + "曲沃": "山西省临汾市曲沃县", + "翼城": "山西省临汾市翼城县", + "襄汾": "山西省临汾市襄汾县", + "洪洞": "山西省临汾市洪洞县", + "安泽": "山西省临汾市安泽县", + "浮山": "山西省临汾市浮山县", + "乡宁": "山西省临汾市乡宁县", + "大宁": "山西省临汾市大宁县", + "永和": "山西省临汾市永和县", + "汾西": "山西省临汾市汾西县", + "侯马": "山西省临汾市侯马市", + "霍州": "山西省临汾市霍州市", + "离石": "山西省吕梁市离石区", + "文水": "山西省吕梁市文水县", + "交城": "山西省吕梁市交城县", + "柳林": "山西省吕梁市柳林县", + "石楼": "山西省吕梁市石楼县", + "方山": "山西省吕梁市方山县", + "中阳": "山西省吕梁市中阳县", + "交口": "山西省吕梁市交口县", + "孝义": "山西省吕梁市孝义市", + "汾阳": "山西省吕梁市汾阳市", + "回民": "内蒙古自治区呼和浩特市回民区", + "玉泉": "内蒙古自治区呼和浩特市玉泉区", + "赛罕": "内蒙古自治区呼和浩特市赛罕区", + "土默特左": "内蒙古自治区呼和浩特市土默特左旗", + "托克托": "内蒙古自治区呼和浩特市托克托县", + "和林格尔": "内蒙古自治区呼和浩特市和林格尔县", + "清水河": "内蒙古自治区呼和浩特市清水河县", + "武川": "内蒙古自治区呼和浩特市武川县", + "东河": "内蒙古自治区包头市东河区", + "昆都仑": "内蒙古自治区包头市昆都仑区", + "石拐": "内蒙古自治区包头市石拐区", + "白云鄂博矿": "内蒙古自治区包头市白云鄂博矿区", + "九原": "内蒙古自治区包头市九原区", + "土默特右": "内蒙古自治区包头市土默特右旗", + "固阳": "内蒙古自治区包头市固阳县", + "达尔罕茂明安联合": "内蒙古自治区包头市达尔罕茂明安联合旗", + "海勃湾": "内蒙古自治区乌海市海勃湾区", + "乌达": "内蒙古自治区乌海市乌达区", + "红山": "内蒙古自治区赤峰市红山区", + "元宝山": "内蒙古自治区赤峰市元宝山区", + "松山": "内蒙古自治区赤峰市松山区", + "阿鲁科尔沁": "内蒙古自治区赤峰市阿鲁科尔沁旗", + "巴林左": "内蒙古自治区赤峰市巴林左旗", + "巴林右": "内蒙古自治区赤峰市巴林右旗", + "林西": "内蒙古自治区赤峰市林西县", + "克什克腾": "内蒙古自治区赤峰市克什克腾旗", + "翁牛特": "内蒙古自治区赤峰市翁牛特旗", + "喀喇沁": "内蒙古自治区赤峰市喀喇沁旗", + "宁城": "内蒙古自治区赤峰市宁城县", + "敖汉": "内蒙古自治区赤峰市敖汉旗", + "科尔沁": "内蒙古自治区通辽市科尔沁区", + "科尔沁左翼中": "内蒙古自治区通辽市科尔沁左翼中旗", + "科尔沁左翼后": "内蒙古自治区通辽市科尔沁左翼后旗", + "开鲁": "内蒙古自治区通辽市开鲁县", + "库伦": "内蒙古自治区通辽市库伦旗", + "奈曼": "内蒙古自治区通辽市奈曼旗", + "扎鲁特": "内蒙古自治区通辽市扎鲁特旗", + "霍林郭勒": "内蒙古自治区通辽市霍林郭勒市", + "东胜": "内蒙古自治区鄂尔多斯市东胜区", + "康巴什": "内蒙古自治区鄂尔多斯市康巴什区", + "达拉特": "内蒙古自治区鄂尔多斯市达拉特旗", + "准格尔": "内蒙古自治区鄂尔多斯市准格尔旗", + "鄂托克前": "内蒙古自治区鄂尔多斯市鄂托克前旗", + "鄂托克": "内蒙古自治区鄂尔多斯市鄂托克旗", + "杭锦": "内蒙古自治区鄂尔多斯市杭锦旗", + "乌审": "内蒙古自治区鄂尔多斯市乌审旗", + "伊金霍洛": "内蒙古自治区鄂尔多斯市伊金霍洛旗", + "海拉尔": "内蒙古自治区呼伦贝尔市海拉尔区", + "扎赉诺尔": "内蒙古自治区呼伦贝尔市扎赉诺尔区", + "阿荣": "内蒙古自治区呼伦贝尔市阿荣旗", + "鄂伦春": "内蒙古自治区呼伦贝尔市鄂伦春自治旗", + "陈巴尔虎": "内蒙古自治区呼伦贝尔市陈巴尔虎旗", + "新巴尔虎左": "内蒙古自治区呼伦贝尔市新巴尔虎左旗", + "新巴尔虎右": "内蒙古自治区呼伦贝尔市新巴尔虎右旗", + "满洲里": "内蒙古自治区呼伦贝尔市满洲里市", + "牙克石": "内蒙古自治区呼伦贝尔市牙克石市", + "扎兰屯": "内蒙古自治区呼伦贝尔市扎兰屯市", + "额尔古纳": "内蒙古自治区呼伦贝尔市额尔古纳市", + "根河": "内蒙古自治区呼伦贝尔市根河市", + "临河": "内蒙古自治区巴彦淖尔市临河区", + "五原": "内蒙古自治区巴彦淖尔市五原县", + "磴口": "内蒙古自治区巴彦淖尔市磴口县", + "乌拉特前": "内蒙古自治区巴彦淖尔市乌拉特前旗", + "乌拉特中": "内蒙古自治区巴彦淖尔市乌拉特中旗", + "乌拉特后": "内蒙古自治区巴彦淖尔市乌拉特后旗", + "杭锦后": "内蒙古自治区巴彦淖尔市杭锦后旗", + "集宁": "内蒙古自治区乌兰察布市集宁区", + "卓资": "内蒙古自治区乌兰察布市卓资县", + "化德": "内蒙古自治区乌兰察布市化德县", + "兴和": "内蒙古自治区乌兰察布市兴和县", + "凉城": "内蒙古自治区乌兰察布市凉城县", + "察哈尔右翼前": "内蒙古自治区乌兰察布市察哈尔右翼前旗", + "察哈尔右翼中": "内蒙古自治区乌兰察布市察哈尔右翼中旗", + "察哈尔右翼后": "内蒙古自治区乌兰察布市察哈尔右翼后旗", + "四子王": "内蒙古自治区乌兰察布市四子王旗", + "丰镇": "内蒙古自治区乌兰察布市丰镇市", + "阿尔山": "内蒙古自治区兴安盟阿尔山市", + "科尔沁右翼前": "内蒙古自治区兴安盟科尔沁右翼前旗", + "科尔沁右翼中": "内蒙古自治区兴安盟科尔沁右翼中旗", + "扎赉特": "内蒙古自治区兴安盟扎赉特旗", + "突泉": "内蒙古自治区兴安盟突泉县", + "二连浩特": "内蒙古自治区锡林郭勒盟二连浩特市", + "阿巴嘎": "内蒙古自治区锡林郭勒盟阿巴嘎旗", + "苏尼特左": "内蒙古自治区锡林郭勒盟苏尼特左旗", + "苏尼特右": "内蒙古自治区锡林郭勒盟苏尼特右旗", + "东乌珠穆沁": "内蒙古自治区锡林郭勒盟东乌珠穆沁旗", + "西乌珠穆沁": "内蒙古自治区锡林郭勒盟西乌珠穆沁旗", + "太仆寺": "内蒙古自治区锡林郭勒盟太仆寺旗", + "镶黄": "内蒙古自治区锡林郭勒盟镶黄旗", + "正镶白": "内蒙古自治区锡林郭勒盟正镶白旗", + "正蓝": "内蒙古自治区锡林郭勒盟正蓝旗", + "多伦": "内蒙古自治区锡林郭勒盟多伦县", + "阿拉善左": "内蒙古自治区阿拉善盟阿拉善左旗", + "阿拉善右": "内蒙古自治区阿拉善盟阿拉善右旗", + "额济纳": "内蒙古自治区阿拉善盟额济纳旗", + "沈河": "辽宁省沈阳市沈河区", + "大东": "辽宁省沈阳市大东区", + "皇姑": "辽宁省沈阳市皇姑区", + "苏家屯": "辽宁省沈阳市苏家屯区", + "浑南": "辽宁省沈阳市浑南区", + "沈北新": "辽宁省沈阳市沈北新区", + "于洪": "辽宁省沈阳市于洪区", + "辽中": "辽宁省沈阳市辽中区", + "康平": "辽宁省沈阳市康平县", + "法库": "辽宁省沈阳市法库县", + "新民": "辽宁省沈阳市新民市", + "西岗": "辽宁省大连市西岗区", + "沙河口": "辽宁省大连市沙河口区", + "甘井子": "辽宁省大连市甘井子区", + "旅顺口": "辽宁省大连市旅顺口区", + "金州": "辽宁省大连市金州区", + "普兰店": "辽宁省大连市普兰店区", + "长海": "辽宁省大连市长海县", + "瓦房店": "辽宁省大连市瓦房店市", + "庄河": "辽宁省大连市庄河市", + "立山": "辽宁省鞍山市立山区", + "千山": "辽宁省鞍山市千山区", + "台安": "辽宁省鞍山市台安县", + "新抚": "辽宁省抚顺市新抚区", + "东洲": "辽宁省抚顺市东洲区", + "望花": "辽宁省抚顺市望花区", + "顺城": "辽宁省抚顺市顺城区", + "溪湖": "辽宁省本溪市溪湖区", + "明山": "辽宁省本溪市明山区", + "南芬": "辽宁省本溪市南芬区", + "元宝": "辽宁省丹东市元宝区", + "振兴": "辽宁省丹东市振兴区", + "振安": "辽宁省丹东市振安区", + "凤城": "辽宁省丹东市凤城市", + "古塔": "辽宁省锦州市古塔区", + "凌河": "辽宁省锦州市凌河区", + "黑山": "辽宁省锦州市黑山县", + "凌海": "辽宁省锦州市凌海市", + "北镇": "辽宁省锦州市北镇市", + "站前": "辽宁省营口市站前区", + "西市": "辽宁省营口市西市区", + "鲅鱼圈": "辽宁省营口市鲅鱼圈区", + "老边": "辽宁省营口市老边区", + "盖州": "辽宁省营口市盖州市", + "大石桥": "辽宁省营口市大石桥市", + "新邱": "辽宁省阜新市新邱区", + "太平": "辽宁省阜新市太平区", + "清河门": "辽宁省阜新市清河门区", + "细河": "辽宁省阜新市细河区", + "彰武": "辽宁省阜新市彰武县", + "白塔": "辽宁省辽阳市白塔区", + "文圣": "辽宁省辽阳市文圣区", + "宏伟": "辽宁省辽阳市宏伟区", + "弓长岭": "辽宁省辽阳市弓长岭区", + "太子河": "辽宁省辽阳市太子河区", + "灯塔": "辽宁省辽阳市灯塔市", + "双台子": "辽宁省盘锦市双台子区", + "兴隆台": "辽宁省盘锦市兴隆台区", + "大洼": "辽宁省盘锦市大洼区", + "盘山": "辽宁省盘锦市盘山县", + "银州": "辽宁省铁岭市银州区", + "西丰": "辽宁省铁岭市西丰县", + "昌图": "辽宁省铁岭市昌图县", + "调兵山": "辽宁省铁岭市调兵山市", + "开原": "辽宁省铁岭市开原市", + "双塔": "辽宁省朝阳市双塔区", + "龙城": "辽宁省朝阳市龙城区", + "建平": "辽宁省朝阳市建平县", + "北票": "辽宁省朝阳市北票市", + "凌源": "辽宁省朝阳市凌源市", + "连山": "辽宁省葫芦岛市连山区", + "南票": "辽宁省葫芦岛市南票区", + "绥中": "辽宁省葫芦岛市绥中县", + "建昌": "辽宁省葫芦岛市建昌县", + "兴城": "辽宁省葫芦岛市兴城市", + "南关": "吉林省长春市南关区", + "宽城": "吉林省长春市宽城区", + "二道": "吉林省长春市二道区", + "绿园": "吉林省长春市绿园区", + "双阳": "吉林省长春市双阳区", + "九台": "吉林省长春市九台区", + "农安": "吉林省长春市农安县", + "榆树": "吉林省长春市榆树市", + "德惠": "吉林省长春市德惠市", + "公主岭": "吉林省长春市公主岭市", + "龙潭": "吉林省吉林市龙潭区", + "船营": "吉林省吉林市船营区", + "丰满": "吉林省吉林市丰满区", + "永吉": "吉林省吉林市永吉县", + "蛟河": "吉林省吉林市蛟河市", + "桦甸": "吉林省吉林市桦甸市", + "舒兰": "吉林省吉林市舒兰市", + "磐石": "吉林省吉林市磐石市", + "双辽": "吉林省四平市双辽市", + "东丰": "吉林省辽源市东丰县", + "东辽": "吉林省辽源市东辽县", + "东昌": "吉林省通化市东昌区", + "二道江": "吉林省通化市二道江区", + "辉南": "吉林省通化市辉南县", + "柳河": "吉林省通化市柳河县", + "梅河口": "吉林省通化市梅河口市", + "集安": "吉林省通化市集安市", + "浑江": "吉林省白山市浑江区", + "江源": "吉林省白山市江源区", + "抚松": "吉林省白山市抚松县", + "靖宇": "吉林省白山市靖宇县", + "临江": "吉林省白山市临江市", + "宁江": "吉林省松原市宁江区", + "长岭": "吉林省松原市长岭县", + "乾安": "吉林省松原市乾安县", + "扶余": "吉林省松原市扶余市", + "洮北": "吉林省白城市洮北区", + "镇赉": "吉林省白城市镇赉县", + "通榆": "吉林省白城市通榆县", + "洮南": "吉林省白城市洮南市", + "图们": "吉林省延边朝鲜族自治州图们市", + "敦化": "吉林省延边朝鲜族自治州敦化市", + "珲春": "吉林省延边朝鲜族自治州珲春市", + "龙井": "吉林省延边朝鲜族自治州龙井市", + "和龙": "吉林省延边朝鲜族自治州和龙市", + "汪清": "吉林省延边朝鲜族自治州汪清县", + "安图": "吉林省延边朝鲜族自治州安图县", + "道里": "黑龙江省哈尔滨市道里区", + "南岗": "黑龙江省哈尔滨市南岗区", + "道外": "黑龙江省哈尔滨市道外区", + "平房": "黑龙江省哈尔滨市平房区", + "松北": "黑龙江省哈尔滨市松北区", + "香坊": "黑龙江省哈尔滨市香坊区", + "呼兰": "黑龙江省哈尔滨市呼兰区", + "阿城": "黑龙江省哈尔滨市阿城区", + "双城": "黑龙江省哈尔滨市双城区", + "依兰": "黑龙江省哈尔滨市依兰县", + "方正": "黑龙江省哈尔滨市方正县", + "巴彦": "黑龙江省哈尔滨市巴彦县", + "木兰": "黑龙江省哈尔滨市木兰县", + "通河": "黑龙江省哈尔滨市通河县", + "延寿": "黑龙江省哈尔滨市延寿县", + "尚志": "黑龙江省哈尔滨市尚志市", + "五常": "黑龙江省哈尔滨市五常市", + "龙沙": "黑龙江省齐齐哈尔市龙沙区", + "建华": "黑龙江省齐齐哈尔市建华区", + "铁锋": "黑龙江省齐齐哈尔市铁锋区", + "昂昂溪": "黑龙江省齐齐哈尔市昂昂溪区", + "富拉尔基": "黑龙江省齐齐哈尔市富拉尔基区", + "碾子山": "黑龙江省齐齐哈尔市碾子山区", + "梅里斯达斡尔族": "黑龙江省齐齐哈尔市梅里斯达斡尔族区", + "龙江": "黑龙江省齐齐哈尔市龙江县", + "依安": "黑龙江省齐齐哈尔市依安县", + "泰来": "黑龙江省齐齐哈尔市泰来县", + "富裕": "黑龙江省齐齐哈尔市富裕县", + "克山": "黑龙江省齐齐哈尔市克山县", + "克东": "黑龙江省齐齐哈尔市克东县", + "拜泉": "黑龙江省齐齐哈尔市拜泉县", + "讷河": "黑龙江省齐齐哈尔市讷河市", + "鸡冠": "黑龙江省鸡西市鸡冠区", + "恒山": "黑龙江省鸡西市恒山区", + "滴道": "黑龙江省鸡西市滴道区", + "城子河": "黑龙江省鸡西市城子河区", + "麻山": "黑龙江省鸡西市麻山区", + "鸡东": "黑龙江省鸡西市鸡东县", + "虎林": "黑龙江省鸡西市虎林市", + "密山": "黑龙江省鸡西市密山市", + "工农": "黑龙江省鹤岗市工农区", + "萝北": "黑龙江省鹤岗市萝北县", + "绥滨": "黑龙江省鹤岗市绥滨县", + "尖山": "黑龙江省双鸭山市尖山区", + "岭东": "黑龙江省双鸭山市岭东区", + "四方台": "黑龙江省双鸭山市四方台区", + "集贤": "黑龙江省双鸭山市集贤县", + "友谊": "黑龙江省双鸭山市友谊县", + "宝清": "黑龙江省双鸭山市宝清县", + "饶河": "黑龙江省双鸭山市饶河县", + "萨尔图": "黑龙江省大庆市萨尔图区", + "龙凤": "黑龙江省大庆市龙凤区", + "让胡路": "黑龙江省大庆市让胡路区", + "红岗": "黑龙江省大庆市红岗区", + "肇州": "黑龙江省大庆市肇州县", + "肇源": "黑龙江省大庆市肇源县", + "林甸": "黑龙江省大庆市林甸县", + "伊美": "黑龙江省伊春市伊美区", + "乌翠": "黑龙江省伊春市乌翠区", + "友好": "黑龙江省伊春市友好区", + "嘉荫": "黑龙江省伊春市嘉荫县", + "汤旺": "黑龙江省伊春市汤旺县", + "丰林": "黑龙江省伊春市丰林县", + "大箐山": "黑龙江省伊春市大箐山县", + "南岔": "黑龙江省伊春市南岔县", + "铁力": "黑龙江省伊春市铁力市", + "前进": "黑龙江省佳木斯市前进区", + "东风": "黑龙江省佳木斯市东风区", + "桦南": "黑龙江省佳木斯市桦南县", + "桦川": "黑龙江省佳木斯市桦川县", + "汤原": "黑龙江省佳木斯市汤原县", + "同江": "黑龙江省佳木斯市同江市", + "富锦": "黑龙江省佳木斯市富锦市", + "抚远": "黑龙江省佳木斯市抚远市", + "桃山": "黑龙江省七台河市桃山区", + "茄子河": "黑龙江省七台河市茄子河区", + "勃利": "黑龙江省七台河市勃利县", + "阳明": "黑龙江省牡丹江市阳明区", + "爱民": "黑龙江省牡丹江市爱民区", + "林口": "黑龙江省牡丹江市林口县", + "绥芬河": "黑龙江省牡丹江市绥芬河市", + "海林": "黑龙江省牡丹江市海林市", + "宁安": "黑龙江省牡丹江市宁安市", + "穆棱": "黑龙江省牡丹江市穆棱市", + "东宁": "黑龙江省牡丹江市东宁市", + "爱辉": "黑龙江省黑河市爱辉区", + "逊克": "黑龙江省黑河市逊克县", + "孙吴": "黑龙江省黑河市孙吴县", + "北安": "黑龙江省黑河市北安市", + "五大连池": "黑龙江省黑河市五大连池市", + "嫩江": "黑龙江省黑河市嫩江市", + "望奎": "黑龙江省绥化市望奎县", + "兰西": "黑龙江省绥化市兰西县", + "青冈": "黑龙江省绥化市青冈县", + "庆安": "黑龙江省绥化市庆安县", + "明水": "黑龙江省绥化市明水县", + "绥棱": "黑龙江省绥化市绥棱县", + "安达": "黑龙江省绥化市安达市", + "肇东": "黑龙江省绥化市肇东市", + "海伦": "黑龙江省绥化市海伦市", + "漠河": "黑龙江省大兴安岭地区漠河市", + "加格达奇": "黑龙江省大兴安岭地区加格达奇区", + "呼玛": "黑龙江省大兴安岭地区呼玛县", + "塔河": "黑龙江省大兴安岭地区塔河县", + "黄浦": "上海市黄浦区", + "徐汇": "上海市徐汇区", + "静安": "上海市静安区", + "虹口": "上海市虹口区", + "杨浦": "上海市杨浦区", + "闵行": "上海市闵行区", + "嘉定": "上海市嘉定区", + "浦东新": "上海市浦东新区", + "金山": "上海市金山区", + "松江": "上海市松江区", + "青浦": "上海市青浦区", + "奉贤": "上海市奉贤区", + "崇明": "上海市崇明区", + "玄武": "江苏省南京市玄武区", + "秦淮": "江苏省南京市秦淮区", + "建邺": "江苏省南京市建邺区", + "浦口": "江苏省南京市浦口区", + "雨花台": "江苏省南京市雨花台区", + "江宁": "江苏省南京市江宁区", + "六合": "江苏省南京市六合区", + "溧水": "江苏省南京市溧水区", + "高淳": "江苏省南京市高淳区", + "锡山": "江苏省无锡市锡山区", + "惠山": "江苏省无锡市惠山区", + "滨湖": "江苏省无锡市滨湖区", + "梁溪": "江苏省无锡市梁溪区", + "新吴": "江苏省无锡市新吴区", + "江阴": "江苏省无锡市江阴市", + "宜兴": "江苏省无锡市宜兴市", + "贾汪": "江苏省徐州市贾汪区", + "泉山": "江苏省徐州市泉山区", + "铜山": "江苏省徐州市铜山区", + "睢宁": "江苏省徐州市睢宁县", + "新沂": "江苏省徐州市新沂市", + "邳州": "江苏省徐州市邳州市", + "天宁": "江苏省常州市天宁区", + "钟楼": "江苏省常州市钟楼区", + "新北": "江苏省常州市新北区", + "武进": "江苏省常州市武进区", + "金坛": "江苏省常州市金坛区", + "溧阳": "江苏省常州市溧阳市", + "虎丘": "江苏省苏州市虎丘区", + "吴中": "江苏省苏州市吴中区", + "相城": "江苏省苏州市相城区", + "吴江": "江苏省苏州市吴江区", + "常熟": "江苏省苏州市常熟市", + "张家港": "江苏省苏州市张家港市", + "昆山": "江苏省苏州市昆山市", + "太仓": "江苏省苏州市太仓市", + "崇川": "江苏省南通市崇川区", + "如东": "江苏省南通市如东县", + "启东": "江苏省南通市启东市", + "如皋": "江苏省南通市如皋市", + "海门": "江苏省南通市海门区", + "海安": "江苏省南通市海安市", + "连云": "江苏省连云港市连云区", + "赣榆": "江苏省连云港市赣榆区", + "东海": "江苏省连云港市东海县", + "灌云": "江苏省连云港市灌云县", + "灌南": "江苏省连云港市灌南县", + "淮阴": "江苏省淮安市淮阴区", + "清江浦": "江苏省淮安市清江浦区", + "洪泽": "江苏省淮安市洪泽区", + "涟水": "江苏省淮安市涟水县", + "盱眙": "江苏省淮安市盱眙县", + "金湖": "江苏省淮安市金湖县", + "亭湖": "江苏省盐城市亭湖区", + "大丰": "江苏省盐城市大丰区", + "响水": "江苏省盐城市响水县", + "滨海": "江苏省盐城市滨海县", + "阜宁": "江苏省盐城市阜宁县", + "射阳": "江苏省盐城市射阳县", + "建湖": "江苏省盐城市建湖县", + "东台": "江苏省盐城市东台市", + "广陵": "江苏省扬州市广陵区", + "邗江": "江苏省扬州市邗江区", + "江都": "江苏省扬州市江都区", + "宝应": "江苏省扬州市宝应县", + "仪征": "江苏省扬州市仪征市", + "高邮": "江苏省扬州市高邮市", + "京口": "江苏省镇江市京口区", + "润州": "江苏省镇江市润州区", + "丹徒": "江苏省镇江市丹徒区", + "丹阳": "江苏省镇江市丹阳市", + "扬中": "江苏省镇江市扬中市", + "句容": "江苏省镇江市句容市", + "海陵": "江苏省泰州市海陵区", + "高港": "江苏省泰州市高港区", + "姜堰": "江苏省泰州市姜堰区", + "兴化": "江苏省泰州市兴化市", + "靖江": "江苏省泰州市靖江市", + "泰兴": "江苏省泰州市泰兴市", + "宿城": "江苏省宿迁市宿城区", + "宿豫": "江苏省宿迁市宿豫区", + "沭阳": "江苏省宿迁市沭阳县", + "泗阳": "江苏省宿迁市泗阳县", + "泗洪": "江苏省宿迁市泗洪县", + "上城": "浙江省杭州市上城区", + "拱墅": "浙江省杭州市拱墅区", + "滨江": "浙江省杭州市滨江区", + "萧山": "浙江省杭州市萧山区", + "余杭": "浙江省杭州市余杭区", + "富阳": "浙江省杭州市富阳区", + "临安": "浙江省杭州市临安区", + "钱塘": "浙江省杭州市钱塘区", + "临平": "浙江省杭州市临平区", + "桐庐": "浙江省杭州市桐庐县", + "淳安": "浙江省杭州市淳安县", + "建德": "浙江省杭州市建德市", + "海曙": "浙江省宁波市海曙区", + "北仑": "浙江省宁波市北仑区", + "镇海": "浙江省宁波市镇海区", + "鄞州": "浙江省宁波市鄞州区", + "奉化": "浙江省宁波市奉化区", + "宁海": "浙江省宁波市宁海县", + "余姚": "浙江省宁波市余姚市", + "慈溪": "浙江省宁波市慈溪市", + "龙湾": "浙江省温州市龙湾区", + "瓯海": "浙江省温州市瓯海区", + "洞头": "浙江省温州市洞头区", + "永嘉": "浙江省温州市永嘉县", + "平阳": "浙江省温州市平阳县", + "苍南": "浙江省温州市苍南县", + "文成": "浙江省温州市文成县", + "泰顺": "浙江省温州市泰顺县", + "瑞安": "浙江省温州市瑞安市", + "乐清": "浙江省温州市乐清市", + "南湖": "浙江省嘉兴市南湖区", + "秀洲": "浙江省嘉兴市秀洲区", + "嘉善": "浙江省嘉兴市嘉善县", + "海盐": "浙江省嘉兴市海盐县", + "海宁": "浙江省嘉兴市海宁市", + "平湖": "浙江省嘉兴市平湖市", + "桐乡": "浙江省嘉兴市桐乡市", + "吴兴": "浙江省湖州市吴兴区", + "南浔": "浙江省湖州市南浔区", + "德清": "浙江省湖州市德清县", + "长兴": "浙江省湖州市长兴县", + "安吉": "浙江省湖州市安吉县", + "越城": "浙江省绍兴市越城区", + "柯桥": "浙江省绍兴市柯桥区", + "上虞": "浙江省绍兴市上虞区", + "新昌": "浙江省绍兴市新昌县", + "诸暨": "浙江省绍兴市诸暨市", + "嵊州": "浙江省绍兴市嵊州市", + "婺城": "浙江省金华市婺城区", + "金东": "浙江省金华市金东区", + "武义": "浙江省金华市武义县", + "浦江": "浙江省金华市浦江县", + "磐安": "浙江省金华市磐安县", + "兰溪": "浙江省金华市兰溪市", + "义乌": "浙江省金华市义乌市", + "东阳": "浙江省金华市东阳市", + "永康": "浙江省金华市永康市", + "柯城": "浙江省衢州市柯城区", + "衢江": "浙江省衢州市衢江区", + "常山": "浙江省衢州市常山县", + "开化": "浙江省衢州市开化县", + "龙游": "浙江省衢州市龙游县", + "江山": "浙江省衢州市江山市", + "定海": "浙江省舟山市定海区", + "岱山": "浙江省舟山市岱山县", + "嵊泗": "浙江省舟山市嵊泗县", + "椒江": "浙江省台州市椒江区", + "黄岩": "浙江省台州市黄岩区", + "路桥": "浙江省台州市路桥区", + "三门": "浙江省台州市三门县", + "天台": "浙江省台州市天台县", + "仙居": "浙江省台州市仙居县", + "温岭": "浙江省台州市温岭市", + "临海": "浙江省台州市临海市", + "玉环": "浙江省台州市玉环市", + "莲都": "浙江省丽水市莲都区", + "青田": "浙江省丽水市青田县", + "缙云": "浙江省丽水市缙云县", + "遂昌": "浙江省丽水市遂昌县", + "松阳": "浙江省丽水市松阳县", + "云和": "浙江省丽水市云和县", + "庆元": "浙江省丽水市庆元县", + "龙泉": "浙江省丽水市龙泉市", + "瑶海": "安徽省合肥市瑶海区", + "庐阳": "安徽省合肥市庐阳区", + "蜀山": "安徽省合肥市蜀山区", + "包河": "安徽省合肥市包河区", + "长丰": "安徽省合肥市长丰县", + "肥东": "安徽省合肥市肥东县", + "肥西": "安徽省合肥市肥西县", + "庐江": "安徽省合肥市庐江县", + "巢湖": "安徽省合肥市巢湖市", + "镜湖": "安徽省芜湖市镜湖区", + "鸠江": "安徽省芜湖市鸠江区", + "弋江": "安徽省芜湖市弋江区", + "湾沚": "安徽省芜湖市湾沚区", + "繁昌": "安徽省芜湖市繁昌区", + "南陵": "安徽省芜湖市南陵县", + "无为": "安徽省芜湖市无为市", + "龙子湖": "安徽省蚌埠市龙子湖区", + "蚌山": "安徽省蚌埠市蚌山区", + "禹会": "安徽省蚌埠市禹会区", + "淮上": "安徽省蚌埠市淮上区", + "怀远": "安徽省蚌埠市怀远县", + "五河": "安徽省蚌埠市五河县", + "固镇": "安徽省蚌埠市固镇县", + "大通": "安徽省淮南市大通区", + "田家庵": "安徽省淮南市田家庵区", + "谢家集": "安徽省淮南市谢家集区", + "八公山": "安徽省淮南市八公山区", + "潘集": "安徽省淮南市潘集区", + "凤台": "安徽省淮南市凤台县", + "花山": "安徽省马鞍山市花山区", + "雨山": "安徽省马鞍山市雨山区", + "博望": "安徽省马鞍山市博望区", + "当涂": "安徽省马鞍山市当涂县", + "含山": "安徽省马鞍山市含山县", + "杜集": "安徽省淮北市杜集区", + "相山": "安徽省淮北市相山区", + "烈山": "安徽省淮北市烈山区", + "濉溪": "安徽省淮北市濉溪县", + "铜官": "安徽省铜陵市铜官区", + "义安": "安徽省铜陵市义安区", + "枞阳": "安徽省铜陵市枞阳县", + "迎江": "安徽省安庆市迎江区", + "大观": "安徽省安庆市大观区", + "宜秀": "安徽省安庆市宜秀区", + "怀宁": "安徽省安庆市怀宁县", + "太湖": "安徽省安庆市太湖县", + "宿松": "安徽省安庆市宿松县", + "望江": "安徽省安庆市望江县", + "岳西": "安徽省安庆市岳西县", + "桐城": "安徽省安庆市桐城市", + "潜山": "安徽省安庆市潜山市", + "屯溪": "安徽省黄山市屯溪区", + "徽州": "安徽省黄山市徽州区", + "休宁": "安徽省黄山市休宁县", + "祁门": "安徽省黄山市祁门县", + "琅琊": "安徽省滁州市琅琊区", + "南谯": "安徽省滁州市南谯区", + "来安": "安徽省滁州市来安县", + "全椒": "安徽省滁州市全椒县", + "定远": "安徽省滁州市定远县", + "凤阳": "安徽省滁州市凤阳县", + "天长": "安徽省滁州市天长市", + "明光": "安徽省滁州市明光市", + "颍州": "安徽省阜阳市颍州区", + "颍东": "安徽省阜阳市颍东区", + "颍泉": "安徽省阜阳市颍泉区", + "临泉": "安徽省阜阳市临泉县", + "阜南": "安徽省阜阳市阜南县", + "颍上": "安徽省阜阳市颍上县", + "界首": "安徽省阜阳市界首市", + "埇桥": "安徽省宿州市埇桥区", + "砀山": "安徽省宿州市砀山县", + "灵璧": "安徽省宿州市灵璧县", + "金安": "安徽省六安市金安区", + "裕安": "安徽省六安市裕安区", + "叶集": "安徽省六安市叶集区", + "霍邱": "安徽省六安市霍邱县", + "舒城": "安徽省六安市舒城县", + "金寨": "安徽省六安市金寨县", + "霍山": "安徽省六安市霍山县", + "谯城": "安徽省亳州市谯城区", + "涡阳": "安徽省亳州市涡阳县", + "蒙城": "安徽省亳州市蒙城县", + "利辛": "安徽省亳州市利辛县", + "贵池": "安徽省池州市贵池区", + "东至": "安徽省池州市东至县", + "石台": "安徽省池州市石台县", + "青阳": "安徽省池州市青阳县", + "宣州": "安徽省宣城市宣州区", + "郎溪": "安徽省宣城市郎溪县", + "绩溪": "安徽省宣城市绩溪县", + "旌德": "安徽省宣城市旌德县", + "宁国": "安徽省宣城市宁国市", + "广德": "安徽省宣城市广德市", + "仓山": "福建省福州市仓山区", + "马尾": "福建省福州市马尾区", + "晋安": "福建省福州市晋安区", + "长乐": "福建省福州市长乐区", + "闽侯": "福建省福州市闽侯县", + "连江": "福建省福州市连江县", + "罗源": "福建省福州市罗源县", + "闽清": "福建省福州市闽清县", + "永泰": "福建省福州市永泰县", + "平潭": "福建省福州市平潭县", + "福清": "福建省福州市福清市", + "思明": "福建省厦门市思明区", + "海沧": "福建省厦门市海沧区", + "湖里": "福建省厦门市湖里区", + "集美": "福建省厦门市集美区", + "同安": "福建省厦门市同安区", + "翔安": "福建省厦门市翔安区", + "城厢": "福建省莆田市城厢区", + "涵江": "福建省莆田市涵江区", + "荔城": "福建省莆田市荔城区", + "秀屿": "福建省莆田市秀屿区", + "仙游": "福建省莆田市仙游县", + "三元": "福建省三明市三元区", + "明溪": "福建省三明市明溪县", + "清流": "福建省三明市清流县", + "宁化": "福建省三明市宁化县", + "大田": "福建省三明市大田县", + "尤溪": "福建省三明市尤溪县", + "沙县": "福建省三明市沙县区", + "将乐": "福建省三明市将乐县", + "泰宁": "福建省三明市泰宁县", + "建宁": "福建省三明市建宁县", + "永安": "福建省三明市永安市", + "鲤城": "福建省泉州市鲤城区", + "丰泽": "福建省泉州市丰泽区", + "洛江": "福建省泉州市洛江区", + "泉港": "福建省泉州市泉港区", + "惠安": "福建省泉州市惠安县", + "安溪": "福建省泉州市安溪县", + "永春": "福建省泉州市永春县", + "德化": "福建省泉州市德化县", + "金门": "福建省泉州市金门县", + "石狮": "福建省泉州市石狮市", + "晋江": "福建省泉州市晋江市", + "南安": "福建省泉州市南安市", + "芗城": "福建省漳州市芗城区", + "龙文": "福建省漳州市龙文区", + "云霄": "福建省漳州市云霄县", + "漳浦": "福建省漳州市漳浦县", + "诏安": "福建省漳州市诏安县", + "长泰": "福建省漳州市长泰区", + "南靖": "福建省漳州市南靖县", + "平和": "福建省漳州市平和县", + "华安": "福建省漳州市华安县", + "龙海": "福建省漳州市龙海区", + "延平": "福建省南平市延平区", + "建阳": "福建省南平市建阳区", + "顺昌": "福建省南平市顺昌县", + "浦城": "福建省南平市浦城县", + "光泽": "福建省南平市光泽县", + "松溪": "福建省南平市松溪县", + "政和": "福建省南平市政和县", + "邵武": "福建省南平市邵武市", + "武夷山": "福建省南平市武夷山市", + "建瓯": "福建省南平市建瓯市", + "新罗": "福建省龙岩市新罗区", + "长汀": "福建省龙岩市长汀县", + "上杭": "福建省龙岩市上杭县", + "武平": "福建省龙岩市武平县", + "连城": "福建省龙岩市连城县", + "漳平": "福建省龙岩市漳平市", + "蕉城": "福建省宁德市蕉城区", + "霞浦": "福建省宁德市霞浦县", + "古田": "福建省宁德市古田县", + "屏南": "福建省宁德市屏南县", + "寿宁": "福建省宁德市寿宁县", + "周宁": "福建省宁德市周宁县", + "柘荣": "福建省宁德市柘荣县", + "福安": "福建省宁德市福安市", + "福鼎": "福建省宁德市福鼎市", + "东湖": "江西省南昌市东湖区", + "青云谱": "江西省南昌市青云谱区", + "青山湖": "江西省南昌市青山湖区", + "新建": "江西省南昌市新建区", + "红谷滩": "江西省南昌市红谷滩区", + "安义": "江西省南昌市安义县", + "进贤": "江西省南昌市进贤县", + "昌江": "江西省景德镇市昌江区", + "珠山": "江西省景德镇市珠山区", + "浮梁": "江西省景德镇市浮梁县", + "乐平": "江西省景德镇市乐平市", + "安源": "江西省萍乡市安源区", + "湘东": "江西省萍乡市湘东区", + "莲花": "江西省萍乡市莲花县", + "上栗": "江西省萍乡市上栗县", + "芦溪": "江西省萍乡市芦溪县", + "濂溪": "江西省九江市濂溪区", + "浔阳": "江西省九江市浔阳区", + "柴桑": "江西省九江市柴桑区", + "武宁": "江西省九江市武宁县", + "修水": "江西省九江市修水县", + "永修": "江西省九江市永修县", + "德安": "江西省九江市德安县", + "都昌": "江西省九江市都昌县", + "湖口": "江西省九江市湖口县", + "彭泽": "江西省九江市彭泽县", + "瑞昌": "江西省九江市瑞昌市", + "共青城": "江西省九江市共青城市", + "庐山": "江西省九江市庐山市", + "渝水": "江西省新余市渝水区", + "分宜": "江西省新余市分宜县", + "月湖": "江西省鹰潭市月湖区", + "余江": "江西省鹰潭市余江区", + "贵溪": "江西省鹰潭市贵溪市", + "章贡": "江西省赣州市章贡区", + "南康": "江西省赣州市南康区", + "赣县": "江西省赣州市赣县区", + "信丰": "江西省赣州市信丰县", + "大余": "江西省赣州市大余县", + "上犹": "江西省赣州市上犹县", + "崇义": "江西省赣州市崇义县", + "安远": "江西省赣州市安远县", + "定南": "江西省赣州市定南县", + "全南": "江西省赣州市全南县", + "宁都": "江西省赣州市宁都县", + "于都": "江西省赣州市于都县", + "兴国": "江西省赣州市兴国县", + "会昌": "江西省赣州市会昌县", + "寻乌": "江西省赣州市寻乌县", + "石城": "江西省赣州市石城县", + "瑞金": "江西省赣州市瑞金市", + "龙南": "江西省赣州市龙南市", + "吉州": "江西省吉安市吉州区", + "青原": "江西省吉安市青原区", + "吉水": "江西省吉安市吉水县", + "峡江": "江西省吉安市峡江县", + "新干": "江西省吉安市新干县", + "永丰": "江西省吉安市永丰县", + "泰和": "江西省吉安市泰和县", + "遂川": "江西省吉安市遂川县", + "万安": "江西省吉安市万安县", + "安福": "江西省吉安市安福县", + "永新": "江西省吉安市永新县", + "井冈山": "江西省吉安市井冈山市", + "袁州": "江西省宜春市袁州区", + "奉新": "江西省宜春市奉新县", + "万载": "江西省宜春市万载县", + "上高": "江西省宜春市上高县", + "宜丰": "江西省宜春市宜丰县", + "靖安": "江西省宜春市靖安县", + "铜鼓": "江西省宜春市铜鼓县", + "丰城": "江西省宜春市丰城市", + "樟树": "江西省宜春市樟树市", + "高安": "江西省宜春市高安市", + "临川": "江西省抚州市临川区", + "东乡": "江西省抚州市东乡区", + "南城": "江西省抚州市南城县", + "黎川": "江西省抚州市黎川县", + "南丰": "江西省抚州市南丰县", + "崇仁": "江西省抚州市崇仁县", + "乐安": "江西省抚州市乐安县", + "宜黄": "江西省抚州市宜黄县", + "金溪": "江西省抚州市金溪县", + "资溪": "江西省抚州市资溪县", + "广昌": "江西省抚州市广昌县", + "信州": "江西省上饶市信州区", + "广丰": "江西省上饶市广丰区", + "广信": "江西省上饶市广信区", + "玉山": "江西省上饶市玉山县", + "铅山": "江西省上饶市铅山县", + "横峰": "江西省上饶市横峰县", + "弋阳": "江西省上饶市弋阳县", + "余干": "江西省上饶市余干县", + "鄱阳": "江西省上饶市鄱阳县", + "万年": "江西省上饶市万年县", + "婺源": "江西省上饶市婺源县", + "德兴": "江西省上饶市德兴市", + "历下": "山东省济南市历下区", + "槐荫": "山东省济南市槐荫区", + "天桥": "山东省济南市天桥区", + "历城": "山东省济南市历城区", + "长清": "山东省济南市长清区", + "章丘": "山东省济南市章丘区", + "济阳": "山东省济南市济阳区", + "莱芜": "山东省济南市莱芜区", + "钢城": "山东省济南市钢城区", + "平阴": "山东省济南市平阴县", + "商河": "山东省济南市商河县", + "市南": "山东省青岛市市南区", + "市北": "山东省青岛市市北区", + "黄岛": "山东省青岛市黄岛区", + "崂山": "山东省青岛市崂山区", + "李沧": "山东省青岛市李沧区", + "城阳": "山东省青岛市城阳区", + "即墨": "山东省青岛市即墨区", + "胶州": "山东省青岛市胶州市", + "平度": "山东省青岛市平度市", + "莱西": "山东省青岛市莱西市", + "淄川": "山东省淄博市淄川区", + "张店": "山东省淄博市张店区", + "博山": "山东省淄博市博山区", + "临淄": "山东省淄博市临淄区", + "周村": "山东省淄博市周村区", + "桓台": "山东省淄博市桓台县", + "高青": "山东省淄博市高青县", + "沂源": "山东省淄博市沂源县", + "薛城": "山东省枣庄市薛城区", + "峄城": "山东省枣庄市峄城区", + "台儿庄": "山东省枣庄市台儿庄区", + "山亭": "山东省枣庄市山亭区", + "滕州": "山东省枣庄市滕州市", + "河口": "山东省东营市河口区", + "垦利": "山东省东营市垦利区", + "利津": "山东省东营市利津县", + "广饶": "山东省东营市广饶县", + "芝罘": "山东省烟台市芝罘区", + "福山": "山东省烟台市福山区", + "牟平": "山东省烟台市牟平区", + "莱山": "山东省烟台市莱山区", + "蓬莱": "山东省烟台市蓬莱区", + "龙口": "山东省烟台市龙口市", + "莱阳": "山东省烟台市莱阳市", + "莱州": "山东省烟台市莱州市", + "招远": "山东省烟台市招远市", + "海阳": "山东省烟台市海阳市", + "潍城": "山东省潍坊市潍城区", + "寒亭": "山东省潍坊市寒亭区", + "坊子": "山东省潍坊市坊子区", + "奎文": "山东省潍坊市奎文区", + "临朐": "山东省潍坊市临朐县", + "昌乐": "山东省潍坊市昌乐县", + "青州": "山东省潍坊市青州市", + "诸城": "山东省潍坊市诸城市", + "寿光": "山东省潍坊市寿光市", + "安丘": "山东省潍坊市安丘市", + "高密": "山东省潍坊市高密市", + "任城": "山东省济宁市任城区", + "兖州": "山东省济宁市兖州区", + "微山": "山东省济宁市微山县", + "鱼台": "山东省济宁市鱼台县", + "金乡": "山东省济宁市金乡县", + "嘉祥": "山东省济宁市嘉祥县", + "汶上": "山东省济宁市汶上县", + "泗水": "山东省济宁市泗水县", + "梁山": "山东省济宁市梁山县", + "曲阜": "山东省济宁市曲阜市", + "邹城": "山东省济宁市邹城市", + "泰山": "山东省泰安市泰山区", + "岱岳": "山东省泰安市岱岳区", + "宁阳": "山东省泰安市宁阳县", + "东平": "山东省泰安市东平县", + "新泰": "山东省泰安市新泰市", + "肥城": "山东省泰安市肥城市", + "环翠": "山东省威海市环翠区", + "文登": "山东省威海市文登区", + "荣成": "山东省威海市荣成市", + "乳山": "山东省威海市乳山市", + "岚山": "山东省日照市岚山区", + "五莲": "山东省日照市五莲县", + "兰山": "山东省临沂市兰山区", + "罗庄": "山东省临沂市罗庄区", + "沂南": "山东省临沂市沂南县", + "郯城": "山东省临沂市郯城县", + "沂水": "山东省临沂市沂水县", + "兰陵": "山东省临沂市兰陵县", + "平邑": "山东省临沂市平邑县", + "莒南": "山东省临沂市莒南县", + "蒙阴": "山东省临沂市蒙阴县", + "临沭": "山东省临沂市临沭县", + "德城": "山东省德州市德城区", + "陵城": "山东省德州市陵城区", + "宁津": "山东省德州市宁津县", + "庆云": "山东省德州市庆云县", + "临邑": "山东省德州市临邑县", + "齐河": "山东省德州市齐河县", + "平原": "山东省德州市平原县", + "夏津": "山东省德州市夏津县", + "武城": "山东省德州市武城县", + "乐陵": "山东省德州市乐陵市", + "禹城": "山东省德州市禹城市", + "东昌府": "山东省聊城市东昌府区", + "茌平": "山东省聊城市茌平区", + "阳谷": "山东省聊城市阳谷县", + "东阿": "山东省聊城市东阿县", + "高唐": "山东省聊城市高唐县", + "临清": "山东省聊城市临清市", + "沾化": "山东省滨州市沾化区", + "惠民": "山东省滨州市惠民县", + "阳信": "山东省滨州市阳信县", + "无棣": "山东省滨州市无棣县", + "博兴": "山东省滨州市博兴县", + "邹平": "山东省滨州市邹平市", + "牡丹": "山东省菏泽市牡丹区", + "定陶": "山东省菏泽市定陶区", + "成武": "山东省菏泽市成武县", + "巨野": "山东省菏泽市巨野县", + "郓城": "山东省菏泽市郓城县", + "鄄城": "山东省菏泽市鄄城县", + "东明": "山东省菏泽市东明县", + "中原": "河南省郑州市中原区", + "二七": "河南省郑州市二七区", + "管城回族": "河南省郑州市管城回族区", + "金水": "河南省郑州市金水区", + "上街": "河南省郑州市上街区", + "惠济": "河南省郑州市惠济区", + "中牟": "河南省郑州市中牟县", + "巩义": "河南省郑州市巩义市", + "荥阳": "河南省郑州市荥阳市", + "新密": "河南省郑州市新密市", + "新郑": "河南省郑州市新郑市", + "登封": "河南省郑州市登封市", + "龙亭": "河南省开封市龙亭区", + "顺河回族": "河南省开封市顺河回族区", + "禹王台": "河南省开封市禹王台区", + "祥符": "河南省开封市祥符区", + "通许": "河南省开封市通许县", + "尉氏": "河南省开封市尉氏县", + "兰考": "河南省开封市兰考县", + "老城": "河南省洛阳市老城区", + "西工": "河南省洛阳市西工区", + "瀍河回族": "河南省洛阳市瀍河回族区", + "涧西": "河南省洛阳市涧西区", + "孟津": "河南省洛阳市孟津区", + "洛龙": "河南省洛阳市洛龙区", + "新安": "河南省洛阳市新安县", + "栾川": "河南省洛阳市栾川县", + "汝阳": "河南省洛阳市汝阳县", + "宜阳": "河南省洛阳市宜阳县", + "洛宁": "河南省洛阳市洛宁县", + "伊川": "河南省洛阳市伊川县", + "偃师": "河南省洛阳市偃师区", + "卫东": "河南省平顶山市卫东区", + "石龙": "河南省平顶山市石龙区", + "湛河": "河南省平顶山市湛河区", + "宝丰": "河南省平顶山市宝丰县", + "鲁山": "河南省平顶山市鲁山县", + "舞钢": "河南省平顶山市舞钢市", + "汝州": "河南省平顶山市汝州市", + "文峰": "河南省安阳市文峰区", + "北关": "河南省安阳市北关区", + "殷都": "河南省安阳市殷都区", + "龙安": "河南省安阳市龙安区", + "汤阴": "河南省安阳市汤阴县", + "内黄": "河南省安阳市内黄县", + "林州": "河南省安阳市林州市", + "淇滨": "河南省鹤壁市淇滨区", + "红旗": "河南省新乡市红旗区", + "卫滨": "河南省新乡市卫滨区", + "凤泉": "河南省新乡市凤泉区", + "牧野": "河南省新乡市牧野区", + "获嘉": "河南省新乡市获嘉县", + "原阳": "河南省新乡市原阳县", + "延津": "河南省新乡市延津县", + "封丘": "河南省新乡市封丘县", + "卫辉": "河南省新乡市卫辉市", + "辉县": "河南省新乡市辉县市", + "长垣": "河南省新乡市长垣市", + "解放": "河南省焦作市解放区", + "中站": "河南省焦作市中站区", + "马村": "河南省焦作市马村区", + "修武": "河南省焦作市修武县", + "博爱": "河南省焦作市博爱县", + "武陟": "河南省焦作市武陟县", + "沁阳": "河南省焦作市沁阳市", + "孟州": "河南省焦作市孟州市", + "华龙": "河南省濮阳市华龙区", + "清丰": "河南省濮阳市清丰县", + "南乐": "河南省濮阳市南乐县", + "台前": "河南省濮阳市台前县", + "魏都": "河南省许昌市魏都区", + "建安": "河南省许昌市建安区", + "鄢陵": "河南省许昌市鄢陵县", + "禹州": "河南省许昌市禹州市", + "长葛": "河南省许昌市长葛市", + "源汇": "河南省漯河市源汇区", + "郾城": "河南省漯河市郾城区", + "召陵": "河南省漯河市召陵区", + "舞阳": "河南省漯河市舞阳县", + "临颍": "河南省漯河市临颍县", + "湖滨": "河南省三门峡市湖滨区", + "陕州": "河南省三门峡市陕州区", + "渑池": "河南省三门峡市渑池县", + "卢氏": "河南省三门峡市卢氏县", + "义马": "河南省三门峡市义马市", + "灵宝": "河南省三门峡市灵宝市", + "宛城": "河南省南阳市宛城区", + "卧龙": "河南省南阳市卧龙区", + "南召": "河南省南阳市南召县", + "方城": "河南省南阳市方城县", + "西峡": "河南省南阳市西峡县", + "镇平": "河南省南阳市镇平县", + "内乡": "河南省南阳市内乡县", + "淅川": "河南省南阳市淅川县", + "社旗": "河南省南阳市社旗县", + "唐河": "河南省南阳市唐河县", + "新野": "河南省南阳市新野县", + "桐柏": "河南省南阳市桐柏县", + "邓州": "河南省南阳市邓州市", + "梁园": "河南省商丘市梁园区", + "睢阳": "河南省商丘市睢阳区", + "民权": "河南省商丘市民权县", + "宁陵": "河南省商丘市宁陵县", + "柘城": "河南省商丘市柘城县", + "虞城": "河南省商丘市虞城县", + "夏邑": "河南省商丘市夏邑县", + "永城": "河南省商丘市永城市", + "浉河": "河南省信阳市浉河区", + "平桥": "河南省信阳市平桥区", + "罗山": "河南省信阳市罗山县", + "光山": "河南省信阳市光山县", + "商城": "河南省信阳市商城县", + "固始": "河南省信阳市固始县", + "潢川": "河南省信阳市潢川县", + "淮滨": "河南省信阳市淮滨县", + "川汇": "河南省周口市川汇区", + "淮阳": "河南省周口市淮阳区", + "扶沟": "河南省周口市扶沟县", + "西华": "河南省周口市西华县", + "商水": "河南省周口市商水县", + "沈丘": "河南省周口市沈丘县", + "郸城": "河南省周口市郸城县", + "太康": "河南省周口市太康县", + "鹿邑": "河南省周口市鹿邑县", + "项城": "河南省周口市项城市", + "驿城": "河南省驻马店市驿城区", + "西平": "河南省驻马店市西平县", + "上蔡": "河南省驻马店市上蔡县", + "平舆": "河南省驻马店市平舆县", + "正阳": "河南省驻马店市正阳县", + "确山": "河南省驻马店市确山县", + "泌阳": "河南省驻马店市泌阳县", + "汝南": "河南省驻马店市汝南县", + "遂平": "河南省驻马店市遂平县", + "新蔡": "河南省驻马店市新蔡县", + "江岸": "湖北省武汉市江岸区", + "江汉": "湖北省武汉市江汉区", + "硚口": "湖北省武汉市硚口区", + "汉阳": "湖北省武汉市汉阳区", + "武昌": "湖北省武汉市武昌区", + "洪山": "湖北省武汉市洪山区", + "东西湖": "湖北省武汉市东西湖区", + "汉南": "湖北省武汉市汉南区", + "蔡甸": "湖北省武汉市蔡甸区", + "江夏": "湖北省武汉市江夏区", + "黄陂": "湖北省武汉市黄陂区", + "新洲": "湖北省武汉市新洲区", + "黄石港": "湖北省黄石市黄石港区", + "西塞山": "湖北省黄石市西塞山区", + "下陆": "湖北省黄石市下陆区", + "铁山": "湖北省黄石市铁山区", + "阳新": "湖北省黄石市阳新县", + "大冶": "湖北省黄石市大冶市", + "茅箭": "湖北省十堰市茅箭区", + "张湾": "湖北省十堰市张湾区", + "郧阳": "湖北省十堰市郧阳区", + "郧西": "湖北省十堰市郧西县", + "竹山": "湖北省十堰市竹山县", + "竹溪": "湖北省十堰市竹溪县", + "丹江口": "湖北省十堰市丹江口市", + "西陵": "湖北省宜昌市西陵区", + "伍家岗": "湖北省宜昌市伍家岗区", + "点军": "湖北省宜昌市点军区", + "猇亭": "湖北省宜昌市猇亭区", + "夷陵": "湖北省宜昌市夷陵区", + "远安": "湖北省宜昌市远安县", + "秭归": "湖北省宜昌市秭归县", + "宜都": "湖北省宜昌市宜都市", + "当阳": "湖北省宜昌市当阳市", + "枝江": "湖北省宜昌市枝江市", + "樊城": "湖北省襄阳市樊城区", + "襄州": "湖北省襄阳市襄州区", + "南漳": "湖北省襄阳市南漳县", + "谷城": "湖北省襄阳市谷城县", + "保康": "湖北省襄阳市保康县", + "老河口": "湖北省襄阳市老河口市", + "枣阳": "湖北省襄阳市枣阳市", + "宜城": "湖北省襄阳市宜城市", + "梁子湖": "湖北省鄂州市梁子湖区", + "鄂城": "湖北省鄂州市鄂城区", + "东宝": "湖北省荆门市东宝区", + "掇刀": "湖北省荆门市掇刀区", + "沙洋": "湖北省荆门市沙洋县", + "钟祥": "湖北省荆门市钟祥市", + "京山": "湖北省荆门市京山市", + "孝南": "湖北省孝感市孝南区", + "孝昌": "湖北省孝感市孝昌县", + "大悟": "湖北省孝感市大悟县", + "云梦": "湖北省孝感市云梦县", + "应城": "湖北省孝感市应城市", + "安陆": "湖北省孝感市安陆市", + "汉川": "湖北省孝感市汉川市", + "沙市": "湖北省荆州市沙市区", + "公安": "湖北省荆州市公安县", + "监利": "湖北省荆州市监利市", + "江陵": "湖北省荆州市江陵县", + "石首": "湖北省荆州市石首市", + "洪湖": "湖北省荆州市洪湖市", + "松滋": "湖北省荆州市松滋市", + "黄州": "湖北省黄冈市黄州区", + "团风": "湖北省黄冈市团风县", + "红安": "湖北省黄冈市红安县", + "罗田": "湖北省黄冈市罗田县", + "英山": "湖北省黄冈市英山县", + "浠水": "湖北省黄冈市浠水县", + "蕲春": "湖北省黄冈市蕲春县", + "黄梅": "湖北省黄冈市黄梅县", + "麻城": "湖北省黄冈市麻城市", + "武穴": "湖北省黄冈市武穴市", + "咸安": "湖北省咸宁市咸安区", + "嘉鱼": "湖北省咸宁市嘉鱼县", + "通城": "湖北省咸宁市通城县", + "崇阳": "湖北省咸宁市崇阳县", + "通山": "湖北省咸宁市通山县", + "赤壁": "湖北省咸宁市赤壁市", + "曾都": "湖北省随州市曾都区", + "广水": "湖北省随州市广水市", + "利川": "湖北省恩施土家族苗族自治州利川市", + "建始": "湖北省恩施土家族苗族自治州建始县", + "巴东": "湖北省恩施土家族苗族自治州巴东县", + "宣恩": "湖北省恩施土家族苗族自治州宣恩县", + "咸丰": "湖北省恩施土家族苗族自治州咸丰县", + "来凤": "湖北省恩施土家族苗族自治州来凤县", + "鹤峰": "湖北省恩施土家族苗族自治州鹤峰县", + "神农架": "湖北省神农架林区", + "芙蓉": "湖南省长沙市芙蓉区", + "天心": "湖南省长沙市天心区", + "岳麓": "湖南省长沙市岳麓区", + "开福": "湖南省长沙市开福区", + "雨花": "湖南省长沙市雨花区", + "望城": "湖南省长沙市望城区", + "浏阳": "湖南省长沙市浏阳市", + "宁乡": "湖南省长沙市宁乡市", + "荷塘": "湖南省株洲市荷塘区", + "芦淞": "湖南省株洲市芦淞区", + "石峰": "湖南省株洲市石峰区", + "天元": "湖南省株洲市天元区", + "渌口": "湖南省株洲市渌口区", + "茶陵": "湖南省株洲市茶陵县", + "炎陵": "湖南省株洲市炎陵县", + "醴陵": "湖南省株洲市醴陵市", + "雨湖": "湖南省湘潭市雨湖区", + "岳塘": "湖南省湘潭市岳塘区", + "湘乡": "湖南省湘潭市湘乡市", + "韶山": "湖南省湘潭市韶山市", + "珠晖": "湖南省衡阳市珠晖区", + "雁峰": "湖南省衡阳市雁峰区", + "石鼓": "湖南省衡阳市石鼓区", + "蒸湘": "湖南省衡阳市蒸湘区", + "南岳": "湖南省衡阳市南岳区", + "衡南": "湖南省衡阳市衡南县", + "衡山": "湖南省衡阳市衡山县", + "衡东": "湖南省衡阳市衡东县", + "祁东": "湖南省衡阳市祁东县", + "耒阳": "湖南省衡阳市耒阳市", + "常宁": "湖南省衡阳市常宁市", + "双清": "湖南省邵阳市双清区", + "大祥": "湖南省邵阳市大祥区", + "北塔": "湖南省邵阳市北塔区", + "新邵": "湖南省邵阳市新邵县", + "隆回": "湖南省邵阳市隆回县", + "洞口": "湖南省邵阳市洞口县", + "绥宁": "湖南省邵阳市绥宁县", + "新宁": "湖南省邵阳市新宁县", + "武冈": "湖南省邵阳市武冈市", + "邵东": "湖南省邵阳市邵东市", + "岳阳楼": "湖南省岳阳市岳阳楼区", + "云溪": "湖南省岳阳市云溪区", + "君山": "湖南省岳阳市君山区", + "湘阴": "湖南省岳阳市湘阴县", + "平江": "湖南省岳阳市平江县", + "汨罗": "湖南省岳阳市汨罗市", + "临湘": "湖南省岳阳市临湘市", + "武陵": "湖南省常德市武陵区", + "鼎城": "湖南省常德市鼎城区", + "安乡": "湖南省常德市安乡县", + "汉寿": "湖南省常德市汉寿县", + "临澧": "湖南省常德市临澧县", + "桃源": "湖南省常德市桃源县", + "石门": "湖南省常德市石门县", + "津市": "湖南省常德市津市市", + "武陵源": "湖南省张家界市武陵源区", + "慈利": "湖南省张家界市慈利县", + "桑植": "湖南省张家界市桑植县", + "赫山": "湖南省益阳市赫山区", + "桃江": "湖南省益阳市桃江县", + "安化": "湖南省益阳市安化县", + "沅江": "湖南省益阳市沅江市", + "北湖": "湖南省郴州市北湖区", + "苏仙": "湖南省郴州市苏仙区", + "桂阳": "湖南省郴州市桂阳县", + "宜章": "湖南省郴州市宜章县", + "永兴": "湖南省郴州市永兴县", + "嘉禾": "湖南省郴州市嘉禾县", + "临武": "湖南省郴州市临武县", + "汝城": "湖南省郴州市汝城县", + "桂东": "湖南省郴州市桂东县", + "安仁": "湖南省郴州市安仁县", + "资兴": "湖南省郴州市资兴市", + "零陵": "湖南省永州市零陵区", + "冷水滩": "湖南省永州市冷水滩区", + "祁阳": "湖南省永州市祁阳市", + "双牌": "湖南省永州市双牌县", + "江永": "湖南省永州市江永县", + "宁远": "湖南省永州市宁远县", + "蓝山": "湖南省永州市蓝山县", + "新田": "湖南省永州市新田县", + "鹤城": "湖南省怀化市鹤城区", + "中方": "湖南省怀化市中方县", + "沅陵": "湖南省怀化市沅陵县", + "辰溪": "湖南省怀化市辰溪县", + "溆浦": "湖南省怀化市溆浦县", + "会同": "湖南省怀化市会同县", + "洪江": "湖南省怀化市洪江市", + "娄星": "湖南省娄底市娄星区", + "双峰": "湖南省娄底市双峰县", + "新化": "湖南省娄底市新化县", + "冷水江": "湖南省娄底市冷水江市", + "涟源": "湖南省娄底市涟源市", + "泸溪": "湖南省湘西土家族苗族自治州泸溪县", + "凤凰": "湖南省湘西土家族苗族自治州凤凰县", + "花垣": "湖南省湘西土家族苗族自治州花垣县", + "保靖": "湖南省湘西土家族苗族自治州保靖县", + "古丈": "湖南省湘西土家族苗族自治州古丈县", + "永顺": "湖南省湘西土家族苗族自治州永顺县", + "荔湾": "广东省广州市荔湾区", + "越秀": "广东省广州市越秀区", + "海珠": "广东省广州市海珠区", + "天河": "广东省广州市天河区", + "黄埔": "广东省广州市黄埔区", + "番禺": "广东省广州市番禺区", + "花都": "广东省广州市花都区", + "从化": "广东省广州市从化区", + "增城": "广东省广州市增城区", + "武江": "广东省韶关市武江区", + "浈江": "广东省韶关市浈江区", + "曲江": "广东省韶关市曲江区", + "始兴": "广东省韶关市始兴县", + "仁化": "广东省韶关市仁化县", + "翁源": "广东省韶关市翁源县", + "新丰": "广东省韶关市新丰县", + "乐昌": "广东省韶关市乐昌市", + "南雄": "广东省韶关市南雄市", + "罗湖": "广东省深圳市罗湖区", + "福田": "广东省深圳市福田区", + "宝安": "广东省深圳市宝安区", + "龙岗": "广东省深圳市龙岗区", + "盐田": "广东省深圳市盐田区", + "坪山": "广东省深圳市坪山区", + "光明": "广东省深圳市光明区", + "香洲": "广东省珠海市香洲区", + "斗门": "广东省珠海市斗门区", + "金湾": "广东省珠海市金湾区", + "龙湖": "广东省汕头市龙湖区", + "金平": "广东省汕头市金平区", + "濠江": "广东省汕头市濠江区", + "潮阳": "广东省汕头市潮阳区", + "潮南": "广东省汕头市潮南区", + "澄海": "广东省汕头市澄海区", + "南澳": "广东省汕头市南澳县", + "禅城": "广东省佛山市禅城区", + "南海": "广东省佛山市南海区", + "顺德": "广东省佛山市顺德区", + "三水": "广东省佛山市三水区", + "高明": "广东省佛山市高明区", + "蓬江": "广东省江门市蓬江区", + "江海": "广东省江门市江海区", + "新会": "广东省江门市新会区", + "台山": "广东省江门市台山市", + "恩平": "广东省江门市恩平市", + "赤坎": "广东省湛江市赤坎区", + "霞山": "广东省湛江市霞山区", + "坡头": "广东省湛江市坡头区", + "麻章": "广东省湛江市麻章区", + "遂溪": "广东省湛江市遂溪县", + "徐闻": "广东省湛江市徐闻县", + "廉江": "广东省湛江市廉江市", + "雷州": "广东省湛江市雷州市", + "吴川": "广东省湛江市吴川市", + "茂南": "广东省茂名市茂南区", + "电白": "广东省茂名市电白区", + "高州": "广东省茂名市高州市", + "化州": "广东省茂名市化州市", + "信宜": "广东省茂名市信宜市", + "端州": "广东省肇庆市端州区", + "鼎湖": "广东省肇庆市鼎湖区", + "高要": "广东省肇庆市高要区", + "广宁": "广东省肇庆市广宁县", + "怀集": "广东省肇庆市怀集县", + "封开": "广东省肇庆市封开县", + "德庆": "广东省肇庆市德庆县", + "四会": "广东省肇庆市四会市", + "惠城": "广东省惠州市惠城区", + "惠阳": "广东省惠州市惠阳区", + "博罗": "广东省惠州市博罗县", + "惠东": "广东省惠州市惠东县", + "龙门": "广东省惠州市龙门县", + "梅江": "广东省梅州市梅江区", + "梅县": "广东省梅州市梅县区", + "丰顺": "广东省梅州市丰顺县", + "平远": "广东省梅州市平远县", + "蕉岭": "广东省梅州市蕉岭县", + "海丰": "广东省汕尾市海丰县", + "陆河": "广东省汕尾市陆河县", + "陆丰": "广东省汕尾市陆丰市", + "源城": "广东省河源市源城区", + "紫金": "广东省河源市紫金县", + "龙川": "广东省河源市龙川县", + "连平": "广东省河源市连平县", + "东源": "广东省河源市东源县", + "阳东": "广东省阳江市阳东区", + "阳西": "广东省阳江市阳西县", + "阳春": "广东省阳江市阳春市", + "清城": "广东省清远市清城区", + "清新": "广东省清远市清新区", + "佛冈": "广东省清远市佛冈县", + "阳山": "广东省清远市阳山县", + "英德": "广东省清远市英德市", + "连州": "广东省清远市连州市", + "湘桥": "广东省潮州市湘桥区", + "潮安": "广东省潮州市潮安区", + "饶平": "广东省潮州市饶平县", + "揭东": "广东省揭阳市揭东区", + "揭西": "广东省揭阳市揭西县", + "惠来": "广东省揭阳市惠来县", + "普宁": "广东省揭阳市普宁市", + "云城": "广东省云浮市云城区", + "云安": "广东省云浮市云安区", + "郁南": "广东省云浮市郁南县", + "罗定": "广东省云浮市罗定市", + "青秀": "广西壮族自治区南宁市青秀区", + "江南": "广西壮族自治区南宁市江南区", + "西乡塘": "广西壮族自治区南宁市西乡塘区", + "良庆": "广西壮族自治区南宁市良庆区", + "邕宁": "广西壮族自治区南宁市邕宁区", + "武鸣": "广西壮族自治区南宁市武鸣区", + "隆安": "广西壮族自治区南宁市隆安县", + "马山": "广西壮族自治区南宁市马山县", + "上林": "广西壮族自治区南宁市上林县", + "宾阳": "广西壮族自治区南宁市宾阳县", + "横州": "广西壮族自治区南宁市横州市", + "鱼峰": "广西壮族自治区柳州市鱼峰区", + "柳南": "广西壮族自治区柳州市柳南区", + "柳北": "广西壮族自治区柳州市柳北区", + "柳江": "广西壮族自治区柳州市柳江区", + "柳城": "广西壮族自治区柳州市柳城县", + "鹿寨": "广西壮族自治区柳州市鹿寨县", + "融安": "广西壮族自治区柳州市融安县", + "秀峰": "广西壮族自治区桂林市秀峰区", + "叠彩": "广西壮族自治区桂林市叠彩区", + "七星": "广西壮族自治区桂林市七星区", + "雁山": "广西壮族自治区桂林市雁山区", + "临桂": "广西壮族自治区桂林市临桂区", + "阳朔": "广西壮族自治区桂林市阳朔县", + "灵川": "广西壮族自治区桂林市灵川县", + "全州": "广西壮族自治区桂林市全州县", + "永福": "广西壮族自治区桂林市永福县", + "灌阳": "广西壮族自治区桂林市灌阳县", + "资源": "广西壮族自治区桂林市资源县", + "平乐": "广西壮族自治区桂林市平乐县", + "荔浦": "广西壮族自治区桂林市荔浦市", + "万秀": "广西壮族自治区梧州市万秀区", + "长洲": "广西壮族自治区梧州市长洲区", + "龙圩": "广西壮族自治区梧州市龙圩区", + "苍梧": "广西壮族自治区梧州市苍梧县", + "蒙山": "广西壮族自治区梧州市蒙山县", + "岑溪": "广西壮族自治区梧州市岑溪市", + "银海": "广西壮族自治区北海市银海区", + "铁山港": "广西壮族自治区北海市铁山港区", + "合浦": "广西壮族自治区北海市合浦县", + "港口": "广西壮族自治区防城港市港口区", + "防城": "广西壮族自治区防城港市防城区", + "上思": "广西壮族自治区防城港市上思县", + "钦南": "广西壮族自治区钦州市钦南区", + "钦北": "广西壮族自治区钦州市钦北区", + "灵山": "广西壮族自治区钦州市灵山县", + "浦北": "广西壮族自治区钦州市浦北县", + "港北": "广西壮族自治区贵港市港北区", + "港南": "广西壮族自治区贵港市港南区", + "覃塘": "广西壮族自治区贵港市覃塘区", + "平南": "广西壮族自治区贵港市平南县", + "桂平": "广西壮族自治区贵港市桂平市", + "玉州": "广西壮族自治区玉林市玉州区", + "福绵": "广西壮族自治区玉林市福绵区", + "陆川": "广西壮族自治区玉林市陆川县", + "博白": "广西壮族自治区玉林市博白县", + "兴业": "广西壮族自治区玉林市兴业县", + "北流": "广西壮族自治区玉林市北流市", + "右江": "广西壮族自治区百色市右江区", + "田阳": "广西壮族自治区百色市田阳区", + "田东": "广西壮族自治区百色市田东县", + "德保": "广西壮族自治区百色市德保县", + "那坡": "广西壮族自治区百色市那坡县", + "凌云": "广西壮族自治区百色市凌云县", + "乐业": "广西壮族自治区百色市乐业县", + "田林": "广西壮族自治区百色市田林县", + "西林": "广西壮族自治区百色市西林县", + "靖西": "广西壮族自治区百色市靖西市", + "平果": "广西壮族自治区百色市平果市", + "八步": "广西壮族自治区贺州市八步区", + "平桂": "广西壮族自治区贺州市平桂区", + "昭平": "广西壮族自治区贺州市昭平县", + "金城江": "广西壮族自治区河池市金城江区", + "宜州": "广西壮族自治区河池市宜州区", + "南丹": "广西壮族自治区河池市南丹县", + "天峨": "广西壮族自治区河池市天峨县", + "凤山": "广西壮族自治区河池市凤山县", + "东兰": "广西壮族自治区河池市东兰县", + "兴宾": "广西壮族自治区来宾市兴宾区", + "忻城": "广西壮族自治区来宾市忻城县", + "象州": "广西壮族自治区来宾市象州县", + "武宣": "广西壮族自治区来宾市武宣县", + "合山": "广西壮族自治区来宾市合山市", + "江州": "广西壮族自治区崇左市江州区", + "扶绥": "广西壮族自治区崇左市扶绥县", + "宁明": "广西壮族自治区崇左市宁明县", + "龙州": "广西壮族自治区崇左市龙州县", + "大新": "广西壮族自治区崇左市大新县", + "天等": "广西壮族自治区崇左市天等县", + "凭祥": "广西壮族自治区崇左市凭祥市", + "秀英": "海南省海口市秀英区", + "琼山": "海南省海口市琼山区", + "美兰": "海南省海口市美兰区", + "海棠": "海南省三亚市海棠区", + "吉阳": "海南省三亚市吉阳区", + "天涯": "海南省三亚市天涯区", + "崖州": "海南省三亚市崖州区", + "西沙": "海南省三沙市西沙区", + "定安": "海南省定安县", + "屯昌": "海南省屯昌县", + "澄迈": "海南省澄迈县", + "临高": "海南省临高县", + "万州": "重庆市万州区", + "涪陵": "重庆市涪陵区", + "渝中": "重庆市渝中区", + "大渡口": "重庆市大渡口区", + "沙坪坝": "重庆市沙坪坝区", + "九龙坡": "重庆市九龙坡区", + "南岸": "重庆市南岸区", + "北碚": "重庆市北碚区", + "綦江": "重庆市綦江区", + "大足": "重庆市大足区", + "渝北": "重庆市渝北区", + "巴南": "重庆市巴南区", + "黔江": "重庆市黔江区", + "长寿": "重庆市长寿区", + "江津": "重庆市江津区", + "合川": "重庆市合川区", + "永川": "重庆市永川区", + "南川": "重庆市南川区", + "璧山": "重庆市璧山区", + "铜梁": "重庆市铜梁区", + "潼南": "重庆市潼南区", + "荣昌": "重庆市荣昌区", + "开州": "重庆市开州区", + "梁平": "重庆市梁平区", + "武隆": "重庆市武隆区", + "城口": "重庆市城口县", + "丰都": "重庆市丰都县", + "垫江": "重庆市垫江县", + "云阳": "重庆市云阳县", + "奉节": "重庆市奉节县", + "巫山": "重庆市巫山县", + "巫溪": "重庆市巫溪县", + "锦江": "四川省成都市锦江区", + "青羊": "四川省成都市青羊区", + "金牛": "四川省成都市金牛区", + "武侯": "四川省成都市武侯区", + "成华": "四川省成都市成华区", + "龙泉驿": "四川省成都市龙泉驿区", + "青白江": "四川省成都市青白江区", + "新都": "四川省成都市新都区", + "温江": "四川省成都市温江区", + "双流": "四川省成都市双流区", + "郫都": "四川省成都市郫都区", + "新津": "四川省成都市新津区", + "金堂": "四川省成都市金堂县", + "大邑": "四川省成都市大邑县", + "蒲江": "四川省成都市蒲江县", + "都江堰": "四川省成都市都江堰市", + "彭州": "四川省成都市彭州市", + "邛崃": "四川省成都市邛崃市", + "崇州": "四川省成都市崇州市", + "简阳": "四川省成都市简阳市", + "自流井": "四川省自贡市自流井区", + "贡井": "四川省自贡市贡井区", + "沿滩": "四川省自贡市沿滩区", + "富顺": "四川省自贡市富顺县", + "仁和": "四川省攀枝花市仁和区", + "米易": "四川省攀枝花市米易县", + "盐边": "四川省攀枝花市盐边县", + "江阳": "四川省泸州市江阳区", + "纳溪": "四川省泸州市纳溪区", + "龙马潭": "四川省泸州市龙马潭区", + "合江": "四川省泸州市合江县", + "叙永": "四川省泸州市叙永县", + "古蔺": "四川省泸州市古蔺县", + "旌阳": "四川省德阳市旌阳区", + "罗江": "四川省德阳市罗江区", + "中江": "四川省德阳市中江县", + "广汉": "四川省德阳市广汉市", + "什邡": "四川省德阳市什邡市", + "绵竹": "四川省德阳市绵竹市", + "涪城": "四川省绵阳市涪城区", + "游仙": "四川省绵阳市游仙区", + "安州": "四川省绵阳市安州区", + "三台": "四川省绵阳市三台县", + "盐亭": "四川省绵阳市盐亭县", + "梓潼": "四川省绵阳市梓潼县", + "平武": "四川省绵阳市平武县", + "江油": "四川省绵阳市江油市", + "利州": "四川省广元市利州区", + "昭化": "四川省广元市昭化区", + "朝天": "四川省广元市朝天区", + "旺苍": "四川省广元市旺苍县", + "青川": "四川省广元市青川县", + "剑阁": "四川省广元市剑阁县", + "苍溪": "四川省广元市苍溪县", + "船山": "四川省遂宁市船山区", + "安居": "四川省遂宁市安居区", + "蓬溪": "四川省遂宁市蓬溪县", + "大英": "四川省遂宁市大英县", + "射洪": "四川省遂宁市射洪市", + "威远": "四川省内江市威远县", + "资中": "四川省内江市资中县", + "隆昌": "四川省内江市隆昌市", + "五通桥": "四川省乐山市五通桥区", + "金口河": "四川省乐山市金口河区", + "犍为": "四川省乐山市犍为县", + "井研": "四川省乐山市井研县", + "夹江": "四川省乐山市夹江县", + "沐川": "四川省乐山市沐川县", + "峨眉山": "四川省乐山市峨眉山市", + "顺庆": "四川省南充市顺庆区", + "高坪": "四川省南充市高坪区", + "嘉陵": "四川省南充市嘉陵区", + "南部": "四川省南充市南部县", + "营山": "四川省南充市营山县", + "蓬安": "四川省南充市蓬安县", + "仪陇": "四川省南充市仪陇县", + "西充": "四川省南充市西充县", + "阆中": "四川省南充市阆中市", + "东坡": "四川省眉山市东坡区", + "彭山": "四川省眉山市彭山区", + "仁寿": "四川省眉山市仁寿县", + "洪雅": "四川省眉山市洪雅县", + "丹棱": "四川省眉山市丹棱县", + "青神": "四川省眉山市青神县", + "翠屏": "四川省宜宾市翠屏区", + "南溪": "四川省宜宾市南溪区", + "叙州": "四川省宜宾市叙州区", + "江安": "四川省宜宾市江安县", + "筠连": "四川省宜宾市筠连县", + "兴文": "四川省宜宾市兴文县", + "屏山": "四川省宜宾市屏山县", + "前锋": "四川省广安市前锋区", + "岳池": "四川省广安市岳池县", + "武胜": "四川省广安市武胜县", + "邻水": "四川省广安市邻水县", + "华蓥": "四川省广安市华蓥市", + "通川": "四川省达州市通川区", + "达川": "四川省达州市达川区", + "宣汉": "四川省达州市宣汉县", + "开江": "四川省达州市开江县", + "大竹": "四川省达州市大竹县", + "万源": "四川省达州市万源市", + "雨城": "四川省雅安市雨城区", + "名山": "四川省雅安市名山区", + "荥经": "四川省雅安市荥经县", + "汉源": "四川省雅安市汉源县", + "石棉": "四川省雅安市石棉县", + "天全": "四川省雅安市天全县", + "芦山": "四川省雅安市芦山县", + "宝兴": "四川省雅安市宝兴县", + "巴州": "四川省巴中市巴州区", + "恩阳": "四川省巴中市恩阳区", + "通江": "四川省巴中市通江县", + "南江": "四川省巴中市南江县", + "平昌": "四川省巴中市平昌县", + "雁江": "四川省资阳市雁江区", + "安岳": "四川省资阳市安岳县", + "乐至": "四川省资阳市乐至县", + "汶川": "四川省阿坝藏族羌族自治州汶川县", + "松潘": "四川省阿坝藏族羌族自治州松潘县", + "九寨沟": "四川省阿坝藏族羌族自治州九寨沟县", + "小金": "四川省阿坝藏族羌族自治州小金县", + "黑水": "四川省阿坝藏族羌族自治州黑水县", + "壤塘": "四川省阿坝藏族羌族自治州壤塘县", + "若尔盖": "四川省阿坝藏族羌族自治州若尔盖县", + "红原": "四川省阿坝藏族羌族自治州红原县", + "泸定": "四川省甘孜藏族自治州泸定县", + "丹巴": "四川省甘孜藏族自治州丹巴县", + "九龙": "四川省甘孜藏族自治州九龙县", + "雅江": "四川省甘孜藏族自治州雅江县", + "道孚": "四川省甘孜藏族自治州道孚县", + "炉霍": "四川省甘孜藏族自治州炉霍县", + "新龙": "四川省甘孜藏族自治州新龙县", + "德格": "四川省甘孜藏族自治州德格县", + "白玉": "四川省甘孜藏族自治州白玉县", + "石渠": "四川省甘孜藏族自治州石渠县", + "色达": "四川省甘孜藏族自治州色达县", + "理塘": "四川省甘孜藏族自治州理塘县", + "巴塘": "四川省甘孜藏族自治州巴塘县", + "乡城": "四川省甘孜藏族自治州乡城县", + "稻城": "四川省甘孜藏族自治州稻城县", + "得荣": "四川省甘孜藏族自治州得荣县", + "盐源": "四川省凉山彝族自治州盐源县", + "德昌": "四川省凉山彝族自治州德昌县", + "会理": "四川省凉山彝族自治州会理市", + "会东": "四川省凉山彝族自治州会东县", + "宁南": "四川省凉山彝族自治州宁南县", + "普格": "四川省凉山彝族自治州普格县", + "布拖": "四川省凉山彝族自治州布拖县", + "金阳": "四川省凉山彝族自治州金阳县", + "昭觉": "四川省凉山彝族自治州昭觉县", + "喜德": "四川省凉山彝族自治州喜德县", + "冕宁": "四川省凉山彝族自治州冕宁县", + "越西": "四川省凉山彝族自治州越西县", + "甘洛": "四川省凉山彝族自治州甘洛县", + "美姑": "四川省凉山彝族自治州美姑县", + "雷波": "四川省凉山彝族自治州雷波县", + "南明": "贵州省贵阳市南明区", + "云岩": "贵州省贵阳市云岩区", + "花溪": "贵州省贵阳市花溪区", + "乌当": "贵州省贵阳市乌当区", + "观山湖": "贵州省贵阳市观山湖区", + "开阳": "贵州省贵阳市开阳县", + "息烽": "贵州省贵阳市息烽县", + "修文": "贵州省贵阳市修文县", + "清镇": "贵州省贵阳市清镇市", + "六枝": "贵州省六盘水市六枝特区", + "水城": "贵州省六盘水市水城区", + "盘州": "贵州省六盘水市盘州市", + "红花岗": "贵州省遵义市红花岗区", + "汇川": "贵州省遵义市汇川区", + "播州": "贵州省遵义市播州区", + "桐梓": "贵州省遵义市桐梓县", + "绥阳": "贵州省遵义市绥阳县", + "正安": "贵州省遵义市正安县", + "凤冈": "贵州省遵义市凤冈县", + "湄潭": "贵州省遵义市湄潭县", + "余庆": "贵州省遵义市余庆县", + "习水": "贵州省遵义市习水县", + "赤水": "贵州省遵义市赤水市", + "仁怀": "贵州省遵义市仁怀市", + "西秀": "贵州省安顺市西秀区", + "平坝": "贵州省安顺市平坝区", + "普定": "贵州省安顺市普定县", + "七星关": "贵州省毕节市七星关区", + "大方": "贵州省毕节市大方县", + "黔西": "贵州省毕节市黔西市", + "金沙": "贵州省毕节市金沙县", + "织金": "贵州省毕节市织金县", + "纳雍": "贵州省毕节市纳雍县", + "赫章": "贵州省毕节市赫章县", + "碧江": "贵州省铜仁市碧江区", + "万山": "贵州省铜仁市万山区", + "江口": "贵州省铜仁市江口县", + "石阡": "贵州省铜仁市石阡县", + "思南": "贵州省铜仁市思南县", + "德江": "贵州省铜仁市德江县", + "兴仁": "贵州省黔西南布依族苗族自治州兴仁市", + "普安": "贵州省黔西南布依族苗族自治州普安县", + "晴隆": "贵州省黔西南布依族苗族自治州晴隆县", + "贞丰": "贵州省黔西南布依族苗族自治州贞丰县", + "望谟": "贵州省黔西南布依族苗族自治州望谟县", + "册亨": "贵州省黔西南布依族苗族自治州册亨县", + "安龙": "贵州省黔西南布依族苗族自治州安龙县", + "黄平": "贵州省黔东南苗族侗族自治州黄平县", + "施秉": "贵州省黔东南苗族侗族自治州施秉县", + "三穗": "贵州省黔东南苗族侗族自治州三穗县", + "镇远": "贵州省黔东南苗族侗族自治州镇远县", + "岑巩": "贵州省黔东南苗族侗族自治州岑巩县", + "天柱": "贵州省黔东南苗族侗族自治州天柱县", + "锦屏": "贵州省黔东南苗族侗族自治州锦屏县", + "剑河": "贵州省黔东南苗族侗族自治州剑河县", + "黎平": "贵州省黔东南苗族侗族自治州黎平县", + "榕江": "贵州省黔东南苗族侗族自治州榕江县", + "从江": "贵州省黔东南苗族侗族自治州从江县", + "雷山": "贵州省黔东南苗族侗族自治州雷山县", + "麻江": "贵州省黔东南苗族侗族自治州麻江县", + "丹寨": "贵州省黔东南苗族侗族自治州丹寨县", + "福泉": "贵州省黔南布依族苗族自治州福泉市", + "荔波": "贵州省黔南布依族苗族自治州荔波县", + "贵定": "贵州省黔南布依族苗族自治州贵定县", + "瓮安": "贵州省黔南布依族苗族自治州瓮安县", + "独山": "贵州省黔南布依族苗族自治州独山县", + "平塘": "贵州省黔南布依族苗族自治州平塘县", + "罗甸": "贵州省黔南布依族苗族自治州罗甸县", + "长顺": "贵州省黔南布依族苗族自治州长顺县", + "龙里": "贵州省黔南布依族苗族自治州龙里县", + "惠水": "贵州省黔南布依族苗族自治州惠水县", + "盘龙": "云南省昆明市盘龙区", + "官渡": "云南省昆明市官渡区", + "西山": "云南省昆明市西山区", + "东川": "云南省昆明市东川区", + "呈贡": "云南省昆明市呈贡区", + "晋宁": "云南省昆明市晋宁区", + "富民": "云南省昆明市富民县", + "宜良": "云南省昆明市宜良县", + "嵩明": "云南省昆明市嵩明县", + "麒麟": "云南省曲靖市麒麟区", + "沾益": "云南省曲靖市沾益区", + "马龙": "云南省曲靖市马龙区", + "陆良": "云南省曲靖市陆良县", + "师宗": "云南省曲靖市师宗县", + "罗平": "云南省曲靖市罗平县", + "富源": "云南省曲靖市富源县", + "会泽": "云南省曲靖市会泽县", + "宣威": "云南省曲靖市宣威市", + "红塔": "云南省玉溪市红塔区", + "江川": "云南省玉溪市江川区", + "通海": "云南省玉溪市通海县", + "华宁": "云南省玉溪市华宁县", + "易门": "云南省玉溪市易门县", + "澄江": "云南省玉溪市澄江市", + "隆阳": "云南省保山市隆阳区", + "施甸": "云南省保山市施甸县", + "龙陵": "云南省保山市龙陵县", + "昌宁": "云南省保山市昌宁县", + "腾冲": "云南省保山市腾冲市", + "昭阳": "云南省昭通市昭阳区", + "鲁甸": "云南省昭通市鲁甸县", + "巧家": "云南省昭通市巧家县", + "盐津": "云南省昭通市盐津县", + "大关": "云南省昭通市大关县", + "永善": "云南省昭通市永善县", + "绥江": "云南省昭通市绥江县", + "镇雄": "云南省昭通市镇雄县", + "彝良": "云南省昭通市彝良县", + "威信": "云南省昭通市威信县", + "水富": "云南省昭通市水富市", + "古城": "云南省丽江市古城区", + "永胜": "云南省丽江市永胜县", + "华坪": "云南省丽江市华坪县", + "思茅": "云南省普洱市思茅区", + "临翔": "云南省临沧市临翔区", + "凤庆": "云南省临沧市凤庆县", + "永德": "云南省临沧市永德县", + "镇康": "云南省临沧市镇康县", + "双柏": "云南省楚雄彝族自治州双柏县", + "牟定": "云南省楚雄彝族自治州牟定县", + "南华": "云南省楚雄彝族自治州南华县", + "姚安": "云南省楚雄彝族自治州姚安县", + "大姚": "云南省楚雄彝族自治州大姚县", + "永仁": "云南省楚雄彝族自治州永仁县", + "元谋": "云南省楚雄彝族自治州元谋县", + "武定": "云南省楚雄彝族自治州武定县", + "禄丰": "云南省楚雄彝族自治州禄丰市", + "个旧": "云南省红河哈尼族彝族自治州个旧市", + "开远": "云南省红河哈尼族彝族自治州开远市", + "弥勒": "云南省红河哈尼族彝族自治州弥勒市", + "建水": "云南省红河哈尼族彝族自治州建水县", + "石屏": "云南省红河哈尼族彝族自治州石屏县", + "泸西": "云南省红河哈尼族彝族自治州泸西县", + "元阳": "云南省红河哈尼族彝族自治州元阳县", + "绿春": "云南省红河哈尼族彝族自治州绿春县", + "砚山": "云南省文山壮族苗族自治州砚山县", + "西畴": "云南省文山壮族苗族自治州西畴县", + "麻栗坡": "云南省文山壮族苗族自治州麻栗坡县", + "马关": "云南省文山壮族苗族自治州马关县", + "丘北": "云南省文山壮族苗族自治州丘北县", + "广南": "云南省文山壮族苗族自治州广南县", + "富宁": "云南省文山壮族苗族自治州富宁县", + "勐海": "云南省西双版纳傣族自治州勐海县", + "勐腊": "云南省西双版纳傣族自治州勐腊县", + "祥云": "云南省大理白族自治州祥云县", + "宾川": "云南省大理白族自治州宾川县", + "弥渡": "云南省大理白族自治州弥渡县", + "永平": "云南省大理白族自治州永平县", + "洱源": "云南省大理白族自治州洱源县", + "剑川": "云南省大理白族自治州剑川县", + "鹤庆": "云南省大理白族自治州鹤庆县", + "瑞丽": "云南省德宏傣族景颇族自治州瑞丽市", + "梁河": "云南省德宏傣族景颇族自治州梁河县", + "盈江": "云南省德宏傣族景颇族自治州盈江县", + "陇川": "云南省德宏傣族景颇族自治州陇川县", + "泸水": "云南省怒江傈僳族自治州泸水市", + "福贡": "云南省怒江傈僳族自治州福贡县", + "德钦": "云南省迪庆藏族自治州德钦县", + "堆龙德庆": "西藏自治区拉萨市堆龙德庆区", + "达孜": "西藏自治区拉萨市达孜区", + "林周": "西藏自治区拉萨市林周县", + "当雄": "西藏自治区拉萨市当雄县", + "尼木": "西藏自治区拉萨市尼木县", + "曲水": "西藏自治区拉萨市曲水县", + "墨竹工卡": "西藏自治区拉萨市墨竹工卡县", + "桑珠孜": "西藏自治区日喀则市桑珠孜区", + "南木林": "西藏自治区日喀则市南木林县", + "江孜": "西藏自治区日喀则市江孜县", + "定日": "西藏自治区日喀则市定日县", + "萨迦": "西藏自治区日喀则市萨迦县", + "拉孜": "西藏自治区日喀则市拉孜县", + "昂仁": "西藏自治区日喀则市昂仁县", + "谢通门": "西藏自治区日喀则市谢通门县", + "白朗": "西藏自治区日喀则市白朗县", + "仁布": "西藏自治区日喀则市仁布县", + "康马": "西藏自治区日喀则市康马县", + "定结": "西藏自治区日喀则市定结县", + "仲巴": "西藏自治区日喀则市仲巴县", + "亚东": "西藏自治区日喀则市亚东县", + "吉隆": "西藏自治区日喀则市吉隆县", + "聂拉木": "西藏自治区日喀则市聂拉木县", + "萨嘎": "西藏自治区日喀则市萨嘎县", + "岗巴": "西藏自治区日喀则市岗巴县", + "卡若": "西藏自治区昌都市卡若区", + "江达": "西藏自治区昌都市江达县", + "贡觉": "西藏自治区昌都市贡觉县", + "类乌齐": "西藏自治区昌都市类乌齐县", + "丁青": "西藏自治区昌都市丁青县", + "察雅": "西藏自治区昌都市察雅县", + "八宿": "西藏自治区昌都市八宿县", + "左贡": "西藏自治区昌都市左贡县", + "芒康": "西藏自治区昌都市芒康县", + "洛隆": "西藏自治区昌都市洛隆县", + "边坝": "西藏自治区昌都市边坝县", + "巴宜": "西藏自治区林芝市巴宜区", + "工布江达": "西藏自治区林芝市工布江达县", + "米林": "西藏自治区林芝市米林县", + "墨脱": "西藏自治区林芝市墨脱县", + "波密": "西藏自治区林芝市波密县", + "察隅": "西藏自治区林芝市察隅县", + "乃东": "西藏自治区山南市乃东区", + "扎囊": "西藏自治区山南市扎囊县", + "贡嘎": "西藏自治区山南市贡嘎县", + "桑日": "西藏自治区山南市桑日县", + "琼结": "西藏自治区山南市琼结县", + "曲松": "西藏自治区山南市曲松县", + "措美": "西藏自治区山南市措美县", + "洛扎": "西藏自治区山南市洛扎县", + "加查": "西藏自治区山南市加查县", + "隆子": "西藏自治区山南市隆子县", + "错那": "西藏自治区山南市错那县", + "浪卡子": "西藏自治区山南市浪卡子县", + "色尼": "西藏自治区那曲市色尼区", + "嘉黎": "西藏自治区那曲市嘉黎县", + "比如": "西藏自治区那曲市比如县", + "聂荣": "西藏自治区那曲市聂荣县", + "安多": "西藏自治区那曲市安多县", + "申扎": "西藏自治区那曲市申扎县", + "班戈": "西藏自治区那曲市班戈县", + "巴青": "西藏自治区那曲市巴青县", + "尼玛": "西藏自治区那曲市尼玛县", + "双湖": "西藏自治区那曲市双湖县", + "普兰": "西藏自治区阿里地区普兰县", + "札达": "西藏自治区阿里地区札达县", + "噶尔": "西藏自治区阿里地区噶尔县", + "日土": "西藏自治区阿里地区日土县", + "革吉": "西藏自治区阿里地区革吉县", + "改则": "西藏自治区阿里地区改则县", + "措勤": "西藏自治区阿里地区措勤县", + "莲湖": "陕西省西安市莲湖区", + "灞桥": "陕西省西安市灞桥区", + "未央": "陕西省西安市未央区", + "雁塔": "陕西省西安市雁塔区", + "阎良": "陕西省西安市阎良区", + "临潼": "陕西省西安市临潼区", + "高陵": "陕西省西安市高陵区", + "鄠邑": "陕西省西安市鄠邑区", + "蓝田": "陕西省西安市蓝田县", + "周至": "陕西省西安市周至县", + "王益": "陕西省铜川市王益区", + "印台": "陕西省铜川市印台区", + "耀州": "陕西省铜川市耀州区", + "宜君": "陕西省铜川市宜君县", + "渭滨": "陕西省宝鸡市渭滨区", + "金台": "陕西省宝鸡市金台区", + "陈仓": "陕西省宝鸡市陈仓区", + "凤翔": "陕西省宝鸡市凤翔区", + "岐山": "陕西省宝鸡市岐山县", + "扶风": "陕西省宝鸡市扶风县", + "千阳": "陕西省宝鸡市千阳县", + "麟游": "陕西省宝鸡市麟游县", + "太白": "陕西省宝鸡市太白县", + "秦都": "陕西省咸阳市秦都区", + "杨陵": "陕西省咸阳市杨陵区", + "渭城": "陕西省咸阳市渭城区", + "三原": "陕西省咸阳市三原县", + "泾阳": "陕西省咸阳市泾阳县", + "礼泉": "陕西省咸阳市礼泉县", + "永寿": "陕西省咸阳市永寿县", + "长武": "陕西省咸阳市长武县", + "旬邑": "陕西省咸阳市旬邑县", + "淳化": "陕西省咸阳市淳化县", + "武功": "陕西省咸阳市武功县", + "兴平": "陕西省咸阳市兴平市", + "彬州": "陕西省咸阳市彬州市", + "临渭": "陕西省渭南市临渭区", + "华州": "陕西省渭南市华州区", + "潼关": "陕西省渭南市潼关县", + "大荔": "陕西省渭南市大荔县", + "合阳": "陕西省渭南市合阳县", + "澄城": "陕西省渭南市澄城县", + "蒲城": "陕西省渭南市蒲城县", + "白水": "陕西省渭南市白水县", + "富平": "陕西省渭南市富平县", + "韩城": "陕西省渭南市韩城市", + "华阴": "陕西省渭南市华阴市", + "宝塔": "陕西省延安市宝塔区", + "安塞": "陕西省延安市安塞区", + "延长": "陕西省延安市延长县", + "延川": "陕西省延安市延川县", + "志丹": "陕西省延安市志丹县", + "吴起": "陕西省延安市吴起县", + "甘泉": "陕西省延安市甘泉县", + "洛川": "陕西省延安市洛川县", + "宜川": "陕西省延安市宜川县", + "黄龙": "陕西省延安市黄龙县", + "黄陵": "陕西省延安市黄陵县", + "子长": "陕西省延安市子长市", + "汉台": "陕西省汉中市汉台区", + "南郑": "陕西省汉中市南郑区", + "城固": "陕西省汉中市城固县", + "西乡": "陕西省汉中市西乡县", + "宁强": "陕西省汉中市宁强县", + "略阳": "陕西省汉中市略阳县", + "镇巴": "陕西省汉中市镇巴县", + "留坝": "陕西省汉中市留坝县", + "佛坪": "陕西省汉中市佛坪县", + "榆阳": "陕西省榆林市榆阳区", + "横山": "陕西省榆林市横山区", + "府谷": "陕西省榆林市府谷县", + "靖边": "陕西省榆林市靖边县", + "定边": "陕西省榆林市定边县", + "绥德": "陕西省榆林市绥德县", + "米脂": "陕西省榆林市米脂县", + "吴堡": "陕西省榆林市吴堡县", + "清涧": "陕西省榆林市清涧县", + "子洲": "陕西省榆林市子洲县", + "神木": "陕西省榆林市神木市", + "汉滨": "陕西省安康市汉滨区", + "汉阴": "陕西省安康市汉阴县", + "石泉": "陕西省安康市石泉县", + "宁陕": "陕西省安康市宁陕县", + "紫阳": "陕西省安康市紫阳县", + "岚皋": "陕西省安康市岚皋县", + "平利": "陕西省安康市平利县", + "镇坪": "陕西省安康市镇坪县", + "旬阳": "陕西省安康市旬阳市", + "白河": "陕西省安康市白河县", + "商州": "陕西省商洛市商州区", + "洛南": "陕西省商洛市洛南县", + "丹凤": "陕西省商洛市丹凤县", + "商南": "陕西省商洛市商南县", + "镇安": "陕西省商洛市镇安县", + "柞水": "陕西省商洛市柞水县", + "七里河": "甘肃省兰州市七里河区", + "西固": "甘肃省兰州市西固区", + "红古": "甘肃省兰州市红古区", + "永登": "甘肃省兰州市永登县", + "皋兰": "甘肃省兰州市皋兰县", + "榆中": "甘肃省兰州市榆中县", + "永昌": "甘肃省金昌市永昌县", + "平川": "甘肃省白银市平川区", + "靖远": "甘肃省白银市靖远县", + "会宁": "甘肃省白银市会宁县", + "景泰": "甘肃省白银市景泰县", + "秦州": "甘肃省天水市秦州区", + "麦积": "甘肃省天水市麦积区", + "清水": "甘肃省天水市清水县", + "秦安": "甘肃省天水市秦安县", + "甘谷": "甘肃省天水市甘谷县", + "武山": "甘肃省天水市武山县", + "凉州": "甘肃省武威市凉州区", + "民勤": "甘肃省武威市民勤县", + "古浪": "甘肃省武威市古浪县", + "甘州": "甘肃省张掖市甘州区", + "民乐": "甘肃省张掖市民乐县", + "临泽": "甘肃省张掖市临泽县", + "高台": "甘肃省张掖市高台县", + "山丹": "甘肃省张掖市山丹县", + "崆峒": "甘肃省平凉市崆峒区", + "泾川": "甘肃省平凉市泾川县", + "灵台": "甘肃省平凉市灵台县", + "崇信": "甘肃省平凉市崇信县", + "庄浪": "甘肃省平凉市庄浪县", + "静宁": "甘肃省平凉市静宁县", + "华亭": "甘肃省平凉市华亭市", + "肃州": "甘肃省酒泉市肃州区", + "金塔": "甘肃省酒泉市金塔县", + "瓜州": "甘肃省酒泉市瓜州县", + "玉门": "甘肃省酒泉市玉门市", + "敦煌": "甘肃省酒泉市敦煌市", + "西峰": "甘肃省庆阳市西峰区", + "庆城": "甘肃省庆阳市庆城县", + "华池": "甘肃省庆阳市华池县", + "合水": "甘肃省庆阳市合水县", + "正宁": "甘肃省庆阳市正宁县", + "镇原": "甘肃省庆阳市镇原县", + "安定": "甘肃省定西市安定区", + "通渭": "甘肃省定西市通渭县", + "陇西": "甘肃省定西市陇西县", + "渭源": "甘肃省定西市渭源县", + "临洮": "甘肃省定西市临洮县", + "武都": "甘肃省陇南市武都区", + "宕昌": "甘肃省陇南市宕昌县", + "西和": "甘肃省陇南市西和县", + "两当": "甘肃省陇南市两当县", + "康乐": "甘肃省临夏回族自治州康乐县", + "永靖": "甘肃省临夏回族自治州永靖县", + "广河": "甘肃省临夏回族自治州广河县", + "和政": "甘肃省临夏回族自治州和政县", + "临潭": "甘肃省甘南藏族自治州临潭县", + "卓尼": "甘肃省甘南藏族自治州卓尼县", + "舟曲": "甘肃省甘南藏族自治州舟曲县", + "迭部": "甘肃省甘南藏族自治州迭部县", + "玛曲": "甘肃省甘南藏族自治州玛曲县", + "碌曲": "甘肃省甘南藏族自治州碌曲县", + "夏河": "甘肃省甘南藏族自治州夏河县", + "城东": "青海省西宁市城东区", + "城西": "青海省西宁市城西区", + "城北": "青海省西宁市城北区", + "湟中": "青海省西宁市湟中区", + "湟源": "青海省西宁市湟源县", + "乐都": "青海省海东市乐都区", + "平安": "青海省海东市平安区", + "祁连": "青海省海北藏族自治州祁连县", + "海晏": "青海省海北藏族自治州海晏县", + "刚察": "青海省海北藏族自治州刚察县", + "尖扎": "青海省黄南藏族自治州尖扎县", + "泽库": "青海省黄南藏族自治州泽库县", + "同德": "青海省海南藏族自治州同德县", + "贵德": "青海省海南藏族自治州贵德县", + "兴海": "青海省海南藏族自治州兴海县", + "贵南": "青海省海南藏族自治州贵南县", + "玛沁": "青海省果洛藏族自治州玛沁县", + "班玛": "青海省果洛藏族自治州班玛县", + "甘德": "青海省果洛藏族自治州甘德县", + "达日": "青海省果洛藏族自治州达日县", + "久治": "青海省果洛藏族自治州久治县", + "玛多": "青海省果洛藏族自治州玛多县", + "杂多": "青海省玉树藏族自治州杂多县", + "称多": "青海省玉树藏族自治州称多县", + "治多": "青海省玉树藏族自治州治多县", + "囊谦": "青海省玉树藏族自治州囊谦县", + "曲麻莱": "青海省玉树藏族自治州曲麻莱县", + "茫崖": "青海省海西蒙古族藏族自治州茫崖市", + "乌兰": "青海省海西蒙古族藏族自治州乌兰县", + "都兰": "青海省海西蒙古族藏族自治州都兰县", + "天峻": "青海省海西蒙古族藏族自治州天峻县", + "兴庆": "宁夏回族自治区银川市兴庆区", + "西夏": "宁夏回族自治区银川市西夏区", + "金凤": "宁夏回族自治区银川市金凤区", + "永宁": "宁夏回族自治区银川市永宁县", + "贺兰": "宁夏回族自治区银川市贺兰县", + "灵武": "宁夏回族自治区银川市灵武市", + "大武口": "宁夏回族自治区石嘴山市大武口区", + "惠农": "宁夏回族自治区石嘴山市惠农区", + "平罗": "宁夏回族自治区石嘴山市平罗县", + "利通": "宁夏回族自治区吴忠市利通区", + "红寺堡": "宁夏回族自治区吴忠市红寺堡区", + "盐池": "宁夏回族自治区吴忠市盐池县", + "同心": "宁夏回族自治区吴忠市同心县", + "青铜峡": "宁夏回族自治区吴忠市青铜峡市", + "原州": "宁夏回族自治区固原市原州区", + "西吉": "宁夏回族自治区固原市西吉县", + "隆德": "宁夏回族自治区固原市隆德县", + "泾源": "宁夏回族自治区固原市泾源县", + "彭阳": "宁夏回族自治区固原市彭阳县", + "沙坡头": "宁夏回族自治区中卫市沙坡头区", + "中宁": "宁夏回族自治区中卫市中宁县", + "海原": "宁夏回族自治区中卫市海原县", + "天山": "新疆维吾尔自治区乌鲁木齐市天山区", + "沙依巴克": "新疆维吾尔自治区乌鲁木齐市沙依巴克区", + "新市": "新疆维吾尔自治区乌鲁木齐市新市区", + "水磨沟": "新疆维吾尔自治区乌鲁木齐市水磨沟区", + "头屯河": "新疆维吾尔自治区乌鲁木齐市头屯河区", + "达坂城": "新疆维吾尔自治区乌鲁木齐市达坂城区", + "米东": "新疆维吾尔自治区乌鲁木齐市米东区", + "独山子": "新疆维吾尔自治区克拉玛依市独山子区", + "白碱滩": "新疆维吾尔自治区克拉玛依市白碱滩区", + "乌尔禾": "新疆维吾尔自治区克拉玛依市乌尔禾区", + "高昌": "新疆维吾尔自治区吐鲁番市高昌区", + "鄯善": "新疆维吾尔自治区吐鲁番市鄯善县", + "托克逊": "新疆维吾尔自治区吐鲁番市托克逊县", + "伊州": "新疆维吾尔自治区哈密市伊州区", + "巴里坤哈萨克": "新疆维吾尔自治区哈密市巴里坤哈萨克自治县", + "伊吾": "新疆维吾尔自治区哈密市伊吾县", + "阜康": "新疆维吾尔自治区昌吉回族自治州阜康市", + "呼图壁": "新疆维吾尔自治区昌吉回族自治州呼图壁县", + "玛纳斯": "新疆维吾尔自治区昌吉回族自治州玛纳斯县", + "奇台": "新疆维吾尔自治区昌吉回族自治州奇台县", + "吉木萨尔": "新疆维吾尔自治区昌吉回族自治州吉木萨尔县", + "木垒哈萨克": "新疆维吾尔自治区昌吉回族自治州木垒哈萨克自治县", + "阿拉山口": "新疆维吾尔自治区博尔塔拉蒙古自治州阿拉山口市", + "精河": "新疆维吾尔自治区博尔塔拉蒙古自治州精河县", + "温泉": "新疆维吾尔自治区博尔塔拉蒙古自治州温泉县", + "轮台": "新疆维吾尔自治区巴音郭楞蒙古自治州轮台县", + "尉犁": "新疆维吾尔自治区巴音郭楞蒙古自治州尉犁县", + "若羌": "新疆维吾尔自治区巴音郭楞蒙古自治州若羌县", + "且末": "新疆维吾尔自治区巴音郭楞蒙古自治州且末县", + "和静": "新疆维吾尔自治区巴音郭楞蒙古自治州和静县", + "和硕": "新疆维吾尔自治区巴音郭楞蒙古自治州和硕县", + "博湖": "新疆维吾尔自治区巴音郭楞蒙古自治州博湖县", + "库车": "新疆维吾尔自治区阿克苏地区库车市", + "温宿": "新疆维吾尔自治区阿克苏地区温宿县", + "沙雅": "新疆维吾尔自治区阿克苏地区沙雅县", + "新和": "新疆维吾尔自治区阿克苏地区新和县", + "拜城": "新疆维吾尔自治区阿克苏地区拜城县", + "乌什": "新疆维吾尔自治区阿克苏地区乌什县", + "阿瓦提": "新疆维吾尔自治区阿克苏地区阿瓦提县", + "柯坪": "新疆维吾尔自治区阿克苏地区柯坪县", + "阿克陶": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿克陶县", + "阿合奇": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿合奇县", + "乌恰": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州乌恰县", + "疏附": "新疆维吾尔自治区喀什地区疏附县", + "疏勒": "新疆维吾尔自治区喀什地区疏勒县", + "英吉沙": "新疆维吾尔自治区喀什地区英吉沙县", + "泽普": "新疆维吾尔自治区喀什地区泽普县", + "莎车": "新疆维吾尔自治区喀什地区莎车县", + "叶城": "新疆维吾尔自治区喀什地区叶城县", + "麦盖提": "新疆维吾尔自治区喀什地区麦盖提县", + "岳普湖": "新疆维吾尔自治区喀什地区岳普湖县", + "伽师": "新疆维吾尔自治区喀什地区伽师县", + "巴楚": "新疆维吾尔自治区喀什地区巴楚县", + "塔什库尔干塔吉克": "新疆维吾尔自治区喀什地区塔什库尔干塔吉克自治县", + "墨玉": "新疆维吾尔自治区和田地区墨玉县", + "皮山": "新疆维吾尔自治区和田地区皮山县", + "洛浦": "新疆维吾尔自治区和田地区洛浦县", + "策勒": "新疆维吾尔自治区和田地区策勒县", + "于田": "新疆维吾尔自治区和田地区于田县", + "民丰": "新疆维吾尔自治区和田地区民丰县", + "奎屯": "新疆维吾尔自治区伊犁哈萨克自治州奎屯市", + "霍尔果斯": "新疆维吾尔自治区伊犁哈萨克自治州霍尔果斯市", + "察布查尔锡伯": "新疆维吾尔自治区伊犁哈萨克自治州察布查尔锡伯自治县", + "霍城": "新疆维吾尔自治区伊犁哈萨克自治州霍城县", + "巩留": "新疆维吾尔自治区伊犁哈萨克自治州巩留县", + "新源": "新疆维吾尔自治区伊犁哈萨克自治州新源县", + "昭苏": "新疆维吾尔自治区伊犁哈萨克自治州昭苏县", + "特克斯": "新疆维吾尔自治区伊犁哈萨克自治州特克斯县", + "尼勒克": "新疆维吾尔自治区伊犁哈萨克自治州尼勒克县", + "乌苏": "新疆维吾尔自治区塔城地区乌苏市", + "额敏": "新疆维吾尔自治区塔城地区额敏县", + "托里": "新疆维吾尔自治区塔城地区托里县", + "裕民": "新疆维吾尔自治区塔城地区裕民县", + "和布克赛尔蒙古": "新疆维吾尔自治区塔城地区和布克赛尔蒙古自治县", + "布尔津": "新疆维吾尔自治区阿勒泰地区布尔津县", + "富蕴": "新疆维吾尔自治区阿勒泰地区富蕴县", + "福海": "新疆维吾尔自治区阿勒泰地区福海县", + "哈巴河": "新疆维吾尔自治区阿勒泰地区哈巴河县", + "青河": "新疆维吾尔自治区阿勒泰地区青河县", + "吉木乃": "新疆维吾尔自治区阿勒泰地区吉木乃县", + "铁门关": "新疆维吾尔自治区铁门关市", + "双河": "新疆维吾尔自治区双河市", + "可克达拉": "新疆维吾尔自治区可克达拉市", + "昆玉": "新疆维吾尔自治区昆玉市", + "胡杨河": "新疆维吾尔自治区胡杨河市", + "中西": "香港特别行政区中西区", + "湾仔": "香港特别行政区湾仔区", + "油尖旺": "香港特别行政区油尖旺区", + "深水埗": "香港特别行政区深水埗区", + "九龙城": "香港特别行政区九龙城区", + "黄大仙": "香港特别行政区黄大仙区", + "观塘": "香港特别行政区观塘区", + "荃湾": "香港特别行政区荃湾区", + "屯门": "香港特别行政区屯门区", + "元朗": "香港特别行政区元朗区", + "西贡": "香港特别行政区西贡区", + "沙田": "香港特别行政区沙田区", + "葵青": "香港特别行政区葵青区", + "离岛": "香港特别行政区离岛区", + "花地玛堂": "澳门特别行政区花地玛堂区", + "花王堂": "澳门特别行政区花王堂区", + "望德堂": "澳门特别行政区望德堂区", + "大堂": "澳门特别行政区大堂区", + "风顺堂": "澳门特别行政区风顺堂区", + "嘉模堂": "澳门特别行政区嘉模堂区", + "路凼填海": "澳门特别行政区路凼填海区", + "圣方济各堂": "澳门特别行政区圣方济各堂区", + "北京东城区": "北京市东城区", + "北京西城区": "北京市西城区", + "北京朝阳区": "北京市朝阳区", + "北京丰台区": "北京市丰台区", + "北京石景山区": "北京市石景山区", + "北京海淀区": "北京市海淀区", + "北京门头沟区": "北京市门头沟区", + "北京房山区": "北京市房山区", + "北京通州区": "北京市通州区", + "北京顺义区": "北京市顺义区", + "北京昌平区": "北京市昌平区", + "北京大兴区": "北京市大兴区", + "北京怀柔区": "北京市怀柔区", + "北京平谷区": "北京市平谷区", + "北京密云区": "北京市密云区", + "北京延庆区": "北京市延庆区", + "天津和平区": "天津市和平区", + "天津河东区": "天津市河东区", + "天津河西区": "天津市河西区", + "天津南开区": "天津市南开区", + "天津河北区": "天津市河北区", + "天津红桥区": "天津市红桥区", + "天津东丽区": "天津市东丽区", + "天津西青区": "天津市西青区", + "天津津南区": "天津市津南区", + "天津北辰区": "天津市北辰区", + "天津武清区": "天津市武清区", + "天津宝坻区": "天津市宝坻区", + "天津滨海新区": "天津市滨海新区", + "天津宁河区": "天津市宁河区", + "天津静海区": "天津市静海区", + "天津蓟州区": "天津市蓟州区", + "河北石家庄市长安区": "河北省石家庄市长安区", + "石家庄市长安区": "河北省石家庄市长安区", + "河北石家庄市桥西区": "河北省石家庄市桥西区", + "石家庄市桥西区": "河北省石家庄市桥西区", + "河北石家庄市新华区": "河北省石家庄市新华区", + "石家庄市新华区": "河北省石家庄市新华区", + "河北石家庄市井陉矿区": "河北省石家庄市井陉矿区", + "石家庄市井陉矿区": "河北省石家庄市井陉矿区", + "河北石家庄市裕华区": "河北省石家庄市裕华区", + "石家庄市裕华区": "河北省石家庄市裕华区", + "河北石家庄市藁城区": "河北省石家庄市藁城区", + "石家庄市藁城区": "河北省石家庄市藁城区", + "河北石家庄市鹿泉区": "河北省石家庄市鹿泉区", + "石家庄市鹿泉区": "河北省石家庄市鹿泉区", + "河北石家庄市栾城区": "河北省石家庄市栾城区", + "石家庄市栾城区": "河北省石家庄市栾城区", + "河北石家庄市井陉县": "河北省石家庄市井陉县", + "石家庄市井陉县": "河北省石家庄市井陉县", + "河北石家庄市正定县": "河北省石家庄市正定县", + "石家庄市正定县": "河北省石家庄市正定县", + "河北石家庄市行唐县": "河北省石家庄市行唐县", + "石家庄市行唐县": "河北省石家庄市行唐县", + "河北石家庄市灵寿县": "河北省石家庄市灵寿县", + "石家庄市灵寿县": "河北省石家庄市灵寿县", + "河北石家庄市高邑县": "河北省石家庄市高邑县", + "石家庄市高邑县": "河北省石家庄市高邑县", + "河北石家庄市深泽县": "河北省石家庄市深泽县", + "石家庄市深泽县": "河北省石家庄市深泽县", + "河北石家庄市赞皇县": "河北省石家庄市赞皇县", + "石家庄市赞皇县": "河北省石家庄市赞皇县", + "河北石家庄市无极县": "河北省石家庄市无极县", + "石家庄市无极县": "河北省石家庄市无极县", + "河北石家庄市平山县": "河北省石家庄市平山县", + "石家庄市平山县": "河北省石家庄市平山县", + "河北石家庄市元氏县": "河北省石家庄市元氏县", + "石家庄市元氏县": "河北省石家庄市元氏县", + "河北石家庄市赵县": "河北省石家庄市赵县", + "石家庄市赵县": "河北省石家庄市赵县", + "河北石家庄市辛集市": "河北省石家庄市辛集市", + "石家庄市辛集市": "河北省石家庄市辛集市", + "河北石家庄市晋州市": "河北省石家庄市晋州市", + "石家庄市晋州市": "河北省石家庄市晋州市", + "河北石家庄市新乐市": "河北省石家庄市新乐市", + "石家庄市新乐市": "河北省石家庄市新乐市", + "河北唐山市路南区": "河北省唐山市路南区", + "唐山市路南区": "河北省唐山市路南区", + "河北唐山市路北区": "河北省唐山市路北区", + "唐山市路北区": "河北省唐山市路北区", + "河北唐山市古冶区": "河北省唐山市古冶区", + "唐山市古冶区": "河北省唐山市古冶区", + "河北唐山市开平区": "河北省唐山市开平区", + "唐山市开平区": "河北省唐山市开平区", + "河北唐山市丰南区": "河北省唐山市丰南区", + "唐山市丰南区": "河北省唐山市丰南区", + "河北唐山市丰润区": "河北省唐山市丰润区", + "唐山市丰润区": "河北省唐山市丰润区", + "河北唐山市曹妃甸区": "河北省唐山市曹妃甸区", + "唐山市曹妃甸区": "河北省唐山市曹妃甸区", + "河北唐山市滦南县": "河北省唐山市滦南县", + "唐山市滦南县": "河北省唐山市滦南县", + "河北唐山市乐亭县": "河北省唐山市乐亭县", + "唐山市乐亭县": "河北省唐山市乐亭县", + "河北唐山市迁西县": "河北省唐山市迁西县", + "唐山市迁西县": "河北省唐山市迁西县", + "河北唐山市玉田县": "河北省唐山市玉田县", + "唐山市玉田县": "河北省唐山市玉田县", + "河北唐山市遵化市": "河北省唐山市遵化市", + "唐山市遵化市": "河北省唐山市遵化市", + "河北唐山市迁安市": "河北省唐山市迁安市", + "唐山市迁安市": "河北省唐山市迁安市", + "河北唐山市滦州市": "河北省唐山市滦州市", + "唐山市滦州市": "河北省唐山市滦州市", + "河北秦皇岛市海港区": "河北省秦皇岛市海港区", + "秦皇岛市海港区": "河北省秦皇岛市海港区", + "河北秦皇岛市山海关区": "河北省秦皇岛市山海关区", + "秦皇岛市山海关区": "河北省秦皇岛市山海关区", + "河北秦皇岛市北戴河区": "河北省秦皇岛市北戴河区", + "秦皇岛市北戴河区": "河北省秦皇岛市北戴河区", + "河北秦皇岛市抚宁区": "河北省秦皇岛市抚宁区", + "秦皇岛市抚宁区": "河北省秦皇岛市抚宁区", + "河北秦皇岛市青龙满族自治县": "河北省秦皇岛市青龙满族自治县", + "秦皇岛市青龙满族自治县": "河北省秦皇岛市青龙满族自治县", + "河北秦皇岛市昌黎县": "河北省秦皇岛市昌黎县", + "秦皇岛市昌黎县": "河北省秦皇岛市昌黎县", + "河北秦皇岛市卢龙县": "河北省秦皇岛市卢龙县", + "秦皇岛市卢龙县": "河北省秦皇岛市卢龙县", + "河北邯郸市邯山区": "河北省邯郸市邯山区", + "邯郸市邯山区": "河北省邯郸市邯山区", + "河北邯郸市丛台区": "河北省邯郸市丛台区", + "邯郸市丛台区": "河北省邯郸市丛台区", + "河北邯郸市复兴区": "河北省邯郸市复兴区", + "邯郸市复兴区": "河北省邯郸市复兴区", + "河北邯郸市峰峰矿区": "河北省邯郸市峰峰矿区", + "邯郸市峰峰矿区": "河北省邯郸市峰峰矿区", + "河北邯郸市肥乡区": "河北省邯郸市肥乡区", + "邯郸市肥乡区": "河北省邯郸市肥乡区", + "河北邯郸市永年区": "河北省邯郸市永年区", + "邯郸市永年区": "河北省邯郸市永年区", + "河北邯郸市临漳县": "河北省邯郸市临漳县", + "邯郸市临漳县": "河北省邯郸市临漳县", + "河北邯郸市成安县": "河北省邯郸市成安县", + "邯郸市成安县": "河北省邯郸市成安县", + "河北邯郸市大名县": "河北省邯郸市大名县", + "邯郸市大名县": "河北省邯郸市大名县", + "河北邯郸市涉县": "河北省邯郸市涉县", + "邯郸市涉县": "河北省邯郸市涉县", + "河北邯郸市磁县": "河北省邯郸市磁县", + "邯郸市磁县": "河北省邯郸市磁县", + "河北邯郸市邱县": "河北省邯郸市邱县", + "邯郸市邱县": "河北省邯郸市邱县", + "河北邯郸市鸡泽县": "河北省邯郸市鸡泽县", + "邯郸市鸡泽县": "河北省邯郸市鸡泽县", + "河北邯郸市广平县": "河北省邯郸市广平县", + "邯郸市广平县": "河北省邯郸市广平县", + "河北邯郸市馆陶县": "河北省邯郸市馆陶县", + "邯郸市馆陶县": "河北省邯郸市馆陶县", + "河北邯郸市魏县": "河北省邯郸市魏县", + "邯郸市魏县": "河北省邯郸市魏县", + "河北邯郸市曲周县": "河北省邯郸市曲周县", + "邯郸市曲周县": "河北省邯郸市曲周县", + "河北邯郸市武安市": "河北省邯郸市武安市", + "邯郸市武安市": "河北省邯郸市武安市", + "河北邢台市襄都区": "河北省邢台市襄都区", + "邢台市襄都区": "河北省邢台市襄都区", + "河北邢台市信都区": "河北省邢台市信都区", + "邢台市信都区": "河北省邢台市信都区", + "河北邢台市任泽区": "河北省邢台市任泽区", + "邢台市任泽区": "河北省邢台市任泽区", + "河北邢台市南和区": "河北省邢台市南和区", + "邢台市南和区": "河北省邢台市南和区", + "河北邢台市临城县": "河北省邢台市临城县", + "邢台市临城县": "河北省邢台市临城县", + "河北邢台市内丘县": "河北省邢台市内丘县", + "邢台市内丘县": "河北省邢台市内丘县", + "河北邢台市柏乡县": "河北省邢台市柏乡县", + "邢台市柏乡县": "河北省邢台市柏乡县", + "河北邢台市隆尧县": "河北省邢台市隆尧县", + "邢台市隆尧县": "河北省邢台市隆尧县", + "河北邢台市宁晋县": "河北省邢台市宁晋县", + "邢台市宁晋县": "河北省邢台市宁晋县", + "河北邢台市巨鹿县": "河北省邢台市巨鹿县", + "邢台市巨鹿县": "河北省邢台市巨鹿县", + "河北邢台市新河县": "河北省邢台市新河县", + "邢台市新河县": "河北省邢台市新河县", + "河北邢台市广宗县": "河北省邢台市广宗县", + "邢台市广宗县": "河北省邢台市广宗县", + "河北邢台市平乡县": "河北省邢台市平乡县", + "邢台市平乡县": "河北省邢台市平乡县", + "河北邢台市威县": "河北省邢台市威县", + "邢台市威县": "河北省邢台市威县", + "河北邢台市清河县": "河北省邢台市清河县", + "邢台市清河县": "河北省邢台市清河县", + "河北邢台市临西县": "河北省邢台市临西县", + "邢台市临西县": "河北省邢台市临西县", + "河北邢台市南宫市": "河北省邢台市南宫市", + "邢台市南宫市": "河北省邢台市南宫市", + "河北邢台市沙河市": "河北省邢台市沙河市", + "邢台市沙河市": "河北省邢台市沙河市", + "河北保定市竞秀区": "河北省保定市竞秀区", + "保定市竞秀区": "河北省保定市竞秀区", + "河北保定市莲池区": "河北省保定市莲池区", + "保定市莲池区": "河北省保定市莲池区", + "河北保定市满城区": "河北省保定市满城区", + "保定市满城区": "河北省保定市满城区", + "河北保定市清苑区": "河北省保定市清苑区", + "保定市清苑区": "河北省保定市清苑区", + "河北保定市徐水区": "河北省保定市徐水区", + "保定市徐水区": "河北省保定市徐水区", + "河北保定市涞水县": "河北省保定市涞水县", + "保定市涞水县": "河北省保定市涞水县", + "河北保定市阜平县": "河北省保定市阜平县", + "保定市阜平县": "河北省保定市阜平县", + "河北保定市定兴县": "河北省保定市定兴县", + "保定市定兴县": "河北省保定市定兴县", + "河北保定市唐县": "河北省保定市唐县", + "保定市唐县": "河北省保定市唐县", + "河北保定市高阳县": "河北省保定市高阳县", + "保定市高阳县": "河北省保定市高阳县", + "河北保定市容城县": "河北省保定市容城县", + "保定市容城县": "河北省保定市容城县", + "河北保定市涞源县": "河北省保定市涞源县", + "保定市涞源县": "河北省保定市涞源县", + "河北保定市望都县": "河北省保定市望都县", + "保定市望都县": "河北省保定市望都县", + "河北保定市安新县": "河北省保定市安新县", + "保定市安新县": "河北省保定市安新县", + "河北保定市易县": "河北省保定市易县", + "保定市易县": "河北省保定市易县", + "河北保定市曲阳县": "河北省保定市曲阳县", + "保定市曲阳县": "河北省保定市曲阳县", + "河北保定市蠡县": "河北省保定市蠡县", + "保定市蠡县": "河北省保定市蠡县", + "河北保定市顺平县": "河北省保定市顺平县", + "保定市顺平县": "河北省保定市顺平县", + "河北保定市博野县": "河北省保定市博野县", + "保定市博野县": "河北省保定市博野县", + "河北保定市雄县": "河北省保定市雄县", + "保定市雄县": "河北省保定市雄县", + "河北保定市涿州市": "河北省保定市涿州市", + "保定市涿州市": "河北省保定市涿州市", + "河北保定市定州市": "河北省保定市定州市", + "保定市定州市": "河北省保定市定州市", + "河北保定市安国市": "河北省保定市安国市", + "保定市安国市": "河北省保定市安国市", + "河北保定市高碑店市": "河北省保定市高碑店市", + "保定市高碑店市": "河北省保定市高碑店市", + "河北张家口市桥东区": "河北省张家口市桥东区", + "张家口市桥东区": "河北省张家口市桥东区", + "河北张家口市桥西区": "河北省张家口市桥西区", + "张家口市桥西区": "河北省张家口市桥西区", + "河北张家口市宣化区": "河北省张家口市宣化区", + "张家口市宣化区": "河北省张家口市宣化区", + "河北张家口市下花园区": "河北省张家口市下花园区", + "张家口市下花园区": "河北省张家口市下花园区", + "河北张家口市万全区": "河北省张家口市万全区", + "张家口市万全区": "河北省张家口市万全区", + "河北张家口市崇礼区": "河北省张家口市崇礼区", + "张家口市崇礼区": "河北省张家口市崇礼区", + "河北张家口市张北县": "河北省张家口市张北县", + "张家口市张北县": "河北省张家口市张北县", + "河北张家口市康保县": "河北省张家口市康保县", + "张家口市康保县": "河北省张家口市康保县", + "河北张家口市沽源县": "河北省张家口市沽源县", + "张家口市沽源县": "河北省张家口市沽源县", + "河北张家口市尚义县": "河北省张家口市尚义县", + "张家口市尚义县": "河北省张家口市尚义县", + "河北张家口市蔚县": "河北省张家口市蔚县", + "张家口市蔚县": "河北省张家口市蔚县", + "河北张家口市阳原县": "河北省张家口市阳原县", + "张家口市阳原县": "河北省张家口市阳原县", + "河北张家口市怀安县": "河北省张家口市怀安县", + "张家口市怀安县": "河北省张家口市怀安县", + "河北张家口市怀来县": "河北省张家口市怀来县", + "张家口市怀来县": "河北省张家口市怀来县", + "河北张家口市涿鹿县": "河北省张家口市涿鹿县", + "张家口市涿鹿县": "河北省张家口市涿鹿县", + "河北张家口市赤城县": "河北省张家口市赤城县", + "张家口市赤城县": "河北省张家口市赤城县", + "河北承德市双桥区": "河北省承德市双桥区", + "承德市双桥区": "河北省承德市双桥区", + "河北承德市双滦区": "河北省承德市双滦区", + "承德市双滦区": "河北省承德市双滦区", + "河北承德市鹰手营子矿区": "河北省承德市鹰手营子矿区", + "承德市鹰手营子矿区": "河北省承德市鹰手营子矿区", + "河北承德市承德县": "河北省承德市承德县", + "承德市承德县": "河北省承德市承德县", + "河北承德市兴隆县": "河北省承德市兴隆县", + "承德市兴隆县": "河北省承德市兴隆县", + "河北承德市滦平县": "河北省承德市滦平县", + "承德市滦平县": "河北省承德市滦平县", + "河北承德市隆化县": "河北省承德市隆化县", + "承德市隆化县": "河北省承德市隆化县", + "河北承德市丰宁满族自治县": "河北省承德市丰宁满族自治县", + "承德市丰宁满族自治县": "河北省承德市丰宁满族自治县", + "河北承德市宽城满族自治县": "河北省承德市宽城满族自治县", + "承德市宽城满族自治县": "河北省承德市宽城满族自治县", + "河北承德市围场满族蒙古族自治县": "河北省承德市围场满族蒙古族自治县", + "承德市围场满族蒙古族自治县": "河北省承德市围场满族蒙古族自治县", + "河北承德市平泉市": "河北省承德市平泉市", + "承德市平泉市": "河北省承德市平泉市", + "河北沧州市新华区": "河北省沧州市新华区", + "沧州市新华区": "河北省沧州市新华区", + "河北沧州市运河区": "河北省沧州市运河区", + "沧州市运河区": "河北省沧州市运河区", + "河北沧州市沧县": "河北省沧州市沧县", + "沧州市沧县": "河北省沧州市沧县", + "河北沧州市青县": "河北省沧州市青县", + "沧州市青县": "河北省沧州市青县", + "河北沧州市东光县": "河北省沧州市东光县", + "沧州市东光县": "河北省沧州市东光县", + "河北沧州市海兴县": "河北省沧州市海兴县", + "沧州市海兴县": "河北省沧州市海兴县", + "河北沧州市盐山县": "河北省沧州市盐山县", + "沧州市盐山县": "河北省沧州市盐山县", + "河北沧州市肃宁县": "河北省沧州市肃宁县", + "沧州市肃宁县": "河北省沧州市肃宁县", + "河北沧州市南皮县": "河北省沧州市南皮县", + "沧州市南皮县": "河北省沧州市南皮县", + "河北沧州市吴桥县": "河北省沧州市吴桥县", + "沧州市吴桥县": "河北省沧州市吴桥县", + "河北沧州市献县": "河北省沧州市献县", + "沧州市献县": "河北省沧州市献县", + "河北沧州市孟村回族自治县": "河北省沧州市孟村回族自治县", + "沧州市孟村回族自治县": "河北省沧州市孟村回族自治县", + "河北沧州市泊头市": "河北省沧州市泊头市", + "沧州市泊头市": "河北省沧州市泊头市", + "河北沧州市任丘市": "河北省沧州市任丘市", + "沧州市任丘市": "河北省沧州市任丘市", + "河北沧州市黄骅市": "河北省沧州市黄骅市", + "沧州市黄骅市": "河北省沧州市黄骅市", + "河北沧州市河间市": "河北省沧州市河间市", + "沧州市河间市": "河北省沧州市河间市", + "河北廊坊市安次区": "河北省廊坊市安次区", + "廊坊市安次区": "河北省廊坊市安次区", + "河北廊坊市广阳区": "河北省廊坊市广阳区", + "廊坊市广阳区": "河北省廊坊市广阳区", + "河北廊坊市固安县": "河北省廊坊市固安县", + "廊坊市固安县": "河北省廊坊市固安县", + "河北廊坊市永清县": "河北省廊坊市永清县", + "廊坊市永清县": "河北省廊坊市永清县", + "河北廊坊市香河县": "河北省廊坊市香河县", + "廊坊市香河县": "河北省廊坊市香河县", + "河北廊坊市大城县": "河北省廊坊市大城县", + "廊坊市大城县": "河北省廊坊市大城县", + "河北廊坊市文安县": "河北省廊坊市文安县", + "廊坊市文安县": "河北省廊坊市文安县", + "河北廊坊市大厂回族自治县": "河北省廊坊市大厂回族自治县", + "廊坊市大厂回族自治县": "河北省廊坊市大厂回族自治县", + "河北廊坊市霸州市": "河北省廊坊市霸州市", + "廊坊市霸州市": "河北省廊坊市霸州市", + "河北廊坊市三河市": "河北省廊坊市三河市", + "廊坊市三河市": "河北省廊坊市三河市", + "河北衡水市桃城区": "河北省衡水市桃城区", + "衡水市桃城区": "河北省衡水市桃城区", + "河北衡水市冀州区": "河北省衡水市冀州区", + "衡水市冀州区": "河北省衡水市冀州区", + "河北衡水市枣强县": "河北省衡水市枣强县", + "衡水市枣强县": "河北省衡水市枣强县", + "河北衡水市武邑县": "河北省衡水市武邑县", + "衡水市武邑县": "河北省衡水市武邑县", + "河北衡水市武强县": "河北省衡水市武强县", + "衡水市武强县": "河北省衡水市武强县", + "河北衡水市饶阳县": "河北省衡水市饶阳县", + "衡水市饶阳县": "河北省衡水市饶阳县", + "河北衡水市安平县": "河北省衡水市安平县", + "衡水市安平县": "河北省衡水市安平县", + "河北衡水市故城县": "河北省衡水市故城县", + "衡水市故城县": "河北省衡水市故城县", + "河北衡水市景县": "河北省衡水市景县", + "衡水市景县": "河北省衡水市景县", + "河北衡水市阜城县": "河北省衡水市阜城县", + "衡水市阜城县": "河北省衡水市阜城县", + "河北衡水市深州市": "河北省衡水市深州市", + "衡水市深州市": "河北省衡水市深州市", + "山西太原市小店区": "山西省太原市小店区", + "太原市小店区": "山西省太原市小店区", + "山西太原市迎泽区": "山西省太原市迎泽区", + "太原市迎泽区": "山西省太原市迎泽区", + "山西太原市杏花岭区": "山西省太原市杏花岭区", + "太原市杏花岭区": "山西省太原市杏花岭区", + "山西太原市尖草坪区": "山西省太原市尖草坪区", + "太原市尖草坪区": "山西省太原市尖草坪区", + "山西太原市万柏林区": "山西省太原市万柏林区", + "太原市万柏林区": "山西省太原市万柏林区", + "山西太原市晋源区": "山西省太原市晋源区", + "太原市晋源区": "山西省太原市晋源区", + "山西太原市清徐县": "山西省太原市清徐县", + "太原市清徐县": "山西省太原市清徐县", + "山西太原市阳曲县": "山西省太原市阳曲县", + "太原市阳曲县": "山西省太原市阳曲县", + "山西太原市娄烦县": "山西省太原市娄烦县", + "太原市娄烦县": "山西省太原市娄烦县", + "山西太原市古交市": "山西省太原市古交市", + "太原市古交市": "山西省太原市古交市", + "山西大同市新荣区": "山西省大同市新荣区", + "大同市新荣区": "山西省大同市新荣区", + "山西大同市平城区": "山西省大同市平城区", + "大同市平城区": "山西省大同市平城区", + "山西大同市云冈区": "山西省大同市云冈区", + "大同市云冈区": "山西省大同市云冈区", + "山西大同市云州区": "山西省大同市云州区", + "大同市云州区": "山西省大同市云州区", + "山西大同市阳高县": "山西省大同市阳高县", + "大同市阳高县": "山西省大同市阳高县", + "山西大同市天镇县": "山西省大同市天镇县", + "大同市天镇县": "山西省大同市天镇县", + "山西大同市广灵县": "山西省大同市广灵县", + "大同市广灵县": "山西省大同市广灵县", + "山西大同市灵丘县": "山西省大同市灵丘县", + "大同市灵丘县": "山西省大同市灵丘县", + "山西大同市浑源县": "山西省大同市浑源县", + "大同市浑源县": "山西省大同市浑源县", + "山西大同市左云县": "山西省大同市左云县", + "大同市左云县": "山西省大同市左云县", + "山西阳泉市城区": "山西省阳泉市城区", + "阳泉市城区": "山西省阳泉市城区", + "山西阳泉市矿区": "山西省阳泉市矿区", + "阳泉市矿区": "山西省阳泉市矿区", + "山西阳泉市郊区": "山西省阳泉市郊区", + "阳泉市郊区": "山西省阳泉市郊区", + "山西阳泉市平定县": "山西省阳泉市平定县", + "阳泉市平定县": "山西省阳泉市平定县", + "山西阳泉市盂县": "山西省阳泉市盂县", + "阳泉市盂县": "山西省阳泉市盂县", + "山西长治市潞州区": "山西省长治市潞州区", + "长治市潞州区": "山西省长治市潞州区", + "山西长治市上党区": "山西省长治市上党区", + "长治市上党区": "山西省长治市上党区", + "山西长治市屯留区": "山西省长治市屯留区", + "长治市屯留区": "山西省长治市屯留区", + "山西长治市潞城区": "山西省长治市潞城区", + "长治市潞城区": "山西省长治市潞城区", + "山西长治市襄垣县": "山西省长治市襄垣县", + "长治市襄垣县": "山西省长治市襄垣县", + "山西长治市平顺县": "山西省长治市平顺县", + "长治市平顺县": "山西省长治市平顺县", + "山西长治市黎城县": "山西省长治市黎城县", + "长治市黎城县": "山西省长治市黎城县", + "山西长治市壶关县": "山西省长治市壶关县", + "长治市壶关县": "山西省长治市壶关县", + "山西长治市长子县": "山西省长治市长子县", + "长治市长子县": "山西省长治市长子县", + "山西长治市武乡县": "山西省长治市武乡县", + "长治市武乡县": "山西省长治市武乡县", + "山西长治市沁县": "山西省长治市沁县", + "长治市沁县": "山西省长治市沁县", + "山西长治市沁源县": "山西省长治市沁源县", + "长治市沁源县": "山西省长治市沁源县", + "山西晋城市城区": "山西省晋城市城区", + "晋城市城区": "山西省晋城市城区", + "山西晋城市沁水县": "山西省晋城市沁水县", + "晋城市沁水县": "山西省晋城市沁水县", + "山西晋城市阳城县": "山西省晋城市阳城县", + "晋城市阳城县": "山西省晋城市阳城县", + "山西晋城市陵川县": "山西省晋城市陵川县", + "晋城市陵川县": "山西省晋城市陵川县", + "山西晋城市泽州县": "山西省晋城市泽州县", + "晋城市泽州县": "山西省晋城市泽州县", + "山西晋城市高平市": "山西省晋城市高平市", + "晋城市高平市": "山西省晋城市高平市", + "山西朔州市朔城区": "山西省朔州市朔城区", + "朔州市朔城区": "山西省朔州市朔城区", + "山西朔州市平鲁区": "山西省朔州市平鲁区", + "朔州市平鲁区": "山西省朔州市平鲁区", + "山西朔州市山阴县": "山西省朔州市山阴县", + "朔州市山阴县": "山西省朔州市山阴县", + "山西朔州市应县": "山西省朔州市应县", + "朔州市应县": "山西省朔州市应县", + "山西朔州市右玉县": "山西省朔州市右玉县", + "朔州市右玉县": "山西省朔州市右玉县", + "山西朔州市怀仁市": "山西省朔州市怀仁市", + "朔州市怀仁市": "山西省朔州市怀仁市", + "山西晋中市榆次区": "山西省晋中市榆次区", + "晋中市榆次区": "山西省晋中市榆次区", + "山西晋中市太谷区": "山西省晋中市太谷区", + "晋中市太谷区": "山西省晋中市太谷区", + "山西晋中市榆社县": "山西省晋中市榆社县", + "晋中市榆社县": "山西省晋中市榆社县", + "山西晋中市左权县": "山西省晋中市左权县", + "晋中市左权县": "山西省晋中市左权县", + "山西晋中市和顺县": "山西省晋中市和顺县", + "晋中市和顺县": "山西省晋中市和顺县", + "山西晋中市昔阳县": "山西省晋中市昔阳县", + "晋中市昔阳县": "山西省晋中市昔阳县", + "山西晋中市寿阳县": "山西省晋中市寿阳县", + "晋中市寿阳县": "山西省晋中市寿阳县", + "山西晋中市祁县": "山西省晋中市祁县", + "晋中市祁县": "山西省晋中市祁县", + "山西晋中市平遥县": "山西省晋中市平遥县", + "晋中市平遥县": "山西省晋中市平遥县", + "山西晋中市灵石县": "山西省晋中市灵石县", + "晋中市灵石县": "山西省晋中市灵石县", + "山西晋中市介休市": "山西省晋中市介休市", + "晋中市介休市": "山西省晋中市介休市", + "山西运城市盐湖区": "山西省运城市盐湖区", + "运城市盐湖区": "山西省运城市盐湖区", + "山西运城市临猗县": "山西省运城市临猗县", + "运城市临猗县": "山西省运城市临猗县", + "山西运城市万荣县": "山西省运城市万荣县", + "运城市万荣县": "山西省运城市万荣县", + "山西运城市闻喜县": "山西省运城市闻喜县", + "运城市闻喜县": "山西省运城市闻喜县", + "山西运城市稷山县": "山西省运城市稷山县", + "运城市稷山县": "山西省运城市稷山县", + "山西运城市新绛县": "山西省运城市新绛县", + "运城市新绛县": "山西省运城市新绛县", + "山西运城市绛县": "山西省运城市绛县", + "运城市绛县": "山西省运城市绛县", + "山西运城市垣曲县": "山西省运城市垣曲县", + "运城市垣曲县": "山西省运城市垣曲县", + "山西运城市夏县": "山西省运城市夏县", + "运城市夏县": "山西省运城市夏县", + "山西运城市平陆县": "山西省运城市平陆县", + "运城市平陆县": "山西省运城市平陆县", + "山西运城市芮城县": "山西省运城市芮城县", + "运城市芮城县": "山西省运城市芮城县", + "山西运城市永济市": "山西省运城市永济市", + "运城市永济市": "山西省运城市永济市", + "山西运城市河津市": "山西省运城市河津市", + "运城市河津市": "山西省运城市河津市", + "山西忻州市忻府区": "山西省忻州市忻府区", + "忻州市忻府区": "山西省忻州市忻府区", + "山西忻州市定襄县": "山西省忻州市定襄县", + "忻州市定襄县": "山西省忻州市定襄县", + "山西忻州市五台县": "山西省忻州市五台县", + "忻州市五台县": "山西省忻州市五台县", + "山西忻州市代县": "山西省忻州市代县", + "忻州市代县": "山西省忻州市代县", + "山西忻州市繁峙县": "山西省忻州市繁峙县", + "忻州市繁峙县": "山西省忻州市繁峙县", + "山西忻州市宁武县": "山西省忻州市宁武县", + "忻州市宁武县": "山西省忻州市宁武县", + "山西忻州市静乐县": "山西省忻州市静乐县", + "忻州市静乐县": "山西省忻州市静乐县", + "山西忻州市神池县": "山西省忻州市神池县", + "忻州市神池县": "山西省忻州市神池县", + "山西忻州市五寨县": "山西省忻州市五寨县", + "忻州市五寨县": "山西省忻州市五寨县", + "山西忻州市岢岚县": "山西省忻州市岢岚县", + "忻州市岢岚县": "山西省忻州市岢岚县", + "山西忻州市河曲县": "山西省忻州市河曲县", + "忻州市河曲县": "山西省忻州市河曲县", + "山西忻州市保德县": "山西省忻州市保德县", + "忻州市保德县": "山西省忻州市保德县", + "山西忻州市偏关县": "山西省忻州市偏关县", + "忻州市偏关县": "山西省忻州市偏关县", + "山西忻州市原平市": "山西省忻州市原平市", + "忻州市原平市": "山西省忻州市原平市", + "山西临汾市尧都区": "山西省临汾市尧都区", + "临汾市尧都区": "山西省临汾市尧都区", + "山西临汾市曲沃县": "山西省临汾市曲沃县", + "临汾市曲沃县": "山西省临汾市曲沃县", + "山西临汾市翼城县": "山西省临汾市翼城县", + "临汾市翼城县": "山西省临汾市翼城县", + "山西临汾市襄汾县": "山西省临汾市襄汾县", + "临汾市襄汾县": "山西省临汾市襄汾县", + "山西临汾市洪洞县": "山西省临汾市洪洞县", + "临汾市洪洞县": "山西省临汾市洪洞县", + "山西临汾市古县": "山西省临汾市古县", + "临汾市古县": "山西省临汾市古县", + "山西临汾市安泽县": "山西省临汾市安泽县", + "临汾市安泽县": "山西省临汾市安泽县", + "山西临汾市浮山县": "山西省临汾市浮山县", + "临汾市浮山县": "山西省临汾市浮山县", + "山西临汾市吉县": "山西省临汾市吉县", + "临汾市吉县": "山西省临汾市吉县", + "山西临汾市乡宁县": "山西省临汾市乡宁县", + "临汾市乡宁县": "山西省临汾市乡宁县", + "山西临汾市大宁县": "山西省临汾市大宁县", + "临汾市大宁县": "山西省临汾市大宁县", + "山西临汾市隰县": "山西省临汾市隰县", + "临汾市隰县": "山西省临汾市隰县", + "山西临汾市永和县": "山西省临汾市永和县", + "临汾市永和县": "山西省临汾市永和县", + "山西临汾市蒲县": "山西省临汾市蒲县", + "临汾市蒲县": "山西省临汾市蒲县", + "山西临汾市汾西县": "山西省临汾市汾西县", + "临汾市汾西县": "山西省临汾市汾西县", + "山西临汾市侯马市": "山西省临汾市侯马市", + "临汾市侯马市": "山西省临汾市侯马市", + "山西临汾市霍州市": "山西省临汾市霍州市", + "临汾市霍州市": "山西省临汾市霍州市", + "山西吕梁市离石区": "山西省吕梁市离石区", + "吕梁市离石区": "山西省吕梁市离石区", + "山西吕梁市文水县": "山西省吕梁市文水县", + "吕梁市文水县": "山西省吕梁市文水县", + "山西吕梁市交城县": "山西省吕梁市交城县", + "吕梁市交城县": "山西省吕梁市交城县", + "山西吕梁市兴县": "山西省吕梁市兴县", + "吕梁市兴县": "山西省吕梁市兴县", + "山西吕梁市临县": "山西省吕梁市临县", + "吕梁市临县": "山西省吕梁市临县", + "山西吕梁市柳林县": "山西省吕梁市柳林县", + "吕梁市柳林县": "山西省吕梁市柳林县", + "山西吕梁市石楼县": "山西省吕梁市石楼县", + "吕梁市石楼县": "山西省吕梁市石楼县", + "山西吕梁市岚县": "山西省吕梁市岚县", + "吕梁市岚县": "山西省吕梁市岚县", + "山西吕梁市方山县": "山西省吕梁市方山县", + "吕梁市方山县": "山西省吕梁市方山县", + "山西吕梁市中阳县": "山西省吕梁市中阳县", + "吕梁市中阳县": "山西省吕梁市中阳县", + "山西吕梁市交口县": "山西省吕梁市交口县", + "吕梁市交口县": "山西省吕梁市交口县", + "山西吕梁市孝义市": "山西省吕梁市孝义市", + "吕梁市孝义市": "山西省吕梁市孝义市", + "山西吕梁市汾阳市": "山西省吕梁市汾阳市", + "吕梁市汾阳市": "山西省吕梁市汾阳市", + "内蒙古呼和浩特市新城区": "内蒙古自治区呼和浩特市新城区", + "呼和浩特市新城区": "内蒙古自治区呼和浩特市新城区", + "内蒙古呼和浩特市回民区": "内蒙古自治区呼和浩特市回民区", + "呼和浩特市回民区": "内蒙古自治区呼和浩特市回民区", + "内蒙古呼和浩特市玉泉区": "内蒙古自治区呼和浩特市玉泉区", + "呼和浩特市玉泉区": "内蒙古自治区呼和浩特市玉泉区", + "内蒙古呼和浩特市赛罕区": "内蒙古自治区呼和浩特市赛罕区", + "呼和浩特市赛罕区": "内蒙古自治区呼和浩特市赛罕区", + "内蒙古呼和浩特市土默特左旗": "内蒙古自治区呼和浩特市土默特左旗", + "呼和浩特市土默特左旗": "内蒙古自治区呼和浩特市土默特左旗", + "内蒙古呼和浩特市托克托县": "内蒙古自治区呼和浩特市托克托县", + "呼和浩特市托克托县": "内蒙古自治区呼和浩特市托克托县", + "内蒙古呼和浩特市和林格尔县": "内蒙古自治区呼和浩特市和林格尔县", + "呼和浩特市和林格尔县": "内蒙古自治区呼和浩特市和林格尔县", + "内蒙古呼和浩特市清水河县": "内蒙古自治区呼和浩特市清水河县", + "呼和浩特市清水河县": "内蒙古自治区呼和浩特市清水河县", + "内蒙古呼和浩特市武川县": "内蒙古自治区呼和浩特市武川县", + "呼和浩特市武川县": "内蒙古自治区呼和浩特市武川县", + "内蒙古包头市东河区": "内蒙古自治区包头市东河区", + "包头市东河区": "内蒙古自治区包头市东河区", + "内蒙古包头市昆都仑区": "内蒙古自治区包头市昆都仑区", + "包头市昆都仑区": "内蒙古自治区包头市昆都仑区", + "内蒙古包头市青山区": "内蒙古自治区包头市青山区", + "包头市青山区": "内蒙古自治区包头市青山区", + "内蒙古包头市石拐区": "内蒙古自治区包头市石拐区", + "包头市石拐区": "内蒙古自治区包头市石拐区", + "内蒙古包头市白云鄂博矿区": "内蒙古自治区包头市白云鄂博矿区", + "包头市白云鄂博矿区": "内蒙古自治区包头市白云鄂博矿区", + "内蒙古包头市九原区": "内蒙古自治区包头市九原区", + "包头市九原区": "内蒙古自治区包头市九原区", + "内蒙古包头市土默特右旗": "内蒙古自治区包头市土默特右旗", + "包头市土默特右旗": "内蒙古自治区包头市土默特右旗", + "内蒙古包头市固阳县": "内蒙古自治区包头市固阳县", + "包头市固阳县": "内蒙古自治区包头市固阳县", + "内蒙古包头市达尔罕茂明安联合旗": "内蒙古自治区包头市达尔罕茂明安联合旗", + "包头市达尔罕茂明安联合旗": "内蒙古自治区包头市达尔罕茂明安联合旗", + "内蒙古乌海市海勃湾区": "内蒙古自治区乌海市海勃湾区", + "乌海市海勃湾区": "内蒙古自治区乌海市海勃湾区", + "内蒙古乌海市海南区": "内蒙古自治区乌海市海南区", + "乌海市海南区": "内蒙古自治区乌海市海南区", + "内蒙古乌海市乌达区": "内蒙古自治区乌海市乌达区", + "乌海市乌达区": "内蒙古自治区乌海市乌达区", + "内蒙古赤峰市红山区": "内蒙古自治区赤峰市红山区", + "赤峰市红山区": "内蒙古自治区赤峰市红山区", + "内蒙古赤峰市元宝山区": "内蒙古自治区赤峰市元宝山区", + "赤峰市元宝山区": "内蒙古自治区赤峰市元宝山区", + "内蒙古赤峰市松山区": "内蒙古自治区赤峰市松山区", + "赤峰市松山区": "内蒙古自治区赤峰市松山区", + "内蒙古赤峰市阿鲁科尔沁旗": "内蒙古自治区赤峰市阿鲁科尔沁旗", + "赤峰市阿鲁科尔沁旗": "内蒙古自治区赤峰市阿鲁科尔沁旗", + "内蒙古赤峰市巴林左旗": "内蒙古自治区赤峰市巴林左旗", + "赤峰市巴林左旗": "内蒙古自治区赤峰市巴林左旗", + "内蒙古赤峰市巴林右旗": "内蒙古自治区赤峰市巴林右旗", + "赤峰市巴林右旗": "内蒙古自治区赤峰市巴林右旗", + "内蒙古赤峰市林西县": "内蒙古自治区赤峰市林西县", + "赤峰市林西县": "内蒙古自治区赤峰市林西县", + "内蒙古赤峰市克什克腾旗": "内蒙古自治区赤峰市克什克腾旗", + "赤峰市克什克腾旗": "内蒙古自治区赤峰市克什克腾旗", + "内蒙古赤峰市翁牛特旗": "内蒙古自治区赤峰市翁牛特旗", + "赤峰市翁牛特旗": "内蒙古自治区赤峰市翁牛特旗", + "内蒙古赤峰市喀喇沁旗": "内蒙古自治区赤峰市喀喇沁旗", + "赤峰市喀喇沁旗": "内蒙古自治区赤峰市喀喇沁旗", + "内蒙古赤峰市宁城县": "内蒙古自治区赤峰市宁城县", + "赤峰市宁城县": "内蒙古自治区赤峰市宁城县", + "内蒙古赤峰市敖汉旗": "内蒙古自治区赤峰市敖汉旗", + "赤峰市敖汉旗": "内蒙古自治区赤峰市敖汉旗", + "内蒙古通辽市科尔沁区": "内蒙古自治区通辽市科尔沁区", + "通辽市科尔沁区": "内蒙古自治区通辽市科尔沁区", + "内蒙古通辽市科尔沁左翼中旗": "内蒙古自治区通辽市科尔沁左翼中旗", + "通辽市科尔沁左翼中旗": "内蒙古自治区通辽市科尔沁左翼中旗", + "内蒙古通辽市科尔沁左翼后旗": "内蒙古自治区通辽市科尔沁左翼后旗", + "通辽市科尔沁左翼后旗": "内蒙古自治区通辽市科尔沁左翼后旗", + "内蒙古通辽市开鲁县": "内蒙古自治区通辽市开鲁县", + "通辽市开鲁县": "内蒙古自治区通辽市开鲁县", + "内蒙古通辽市库伦旗": "内蒙古自治区通辽市库伦旗", + "通辽市库伦旗": "内蒙古自治区通辽市库伦旗", + "内蒙古通辽市奈曼旗": "内蒙古自治区通辽市奈曼旗", + "通辽市奈曼旗": "内蒙古自治区通辽市奈曼旗", + "内蒙古通辽市扎鲁特旗": "内蒙古自治区通辽市扎鲁特旗", + "通辽市扎鲁特旗": "内蒙古自治区通辽市扎鲁特旗", + "内蒙古通辽市霍林郭勒市": "内蒙古自治区通辽市霍林郭勒市", + "通辽市霍林郭勒市": "内蒙古自治区通辽市霍林郭勒市", + "内蒙古鄂尔多斯市东胜区": "内蒙古自治区鄂尔多斯市东胜区", + "鄂尔多斯市东胜区": "内蒙古自治区鄂尔多斯市东胜区", + "内蒙古鄂尔多斯市康巴什区": "内蒙古自治区鄂尔多斯市康巴什区", + "鄂尔多斯市康巴什区": "内蒙古自治区鄂尔多斯市康巴什区", + "内蒙古鄂尔多斯市达拉特旗": "内蒙古自治区鄂尔多斯市达拉特旗", + "鄂尔多斯市达拉特旗": "内蒙古自治区鄂尔多斯市达拉特旗", + "内蒙古鄂尔多斯市准格尔旗": "内蒙古自治区鄂尔多斯市准格尔旗", + "鄂尔多斯市准格尔旗": "内蒙古自治区鄂尔多斯市准格尔旗", + "内蒙古鄂尔多斯市鄂托克前旗": "内蒙古自治区鄂尔多斯市鄂托克前旗", + "鄂尔多斯市鄂托克前旗": "内蒙古自治区鄂尔多斯市鄂托克前旗", + "内蒙古鄂尔多斯市鄂托克旗": "内蒙古自治区鄂尔多斯市鄂托克旗", + "鄂尔多斯市鄂托克旗": "内蒙古自治区鄂尔多斯市鄂托克旗", + "内蒙古鄂尔多斯市杭锦旗": "内蒙古自治区鄂尔多斯市杭锦旗", + "鄂尔多斯市杭锦旗": "内蒙古自治区鄂尔多斯市杭锦旗", + "内蒙古鄂尔多斯市乌审旗": "内蒙古自治区鄂尔多斯市乌审旗", + "鄂尔多斯市乌审旗": "内蒙古自治区鄂尔多斯市乌审旗", + "内蒙古鄂尔多斯市伊金霍洛旗": "内蒙古自治区鄂尔多斯市伊金霍洛旗", + "鄂尔多斯市伊金霍洛旗": "内蒙古自治区鄂尔多斯市伊金霍洛旗", + "内蒙古呼伦贝尔市海拉尔区": "内蒙古自治区呼伦贝尔市海拉尔区", + "呼伦贝尔市海拉尔区": "内蒙古自治区呼伦贝尔市海拉尔区", + "内蒙古呼伦贝尔市扎赉诺尔区": "内蒙古自治区呼伦贝尔市扎赉诺尔区", + "呼伦贝尔市扎赉诺尔区": "内蒙古自治区呼伦贝尔市扎赉诺尔区", + "内蒙古呼伦贝尔市阿荣旗": "内蒙古自治区呼伦贝尔市阿荣旗", + "呼伦贝尔市阿荣旗": "内蒙古自治区呼伦贝尔市阿荣旗", + "内蒙古呼伦贝尔市莫力达瓦达斡尔族自治旗": "内蒙古自治区呼伦贝尔市莫力达瓦达斡尔族自治旗", + "呼伦贝尔市莫力达瓦达斡尔族自治旗": "内蒙古自治区呼伦贝尔市莫力达瓦达斡尔族自治旗", + "内蒙古呼伦贝尔市鄂伦春自治旗": "内蒙古自治区呼伦贝尔市鄂伦春自治旗", + "呼伦贝尔市鄂伦春自治旗": "内蒙古自治区呼伦贝尔市鄂伦春自治旗", + "内蒙古呼伦贝尔市鄂温克族自治旗": "内蒙古自治区呼伦贝尔市鄂温克族自治旗", + "呼伦贝尔市鄂温克族自治旗": "内蒙古自治区呼伦贝尔市鄂温克族自治旗", + "内蒙古呼伦贝尔市陈巴尔虎旗": "内蒙古自治区呼伦贝尔市陈巴尔虎旗", + "呼伦贝尔市陈巴尔虎旗": "内蒙古自治区呼伦贝尔市陈巴尔虎旗", + "内蒙古呼伦贝尔市新巴尔虎左旗": "内蒙古自治区呼伦贝尔市新巴尔虎左旗", + "呼伦贝尔市新巴尔虎左旗": "内蒙古自治区呼伦贝尔市新巴尔虎左旗", + "内蒙古呼伦贝尔市新巴尔虎右旗": "内蒙古自治区呼伦贝尔市新巴尔虎右旗", + "呼伦贝尔市新巴尔虎右旗": "内蒙古自治区呼伦贝尔市新巴尔虎右旗", + "内蒙古呼伦贝尔市满洲里市": "内蒙古自治区呼伦贝尔市满洲里市", + "呼伦贝尔市满洲里市": "内蒙古自治区呼伦贝尔市满洲里市", + "内蒙古呼伦贝尔市牙克石市": "内蒙古自治区呼伦贝尔市牙克石市", + "呼伦贝尔市牙克石市": "内蒙古自治区呼伦贝尔市牙克石市", + "内蒙古呼伦贝尔市扎兰屯市": "内蒙古自治区呼伦贝尔市扎兰屯市", + "呼伦贝尔市扎兰屯市": "内蒙古自治区呼伦贝尔市扎兰屯市", + "内蒙古呼伦贝尔市额尔古纳市": "内蒙古自治区呼伦贝尔市额尔古纳市", + "呼伦贝尔市额尔古纳市": "内蒙古自治区呼伦贝尔市额尔古纳市", + "内蒙古呼伦贝尔市根河市": "内蒙古自治区呼伦贝尔市根河市", + "呼伦贝尔市根河市": "内蒙古自治区呼伦贝尔市根河市", + "内蒙古巴彦淖尔市临河区": "内蒙古自治区巴彦淖尔市临河区", + "巴彦淖尔市临河区": "内蒙古自治区巴彦淖尔市临河区", + "内蒙古巴彦淖尔市五原县": "内蒙古自治区巴彦淖尔市五原县", + "巴彦淖尔市五原县": "内蒙古自治区巴彦淖尔市五原县", + "内蒙古巴彦淖尔市磴口县": "内蒙古自治区巴彦淖尔市磴口县", + "巴彦淖尔市磴口县": "内蒙古自治区巴彦淖尔市磴口县", + "内蒙古巴彦淖尔市乌拉特前旗": "内蒙古自治区巴彦淖尔市乌拉特前旗", + "巴彦淖尔市乌拉特前旗": "内蒙古自治区巴彦淖尔市乌拉特前旗", + "内蒙古巴彦淖尔市乌拉特中旗": "内蒙古自治区巴彦淖尔市乌拉特中旗", + "巴彦淖尔市乌拉特中旗": "内蒙古自治区巴彦淖尔市乌拉特中旗", + "内蒙古巴彦淖尔市乌拉特后旗": "内蒙古自治区巴彦淖尔市乌拉特后旗", + "巴彦淖尔市乌拉特后旗": "内蒙古自治区巴彦淖尔市乌拉特后旗", + "内蒙古巴彦淖尔市杭锦后旗": "内蒙古自治区巴彦淖尔市杭锦后旗", + "巴彦淖尔市杭锦后旗": "内蒙古自治区巴彦淖尔市杭锦后旗", + "内蒙古乌兰察布市集宁区": "内蒙古自治区乌兰察布市集宁区", + "乌兰察布市集宁区": "内蒙古自治区乌兰察布市集宁区", + "内蒙古乌兰察布市卓资县": "内蒙古自治区乌兰察布市卓资县", + "乌兰察布市卓资县": "内蒙古自治区乌兰察布市卓资县", + "内蒙古乌兰察布市化德县": "内蒙古自治区乌兰察布市化德县", + "乌兰察布市化德县": "内蒙古自治区乌兰察布市化德县", + "内蒙古乌兰察布市商都县": "内蒙古自治区乌兰察布市商都县", + "乌兰察布市商都县": "内蒙古自治区乌兰察布市商都县", + "内蒙古乌兰察布市兴和县": "内蒙古自治区乌兰察布市兴和县", + "乌兰察布市兴和县": "内蒙古自治区乌兰察布市兴和县", + "内蒙古乌兰察布市凉城县": "内蒙古自治区乌兰察布市凉城县", + "乌兰察布市凉城县": "内蒙古自治区乌兰察布市凉城县", + "内蒙古乌兰察布市察哈尔右翼前旗": "内蒙古自治区乌兰察布市察哈尔右翼前旗", + "乌兰察布市察哈尔右翼前旗": "内蒙古自治区乌兰察布市察哈尔右翼前旗", + "内蒙古乌兰察布市察哈尔右翼中旗": "内蒙古自治区乌兰察布市察哈尔右翼中旗", + "乌兰察布市察哈尔右翼中旗": "内蒙古自治区乌兰察布市察哈尔右翼中旗", + "内蒙古乌兰察布市察哈尔右翼后旗": "内蒙古自治区乌兰察布市察哈尔右翼后旗", + "乌兰察布市察哈尔右翼后旗": "内蒙古自治区乌兰察布市察哈尔右翼后旗", + "内蒙古乌兰察布市四子王旗": "内蒙古自治区乌兰察布市四子王旗", + "乌兰察布市四子王旗": "内蒙古自治区乌兰察布市四子王旗", + "内蒙古乌兰察布市丰镇市": "内蒙古自治区乌兰察布市丰镇市", + "乌兰察布市丰镇市": "内蒙古自治区乌兰察布市丰镇市", + "内蒙古兴安盟乌兰浩特市": "内蒙古自治区兴安盟乌兰浩特市", + "兴安盟乌兰浩特市": "内蒙古自治区兴安盟乌兰浩特市", + "内蒙古兴安盟阿尔山市": "内蒙古自治区兴安盟阿尔山市", + "兴安盟阿尔山市": "内蒙古自治区兴安盟阿尔山市", + "内蒙古兴安盟科尔沁右翼前旗": "内蒙古自治区兴安盟科尔沁右翼前旗", + "兴安盟科尔沁右翼前旗": "内蒙古自治区兴安盟科尔沁右翼前旗", + "内蒙古兴安盟科尔沁右翼中旗": "内蒙古自治区兴安盟科尔沁右翼中旗", + "兴安盟科尔沁右翼中旗": "内蒙古自治区兴安盟科尔沁右翼中旗", + "内蒙古兴安盟扎赉特旗": "内蒙古自治区兴安盟扎赉特旗", + "兴安盟扎赉特旗": "内蒙古自治区兴安盟扎赉特旗", + "内蒙古兴安盟突泉县": "内蒙古自治区兴安盟突泉县", + "兴安盟突泉县": "内蒙古自治区兴安盟突泉县", + "内蒙古锡林郭勒盟二连浩特市": "内蒙古自治区锡林郭勒盟二连浩特市", + "锡林郭勒盟二连浩特市": "内蒙古自治区锡林郭勒盟二连浩特市", + "内蒙古锡林郭勒盟锡林浩特市": "内蒙古自治区锡林郭勒盟锡林浩特市", + "锡林郭勒盟锡林浩特市": "内蒙古自治区锡林郭勒盟锡林浩特市", + "内蒙古锡林郭勒盟阿巴嘎旗": "内蒙古自治区锡林郭勒盟阿巴嘎旗", + "锡林郭勒盟阿巴嘎旗": "内蒙古自治区锡林郭勒盟阿巴嘎旗", + "内蒙古锡林郭勒盟苏尼特左旗": "内蒙古自治区锡林郭勒盟苏尼特左旗", + "锡林郭勒盟苏尼特左旗": "内蒙古自治区锡林郭勒盟苏尼特左旗", + "内蒙古锡林郭勒盟苏尼特右旗": "内蒙古自治区锡林郭勒盟苏尼特右旗", + "锡林郭勒盟苏尼特右旗": "内蒙古自治区锡林郭勒盟苏尼特右旗", + "内蒙古锡林郭勒盟东乌珠穆沁旗": "内蒙古自治区锡林郭勒盟东乌珠穆沁旗", + "锡林郭勒盟东乌珠穆沁旗": "内蒙古自治区锡林郭勒盟东乌珠穆沁旗", + "内蒙古锡林郭勒盟西乌珠穆沁旗": "内蒙古自治区锡林郭勒盟西乌珠穆沁旗", + "锡林郭勒盟西乌珠穆沁旗": "内蒙古自治区锡林郭勒盟西乌珠穆沁旗", + "内蒙古锡林郭勒盟太仆寺旗": "内蒙古自治区锡林郭勒盟太仆寺旗", + "锡林郭勒盟太仆寺旗": "内蒙古自治区锡林郭勒盟太仆寺旗", + "内蒙古锡林郭勒盟镶黄旗": "内蒙古自治区锡林郭勒盟镶黄旗", + "锡林郭勒盟镶黄旗": "内蒙古自治区锡林郭勒盟镶黄旗", + "内蒙古锡林郭勒盟正镶白旗": "内蒙古自治区锡林郭勒盟正镶白旗", + "锡林郭勒盟正镶白旗": "内蒙古自治区锡林郭勒盟正镶白旗", + "内蒙古锡林郭勒盟正蓝旗": "内蒙古自治区锡林郭勒盟正蓝旗", + "锡林郭勒盟正蓝旗": "内蒙古自治区锡林郭勒盟正蓝旗", + "内蒙古锡林郭勒盟多伦县": "内蒙古自治区锡林郭勒盟多伦县", + "锡林郭勒盟多伦县": "内蒙古自治区锡林郭勒盟多伦县", + "内蒙古阿拉善盟阿拉善左旗": "内蒙古自治区阿拉善盟阿拉善左旗", + "阿拉善盟阿拉善左旗": "内蒙古自治区阿拉善盟阿拉善左旗", + "内蒙古阿拉善盟阿拉善右旗": "内蒙古自治区阿拉善盟阿拉善右旗", + "阿拉善盟阿拉善右旗": "内蒙古自治区阿拉善盟阿拉善右旗", + "内蒙古阿拉善盟额济纳旗": "内蒙古自治区阿拉善盟额济纳旗", + "阿拉善盟额济纳旗": "内蒙古自治区阿拉善盟额济纳旗", + "辽宁沈阳市和平区": "辽宁省沈阳市和平区", + "沈阳市和平区": "辽宁省沈阳市和平区", + "辽宁沈阳市沈河区": "辽宁省沈阳市沈河区", + "沈阳市沈河区": "辽宁省沈阳市沈河区", + "辽宁沈阳市大东区": "辽宁省沈阳市大东区", + "沈阳市大东区": "辽宁省沈阳市大东区", + "辽宁沈阳市皇姑区": "辽宁省沈阳市皇姑区", + "沈阳市皇姑区": "辽宁省沈阳市皇姑区", + "辽宁沈阳市铁西区": "辽宁省沈阳市铁西区", + "沈阳市铁西区": "辽宁省沈阳市铁西区", + "辽宁沈阳市苏家屯区": "辽宁省沈阳市苏家屯区", + "沈阳市苏家屯区": "辽宁省沈阳市苏家屯区", + "辽宁沈阳市浑南区": "辽宁省沈阳市浑南区", + "沈阳市浑南区": "辽宁省沈阳市浑南区", + "辽宁沈阳市沈北新区": "辽宁省沈阳市沈北新区", + "沈阳市沈北新区": "辽宁省沈阳市沈北新区", + "辽宁沈阳市于洪区": "辽宁省沈阳市于洪区", + "沈阳市于洪区": "辽宁省沈阳市于洪区", + "辽宁沈阳市辽中区": "辽宁省沈阳市辽中区", + "沈阳市辽中区": "辽宁省沈阳市辽中区", + "辽宁沈阳市康平县": "辽宁省沈阳市康平县", + "沈阳市康平县": "辽宁省沈阳市康平县", + "辽宁沈阳市法库县": "辽宁省沈阳市法库县", + "沈阳市法库县": "辽宁省沈阳市法库县", + "辽宁沈阳市新民市": "辽宁省沈阳市新民市", + "沈阳市新民市": "辽宁省沈阳市新民市", + "辽宁大连市中山区": "辽宁省大连市中山区", + "大连市中山区": "辽宁省大连市中山区", + "辽宁大连市西岗区": "辽宁省大连市西岗区", + "大连市西岗区": "辽宁省大连市西岗区", + "辽宁大连市沙河口区": "辽宁省大连市沙河口区", + "大连市沙河口区": "辽宁省大连市沙河口区", + "辽宁大连市甘井子区": "辽宁省大连市甘井子区", + "大连市甘井子区": "辽宁省大连市甘井子区", + "辽宁大连市旅顺口区": "辽宁省大连市旅顺口区", + "大连市旅顺口区": "辽宁省大连市旅顺口区", + "辽宁大连市金州区": "辽宁省大连市金州区", + "大连市金州区": "辽宁省大连市金州区", + "辽宁大连市普兰店区": "辽宁省大连市普兰店区", + "大连市普兰店区": "辽宁省大连市普兰店区", + "辽宁大连市长海县": "辽宁省大连市长海县", + "大连市长海县": "辽宁省大连市长海县", + "辽宁大连市瓦房店市": "辽宁省大连市瓦房店市", + "大连市瓦房店市": "辽宁省大连市瓦房店市", + "辽宁大连市庄河市": "辽宁省大连市庄河市", + "大连市庄河市": "辽宁省大连市庄河市", + "辽宁鞍山市铁东区": "辽宁省鞍山市铁东区", + "鞍山市铁东区": "辽宁省鞍山市铁东区", + "辽宁鞍山市铁西区": "辽宁省鞍山市铁西区", + "鞍山市铁西区": "辽宁省鞍山市铁西区", + "辽宁鞍山市立山区": "辽宁省鞍山市立山区", + "鞍山市立山区": "辽宁省鞍山市立山区", + "辽宁鞍山市千山区": "辽宁省鞍山市千山区", + "鞍山市千山区": "辽宁省鞍山市千山区", + "辽宁鞍山市台安县": "辽宁省鞍山市台安县", + "鞍山市台安县": "辽宁省鞍山市台安县", + "辽宁鞍山市岫岩满族自治县": "辽宁省鞍山市岫岩满族自治县", + "鞍山市岫岩满族自治县": "辽宁省鞍山市岫岩满族自治县", + "辽宁鞍山市海城市": "辽宁省鞍山市海城市", + "鞍山市海城市": "辽宁省鞍山市海城市", + "辽宁抚顺市新抚区": "辽宁省抚顺市新抚区", + "抚顺市新抚区": "辽宁省抚顺市新抚区", + "辽宁抚顺市东洲区": "辽宁省抚顺市东洲区", + "抚顺市东洲区": "辽宁省抚顺市东洲区", + "辽宁抚顺市望花区": "辽宁省抚顺市望花区", + "抚顺市望花区": "辽宁省抚顺市望花区", + "辽宁抚顺市顺城区": "辽宁省抚顺市顺城区", + "抚顺市顺城区": "辽宁省抚顺市顺城区", + "辽宁抚顺市抚顺县": "辽宁省抚顺市抚顺县", + "抚顺市抚顺县": "辽宁省抚顺市抚顺县", + "辽宁抚顺市新宾满族自治县": "辽宁省抚顺市新宾满族自治县", + "抚顺市新宾满族自治县": "辽宁省抚顺市新宾满族自治县", + "辽宁抚顺市清原满族自治县": "辽宁省抚顺市清原满族自治县", + "抚顺市清原满族自治县": "辽宁省抚顺市清原满族自治县", + "辽宁本溪市平山区": "辽宁省本溪市平山区", + "本溪市平山区": "辽宁省本溪市平山区", + "辽宁本溪市溪湖区": "辽宁省本溪市溪湖区", + "本溪市溪湖区": "辽宁省本溪市溪湖区", + "辽宁本溪市明山区": "辽宁省本溪市明山区", + "本溪市明山区": "辽宁省本溪市明山区", + "辽宁本溪市南芬区": "辽宁省本溪市南芬区", + "本溪市南芬区": "辽宁省本溪市南芬区", + "辽宁本溪市本溪满族自治县": "辽宁省本溪市本溪满族自治县", + "本溪市本溪满族自治县": "辽宁省本溪市本溪满族自治县", + "辽宁本溪市桓仁满族自治县": "辽宁省本溪市桓仁满族自治县", + "本溪市桓仁满族自治县": "辽宁省本溪市桓仁满族自治县", + "辽宁丹东市元宝区": "辽宁省丹东市元宝区", + "丹东市元宝区": "辽宁省丹东市元宝区", + "辽宁丹东市振兴区": "辽宁省丹东市振兴区", + "丹东市振兴区": "辽宁省丹东市振兴区", + "辽宁丹东市振安区": "辽宁省丹东市振安区", + "丹东市振安区": "辽宁省丹东市振安区", + "辽宁丹东市宽甸满族自治县": "辽宁省丹东市宽甸满族自治县", + "丹东市宽甸满族自治县": "辽宁省丹东市宽甸满族自治县", + "辽宁丹东市东港市": "辽宁省丹东市东港市", + "丹东市东港市": "辽宁省丹东市东港市", + "辽宁丹东市凤城市": "辽宁省丹东市凤城市", + "丹东市凤城市": "辽宁省丹东市凤城市", + "辽宁锦州市古塔区": "辽宁省锦州市古塔区", + "锦州市古塔区": "辽宁省锦州市古塔区", + "辽宁锦州市凌河区": "辽宁省锦州市凌河区", + "锦州市凌河区": "辽宁省锦州市凌河区", + "辽宁锦州市太和区": "辽宁省锦州市太和区", + "锦州市太和区": "辽宁省锦州市太和区", + "辽宁锦州市黑山县": "辽宁省锦州市黑山县", + "锦州市黑山县": "辽宁省锦州市黑山县", + "辽宁锦州市义县": "辽宁省锦州市义县", + "锦州市义县": "辽宁省锦州市义县", + "辽宁锦州市凌海市": "辽宁省锦州市凌海市", + "锦州市凌海市": "辽宁省锦州市凌海市", + "辽宁锦州市北镇市": "辽宁省锦州市北镇市", + "锦州市北镇市": "辽宁省锦州市北镇市", + "辽宁营口市站前区": "辽宁省营口市站前区", + "营口市站前区": "辽宁省营口市站前区", + "辽宁营口市西市区": "辽宁省营口市西市区", + "营口市西市区": "辽宁省营口市西市区", + "辽宁营口市鲅鱼圈区": "辽宁省营口市鲅鱼圈区", + "营口市鲅鱼圈区": "辽宁省营口市鲅鱼圈区", + "辽宁营口市老边区": "辽宁省营口市老边区", + "营口市老边区": "辽宁省营口市老边区", + "辽宁营口市盖州市": "辽宁省营口市盖州市", + "营口市盖州市": "辽宁省营口市盖州市", + "辽宁营口市大石桥市": "辽宁省营口市大石桥市", + "营口市大石桥市": "辽宁省营口市大石桥市", + "辽宁阜新市海州区": "辽宁省阜新市海州区", + "阜新市海州区": "辽宁省阜新市海州区", + "辽宁阜新市新邱区": "辽宁省阜新市新邱区", + "阜新市新邱区": "辽宁省阜新市新邱区", + "辽宁阜新市太平区": "辽宁省阜新市太平区", + "阜新市太平区": "辽宁省阜新市太平区", + "辽宁阜新市清河门区": "辽宁省阜新市清河门区", + "阜新市清河门区": "辽宁省阜新市清河门区", + "辽宁阜新市细河区": "辽宁省阜新市细河区", + "阜新市细河区": "辽宁省阜新市细河区", + "辽宁阜新市阜新蒙古族自治县": "辽宁省阜新市阜新蒙古族自治县", + "阜新市阜新蒙古族自治县": "辽宁省阜新市阜新蒙古族自治县", + "辽宁阜新市彰武县": "辽宁省阜新市彰武县", + "阜新市彰武县": "辽宁省阜新市彰武县", + "辽宁辽阳市白塔区": "辽宁省辽阳市白塔区", + "辽阳市白塔区": "辽宁省辽阳市白塔区", + "辽宁辽阳市文圣区": "辽宁省辽阳市文圣区", + "辽阳市文圣区": "辽宁省辽阳市文圣区", + "辽宁辽阳市宏伟区": "辽宁省辽阳市宏伟区", + "辽阳市宏伟区": "辽宁省辽阳市宏伟区", + "辽宁辽阳市弓长岭区": "辽宁省辽阳市弓长岭区", + "辽阳市弓长岭区": "辽宁省辽阳市弓长岭区", + "辽宁辽阳市太子河区": "辽宁省辽阳市太子河区", + "辽阳市太子河区": "辽宁省辽阳市太子河区", + "辽宁辽阳市辽阳县": "辽宁省辽阳市辽阳县", + "辽阳市辽阳县": "辽宁省辽阳市辽阳县", + "辽宁辽阳市灯塔市": "辽宁省辽阳市灯塔市", + "辽阳市灯塔市": "辽宁省辽阳市灯塔市", + "辽宁盘锦市双台子区": "辽宁省盘锦市双台子区", + "盘锦市双台子区": "辽宁省盘锦市双台子区", + "辽宁盘锦市兴隆台区": "辽宁省盘锦市兴隆台区", + "盘锦市兴隆台区": "辽宁省盘锦市兴隆台区", + "辽宁盘锦市大洼区": "辽宁省盘锦市大洼区", + "盘锦市大洼区": "辽宁省盘锦市大洼区", + "辽宁盘锦市盘山县": "辽宁省盘锦市盘山县", + "盘锦市盘山县": "辽宁省盘锦市盘山县", + "辽宁铁岭市银州区": "辽宁省铁岭市银州区", + "铁岭市银州区": "辽宁省铁岭市银州区", + "辽宁铁岭市清河区": "辽宁省铁岭市清河区", + "铁岭市清河区": "辽宁省铁岭市清河区", + "辽宁铁岭市铁岭县": "辽宁省铁岭市铁岭县", + "铁岭市铁岭县": "辽宁省铁岭市铁岭县", + "辽宁铁岭市西丰县": "辽宁省铁岭市西丰县", + "铁岭市西丰县": "辽宁省铁岭市西丰县", + "辽宁铁岭市昌图县": "辽宁省铁岭市昌图县", + "铁岭市昌图县": "辽宁省铁岭市昌图县", + "辽宁铁岭市调兵山市": "辽宁省铁岭市调兵山市", + "铁岭市调兵山市": "辽宁省铁岭市调兵山市", + "辽宁铁岭市开原市": "辽宁省铁岭市开原市", + "铁岭市开原市": "辽宁省铁岭市开原市", + "辽宁朝阳市双塔区": "辽宁省朝阳市双塔区", + "朝阳市双塔区": "辽宁省朝阳市双塔区", + "辽宁朝阳市龙城区": "辽宁省朝阳市龙城区", + "朝阳市龙城区": "辽宁省朝阳市龙城区", + "辽宁朝阳市朝阳县": "辽宁省朝阳市朝阳县", + "朝阳市朝阳县": "辽宁省朝阳市朝阳县", + "辽宁朝阳市建平县": "辽宁省朝阳市建平县", + "朝阳市建平县": "辽宁省朝阳市建平县", + "辽宁朝阳市喀喇沁左翼蒙古族自治县": "辽宁省朝阳市喀喇沁左翼蒙古族自治县", + "朝阳市喀喇沁左翼蒙古族自治县": "辽宁省朝阳市喀喇沁左翼蒙古族自治县", + "辽宁朝阳市北票市": "辽宁省朝阳市北票市", + "朝阳市北票市": "辽宁省朝阳市北票市", + "辽宁朝阳市凌源市": "辽宁省朝阳市凌源市", + "朝阳市凌源市": "辽宁省朝阳市凌源市", + "辽宁葫芦岛市连山区": "辽宁省葫芦岛市连山区", + "葫芦岛市连山区": "辽宁省葫芦岛市连山区", + "辽宁葫芦岛市龙港区": "辽宁省葫芦岛市龙港区", + "葫芦岛市龙港区": "辽宁省葫芦岛市龙港区", + "辽宁葫芦岛市南票区": "辽宁省葫芦岛市南票区", + "葫芦岛市南票区": "辽宁省葫芦岛市南票区", + "辽宁葫芦岛市绥中县": "辽宁省葫芦岛市绥中县", + "葫芦岛市绥中县": "辽宁省葫芦岛市绥中县", + "辽宁葫芦岛市建昌县": "辽宁省葫芦岛市建昌县", + "葫芦岛市建昌县": "辽宁省葫芦岛市建昌县", + "辽宁葫芦岛市兴城市": "辽宁省葫芦岛市兴城市", + "葫芦岛市兴城市": "辽宁省葫芦岛市兴城市", + "吉林长春市南关区": "吉林省长春市南关区", + "长春市南关区": "吉林省长春市南关区", + "吉林长春市宽城区": "吉林省长春市宽城区", + "长春市宽城区": "吉林省长春市宽城区", + "吉林长春市朝阳区": "吉林省长春市朝阳区", + "长春市朝阳区": "吉林省长春市朝阳区", + "吉林长春市二道区": "吉林省长春市二道区", + "长春市二道区": "吉林省长春市二道区", + "吉林长春市绿园区": "吉林省长春市绿园区", + "长春市绿园区": "吉林省长春市绿园区", + "吉林长春市双阳区": "吉林省长春市双阳区", + "长春市双阳区": "吉林省长春市双阳区", + "吉林长春市九台区": "吉林省长春市九台区", + "长春市九台区": "吉林省长春市九台区", + "吉林长春市农安县": "吉林省长春市农安县", + "长春市农安县": "吉林省长春市农安县", + "吉林长春市榆树市": "吉林省长春市榆树市", + "长春市榆树市": "吉林省长春市榆树市", + "吉林长春市德惠市": "吉林省长春市德惠市", + "长春市德惠市": "吉林省长春市德惠市", + "吉林长春市公主岭市": "吉林省长春市公主岭市", + "长春市公主岭市": "吉林省长春市公主岭市", + "吉林吉林市昌邑区": "吉林省吉林市昌邑区", + "吉林市昌邑区": "吉林省吉林市昌邑区", + "吉林吉林市龙潭区": "吉林省吉林市龙潭区", + "吉林市龙潭区": "吉林省吉林市龙潭区", + "吉林吉林市船营区": "吉林省吉林市船营区", + "吉林市船营区": "吉林省吉林市船营区", + "吉林吉林市丰满区": "吉林省吉林市丰满区", + "吉林市丰满区": "吉林省吉林市丰满区", + "吉林吉林市永吉县": "吉林省吉林市永吉县", + "吉林市永吉县": "吉林省吉林市永吉县", + "吉林吉林市蛟河市": "吉林省吉林市蛟河市", + "吉林市蛟河市": "吉林省吉林市蛟河市", + "吉林吉林市桦甸市": "吉林省吉林市桦甸市", + "吉林市桦甸市": "吉林省吉林市桦甸市", + "吉林吉林市舒兰市": "吉林省吉林市舒兰市", + "吉林市舒兰市": "吉林省吉林市舒兰市", + "吉林吉林市磐石市": "吉林省吉林市磐石市", + "吉林市磐石市": "吉林省吉林市磐石市", + "吉林四平市铁西区": "吉林省四平市铁西区", + "四平市铁西区": "吉林省四平市铁西区", + "吉林四平市铁东区": "吉林省四平市铁东区", + "四平市铁东区": "吉林省四平市铁东区", + "吉林四平市梨树县": "吉林省四平市梨树县", + "四平市梨树县": "吉林省四平市梨树县", + "吉林四平市伊通满族自治县": "吉林省四平市伊通满族自治县", + "四平市伊通满族自治县": "吉林省四平市伊通满族自治县", + "吉林四平市双辽市": "吉林省四平市双辽市", + "四平市双辽市": "吉林省四平市双辽市", + "吉林辽源市龙山区": "吉林省辽源市龙山区", + "辽源市龙山区": "吉林省辽源市龙山区", + "吉林辽源市西安区": "吉林省辽源市西安区", + "辽源市西安区": "吉林省辽源市西安区", + "吉林辽源市东丰县": "吉林省辽源市东丰县", + "辽源市东丰县": "吉林省辽源市东丰县", + "吉林辽源市东辽县": "吉林省辽源市东辽县", + "辽源市东辽县": "吉林省辽源市东辽县", + "吉林通化市东昌区": "吉林省通化市东昌区", + "通化市东昌区": "吉林省通化市东昌区", + "吉林通化市二道江区": "吉林省通化市二道江区", + "通化市二道江区": "吉林省通化市二道江区", + "吉林通化市通化县": "吉林省通化市通化县", + "通化市通化县": "吉林省通化市通化县", + "吉林通化市辉南县": "吉林省通化市辉南县", + "通化市辉南县": "吉林省通化市辉南县", + "吉林通化市柳河县": "吉林省通化市柳河县", + "通化市柳河县": "吉林省通化市柳河县", + "吉林通化市梅河口市": "吉林省通化市梅河口市", + "通化市梅河口市": "吉林省通化市梅河口市", + "吉林通化市集安市": "吉林省通化市集安市", + "通化市集安市": "吉林省通化市集安市", + "吉林白山市浑江区": "吉林省白山市浑江区", + "白山市浑江区": "吉林省白山市浑江区", + "吉林白山市江源区": "吉林省白山市江源区", + "白山市江源区": "吉林省白山市江源区", + "吉林白山市抚松县": "吉林省白山市抚松县", + "白山市抚松县": "吉林省白山市抚松县", + "吉林白山市靖宇县": "吉林省白山市靖宇县", + "白山市靖宇县": "吉林省白山市靖宇县", + "吉林白山市长白朝鲜族自治县": "吉林省白山市长白朝鲜族自治县", + "白山市长白朝鲜族自治县": "吉林省白山市长白朝鲜族自治县", + "吉林白山市临江市": "吉林省白山市临江市", + "白山市临江市": "吉林省白山市临江市", + "吉林松原市宁江区": "吉林省松原市宁江区", + "松原市宁江区": "吉林省松原市宁江区", + "吉林松原市前郭尔罗斯蒙古族自治县": "吉林省松原市前郭尔罗斯蒙古族自治县", + "松原市前郭尔罗斯蒙古族自治县": "吉林省松原市前郭尔罗斯蒙古族自治县", + "吉林松原市长岭县": "吉林省松原市长岭县", + "松原市长岭县": "吉林省松原市长岭县", + "吉林松原市乾安县": "吉林省松原市乾安县", + "松原市乾安县": "吉林省松原市乾安县", + "吉林松原市扶余市": "吉林省松原市扶余市", + "松原市扶余市": "吉林省松原市扶余市", + "吉林白城市洮北区": "吉林省白城市洮北区", + "白城市洮北区": "吉林省白城市洮北区", + "吉林白城市镇赉县": "吉林省白城市镇赉县", + "白城市镇赉县": "吉林省白城市镇赉县", + "吉林白城市通榆县": "吉林省白城市通榆县", + "白城市通榆县": "吉林省白城市通榆县", + "吉林白城市洮南市": "吉林省白城市洮南市", + "白城市洮南市": "吉林省白城市洮南市", + "吉林白城市大安市": "吉林省白城市大安市", + "白城市大安市": "吉林省白城市大安市", + "吉林延边朝鲜族自治州延吉市": "吉林省延边朝鲜族自治州延吉市", + "延边朝鲜族自治州延吉市": "吉林省延边朝鲜族自治州延吉市", + "吉林延边朝鲜族自治州图们市": "吉林省延边朝鲜族自治州图们市", + "延边朝鲜族自治州图们市": "吉林省延边朝鲜族自治州图们市", + "吉林延边朝鲜族自治州敦化市": "吉林省延边朝鲜族自治州敦化市", + "延边朝鲜族自治州敦化市": "吉林省延边朝鲜族自治州敦化市", + "吉林延边朝鲜族自治州珲春市": "吉林省延边朝鲜族自治州珲春市", + "延边朝鲜族自治州珲春市": "吉林省延边朝鲜族自治州珲春市", + "吉林延边朝鲜族自治州龙井市": "吉林省延边朝鲜族自治州龙井市", + "延边朝鲜族自治州龙井市": "吉林省延边朝鲜族自治州龙井市", + "吉林延边朝鲜族自治州和龙市": "吉林省延边朝鲜族自治州和龙市", + "延边朝鲜族自治州和龙市": "吉林省延边朝鲜族自治州和龙市", + "吉林延边朝鲜族自治州汪清县": "吉林省延边朝鲜族自治州汪清县", + "延边朝鲜族自治州汪清县": "吉林省延边朝鲜族自治州汪清县", + "吉林延边朝鲜族自治州安图县": "吉林省延边朝鲜族自治州安图县", + "延边朝鲜族自治州安图县": "吉林省延边朝鲜族自治州安图县", + "黑龙江哈尔滨市道里区": "黑龙江省哈尔滨市道里区", + "哈尔滨市道里区": "黑龙江省哈尔滨市道里区", + "黑龙江哈尔滨市南岗区": "黑龙江省哈尔滨市南岗区", + "哈尔滨市南岗区": "黑龙江省哈尔滨市南岗区", + "黑龙江哈尔滨市道外区": "黑龙江省哈尔滨市道外区", + "哈尔滨市道外区": "黑龙江省哈尔滨市道外区", + "黑龙江哈尔滨市平房区": "黑龙江省哈尔滨市平房区", + "哈尔滨市平房区": "黑龙江省哈尔滨市平房区", + "黑龙江哈尔滨市松北区": "黑龙江省哈尔滨市松北区", + "哈尔滨市松北区": "黑龙江省哈尔滨市松北区", + "黑龙江哈尔滨市香坊区": "黑龙江省哈尔滨市香坊区", + "哈尔滨市香坊区": "黑龙江省哈尔滨市香坊区", + "黑龙江哈尔滨市呼兰区": "黑龙江省哈尔滨市呼兰区", + "哈尔滨市呼兰区": "黑龙江省哈尔滨市呼兰区", + "黑龙江哈尔滨市阿城区": "黑龙江省哈尔滨市阿城区", + "哈尔滨市阿城区": "黑龙江省哈尔滨市阿城区", + "黑龙江哈尔滨市双城区": "黑龙江省哈尔滨市双城区", + "哈尔滨市双城区": "黑龙江省哈尔滨市双城区", + "黑龙江哈尔滨市依兰县": "黑龙江省哈尔滨市依兰县", + "哈尔滨市依兰县": "黑龙江省哈尔滨市依兰县", + "黑龙江哈尔滨市方正县": "黑龙江省哈尔滨市方正县", + "哈尔滨市方正县": "黑龙江省哈尔滨市方正县", + "黑龙江哈尔滨市宾县": "黑龙江省哈尔滨市宾县", + "哈尔滨市宾县": "黑龙江省哈尔滨市宾县", + "黑龙江哈尔滨市巴彦县": "黑龙江省哈尔滨市巴彦县", + "哈尔滨市巴彦县": "黑龙江省哈尔滨市巴彦县", + "黑龙江哈尔滨市木兰县": "黑龙江省哈尔滨市木兰县", + "哈尔滨市木兰县": "黑龙江省哈尔滨市木兰县", + "黑龙江哈尔滨市通河县": "黑龙江省哈尔滨市通河县", + "哈尔滨市通河县": "黑龙江省哈尔滨市通河县", + "黑龙江哈尔滨市延寿县": "黑龙江省哈尔滨市延寿县", + "哈尔滨市延寿县": "黑龙江省哈尔滨市延寿县", + "黑龙江哈尔滨市尚志市": "黑龙江省哈尔滨市尚志市", + "哈尔滨市尚志市": "黑龙江省哈尔滨市尚志市", + "黑龙江哈尔滨市五常市": "黑龙江省哈尔滨市五常市", + "哈尔滨市五常市": "黑龙江省哈尔滨市五常市", + "黑龙江齐齐哈尔市龙沙区": "黑龙江省齐齐哈尔市龙沙区", + "齐齐哈尔市龙沙区": "黑龙江省齐齐哈尔市龙沙区", + "黑龙江齐齐哈尔市建华区": "黑龙江省齐齐哈尔市建华区", + "齐齐哈尔市建华区": "黑龙江省齐齐哈尔市建华区", + "黑龙江齐齐哈尔市铁锋区": "黑龙江省齐齐哈尔市铁锋区", + "齐齐哈尔市铁锋区": "黑龙江省齐齐哈尔市铁锋区", + "黑龙江齐齐哈尔市昂昂溪区": "黑龙江省齐齐哈尔市昂昂溪区", + "齐齐哈尔市昂昂溪区": "黑龙江省齐齐哈尔市昂昂溪区", + "黑龙江齐齐哈尔市富拉尔基区": "黑龙江省齐齐哈尔市富拉尔基区", + "齐齐哈尔市富拉尔基区": "黑龙江省齐齐哈尔市富拉尔基区", + "黑龙江齐齐哈尔市碾子山区": "黑龙江省齐齐哈尔市碾子山区", + "齐齐哈尔市碾子山区": "黑龙江省齐齐哈尔市碾子山区", + "黑龙江齐齐哈尔市梅里斯达斡尔族区": "黑龙江省齐齐哈尔市梅里斯达斡尔族区", + "齐齐哈尔市梅里斯达斡尔族区": "黑龙江省齐齐哈尔市梅里斯达斡尔族区", + "黑龙江齐齐哈尔市龙江县": "黑龙江省齐齐哈尔市龙江县", + "齐齐哈尔市龙江县": "黑龙江省齐齐哈尔市龙江县", + "黑龙江齐齐哈尔市依安县": "黑龙江省齐齐哈尔市依安县", + "齐齐哈尔市依安县": "黑龙江省齐齐哈尔市依安县", + "黑龙江齐齐哈尔市泰来县": "黑龙江省齐齐哈尔市泰来县", + "齐齐哈尔市泰来县": "黑龙江省齐齐哈尔市泰来县", + "黑龙江齐齐哈尔市甘南县": "黑龙江省齐齐哈尔市甘南县", + "齐齐哈尔市甘南县": "黑龙江省齐齐哈尔市甘南县", + "黑龙江齐齐哈尔市富裕县": "黑龙江省齐齐哈尔市富裕县", + "齐齐哈尔市富裕县": "黑龙江省齐齐哈尔市富裕县", + "黑龙江齐齐哈尔市克山县": "黑龙江省齐齐哈尔市克山县", + "齐齐哈尔市克山县": "黑龙江省齐齐哈尔市克山县", + "黑龙江齐齐哈尔市克东县": "黑龙江省齐齐哈尔市克东县", + "齐齐哈尔市克东县": "黑龙江省齐齐哈尔市克东县", + "黑龙江齐齐哈尔市拜泉县": "黑龙江省齐齐哈尔市拜泉县", + "齐齐哈尔市拜泉县": "黑龙江省齐齐哈尔市拜泉县", + "黑龙江齐齐哈尔市讷河市": "黑龙江省齐齐哈尔市讷河市", + "齐齐哈尔市讷河市": "黑龙江省齐齐哈尔市讷河市", + "黑龙江鸡西市鸡冠区": "黑龙江省鸡西市鸡冠区", + "鸡西市鸡冠区": "黑龙江省鸡西市鸡冠区", + "黑龙江鸡西市恒山区": "黑龙江省鸡西市恒山区", + "鸡西市恒山区": "黑龙江省鸡西市恒山区", + "黑龙江鸡西市滴道区": "黑龙江省鸡西市滴道区", + "鸡西市滴道区": "黑龙江省鸡西市滴道区", + "黑龙江鸡西市梨树区": "黑龙江省鸡西市梨树区", + "鸡西市梨树区": "黑龙江省鸡西市梨树区", + "黑龙江鸡西市城子河区": "黑龙江省鸡西市城子河区", + "鸡西市城子河区": "黑龙江省鸡西市城子河区", + "黑龙江鸡西市麻山区": "黑龙江省鸡西市麻山区", + "鸡西市麻山区": "黑龙江省鸡西市麻山区", + "黑龙江鸡西市鸡东县": "黑龙江省鸡西市鸡东县", + "鸡西市鸡东县": "黑龙江省鸡西市鸡东县", + "黑龙江鸡西市虎林市": "黑龙江省鸡西市虎林市", + "鸡西市虎林市": "黑龙江省鸡西市虎林市", + "黑龙江鸡西市密山市": "黑龙江省鸡西市密山市", + "鸡西市密山市": "黑龙江省鸡西市密山市", + "黑龙江鹤岗市向阳区": "黑龙江省鹤岗市向阳区", + "鹤岗市向阳区": "黑龙江省鹤岗市向阳区", + "黑龙江鹤岗市工农区": "黑龙江省鹤岗市工农区", + "鹤岗市工农区": "黑龙江省鹤岗市工农区", + "黑龙江鹤岗市南山区": "黑龙江省鹤岗市南山区", + "鹤岗市南山区": "黑龙江省鹤岗市南山区", + "黑龙江鹤岗市兴安区": "黑龙江省鹤岗市兴安区", + "鹤岗市兴安区": "黑龙江省鹤岗市兴安区", + "黑龙江鹤岗市东山区": "黑龙江省鹤岗市东山区", + "鹤岗市东山区": "黑龙江省鹤岗市东山区", + "黑龙江鹤岗市兴山区": "黑龙江省鹤岗市兴山区", + "鹤岗市兴山区": "黑龙江省鹤岗市兴山区", + "黑龙江鹤岗市萝北县": "黑龙江省鹤岗市萝北县", + "鹤岗市萝北县": "黑龙江省鹤岗市萝北县", + "黑龙江鹤岗市绥滨县": "黑龙江省鹤岗市绥滨县", + "鹤岗市绥滨县": "黑龙江省鹤岗市绥滨县", + "黑龙江双鸭山市尖山区": "黑龙江省双鸭山市尖山区", + "双鸭山市尖山区": "黑龙江省双鸭山市尖山区", + "黑龙江双鸭山市岭东区": "黑龙江省双鸭山市岭东区", + "双鸭山市岭东区": "黑龙江省双鸭山市岭东区", + "黑龙江双鸭山市四方台区": "黑龙江省双鸭山市四方台区", + "双鸭山市四方台区": "黑龙江省双鸭山市四方台区", + "黑龙江双鸭山市宝山区": "黑龙江省双鸭山市宝山区", + "双鸭山市宝山区": "黑龙江省双鸭山市宝山区", + "黑龙江双鸭山市集贤县": "黑龙江省双鸭山市集贤县", + "双鸭山市集贤县": "黑龙江省双鸭山市集贤县", + "黑龙江双鸭山市友谊县": "黑龙江省双鸭山市友谊县", + "双鸭山市友谊县": "黑龙江省双鸭山市友谊县", + "黑龙江双鸭山市宝清县": "黑龙江省双鸭山市宝清县", + "双鸭山市宝清县": "黑龙江省双鸭山市宝清县", + "黑龙江双鸭山市饶河县": "黑龙江省双鸭山市饶河县", + "双鸭山市饶河县": "黑龙江省双鸭山市饶河县", + "黑龙江大庆市萨尔图区": "黑龙江省大庆市萨尔图区", + "大庆市萨尔图区": "黑龙江省大庆市萨尔图区", + "黑龙江大庆市龙凤区": "黑龙江省大庆市龙凤区", + "大庆市龙凤区": "黑龙江省大庆市龙凤区", + "黑龙江大庆市让胡路区": "黑龙江省大庆市让胡路区", + "大庆市让胡路区": "黑龙江省大庆市让胡路区", + "黑龙江大庆市红岗区": "黑龙江省大庆市红岗区", + "大庆市红岗区": "黑龙江省大庆市红岗区", + "黑龙江大庆市大同区": "黑龙江省大庆市大同区", + "大庆市大同区": "黑龙江省大庆市大同区", + "黑龙江大庆市肇州县": "黑龙江省大庆市肇州县", + "大庆市肇州县": "黑龙江省大庆市肇州县", + "黑龙江大庆市肇源县": "黑龙江省大庆市肇源县", + "大庆市肇源县": "黑龙江省大庆市肇源县", + "黑龙江大庆市林甸县": "黑龙江省大庆市林甸县", + "大庆市林甸县": "黑龙江省大庆市林甸县", + "黑龙江大庆市杜尔伯特蒙古族自治县": "黑龙江省大庆市杜尔伯特蒙古族自治县", + "大庆市杜尔伯特蒙古族自治县": "黑龙江省大庆市杜尔伯特蒙古族自治县", + "黑龙江伊春市伊美区": "黑龙江省伊春市伊美区", + "伊春市伊美区": "黑龙江省伊春市伊美区", + "黑龙江伊春市乌翠区": "黑龙江省伊春市乌翠区", + "伊春市乌翠区": "黑龙江省伊春市乌翠区", + "黑龙江伊春市友好区": "黑龙江省伊春市友好区", + "伊春市友好区": "黑龙江省伊春市友好区", + "黑龙江伊春市嘉荫县": "黑龙江省伊春市嘉荫县", + "伊春市嘉荫县": "黑龙江省伊春市嘉荫县", + "黑龙江伊春市汤旺县": "黑龙江省伊春市汤旺县", + "伊春市汤旺县": "黑龙江省伊春市汤旺县", + "黑龙江伊春市丰林县": "黑龙江省伊春市丰林县", + "伊春市丰林县": "黑龙江省伊春市丰林县", + "黑龙江伊春市大箐山县": "黑龙江省伊春市大箐山县", + "伊春市大箐山县": "黑龙江省伊春市大箐山县", + "黑龙江伊春市南岔县": "黑龙江省伊春市南岔县", + "伊春市南岔县": "黑龙江省伊春市南岔县", + "黑龙江伊春市金林区": "黑龙江省伊春市金林区", + "伊春市金林区": "黑龙江省伊春市金林区", + "黑龙江伊春市铁力市": "黑龙江省伊春市铁力市", + "伊春市铁力市": "黑龙江省伊春市铁力市", + "黑龙江佳木斯市向阳区": "黑龙江省佳木斯市向阳区", + "佳木斯市向阳区": "黑龙江省佳木斯市向阳区", + "黑龙江佳木斯市前进区": "黑龙江省佳木斯市前进区", + "佳木斯市前进区": "黑龙江省佳木斯市前进区", + "黑龙江佳木斯市东风区": "黑龙江省佳木斯市东风区", + "佳木斯市东风区": "黑龙江省佳木斯市东风区", + "黑龙江佳木斯市郊区": "黑龙江省佳木斯市郊区", + "佳木斯市郊区": "黑龙江省佳木斯市郊区", + "黑龙江佳木斯市桦南县": "黑龙江省佳木斯市桦南县", + "佳木斯市桦南县": "黑龙江省佳木斯市桦南县", + "黑龙江佳木斯市桦川县": "黑龙江省佳木斯市桦川县", + "佳木斯市桦川县": "黑龙江省佳木斯市桦川县", + "黑龙江佳木斯市汤原县": "黑龙江省佳木斯市汤原县", + "佳木斯市汤原县": "黑龙江省佳木斯市汤原县", + "黑龙江佳木斯市同江市": "黑龙江省佳木斯市同江市", + "佳木斯市同江市": "黑龙江省佳木斯市同江市", + "黑龙江佳木斯市富锦市": "黑龙江省佳木斯市富锦市", + "佳木斯市富锦市": "黑龙江省佳木斯市富锦市", + "黑龙江佳木斯市抚远市": "黑龙江省佳木斯市抚远市", + "佳木斯市抚远市": "黑龙江省佳木斯市抚远市", + "黑龙江七台河市新兴区": "黑龙江省七台河市新兴区", + "七台河市新兴区": "黑龙江省七台河市新兴区", + "黑龙江七台河市桃山区": "黑龙江省七台河市桃山区", + "七台河市桃山区": "黑龙江省七台河市桃山区", + "黑龙江七台河市茄子河区": "黑龙江省七台河市茄子河区", + "七台河市茄子河区": "黑龙江省七台河市茄子河区", + "黑龙江七台河市勃利县": "黑龙江省七台河市勃利县", + "七台河市勃利县": "黑龙江省七台河市勃利县", + "黑龙江牡丹江市东安区": "黑龙江省牡丹江市东安区", + "牡丹江市东安区": "黑龙江省牡丹江市东安区", + "黑龙江牡丹江市阳明区": "黑龙江省牡丹江市阳明区", + "牡丹江市阳明区": "黑龙江省牡丹江市阳明区", + "黑龙江牡丹江市爱民区": "黑龙江省牡丹江市爱民区", + "牡丹江市爱民区": "黑龙江省牡丹江市爱民区", + "黑龙江牡丹江市西安区": "黑龙江省牡丹江市西安区", + "牡丹江市西安区": "黑龙江省牡丹江市西安区", + "黑龙江牡丹江市林口县": "黑龙江省牡丹江市林口县", + "牡丹江市林口县": "黑龙江省牡丹江市林口县", + "黑龙江牡丹江市绥芬河市": "黑龙江省牡丹江市绥芬河市", + "牡丹江市绥芬河市": "黑龙江省牡丹江市绥芬河市", + "黑龙江牡丹江市海林市": "黑龙江省牡丹江市海林市", + "牡丹江市海林市": "黑龙江省牡丹江市海林市", + "黑龙江牡丹江市宁安市": "黑龙江省牡丹江市宁安市", + "牡丹江市宁安市": "黑龙江省牡丹江市宁安市", + "黑龙江牡丹江市穆棱市": "黑龙江省牡丹江市穆棱市", + "牡丹江市穆棱市": "黑龙江省牡丹江市穆棱市", + "黑龙江牡丹江市东宁市": "黑龙江省牡丹江市东宁市", + "牡丹江市东宁市": "黑龙江省牡丹江市东宁市", + "黑龙江黑河市爱辉区": "黑龙江省黑河市爱辉区", + "黑河市爱辉区": "黑龙江省黑河市爱辉区", + "黑龙江黑河市逊克县": "黑龙江省黑河市逊克县", + "黑河市逊克县": "黑龙江省黑河市逊克县", + "黑龙江黑河市孙吴县": "黑龙江省黑河市孙吴县", + "黑河市孙吴县": "黑龙江省黑河市孙吴县", + "黑龙江黑河市北安市": "黑龙江省黑河市北安市", + "黑河市北安市": "黑龙江省黑河市北安市", + "黑龙江黑河市五大连池市": "黑龙江省黑河市五大连池市", + "黑河市五大连池市": "黑龙江省黑河市五大连池市", + "黑龙江黑河市嫩江市": "黑龙江省黑河市嫩江市", + "黑河市嫩江市": "黑龙江省黑河市嫩江市", + "黑龙江绥化市北林区": "黑龙江省绥化市北林区", + "绥化市北林区": "黑龙江省绥化市北林区", + "黑龙江绥化市望奎县": "黑龙江省绥化市望奎县", + "绥化市望奎县": "黑龙江省绥化市望奎县", + "黑龙江绥化市兰西县": "黑龙江省绥化市兰西县", + "绥化市兰西县": "黑龙江省绥化市兰西县", + "黑龙江绥化市青冈县": "黑龙江省绥化市青冈县", + "绥化市青冈县": "黑龙江省绥化市青冈县", + "黑龙江绥化市庆安县": "黑龙江省绥化市庆安县", + "绥化市庆安县": "黑龙江省绥化市庆安县", + "黑龙江绥化市明水县": "黑龙江省绥化市明水县", + "绥化市明水县": "黑龙江省绥化市明水县", + "黑龙江绥化市绥棱县": "黑龙江省绥化市绥棱县", + "绥化市绥棱县": "黑龙江省绥化市绥棱县", + "黑龙江绥化市安达市": "黑龙江省绥化市安达市", + "绥化市安达市": "黑龙江省绥化市安达市", + "黑龙江绥化市肇东市": "黑龙江省绥化市肇东市", + "绥化市肇东市": "黑龙江省绥化市肇东市", + "黑龙江绥化市海伦市": "黑龙江省绥化市海伦市", + "绥化市海伦市": "黑龙江省绥化市海伦市", + "黑龙江大兴安岭地区漠河市": "黑龙江省大兴安岭地区漠河市", + "大兴安岭地区漠河市": "黑龙江省大兴安岭地区漠河市", + "黑龙江大兴安岭地区加格达奇区": "黑龙江省大兴安岭地区加格达奇区", + "大兴安岭地区加格达奇区": "黑龙江省大兴安岭地区加格达奇区", + "黑龙江大兴安岭地区呼玛县": "黑龙江省大兴安岭地区呼玛县", + "大兴安岭地区呼玛县": "黑龙江省大兴安岭地区呼玛县", + "黑龙江大兴安岭地区塔河县": "黑龙江省大兴安岭地区塔河县", + "大兴安岭地区塔河县": "黑龙江省大兴安岭地区塔河县", + "上海黄浦区": "上海市黄浦区", + "上海徐汇区": "上海市徐汇区", + "上海长宁区": "上海市长宁区", + "上海静安区": "上海市静安区", + "上海普陀区": "上海市普陀区", + "上海虹口区": "上海市虹口区", + "上海杨浦区": "上海市杨浦区", + "上海闵行区": "上海市闵行区", + "上海宝山区": "上海市宝山区", + "上海嘉定区": "上海市嘉定区", + "上海浦东新区": "上海市浦东新区", + "上海金山区": "上海市金山区", + "上海松江区": "上海市松江区", + "上海青浦区": "上海市青浦区", + "上海奉贤区": "上海市奉贤区", + "上海崇明区": "上海市崇明区", + "江苏南京市玄武区": "江苏省南京市玄武区", + "南京市玄武区": "江苏省南京市玄武区", + "江苏南京市秦淮区": "江苏省南京市秦淮区", + "南京市秦淮区": "江苏省南京市秦淮区", + "江苏南京市建邺区": "江苏省南京市建邺区", + "南京市建邺区": "江苏省南京市建邺区", + "江苏南京市鼓楼区": "江苏省南京市鼓楼区", + "南京市鼓楼区": "江苏省南京市鼓楼区", + "江苏南京市浦口区": "江苏省南京市浦口区", + "南京市浦口区": "江苏省南京市浦口区", + "江苏南京市栖霞区": "江苏省南京市栖霞区", + "南京市栖霞区": "江苏省南京市栖霞区", + "江苏南京市雨花台区": "江苏省南京市雨花台区", + "南京市雨花台区": "江苏省南京市雨花台区", + "江苏南京市江宁区": "江苏省南京市江宁区", + "南京市江宁区": "江苏省南京市江宁区", + "江苏南京市六合区": "江苏省南京市六合区", + "南京市六合区": "江苏省南京市六合区", + "江苏南京市溧水区": "江苏省南京市溧水区", + "南京市溧水区": "江苏省南京市溧水区", + "江苏南京市高淳区": "江苏省南京市高淳区", + "南京市高淳区": "江苏省南京市高淳区", + "江苏无锡市锡山区": "江苏省无锡市锡山区", + "无锡市锡山区": "江苏省无锡市锡山区", + "江苏无锡市惠山区": "江苏省无锡市惠山区", + "无锡市惠山区": "江苏省无锡市惠山区", + "江苏无锡市滨湖区": "江苏省无锡市滨湖区", + "无锡市滨湖区": "江苏省无锡市滨湖区", + "江苏无锡市梁溪区": "江苏省无锡市梁溪区", + "无锡市梁溪区": "江苏省无锡市梁溪区", + "江苏无锡市新吴区": "江苏省无锡市新吴区", + "无锡市新吴区": "江苏省无锡市新吴区", + "江苏无锡市江阴市": "江苏省无锡市江阴市", + "无锡市江阴市": "江苏省无锡市江阴市", + "江苏无锡市宜兴市": "江苏省无锡市宜兴市", + "无锡市宜兴市": "江苏省无锡市宜兴市", + "江苏徐州市鼓楼区": "江苏省徐州市鼓楼区", + "徐州市鼓楼区": "江苏省徐州市鼓楼区", + "江苏徐州市云龙区": "江苏省徐州市云龙区", + "徐州市云龙区": "江苏省徐州市云龙区", + "江苏徐州市贾汪区": "江苏省徐州市贾汪区", + "徐州市贾汪区": "江苏省徐州市贾汪区", + "江苏徐州市泉山区": "江苏省徐州市泉山区", + "徐州市泉山区": "江苏省徐州市泉山区", + "江苏徐州市铜山区": "江苏省徐州市铜山区", + "徐州市铜山区": "江苏省徐州市铜山区", + "江苏徐州市丰县": "江苏省徐州市丰县", + "徐州市丰县": "江苏省徐州市丰县", + "江苏徐州市沛县": "江苏省徐州市沛县", + "徐州市沛县": "江苏省徐州市沛县", + "江苏徐州市睢宁县": "江苏省徐州市睢宁县", + "徐州市睢宁县": "江苏省徐州市睢宁县", + "江苏徐州市新沂市": "江苏省徐州市新沂市", + "徐州市新沂市": "江苏省徐州市新沂市", + "江苏徐州市邳州市": "江苏省徐州市邳州市", + "徐州市邳州市": "江苏省徐州市邳州市", + "江苏常州市天宁区": "江苏省常州市天宁区", + "常州市天宁区": "江苏省常州市天宁区", + "江苏常州市钟楼区": "江苏省常州市钟楼区", + "常州市钟楼区": "江苏省常州市钟楼区", + "江苏常州市新北区": "江苏省常州市新北区", + "常州市新北区": "江苏省常州市新北区", + "江苏常州市武进区": "江苏省常州市武进区", + "常州市武进区": "江苏省常州市武进区", + "江苏常州市金坛区": "江苏省常州市金坛区", + "常州市金坛区": "江苏省常州市金坛区", + "江苏常州市溧阳市": "江苏省常州市溧阳市", + "常州市溧阳市": "江苏省常州市溧阳市", + "江苏苏州市虎丘区": "江苏省苏州市虎丘区", + "苏州市虎丘区": "江苏省苏州市虎丘区", + "江苏苏州市吴中区": "江苏省苏州市吴中区", + "苏州市吴中区": "江苏省苏州市吴中区", + "江苏苏州市相城区": "江苏省苏州市相城区", + "苏州市相城区": "江苏省苏州市相城区", + "江苏苏州市姑苏区": "江苏省苏州市姑苏区", + "苏州市姑苏区": "江苏省苏州市姑苏区", + "江苏苏州市吴江区": "江苏省苏州市吴江区", + "苏州市吴江区": "江苏省苏州市吴江区", + "江苏苏州市常熟市": "江苏省苏州市常熟市", + "苏州市常熟市": "江苏省苏州市常熟市", + "江苏苏州市张家港市": "江苏省苏州市张家港市", + "苏州市张家港市": "江苏省苏州市张家港市", + "江苏苏州市昆山市": "江苏省苏州市昆山市", + "苏州市昆山市": "江苏省苏州市昆山市", + "江苏苏州市太仓市": "江苏省苏州市太仓市", + "苏州市太仓市": "江苏省苏州市太仓市", + "江苏南通市崇川区": "江苏省南通市崇川区", + "南通市崇川区": "江苏省南通市崇川区", + "江苏南通市通州区": "江苏省南通市通州区", + "南通市通州区": "江苏省南通市通州区", + "江苏南通市如东县": "江苏省南通市如东县", + "南通市如东县": "江苏省南通市如东县", + "江苏南通市启东市": "江苏省南通市启东市", + "南通市启东市": "江苏省南通市启东市", + "江苏南通市如皋市": "江苏省南通市如皋市", + "南通市如皋市": "江苏省南通市如皋市", + "江苏南通市海门区": "江苏省南通市海门区", + "南通市海门区": "江苏省南通市海门区", + "江苏南通市海安市": "江苏省南通市海安市", + "南通市海安市": "江苏省南通市海安市", + "江苏连云港市连云区": "江苏省连云港市连云区", + "连云港市连云区": "江苏省连云港市连云区", + "江苏连云港市海州区": "江苏省连云港市海州区", + "连云港市海州区": "江苏省连云港市海州区", + "江苏连云港市赣榆区": "江苏省连云港市赣榆区", + "连云港市赣榆区": "江苏省连云港市赣榆区", + "江苏连云港市东海县": "江苏省连云港市东海县", + "连云港市东海县": "江苏省连云港市东海县", + "江苏连云港市灌云县": "江苏省连云港市灌云县", + "连云港市灌云县": "江苏省连云港市灌云县", + "江苏连云港市灌南县": "江苏省连云港市灌南县", + "连云港市灌南县": "江苏省连云港市灌南县", + "江苏淮安市淮安区": "江苏省淮安市淮安区", + "淮安市淮安区": "江苏省淮安市淮安区", + "江苏淮安市淮阴区": "江苏省淮安市淮阴区", + "淮安市淮阴区": "江苏省淮安市淮阴区", + "江苏淮安市清江浦区": "江苏省淮安市清江浦区", + "淮安市清江浦区": "江苏省淮安市清江浦区", + "江苏淮安市洪泽区": "江苏省淮安市洪泽区", + "淮安市洪泽区": "江苏省淮安市洪泽区", + "江苏淮安市涟水县": "江苏省淮安市涟水县", + "淮安市涟水县": "江苏省淮安市涟水县", + "江苏淮安市盱眙县": "江苏省淮安市盱眙县", + "淮安市盱眙县": "江苏省淮安市盱眙县", + "江苏淮安市金湖县": "江苏省淮安市金湖县", + "淮安市金湖县": "江苏省淮安市金湖县", + "江苏盐城市亭湖区": "江苏省盐城市亭湖区", + "盐城市亭湖区": "江苏省盐城市亭湖区", + "江苏盐城市盐都区": "江苏省盐城市盐都区", + "盐城市盐都区": "江苏省盐城市盐都区", + "江苏盐城市大丰区": "江苏省盐城市大丰区", + "盐城市大丰区": "江苏省盐城市大丰区", + "江苏盐城市响水县": "江苏省盐城市响水县", + "盐城市响水县": "江苏省盐城市响水县", + "江苏盐城市滨海县": "江苏省盐城市滨海县", + "盐城市滨海县": "江苏省盐城市滨海县", + "江苏盐城市阜宁县": "江苏省盐城市阜宁县", + "盐城市阜宁县": "江苏省盐城市阜宁县", + "江苏盐城市射阳县": "江苏省盐城市射阳县", + "盐城市射阳县": "江苏省盐城市射阳县", + "江苏盐城市建湖县": "江苏省盐城市建湖县", + "盐城市建湖县": "江苏省盐城市建湖县", + "江苏盐城市东台市": "江苏省盐城市东台市", + "盐城市东台市": "江苏省盐城市东台市", + "江苏扬州市广陵区": "江苏省扬州市广陵区", + "扬州市广陵区": "江苏省扬州市广陵区", + "江苏扬州市邗江区": "江苏省扬州市邗江区", + "扬州市邗江区": "江苏省扬州市邗江区", + "江苏扬州市江都区": "江苏省扬州市江都区", + "扬州市江都区": "江苏省扬州市江都区", + "江苏扬州市宝应县": "江苏省扬州市宝应县", + "扬州市宝应县": "江苏省扬州市宝应县", + "江苏扬州市仪征市": "江苏省扬州市仪征市", + "扬州市仪征市": "江苏省扬州市仪征市", + "江苏扬州市高邮市": "江苏省扬州市高邮市", + "扬州市高邮市": "江苏省扬州市高邮市", + "江苏镇江市京口区": "江苏省镇江市京口区", + "镇江市京口区": "江苏省镇江市京口区", + "江苏镇江市润州区": "江苏省镇江市润州区", + "镇江市润州区": "江苏省镇江市润州区", + "江苏镇江市丹徒区": "江苏省镇江市丹徒区", + "镇江市丹徒区": "江苏省镇江市丹徒区", + "江苏镇江市丹阳市": "江苏省镇江市丹阳市", + "镇江市丹阳市": "江苏省镇江市丹阳市", + "江苏镇江市扬中市": "江苏省镇江市扬中市", + "镇江市扬中市": "江苏省镇江市扬中市", + "江苏镇江市句容市": "江苏省镇江市句容市", + "镇江市句容市": "江苏省镇江市句容市", + "江苏泰州市海陵区": "江苏省泰州市海陵区", + "泰州市海陵区": "江苏省泰州市海陵区", + "江苏泰州市高港区": "江苏省泰州市高港区", + "泰州市高港区": "江苏省泰州市高港区", + "江苏泰州市姜堰区": "江苏省泰州市姜堰区", + "泰州市姜堰区": "江苏省泰州市姜堰区", + "江苏泰州市兴化市": "江苏省泰州市兴化市", + "泰州市兴化市": "江苏省泰州市兴化市", + "江苏泰州市靖江市": "江苏省泰州市靖江市", + "泰州市靖江市": "江苏省泰州市靖江市", + "江苏泰州市泰兴市": "江苏省泰州市泰兴市", + "泰州市泰兴市": "江苏省泰州市泰兴市", + "江苏宿迁市宿城区": "江苏省宿迁市宿城区", + "宿迁市宿城区": "江苏省宿迁市宿城区", + "江苏宿迁市宿豫区": "江苏省宿迁市宿豫区", + "宿迁市宿豫区": "江苏省宿迁市宿豫区", + "江苏宿迁市沭阳县": "江苏省宿迁市沭阳县", + "宿迁市沭阳县": "江苏省宿迁市沭阳县", + "江苏宿迁市泗阳县": "江苏省宿迁市泗阳县", + "宿迁市泗阳县": "江苏省宿迁市泗阳县", + "江苏宿迁市泗洪县": "江苏省宿迁市泗洪县", + "宿迁市泗洪县": "江苏省宿迁市泗洪县", + "浙江杭州市上城区": "浙江省杭州市上城区", + "杭州市上城区": "浙江省杭州市上城区", + "浙江杭州市拱墅区": "浙江省杭州市拱墅区", + "杭州市拱墅区": "浙江省杭州市拱墅区", + "浙江杭州市西湖区": "浙江省杭州市西湖区", + "杭州市西湖区": "浙江省杭州市西湖区", + "浙江杭州市滨江区": "浙江省杭州市滨江区", + "杭州市滨江区": "浙江省杭州市滨江区", + "浙江杭州市萧山区": "浙江省杭州市萧山区", + "杭州市萧山区": "浙江省杭州市萧山区", + "浙江杭州市余杭区": "浙江省杭州市余杭区", + "杭州市余杭区": "浙江省杭州市余杭区", + "浙江杭州市富阳区": "浙江省杭州市富阳区", + "杭州市富阳区": "浙江省杭州市富阳区", + "浙江杭州市临安区": "浙江省杭州市临安区", + "杭州市临安区": "浙江省杭州市临安区", + "浙江杭州市钱塘区": "浙江省杭州市钱塘区", + "杭州市钱塘区": "浙江省杭州市钱塘区", + "浙江杭州市临平区": "浙江省杭州市临平区", + "杭州市临平区": "浙江省杭州市临平区", + "浙江杭州市桐庐县": "浙江省杭州市桐庐县", + "杭州市桐庐县": "浙江省杭州市桐庐县", + "浙江杭州市淳安县": "浙江省杭州市淳安县", + "杭州市淳安县": "浙江省杭州市淳安县", + "浙江杭州市建德市": "浙江省杭州市建德市", + "杭州市建德市": "浙江省杭州市建德市", + "浙江宁波市海曙区": "浙江省宁波市海曙区", + "宁波市海曙区": "浙江省宁波市海曙区", + "浙江宁波市江北区": "浙江省宁波市江北区", + "宁波市江北区": "浙江省宁波市江北区", + "浙江宁波市北仑区": "浙江省宁波市北仑区", + "宁波市北仑区": "浙江省宁波市北仑区", + "浙江宁波市镇海区": "浙江省宁波市镇海区", + "宁波市镇海区": "浙江省宁波市镇海区", + "浙江宁波市鄞州区": "浙江省宁波市鄞州区", + "宁波市鄞州区": "浙江省宁波市鄞州区", + "浙江宁波市奉化区": "浙江省宁波市奉化区", + "宁波市奉化区": "浙江省宁波市奉化区", + "浙江宁波市象山县": "浙江省宁波市象山县", + "宁波市象山县": "浙江省宁波市象山县", + "浙江宁波市宁海县": "浙江省宁波市宁海县", + "宁波市宁海县": "浙江省宁波市宁海县", + "浙江宁波市余姚市": "浙江省宁波市余姚市", + "宁波市余姚市": "浙江省宁波市余姚市", + "浙江宁波市慈溪市": "浙江省宁波市慈溪市", + "宁波市慈溪市": "浙江省宁波市慈溪市", + "浙江温州市鹿城区": "浙江省温州市鹿城区", + "温州市鹿城区": "浙江省温州市鹿城区", + "浙江温州市龙湾区": "浙江省温州市龙湾区", + "温州市龙湾区": "浙江省温州市龙湾区", + "浙江温州市瓯海区": "浙江省温州市瓯海区", + "温州市瓯海区": "浙江省温州市瓯海区", + "浙江温州市洞头区": "浙江省温州市洞头区", + "温州市洞头区": "浙江省温州市洞头区", + "浙江温州市永嘉县": "浙江省温州市永嘉县", + "温州市永嘉县": "浙江省温州市永嘉县", + "浙江温州市平阳县": "浙江省温州市平阳县", + "温州市平阳县": "浙江省温州市平阳县", + "浙江温州市苍南县": "浙江省温州市苍南县", + "温州市苍南县": "浙江省温州市苍南县", + "浙江温州市文成县": "浙江省温州市文成县", + "温州市文成县": "浙江省温州市文成县", + "浙江温州市泰顺县": "浙江省温州市泰顺县", + "温州市泰顺县": "浙江省温州市泰顺县", + "浙江温州市瑞安市": "浙江省温州市瑞安市", + "温州市瑞安市": "浙江省温州市瑞安市", + "浙江温州市乐清市": "浙江省温州市乐清市", + "温州市乐清市": "浙江省温州市乐清市", + "浙江温州市龙港市": "浙江省温州市龙港市", + "温州市龙港市": "浙江省温州市龙港市", + "浙江嘉兴市南湖区": "浙江省嘉兴市南湖区", + "嘉兴市南湖区": "浙江省嘉兴市南湖区", + "浙江嘉兴市秀洲区": "浙江省嘉兴市秀洲区", + "嘉兴市秀洲区": "浙江省嘉兴市秀洲区", + "浙江嘉兴市嘉善县": "浙江省嘉兴市嘉善县", + "嘉兴市嘉善县": "浙江省嘉兴市嘉善县", + "浙江嘉兴市海盐县": "浙江省嘉兴市海盐县", + "嘉兴市海盐县": "浙江省嘉兴市海盐县", + "浙江嘉兴市海宁市": "浙江省嘉兴市海宁市", + "嘉兴市海宁市": "浙江省嘉兴市海宁市", + "浙江嘉兴市平湖市": "浙江省嘉兴市平湖市", + "嘉兴市平湖市": "浙江省嘉兴市平湖市", + "浙江嘉兴市桐乡市": "浙江省嘉兴市桐乡市", + "嘉兴市桐乡市": "浙江省嘉兴市桐乡市", + "浙江湖州市吴兴区": "浙江省湖州市吴兴区", + "湖州市吴兴区": "浙江省湖州市吴兴区", + "浙江湖州市南浔区": "浙江省湖州市南浔区", + "湖州市南浔区": "浙江省湖州市南浔区", + "浙江湖州市德清县": "浙江省湖州市德清县", + "湖州市德清县": "浙江省湖州市德清县", + "浙江湖州市长兴县": "浙江省湖州市长兴县", + "湖州市长兴县": "浙江省湖州市长兴县", + "浙江湖州市安吉县": "浙江省湖州市安吉县", + "湖州市安吉县": "浙江省湖州市安吉县", + "浙江绍兴市越城区": "浙江省绍兴市越城区", + "绍兴市越城区": "浙江省绍兴市越城区", + "浙江绍兴市柯桥区": "浙江省绍兴市柯桥区", + "绍兴市柯桥区": "浙江省绍兴市柯桥区", + "浙江绍兴市上虞区": "浙江省绍兴市上虞区", + "绍兴市上虞区": "浙江省绍兴市上虞区", + "浙江绍兴市新昌县": "浙江省绍兴市新昌县", + "绍兴市新昌县": "浙江省绍兴市新昌县", + "浙江绍兴市诸暨市": "浙江省绍兴市诸暨市", + "绍兴市诸暨市": "浙江省绍兴市诸暨市", + "浙江绍兴市嵊州市": "浙江省绍兴市嵊州市", + "绍兴市嵊州市": "浙江省绍兴市嵊州市", + "浙江金华市婺城区": "浙江省金华市婺城区", + "金华市婺城区": "浙江省金华市婺城区", + "浙江金华市金东区": "浙江省金华市金东区", + "金华市金东区": "浙江省金华市金东区", + "浙江金华市武义县": "浙江省金华市武义县", + "金华市武义县": "浙江省金华市武义县", + "浙江金华市浦江县": "浙江省金华市浦江县", + "金华市浦江县": "浙江省金华市浦江县", + "浙江金华市磐安县": "浙江省金华市磐安县", + "金华市磐安县": "浙江省金华市磐安县", + "浙江金华市兰溪市": "浙江省金华市兰溪市", + "金华市兰溪市": "浙江省金华市兰溪市", + "浙江金华市义乌市": "浙江省金华市义乌市", + "金华市义乌市": "浙江省金华市义乌市", + "浙江金华市东阳市": "浙江省金华市东阳市", + "金华市东阳市": "浙江省金华市东阳市", + "浙江金华市永康市": "浙江省金华市永康市", + "金华市永康市": "浙江省金华市永康市", + "浙江衢州市柯城区": "浙江省衢州市柯城区", + "衢州市柯城区": "浙江省衢州市柯城区", + "浙江衢州市衢江区": "浙江省衢州市衢江区", + "衢州市衢江区": "浙江省衢州市衢江区", + "浙江衢州市常山县": "浙江省衢州市常山县", + "衢州市常山县": "浙江省衢州市常山县", + "浙江衢州市开化县": "浙江省衢州市开化县", + "衢州市开化县": "浙江省衢州市开化县", + "浙江衢州市龙游县": "浙江省衢州市龙游县", + "衢州市龙游县": "浙江省衢州市龙游县", + "浙江衢州市江山市": "浙江省衢州市江山市", + "衢州市江山市": "浙江省衢州市江山市", + "浙江舟山市定海区": "浙江省舟山市定海区", + "舟山市定海区": "浙江省舟山市定海区", + "浙江舟山市普陀区": "浙江省舟山市普陀区", + "舟山市普陀区": "浙江省舟山市普陀区", + "浙江舟山市岱山县": "浙江省舟山市岱山县", + "舟山市岱山县": "浙江省舟山市岱山县", + "浙江舟山市嵊泗县": "浙江省舟山市嵊泗县", + "舟山市嵊泗县": "浙江省舟山市嵊泗县", + "浙江台州市椒江区": "浙江省台州市椒江区", + "台州市椒江区": "浙江省台州市椒江区", + "浙江台州市黄岩区": "浙江省台州市黄岩区", + "台州市黄岩区": "浙江省台州市黄岩区", + "浙江台州市路桥区": "浙江省台州市路桥区", + "台州市路桥区": "浙江省台州市路桥区", + "浙江台州市三门县": "浙江省台州市三门县", + "台州市三门县": "浙江省台州市三门县", + "浙江台州市天台县": "浙江省台州市天台县", + "台州市天台县": "浙江省台州市天台县", + "浙江台州市仙居县": "浙江省台州市仙居县", + "台州市仙居县": "浙江省台州市仙居县", + "浙江台州市温岭市": "浙江省台州市温岭市", + "台州市温岭市": "浙江省台州市温岭市", + "浙江台州市临海市": "浙江省台州市临海市", + "台州市临海市": "浙江省台州市临海市", + "浙江台州市玉环市": "浙江省台州市玉环市", + "台州市玉环市": "浙江省台州市玉环市", + "浙江丽水市莲都区": "浙江省丽水市莲都区", + "丽水市莲都区": "浙江省丽水市莲都区", + "浙江丽水市青田县": "浙江省丽水市青田县", + "丽水市青田县": "浙江省丽水市青田县", + "浙江丽水市缙云县": "浙江省丽水市缙云县", + "丽水市缙云县": "浙江省丽水市缙云县", + "浙江丽水市遂昌县": "浙江省丽水市遂昌县", + "丽水市遂昌县": "浙江省丽水市遂昌县", + "浙江丽水市松阳县": "浙江省丽水市松阳县", + "丽水市松阳县": "浙江省丽水市松阳县", + "浙江丽水市云和县": "浙江省丽水市云和县", + "丽水市云和县": "浙江省丽水市云和县", + "浙江丽水市庆元县": "浙江省丽水市庆元县", + "丽水市庆元县": "浙江省丽水市庆元县", + "浙江丽水市景宁畲族自治县": "浙江省丽水市景宁畲族自治县", + "丽水市景宁畲族自治县": "浙江省丽水市景宁畲族自治县", + "浙江丽水市龙泉市": "浙江省丽水市龙泉市", + "丽水市龙泉市": "浙江省丽水市龙泉市", + "安徽合肥市瑶海区": "安徽省合肥市瑶海区", + "合肥市瑶海区": "安徽省合肥市瑶海区", + "安徽合肥市庐阳区": "安徽省合肥市庐阳区", + "合肥市庐阳区": "安徽省合肥市庐阳区", + "安徽合肥市蜀山区": "安徽省合肥市蜀山区", + "合肥市蜀山区": "安徽省合肥市蜀山区", + "安徽合肥市包河区": "安徽省合肥市包河区", + "合肥市包河区": "安徽省合肥市包河区", + "安徽合肥市长丰县": "安徽省合肥市长丰县", + "合肥市长丰县": "安徽省合肥市长丰县", + "安徽合肥市肥东县": "安徽省合肥市肥东县", + "合肥市肥东县": "安徽省合肥市肥东县", + "安徽合肥市肥西县": "安徽省合肥市肥西县", + "合肥市肥西县": "安徽省合肥市肥西县", + "安徽合肥市庐江县": "安徽省合肥市庐江县", + "合肥市庐江县": "安徽省合肥市庐江县", + "安徽合肥市巢湖市": "安徽省合肥市巢湖市", + "合肥市巢湖市": "安徽省合肥市巢湖市", + "安徽芜湖市镜湖区": "安徽省芜湖市镜湖区", + "芜湖市镜湖区": "安徽省芜湖市镜湖区", + "安徽芜湖市鸠江区": "安徽省芜湖市鸠江区", + "芜湖市鸠江区": "安徽省芜湖市鸠江区", + "安徽芜湖市弋江区": "安徽省芜湖市弋江区", + "芜湖市弋江区": "安徽省芜湖市弋江区", + "安徽芜湖市湾沚区": "安徽省芜湖市湾沚区", + "芜湖市湾沚区": "安徽省芜湖市湾沚区", + "安徽芜湖市繁昌区": "安徽省芜湖市繁昌区", + "芜湖市繁昌区": "安徽省芜湖市繁昌区", + "安徽芜湖市南陵县": "安徽省芜湖市南陵县", + "芜湖市南陵县": "安徽省芜湖市南陵县", + "安徽芜湖市无为市": "安徽省芜湖市无为市", + "芜湖市无为市": "安徽省芜湖市无为市", + "安徽蚌埠市龙子湖区": "安徽省蚌埠市龙子湖区", + "蚌埠市龙子湖区": "安徽省蚌埠市龙子湖区", + "安徽蚌埠市蚌山区": "安徽省蚌埠市蚌山区", + "蚌埠市蚌山区": "安徽省蚌埠市蚌山区", + "安徽蚌埠市禹会区": "安徽省蚌埠市禹会区", + "蚌埠市禹会区": "安徽省蚌埠市禹会区", + "安徽蚌埠市淮上区": "安徽省蚌埠市淮上区", + "蚌埠市淮上区": "安徽省蚌埠市淮上区", + "安徽蚌埠市怀远县": "安徽省蚌埠市怀远县", + "蚌埠市怀远县": "安徽省蚌埠市怀远县", + "安徽蚌埠市五河县": "安徽省蚌埠市五河县", + "蚌埠市五河县": "安徽省蚌埠市五河县", + "安徽蚌埠市固镇县": "安徽省蚌埠市固镇县", + "蚌埠市固镇县": "安徽省蚌埠市固镇县", + "安徽淮南市大通区": "安徽省淮南市大通区", + "淮南市大通区": "安徽省淮南市大通区", + "安徽淮南市田家庵区": "安徽省淮南市田家庵区", + "淮南市田家庵区": "安徽省淮南市田家庵区", + "安徽淮南市谢家集区": "安徽省淮南市谢家集区", + "淮南市谢家集区": "安徽省淮南市谢家集区", + "安徽淮南市八公山区": "安徽省淮南市八公山区", + "淮南市八公山区": "安徽省淮南市八公山区", + "安徽淮南市潘集区": "安徽省淮南市潘集区", + "淮南市潘集区": "安徽省淮南市潘集区", + "安徽淮南市凤台县": "安徽省淮南市凤台县", + "淮南市凤台县": "安徽省淮南市凤台县", + "安徽淮南市寿县": "安徽省淮南市寿县", + "淮南市寿县": "安徽省淮南市寿县", + "安徽马鞍山市花山区": "安徽省马鞍山市花山区", + "马鞍山市花山区": "安徽省马鞍山市花山区", + "安徽马鞍山市雨山区": "安徽省马鞍山市雨山区", + "马鞍山市雨山区": "安徽省马鞍山市雨山区", + "安徽马鞍山市博望区": "安徽省马鞍山市博望区", + "马鞍山市博望区": "安徽省马鞍山市博望区", + "安徽马鞍山市当涂县": "安徽省马鞍山市当涂县", + "马鞍山市当涂县": "安徽省马鞍山市当涂县", + "安徽马鞍山市含山县": "安徽省马鞍山市含山县", + "马鞍山市含山县": "安徽省马鞍山市含山县", + "安徽马鞍山市和县": "安徽省马鞍山市和县", + "马鞍山市和县": "安徽省马鞍山市和县", + "安徽淮北市杜集区": "安徽省淮北市杜集区", + "淮北市杜集区": "安徽省淮北市杜集区", + "安徽淮北市相山区": "安徽省淮北市相山区", + "淮北市相山区": "安徽省淮北市相山区", + "安徽淮北市烈山区": "安徽省淮北市烈山区", + "淮北市烈山区": "安徽省淮北市烈山区", + "安徽淮北市濉溪县": "安徽省淮北市濉溪县", + "淮北市濉溪县": "安徽省淮北市濉溪县", + "安徽铜陵市铜官区": "安徽省铜陵市铜官区", + "铜陵市铜官区": "安徽省铜陵市铜官区", + "安徽铜陵市义安区": "安徽省铜陵市义安区", + "铜陵市义安区": "安徽省铜陵市义安区", + "安徽铜陵市郊区": "安徽省铜陵市郊区", + "铜陵市郊区": "安徽省铜陵市郊区", + "安徽铜陵市枞阳县": "安徽省铜陵市枞阳县", + "铜陵市枞阳县": "安徽省铜陵市枞阳县", + "安徽安庆市迎江区": "安徽省安庆市迎江区", + "安庆市迎江区": "安徽省安庆市迎江区", + "安徽安庆市大观区": "安徽省安庆市大观区", + "安庆市大观区": "安徽省安庆市大观区", + "安徽安庆市宜秀区": "安徽省安庆市宜秀区", + "安庆市宜秀区": "安徽省安庆市宜秀区", + "安徽安庆市怀宁县": "安徽省安庆市怀宁县", + "安庆市怀宁县": "安徽省安庆市怀宁县", + "安徽安庆市太湖县": "安徽省安庆市太湖县", + "安庆市太湖县": "安徽省安庆市太湖县", + "安徽安庆市宿松县": "安徽省安庆市宿松县", + "安庆市宿松县": "安徽省安庆市宿松县", + "安徽安庆市望江县": "安徽省安庆市望江县", + "安庆市望江县": "安徽省安庆市望江县", + "安徽安庆市岳西县": "安徽省安庆市岳西县", + "安庆市岳西县": "安徽省安庆市岳西县", + "安徽安庆市桐城市": "安徽省安庆市桐城市", + "安庆市桐城市": "安徽省安庆市桐城市", + "安徽安庆市潜山市": "安徽省安庆市潜山市", + "安庆市潜山市": "安徽省安庆市潜山市", + "安徽黄山市屯溪区": "安徽省黄山市屯溪区", + "黄山市屯溪区": "安徽省黄山市屯溪区", + "安徽黄山市黄山区": "安徽省黄山市黄山区", + "黄山市黄山区": "安徽省黄山市黄山区", + "安徽黄山市徽州区": "安徽省黄山市徽州区", + "黄山市徽州区": "安徽省黄山市徽州区", + "安徽黄山市歙县": "安徽省黄山市歙县", + "黄山市歙县": "安徽省黄山市歙县", + "安徽黄山市休宁县": "安徽省黄山市休宁县", + "黄山市休宁县": "安徽省黄山市休宁县", + "安徽黄山市黟县": "安徽省黄山市黟县", + "黄山市黟县": "安徽省黄山市黟县", + "安徽黄山市祁门县": "安徽省黄山市祁门县", + "黄山市祁门县": "安徽省黄山市祁门县", + "安徽滁州市琅琊区": "安徽省滁州市琅琊区", + "滁州市琅琊区": "安徽省滁州市琅琊区", + "安徽滁州市南谯区": "安徽省滁州市南谯区", + "滁州市南谯区": "安徽省滁州市南谯区", + "安徽滁州市来安县": "安徽省滁州市来安县", + "滁州市来安县": "安徽省滁州市来安县", + "安徽滁州市全椒县": "安徽省滁州市全椒县", + "滁州市全椒县": "安徽省滁州市全椒县", + "安徽滁州市定远县": "安徽省滁州市定远县", + "滁州市定远县": "安徽省滁州市定远县", + "安徽滁州市凤阳县": "安徽省滁州市凤阳县", + "滁州市凤阳县": "安徽省滁州市凤阳县", + "安徽滁州市天长市": "安徽省滁州市天长市", + "滁州市天长市": "安徽省滁州市天长市", + "安徽滁州市明光市": "安徽省滁州市明光市", + "滁州市明光市": "安徽省滁州市明光市", + "安徽阜阳市颍州区": "安徽省阜阳市颍州区", + "阜阳市颍州区": "安徽省阜阳市颍州区", + "安徽阜阳市颍东区": "安徽省阜阳市颍东区", + "阜阳市颍东区": "安徽省阜阳市颍东区", + "安徽阜阳市颍泉区": "安徽省阜阳市颍泉区", + "阜阳市颍泉区": "安徽省阜阳市颍泉区", + "安徽阜阳市临泉县": "安徽省阜阳市临泉县", + "阜阳市临泉县": "安徽省阜阳市临泉县", + "安徽阜阳市太和县": "安徽省阜阳市太和县", + "阜阳市太和县": "安徽省阜阳市太和县", + "安徽阜阳市阜南县": "安徽省阜阳市阜南县", + "阜阳市阜南县": "安徽省阜阳市阜南县", + "安徽阜阳市颍上县": "安徽省阜阳市颍上县", + "阜阳市颍上县": "安徽省阜阳市颍上县", + "安徽阜阳市界首市": "安徽省阜阳市界首市", + "阜阳市界首市": "安徽省阜阳市界首市", + "安徽宿州市埇桥区": "安徽省宿州市埇桥区", + "宿州市埇桥区": "安徽省宿州市埇桥区", + "安徽宿州市砀山县": "安徽省宿州市砀山县", + "宿州市砀山县": "安徽省宿州市砀山县", + "安徽宿州市萧县": "安徽省宿州市萧县", + "宿州市萧县": "安徽省宿州市萧县", + "安徽宿州市灵璧县": "安徽省宿州市灵璧县", + "宿州市灵璧县": "安徽省宿州市灵璧县", + "安徽宿州市泗县": "安徽省宿州市泗县", + "宿州市泗县": "安徽省宿州市泗县", + "安徽六安市金安区": "安徽省六安市金安区", + "六安市金安区": "安徽省六安市金安区", + "安徽六安市裕安区": "安徽省六安市裕安区", + "六安市裕安区": "安徽省六安市裕安区", + "安徽六安市叶集区": "安徽省六安市叶集区", + "六安市叶集区": "安徽省六安市叶集区", + "安徽六安市霍邱县": "安徽省六安市霍邱县", + "六安市霍邱县": "安徽省六安市霍邱县", + "安徽六安市舒城县": "安徽省六安市舒城县", + "六安市舒城县": "安徽省六安市舒城县", + "安徽六安市金寨县": "安徽省六安市金寨县", + "六安市金寨县": "安徽省六安市金寨县", + "安徽六安市霍山县": "安徽省六安市霍山县", + "六安市霍山县": "安徽省六安市霍山县", + "安徽亳州市谯城区": "安徽省亳州市谯城区", + "亳州市谯城区": "安徽省亳州市谯城区", + "安徽亳州市涡阳县": "安徽省亳州市涡阳县", + "亳州市涡阳县": "安徽省亳州市涡阳县", + "安徽亳州市蒙城县": "安徽省亳州市蒙城县", + "亳州市蒙城县": "安徽省亳州市蒙城县", + "安徽亳州市利辛县": "安徽省亳州市利辛县", + "亳州市利辛县": "安徽省亳州市利辛县", + "安徽池州市贵池区": "安徽省池州市贵池区", + "池州市贵池区": "安徽省池州市贵池区", + "安徽池州市东至县": "安徽省池州市东至县", + "池州市东至县": "安徽省池州市东至县", + "安徽池州市石台县": "安徽省池州市石台县", + "池州市石台县": "安徽省池州市石台县", + "安徽池州市青阳县": "安徽省池州市青阳县", + "池州市青阳县": "安徽省池州市青阳县", + "安徽宣城市宣州区": "安徽省宣城市宣州区", + "宣城市宣州区": "安徽省宣城市宣州区", + "安徽宣城市郎溪县": "安徽省宣城市郎溪县", + "宣城市郎溪县": "安徽省宣城市郎溪县", + "安徽宣城市泾县": "安徽省宣城市泾县", + "宣城市泾县": "安徽省宣城市泾县", + "安徽宣城市绩溪县": "安徽省宣城市绩溪县", + "宣城市绩溪县": "安徽省宣城市绩溪县", + "安徽宣城市旌德县": "安徽省宣城市旌德县", + "宣城市旌德县": "安徽省宣城市旌德县", + "安徽宣城市宁国市": "安徽省宣城市宁国市", + "宣城市宁国市": "安徽省宣城市宁国市", + "安徽宣城市广德市": "安徽省宣城市广德市", + "宣城市广德市": "安徽省宣城市广德市", + "福建福州市鼓楼区": "福建省福州市鼓楼区", + "福州市鼓楼区": "福建省福州市鼓楼区", + "福建福州市台江区": "福建省福州市台江区", + "福州市台江区": "福建省福州市台江区", + "福建福州市仓山区": "福建省福州市仓山区", + "福州市仓山区": "福建省福州市仓山区", + "福建福州市马尾区": "福建省福州市马尾区", + "福州市马尾区": "福建省福州市马尾区", + "福建福州市晋安区": "福建省福州市晋安区", + "福州市晋安区": "福建省福州市晋安区", + "福建福州市长乐区": "福建省福州市长乐区", + "福州市长乐区": "福建省福州市长乐区", + "福建福州市闽侯县": "福建省福州市闽侯县", + "福州市闽侯县": "福建省福州市闽侯县", + "福建福州市连江县": "福建省福州市连江县", + "福州市连江县": "福建省福州市连江县", + "福建福州市罗源县": "福建省福州市罗源县", + "福州市罗源县": "福建省福州市罗源县", + "福建福州市闽清县": "福建省福州市闽清县", + "福州市闽清县": "福建省福州市闽清县", + "福建福州市永泰县": "福建省福州市永泰县", + "福州市永泰县": "福建省福州市永泰县", + "福建福州市平潭县": "福建省福州市平潭县", + "福州市平潭县": "福建省福州市平潭县", + "福建福州市福清市": "福建省福州市福清市", + "福州市福清市": "福建省福州市福清市", + "福建厦门市思明区": "福建省厦门市思明区", + "厦门市思明区": "福建省厦门市思明区", + "福建厦门市海沧区": "福建省厦门市海沧区", + "厦门市海沧区": "福建省厦门市海沧区", + "福建厦门市湖里区": "福建省厦门市湖里区", + "厦门市湖里区": "福建省厦门市湖里区", + "福建厦门市集美区": "福建省厦门市集美区", + "厦门市集美区": "福建省厦门市集美区", + "福建厦门市同安区": "福建省厦门市同安区", + "厦门市同安区": "福建省厦门市同安区", + "福建厦门市翔安区": "福建省厦门市翔安区", + "厦门市翔安区": "福建省厦门市翔安区", + "福建莆田市城厢区": "福建省莆田市城厢区", + "莆田市城厢区": "福建省莆田市城厢区", + "福建莆田市涵江区": "福建省莆田市涵江区", + "莆田市涵江区": "福建省莆田市涵江区", + "福建莆田市荔城区": "福建省莆田市荔城区", + "莆田市荔城区": "福建省莆田市荔城区", + "福建莆田市秀屿区": "福建省莆田市秀屿区", + "莆田市秀屿区": "福建省莆田市秀屿区", + "福建莆田市仙游县": "福建省莆田市仙游县", + "莆田市仙游县": "福建省莆田市仙游县", + "福建三明市三元区": "福建省三明市三元区", + "三明市三元区": "福建省三明市三元区", + "福建三明市明溪县": "福建省三明市明溪县", + "三明市明溪县": "福建省三明市明溪县", + "福建三明市清流县": "福建省三明市清流县", + "三明市清流县": "福建省三明市清流县", + "福建三明市宁化县": "福建省三明市宁化县", + "三明市宁化县": "福建省三明市宁化县", + "福建三明市大田县": "福建省三明市大田县", + "三明市大田县": "福建省三明市大田县", + "福建三明市尤溪县": "福建省三明市尤溪县", + "三明市尤溪县": "福建省三明市尤溪县", + "福建三明市沙县区": "福建省三明市沙县区", + "三明市沙县区": "福建省三明市沙县区", + "福建三明市将乐县": "福建省三明市将乐县", + "三明市将乐县": "福建省三明市将乐县", + "福建三明市泰宁县": "福建省三明市泰宁县", + "三明市泰宁县": "福建省三明市泰宁县", + "福建三明市建宁县": "福建省三明市建宁县", + "三明市建宁县": "福建省三明市建宁县", + "福建三明市永安市": "福建省三明市永安市", + "三明市永安市": "福建省三明市永安市", + "福建泉州市鲤城区": "福建省泉州市鲤城区", + "泉州市鲤城区": "福建省泉州市鲤城区", + "福建泉州市丰泽区": "福建省泉州市丰泽区", + "泉州市丰泽区": "福建省泉州市丰泽区", + "福建泉州市洛江区": "福建省泉州市洛江区", + "泉州市洛江区": "福建省泉州市洛江区", + "福建泉州市泉港区": "福建省泉州市泉港区", + "泉州市泉港区": "福建省泉州市泉港区", + "福建泉州市惠安县": "福建省泉州市惠安县", + "泉州市惠安县": "福建省泉州市惠安县", + "福建泉州市安溪县": "福建省泉州市安溪县", + "泉州市安溪县": "福建省泉州市安溪县", + "福建泉州市永春县": "福建省泉州市永春县", + "泉州市永春县": "福建省泉州市永春县", + "福建泉州市德化县": "福建省泉州市德化县", + "泉州市德化县": "福建省泉州市德化县", + "福建泉州市金门县": "福建省泉州市金门县", + "泉州市金门县": "福建省泉州市金门县", + "福建泉州市石狮市": "福建省泉州市石狮市", + "泉州市石狮市": "福建省泉州市石狮市", + "福建泉州市晋江市": "福建省泉州市晋江市", + "泉州市晋江市": "福建省泉州市晋江市", + "福建泉州市南安市": "福建省泉州市南安市", + "泉州市南安市": "福建省泉州市南安市", + "福建漳州市芗城区": "福建省漳州市芗城区", + "漳州市芗城区": "福建省漳州市芗城区", + "福建漳州市龙文区": "福建省漳州市龙文区", + "漳州市龙文区": "福建省漳州市龙文区", + "福建漳州市云霄县": "福建省漳州市云霄县", + "漳州市云霄县": "福建省漳州市云霄县", + "福建漳州市漳浦县": "福建省漳州市漳浦县", + "漳州市漳浦县": "福建省漳州市漳浦县", + "福建漳州市诏安县": "福建省漳州市诏安县", + "漳州市诏安县": "福建省漳州市诏安县", + "福建漳州市长泰区": "福建省漳州市长泰区", + "漳州市长泰区": "福建省漳州市长泰区", + "福建漳州市东山县": "福建省漳州市东山县", + "漳州市东山县": "福建省漳州市东山县", + "福建漳州市南靖县": "福建省漳州市南靖县", + "漳州市南靖县": "福建省漳州市南靖县", + "福建漳州市平和县": "福建省漳州市平和县", + "漳州市平和县": "福建省漳州市平和县", + "福建漳州市华安县": "福建省漳州市华安县", + "漳州市华安县": "福建省漳州市华安县", + "福建漳州市龙海区": "福建省漳州市龙海区", + "漳州市龙海区": "福建省漳州市龙海区", + "福建南平市延平区": "福建省南平市延平区", + "南平市延平区": "福建省南平市延平区", + "福建南平市建阳区": "福建省南平市建阳区", + "南平市建阳区": "福建省南平市建阳区", + "福建南平市顺昌县": "福建省南平市顺昌县", + "南平市顺昌县": "福建省南平市顺昌县", + "福建南平市浦城县": "福建省南平市浦城县", + "南平市浦城县": "福建省南平市浦城县", + "福建南平市光泽县": "福建省南平市光泽县", + "南平市光泽县": "福建省南平市光泽县", + "福建南平市松溪县": "福建省南平市松溪县", + "南平市松溪县": "福建省南平市松溪县", + "福建南平市政和县": "福建省南平市政和县", + "南平市政和县": "福建省南平市政和县", + "福建南平市邵武市": "福建省南平市邵武市", + "南平市邵武市": "福建省南平市邵武市", + "福建南平市武夷山市": "福建省南平市武夷山市", + "南平市武夷山市": "福建省南平市武夷山市", + "福建南平市建瓯市": "福建省南平市建瓯市", + "南平市建瓯市": "福建省南平市建瓯市", + "福建龙岩市新罗区": "福建省龙岩市新罗区", + "龙岩市新罗区": "福建省龙岩市新罗区", + "福建龙岩市永定区": "福建省龙岩市永定区", + "龙岩市永定区": "福建省龙岩市永定区", + "福建龙岩市长汀县": "福建省龙岩市长汀县", + "龙岩市长汀县": "福建省龙岩市长汀县", + "福建龙岩市上杭县": "福建省龙岩市上杭县", + "龙岩市上杭县": "福建省龙岩市上杭县", + "福建龙岩市武平县": "福建省龙岩市武平县", + "龙岩市武平县": "福建省龙岩市武平县", + "福建龙岩市连城县": "福建省龙岩市连城县", + "龙岩市连城县": "福建省龙岩市连城县", + "福建龙岩市漳平市": "福建省龙岩市漳平市", + "龙岩市漳平市": "福建省龙岩市漳平市", + "福建宁德市蕉城区": "福建省宁德市蕉城区", + "宁德市蕉城区": "福建省宁德市蕉城区", + "福建宁德市霞浦县": "福建省宁德市霞浦县", + "宁德市霞浦县": "福建省宁德市霞浦县", + "福建宁德市古田县": "福建省宁德市古田县", + "宁德市古田县": "福建省宁德市古田县", + "福建宁德市屏南县": "福建省宁德市屏南县", + "宁德市屏南县": "福建省宁德市屏南县", + "福建宁德市寿宁县": "福建省宁德市寿宁县", + "宁德市寿宁县": "福建省宁德市寿宁县", + "福建宁德市周宁县": "福建省宁德市周宁县", + "宁德市周宁县": "福建省宁德市周宁县", + "福建宁德市柘荣县": "福建省宁德市柘荣县", + "宁德市柘荣县": "福建省宁德市柘荣县", + "福建宁德市福安市": "福建省宁德市福安市", + "宁德市福安市": "福建省宁德市福安市", + "福建宁德市福鼎市": "福建省宁德市福鼎市", + "宁德市福鼎市": "福建省宁德市福鼎市", + "江西南昌市东湖区": "江西省南昌市东湖区", + "南昌市东湖区": "江西省南昌市东湖区", + "江西南昌市西湖区": "江西省南昌市西湖区", + "南昌市西湖区": "江西省南昌市西湖区", + "江西南昌市青云谱区": "江西省南昌市青云谱区", + "南昌市青云谱区": "江西省南昌市青云谱区", + "江西南昌市青山湖区": "江西省南昌市青山湖区", + "南昌市青山湖区": "江西省南昌市青山湖区", + "江西南昌市新建区": "江西省南昌市新建区", + "南昌市新建区": "江西省南昌市新建区", + "江西南昌市红谷滩区": "江西省南昌市红谷滩区", + "南昌市红谷滩区": "江西省南昌市红谷滩区", + "江西南昌市南昌县": "江西省南昌市南昌县", + "南昌市南昌县": "江西省南昌市南昌县", + "江西南昌市安义县": "江西省南昌市安义县", + "南昌市安义县": "江西省南昌市安义县", + "江西南昌市进贤县": "江西省南昌市进贤县", + "南昌市进贤县": "江西省南昌市进贤县", + "江西景德镇市昌江区": "江西省景德镇市昌江区", + "景德镇市昌江区": "江西省景德镇市昌江区", + "江西景德镇市珠山区": "江西省景德镇市珠山区", + "景德镇市珠山区": "江西省景德镇市珠山区", + "江西景德镇市浮梁县": "江西省景德镇市浮梁县", + "景德镇市浮梁县": "江西省景德镇市浮梁县", + "江西景德镇市乐平市": "江西省景德镇市乐平市", + "景德镇市乐平市": "江西省景德镇市乐平市", + "江西萍乡市安源区": "江西省萍乡市安源区", + "萍乡市安源区": "江西省萍乡市安源区", + "江西萍乡市湘东区": "江西省萍乡市湘东区", + "萍乡市湘东区": "江西省萍乡市湘东区", + "江西萍乡市莲花县": "江西省萍乡市莲花县", + "萍乡市莲花县": "江西省萍乡市莲花县", + "江西萍乡市上栗县": "江西省萍乡市上栗县", + "萍乡市上栗县": "江西省萍乡市上栗县", + "江西萍乡市芦溪县": "江西省萍乡市芦溪县", + "萍乡市芦溪县": "江西省萍乡市芦溪县", + "江西九江市濂溪区": "江西省九江市濂溪区", + "九江市濂溪区": "江西省九江市濂溪区", + "江西九江市浔阳区": "江西省九江市浔阳区", + "九江市浔阳区": "江西省九江市浔阳区", + "江西九江市柴桑区": "江西省九江市柴桑区", + "九江市柴桑区": "江西省九江市柴桑区", + "江西九江市武宁县": "江西省九江市武宁县", + "九江市武宁县": "江西省九江市武宁县", + "江西九江市修水县": "江西省九江市修水县", + "九江市修水县": "江西省九江市修水县", + "江西九江市永修县": "江西省九江市永修县", + "九江市永修县": "江西省九江市永修县", + "江西九江市德安县": "江西省九江市德安县", + "九江市德安县": "江西省九江市德安县", + "江西九江市都昌县": "江西省九江市都昌县", + "九江市都昌县": "江西省九江市都昌县", + "江西九江市湖口县": "江西省九江市湖口县", + "九江市湖口县": "江西省九江市湖口县", + "江西九江市彭泽县": "江西省九江市彭泽县", + "九江市彭泽县": "江西省九江市彭泽县", + "江西九江市瑞昌市": "江西省九江市瑞昌市", + "九江市瑞昌市": "江西省九江市瑞昌市", + "江西九江市共青城市": "江西省九江市共青城市", + "九江市共青城市": "江西省九江市共青城市", + "江西九江市庐山市": "江西省九江市庐山市", + "九江市庐山市": "江西省九江市庐山市", + "江西新余市渝水区": "江西省新余市渝水区", + "新余市渝水区": "江西省新余市渝水区", + "江西新余市分宜县": "江西省新余市分宜县", + "新余市分宜县": "江西省新余市分宜县", + "江西鹰潭市月湖区": "江西省鹰潭市月湖区", + "鹰潭市月湖区": "江西省鹰潭市月湖区", + "江西鹰潭市余江区": "江西省鹰潭市余江区", + "鹰潭市余江区": "江西省鹰潭市余江区", + "江西鹰潭市贵溪市": "江西省鹰潭市贵溪市", + "鹰潭市贵溪市": "江西省鹰潭市贵溪市", + "江西赣州市章贡区": "江西省赣州市章贡区", + "赣州市章贡区": "江西省赣州市章贡区", + "江西赣州市南康区": "江西省赣州市南康区", + "赣州市南康区": "江西省赣州市南康区", + "江西赣州市赣县区": "江西省赣州市赣县区", + "赣州市赣县区": "江西省赣州市赣县区", + "江西赣州市信丰县": "江西省赣州市信丰县", + "赣州市信丰县": "江西省赣州市信丰县", + "江西赣州市大余县": "江西省赣州市大余县", + "赣州市大余县": "江西省赣州市大余县", + "江西赣州市上犹县": "江西省赣州市上犹县", + "赣州市上犹县": "江西省赣州市上犹县", + "江西赣州市崇义县": "江西省赣州市崇义县", + "赣州市崇义县": "江西省赣州市崇义县", + "江西赣州市安远县": "江西省赣州市安远县", + "赣州市安远县": "江西省赣州市安远县", + "江西赣州市定南县": "江西省赣州市定南县", + "赣州市定南县": "江西省赣州市定南县", + "江西赣州市全南县": "江西省赣州市全南县", + "赣州市全南县": "江西省赣州市全南县", + "江西赣州市宁都县": "江西省赣州市宁都县", + "赣州市宁都县": "江西省赣州市宁都县", + "江西赣州市于都县": "江西省赣州市于都县", + "赣州市于都县": "江西省赣州市于都县", + "江西赣州市兴国县": "江西省赣州市兴国县", + "赣州市兴国县": "江西省赣州市兴国县", + "江西赣州市会昌县": "江西省赣州市会昌县", + "赣州市会昌县": "江西省赣州市会昌县", + "江西赣州市寻乌县": "江西省赣州市寻乌县", + "赣州市寻乌县": "江西省赣州市寻乌县", + "江西赣州市石城县": "江西省赣州市石城县", + "赣州市石城县": "江西省赣州市石城县", + "江西赣州市瑞金市": "江西省赣州市瑞金市", + "赣州市瑞金市": "江西省赣州市瑞金市", + "江西赣州市龙南市": "江西省赣州市龙南市", + "赣州市龙南市": "江西省赣州市龙南市", + "江西吉安市吉州区": "江西省吉安市吉州区", + "吉安市吉州区": "江西省吉安市吉州区", + "江西吉安市青原区": "江西省吉安市青原区", + "吉安市青原区": "江西省吉安市青原区", + "江西吉安市吉安县": "江西省吉安市吉安县", + "吉安市吉安县": "江西省吉安市吉安县", + "江西吉安市吉水县": "江西省吉安市吉水县", + "吉安市吉水县": "江西省吉安市吉水县", + "江西吉安市峡江县": "江西省吉安市峡江县", + "吉安市峡江县": "江西省吉安市峡江县", + "江西吉安市新干县": "江西省吉安市新干县", + "吉安市新干县": "江西省吉安市新干县", + "江西吉安市永丰县": "江西省吉安市永丰县", + "吉安市永丰县": "江西省吉安市永丰县", + "江西吉安市泰和县": "江西省吉安市泰和县", + "吉安市泰和县": "江西省吉安市泰和县", + "江西吉安市遂川县": "江西省吉安市遂川县", + "吉安市遂川县": "江西省吉安市遂川县", + "江西吉安市万安县": "江西省吉安市万安县", + "吉安市万安县": "江西省吉安市万安县", + "江西吉安市安福县": "江西省吉安市安福县", + "吉安市安福县": "江西省吉安市安福县", + "江西吉安市永新县": "江西省吉安市永新县", + "吉安市永新县": "江西省吉安市永新县", + "江西吉安市井冈山市": "江西省吉安市井冈山市", + "吉安市井冈山市": "江西省吉安市井冈山市", + "江西宜春市袁州区": "江西省宜春市袁州区", + "宜春市袁州区": "江西省宜春市袁州区", + "江西宜春市奉新县": "江西省宜春市奉新县", + "宜春市奉新县": "江西省宜春市奉新县", + "江西宜春市万载县": "江西省宜春市万载县", + "宜春市万载县": "江西省宜春市万载县", + "江西宜春市上高县": "江西省宜春市上高县", + "宜春市上高县": "江西省宜春市上高县", + "江西宜春市宜丰县": "江西省宜春市宜丰县", + "宜春市宜丰县": "江西省宜春市宜丰县", + "江西宜春市靖安县": "江西省宜春市靖安县", + "宜春市靖安县": "江西省宜春市靖安县", + "江西宜春市铜鼓县": "江西省宜春市铜鼓县", + "宜春市铜鼓县": "江西省宜春市铜鼓县", + "江西宜春市丰城市": "江西省宜春市丰城市", + "宜春市丰城市": "江西省宜春市丰城市", + "江西宜春市樟树市": "江西省宜春市樟树市", + "宜春市樟树市": "江西省宜春市樟树市", + "江西宜春市高安市": "江西省宜春市高安市", + "宜春市高安市": "江西省宜春市高安市", + "江西抚州市临川区": "江西省抚州市临川区", + "抚州市临川区": "江西省抚州市临川区", + "江西抚州市东乡区": "江西省抚州市东乡区", + "抚州市东乡区": "江西省抚州市东乡区", + "江西抚州市南城县": "江西省抚州市南城县", + "抚州市南城县": "江西省抚州市南城县", + "江西抚州市黎川县": "江西省抚州市黎川县", + "抚州市黎川县": "江西省抚州市黎川县", + "江西抚州市南丰县": "江西省抚州市南丰县", + "抚州市南丰县": "江西省抚州市南丰县", + "江西抚州市崇仁县": "江西省抚州市崇仁县", + "抚州市崇仁县": "江西省抚州市崇仁县", + "江西抚州市乐安县": "江西省抚州市乐安县", + "抚州市乐安县": "江西省抚州市乐安县", + "江西抚州市宜黄县": "江西省抚州市宜黄县", + "抚州市宜黄县": "江西省抚州市宜黄县", + "江西抚州市金溪县": "江西省抚州市金溪县", + "抚州市金溪县": "江西省抚州市金溪县", + "江西抚州市资溪县": "江西省抚州市资溪县", + "抚州市资溪县": "江西省抚州市资溪县", + "江西抚州市广昌县": "江西省抚州市广昌县", + "抚州市广昌县": "江西省抚州市广昌县", + "江西上饶市信州区": "江西省上饶市信州区", + "上饶市信州区": "江西省上饶市信州区", + "江西上饶市广丰区": "江西省上饶市广丰区", + "上饶市广丰区": "江西省上饶市广丰区", + "江西上饶市广信区": "江西省上饶市广信区", + "上饶市广信区": "江西省上饶市广信区", + "江西上饶市玉山县": "江西省上饶市玉山县", + "上饶市玉山县": "江西省上饶市玉山县", + "江西上饶市铅山县": "江西省上饶市铅山县", + "上饶市铅山县": "江西省上饶市铅山县", + "江西上饶市横峰县": "江西省上饶市横峰县", + "上饶市横峰县": "江西省上饶市横峰县", + "江西上饶市弋阳县": "江西省上饶市弋阳县", + "上饶市弋阳县": "江西省上饶市弋阳县", + "江西上饶市余干县": "江西省上饶市余干县", + "上饶市余干县": "江西省上饶市余干县", + "江西上饶市鄱阳县": "江西省上饶市鄱阳县", + "上饶市鄱阳县": "江西省上饶市鄱阳县", + "江西上饶市万年县": "江西省上饶市万年县", + "上饶市万年县": "江西省上饶市万年县", + "江西上饶市婺源县": "江西省上饶市婺源县", + "上饶市婺源县": "江西省上饶市婺源县", + "江西上饶市德兴市": "江西省上饶市德兴市", + "上饶市德兴市": "江西省上饶市德兴市", + "山东济南市历下区": "山东省济南市历下区", + "济南市历下区": "山东省济南市历下区", + "山东济南市市中区": "山东省济南市市中区", + "济南市市中区": "山东省济南市市中区", + "山东济南市槐荫区": "山东省济南市槐荫区", + "济南市槐荫区": "山东省济南市槐荫区", + "山东济南市天桥区": "山东省济南市天桥区", + "济南市天桥区": "山东省济南市天桥区", + "山东济南市历城区": "山东省济南市历城区", + "济南市历城区": "山东省济南市历城区", + "山东济南市长清区": "山东省济南市长清区", + "济南市长清区": "山东省济南市长清区", + "山东济南市章丘区": "山东省济南市章丘区", + "济南市章丘区": "山东省济南市章丘区", + "山东济南市济阳区": "山东省济南市济阳区", + "济南市济阳区": "山东省济南市济阳区", + "山东济南市莱芜区": "山东省济南市莱芜区", + "济南市莱芜区": "山东省济南市莱芜区", + "山东济南市钢城区": "山东省济南市钢城区", + "济南市钢城区": "山东省济南市钢城区", + "山东济南市平阴县": "山东省济南市平阴县", + "济南市平阴县": "山东省济南市平阴县", + "山东济南市商河县": "山东省济南市商河县", + "济南市商河县": "山东省济南市商河县", + "山东青岛市市南区": "山东省青岛市市南区", + "青岛市市南区": "山东省青岛市市南区", + "山东青岛市市北区": "山东省青岛市市北区", + "青岛市市北区": "山东省青岛市市北区", + "山东青岛市黄岛区": "山东省青岛市黄岛区", + "青岛市黄岛区": "山东省青岛市黄岛区", + "山东青岛市崂山区": "山东省青岛市崂山区", + "青岛市崂山区": "山东省青岛市崂山区", + "山东青岛市李沧区": "山东省青岛市李沧区", + "青岛市李沧区": "山东省青岛市李沧区", + "山东青岛市城阳区": "山东省青岛市城阳区", + "青岛市城阳区": "山东省青岛市城阳区", + "山东青岛市即墨区": "山东省青岛市即墨区", + "青岛市即墨区": "山东省青岛市即墨区", + "山东青岛市胶州市": "山东省青岛市胶州市", + "青岛市胶州市": "山东省青岛市胶州市", + "山东青岛市平度市": "山东省青岛市平度市", + "青岛市平度市": "山东省青岛市平度市", + "山东青岛市莱西市": "山东省青岛市莱西市", + "青岛市莱西市": "山东省青岛市莱西市", + "山东淄博市淄川区": "山东省淄博市淄川区", + "淄博市淄川区": "山东省淄博市淄川区", + "山东淄博市张店区": "山东省淄博市张店区", + "淄博市张店区": "山东省淄博市张店区", + "山东淄博市博山区": "山东省淄博市博山区", + "淄博市博山区": "山东省淄博市博山区", + "山东淄博市临淄区": "山东省淄博市临淄区", + "淄博市临淄区": "山东省淄博市临淄区", + "山东淄博市周村区": "山东省淄博市周村区", + "淄博市周村区": "山东省淄博市周村区", + "山东淄博市桓台县": "山东省淄博市桓台县", + "淄博市桓台县": "山东省淄博市桓台县", + "山东淄博市高青县": "山东省淄博市高青县", + "淄博市高青县": "山东省淄博市高青县", + "山东淄博市沂源县": "山东省淄博市沂源县", + "淄博市沂源县": "山东省淄博市沂源县", + "山东枣庄市市中区": "山东省枣庄市市中区", + "枣庄市市中区": "山东省枣庄市市中区", + "山东枣庄市薛城区": "山东省枣庄市薛城区", + "枣庄市薛城区": "山东省枣庄市薛城区", + "山东枣庄市峄城区": "山东省枣庄市峄城区", + "枣庄市峄城区": "山东省枣庄市峄城区", + "山东枣庄市台儿庄区": "山东省枣庄市台儿庄区", + "枣庄市台儿庄区": "山东省枣庄市台儿庄区", + "山东枣庄市山亭区": "山东省枣庄市山亭区", + "枣庄市山亭区": "山东省枣庄市山亭区", + "山东枣庄市滕州市": "山东省枣庄市滕州市", + "枣庄市滕州市": "山东省枣庄市滕州市", + "山东东营市东营区": "山东省东营市东营区", + "东营市东营区": "山东省东营市东营区", + "山东东营市河口区": "山东省东营市河口区", + "东营市河口区": "山东省东营市河口区", + "山东东营市垦利区": "山东省东营市垦利区", + "东营市垦利区": "山东省东营市垦利区", + "山东东营市利津县": "山东省东营市利津县", + "东营市利津县": "山东省东营市利津县", + "山东东营市广饶县": "山东省东营市广饶县", + "东营市广饶县": "山东省东营市广饶县", + "山东烟台市芝罘区": "山东省烟台市芝罘区", + "烟台市芝罘区": "山东省烟台市芝罘区", + "山东烟台市福山区": "山东省烟台市福山区", + "烟台市福山区": "山东省烟台市福山区", + "山东烟台市牟平区": "山东省烟台市牟平区", + "烟台市牟平区": "山东省烟台市牟平区", + "山东烟台市莱山区": "山东省烟台市莱山区", + "烟台市莱山区": "山东省烟台市莱山区", + "山东烟台市蓬莱区": "山东省烟台市蓬莱区", + "烟台市蓬莱区": "山东省烟台市蓬莱区", + "山东烟台市龙口市": "山东省烟台市龙口市", + "烟台市龙口市": "山东省烟台市龙口市", + "山东烟台市莱阳市": "山东省烟台市莱阳市", + "烟台市莱阳市": "山东省烟台市莱阳市", + "山东烟台市莱州市": "山东省烟台市莱州市", + "烟台市莱州市": "山东省烟台市莱州市", + "山东烟台市招远市": "山东省烟台市招远市", + "烟台市招远市": "山东省烟台市招远市", + "山东烟台市栖霞市": "山东省烟台市栖霞市", + "烟台市栖霞市": "山东省烟台市栖霞市", + "山东烟台市海阳市": "山东省烟台市海阳市", + "烟台市海阳市": "山东省烟台市海阳市", + "山东潍坊市潍城区": "山东省潍坊市潍城区", + "潍坊市潍城区": "山东省潍坊市潍城区", + "山东潍坊市寒亭区": "山东省潍坊市寒亭区", + "潍坊市寒亭区": "山东省潍坊市寒亭区", + "山东潍坊市坊子区": "山东省潍坊市坊子区", + "潍坊市坊子区": "山东省潍坊市坊子区", + "山东潍坊市奎文区": "山东省潍坊市奎文区", + "潍坊市奎文区": "山东省潍坊市奎文区", + "山东潍坊市临朐县": "山东省潍坊市临朐县", + "潍坊市临朐县": "山东省潍坊市临朐县", + "山东潍坊市昌乐县": "山东省潍坊市昌乐县", + "潍坊市昌乐县": "山东省潍坊市昌乐县", + "山东潍坊市青州市": "山东省潍坊市青州市", + "潍坊市青州市": "山东省潍坊市青州市", + "山东潍坊市诸城市": "山东省潍坊市诸城市", + "潍坊市诸城市": "山东省潍坊市诸城市", + "山东潍坊市寿光市": "山东省潍坊市寿光市", + "潍坊市寿光市": "山东省潍坊市寿光市", + "山东潍坊市安丘市": "山东省潍坊市安丘市", + "潍坊市安丘市": "山东省潍坊市安丘市", + "山东潍坊市高密市": "山东省潍坊市高密市", + "潍坊市高密市": "山东省潍坊市高密市", + "山东潍坊市昌邑市": "山东省潍坊市昌邑市", + "潍坊市昌邑市": "山东省潍坊市昌邑市", + "山东济宁市任城区": "山东省济宁市任城区", + "济宁市任城区": "山东省济宁市任城区", + "山东济宁市兖州区": "山东省济宁市兖州区", + "济宁市兖州区": "山东省济宁市兖州区", + "山东济宁市微山县": "山东省济宁市微山县", + "济宁市微山县": "山东省济宁市微山县", + "山东济宁市鱼台县": "山东省济宁市鱼台县", + "济宁市鱼台县": "山东省济宁市鱼台县", + "山东济宁市金乡县": "山东省济宁市金乡县", + "济宁市金乡县": "山东省济宁市金乡县", + "山东济宁市嘉祥县": "山东省济宁市嘉祥县", + "济宁市嘉祥县": "山东省济宁市嘉祥县", + "山东济宁市汶上县": "山东省济宁市汶上县", + "济宁市汶上县": "山东省济宁市汶上县", + "山东济宁市泗水县": "山东省济宁市泗水县", + "济宁市泗水县": "山东省济宁市泗水县", + "山东济宁市梁山县": "山东省济宁市梁山县", + "济宁市梁山县": "山东省济宁市梁山县", + "山东济宁市曲阜市": "山东省济宁市曲阜市", + "济宁市曲阜市": "山东省济宁市曲阜市", + "山东济宁市邹城市": "山东省济宁市邹城市", + "济宁市邹城市": "山东省济宁市邹城市", + "山东泰安市泰山区": "山东省泰安市泰山区", + "泰安市泰山区": "山东省泰安市泰山区", + "山东泰安市岱岳区": "山东省泰安市岱岳区", + "泰安市岱岳区": "山东省泰安市岱岳区", + "山东泰安市宁阳县": "山东省泰安市宁阳县", + "泰安市宁阳县": "山东省泰安市宁阳县", + "山东泰安市东平县": "山东省泰安市东平县", + "泰安市东平县": "山东省泰安市东平县", + "山东泰安市新泰市": "山东省泰安市新泰市", + "泰安市新泰市": "山东省泰安市新泰市", + "山东泰安市肥城市": "山东省泰安市肥城市", + "泰安市肥城市": "山东省泰安市肥城市", + "山东威海市环翠区": "山东省威海市环翠区", + "威海市环翠区": "山东省威海市环翠区", + "山东威海市文登区": "山东省威海市文登区", + "威海市文登区": "山东省威海市文登区", + "山东威海市荣成市": "山东省威海市荣成市", + "威海市荣成市": "山东省威海市荣成市", + "山东威海市乳山市": "山东省威海市乳山市", + "威海市乳山市": "山东省威海市乳山市", + "山东日照市东港区": "山东省日照市东港区", + "日照市东港区": "山东省日照市东港区", + "山东日照市岚山区": "山东省日照市岚山区", + "日照市岚山区": "山东省日照市岚山区", + "山东日照市五莲县": "山东省日照市五莲县", + "日照市五莲县": "山东省日照市五莲县", + "山东日照市莒县": "山东省日照市莒县", + "日照市莒县": "山东省日照市莒县", + "山东临沂市兰山区": "山东省临沂市兰山区", + "临沂市兰山区": "山东省临沂市兰山区", + "山东临沂市罗庄区": "山东省临沂市罗庄区", + "临沂市罗庄区": "山东省临沂市罗庄区", + "山东临沂市河东区": "山东省临沂市河东区", + "临沂市河东区": "山东省临沂市河东区", + "山东临沂市沂南县": "山东省临沂市沂南县", + "临沂市沂南县": "山东省临沂市沂南县", + "山东临沂市郯城县": "山东省临沂市郯城县", + "临沂市郯城县": "山东省临沂市郯城县", + "山东临沂市沂水县": "山东省临沂市沂水县", + "临沂市沂水县": "山东省临沂市沂水县", + "山东临沂市兰陵县": "山东省临沂市兰陵县", + "临沂市兰陵县": "山东省临沂市兰陵县", + "山东临沂市费县": "山东省临沂市费县", + "临沂市费县": "山东省临沂市费县", + "山东临沂市平邑县": "山东省临沂市平邑县", + "临沂市平邑县": "山东省临沂市平邑县", + "山东临沂市莒南县": "山东省临沂市莒南县", + "临沂市莒南县": "山东省临沂市莒南县", + "山东临沂市蒙阴县": "山东省临沂市蒙阴县", + "临沂市蒙阴县": "山东省临沂市蒙阴县", + "山东临沂市临沭县": "山东省临沂市临沭县", + "临沂市临沭县": "山东省临沂市临沭县", + "山东德州市德城区": "山东省德州市德城区", + "德州市德城区": "山东省德州市德城区", + "山东德州市陵城区": "山东省德州市陵城区", + "德州市陵城区": "山东省德州市陵城区", + "山东德州市宁津县": "山东省德州市宁津县", + "德州市宁津县": "山东省德州市宁津县", + "山东德州市庆云县": "山东省德州市庆云县", + "德州市庆云县": "山东省德州市庆云县", + "山东德州市临邑县": "山东省德州市临邑县", + "德州市临邑县": "山东省德州市临邑县", + "山东德州市齐河县": "山东省德州市齐河县", + "德州市齐河县": "山东省德州市齐河县", + "山东德州市平原县": "山东省德州市平原县", + "德州市平原县": "山东省德州市平原县", + "山东德州市夏津县": "山东省德州市夏津县", + "德州市夏津县": "山东省德州市夏津县", + "山东德州市武城县": "山东省德州市武城县", + "德州市武城县": "山东省德州市武城县", + "山东德州市乐陵市": "山东省德州市乐陵市", + "德州市乐陵市": "山东省德州市乐陵市", + "山东德州市禹城市": "山东省德州市禹城市", + "德州市禹城市": "山东省德州市禹城市", + "山东聊城市东昌府区": "山东省聊城市东昌府区", + "聊城市东昌府区": "山东省聊城市东昌府区", + "山东聊城市茌平区": "山东省聊城市茌平区", + "聊城市茌平区": "山东省聊城市茌平区", + "山东聊城市阳谷县": "山东省聊城市阳谷县", + "聊城市阳谷县": "山东省聊城市阳谷县", + "山东聊城市莘县": "山东省聊城市莘县", + "聊城市莘县": "山东省聊城市莘县", + "山东聊城市东阿县": "山东省聊城市东阿县", + "聊城市东阿县": "山东省聊城市东阿县", + "山东聊城市冠县": "山东省聊城市冠县", + "聊城市冠县": "山东省聊城市冠县", + "山东聊城市高唐县": "山东省聊城市高唐县", + "聊城市高唐县": "山东省聊城市高唐县", + "山东聊城市临清市": "山东省聊城市临清市", + "聊城市临清市": "山东省聊城市临清市", + "山东滨州市滨城区": "山东省滨州市滨城区", + "滨州市滨城区": "山东省滨州市滨城区", + "山东滨州市沾化区": "山东省滨州市沾化区", + "滨州市沾化区": "山东省滨州市沾化区", + "山东滨州市惠民县": "山东省滨州市惠民县", + "滨州市惠民县": "山东省滨州市惠民县", + "山东滨州市阳信县": "山东省滨州市阳信县", + "滨州市阳信县": "山东省滨州市阳信县", + "山东滨州市无棣县": "山东省滨州市无棣县", + "滨州市无棣县": "山东省滨州市无棣县", + "山东滨州市博兴县": "山东省滨州市博兴县", + "滨州市博兴县": "山东省滨州市博兴县", + "山东滨州市邹平市": "山东省滨州市邹平市", + "滨州市邹平市": "山东省滨州市邹平市", + "山东菏泽市牡丹区": "山东省菏泽市牡丹区", + "菏泽市牡丹区": "山东省菏泽市牡丹区", + "山东菏泽市定陶区": "山东省菏泽市定陶区", + "菏泽市定陶区": "山东省菏泽市定陶区", + "山东菏泽市曹县": "山东省菏泽市曹县", + "菏泽市曹县": "山东省菏泽市曹县", + "山东菏泽市单县": "山东省菏泽市单县", + "菏泽市单县": "山东省菏泽市单县", + "山东菏泽市成武县": "山东省菏泽市成武县", + "菏泽市成武县": "山东省菏泽市成武县", + "山东菏泽市巨野县": "山东省菏泽市巨野县", + "菏泽市巨野县": "山东省菏泽市巨野县", + "山东菏泽市郓城县": "山东省菏泽市郓城县", + "菏泽市郓城县": "山东省菏泽市郓城县", + "山东菏泽市鄄城县": "山东省菏泽市鄄城县", + "菏泽市鄄城县": "山东省菏泽市鄄城县", + "山东菏泽市东明县": "山东省菏泽市东明县", + "菏泽市东明县": "山东省菏泽市东明县", + "河南郑州市中原区": "河南省郑州市中原区", + "郑州市中原区": "河南省郑州市中原区", + "河南郑州市二七区": "河南省郑州市二七区", + "郑州市二七区": "河南省郑州市二七区", + "河南郑州市管城回族区": "河南省郑州市管城回族区", + "郑州市管城回族区": "河南省郑州市管城回族区", + "河南郑州市金水区": "河南省郑州市金水区", + "郑州市金水区": "河南省郑州市金水区", + "河南郑州市上街区": "河南省郑州市上街区", + "郑州市上街区": "河南省郑州市上街区", + "河南郑州市惠济区": "河南省郑州市惠济区", + "郑州市惠济区": "河南省郑州市惠济区", + "河南郑州市中牟县": "河南省郑州市中牟县", + "郑州市中牟县": "河南省郑州市中牟县", + "河南郑州市巩义市": "河南省郑州市巩义市", + "郑州市巩义市": "河南省郑州市巩义市", + "河南郑州市荥阳市": "河南省郑州市荥阳市", + "郑州市荥阳市": "河南省郑州市荥阳市", + "河南郑州市新密市": "河南省郑州市新密市", + "郑州市新密市": "河南省郑州市新密市", + "河南郑州市新郑市": "河南省郑州市新郑市", + "郑州市新郑市": "河南省郑州市新郑市", + "河南郑州市登封市": "河南省郑州市登封市", + "郑州市登封市": "河南省郑州市登封市", + "河南开封市龙亭区": "河南省开封市龙亭区", + "开封市龙亭区": "河南省开封市龙亭区", + "河南开封市顺河回族区": "河南省开封市顺河回族区", + "开封市顺河回族区": "河南省开封市顺河回族区", + "河南开封市鼓楼区": "河南省开封市鼓楼区", + "开封市鼓楼区": "河南省开封市鼓楼区", + "河南开封市禹王台区": "河南省开封市禹王台区", + "开封市禹王台区": "河南省开封市禹王台区", + "河南开封市祥符区": "河南省开封市祥符区", + "开封市祥符区": "河南省开封市祥符区", + "河南开封市杞县": "河南省开封市杞县", + "开封市杞县": "河南省开封市杞县", + "河南开封市通许县": "河南省开封市通许县", + "开封市通许县": "河南省开封市通许县", + "河南开封市尉氏县": "河南省开封市尉氏县", + "开封市尉氏县": "河南省开封市尉氏县", + "河南开封市兰考县": "河南省开封市兰考县", + "开封市兰考县": "河南省开封市兰考县", + "河南洛阳市老城区": "河南省洛阳市老城区", + "洛阳市老城区": "河南省洛阳市老城区", + "河南洛阳市西工区": "河南省洛阳市西工区", + "洛阳市西工区": "河南省洛阳市西工区", + "河南洛阳市瀍河回族区": "河南省洛阳市瀍河回族区", + "洛阳市瀍河回族区": "河南省洛阳市瀍河回族区", + "河南洛阳市涧西区": "河南省洛阳市涧西区", + "洛阳市涧西区": "河南省洛阳市涧西区", + "河南洛阳市孟津区": "河南省洛阳市孟津区", + "洛阳市孟津区": "河南省洛阳市孟津区", + "河南洛阳市洛龙区": "河南省洛阳市洛龙区", + "洛阳市洛龙区": "河南省洛阳市洛龙区", + "河南洛阳市新安县": "河南省洛阳市新安县", + "洛阳市新安县": "河南省洛阳市新安县", + "河南洛阳市栾川县": "河南省洛阳市栾川县", + "洛阳市栾川县": "河南省洛阳市栾川县", + "河南洛阳市嵩县": "河南省洛阳市嵩县", + "洛阳市嵩县": "河南省洛阳市嵩县", + "河南洛阳市汝阳县": "河南省洛阳市汝阳县", + "洛阳市汝阳县": "河南省洛阳市汝阳县", + "河南洛阳市宜阳县": "河南省洛阳市宜阳县", + "洛阳市宜阳县": "河南省洛阳市宜阳县", + "河南洛阳市洛宁县": "河南省洛阳市洛宁县", + "洛阳市洛宁县": "河南省洛阳市洛宁县", + "河南洛阳市伊川县": "河南省洛阳市伊川县", + "洛阳市伊川县": "河南省洛阳市伊川县", + "河南洛阳市偃师区": "河南省洛阳市偃师区", + "洛阳市偃师区": "河南省洛阳市偃师区", + "河南平顶山市新华区": "河南省平顶山市新华区", + "平顶山市新华区": "河南省平顶山市新华区", + "河南平顶山市卫东区": "河南省平顶山市卫东区", + "平顶山市卫东区": "河南省平顶山市卫东区", + "河南平顶山市石龙区": "河南省平顶山市石龙区", + "平顶山市石龙区": "河南省平顶山市石龙区", + "河南平顶山市湛河区": "河南省平顶山市湛河区", + "平顶山市湛河区": "河南省平顶山市湛河区", + "河南平顶山市宝丰县": "河南省平顶山市宝丰县", + "平顶山市宝丰县": "河南省平顶山市宝丰县", + "河南平顶山市叶县": "河南省平顶山市叶县", + "平顶山市叶县": "河南省平顶山市叶县", + "河南平顶山市鲁山县": "河南省平顶山市鲁山县", + "平顶山市鲁山县": "河南省平顶山市鲁山县", + "河南平顶山市郏县": "河南省平顶山市郏县", + "平顶山市郏县": "河南省平顶山市郏县", + "河南平顶山市舞钢市": "河南省平顶山市舞钢市", + "平顶山市舞钢市": "河南省平顶山市舞钢市", + "河南平顶山市汝州市": "河南省平顶山市汝州市", + "平顶山市汝州市": "河南省平顶山市汝州市", + "河南安阳市文峰区": "河南省安阳市文峰区", + "安阳市文峰区": "河南省安阳市文峰区", + "河南安阳市北关区": "河南省安阳市北关区", + "安阳市北关区": "河南省安阳市北关区", + "河南安阳市殷都区": "河南省安阳市殷都区", + "安阳市殷都区": "河南省安阳市殷都区", + "河南安阳市龙安区": "河南省安阳市龙安区", + "安阳市龙安区": "河南省安阳市龙安区", + "河南安阳市安阳县": "河南省安阳市安阳县", + "安阳市安阳县": "河南省安阳市安阳县", + "河南安阳市汤阴县": "河南省安阳市汤阴县", + "安阳市汤阴县": "河南省安阳市汤阴县", + "河南安阳市滑县": "河南省安阳市滑县", + "安阳市滑县": "河南省安阳市滑县", + "河南安阳市内黄县": "河南省安阳市内黄县", + "安阳市内黄县": "河南省安阳市内黄县", + "河南安阳市林州市": "河南省安阳市林州市", + "安阳市林州市": "河南省安阳市林州市", + "河南鹤壁市鹤山区": "河南省鹤壁市鹤山区", + "鹤壁市鹤山区": "河南省鹤壁市鹤山区", + "河南鹤壁市山城区": "河南省鹤壁市山城区", + "鹤壁市山城区": "河南省鹤壁市山城区", + "河南鹤壁市淇滨区": "河南省鹤壁市淇滨区", + "鹤壁市淇滨区": "河南省鹤壁市淇滨区", + "河南鹤壁市浚县": "河南省鹤壁市浚县", + "鹤壁市浚县": "河南省鹤壁市浚县", + "河南鹤壁市淇县": "河南省鹤壁市淇县", + "鹤壁市淇县": "河南省鹤壁市淇县", + "河南新乡市红旗区": "河南省新乡市红旗区", + "新乡市红旗区": "河南省新乡市红旗区", + "河南新乡市卫滨区": "河南省新乡市卫滨区", + "新乡市卫滨区": "河南省新乡市卫滨区", + "河南新乡市凤泉区": "河南省新乡市凤泉区", + "新乡市凤泉区": "河南省新乡市凤泉区", + "河南新乡市牧野区": "河南省新乡市牧野区", + "新乡市牧野区": "河南省新乡市牧野区", + "河南新乡市新乡县": "河南省新乡市新乡县", + "新乡市新乡县": "河南省新乡市新乡县", + "河南新乡市获嘉县": "河南省新乡市获嘉县", + "新乡市获嘉县": "河南省新乡市获嘉县", + "河南新乡市原阳县": "河南省新乡市原阳县", + "新乡市原阳县": "河南省新乡市原阳县", + "河南新乡市延津县": "河南省新乡市延津县", + "新乡市延津县": "河南省新乡市延津县", + "河南新乡市封丘县": "河南省新乡市封丘县", + "新乡市封丘县": "河南省新乡市封丘县", + "河南新乡市卫辉市": "河南省新乡市卫辉市", + "新乡市卫辉市": "河南省新乡市卫辉市", + "河南新乡市辉县市": "河南省新乡市辉县市", + "新乡市辉县市": "河南省新乡市辉县市", + "河南新乡市长垣市": "河南省新乡市长垣市", + "新乡市长垣市": "河南省新乡市长垣市", + "河南焦作市解放区": "河南省焦作市解放区", + "焦作市解放区": "河南省焦作市解放区", + "河南焦作市中站区": "河南省焦作市中站区", + "焦作市中站区": "河南省焦作市中站区", + "河南焦作市马村区": "河南省焦作市马村区", + "焦作市马村区": "河南省焦作市马村区", + "河南焦作市山阳区": "河南省焦作市山阳区", + "焦作市山阳区": "河南省焦作市山阳区", + "河南焦作市修武县": "河南省焦作市修武县", + "焦作市修武县": "河南省焦作市修武县", + "河南焦作市博爱县": "河南省焦作市博爱县", + "焦作市博爱县": "河南省焦作市博爱县", + "河南焦作市武陟县": "河南省焦作市武陟县", + "焦作市武陟县": "河南省焦作市武陟县", + "河南焦作市温县": "河南省焦作市温县", + "焦作市温县": "河南省焦作市温县", + "河南焦作市沁阳市": "河南省焦作市沁阳市", + "焦作市沁阳市": "河南省焦作市沁阳市", + "河南焦作市孟州市": "河南省焦作市孟州市", + "焦作市孟州市": "河南省焦作市孟州市", + "河南濮阳市华龙区": "河南省濮阳市华龙区", + "濮阳市华龙区": "河南省濮阳市华龙区", + "河南濮阳市清丰县": "河南省濮阳市清丰县", + "濮阳市清丰县": "河南省濮阳市清丰县", + "河南濮阳市南乐县": "河南省濮阳市南乐县", + "濮阳市南乐县": "河南省濮阳市南乐县", + "河南濮阳市范县": "河南省濮阳市范县", + "濮阳市范县": "河南省濮阳市范县", + "河南濮阳市台前县": "河南省濮阳市台前县", + "濮阳市台前县": "河南省濮阳市台前县", + "河南濮阳市濮阳县": "河南省濮阳市濮阳县", + "濮阳市濮阳县": "河南省濮阳市濮阳县", + "河南许昌市魏都区": "河南省许昌市魏都区", + "许昌市魏都区": "河南省许昌市魏都区", + "河南许昌市建安区": "河南省许昌市建安区", + "许昌市建安区": "河南省许昌市建安区", + "河南许昌市鄢陵县": "河南省许昌市鄢陵县", + "许昌市鄢陵县": "河南省许昌市鄢陵县", + "河南许昌市襄城县": "河南省许昌市襄城县", + "许昌市襄城县": "河南省许昌市襄城县", + "河南许昌市禹州市": "河南省许昌市禹州市", + "许昌市禹州市": "河南省许昌市禹州市", + "河南许昌市长葛市": "河南省许昌市长葛市", + "许昌市长葛市": "河南省许昌市长葛市", + "河南漯河市源汇区": "河南省漯河市源汇区", + "漯河市源汇区": "河南省漯河市源汇区", + "河南漯河市郾城区": "河南省漯河市郾城区", + "漯河市郾城区": "河南省漯河市郾城区", + "河南漯河市召陵区": "河南省漯河市召陵区", + "漯河市召陵区": "河南省漯河市召陵区", + "河南漯河市舞阳县": "河南省漯河市舞阳县", + "漯河市舞阳县": "河南省漯河市舞阳县", + "河南漯河市临颍县": "河南省漯河市临颍县", + "漯河市临颍县": "河南省漯河市临颍县", + "河南三门峡市湖滨区": "河南省三门峡市湖滨区", + "三门峡市湖滨区": "河南省三门峡市湖滨区", + "河南三门峡市陕州区": "河南省三门峡市陕州区", + "三门峡市陕州区": "河南省三门峡市陕州区", + "河南三门峡市渑池县": "河南省三门峡市渑池县", + "三门峡市渑池县": "河南省三门峡市渑池县", + "河南三门峡市卢氏县": "河南省三门峡市卢氏县", + "三门峡市卢氏县": "河南省三门峡市卢氏县", + "河南三门峡市义马市": "河南省三门峡市义马市", + "三门峡市义马市": "河南省三门峡市义马市", + "河南三门峡市灵宝市": "河南省三门峡市灵宝市", + "三门峡市灵宝市": "河南省三门峡市灵宝市", + "河南南阳市宛城区": "河南省南阳市宛城区", + "南阳市宛城区": "河南省南阳市宛城区", + "河南南阳市卧龙区": "河南省南阳市卧龙区", + "南阳市卧龙区": "河南省南阳市卧龙区", + "河南南阳市南召县": "河南省南阳市南召县", + "南阳市南召县": "河南省南阳市南召县", + "河南南阳市方城县": "河南省南阳市方城县", + "南阳市方城县": "河南省南阳市方城县", + "河南南阳市西峡县": "河南省南阳市西峡县", + "南阳市西峡县": "河南省南阳市西峡县", + "河南南阳市镇平县": "河南省南阳市镇平县", + "南阳市镇平县": "河南省南阳市镇平县", + "河南南阳市内乡县": "河南省南阳市内乡县", + "南阳市内乡县": "河南省南阳市内乡县", + "河南南阳市淅川县": "河南省南阳市淅川县", + "南阳市淅川县": "河南省南阳市淅川县", + "河南南阳市社旗县": "河南省南阳市社旗县", + "南阳市社旗县": "河南省南阳市社旗县", + "河南南阳市唐河县": "河南省南阳市唐河县", + "南阳市唐河县": "河南省南阳市唐河县", + "河南南阳市新野县": "河南省南阳市新野县", + "南阳市新野县": "河南省南阳市新野县", + "河南南阳市桐柏县": "河南省南阳市桐柏县", + "南阳市桐柏县": "河南省南阳市桐柏县", + "河南南阳市邓州市": "河南省南阳市邓州市", + "南阳市邓州市": "河南省南阳市邓州市", + "河南商丘市梁园区": "河南省商丘市梁园区", + "商丘市梁园区": "河南省商丘市梁园区", + "河南商丘市睢阳区": "河南省商丘市睢阳区", + "商丘市睢阳区": "河南省商丘市睢阳区", + "河南商丘市民权县": "河南省商丘市民权县", + "商丘市民权县": "河南省商丘市民权县", + "河南商丘市睢县": "河南省商丘市睢县", + "商丘市睢县": "河南省商丘市睢县", + "河南商丘市宁陵县": "河南省商丘市宁陵县", + "商丘市宁陵县": "河南省商丘市宁陵县", + "河南商丘市柘城县": "河南省商丘市柘城县", + "商丘市柘城县": "河南省商丘市柘城县", + "河南商丘市虞城县": "河南省商丘市虞城县", + "商丘市虞城县": "河南省商丘市虞城县", + "河南商丘市夏邑县": "河南省商丘市夏邑县", + "商丘市夏邑县": "河南省商丘市夏邑县", + "河南商丘市永城市": "河南省商丘市永城市", + "商丘市永城市": "河南省商丘市永城市", + "河南信阳市浉河区": "河南省信阳市浉河区", + "信阳市浉河区": "河南省信阳市浉河区", + "河南信阳市平桥区": "河南省信阳市平桥区", + "信阳市平桥区": "河南省信阳市平桥区", + "河南信阳市罗山县": "河南省信阳市罗山县", + "信阳市罗山县": "河南省信阳市罗山县", + "河南信阳市光山县": "河南省信阳市光山县", + "信阳市光山县": "河南省信阳市光山县", + "河南信阳市新县": "河南省信阳市新县", + "信阳市新县": "河南省信阳市新县", + "河南信阳市商城县": "河南省信阳市商城县", + "信阳市商城县": "河南省信阳市商城县", + "河南信阳市固始县": "河南省信阳市固始县", + "信阳市固始县": "河南省信阳市固始县", + "河南信阳市潢川县": "河南省信阳市潢川县", + "信阳市潢川县": "河南省信阳市潢川县", + "河南信阳市淮滨县": "河南省信阳市淮滨县", + "信阳市淮滨县": "河南省信阳市淮滨县", + "河南信阳市息县": "河南省信阳市息县", + "信阳市息县": "河南省信阳市息县", + "河南周口市川汇区": "河南省周口市川汇区", + "周口市川汇区": "河南省周口市川汇区", + "河南周口市淮阳区": "河南省周口市淮阳区", + "周口市淮阳区": "河南省周口市淮阳区", + "河南周口市扶沟县": "河南省周口市扶沟县", + "周口市扶沟县": "河南省周口市扶沟县", + "河南周口市西华县": "河南省周口市西华县", + "周口市西华县": "河南省周口市西华县", + "河南周口市商水县": "河南省周口市商水县", + "周口市商水县": "河南省周口市商水县", + "河南周口市沈丘县": "河南省周口市沈丘县", + "周口市沈丘县": "河南省周口市沈丘县", + "河南周口市郸城县": "河南省周口市郸城县", + "周口市郸城县": "河南省周口市郸城县", + "河南周口市太康县": "河南省周口市太康县", + "周口市太康县": "河南省周口市太康县", + "河南周口市鹿邑县": "河南省周口市鹿邑县", + "周口市鹿邑县": "河南省周口市鹿邑县", + "河南周口市项城市": "河南省周口市项城市", + "周口市项城市": "河南省周口市项城市", + "河南驻马店市驿城区": "河南省驻马店市驿城区", + "驻马店市驿城区": "河南省驻马店市驿城区", + "河南驻马店市西平县": "河南省驻马店市西平县", + "驻马店市西平县": "河南省驻马店市西平县", + "河南驻马店市上蔡县": "河南省驻马店市上蔡县", + "驻马店市上蔡县": "河南省驻马店市上蔡县", + "河南驻马店市平舆县": "河南省驻马店市平舆县", + "驻马店市平舆县": "河南省驻马店市平舆县", + "河南驻马店市正阳县": "河南省驻马店市正阳县", + "驻马店市正阳县": "河南省驻马店市正阳县", + "河南驻马店市确山县": "河南省驻马店市确山县", + "驻马店市确山县": "河南省驻马店市确山县", + "河南驻马店市泌阳县": "河南省驻马店市泌阳县", + "驻马店市泌阳县": "河南省驻马店市泌阳县", + "河南驻马店市汝南县": "河南省驻马店市汝南县", + "驻马店市汝南县": "河南省驻马店市汝南县", + "河南驻马店市遂平县": "河南省驻马店市遂平县", + "驻马店市遂平县": "河南省驻马店市遂平县", + "河南驻马店市新蔡县": "河南省驻马店市新蔡县", + "驻马店市新蔡县": "河南省驻马店市新蔡县", + "河南济源市": "河南省济源市", + "湖北武汉市江岸区": "湖北省武汉市江岸区", + "武汉市江岸区": "湖北省武汉市江岸区", + "湖北武汉市江汉区": "湖北省武汉市江汉区", + "武汉市江汉区": "湖北省武汉市江汉区", + "湖北武汉市硚口区": "湖北省武汉市硚口区", + "武汉市硚口区": "湖北省武汉市硚口区", + "湖北武汉市汉阳区": "湖北省武汉市汉阳区", + "武汉市汉阳区": "湖北省武汉市汉阳区", + "湖北武汉市武昌区": "湖北省武汉市武昌区", + "武汉市武昌区": "湖北省武汉市武昌区", + "湖北武汉市青山区": "湖北省武汉市青山区", + "武汉市青山区": "湖北省武汉市青山区", + "湖北武汉市洪山区": "湖北省武汉市洪山区", + "武汉市洪山区": "湖北省武汉市洪山区", + "湖北武汉市东西湖区": "湖北省武汉市东西湖区", + "武汉市东西湖区": "湖北省武汉市东西湖区", + "湖北武汉市汉南区": "湖北省武汉市汉南区", + "武汉市汉南区": "湖北省武汉市汉南区", + "湖北武汉市蔡甸区": "湖北省武汉市蔡甸区", + "武汉市蔡甸区": "湖北省武汉市蔡甸区", + "湖北武汉市江夏区": "湖北省武汉市江夏区", + "武汉市江夏区": "湖北省武汉市江夏区", + "湖北武汉市黄陂区": "湖北省武汉市黄陂区", + "武汉市黄陂区": "湖北省武汉市黄陂区", + "湖北武汉市新洲区": "湖北省武汉市新洲区", + "武汉市新洲区": "湖北省武汉市新洲区", + "湖北黄石市黄石港区": "湖北省黄石市黄石港区", + "黄石市黄石港区": "湖北省黄石市黄石港区", + "湖北黄石市西塞山区": "湖北省黄石市西塞山区", + "黄石市西塞山区": "湖北省黄石市西塞山区", + "湖北黄石市下陆区": "湖北省黄石市下陆区", + "黄石市下陆区": "湖北省黄石市下陆区", + "湖北黄石市铁山区": "湖北省黄石市铁山区", + "黄石市铁山区": "湖北省黄石市铁山区", + "湖北黄石市阳新县": "湖北省黄石市阳新县", + "黄石市阳新县": "湖北省黄石市阳新县", + "湖北黄石市大冶市": "湖北省黄石市大冶市", + "黄石市大冶市": "湖北省黄石市大冶市", + "湖北十堰市茅箭区": "湖北省十堰市茅箭区", + "十堰市茅箭区": "湖北省十堰市茅箭区", + "湖北十堰市张湾区": "湖北省十堰市张湾区", + "十堰市张湾区": "湖北省十堰市张湾区", + "湖北十堰市郧阳区": "湖北省十堰市郧阳区", + "十堰市郧阳区": "湖北省十堰市郧阳区", + "湖北十堰市郧西县": "湖北省十堰市郧西县", + "十堰市郧西县": "湖北省十堰市郧西县", + "湖北十堰市竹山县": "湖北省十堰市竹山县", + "十堰市竹山县": "湖北省十堰市竹山县", + "湖北十堰市竹溪县": "湖北省十堰市竹溪县", + "十堰市竹溪县": "湖北省十堰市竹溪县", + "湖北十堰市房县": "湖北省十堰市房县", + "十堰市房县": "湖北省十堰市房县", + "湖北十堰市丹江口市": "湖北省十堰市丹江口市", + "十堰市丹江口市": "湖北省十堰市丹江口市", + "湖北宜昌市西陵区": "湖北省宜昌市西陵区", + "宜昌市西陵区": "湖北省宜昌市西陵区", + "湖北宜昌市伍家岗区": "湖北省宜昌市伍家岗区", + "宜昌市伍家岗区": "湖北省宜昌市伍家岗区", + "湖北宜昌市点军区": "湖北省宜昌市点军区", + "宜昌市点军区": "湖北省宜昌市点军区", + "湖北宜昌市猇亭区": "湖北省宜昌市猇亭区", + "宜昌市猇亭区": "湖北省宜昌市猇亭区", + "湖北宜昌市夷陵区": "湖北省宜昌市夷陵区", + "宜昌市夷陵区": "湖北省宜昌市夷陵区", + "湖北宜昌市远安县": "湖北省宜昌市远安县", + "宜昌市远安县": "湖北省宜昌市远安县", + "湖北宜昌市兴山县": "湖北省宜昌市兴山县", + "宜昌市兴山县": "湖北省宜昌市兴山县", + "湖北宜昌市秭归县": "湖北省宜昌市秭归县", + "宜昌市秭归县": "湖北省宜昌市秭归县", + "湖北宜昌市长阳土家族自治县": "湖北省宜昌市长阳土家族自治县", + "宜昌市长阳土家族自治县": "湖北省宜昌市长阳土家族自治县", + "湖北宜昌市五峰土家族自治县": "湖北省宜昌市五峰土家族自治县", + "宜昌市五峰土家族自治县": "湖北省宜昌市五峰土家族自治县", + "湖北宜昌市宜都市": "湖北省宜昌市宜都市", + "宜昌市宜都市": "湖北省宜昌市宜都市", + "湖北宜昌市当阳市": "湖北省宜昌市当阳市", + "宜昌市当阳市": "湖北省宜昌市当阳市", + "湖北宜昌市枝江市": "湖北省宜昌市枝江市", + "宜昌市枝江市": "湖北省宜昌市枝江市", + "湖北襄阳市襄城区": "湖北省襄阳市襄城区", + "襄阳市襄城区": "湖北省襄阳市襄城区", + "湖北襄阳市樊城区": "湖北省襄阳市樊城区", + "襄阳市樊城区": "湖北省襄阳市樊城区", + "湖北襄阳市襄州区": "湖北省襄阳市襄州区", + "襄阳市襄州区": "湖北省襄阳市襄州区", + "湖北襄阳市南漳县": "湖北省襄阳市南漳县", + "襄阳市南漳县": "湖北省襄阳市南漳县", + "湖北襄阳市谷城县": "湖北省襄阳市谷城县", + "襄阳市谷城县": "湖北省襄阳市谷城县", + "湖北襄阳市保康县": "湖北省襄阳市保康县", + "襄阳市保康县": "湖北省襄阳市保康县", + "湖北襄阳市老河口市": "湖北省襄阳市老河口市", + "襄阳市老河口市": "湖北省襄阳市老河口市", + "湖北襄阳市枣阳市": "湖北省襄阳市枣阳市", + "襄阳市枣阳市": "湖北省襄阳市枣阳市", + "湖北襄阳市宜城市": "湖北省襄阳市宜城市", + "襄阳市宜城市": "湖北省襄阳市宜城市", + "湖北鄂州市梁子湖区": "湖北省鄂州市梁子湖区", + "鄂州市梁子湖区": "湖北省鄂州市梁子湖区", + "湖北鄂州市华容区": "湖北省鄂州市华容区", + "鄂州市华容区": "湖北省鄂州市华容区", + "湖北鄂州市鄂城区": "湖北省鄂州市鄂城区", + "鄂州市鄂城区": "湖北省鄂州市鄂城区", + "湖北荆门市东宝区": "湖北省荆门市东宝区", + "荆门市东宝区": "湖北省荆门市东宝区", + "湖北荆门市掇刀区": "湖北省荆门市掇刀区", + "荆门市掇刀区": "湖北省荆门市掇刀区", + "湖北荆门市沙洋县": "湖北省荆门市沙洋县", + "荆门市沙洋县": "湖北省荆门市沙洋县", + "湖北荆门市钟祥市": "湖北省荆门市钟祥市", + "荆门市钟祥市": "湖北省荆门市钟祥市", + "湖北荆门市京山市": "湖北省荆门市京山市", + "荆门市京山市": "湖北省荆门市京山市", + "湖北孝感市孝南区": "湖北省孝感市孝南区", + "孝感市孝南区": "湖北省孝感市孝南区", + "湖北孝感市孝昌县": "湖北省孝感市孝昌县", + "孝感市孝昌县": "湖北省孝感市孝昌县", + "湖北孝感市大悟县": "湖北省孝感市大悟县", + "孝感市大悟县": "湖北省孝感市大悟县", + "湖北孝感市云梦县": "湖北省孝感市云梦县", + "孝感市云梦县": "湖北省孝感市云梦县", + "湖北孝感市应城市": "湖北省孝感市应城市", + "孝感市应城市": "湖北省孝感市应城市", + "湖北孝感市安陆市": "湖北省孝感市安陆市", + "孝感市安陆市": "湖北省孝感市安陆市", + "湖北孝感市汉川市": "湖北省孝感市汉川市", + "孝感市汉川市": "湖北省孝感市汉川市", + "湖北荆州市沙市区": "湖北省荆州市沙市区", + "荆州市沙市区": "湖北省荆州市沙市区", + "湖北荆州市荆州区": "湖北省荆州市荆州区", + "荆州市荆州区": "湖北省荆州市荆州区", + "湖北荆州市公安县": "湖北省荆州市公安县", + "荆州市公安县": "湖北省荆州市公安县", + "湖北荆州市监利市": "湖北省荆州市监利市", + "荆州市监利市": "湖北省荆州市监利市", + "湖北荆州市江陵县": "湖北省荆州市江陵县", + "荆州市江陵县": "湖北省荆州市江陵县", + "湖北荆州市石首市": "湖北省荆州市石首市", + "荆州市石首市": "湖北省荆州市石首市", + "湖北荆州市洪湖市": "湖北省荆州市洪湖市", + "荆州市洪湖市": "湖北省荆州市洪湖市", + "湖北荆州市松滋市": "湖北省荆州市松滋市", + "荆州市松滋市": "湖北省荆州市松滋市", + "湖北黄冈市黄州区": "湖北省黄冈市黄州区", + "黄冈市黄州区": "湖北省黄冈市黄州区", + "湖北黄冈市团风县": "湖北省黄冈市团风县", + "黄冈市团风县": "湖北省黄冈市团风县", + "湖北黄冈市红安县": "湖北省黄冈市红安县", + "黄冈市红安县": "湖北省黄冈市红安县", + "湖北黄冈市罗田县": "湖北省黄冈市罗田县", + "黄冈市罗田县": "湖北省黄冈市罗田县", + "湖北黄冈市英山县": "湖北省黄冈市英山县", + "黄冈市英山县": "湖北省黄冈市英山县", + "湖北黄冈市浠水县": "湖北省黄冈市浠水县", + "黄冈市浠水县": "湖北省黄冈市浠水县", + "湖北黄冈市蕲春县": "湖北省黄冈市蕲春县", + "黄冈市蕲春县": "湖北省黄冈市蕲春县", + "湖北黄冈市黄梅县": "湖北省黄冈市黄梅县", + "黄冈市黄梅县": "湖北省黄冈市黄梅县", + "湖北黄冈市麻城市": "湖北省黄冈市麻城市", + "黄冈市麻城市": "湖北省黄冈市麻城市", + "湖北黄冈市武穴市": "湖北省黄冈市武穴市", + "黄冈市武穴市": "湖北省黄冈市武穴市", + "湖北咸宁市咸安区": "湖北省咸宁市咸安区", + "咸宁市咸安区": "湖北省咸宁市咸安区", + "湖北咸宁市嘉鱼县": "湖北省咸宁市嘉鱼县", + "咸宁市嘉鱼县": "湖北省咸宁市嘉鱼县", + "湖北咸宁市通城县": "湖北省咸宁市通城县", + "咸宁市通城县": "湖北省咸宁市通城县", + "湖北咸宁市崇阳县": "湖北省咸宁市崇阳县", + "咸宁市崇阳县": "湖北省咸宁市崇阳县", + "湖北咸宁市通山县": "湖北省咸宁市通山县", + "咸宁市通山县": "湖北省咸宁市通山县", + "湖北咸宁市赤壁市": "湖北省咸宁市赤壁市", + "咸宁市赤壁市": "湖北省咸宁市赤壁市", + "湖北随州市曾都区": "湖北省随州市曾都区", + "随州市曾都区": "湖北省随州市曾都区", + "湖北随州市随县": "湖北省随州市随县", + "随州市随县": "湖北省随州市随县", + "湖北随州市广水市": "湖北省随州市广水市", + "随州市广水市": "湖北省随州市广水市", + "湖北恩施土家族苗族自治州恩施市": "湖北省恩施土家族苗族自治州恩施市", + "恩施土家族苗族自治州恩施市": "湖北省恩施土家族苗族自治州恩施市", + "湖北恩施土家族苗族自治州利川市": "湖北省恩施土家族苗族自治州利川市", + "恩施土家族苗族自治州利川市": "湖北省恩施土家族苗族自治州利川市", + "湖北恩施土家族苗族自治州建始县": "湖北省恩施土家族苗族自治州建始县", + "恩施土家族苗族自治州建始县": "湖北省恩施土家族苗族自治州建始县", + "湖北恩施土家族苗族自治州巴东县": "湖北省恩施土家族苗族自治州巴东县", + "恩施土家族苗族自治州巴东县": "湖北省恩施土家族苗族自治州巴东县", + "湖北恩施土家族苗族自治州宣恩县": "湖北省恩施土家族苗族自治州宣恩县", + "恩施土家族苗族自治州宣恩县": "湖北省恩施土家族苗族自治州宣恩县", + "湖北恩施土家族苗族自治州咸丰县": "湖北省恩施土家族苗族自治州咸丰县", + "恩施土家族苗族自治州咸丰县": "湖北省恩施土家族苗族自治州咸丰县", + "湖北恩施土家族苗族自治州来凤县": "湖北省恩施土家族苗族自治州来凤县", + "恩施土家族苗族自治州来凤县": "湖北省恩施土家族苗族自治州来凤县", + "湖北恩施土家族苗族自治州鹤峰县": "湖北省恩施土家族苗族自治州鹤峰县", + "恩施土家族苗族自治州鹤峰县": "湖北省恩施土家族苗族自治州鹤峰县", + "湖北仙桃市": "湖北省仙桃市", + "湖北潜江市": "湖北省潜江市", + "湖北天门市": "湖北省天门市", + "湖北神农架林区": "湖北省神农架林区", + "湖南长沙市芙蓉区": "湖南省长沙市芙蓉区", + "长沙市芙蓉区": "湖南省长沙市芙蓉区", + "湖南长沙市天心区": "湖南省长沙市天心区", + "长沙市天心区": "湖南省长沙市天心区", + "湖南长沙市岳麓区": "湖南省长沙市岳麓区", + "长沙市岳麓区": "湖南省长沙市岳麓区", + "湖南长沙市开福区": "湖南省长沙市开福区", + "长沙市开福区": "湖南省长沙市开福区", + "湖南长沙市雨花区": "湖南省长沙市雨花区", + "长沙市雨花区": "湖南省长沙市雨花区", + "湖南长沙市望城区": "湖南省长沙市望城区", + "长沙市望城区": "湖南省长沙市望城区", + "湖南长沙市长沙县": "湖南省长沙市长沙县", + "长沙市长沙县": "湖南省长沙市长沙县", + "湖南长沙市浏阳市": "湖南省长沙市浏阳市", + "长沙市浏阳市": "湖南省长沙市浏阳市", + "湖南长沙市宁乡市": "湖南省长沙市宁乡市", + "长沙市宁乡市": "湖南省长沙市宁乡市", + "湖南株洲市荷塘区": "湖南省株洲市荷塘区", + "株洲市荷塘区": "湖南省株洲市荷塘区", + "湖南株洲市芦淞区": "湖南省株洲市芦淞区", + "株洲市芦淞区": "湖南省株洲市芦淞区", + "湖南株洲市石峰区": "湖南省株洲市石峰区", + "株洲市石峰区": "湖南省株洲市石峰区", + "湖南株洲市天元区": "湖南省株洲市天元区", + "株洲市天元区": "湖南省株洲市天元区", + "湖南株洲市渌口区": "湖南省株洲市渌口区", + "株洲市渌口区": "湖南省株洲市渌口区", + "湖南株洲市攸县": "湖南省株洲市攸县", + "株洲市攸县": "湖南省株洲市攸县", + "湖南株洲市茶陵县": "湖南省株洲市茶陵县", + "株洲市茶陵县": "湖南省株洲市茶陵县", + "湖南株洲市炎陵县": "湖南省株洲市炎陵县", + "株洲市炎陵县": "湖南省株洲市炎陵县", + "湖南株洲市醴陵市": "湖南省株洲市醴陵市", + "株洲市醴陵市": "湖南省株洲市醴陵市", + "湖南湘潭市雨湖区": "湖南省湘潭市雨湖区", + "湘潭市雨湖区": "湖南省湘潭市雨湖区", + "湖南湘潭市岳塘区": "湖南省湘潭市岳塘区", + "湘潭市岳塘区": "湖南省湘潭市岳塘区", + "湖南湘潭市湘潭县": "湖南省湘潭市湘潭县", + "湘潭市湘潭县": "湖南省湘潭市湘潭县", + "湖南湘潭市湘乡市": "湖南省湘潭市湘乡市", + "湘潭市湘乡市": "湖南省湘潭市湘乡市", + "湖南湘潭市韶山市": "湖南省湘潭市韶山市", + "湘潭市韶山市": "湖南省湘潭市韶山市", + "湖南衡阳市珠晖区": "湖南省衡阳市珠晖区", + "衡阳市珠晖区": "湖南省衡阳市珠晖区", + "湖南衡阳市雁峰区": "湖南省衡阳市雁峰区", + "衡阳市雁峰区": "湖南省衡阳市雁峰区", + "湖南衡阳市石鼓区": "湖南省衡阳市石鼓区", + "衡阳市石鼓区": "湖南省衡阳市石鼓区", + "湖南衡阳市蒸湘区": "湖南省衡阳市蒸湘区", + "衡阳市蒸湘区": "湖南省衡阳市蒸湘区", + "湖南衡阳市南岳区": "湖南省衡阳市南岳区", + "衡阳市南岳区": "湖南省衡阳市南岳区", + "湖南衡阳市衡阳县": "湖南省衡阳市衡阳县", + "衡阳市衡阳县": "湖南省衡阳市衡阳县", + "湖南衡阳市衡南县": "湖南省衡阳市衡南县", + "衡阳市衡南县": "湖南省衡阳市衡南县", + "湖南衡阳市衡山县": "湖南省衡阳市衡山县", + "衡阳市衡山县": "湖南省衡阳市衡山县", + "湖南衡阳市衡东县": "湖南省衡阳市衡东县", + "衡阳市衡东县": "湖南省衡阳市衡东县", + "湖南衡阳市祁东县": "湖南省衡阳市祁东县", + "衡阳市祁东县": "湖南省衡阳市祁东县", + "湖南衡阳市耒阳市": "湖南省衡阳市耒阳市", + "衡阳市耒阳市": "湖南省衡阳市耒阳市", + "湖南衡阳市常宁市": "湖南省衡阳市常宁市", + "衡阳市常宁市": "湖南省衡阳市常宁市", + "湖南邵阳市双清区": "湖南省邵阳市双清区", + "邵阳市双清区": "湖南省邵阳市双清区", + "湖南邵阳市大祥区": "湖南省邵阳市大祥区", + "邵阳市大祥区": "湖南省邵阳市大祥区", + "湖南邵阳市北塔区": "湖南省邵阳市北塔区", + "邵阳市北塔区": "湖南省邵阳市北塔区", + "湖南邵阳市新邵县": "湖南省邵阳市新邵县", + "邵阳市新邵县": "湖南省邵阳市新邵县", + "湖南邵阳市邵阳县": "湖南省邵阳市邵阳县", + "邵阳市邵阳县": "湖南省邵阳市邵阳县", + "湖南邵阳市隆回县": "湖南省邵阳市隆回县", + "邵阳市隆回县": "湖南省邵阳市隆回县", + "湖南邵阳市洞口县": "湖南省邵阳市洞口县", + "邵阳市洞口县": "湖南省邵阳市洞口县", + "湖南邵阳市绥宁县": "湖南省邵阳市绥宁县", + "邵阳市绥宁县": "湖南省邵阳市绥宁县", + "湖南邵阳市新宁县": "湖南省邵阳市新宁县", + "邵阳市新宁县": "湖南省邵阳市新宁县", + "湖南邵阳市城步苗族自治县": "湖南省邵阳市城步苗族自治县", + "邵阳市城步苗族自治县": "湖南省邵阳市城步苗族自治县", + "湖南邵阳市武冈市": "湖南省邵阳市武冈市", + "邵阳市武冈市": "湖南省邵阳市武冈市", + "湖南邵阳市邵东市": "湖南省邵阳市邵东市", + "邵阳市邵东市": "湖南省邵阳市邵东市", + "湖南岳阳市岳阳楼区": "湖南省岳阳市岳阳楼区", + "岳阳市岳阳楼区": "湖南省岳阳市岳阳楼区", + "湖南岳阳市云溪区": "湖南省岳阳市云溪区", + "岳阳市云溪区": "湖南省岳阳市云溪区", + "湖南岳阳市君山区": "湖南省岳阳市君山区", + "岳阳市君山区": "湖南省岳阳市君山区", + "湖南岳阳市岳阳县": "湖南省岳阳市岳阳县", + "岳阳市岳阳县": "湖南省岳阳市岳阳县", + "湖南岳阳市华容县": "湖南省岳阳市华容县", + "岳阳市华容县": "湖南省岳阳市华容县", + "湖南岳阳市湘阴县": "湖南省岳阳市湘阴县", + "岳阳市湘阴县": "湖南省岳阳市湘阴县", + "湖南岳阳市平江县": "湖南省岳阳市平江县", + "岳阳市平江县": "湖南省岳阳市平江县", + "湖南岳阳市汨罗市": "湖南省岳阳市汨罗市", + "岳阳市汨罗市": "湖南省岳阳市汨罗市", + "湖南岳阳市临湘市": "湖南省岳阳市临湘市", + "岳阳市临湘市": "湖南省岳阳市临湘市", + "湖南常德市武陵区": "湖南省常德市武陵区", + "常德市武陵区": "湖南省常德市武陵区", + "湖南常德市鼎城区": "湖南省常德市鼎城区", + "常德市鼎城区": "湖南省常德市鼎城区", + "湖南常德市安乡县": "湖南省常德市安乡县", + "常德市安乡县": "湖南省常德市安乡县", + "湖南常德市汉寿县": "湖南省常德市汉寿县", + "常德市汉寿县": "湖南省常德市汉寿县", + "湖南常德市澧县": "湖南省常德市澧县", + "常德市澧县": "湖南省常德市澧县", + "湖南常德市临澧县": "湖南省常德市临澧县", + "常德市临澧县": "湖南省常德市临澧县", + "湖南常德市桃源县": "湖南省常德市桃源县", + "常德市桃源县": "湖南省常德市桃源县", + "湖南常德市石门县": "湖南省常德市石门县", + "常德市石门县": "湖南省常德市石门县", + "湖南常德市津市市": "湖南省常德市津市市", + "常德市津市市": "湖南省常德市津市市", + "湖南张家界市永定区": "湖南省张家界市永定区", + "张家界市永定区": "湖南省张家界市永定区", + "湖南张家界市武陵源区": "湖南省张家界市武陵源区", + "张家界市武陵源区": "湖南省张家界市武陵源区", + "湖南张家界市慈利县": "湖南省张家界市慈利县", + "张家界市慈利县": "湖南省张家界市慈利县", + "湖南张家界市桑植县": "湖南省张家界市桑植县", + "张家界市桑植县": "湖南省张家界市桑植县", + "湖南益阳市资阳区": "湖南省益阳市资阳区", + "益阳市资阳区": "湖南省益阳市资阳区", + "湖南益阳市赫山区": "湖南省益阳市赫山区", + "益阳市赫山区": "湖南省益阳市赫山区", + "湖南益阳市南县": "湖南省益阳市南县", + "益阳市南县": "湖南省益阳市南县", + "湖南益阳市桃江县": "湖南省益阳市桃江县", + "益阳市桃江县": "湖南省益阳市桃江县", + "湖南益阳市安化县": "湖南省益阳市安化县", + "益阳市安化县": "湖南省益阳市安化县", + "湖南益阳市沅江市": "湖南省益阳市沅江市", + "益阳市沅江市": "湖南省益阳市沅江市", + "湖南郴州市北湖区": "湖南省郴州市北湖区", + "郴州市北湖区": "湖南省郴州市北湖区", + "湖南郴州市苏仙区": "湖南省郴州市苏仙区", + "郴州市苏仙区": "湖南省郴州市苏仙区", + "湖南郴州市桂阳县": "湖南省郴州市桂阳县", + "郴州市桂阳县": "湖南省郴州市桂阳县", + "湖南郴州市宜章县": "湖南省郴州市宜章县", + "郴州市宜章县": "湖南省郴州市宜章县", + "湖南郴州市永兴县": "湖南省郴州市永兴县", + "郴州市永兴县": "湖南省郴州市永兴县", + "湖南郴州市嘉禾县": "湖南省郴州市嘉禾县", + "郴州市嘉禾县": "湖南省郴州市嘉禾县", + "湖南郴州市临武县": "湖南省郴州市临武县", + "郴州市临武县": "湖南省郴州市临武县", + "湖南郴州市汝城县": "湖南省郴州市汝城县", + "郴州市汝城县": "湖南省郴州市汝城县", + "湖南郴州市桂东县": "湖南省郴州市桂东县", + "郴州市桂东县": "湖南省郴州市桂东县", + "湖南郴州市安仁县": "湖南省郴州市安仁县", + "郴州市安仁县": "湖南省郴州市安仁县", + "湖南郴州市资兴市": "湖南省郴州市资兴市", + "郴州市资兴市": "湖南省郴州市资兴市", + "湖南永州市零陵区": "湖南省永州市零陵区", + "永州市零陵区": "湖南省永州市零陵区", + "湖南永州市冷水滩区": "湖南省永州市冷水滩区", + "永州市冷水滩区": "湖南省永州市冷水滩区", + "湖南永州市祁阳市": "湖南省永州市祁阳市", + "永州市祁阳市": "湖南省永州市祁阳市", + "湖南永州市东安县": "湖南省永州市东安县", + "永州市东安县": "湖南省永州市东安县", + "湖南永州市双牌县": "湖南省永州市双牌县", + "永州市双牌县": "湖南省永州市双牌县", + "湖南永州市道县": "湖南省永州市道县", + "永州市道县": "湖南省永州市道县", + "湖南永州市江永县": "湖南省永州市江永县", + "永州市江永县": "湖南省永州市江永县", + "湖南永州市宁远县": "湖南省永州市宁远县", + "永州市宁远县": "湖南省永州市宁远县", + "湖南永州市蓝山县": "湖南省永州市蓝山县", + "永州市蓝山县": "湖南省永州市蓝山县", + "湖南永州市新田县": "湖南省永州市新田县", + "永州市新田县": "湖南省永州市新田县", + "湖南永州市江华瑶族自治县": "湖南省永州市江华瑶族自治县", + "永州市江华瑶族自治县": "湖南省永州市江华瑶族自治县", + "湖南怀化市鹤城区": "湖南省怀化市鹤城区", + "怀化市鹤城区": "湖南省怀化市鹤城区", + "湖南怀化市中方县": "湖南省怀化市中方县", + "怀化市中方县": "湖南省怀化市中方县", + "湖南怀化市沅陵县": "湖南省怀化市沅陵县", + "怀化市沅陵县": "湖南省怀化市沅陵县", + "湖南怀化市辰溪县": "湖南省怀化市辰溪县", + "怀化市辰溪县": "湖南省怀化市辰溪县", + "湖南怀化市溆浦县": "湖南省怀化市溆浦县", + "怀化市溆浦县": "湖南省怀化市溆浦县", + "湖南怀化市会同县": "湖南省怀化市会同县", + "怀化市会同县": "湖南省怀化市会同县", + "湖南怀化市麻阳苗族自治县": "湖南省怀化市麻阳苗族自治县", + "怀化市麻阳苗族自治县": "湖南省怀化市麻阳苗族自治县", + "湖南怀化市新晃侗族自治县": "湖南省怀化市新晃侗族自治县", + "怀化市新晃侗族自治县": "湖南省怀化市新晃侗族自治县", + "湖南怀化市芷江侗族自治县": "湖南省怀化市芷江侗族自治县", + "怀化市芷江侗族自治县": "湖南省怀化市芷江侗族自治县", + "湖南怀化市靖州苗族侗族自治县": "湖南省怀化市靖州苗族侗族自治县", + "怀化市靖州苗族侗族自治县": "湖南省怀化市靖州苗族侗族自治县", + "湖南怀化市通道侗族自治县": "湖南省怀化市通道侗族自治县", + "怀化市通道侗族自治县": "湖南省怀化市通道侗族自治县", + "湖南怀化市洪江市": "湖南省怀化市洪江市", + "怀化市洪江市": "湖南省怀化市洪江市", + "湖南娄底市娄星区": "湖南省娄底市娄星区", + "娄底市娄星区": "湖南省娄底市娄星区", + "湖南娄底市双峰县": "湖南省娄底市双峰县", + "娄底市双峰县": "湖南省娄底市双峰县", + "湖南娄底市新化县": "湖南省娄底市新化县", + "娄底市新化县": "湖南省娄底市新化县", + "湖南娄底市冷水江市": "湖南省娄底市冷水江市", + "娄底市冷水江市": "湖南省娄底市冷水江市", + "湖南娄底市涟源市": "湖南省娄底市涟源市", + "娄底市涟源市": "湖南省娄底市涟源市", + "湖南湘西土家族苗族自治州吉首市": "湖南省湘西土家族苗族自治州吉首市", + "湘西土家族苗族自治州吉首市": "湖南省湘西土家族苗族自治州吉首市", + "湖南湘西土家族苗族自治州泸溪县": "湖南省湘西土家族苗族自治州泸溪县", + "湘西土家族苗族自治州泸溪县": "湖南省湘西土家族苗族自治州泸溪县", + "湖南湘西土家族苗族自治州凤凰县": "湖南省湘西土家族苗族自治州凤凰县", + "湘西土家族苗族自治州凤凰县": "湖南省湘西土家族苗族自治州凤凰县", + "湖南湘西土家族苗族自治州花垣县": "湖南省湘西土家族苗族自治州花垣县", + "湘西土家族苗族自治州花垣县": "湖南省湘西土家族苗族自治州花垣县", + "湖南湘西土家族苗族自治州保靖县": "湖南省湘西土家族苗族自治州保靖县", + "湘西土家族苗族自治州保靖县": "湖南省湘西土家族苗族自治州保靖县", + "湖南湘西土家族苗族自治州古丈县": "湖南省湘西土家族苗族自治州古丈县", + "湘西土家族苗族自治州古丈县": "湖南省湘西土家族苗族自治州古丈县", + "湖南湘西土家族苗族自治州永顺县": "湖南省湘西土家族苗族自治州永顺县", + "湘西土家族苗族自治州永顺县": "湖南省湘西土家族苗族自治州永顺县", + "湖南湘西土家族苗族自治州龙山县": "湖南省湘西土家族苗族自治州龙山县", + "湘西土家族苗族自治州龙山县": "湖南省湘西土家族苗族自治州龙山县", + "广东广州市荔湾区": "广东省广州市荔湾区", + "广州市荔湾区": "广东省广州市荔湾区", + "广东广州市越秀区": "广东省广州市越秀区", + "广州市越秀区": "广东省广州市越秀区", + "广东广州市海珠区": "广东省广州市海珠区", + "广州市海珠区": "广东省广州市海珠区", + "广东广州市天河区": "广东省广州市天河区", + "广州市天河区": "广东省广州市天河区", + "广东广州市白云区": "广东省广州市白云区", + "广州市白云区": "广东省广州市白云区", + "广东广州市黄埔区": "广东省广州市黄埔区", + "广州市黄埔区": "广东省广州市黄埔区", + "广东广州市番禺区": "广东省广州市番禺区", + "广州市番禺区": "广东省广州市番禺区", + "广东广州市花都区": "广东省广州市花都区", + "广州市花都区": "广东省广州市花都区", + "广东广州市南沙区": "广东省广州市南沙区", + "广州市南沙区": "广东省广州市南沙区", + "广东广州市从化区": "广东省广州市从化区", + "广州市从化区": "广东省广州市从化区", + "广东广州市增城区": "广东省广州市增城区", + "广州市增城区": "广东省广州市增城区", + "广东韶关市武江区": "广东省韶关市武江区", + "韶关市武江区": "广东省韶关市武江区", + "广东韶关市浈江区": "广东省韶关市浈江区", + "韶关市浈江区": "广东省韶关市浈江区", + "广东韶关市曲江区": "广东省韶关市曲江区", + "韶关市曲江区": "广东省韶关市曲江区", + "广东韶关市始兴县": "广东省韶关市始兴县", + "韶关市始兴县": "广东省韶关市始兴县", + "广东韶关市仁化县": "广东省韶关市仁化县", + "韶关市仁化县": "广东省韶关市仁化县", + "广东韶关市翁源县": "广东省韶关市翁源县", + "韶关市翁源县": "广东省韶关市翁源县", + "广东韶关市乳源瑶族自治县": "广东省韶关市乳源瑶族自治县", + "韶关市乳源瑶族自治县": "广东省韶关市乳源瑶族自治县", + "广东韶关市新丰县": "广东省韶关市新丰县", + "韶关市新丰县": "广东省韶关市新丰县", + "广东韶关市乐昌市": "广东省韶关市乐昌市", + "韶关市乐昌市": "广东省韶关市乐昌市", + "广东韶关市南雄市": "广东省韶关市南雄市", + "韶关市南雄市": "广东省韶关市南雄市", + "广东深圳市罗湖区": "广东省深圳市罗湖区", + "深圳市罗湖区": "广东省深圳市罗湖区", + "广东深圳市福田区": "广东省深圳市福田区", + "深圳市福田区": "广东省深圳市福田区", + "广东深圳市南山区": "广东省深圳市南山区", + "深圳市南山区": "广东省深圳市南山区", + "广东深圳市宝安区": "广东省深圳市宝安区", + "深圳市宝安区": "广东省深圳市宝安区", + "广东深圳市龙岗区": "广东省深圳市龙岗区", + "深圳市龙岗区": "广东省深圳市龙岗区", + "广东深圳市盐田区": "广东省深圳市盐田区", + "深圳市盐田区": "广东省深圳市盐田区", + "广东深圳市龙华区": "广东省深圳市龙华区", + "深圳市龙华区": "广东省深圳市龙华区", + "广东深圳市坪山区": "广东省深圳市坪山区", + "深圳市坪山区": "广东省深圳市坪山区", + "广东深圳市光明区": "广东省深圳市光明区", + "深圳市光明区": "广东省深圳市光明区", + "广东珠海市香洲区": "广东省珠海市香洲区", + "珠海市香洲区": "广东省珠海市香洲区", + "广东珠海市斗门区": "广东省珠海市斗门区", + "珠海市斗门区": "广东省珠海市斗门区", + "广东珠海市金湾区": "广东省珠海市金湾区", + "珠海市金湾区": "广东省珠海市金湾区", + "广东汕头市龙湖区": "广东省汕头市龙湖区", + "汕头市龙湖区": "广东省汕头市龙湖区", + "广东汕头市金平区": "广东省汕头市金平区", + "汕头市金平区": "广东省汕头市金平区", + "广东汕头市濠江区": "广东省汕头市濠江区", + "汕头市濠江区": "广东省汕头市濠江区", + "广东汕头市潮阳区": "广东省汕头市潮阳区", + "汕头市潮阳区": "广东省汕头市潮阳区", + "广东汕头市潮南区": "广东省汕头市潮南区", + "汕头市潮南区": "广东省汕头市潮南区", + "广东汕头市澄海区": "广东省汕头市澄海区", + "汕头市澄海区": "广东省汕头市澄海区", + "广东汕头市南澳县": "广东省汕头市南澳县", + "汕头市南澳县": "广东省汕头市南澳县", + "广东佛山市禅城区": "广东省佛山市禅城区", + "佛山市禅城区": "广东省佛山市禅城区", + "广东佛山市南海区": "广东省佛山市南海区", + "佛山市南海区": "广东省佛山市南海区", + "广东佛山市顺德区": "广东省佛山市顺德区", + "佛山市顺德区": "广东省佛山市顺德区", + "广东佛山市三水区": "广东省佛山市三水区", + "佛山市三水区": "广东省佛山市三水区", + "广东佛山市高明区": "广东省佛山市高明区", + "佛山市高明区": "广东省佛山市高明区", + "广东江门市蓬江区": "广东省江门市蓬江区", + "江门市蓬江区": "广东省江门市蓬江区", + "广东江门市江海区": "广东省江门市江海区", + "江门市江海区": "广东省江门市江海区", + "广东江门市新会区": "广东省江门市新会区", + "江门市新会区": "广东省江门市新会区", + "广东江门市台山市": "广东省江门市台山市", + "江门市台山市": "广东省江门市台山市", + "广东江门市开平市": "广东省江门市开平市", + "江门市开平市": "广东省江门市开平市", + "广东江门市鹤山市": "广东省江门市鹤山市", + "江门市鹤山市": "广东省江门市鹤山市", + "广东江门市恩平市": "广东省江门市恩平市", + "江门市恩平市": "广东省江门市恩平市", + "广东湛江市赤坎区": "广东省湛江市赤坎区", + "湛江市赤坎区": "广东省湛江市赤坎区", + "广东湛江市霞山区": "广东省湛江市霞山区", + "湛江市霞山区": "广东省湛江市霞山区", + "广东湛江市坡头区": "广东省湛江市坡头区", + "湛江市坡头区": "广东省湛江市坡头区", + "广东湛江市麻章区": "广东省湛江市麻章区", + "湛江市麻章区": "广东省湛江市麻章区", + "广东湛江市遂溪县": "广东省湛江市遂溪县", + "湛江市遂溪县": "广东省湛江市遂溪县", + "广东湛江市徐闻县": "广东省湛江市徐闻县", + "湛江市徐闻县": "广东省湛江市徐闻县", + "广东湛江市廉江市": "广东省湛江市廉江市", + "湛江市廉江市": "广东省湛江市廉江市", + "广东湛江市雷州市": "广东省湛江市雷州市", + "湛江市雷州市": "广东省湛江市雷州市", + "广东湛江市吴川市": "广东省湛江市吴川市", + "湛江市吴川市": "广东省湛江市吴川市", + "广东茂名市茂南区": "广东省茂名市茂南区", + "茂名市茂南区": "广东省茂名市茂南区", + "广东茂名市电白区": "广东省茂名市电白区", + "茂名市电白区": "广东省茂名市电白区", + "广东茂名市高州市": "广东省茂名市高州市", + "茂名市高州市": "广东省茂名市高州市", + "广东茂名市化州市": "广东省茂名市化州市", + "茂名市化州市": "广东省茂名市化州市", + "广东茂名市信宜市": "广东省茂名市信宜市", + "茂名市信宜市": "广东省茂名市信宜市", + "广东肇庆市端州区": "广东省肇庆市端州区", + "肇庆市端州区": "广东省肇庆市端州区", + "广东肇庆市鼎湖区": "广东省肇庆市鼎湖区", + "肇庆市鼎湖区": "广东省肇庆市鼎湖区", + "广东肇庆市高要区": "广东省肇庆市高要区", + "肇庆市高要区": "广东省肇庆市高要区", + "广东肇庆市广宁县": "广东省肇庆市广宁县", + "肇庆市广宁县": "广东省肇庆市广宁县", + "广东肇庆市怀集县": "广东省肇庆市怀集县", + "肇庆市怀集县": "广东省肇庆市怀集县", + "广东肇庆市封开县": "广东省肇庆市封开县", + "肇庆市封开县": "广东省肇庆市封开县", + "广东肇庆市德庆县": "广东省肇庆市德庆县", + "肇庆市德庆县": "广东省肇庆市德庆县", + "广东肇庆市四会市": "广东省肇庆市四会市", + "肇庆市四会市": "广东省肇庆市四会市", + "广东惠州市惠城区": "广东省惠州市惠城区", + "惠州市惠城区": "广东省惠州市惠城区", + "广东惠州市惠阳区": "广东省惠州市惠阳区", + "惠州市惠阳区": "广东省惠州市惠阳区", + "广东惠州市博罗县": "广东省惠州市博罗县", + "惠州市博罗县": "广东省惠州市博罗县", + "广东惠州市惠东县": "广东省惠州市惠东县", + "惠州市惠东县": "广东省惠州市惠东县", + "广东惠州市龙门县": "广东省惠州市龙门县", + "惠州市龙门县": "广东省惠州市龙门县", + "广东梅州市梅江区": "广东省梅州市梅江区", + "梅州市梅江区": "广东省梅州市梅江区", + "广东梅州市梅县区": "广东省梅州市梅县区", + "梅州市梅县区": "广东省梅州市梅县区", + "广东梅州市大埔县": "广东省梅州市大埔县", + "梅州市大埔县": "广东省梅州市大埔县", + "广东梅州市丰顺县": "广东省梅州市丰顺县", + "梅州市丰顺县": "广东省梅州市丰顺县", + "广东梅州市五华县": "广东省梅州市五华县", + "梅州市五华县": "广东省梅州市五华县", + "广东梅州市平远县": "广东省梅州市平远县", + "梅州市平远县": "广东省梅州市平远县", + "广东梅州市蕉岭县": "广东省梅州市蕉岭县", + "梅州市蕉岭县": "广东省梅州市蕉岭县", + "广东梅州市兴宁市": "广东省梅州市兴宁市", + "梅州市兴宁市": "广东省梅州市兴宁市", + "广东汕尾市城区": "广东省汕尾市城区", + "汕尾市城区": "广东省汕尾市城区", + "广东汕尾市海丰县": "广东省汕尾市海丰县", + "汕尾市海丰县": "广东省汕尾市海丰县", + "广东汕尾市陆河县": "广东省汕尾市陆河县", + "汕尾市陆河县": "广东省汕尾市陆河县", + "广东汕尾市陆丰市": "广东省汕尾市陆丰市", + "汕尾市陆丰市": "广东省汕尾市陆丰市", + "广东河源市源城区": "广东省河源市源城区", + "河源市源城区": "广东省河源市源城区", + "广东河源市紫金县": "广东省河源市紫金县", + "河源市紫金县": "广东省河源市紫金县", + "广东河源市龙川县": "广东省河源市龙川县", + "河源市龙川县": "广东省河源市龙川县", + "广东河源市连平县": "广东省河源市连平县", + "河源市连平县": "广东省河源市连平县", + "广东河源市和平县": "广东省河源市和平县", + "河源市和平县": "广东省河源市和平县", + "广东河源市东源县": "广东省河源市东源县", + "河源市东源县": "广东省河源市东源县", + "广东阳江市江城区": "广东省阳江市江城区", + "阳江市江城区": "广东省阳江市江城区", + "广东阳江市阳东区": "广东省阳江市阳东区", + "阳江市阳东区": "广东省阳江市阳东区", + "广东阳江市阳西县": "广东省阳江市阳西县", + "阳江市阳西县": "广东省阳江市阳西县", + "广东阳江市阳春市": "广东省阳江市阳春市", + "阳江市阳春市": "广东省阳江市阳春市", + "广东清远市清城区": "广东省清远市清城区", + "清远市清城区": "广东省清远市清城区", + "广东清远市清新区": "广东省清远市清新区", + "清远市清新区": "广东省清远市清新区", + "广东清远市佛冈县": "广东省清远市佛冈县", + "清远市佛冈县": "广东省清远市佛冈县", + "广东清远市阳山县": "广东省清远市阳山县", + "清远市阳山县": "广东省清远市阳山县", + "广东清远市连山壮族瑶族自治县": "广东省清远市连山壮族瑶族自治县", + "清远市连山壮族瑶族自治县": "广东省清远市连山壮族瑶族自治县", + "广东清远市连南瑶族自治县": "广东省清远市连南瑶族自治县", + "清远市连南瑶族自治县": "广东省清远市连南瑶族自治县", + "广东清远市英德市": "广东省清远市英德市", + "清远市英德市": "广东省清远市英德市", + "广东清远市连州市": "广东省清远市连州市", + "清远市连州市": "广东省清远市连州市", + "广东东莞市": "广东省东莞市", + "广东中山市": "广东省中山市", + "广东潮州市湘桥区": "广东省潮州市湘桥区", + "潮州市湘桥区": "广东省潮州市湘桥区", + "广东潮州市潮安区": "广东省潮州市潮安区", + "潮州市潮安区": "广东省潮州市潮安区", + "广东潮州市饶平县": "广东省潮州市饶平县", + "潮州市饶平县": "广东省潮州市饶平县", + "广东揭阳市榕城区": "广东省揭阳市榕城区", + "揭阳市榕城区": "广东省揭阳市榕城区", + "广东揭阳市揭东区": "广东省揭阳市揭东区", + "揭阳市揭东区": "广东省揭阳市揭东区", + "广东揭阳市揭西县": "广东省揭阳市揭西县", + "揭阳市揭西县": "广东省揭阳市揭西县", + "广东揭阳市惠来县": "广东省揭阳市惠来县", + "揭阳市惠来县": "广东省揭阳市惠来县", + "广东揭阳市普宁市": "广东省揭阳市普宁市", + "揭阳市普宁市": "广东省揭阳市普宁市", + "广东云浮市云城区": "广东省云浮市云城区", + "云浮市云城区": "广东省云浮市云城区", + "广东云浮市云安区": "广东省云浮市云安区", + "云浮市云安区": "广东省云浮市云安区", + "广东云浮市新兴县": "广东省云浮市新兴县", + "云浮市新兴县": "广东省云浮市新兴县", + "广东云浮市郁南县": "广东省云浮市郁南县", + "云浮市郁南县": "广东省云浮市郁南县", + "广东云浮市罗定市": "广东省云浮市罗定市", + "云浮市罗定市": "广东省云浮市罗定市", + "广西南宁市兴宁区": "广西壮族自治区南宁市兴宁区", + "南宁市兴宁区": "广西壮族自治区南宁市兴宁区", + "广西南宁市青秀区": "广西壮族自治区南宁市青秀区", + "南宁市青秀区": "广西壮族自治区南宁市青秀区", + "广西南宁市江南区": "广西壮族自治区南宁市江南区", + "南宁市江南区": "广西壮族自治区南宁市江南区", + "广西南宁市西乡塘区": "广西壮族自治区南宁市西乡塘区", + "南宁市西乡塘区": "广西壮族自治区南宁市西乡塘区", + "广西南宁市良庆区": "广西壮族自治区南宁市良庆区", + "南宁市良庆区": "广西壮族自治区南宁市良庆区", + "广西南宁市邕宁区": "广西壮族自治区南宁市邕宁区", + "南宁市邕宁区": "广西壮族自治区南宁市邕宁区", + "广西南宁市武鸣区": "广西壮族自治区南宁市武鸣区", + "南宁市武鸣区": "广西壮族自治区南宁市武鸣区", + "广西南宁市隆安县": "广西壮族自治区南宁市隆安县", + "南宁市隆安县": "广西壮族自治区南宁市隆安县", + "广西南宁市马山县": "广西壮族自治区南宁市马山县", + "南宁市马山县": "广西壮族自治区南宁市马山县", + "广西南宁市上林县": "广西壮族自治区南宁市上林县", + "南宁市上林县": "广西壮族自治区南宁市上林县", + "广西南宁市宾阳县": "广西壮族自治区南宁市宾阳县", + "南宁市宾阳县": "广西壮族自治区南宁市宾阳县", + "广西南宁市横州市": "广西壮族自治区南宁市横州市", + "南宁市横州市": "广西壮族自治区南宁市横州市", + "广西柳州市城中区": "广西壮族自治区柳州市城中区", + "柳州市城中区": "广西壮族自治区柳州市城中区", + "广西柳州市鱼峰区": "广西壮族自治区柳州市鱼峰区", + "柳州市鱼峰区": "广西壮族自治区柳州市鱼峰区", + "广西柳州市柳南区": "广西壮族自治区柳州市柳南区", + "柳州市柳南区": "广西壮族自治区柳州市柳南区", + "广西柳州市柳北区": "广西壮族自治区柳州市柳北区", + "柳州市柳北区": "广西壮族自治区柳州市柳北区", + "广西柳州市柳江区": "广西壮族自治区柳州市柳江区", + "柳州市柳江区": "广西壮族自治区柳州市柳江区", + "广西柳州市柳城县": "广西壮族自治区柳州市柳城县", + "柳州市柳城县": "广西壮族自治区柳州市柳城县", + "广西柳州市鹿寨县": "广西壮族自治区柳州市鹿寨县", + "柳州市鹿寨县": "广西壮族自治区柳州市鹿寨县", + "广西柳州市融安县": "广西壮族自治区柳州市融安县", + "柳州市融安县": "广西壮族自治区柳州市融安县", + "广西柳州市融水苗族自治县": "广西壮族自治区柳州市融水苗族自治县", + "柳州市融水苗族自治县": "广西壮族自治区柳州市融水苗族自治县", + "广西柳州市三江侗族自治县": "广西壮族自治区柳州市三江侗族自治县", + "柳州市三江侗族自治县": "广西壮族自治区柳州市三江侗族自治县", + "广西桂林市秀峰区": "广西壮族自治区桂林市秀峰区", + "桂林市秀峰区": "广西壮族自治区桂林市秀峰区", + "广西桂林市叠彩区": "广西壮族自治区桂林市叠彩区", + "桂林市叠彩区": "广西壮族自治区桂林市叠彩区", + "广西桂林市象山区": "广西壮族自治区桂林市象山区", + "桂林市象山区": "广西壮族自治区桂林市象山区", + "广西桂林市七星区": "广西壮族自治区桂林市七星区", + "桂林市七星区": "广西壮族自治区桂林市七星区", + "广西桂林市雁山区": "广西壮族自治区桂林市雁山区", + "桂林市雁山区": "广西壮族自治区桂林市雁山区", + "广西桂林市临桂区": "广西壮族自治区桂林市临桂区", + "桂林市临桂区": "广西壮族自治区桂林市临桂区", + "广西桂林市阳朔县": "广西壮族自治区桂林市阳朔县", + "桂林市阳朔县": "广西壮族自治区桂林市阳朔县", + "广西桂林市灵川县": "广西壮族自治区桂林市灵川县", + "桂林市灵川县": "广西壮族自治区桂林市灵川县", + "广西桂林市全州县": "广西壮族自治区桂林市全州县", + "桂林市全州县": "广西壮族自治区桂林市全州县", + "广西桂林市兴安县": "广西壮族自治区桂林市兴安县", + "桂林市兴安县": "广西壮族自治区桂林市兴安县", + "广西桂林市永福县": "广西壮族自治区桂林市永福县", + "桂林市永福县": "广西壮族自治区桂林市永福县", + "广西桂林市灌阳县": "广西壮族自治区桂林市灌阳县", + "桂林市灌阳县": "广西壮族自治区桂林市灌阳县", + "广西桂林市龙胜各族自治县": "广西壮族自治区桂林市龙胜各族自治县", + "桂林市龙胜各族自治县": "广西壮族自治区桂林市龙胜各族自治县", + "广西桂林市资源县": "广西壮族自治区桂林市资源县", + "桂林市资源县": "广西壮族自治区桂林市资源县", + "广西桂林市平乐县": "广西壮族自治区桂林市平乐县", + "桂林市平乐县": "广西壮族自治区桂林市平乐县", + "广西桂林市恭城瑶族自治县": "广西壮族自治区桂林市恭城瑶族自治县", + "桂林市恭城瑶族自治县": "广西壮族自治区桂林市恭城瑶族自治县", + "广西桂林市荔浦市": "广西壮族自治区桂林市荔浦市", + "桂林市荔浦市": "广西壮族自治区桂林市荔浦市", + "广西梧州市万秀区": "广西壮族自治区梧州市万秀区", + "梧州市万秀区": "广西壮族自治区梧州市万秀区", + "广西梧州市长洲区": "广西壮族自治区梧州市长洲区", + "梧州市长洲区": "广西壮族自治区梧州市长洲区", + "广西梧州市龙圩区": "广西壮族自治区梧州市龙圩区", + "梧州市龙圩区": "广西壮族自治区梧州市龙圩区", + "广西梧州市苍梧县": "广西壮族自治区梧州市苍梧县", + "梧州市苍梧县": "广西壮族自治区梧州市苍梧县", + "广西梧州市藤县": "广西壮族自治区梧州市藤县", + "梧州市藤县": "广西壮族自治区梧州市藤县", + "广西梧州市蒙山县": "广西壮族自治区梧州市蒙山县", + "梧州市蒙山县": "广西壮族自治区梧州市蒙山县", + "广西梧州市岑溪市": "广西壮族自治区梧州市岑溪市", + "梧州市岑溪市": "广西壮族自治区梧州市岑溪市", + "广西北海市海城区": "广西壮族自治区北海市海城区", + "北海市海城区": "广西壮族自治区北海市海城区", + "广西北海市银海区": "广西壮族自治区北海市银海区", + "北海市银海区": "广西壮族自治区北海市银海区", + "广西北海市铁山港区": "广西壮族自治区北海市铁山港区", + "北海市铁山港区": "广西壮族自治区北海市铁山港区", + "广西北海市合浦县": "广西壮族自治区北海市合浦县", + "北海市合浦县": "广西壮族自治区北海市合浦县", + "广西防城港市港口区": "广西壮族自治区防城港市港口区", + "防城港市港口区": "广西壮族自治区防城港市港口区", + "广西防城港市防城区": "广西壮族自治区防城港市防城区", + "防城港市防城区": "广西壮族自治区防城港市防城区", + "广西防城港市上思县": "广西壮族自治区防城港市上思县", + "防城港市上思县": "广西壮族自治区防城港市上思县", + "广西防城港市东兴市": "广西壮族自治区防城港市东兴市", + "防城港市东兴市": "广西壮族自治区防城港市东兴市", + "广西钦州市钦南区": "广西壮族自治区钦州市钦南区", + "钦州市钦南区": "广西壮族自治区钦州市钦南区", + "广西钦州市钦北区": "广西壮族自治区钦州市钦北区", + "钦州市钦北区": "广西壮族自治区钦州市钦北区", + "广西钦州市灵山县": "广西壮族自治区钦州市灵山县", + "钦州市灵山县": "广西壮族自治区钦州市灵山县", + "广西钦州市浦北县": "广西壮族自治区钦州市浦北县", + "钦州市浦北县": "广西壮族自治区钦州市浦北县", + "广西贵港市港北区": "广西壮族自治区贵港市港北区", + "贵港市港北区": "广西壮族自治区贵港市港北区", + "广西贵港市港南区": "广西壮族自治区贵港市港南区", + "贵港市港南区": "广西壮族自治区贵港市港南区", + "广西贵港市覃塘区": "广西壮族自治区贵港市覃塘区", + "贵港市覃塘区": "广西壮族自治区贵港市覃塘区", + "广西贵港市平南县": "广西壮族自治区贵港市平南县", + "贵港市平南县": "广西壮族自治区贵港市平南县", + "广西贵港市桂平市": "广西壮族自治区贵港市桂平市", + "贵港市桂平市": "广西壮族自治区贵港市桂平市", + "广西玉林市玉州区": "广西壮族自治区玉林市玉州区", + "玉林市玉州区": "广西壮族自治区玉林市玉州区", + "广西玉林市福绵区": "广西壮族自治区玉林市福绵区", + "玉林市福绵区": "广西壮族自治区玉林市福绵区", + "广西玉林市容县": "广西壮族自治区玉林市容县", + "玉林市容县": "广西壮族自治区玉林市容县", + "广西玉林市陆川县": "广西壮族自治区玉林市陆川县", + "玉林市陆川县": "广西壮族自治区玉林市陆川县", + "广西玉林市博白县": "广西壮族自治区玉林市博白县", + "玉林市博白县": "广西壮族自治区玉林市博白县", + "广西玉林市兴业县": "广西壮族自治区玉林市兴业县", + "玉林市兴业县": "广西壮族自治区玉林市兴业县", + "广西玉林市北流市": "广西壮族自治区玉林市北流市", + "玉林市北流市": "广西壮族自治区玉林市北流市", + "广西百色市右江区": "广西壮族自治区百色市右江区", + "百色市右江区": "广西壮族自治区百色市右江区", + "广西百色市田阳区": "广西壮族自治区百色市田阳区", + "百色市田阳区": "广西壮族自治区百色市田阳区", + "广西百色市田东县": "广西壮族自治区百色市田东县", + "百色市田东县": "广西壮族自治区百色市田东县", + "广西百色市德保县": "广西壮族自治区百色市德保县", + "百色市德保县": "广西壮族自治区百色市德保县", + "广西百色市那坡县": "广西壮族自治区百色市那坡县", + "百色市那坡县": "广西壮族自治区百色市那坡县", + "广西百色市凌云县": "广西壮族自治区百色市凌云县", + "百色市凌云县": "广西壮族自治区百色市凌云县", + "广西百色市乐业县": "广西壮族自治区百色市乐业县", + "百色市乐业县": "广西壮族自治区百色市乐业县", + "广西百色市田林县": "广西壮族自治区百色市田林县", + "百色市田林县": "广西壮族自治区百色市田林县", + "广西百色市西林县": "广西壮族自治区百色市西林县", + "百色市西林县": "广西壮族自治区百色市西林县", + "广西百色市隆林各族自治县": "广西壮族自治区百色市隆林各族自治县", + "百色市隆林各族自治县": "广西壮族自治区百色市隆林各族自治县", + "广西百色市靖西市": "广西壮族自治区百色市靖西市", + "百色市靖西市": "广西壮族自治区百色市靖西市", + "广西百色市平果市": "广西壮族自治区百色市平果市", + "百色市平果市": "广西壮族自治区百色市平果市", + "广西贺州市八步区": "广西壮族自治区贺州市八步区", + "贺州市八步区": "广西壮族自治区贺州市八步区", + "广西贺州市平桂区": "广西壮族自治区贺州市平桂区", + "贺州市平桂区": "广西壮族自治区贺州市平桂区", + "广西贺州市昭平县": "广西壮族自治区贺州市昭平县", + "贺州市昭平县": "广西壮族自治区贺州市昭平县", + "广西贺州市钟山县": "广西壮族自治区贺州市钟山县", + "贺州市钟山县": "广西壮族自治区贺州市钟山县", + "广西贺州市富川瑶族自治县": "广西壮族自治区贺州市富川瑶族自治县", + "贺州市富川瑶族自治县": "广西壮族自治区贺州市富川瑶族自治县", + "广西河池市金城江区": "广西壮族自治区河池市金城江区", + "河池市金城江区": "广西壮族自治区河池市金城江区", + "广西河池市宜州区": "广西壮族自治区河池市宜州区", + "河池市宜州区": "广西壮族自治区河池市宜州区", + "广西河池市南丹县": "广西壮族自治区河池市南丹县", + "河池市南丹县": "广西壮族自治区河池市南丹县", + "广西河池市天峨县": "广西壮族自治区河池市天峨县", + "河池市天峨县": "广西壮族自治区河池市天峨县", + "广西河池市凤山县": "广西壮族自治区河池市凤山县", + "河池市凤山县": "广西壮族自治区河池市凤山县", + "广西河池市东兰县": "广西壮族自治区河池市东兰县", + "河池市东兰县": "广西壮族自治区河池市东兰县", + "广西河池市罗城仫佬族自治县": "广西壮族自治区河池市罗城仫佬族自治县", + "河池市罗城仫佬族自治县": "广西壮族自治区河池市罗城仫佬族自治县", + "广西河池市环江毛南族自治县": "广西壮族自治区河池市环江毛南族自治县", + "河池市环江毛南族自治县": "广西壮族自治区河池市环江毛南族自治县", + "广西河池市巴马瑶族自治县": "广西壮族自治区河池市巴马瑶族自治县", + "河池市巴马瑶族自治县": "广西壮族自治区河池市巴马瑶族自治县", + "广西河池市都安瑶族自治县": "广西壮族自治区河池市都安瑶族自治县", + "河池市都安瑶族自治县": "广西壮族自治区河池市都安瑶族自治县", + "广西河池市大化瑶族自治县": "广西壮族自治区河池市大化瑶族自治县", + "河池市大化瑶族自治县": "广西壮族自治区河池市大化瑶族自治县", + "广西来宾市兴宾区": "广西壮族自治区来宾市兴宾区", + "来宾市兴宾区": "广西壮族自治区来宾市兴宾区", + "广西来宾市忻城县": "广西壮族自治区来宾市忻城县", + "来宾市忻城县": "广西壮族自治区来宾市忻城县", + "广西来宾市象州县": "广西壮族自治区来宾市象州县", + "来宾市象州县": "广西壮族自治区来宾市象州县", + "广西来宾市武宣县": "广西壮族自治区来宾市武宣县", + "来宾市武宣县": "广西壮族自治区来宾市武宣县", + "广西来宾市金秀瑶族自治县": "广西壮族自治区来宾市金秀瑶族自治县", + "来宾市金秀瑶族自治县": "广西壮族自治区来宾市金秀瑶族自治县", + "广西来宾市合山市": "广西壮族自治区来宾市合山市", + "来宾市合山市": "广西壮族自治区来宾市合山市", + "广西崇左市江州区": "广西壮族自治区崇左市江州区", + "崇左市江州区": "广西壮族自治区崇左市江州区", + "广西崇左市扶绥县": "广西壮族自治区崇左市扶绥县", + "崇左市扶绥县": "广西壮族自治区崇左市扶绥县", + "广西崇左市宁明县": "广西壮族自治区崇左市宁明县", + "崇左市宁明县": "广西壮族自治区崇左市宁明县", + "广西崇左市龙州县": "广西壮族自治区崇左市龙州县", + "崇左市龙州县": "广西壮族自治区崇左市龙州县", + "广西崇左市大新县": "广西壮族自治区崇左市大新县", + "崇左市大新县": "广西壮族自治区崇左市大新县", + "广西崇左市天等县": "广西壮族自治区崇左市天等县", + "崇左市天等县": "广西壮族自治区崇左市天等县", + "广西崇左市凭祥市": "广西壮族自治区崇左市凭祥市", + "崇左市凭祥市": "广西壮族自治区崇左市凭祥市", + "海南海口市秀英区": "海南省海口市秀英区", + "海口市秀英区": "海南省海口市秀英区", + "海南海口市龙华区": "海南省海口市龙华区", + "海口市龙华区": "海南省海口市龙华区", + "海南海口市琼山区": "海南省海口市琼山区", + "海口市琼山区": "海南省海口市琼山区", + "海南海口市美兰区": "海南省海口市美兰区", + "海口市美兰区": "海南省海口市美兰区", + "海南三亚市海棠区": "海南省三亚市海棠区", + "三亚市海棠区": "海南省三亚市海棠区", + "海南三亚市吉阳区": "海南省三亚市吉阳区", + "三亚市吉阳区": "海南省三亚市吉阳区", + "海南三亚市天涯区": "海南省三亚市天涯区", + "三亚市天涯区": "海南省三亚市天涯区", + "海南三亚市崖州区": "海南省三亚市崖州区", + "三亚市崖州区": "海南省三亚市崖州区", + "海南三沙市西沙区": "海南省三沙市西沙区", + "三沙市西沙区": "海南省三沙市西沙区", + "海南三沙市南沙区": "海南省三沙市南沙区", + "三沙市南沙区": "海南省三沙市南沙区", + "海南儋州市": "海南省儋州市", + "海南五指山市": "海南省五指山市", + "海南琼海市": "海南省琼海市", + "海南文昌市": "海南省文昌市", + "海南万宁市": "海南省万宁市", + "海南东方市": "海南省东方市", + "海南定安县": "海南省定安县", + "海南屯昌县": "海南省屯昌县", + "海南澄迈县": "海南省澄迈县", + "海南临高县": "海南省临高县", + "海南白沙黎族自治县": "海南省白沙黎族自治县", + "海南昌江黎族自治县": "海南省昌江黎族自治县", + "海南乐东黎族自治县": "海南省乐东黎族自治县", + "海南陵水黎族自治县": "海南省陵水黎族自治县", + "海南保亭黎族苗族自治县": "海南省保亭黎族苗族自治县", + "海南琼中黎族苗族自治县": "海南省琼中黎族苗族自治县", + "重庆万州区": "重庆市万州区", + "重庆涪陵区": "重庆市涪陵区", + "重庆渝中区": "重庆市渝中区", + "重庆大渡口区": "重庆市大渡口区", + "重庆江北区": "重庆市江北区", + "重庆沙坪坝区": "重庆市沙坪坝区", + "重庆九龙坡区": "重庆市九龙坡区", + "重庆南岸区": "重庆市南岸区", + "重庆北碚区": "重庆市北碚区", + "重庆綦江区": "重庆市綦江区", + "重庆大足区": "重庆市大足区", + "重庆渝北区": "重庆市渝北区", + "重庆巴南区": "重庆市巴南区", + "重庆黔江区": "重庆市黔江区", + "重庆长寿区": "重庆市长寿区", + "重庆江津区": "重庆市江津区", + "重庆合川区": "重庆市合川区", + "重庆永川区": "重庆市永川区", + "重庆南川区": "重庆市南川区", + "重庆璧山区": "重庆市璧山区", + "重庆铜梁区": "重庆市铜梁区", + "重庆潼南区": "重庆市潼南区", + "重庆荣昌区": "重庆市荣昌区", + "重庆开州区": "重庆市开州区", + "重庆梁平区": "重庆市梁平区", + "重庆武隆区": "重庆市武隆区", + "重庆城口县": "重庆市城口县", + "重庆丰都县": "重庆市丰都县", + "重庆垫江县": "重庆市垫江县", + "重庆忠县": "重庆市忠县", + "重庆云阳县": "重庆市云阳县", + "重庆奉节县": "重庆市奉节县", + "重庆巫山县": "重庆市巫山县", + "重庆巫溪县": "重庆市巫溪县", + "重庆石柱土家族自治县": "重庆市石柱土家族自治县", + "重庆秀山土家族苗族自治县": "重庆市秀山土家族苗族自治县", + "重庆酉阳土家族苗族自治县": "重庆市酉阳土家族苗族自治县", + "重庆彭水苗族土家族自治县": "重庆市彭水苗族土家族自治县", + "四川成都市锦江区": "四川省成都市锦江区", + "成都市锦江区": "四川省成都市锦江区", + "四川成都市青羊区": "四川省成都市青羊区", + "成都市青羊区": "四川省成都市青羊区", + "四川成都市金牛区": "四川省成都市金牛区", + "成都市金牛区": "四川省成都市金牛区", + "四川成都市武侯区": "四川省成都市武侯区", + "成都市武侯区": "四川省成都市武侯区", + "四川成都市成华区": "四川省成都市成华区", + "成都市成华区": "四川省成都市成华区", + "四川成都市龙泉驿区": "四川省成都市龙泉驿区", + "成都市龙泉驿区": "四川省成都市龙泉驿区", + "四川成都市青白江区": "四川省成都市青白江区", + "成都市青白江区": "四川省成都市青白江区", + "四川成都市新都区": "四川省成都市新都区", + "成都市新都区": "四川省成都市新都区", + "四川成都市温江区": "四川省成都市温江区", + "成都市温江区": "四川省成都市温江区", + "四川成都市双流区": "四川省成都市双流区", + "成都市双流区": "四川省成都市双流区", + "四川成都市郫都区": "四川省成都市郫都区", + "成都市郫都区": "四川省成都市郫都区", + "四川成都市新津区": "四川省成都市新津区", + "成都市新津区": "四川省成都市新津区", + "四川成都市金堂县": "四川省成都市金堂县", + "成都市金堂县": "四川省成都市金堂县", + "四川成都市大邑县": "四川省成都市大邑县", + "成都市大邑县": "四川省成都市大邑县", + "四川成都市蒲江县": "四川省成都市蒲江县", + "成都市蒲江县": "四川省成都市蒲江县", + "四川成都市都江堰市": "四川省成都市都江堰市", + "成都市都江堰市": "四川省成都市都江堰市", + "四川成都市彭州市": "四川省成都市彭州市", + "成都市彭州市": "四川省成都市彭州市", + "四川成都市邛崃市": "四川省成都市邛崃市", + "成都市邛崃市": "四川省成都市邛崃市", + "四川成都市崇州市": "四川省成都市崇州市", + "成都市崇州市": "四川省成都市崇州市", + "四川成都市简阳市": "四川省成都市简阳市", + "成都市简阳市": "四川省成都市简阳市", + "四川自贡市自流井区": "四川省自贡市自流井区", + "自贡市自流井区": "四川省自贡市自流井区", + "四川自贡市贡井区": "四川省自贡市贡井区", + "自贡市贡井区": "四川省自贡市贡井区", + "四川自贡市大安区": "四川省自贡市大安区", + "自贡市大安区": "四川省自贡市大安区", + "四川自贡市沿滩区": "四川省自贡市沿滩区", + "自贡市沿滩区": "四川省自贡市沿滩区", + "四川自贡市荣县": "四川省自贡市荣县", + "自贡市荣县": "四川省自贡市荣县", + "四川自贡市富顺县": "四川省自贡市富顺县", + "自贡市富顺县": "四川省自贡市富顺县", + "四川攀枝花市东区": "四川省攀枝花市东区", + "攀枝花市东区": "四川省攀枝花市东区", + "四川攀枝花市西区": "四川省攀枝花市西区", + "攀枝花市西区": "四川省攀枝花市西区", + "四川攀枝花市仁和区": "四川省攀枝花市仁和区", + "攀枝花市仁和区": "四川省攀枝花市仁和区", + "四川攀枝花市米易县": "四川省攀枝花市米易县", + "攀枝花市米易县": "四川省攀枝花市米易县", + "四川攀枝花市盐边县": "四川省攀枝花市盐边县", + "攀枝花市盐边县": "四川省攀枝花市盐边县", + "四川泸州市江阳区": "四川省泸州市江阳区", + "泸州市江阳区": "四川省泸州市江阳区", + "四川泸州市纳溪区": "四川省泸州市纳溪区", + "泸州市纳溪区": "四川省泸州市纳溪区", + "四川泸州市龙马潭区": "四川省泸州市龙马潭区", + "泸州市龙马潭区": "四川省泸州市龙马潭区", + "四川泸州市泸县": "四川省泸州市泸县", + "泸州市泸县": "四川省泸州市泸县", + "四川泸州市合江县": "四川省泸州市合江县", + "泸州市合江县": "四川省泸州市合江县", + "四川泸州市叙永县": "四川省泸州市叙永县", + "泸州市叙永县": "四川省泸州市叙永县", + "四川泸州市古蔺县": "四川省泸州市古蔺县", + "泸州市古蔺县": "四川省泸州市古蔺县", + "四川德阳市旌阳区": "四川省德阳市旌阳区", + "德阳市旌阳区": "四川省德阳市旌阳区", + "四川德阳市罗江区": "四川省德阳市罗江区", + "德阳市罗江区": "四川省德阳市罗江区", + "四川德阳市中江县": "四川省德阳市中江县", + "德阳市中江县": "四川省德阳市中江县", + "四川德阳市广汉市": "四川省德阳市广汉市", + "德阳市广汉市": "四川省德阳市广汉市", + "四川德阳市什邡市": "四川省德阳市什邡市", + "德阳市什邡市": "四川省德阳市什邡市", + "四川德阳市绵竹市": "四川省德阳市绵竹市", + "德阳市绵竹市": "四川省德阳市绵竹市", + "四川绵阳市涪城区": "四川省绵阳市涪城区", + "绵阳市涪城区": "四川省绵阳市涪城区", + "四川绵阳市游仙区": "四川省绵阳市游仙区", + "绵阳市游仙区": "四川省绵阳市游仙区", + "四川绵阳市安州区": "四川省绵阳市安州区", + "绵阳市安州区": "四川省绵阳市安州区", + "四川绵阳市三台县": "四川省绵阳市三台县", + "绵阳市三台县": "四川省绵阳市三台县", + "四川绵阳市盐亭县": "四川省绵阳市盐亭县", + "绵阳市盐亭县": "四川省绵阳市盐亭县", + "四川绵阳市梓潼县": "四川省绵阳市梓潼县", + "绵阳市梓潼县": "四川省绵阳市梓潼县", + "四川绵阳市北川羌族自治县": "四川省绵阳市北川羌族自治县", + "绵阳市北川羌族自治县": "四川省绵阳市北川羌族自治县", + "四川绵阳市平武县": "四川省绵阳市平武县", + "绵阳市平武县": "四川省绵阳市平武县", + "四川绵阳市江油市": "四川省绵阳市江油市", + "绵阳市江油市": "四川省绵阳市江油市", + "四川广元市利州区": "四川省广元市利州区", + "广元市利州区": "四川省广元市利州区", + "四川广元市昭化区": "四川省广元市昭化区", + "广元市昭化区": "四川省广元市昭化区", + "四川广元市朝天区": "四川省广元市朝天区", + "广元市朝天区": "四川省广元市朝天区", + "四川广元市旺苍县": "四川省广元市旺苍县", + "广元市旺苍县": "四川省广元市旺苍县", + "四川广元市青川县": "四川省广元市青川县", + "广元市青川县": "四川省广元市青川县", + "四川广元市剑阁县": "四川省广元市剑阁县", + "广元市剑阁县": "四川省广元市剑阁县", + "四川广元市苍溪县": "四川省广元市苍溪县", + "广元市苍溪县": "四川省广元市苍溪县", + "四川遂宁市船山区": "四川省遂宁市船山区", + "遂宁市船山区": "四川省遂宁市船山区", + "四川遂宁市安居区": "四川省遂宁市安居区", + "遂宁市安居区": "四川省遂宁市安居区", + "四川遂宁市蓬溪县": "四川省遂宁市蓬溪县", + "遂宁市蓬溪县": "四川省遂宁市蓬溪县", + "四川遂宁市大英县": "四川省遂宁市大英县", + "遂宁市大英县": "四川省遂宁市大英县", + "四川遂宁市射洪市": "四川省遂宁市射洪市", + "遂宁市射洪市": "四川省遂宁市射洪市", + "四川内江市市中区": "四川省内江市市中区", + "内江市市中区": "四川省内江市市中区", + "四川内江市东兴区": "四川省内江市东兴区", + "内江市东兴区": "四川省内江市东兴区", + "四川内江市威远县": "四川省内江市威远县", + "内江市威远县": "四川省内江市威远县", + "四川内江市资中县": "四川省内江市资中县", + "内江市资中县": "四川省内江市资中县", + "四川内江市隆昌市": "四川省内江市隆昌市", + "内江市隆昌市": "四川省内江市隆昌市", + "四川乐山市市中区": "四川省乐山市市中区", + "乐山市市中区": "四川省乐山市市中区", + "四川乐山市沙湾区": "四川省乐山市沙湾区", + "乐山市沙湾区": "四川省乐山市沙湾区", + "四川乐山市五通桥区": "四川省乐山市五通桥区", + "乐山市五通桥区": "四川省乐山市五通桥区", + "四川乐山市金口河区": "四川省乐山市金口河区", + "乐山市金口河区": "四川省乐山市金口河区", + "四川乐山市犍为县": "四川省乐山市犍为县", + "乐山市犍为县": "四川省乐山市犍为县", + "四川乐山市井研县": "四川省乐山市井研县", + "乐山市井研县": "四川省乐山市井研县", + "四川乐山市夹江县": "四川省乐山市夹江县", + "乐山市夹江县": "四川省乐山市夹江县", + "四川乐山市沐川县": "四川省乐山市沐川县", + "乐山市沐川县": "四川省乐山市沐川县", + "四川乐山市峨边彝族自治县": "四川省乐山市峨边彝族自治县", + "乐山市峨边彝族自治县": "四川省乐山市峨边彝族自治县", + "四川乐山市马边彝族自治县": "四川省乐山市马边彝族自治县", + "乐山市马边彝族自治县": "四川省乐山市马边彝族自治县", + "四川乐山市峨眉山市": "四川省乐山市峨眉山市", + "乐山市峨眉山市": "四川省乐山市峨眉山市", + "四川南充市顺庆区": "四川省南充市顺庆区", + "南充市顺庆区": "四川省南充市顺庆区", + "四川南充市高坪区": "四川省南充市高坪区", + "南充市高坪区": "四川省南充市高坪区", + "四川南充市嘉陵区": "四川省南充市嘉陵区", + "南充市嘉陵区": "四川省南充市嘉陵区", + "四川南充市南部县": "四川省南充市南部县", + "南充市南部县": "四川省南充市南部县", + "四川南充市营山县": "四川省南充市营山县", + "南充市营山县": "四川省南充市营山县", + "四川南充市蓬安县": "四川省南充市蓬安县", + "南充市蓬安县": "四川省南充市蓬安县", + "四川南充市仪陇县": "四川省南充市仪陇县", + "南充市仪陇县": "四川省南充市仪陇县", + "四川南充市西充县": "四川省南充市西充县", + "南充市西充县": "四川省南充市西充县", + "四川南充市阆中市": "四川省南充市阆中市", + "南充市阆中市": "四川省南充市阆中市", + "四川眉山市东坡区": "四川省眉山市东坡区", + "眉山市东坡区": "四川省眉山市东坡区", + "四川眉山市彭山区": "四川省眉山市彭山区", + "眉山市彭山区": "四川省眉山市彭山区", + "四川眉山市仁寿县": "四川省眉山市仁寿县", + "眉山市仁寿县": "四川省眉山市仁寿县", + "四川眉山市洪雅县": "四川省眉山市洪雅县", + "眉山市洪雅县": "四川省眉山市洪雅县", + "四川眉山市丹棱县": "四川省眉山市丹棱县", + "眉山市丹棱县": "四川省眉山市丹棱县", + "四川眉山市青神县": "四川省眉山市青神县", + "眉山市青神县": "四川省眉山市青神县", + "四川宜宾市翠屏区": "四川省宜宾市翠屏区", + "宜宾市翠屏区": "四川省宜宾市翠屏区", + "四川宜宾市南溪区": "四川省宜宾市南溪区", + "宜宾市南溪区": "四川省宜宾市南溪区", + "四川宜宾市叙州区": "四川省宜宾市叙州区", + "宜宾市叙州区": "四川省宜宾市叙州区", + "四川宜宾市江安县": "四川省宜宾市江安县", + "宜宾市江安县": "四川省宜宾市江安县", + "四川宜宾市长宁县": "四川省宜宾市长宁县", + "宜宾市长宁县": "四川省宜宾市长宁县", + "四川宜宾市高县": "四川省宜宾市高县", + "宜宾市高县": "四川省宜宾市高县", + "四川宜宾市珙县": "四川省宜宾市珙县", + "宜宾市珙县": "四川省宜宾市珙县", + "四川宜宾市筠连县": "四川省宜宾市筠连县", + "宜宾市筠连县": "四川省宜宾市筠连县", + "四川宜宾市兴文县": "四川省宜宾市兴文县", + "宜宾市兴文县": "四川省宜宾市兴文县", + "四川宜宾市屏山县": "四川省宜宾市屏山县", + "宜宾市屏山县": "四川省宜宾市屏山县", + "四川广安市广安区": "四川省广安市广安区", + "广安市广安区": "四川省广安市广安区", + "四川广安市前锋区": "四川省广安市前锋区", + "广安市前锋区": "四川省广安市前锋区", + "四川广安市岳池县": "四川省广安市岳池县", + "广安市岳池县": "四川省广安市岳池县", + "四川广安市武胜县": "四川省广安市武胜县", + "广安市武胜县": "四川省广安市武胜县", + "四川广安市邻水县": "四川省广安市邻水县", + "广安市邻水县": "四川省广安市邻水县", + "四川广安市华蓥市": "四川省广安市华蓥市", + "广安市华蓥市": "四川省广安市华蓥市", + "四川达州市通川区": "四川省达州市通川区", + "达州市通川区": "四川省达州市通川区", + "四川达州市达川区": "四川省达州市达川区", + "达州市达川区": "四川省达州市达川区", + "四川达州市宣汉县": "四川省达州市宣汉县", + "达州市宣汉县": "四川省达州市宣汉县", + "四川达州市开江县": "四川省达州市开江县", + "达州市开江县": "四川省达州市开江县", + "四川达州市大竹县": "四川省达州市大竹县", + "达州市大竹县": "四川省达州市大竹县", + "四川达州市渠县": "四川省达州市渠县", + "达州市渠县": "四川省达州市渠县", + "四川达州市万源市": "四川省达州市万源市", + "达州市万源市": "四川省达州市万源市", + "四川雅安市雨城区": "四川省雅安市雨城区", + "雅安市雨城区": "四川省雅安市雨城区", + "四川雅安市名山区": "四川省雅安市名山区", + "雅安市名山区": "四川省雅安市名山区", + "四川雅安市荥经县": "四川省雅安市荥经县", + "雅安市荥经县": "四川省雅安市荥经县", + "四川雅安市汉源县": "四川省雅安市汉源县", + "雅安市汉源县": "四川省雅安市汉源县", + "四川雅安市石棉县": "四川省雅安市石棉县", + "雅安市石棉县": "四川省雅安市石棉县", + "四川雅安市天全县": "四川省雅安市天全县", + "雅安市天全县": "四川省雅安市天全县", + "四川雅安市芦山县": "四川省雅安市芦山县", + "雅安市芦山县": "四川省雅安市芦山县", + "四川雅安市宝兴县": "四川省雅安市宝兴县", + "雅安市宝兴县": "四川省雅安市宝兴县", + "四川巴中市巴州区": "四川省巴中市巴州区", + "巴中市巴州区": "四川省巴中市巴州区", + "四川巴中市恩阳区": "四川省巴中市恩阳区", + "巴中市恩阳区": "四川省巴中市恩阳区", + "四川巴中市通江县": "四川省巴中市通江县", + "巴中市通江县": "四川省巴中市通江县", + "四川巴中市南江县": "四川省巴中市南江县", + "巴中市南江县": "四川省巴中市南江县", + "四川巴中市平昌县": "四川省巴中市平昌县", + "巴中市平昌县": "四川省巴中市平昌县", + "四川资阳市雁江区": "四川省资阳市雁江区", + "资阳市雁江区": "四川省资阳市雁江区", + "四川资阳市安岳县": "四川省资阳市安岳县", + "资阳市安岳县": "四川省资阳市安岳县", + "四川资阳市乐至县": "四川省资阳市乐至县", + "资阳市乐至县": "四川省资阳市乐至县", + "四川阿坝藏族羌族自治州马尔康市": "四川省阿坝藏族羌族自治州马尔康市", + "阿坝藏族羌族自治州马尔康市": "四川省阿坝藏族羌族自治州马尔康市", + "四川阿坝藏族羌族自治州汶川县": "四川省阿坝藏族羌族自治州汶川县", + "阿坝藏族羌族自治州汶川县": "四川省阿坝藏族羌族自治州汶川县", + "四川阿坝藏族羌族自治州理县": "四川省阿坝藏族羌族自治州理县", + "阿坝藏族羌族自治州理县": "四川省阿坝藏族羌族自治州理县", + "四川阿坝藏族羌族自治州茂县": "四川省阿坝藏族羌族自治州茂县", + "阿坝藏族羌族自治州茂县": "四川省阿坝藏族羌族自治州茂县", + "四川阿坝藏族羌族自治州松潘县": "四川省阿坝藏族羌族自治州松潘县", + "阿坝藏族羌族自治州松潘县": "四川省阿坝藏族羌族自治州松潘县", + "四川阿坝藏族羌族自治州九寨沟县": "四川省阿坝藏族羌族自治州九寨沟县", + "阿坝藏族羌族自治州九寨沟县": "四川省阿坝藏族羌族自治州九寨沟县", + "四川阿坝藏族羌族自治州金川县": "四川省阿坝藏族羌族自治州金川县", + "阿坝藏族羌族自治州金川县": "四川省阿坝藏族羌族自治州金川县", + "四川阿坝藏族羌族自治州小金县": "四川省阿坝藏族羌族自治州小金县", + "阿坝藏族羌族自治州小金县": "四川省阿坝藏族羌族自治州小金县", + "四川阿坝藏族羌族自治州黑水县": "四川省阿坝藏族羌族自治州黑水县", + "阿坝藏族羌族自治州黑水县": "四川省阿坝藏族羌族自治州黑水县", + "四川阿坝藏族羌族自治州壤塘县": "四川省阿坝藏族羌族自治州壤塘县", + "阿坝藏族羌族自治州壤塘县": "四川省阿坝藏族羌族自治州壤塘县", + "四川阿坝藏族羌族自治州阿坝县": "四川省阿坝藏族羌族自治州阿坝县", + "阿坝藏族羌族自治州阿坝县": "四川省阿坝藏族羌族自治州阿坝县", + "四川阿坝藏族羌族自治州若尔盖县": "四川省阿坝藏族羌族自治州若尔盖县", + "阿坝藏族羌族自治州若尔盖县": "四川省阿坝藏族羌族自治州若尔盖县", + "四川阿坝藏族羌族自治州红原县": "四川省阿坝藏族羌族自治州红原县", + "阿坝藏族羌族自治州红原县": "四川省阿坝藏族羌族自治州红原县", + "四川甘孜藏族自治州康定市": "四川省甘孜藏族自治州康定市", + "甘孜藏族自治州康定市": "四川省甘孜藏族自治州康定市", + "四川甘孜藏族自治州泸定县": "四川省甘孜藏族自治州泸定县", + "甘孜藏族自治州泸定县": "四川省甘孜藏族自治州泸定县", + "四川甘孜藏族自治州丹巴县": "四川省甘孜藏族自治州丹巴县", + "甘孜藏族自治州丹巴县": "四川省甘孜藏族自治州丹巴县", + "四川甘孜藏族自治州九龙县": "四川省甘孜藏族自治州九龙县", + "甘孜藏族自治州九龙县": "四川省甘孜藏族自治州九龙县", + "四川甘孜藏族自治州雅江县": "四川省甘孜藏族自治州雅江县", + "甘孜藏族自治州雅江县": "四川省甘孜藏族自治州雅江县", + "四川甘孜藏族自治州道孚县": "四川省甘孜藏族自治州道孚县", + "甘孜藏族自治州道孚县": "四川省甘孜藏族自治州道孚县", + "四川甘孜藏族自治州炉霍县": "四川省甘孜藏族自治州炉霍县", + "甘孜藏族自治州炉霍县": "四川省甘孜藏族自治州炉霍县", + "四川甘孜藏族自治州甘孜县": "四川省甘孜藏族自治州甘孜县", + "甘孜藏族自治州甘孜县": "四川省甘孜藏族自治州甘孜县", + "四川甘孜藏族自治州新龙县": "四川省甘孜藏族自治州新龙县", + "甘孜藏族自治州新龙县": "四川省甘孜藏族自治州新龙县", + "四川甘孜藏族自治州德格县": "四川省甘孜藏族自治州德格县", + "甘孜藏族自治州德格县": "四川省甘孜藏族自治州德格县", + "四川甘孜藏族自治州白玉县": "四川省甘孜藏族自治州白玉县", + "甘孜藏族自治州白玉县": "四川省甘孜藏族自治州白玉县", + "四川甘孜藏族自治州石渠县": "四川省甘孜藏族自治州石渠县", + "甘孜藏族自治州石渠县": "四川省甘孜藏族自治州石渠县", + "四川甘孜藏族自治州色达县": "四川省甘孜藏族自治州色达县", + "甘孜藏族自治州色达县": "四川省甘孜藏族自治州色达县", + "四川甘孜藏族自治州理塘县": "四川省甘孜藏族自治州理塘县", + "甘孜藏族自治州理塘县": "四川省甘孜藏族自治州理塘县", + "四川甘孜藏族自治州巴塘县": "四川省甘孜藏族自治州巴塘县", + "甘孜藏族自治州巴塘县": "四川省甘孜藏族自治州巴塘县", + "四川甘孜藏族自治州乡城县": "四川省甘孜藏族自治州乡城县", + "甘孜藏族自治州乡城县": "四川省甘孜藏族自治州乡城县", + "四川甘孜藏族自治州稻城县": "四川省甘孜藏族自治州稻城县", + "甘孜藏族自治州稻城县": "四川省甘孜藏族自治州稻城县", + "四川甘孜藏族自治州得荣县": "四川省甘孜藏族自治州得荣县", + "甘孜藏族自治州得荣县": "四川省甘孜藏族自治州得荣县", + "四川凉山彝族自治州西昌市": "四川省凉山彝族自治州西昌市", + "凉山彝族自治州西昌市": "四川省凉山彝族自治州西昌市", + "四川凉山彝族自治州木里藏族自治县": "四川省凉山彝族自治州木里藏族自治县", + "凉山彝族自治州木里藏族自治县": "四川省凉山彝族自治州木里藏族自治县", + "四川凉山彝族自治州盐源县": "四川省凉山彝族自治州盐源县", + "凉山彝族自治州盐源县": "四川省凉山彝族自治州盐源县", + "四川凉山彝族自治州德昌县": "四川省凉山彝族自治州德昌县", + "凉山彝族自治州德昌县": "四川省凉山彝族自治州德昌县", + "四川凉山彝族自治州会理市": "四川省凉山彝族自治州会理市", + "凉山彝族自治州会理市": "四川省凉山彝族自治州会理市", + "四川凉山彝族自治州会东县": "四川省凉山彝族自治州会东县", + "凉山彝族自治州会东县": "四川省凉山彝族自治州会东县", + "四川凉山彝族自治州宁南县": "四川省凉山彝族自治州宁南县", + "凉山彝族自治州宁南县": "四川省凉山彝族自治州宁南县", + "四川凉山彝族自治州普格县": "四川省凉山彝族自治州普格县", + "凉山彝族自治州普格县": "四川省凉山彝族自治州普格县", + "四川凉山彝族自治州布拖县": "四川省凉山彝族自治州布拖县", + "凉山彝族自治州布拖县": "四川省凉山彝族自治州布拖县", + "四川凉山彝族自治州金阳县": "四川省凉山彝族自治州金阳县", + "凉山彝族自治州金阳县": "四川省凉山彝族自治州金阳县", + "四川凉山彝族自治州昭觉县": "四川省凉山彝族自治州昭觉县", + "凉山彝族自治州昭觉县": "四川省凉山彝族自治州昭觉县", + "四川凉山彝族自治州喜德县": "四川省凉山彝族自治州喜德县", + "凉山彝族自治州喜德县": "四川省凉山彝族自治州喜德县", + "四川凉山彝族自治州冕宁县": "四川省凉山彝族自治州冕宁县", + "凉山彝族自治州冕宁县": "四川省凉山彝族自治州冕宁县", + "四川凉山彝族自治州越西县": "四川省凉山彝族自治州越西县", + "凉山彝族自治州越西县": "四川省凉山彝族自治州越西县", + "四川凉山彝族自治州甘洛县": "四川省凉山彝族自治州甘洛县", + "凉山彝族自治州甘洛县": "四川省凉山彝族自治州甘洛县", + "四川凉山彝族自治州美姑县": "四川省凉山彝族自治州美姑县", + "凉山彝族自治州美姑县": "四川省凉山彝族自治州美姑县", + "四川凉山彝族自治州雷波县": "四川省凉山彝族自治州雷波县", + "凉山彝族自治州雷波县": "四川省凉山彝族自治州雷波县", + "贵州贵阳市南明区": "贵州省贵阳市南明区", + "贵阳市南明区": "贵州省贵阳市南明区", + "贵州贵阳市云岩区": "贵州省贵阳市云岩区", + "贵阳市云岩区": "贵州省贵阳市云岩区", + "贵州贵阳市花溪区": "贵州省贵阳市花溪区", + "贵阳市花溪区": "贵州省贵阳市花溪区", + "贵州贵阳市乌当区": "贵州省贵阳市乌当区", + "贵阳市乌当区": "贵州省贵阳市乌当区", + "贵州贵阳市白云区": "贵州省贵阳市白云区", + "贵阳市白云区": "贵州省贵阳市白云区", + "贵州贵阳市观山湖区": "贵州省贵阳市观山湖区", + "贵阳市观山湖区": "贵州省贵阳市观山湖区", + "贵州贵阳市开阳县": "贵州省贵阳市开阳县", + "贵阳市开阳县": "贵州省贵阳市开阳县", + "贵州贵阳市息烽县": "贵州省贵阳市息烽县", + "贵阳市息烽县": "贵州省贵阳市息烽县", + "贵州贵阳市修文县": "贵州省贵阳市修文县", + "贵阳市修文县": "贵州省贵阳市修文县", + "贵州贵阳市清镇市": "贵州省贵阳市清镇市", + "贵阳市清镇市": "贵州省贵阳市清镇市", + "贵州六盘水市钟山区": "贵州省六盘水市钟山区", + "六盘水市钟山区": "贵州省六盘水市钟山区", + "贵州六盘水市六枝特区": "贵州省六盘水市六枝特区", + "六盘水市六枝特区": "贵州省六盘水市六枝特区", + "贵州六盘水市水城区": "贵州省六盘水市水城区", + "六盘水市水城区": "贵州省六盘水市水城区", + "贵州六盘水市盘州市": "贵州省六盘水市盘州市", + "六盘水市盘州市": "贵州省六盘水市盘州市", + "贵州遵义市红花岗区": "贵州省遵义市红花岗区", + "遵义市红花岗区": "贵州省遵义市红花岗区", + "贵州遵义市汇川区": "贵州省遵义市汇川区", + "遵义市汇川区": "贵州省遵义市汇川区", + "贵州遵义市播州区": "贵州省遵义市播州区", + "遵义市播州区": "贵州省遵义市播州区", + "贵州遵义市桐梓县": "贵州省遵义市桐梓县", + "遵义市桐梓县": "贵州省遵义市桐梓县", + "贵州遵义市绥阳县": "贵州省遵义市绥阳县", + "遵义市绥阳县": "贵州省遵义市绥阳县", + "贵州遵义市正安县": "贵州省遵义市正安县", + "遵义市正安县": "贵州省遵义市正安县", + "贵州遵义市道真仡佬族苗族自治县": "贵州省遵义市道真仡佬族苗族自治县", + "遵义市道真仡佬族苗族自治县": "贵州省遵义市道真仡佬族苗族自治县", + "贵州遵义市务川仡佬族苗族自治县": "贵州省遵义市务川仡佬族苗族自治县", + "遵义市务川仡佬族苗族自治县": "贵州省遵义市务川仡佬族苗族自治县", + "贵州遵义市凤冈县": "贵州省遵义市凤冈县", + "遵义市凤冈县": "贵州省遵义市凤冈县", + "贵州遵义市湄潭县": "贵州省遵义市湄潭县", + "遵义市湄潭县": "贵州省遵义市湄潭县", + "贵州遵义市余庆县": "贵州省遵义市余庆县", + "遵义市余庆县": "贵州省遵义市余庆县", + "贵州遵义市习水县": "贵州省遵义市习水县", + "遵义市习水县": "贵州省遵义市习水县", + "贵州遵义市赤水市": "贵州省遵义市赤水市", + "遵义市赤水市": "贵州省遵义市赤水市", + "贵州遵义市仁怀市": "贵州省遵义市仁怀市", + "遵义市仁怀市": "贵州省遵义市仁怀市", + "贵州安顺市西秀区": "贵州省安顺市西秀区", + "安顺市西秀区": "贵州省安顺市西秀区", + "贵州安顺市平坝区": "贵州省安顺市平坝区", + "安顺市平坝区": "贵州省安顺市平坝区", + "贵州安顺市普定县": "贵州省安顺市普定县", + "安顺市普定县": "贵州省安顺市普定县", + "贵州安顺市镇宁布依族苗族自治县": "贵州省安顺市镇宁布依族苗族自治县", + "安顺市镇宁布依族苗族自治县": "贵州省安顺市镇宁布依族苗族自治县", + "贵州安顺市关岭布依族苗族自治县": "贵州省安顺市关岭布依族苗族自治县", + "安顺市关岭布依族苗族自治县": "贵州省安顺市关岭布依族苗族自治县", + "贵州安顺市紫云苗族布依族自治县": "贵州省安顺市紫云苗族布依族自治县", + "安顺市紫云苗族布依族自治县": "贵州省安顺市紫云苗族布依族自治县", + "贵州毕节市七星关区": "贵州省毕节市七星关区", + "毕节市七星关区": "贵州省毕节市七星关区", + "贵州毕节市大方县": "贵州省毕节市大方县", + "毕节市大方县": "贵州省毕节市大方县", + "贵州毕节市黔西市": "贵州省毕节市黔西市", + "毕节市黔西市": "贵州省毕节市黔西市", + "贵州毕节市金沙县": "贵州省毕节市金沙县", + "毕节市金沙县": "贵州省毕节市金沙县", + "贵州毕节市织金县": "贵州省毕节市织金县", + "毕节市织金县": "贵州省毕节市织金县", + "贵州毕节市纳雍县": "贵州省毕节市纳雍县", + "毕节市纳雍县": "贵州省毕节市纳雍县", + "贵州毕节市威宁彝族回族苗族自治县": "贵州省毕节市威宁彝族回族苗族自治县", + "毕节市威宁彝族回族苗族自治县": "贵州省毕节市威宁彝族回族苗族自治县", + "贵州毕节市赫章县": "贵州省毕节市赫章县", + "毕节市赫章县": "贵州省毕节市赫章县", + "贵州铜仁市碧江区": "贵州省铜仁市碧江区", + "铜仁市碧江区": "贵州省铜仁市碧江区", + "贵州铜仁市万山区": "贵州省铜仁市万山区", + "铜仁市万山区": "贵州省铜仁市万山区", + "贵州铜仁市江口县": "贵州省铜仁市江口县", + "铜仁市江口县": "贵州省铜仁市江口县", + "贵州铜仁市玉屏侗族自治县": "贵州省铜仁市玉屏侗族自治县", + "铜仁市玉屏侗族自治县": "贵州省铜仁市玉屏侗族自治县", + "贵州铜仁市石阡县": "贵州省铜仁市石阡县", + "铜仁市石阡县": "贵州省铜仁市石阡县", + "贵州铜仁市思南县": "贵州省铜仁市思南县", + "铜仁市思南县": "贵州省铜仁市思南县", + "贵州铜仁市印江土家族苗族自治县": "贵州省铜仁市印江土家族苗族自治县", + "铜仁市印江土家族苗族自治县": "贵州省铜仁市印江土家族苗族自治县", + "贵州铜仁市德江县": "贵州省铜仁市德江县", + "铜仁市德江县": "贵州省铜仁市德江县", + "贵州铜仁市沿河土家族自治县": "贵州省铜仁市沿河土家族自治县", + "铜仁市沿河土家族自治县": "贵州省铜仁市沿河土家族自治县", + "贵州铜仁市松桃苗族自治县": "贵州省铜仁市松桃苗族自治县", + "铜仁市松桃苗族自治县": "贵州省铜仁市松桃苗族自治县", + "贵州黔西南布依族苗族自治州兴义市": "贵州省黔西南布依族苗族自治州兴义市", + "黔西南布依族苗族自治州兴义市": "贵州省黔西南布依族苗族自治州兴义市", + "贵州黔西南布依族苗族自治州兴仁市": "贵州省黔西南布依族苗族自治州兴仁市", + "黔西南布依族苗族自治州兴仁市": "贵州省黔西南布依族苗族自治州兴仁市", + "贵州黔西南布依族苗族自治州普安县": "贵州省黔西南布依族苗族自治州普安县", + "黔西南布依族苗族自治州普安县": "贵州省黔西南布依族苗族自治州普安县", + "贵州黔西南布依族苗族自治州晴隆县": "贵州省黔西南布依族苗族自治州晴隆县", + "黔西南布依族苗族自治州晴隆县": "贵州省黔西南布依族苗族自治州晴隆县", + "贵州黔西南布依族苗族自治州贞丰县": "贵州省黔西南布依族苗族自治州贞丰县", + "黔西南布依族苗族自治州贞丰县": "贵州省黔西南布依族苗族自治州贞丰县", + "贵州黔西南布依族苗族自治州望谟县": "贵州省黔西南布依族苗族自治州望谟县", + "黔西南布依族苗族自治州望谟县": "贵州省黔西南布依族苗族自治州望谟县", + "贵州黔西南布依族苗族自治州册亨县": "贵州省黔西南布依族苗族自治州册亨县", + "黔西南布依族苗族自治州册亨县": "贵州省黔西南布依族苗族自治州册亨县", + "贵州黔西南布依族苗族自治州安龙县": "贵州省黔西南布依族苗族自治州安龙县", + "黔西南布依族苗族自治州安龙县": "贵州省黔西南布依族苗族自治州安龙县", + "贵州黔东南苗族侗族自治州凯里市": "贵州省黔东南苗族侗族自治州凯里市", + "黔东南苗族侗族自治州凯里市": "贵州省黔东南苗族侗族自治州凯里市", + "贵州黔东南苗族侗族自治州黄平县": "贵州省黔东南苗族侗族自治州黄平县", + "黔东南苗族侗族自治州黄平县": "贵州省黔东南苗族侗族自治州黄平县", + "贵州黔东南苗族侗族自治州施秉县": "贵州省黔东南苗族侗族自治州施秉县", + "黔东南苗族侗族自治州施秉县": "贵州省黔东南苗族侗族自治州施秉县", + "贵州黔东南苗族侗族自治州三穗县": "贵州省黔东南苗族侗族自治州三穗县", + "黔东南苗族侗族自治州三穗县": "贵州省黔东南苗族侗族自治州三穗县", + "贵州黔东南苗族侗族自治州镇远县": "贵州省黔东南苗族侗族自治州镇远县", + "黔东南苗族侗族自治州镇远县": "贵州省黔东南苗族侗族自治州镇远县", + "贵州黔东南苗族侗族自治州岑巩县": "贵州省黔东南苗族侗族自治州岑巩县", + "黔东南苗族侗族自治州岑巩县": "贵州省黔东南苗族侗族自治州岑巩县", + "贵州黔东南苗族侗族自治州天柱县": "贵州省黔东南苗族侗族自治州天柱县", + "黔东南苗族侗族自治州天柱县": "贵州省黔东南苗族侗族自治州天柱县", + "贵州黔东南苗族侗族自治州锦屏县": "贵州省黔东南苗族侗族自治州锦屏县", + "黔东南苗族侗族自治州锦屏县": "贵州省黔东南苗族侗族自治州锦屏县", + "贵州黔东南苗族侗族自治州剑河县": "贵州省黔东南苗族侗族自治州剑河县", + "黔东南苗族侗族自治州剑河县": "贵州省黔东南苗族侗族自治州剑河县", + "贵州黔东南苗族侗族自治州台江县": "贵州省黔东南苗族侗族自治州台江县", + "黔东南苗族侗族自治州台江县": "贵州省黔东南苗族侗族自治州台江县", + "贵州黔东南苗族侗族自治州黎平县": "贵州省黔东南苗族侗族自治州黎平县", + "黔东南苗族侗族自治州黎平县": "贵州省黔东南苗族侗族自治州黎平县", + "贵州黔东南苗族侗族自治州榕江县": "贵州省黔东南苗族侗族自治州榕江县", + "黔东南苗族侗族自治州榕江县": "贵州省黔东南苗族侗族自治州榕江县", + "贵州黔东南苗族侗族自治州从江县": "贵州省黔东南苗族侗族自治州从江县", + "黔东南苗族侗族自治州从江县": "贵州省黔东南苗族侗族自治州从江县", + "贵州黔东南苗族侗族自治州雷山县": "贵州省黔东南苗族侗族自治州雷山县", + "黔东南苗族侗族自治州雷山县": "贵州省黔东南苗族侗族自治州雷山县", + "贵州黔东南苗族侗族自治州麻江县": "贵州省黔东南苗族侗族自治州麻江县", + "黔东南苗族侗族自治州麻江县": "贵州省黔东南苗族侗族自治州麻江县", + "贵州黔东南苗族侗族自治州丹寨县": "贵州省黔东南苗族侗族自治州丹寨县", + "黔东南苗族侗族自治州丹寨县": "贵州省黔东南苗族侗族自治州丹寨县", + "贵州黔南布依族苗族自治州都匀市": "贵州省黔南布依族苗族自治州都匀市", + "黔南布依族苗族自治州都匀市": "贵州省黔南布依族苗族自治州都匀市", + "贵州黔南布依族苗族自治州福泉市": "贵州省黔南布依族苗族自治州福泉市", + "黔南布依族苗族自治州福泉市": "贵州省黔南布依族苗族自治州福泉市", + "贵州黔南布依族苗族自治州荔波县": "贵州省黔南布依族苗族自治州荔波县", + "黔南布依族苗族自治州荔波县": "贵州省黔南布依族苗族自治州荔波县", + "贵州黔南布依族苗族自治州贵定县": "贵州省黔南布依族苗族自治州贵定县", + "黔南布依族苗族自治州贵定县": "贵州省黔南布依族苗族自治州贵定县", + "贵州黔南布依族苗族自治州瓮安县": "贵州省黔南布依族苗族自治州瓮安县", + "黔南布依族苗族自治州瓮安县": "贵州省黔南布依族苗族自治州瓮安县", + "贵州黔南布依族苗族自治州独山县": "贵州省黔南布依族苗族自治州独山县", + "黔南布依族苗族自治州独山县": "贵州省黔南布依族苗族自治州独山县", + "贵州黔南布依族苗族自治州平塘县": "贵州省黔南布依族苗族自治州平塘县", + "黔南布依族苗族自治州平塘县": "贵州省黔南布依族苗族自治州平塘县", + "贵州黔南布依族苗族自治州罗甸县": "贵州省黔南布依族苗族自治州罗甸县", + "黔南布依族苗族自治州罗甸县": "贵州省黔南布依族苗族自治州罗甸县", + "贵州黔南布依族苗族自治州长顺县": "贵州省黔南布依族苗族自治州长顺县", + "黔南布依族苗族自治州长顺县": "贵州省黔南布依族苗族自治州长顺县", + "贵州黔南布依族苗族自治州龙里县": "贵州省黔南布依族苗族自治州龙里县", + "黔南布依族苗族自治州龙里县": "贵州省黔南布依族苗族自治州龙里县", + "贵州黔南布依族苗族自治州惠水县": "贵州省黔南布依族苗族自治州惠水县", + "黔南布依族苗族自治州惠水县": "贵州省黔南布依族苗族自治州惠水县", + "贵州黔南布依族苗族自治州三都水族自治县": "贵州省黔南布依族苗族自治州三都水族自治县", + "黔南布依族苗族自治州三都水族自治县": "贵州省黔南布依族苗族自治州三都水族自治县", + "云南昆明市五华区": "云南省昆明市五华区", + "昆明市五华区": "云南省昆明市五华区", + "云南昆明市盘龙区": "云南省昆明市盘龙区", + "昆明市盘龙区": "云南省昆明市盘龙区", + "云南昆明市官渡区": "云南省昆明市官渡区", + "昆明市官渡区": "云南省昆明市官渡区", + "云南昆明市西山区": "云南省昆明市西山区", + "昆明市西山区": "云南省昆明市西山区", + "云南昆明市东川区": "云南省昆明市东川区", + "昆明市东川区": "云南省昆明市东川区", + "云南昆明市呈贡区": "云南省昆明市呈贡区", + "昆明市呈贡区": "云南省昆明市呈贡区", + "云南昆明市晋宁区": "云南省昆明市晋宁区", + "昆明市晋宁区": "云南省昆明市晋宁区", + "云南昆明市富民县": "云南省昆明市富民县", + "昆明市富民县": "云南省昆明市富民县", + "云南昆明市宜良县": "云南省昆明市宜良县", + "昆明市宜良县": "云南省昆明市宜良县", + "云南昆明市石林彝族自治县": "云南省昆明市石林彝族自治县", + "昆明市石林彝族自治县": "云南省昆明市石林彝族自治县", + "云南昆明市嵩明县": "云南省昆明市嵩明县", + "昆明市嵩明县": "云南省昆明市嵩明县", + "云南昆明市禄劝彝族苗族自治县": "云南省昆明市禄劝彝族苗族自治县", + "昆明市禄劝彝族苗族自治县": "云南省昆明市禄劝彝族苗族自治县", + "云南昆明市寻甸回族彝族自治县": "云南省昆明市寻甸回族彝族自治县", + "昆明市寻甸回族彝族自治县": "云南省昆明市寻甸回族彝族自治县", + "云南昆明市安宁市": "云南省昆明市安宁市", + "昆明市安宁市": "云南省昆明市安宁市", + "云南曲靖市麒麟区": "云南省曲靖市麒麟区", + "曲靖市麒麟区": "云南省曲靖市麒麟区", + "云南曲靖市沾益区": "云南省曲靖市沾益区", + "曲靖市沾益区": "云南省曲靖市沾益区", + "云南曲靖市马龙区": "云南省曲靖市马龙区", + "曲靖市马龙区": "云南省曲靖市马龙区", + "云南曲靖市陆良县": "云南省曲靖市陆良县", + "曲靖市陆良县": "云南省曲靖市陆良县", + "云南曲靖市师宗县": "云南省曲靖市师宗县", + "曲靖市师宗县": "云南省曲靖市师宗县", + "云南曲靖市罗平县": "云南省曲靖市罗平县", + "曲靖市罗平县": "云南省曲靖市罗平县", + "云南曲靖市富源县": "云南省曲靖市富源县", + "曲靖市富源县": "云南省曲靖市富源县", + "云南曲靖市会泽县": "云南省曲靖市会泽县", + "曲靖市会泽县": "云南省曲靖市会泽县", + "云南曲靖市宣威市": "云南省曲靖市宣威市", + "曲靖市宣威市": "云南省曲靖市宣威市", + "云南玉溪市红塔区": "云南省玉溪市红塔区", + "玉溪市红塔区": "云南省玉溪市红塔区", + "云南玉溪市江川区": "云南省玉溪市江川区", + "玉溪市江川区": "云南省玉溪市江川区", + "云南玉溪市通海县": "云南省玉溪市通海县", + "玉溪市通海县": "云南省玉溪市通海县", + "云南玉溪市华宁县": "云南省玉溪市华宁县", + "玉溪市华宁县": "云南省玉溪市华宁县", + "云南玉溪市易门县": "云南省玉溪市易门县", + "玉溪市易门县": "云南省玉溪市易门县", + "云南玉溪市峨山彝族自治县": "云南省玉溪市峨山彝族自治县", + "玉溪市峨山彝族自治县": "云南省玉溪市峨山彝族自治县", + "云南玉溪市新平彝族傣族自治县": "云南省玉溪市新平彝族傣族自治县", + "玉溪市新平彝族傣族自治县": "云南省玉溪市新平彝族傣族自治县", + "云南玉溪市元江哈尼族彝族傣族自治县": "云南省玉溪市元江哈尼族彝族傣族自治县", + "玉溪市元江哈尼族彝族傣族自治县": "云南省玉溪市元江哈尼族彝族傣族自治县", + "云南玉溪市澄江市": "云南省玉溪市澄江市", + "玉溪市澄江市": "云南省玉溪市澄江市", + "云南保山市隆阳区": "云南省保山市隆阳区", + "保山市隆阳区": "云南省保山市隆阳区", + "云南保山市施甸县": "云南省保山市施甸县", + "保山市施甸县": "云南省保山市施甸县", + "云南保山市龙陵县": "云南省保山市龙陵县", + "保山市龙陵县": "云南省保山市龙陵县", + "云南保山市昌宁县": "云南省保山市昌宁县", + "保山市昌宁县": "云南省保山市昌宁县", + "云南保山市腾冲市": "云南省保山市腾冲市", + "保山市腾冲市": "云南省保山市腾冲市", + "云南昭通市昭阳区": "云南省昭通市昭阳区", + "昭通市昭阳区": "云南省昭通市昭阳区", + "云南昭通市鲁甸县": "云南省昭通市鲁甸县", + "昭通市鲁甸县": "云南省昭通市鲁甸县", + "云南昭通市巧家县": "云南省昭通市巧家县", + "昭通市巧家县": "云南省昭通市巧家县", + "云南昭通市盐津县": "云南省昭通市盐津县", + "昭通市盐津县": "云南省昭通市盐津县", + "云南昭通市大关县": "云南省昭通市大关县", + "昭通市大关县": "云南省昭通市大关县", + "云南昭通市永善县": "云南省昭通市永善县", + "昭通市永善县": "云南省昭通市永善县", + "云南昭通市绥江县": "云南省昭通市绥江县", + "昭通市绥江县": "云南省昭通市绥江县", + "云南昭通市镇雄县": "云南省昭通市镇雄县", + "昭通市镇雄县": "云南省昭通市镇雄县", + "云南昭通市彝良县": "云南省昭通市彝良县", + "昭通市彝良县": "云南省昭通市彝良县", + "云南昭通市威信县": "云南省昭通市威信县", + "昭通市威信县": "云南省昭通市威信县", + "云南昭通市水富市": "云南省昭通市水富市", + "昭通市水富市": "云南省昭通市水富市", + "云南丽江市古城区": "云南省丽江市古城区", + "丽江市古城区": "云南省丽江市古城区", + "云南丽江市玉龙纳西族自治县": "云南省丽江市玉龙纳西族自治县", + "丽江市玉龙纳西族自治县": "云南省丽江市玉龙纳西族自治县", + "云南丽江市永胜县": "云南省丽江市永胜县", + "丽江市永胜县": "云南省丽江市永胜县", + "云南丽江市华坪县": "云南省丽江市华坪县", + "丽江市华坪县": "云南省丽江市华坪县", + "云南丽江市宁蒗彝族自治县": "云南省丽江市宁蒗彝族自治县", + "丽江市宁蒗彝族自治县": "云南省丽江市宁蒗彝族自治县", + "云南普洱市思茅区": "云南省普洱市思茅区", + "普洱市思茅区": "云南省普洱市思茅区", + "云南普洱市宁洱哈尼族彝族自治县": "云南省普洱市宁洱哈尼族彝族自治县", + "普洱市宁洱哈尼族彝族自治县": "云南省普洱市宁洱哈尼族彝族自治县", + "云南普洱市墨江哈尼族自治县": "云南省普洱市墨江哈尼族自治县", + "普洱市墨江哈尼族自治县": "云南省普洱市墨江哈尼族自治县", + "云南普洱市景东彝族自治县": "云南省普洱市景东彝族自治县", + "普洱市景东彝族自治县": "云南省普洱市景东彝族自治县", + "云南普洱市景谷傣族彝族自治县": "云南省普洱市景谷傣族彝族自治县", + "普洱市景谷傣族彝族自治县": "云南省普洱市景谷傣族彝族自治县", + "云南普洱市镇沅彝族哈尼族拉祜族自治县": "云南省普洱市镇沅彝族哈尼族拉祜族自治县", + "普洱市镇沅彝族哈尼族拉祜族自治县": "云南省普洱市镇沅彝族哈尼族拉祜族自治县", + "云南普洱市江城哈尼族彝族自治县": "云南省普洱市江城哈尼族彝族自治县", + "普洱市江城哈尼族彝族自治县": "云南省普洱市江城哈尼族彝族自治县", + "云南普洱市孟连傣族拉祜族佤族自治县": "云南省普洱市孟连傣族拉祜族佤族自治县", + "普洱市孟连傣族拉祜族佤族自治县": "云南省普洱市孟连傣族拉祜族佤族自治县", + "云南普洱市澜沧拉祜族自治县": "云南省普洱市澜沧拉祜族自治县", + "普洱市澜沧拉祜族自治县": "云南省普洱市澜沧拉祜族自治县", + "云南普洱市西盟佤族自治县": "云南省普洱市西盟佤族自治县", + "普洱市西盟佤族自治县": "云南省普洱市西盟佤族自治县", + "云南临沧市临翔区": "云南省临沧市临翔区", + "临沧市临翔区": "云南省临沧市临翔区", + "云南临沧市凤庆县": "云南省临沧市凤庆县", + "临沧市凤庆县": "云南省临沧市凤庆县", + "云南临沧市云县": "云南省临沧市云县", + "临沧市云县": "云南省临沧市云县", + "云南临沧市永德县": "云南省临沧市永德县", + "临沧市永德县": "云南省临沧市永德县", + "云南临沧市镇康县": "云南省临沧市镇康县", + "临沧市镇康县": "云南省临沧市镇康县", + "云南临沧市双江拉祜族佤族布朗族傣族自治县": "云南省临沧市双江拉祜族佤族布朗族傣族自治县", + "临沧市双江拉祜族佤族布朗族傣族自治县": "云南省临沧市双江拉祜族佤族布朗族傣族自治县", + "云南临沧市耿马傣族佤族自治县": "云南省临沧市耿马傣族佤族自治县", + "临沧市耿马傣族佤族自治县": "云南省临沧市耿马傣族佤族自治县", + "云南临沧市沧源佤族自治县": "云南省临沧市沧源佤族自治县", + "临沧市沧源佤族自治县": "云南省临沧市沧源佤族自治县", + "云南楚雄彝族自治州楚雄市": "云南省楚雄彝族自治州楚雄市", + "楚雄彝族自治州楚雄市": "云南省楚雄彝族自治州楚雄市", + "云南楚雄彝族自治州双柏县": "云南省楚雄彝族自治州双柏县", + "楚雄彝族自治州双柏县": "云南省楚雄彝族自治州双柏县", + "云南楚雄彝族自治州牟定县": "云南省楚雄彝族自治州牟定县", + "楚雄彝族自治州牟定县": "云南省楚雄彝族自治州牟定县", + "云南楚雄彝族自治州南华县": "云南省楚雄彝族自治州南华县", + "楚雄彝族自治州南华县": "云南省楚雄彝族自治州南华县", + "云南楚雄彝族自治州姚安县": "云南省楚雄彝族自治州姚安县", + "楚雄彝族自治州姚安县": "云南省楚雄彝族自治州姚安县", + "云南楚雄彝族自治州大姚县": "云南省楚雄彝族自治州大姚县", + "楚雄彝族自治州大姚县": "云南省楚雄彝族自治州大姚县", + "云南楚雄彝族自治州永仁县": "云南省楚雄彝族自治州永仁县", + "楚雄彝族自治州永仁县": "云南省楚雄彝族自治州永仁县", + "云南楚雄彝族自治州元谋县": "云南省楚雄彝族自治州元谋县", + "楚雄彝族自治州元谋县": "云南省楚雄彝族自治州元谋县", + "云南楚雄彝族自治州武定县": "云南省楚雄彝族自治州武定县", + "楚雄彝族自治州武定县": "云南省楚雄彝族自治州武定县", + "云南楚雄彝族自治州禄丰市": "云南省楚雄彝族自治州禄丰市", + "楚雄彝族自治州禄丰市": "云南省楚雄彝族自治州禄丰市", + "云南红河哈尼族彝族自治州个旧市": "云南省红河哈尼族彝族自治州个旧市", + "红河哈尼族彝族自治州个旧市": "云南省红河哈尼族彝族自治州个旧市", + "云南红河哈尼族彝族自治州开远市": "云南省红河哈尼族彝族自治州开远市", + "红河哈尼族彝族自治州开远市": "云南省红河哈尼族彝族自治州开远市", + "云南红河哈尼族彝族自治州蒙自市": "云南省红河哈尼族彝族自治州蒙自市", + "红河哈尼族彝族自治州蒙自市": "云南省红河哈尼族彝族自治州蒙自市", + "云南红河哈尼族彝族自治州弥勒市": "云南省红河哈尼族彝族自治州弥勒市", + "红河哈尼族彝族自治州弥勒市": "云南省红河哈尼族彝族自治州弥勒市", + "云南红河哈尼族彝族自治州屏边苗族自治县": "云南省红河哈尼族彝族自治州屏边苗族自治县", + "红河哈尼族彝族自治州屏边苗族自治县": "云南省红河哈尼族彝族自治州屏边苗族自治县", + "云南红河哈尼族彝族自治州建水县": "云南省红河哈尼族彝族自治州建水县", + "红河哈尼族彝族自治州建水县": "云南省红河哈尼族彝族自治州建水县", + "云南红河哈尼族彝族自治州石屏县": "云南省红河哈尼族彝族自治州石屏县", + "红河哈尼族彝族自治州石屏县": "云南省红河哈尼族彝族自治州石屏县", + "云南红河哈尼族彝族自治州泸西县": "云南省红河哈尼族彝族自治州泸西县", + "红河哈尼族彝族自治州泸西县": "云南省红河哈尼族彝族自治州泸西县", + "云南红河哈尼族彝族自治州元阳县": "云南省红河哈尼族彝族自治州元阳县", + "红河哈尼族彝族自治州元阳县": "云南省红河哈尼族彝族自治州元阳县", + "云南红河哈尼族彝族自治州红河县": "云南省红河哈尼族彝族自治州红河县", + "红河哈尼族彝族自治州红河县": "云南省红河哈尼族彝族自治州红河县", + "云南红河哈尼族彝族自治州金平苗族瑶族傣族自治县": "云南省红河哈尼族彝族自治州金平苗族瑶族傣族自治县", + "红河哈尼族彝族自治州金平苗族瑶族傣族自治县": "云南省红河哈尼族彝族自治州金平苗族瑶族傣族自治县", + "云南红河哈尼族彝族自治州绿春县": "云南省红河哈尼族彝族自治州绿春县", + "红河哈尼族彝族自治州绿春县": "云南省红河哈尼族彝族自治州绿春县", + "云南红河哈尼族彝族自治州河口瑶族自治县": "云南省红河哈尼族彝族自治州河口瑶族自治县", + "红河哈尼族彝族自治州河口瑶族自治县": "云南省红河哈尼族彝族自治州河口瑶族自治县", + "云南文山壮族苗族自治州文山市": "云南省文山壮族苗族自治州文山市", + "文山壮族苗族自治州文山市": "云南省文山壮族苗族自治州文山市", + "云南文山壮族苗族自治州砚山县": "云南省文山壮族苗族自治州砚山县", + "文山壮族苗族自治州砚山县": "云南省文山壮族苗族自治州砚山县", + "云南文山壮族苗族自治州西畴县": "云南省文山壮族苗族自治州西畴县", + "文山壮族苗族自治州西畴县": "云南省文山壮族苗族自治州西畴县", + "云南文山壮族苗族自治州麻栗坡县": "云南省文山壮族苗族自治州麻栗坡县", + "文山壮族苗族自治州麻栗坡县": "云南省文山壮族苗族自治州麻栗坡县", + "云南文山壮族苗族自治州马关县": "云南省文山壮族苗族自治州马关县", + "文山壮族苗族自治州马关县": "云南省文山壮族苗族自治州马关县", + "云南文山壮族苗族自治州丘北县": "云南省文山壮族苗族自治州丘北县", + "文山壮族苗族自治州丘北县": "云南省文山壮族苗族自治州丘北县", + "云南文山壮族苗族自治州广南县": "云南省文山壮族苗族自治州广南县", + "文山壮族苗族自治州广南县": "云南省文山壮族苗族自治州广南县", + "云南文山壮族苗族自治州富宁县": "云南省文山壮族苗族自治州富宁县", + "文山壮族苗族自治州富宁县": "云南省文山壮族苗族自治州富宁县", + "云南西双版纳傣族自治州景洪市": "云南省西双版纳傣族自治州景洪市", + "西双版纳傣族自治州景洪市": "云南省西双版纳傣族自治州景洪市", + "云南西双版纳傣族自治州勐海县": "云南省西双版纳傣族自治州勐海县", + "西双版纳傣族自治州勐海县": "云南省西双版纳傣族自治州勐海县", + "云南西双版纳傣族自治州勐腊县": "云南省西双版纳傣族自治州勐腊县", + "西双版纳傣族自治州勐腊县": "云南省西双版纳傣族自治州勐腊县", + "云南大理白族自治州大理市": "云南省大理白族自治州大理市", + "大理白族自治州大理市": "云南省大理白族自治州大理市", + "云南大理白族自治州漾濞彝族自治县": "云南省大理白族自治州漾濞彝族自治县", + "大理白族自治州漾濞彝族自治县": "云南省大理白族自治州漾濞彝族自治县", + "云南大理白族自治州祥云县": "云南省大理白族自治州祥云县", + "大理白族自治州祥云县": "云南省大理白族自治州祥云县", + "云南大理白族自治州宾川县": "云南省大理白族自治州宾川县", + "大理白族自治州宾川县": "云南省大理白族自治州宾川县", + "云南大理白族自治州弥渡县": "云南省大理白族自治州弥渡县", + "大理白族自治州弥渡县": "云南省大理白族自治州弥渡县", + "云南大理白族自治州南涧彝族自治县": "云南省大理白族自治州南涧彝族自治县", + "大理白族自治州南涧彝族自治县": "云南省大理白族自治州南涧彝族自治县", + "云南大理白族自治州巍山彝族回族自治县": "云南省大理白族自治州巍山彝族回族自治县", + "大理白族自治州巍山彝族回族自治县": "云南省大理白族自治州巍山彝族回族自治县", + "云南大理白族自治州永平县": "云南省大理白族自治州永平县", + "大理白族自治州永平县": "云南省大理白族自治州永平县", + "云南大理白族自治州云龙县": "云南省大理白族自治州云龙县", + "大理白族自治州云龙县": "云南省大理白族自治州云龙县", + "云南大理白族自治州洱源县": "云南省大理白族自治州洱源县", + "大理白族自治州洱源县": "云南省大理白族自治州洱源县", + "云南大理白族自治州剑川县": "云南省大理白族自治州剑川县", + "大理白族自治州剑川县": "云南省大理白族自治州剑川县", + "云南大理白族自治州鹤庆县": "云南省大理白族自治州鹤庆县", + "大理白族自治州鹤庆县": "云南省大理白族自治州鹤庆县", + "云南德宏傣族景颇族自治州瑞丽市": "云南省德宏傣族景颇族自治州瑞丽市", + "德宏傣族景颇族自治州瑞丽市": "云南省德宏傣族景颇族自治州瑞丽市", + "云南德宏傣族景颇族自治州芒市": "云南省德宏傣族景颇族自治州芒市", + "德宏傣族景颇族自治州芒市": "云南省德宏傣族景颇族自治州芒市", + "云南德宏傣族景颇族自治州梁河县": "云南省德宏傣族景颇族自治州梁河县", + "德宏傣族景颇族自治州梁河县": "云南省德宏傣族景颇族自治州梁河县", + "云南德宏傣族景颇族自治州盈江县": "云南省德宏傣族景颇族自治州盈江县", + "德宏傣族景颇族自治州盈江县": "云南省德宏傣族景颇族自治州盈江县", + "云南德宏傣族景颇族自治州陇川县": "云南省德宏傣族景颇族自治州陇川县", + "德宏傣族景颇族自治州陇川县": "云南省德宏傣族景颇族自治州陇川县", + "云南怒江傈僳族自治州泸水市": "云南省怒江傈僳族自治州泸水市", + "怒江傈僳族自治州泸水市": "云南省怒江傈僳族自治州泸水市", + "云南怒江傈僳族自治州福贡县": "云南省怒江傈僳族自治州福贡县", + "怒江傈僳族自治州福贡县": "云南省怒江傈僳族自治州福贡县", + "云南怒江傈僳族自治州贡山独龙族怒族自治县": "云南省怒江傈僳族自治州贡山独龙族怒族自治县", + "怒江傈僳族自治州贡山独龙族怒族自治县": "云南省怒江傈僳族自治州贡山独龙族怒族自治县", + "云南怒江傈僳族自治州兰坪白族普米族自治县": "云南省怒江傈僳族自治州兰坪白族普米族自治县", + "怒江傈僳族自治州兰坪白族普米族自治县": "云南省怒江傈僳族自治州兰坪白族普米族自治县", + "云南迪庆藏族自治州香格里拉市": "云南省迪庆藏族自治州香格里拉市", + "迪庆藏族自治州香格里拉市": "云南省迪庆藏族自治州香格里拉市", + "云南迪庆藏族自治州德钦县": "云南省迪庆藏族自治州德钦县", + "迪庆藏族自治州德钦县": "云南省迪庆藏族自治州德钦县", + "云南迪庆藏族自治州维西傈僳族自治县": "云南省迪庆藏族自治州维西傈僳族自治县", + "迪庆藏族自治州维西傈僳族自治县": "云南省迪庆藏族自治州维西傈僳族自治县", + "西藏拉萨市城关区": "西藏自治区拉萨市城关区", + "拉萨市城关区": "西藏自治区拉萨市城关区", + "西藏拉萨市堆龙德庆区": "西藏自治区拉萨市堆龙德庆区", + "拉萨市堆龙德庆区": "西藏自治区拉萨市堆龙德庆区", + "西藏拉萨市达孜区": "西藏自治区拉萨市达孜区", + "拉萨市达孜区": "西藏自治区拉萨市达孜区", + "西藏拉萨市林周县": "西藏自治区拉萨市林周县", + "拉萨市林周县": "西藏自治区拉萨市林周县", + "西藏拉萨市当雄县": "西藏自治区拉萨市当雄县", + "拉萨市当雄县": "西藏自治区拉萨市当雄县", + "西藏拉萨市尼木县": "西藏自治区拉萨市尼木县", + "拉萨市尼木县": "西藏自治区拉萨市尼木县", + "西藏拉萨市曲水县": "西藏自治区拉萨市曲水县", + "拉萨市曲水县": "西藏自治区拉萨市曲水县", + "西藏拉萨市墨竹工卡县": "西藏自治区拉萨市墨竹工卡县", + "拉萨市墨竹工卡县": "西藏自治区拉萨市墨竹工卡县", + "西藏日喀则市桑珠孜区": "西藏自治区日喀则市桑珠孜区", + "日喀则市桑珠孜区": "西藏自治区日喀则市桑珠孜区", + "西藏日喀则市南木林县": "西藏自治区日喀则市南木林县", + "日喀则市南木林县": "西藏自治区日喀则市南木林县", + "西藏日喀则市江孜县": "西藏自治区日喀则市江孜县", + "日喀则市江孜县": "西藏自治区日喀则市江孜县", + "西藏日喀则市定日县": "西藏自治区日喀则市定日县", + "日喀则市定日县": "西藏自治区日喀则市定日县", + "西藏日喀则市萨迦县": "西藏自治区日喀则市萨迦县", + "日喀则市萨迦县": "西藏自治区日喀则市萨迦县", + "西藏日喀则市拉孜县": "西藏自治区日喀则市拉孜县", + "日喀则市拉孜县": "西藏自治区日喀则市拉孜县", + "西藏日喀则市昂仁县": "西藏自治区日喀则市昂仁县", + "日喀则市昂仁县": "西藏自治区日喀则市昂仁县", + "西藏日喀则市谢通门县": "西藏自治区日喀则市谢通门县", + "日喀则市谢通门县": "西藏自治区日喀则市谢通门县", + "西藏日喀则市白朗县": "西藏自治区日喀则市白朗县", + "日喀则市白朗县": "西藏自治区日喀则市白朗县", + "西藏日喀则市仁布县": "西藏自治区日喀则市仁布县", + "日喀则市仁布县": "西藏自治区日喀则市仁布县", + "西藏日喀则市康马县": "西藏自治区日喀则市康马县", + "日喀则市康马县": "西藏自治区日喀则市康马县", + "西藏日喀则市定结县": "西藏自治区日喀则市定结县", + "日喀则市定结县": "西藏自治区日喀则市定结县", + "西藏日喀则市仲巴县": "西藏自治区日喀则市仲巴县", + "日喀则市仲巴县": "西藏自治区日喀则市仲巴县", + "西藏日喀则市亚东县": "西藏自治区日喀则市亚东县", + "日喀则市亚东县": "西藏自治区日喀则市亚东县", + "西藏日喀则市吉隆县": "西藏自治区日喀则市吉隆县", + "日喀则市吉隆县": "西藏自治区日喀则市吉隆县", + "西藏日喀则市聂拉木县": "西藏自治区日喀则市聂拉木县", + "日喀则市聂拉木县": "西藏自治区日喀则市聂拉木县", + "西藏日喀则市萨嘎县": "西藏自治区日喀则市萨嘎县", + "日喀则市萨嘎县": "西藏自治区日喀则市萨嘎县", + "西藏日喀则市岗巴县": "西藏自治区日喀则市岗巴县", + "日喀则市岗巴县": "西藏自治区日喀则市岗巴县", + "西藏昌都市卡若区": "西藏自治区昌都市卡若区", + "昌都市卡若区": "西藏自治区昌都市卡若区", + "西藏昌都市江达县": "西藏自治区昌都市江达县", + "昌都市江达县": "西藏自治区昌都市江达县", + "西藏昌都市贡觉县": "西藏自治区昌都市贡觉县", + "昌都市贡觉县": "西藏自治区昌都市贡觉县", + "西藏昌都市类乌齐县": "西藏自治区昌都市类乌齐县", + "昌都市类乌齐县": "西藏自治区昌都市类乌齐县", + "西藏昌都市丁青县": "西藏自治区昌都市丁青县", + "昌都市丁青县": "西藏自治区昌都市丁青县", + "西藏昌都市察雅县": "西藏自治区昌都市察雅县", + "昌都市察雅县": "西藏自治区昌都市察雅县", + "西藏昌都市八宿县": "西藏自治区昌都市八宿县", + "昌都市八宿县": "西藏自治区昌都市八宿县", + "西藏昌都市左贡县": "西藏自治区昌都市左贡县", + "昌都市左贡县": "西藏自治区昌都市左贡县", + "西藏昌都市芒康县": "西藏自治区昌都市芒康县", + "昌都市芒康县": "西藏自治区昌都市芒康县", + "西藏昌都市洛隆县": "西藏自治区昌都市洛隆县", + "昌都市洛隆县": "西藏自治区昌都市洛隆县", + "西藏昌都市边坝县": "西藏自治区昌都市边坝县", + "昌都市边坝县": "西藏自治区昌都市边坝县", + "西藏林芝市巴宜区": "西藏自治区林芝市巴宜区", + "林芝市巴宜区": "西藏自治区林芝市巴宜区", + "西藏林芝市工布江达县": "西藏自治区林芝市工布江达县", + "林芝市工布江达县": "西藏自治区林芝市工布江达县", + "西藏林芝市米林县": "西藏自治区林芝市米林县", + "林芝市米林县": "西藏自治区林芝市米林县", + "西藏林芝市墨脱县": "西藏自治区林芝市墨脱县", + "林芝市墨脱县": "西藏自治区林芝市墨脱县", + "西藏林芝市波密县": "西藏自治区林芝市波密县", + "林芝市波密县": "西藏自治区林芝市波密县", + "西藏林芝市察隅县": "西藏自治区林芝市察隅县", + "林芝市察隅县": "西藏自治区林芝市察隅县", + "西藏林芝市朗县": "西藏自治区林芝市朗县", + "林芝市朗县": "西藏自治区林芝市朗县", + "西藏山南市乃东区": "西藏自治区山南市乃东区", + "山南市乃东区": "西藏自治区山南市乃东区", + "西藏山南市扎囊县": "西藏自治区山南市扎囊县", + "山南市扎囊县": "西藏自治区山南市扎囊县", + "西藏山南市贡嘎县": "西藏自治区山南市贡嘎县", + "山南市贡嘎县": "西藏自治区山南市贡嘎县", + "西藏山南市桑日县": "西藏自治区山南市桑日县", + "山南市桑日县": "西藏自治区山南市桑日县", + "西藏山南市琼结县": "西藏自治区山南市琼结县", + "山南市琼结县": "西藏自治区山南市琼结县", + "西藏山南市曲松县": "西藏自治区山南市曲松县", + "山南市曲松县": "西藏自治区山南市曲松县", + "西藏山南市措美县": "西藏自治区山南市措美县", + "山南市措美县": "西藏自治区山南市措美县", + "西藏山南市洛扎县": "西藏自治区山南市洛扎县", + "山南市洛扎县": "西藏自治区山南市洛扎县", + "西藏山南市加查县": "西藏自治区山南市加查县", + "山南市加查县": "西藏自治区山南市加查县", + "西藏山南市隆子县": "西藏自治区山南市隆子县", + "山南市隆子县": "西藏自治区山南市隆子县", + "西藏山南市错那县": "西藏自治区山南市错那县", + "山南市错那县": "西藏自治区山南市错那县", + "西藏山南市浪卡子县": "西藏自治区山南市浪卡子县", + "山南市浪卡子县": "西藏自治区山南市浪卡子县", + "西藏那曲市色尼区": "西藏自治区那曲市色尼区", + "那曲市色尼区": "西藏自治区那曲市色尼区", + "西藏那曲市嘉黎县": "西藏自治区那曲市嘉黎县", + "那曲市嘉黎县": "西藏自治区那曲市嘉黎县", + "西藏那曲市比如县": "西藏自治区那曲市比如县", + "那曲市比如县": "西藏自治区那曲市比如县", + "西藏那曲市聂荣县": "西藏自治区那曲市聂荣县", + "那曲市聂荣县": "西藏自治区那曲市聂荣县", + "西藏那曲市安多县": "西藏自治区那曲市安多县", + "那曲市安多县": "西藏自治区那曲市安多县", + "西藏那曲市申扎县": "西藏自治区那曲市申扎县", + "那曲市申扎县": "西藏自治区那曲市申扎县", + "西藏那曲市索县": "西藏自治区那曲市索县", + "那曲市索县": "西藏自治区那曲市索县", + "西藏那曲市班戈县": "西藏自治区那曲市班戈县", + "那曲市班戈县": "西藏自治区那曲市班戈县", + "西藏那曲市巴青县": "西藏自治区那曲市巴青县", + "那曲市巴青县": "西藏自治区那曲市巴青县", + "西藏那曲市尼玛县": "西藏自治区那曲市尼玛县", + "那曲市尼玛县": "西藏自治区那曲市尼玛县", + "西藏那曲市双湖县": "西藏自治区那曲市双湖县", + "那曲市双湖县": "西藏自治区那曲市双湖县", + "西藏阿里地区普兰县": "西藏自治区阿里地区普兰县", + "阿里地区普兰县": "西藏自治区阿里地区普兰县", + "西藏阿里地区札达县": "西藏自治区阿里地区札达县", + "阿里地区札达县": "西藏自治区阿里地区札达县", + "西藏阿里地区噶尔县": "西藏自治区阿里地区噶尔县", + "阿里地区噶尔县": "西藏自治区阿里地区噶尔县", + "西藏阿里地区日土县": "西藏自治区阿里地区日土县", + "阿里地区日土县": "西藏自治区阿里地区日土县", + "西藏阿里地区革吉县": "西藏自治区阿里地区革吉县", + "阿里地区革吉县": "西藏自治区阿里地区革吉县", + "西藏阿里地区改则县": "西藏自治区阿里地区改则县", + "阿里地区改则县": "西藏自治区阿里地区改则县", + "西藏阿里地区措勤县": "西藏自治区阿里地区措勤县", + "阿里地区措勤县": "西藏自治区阿里地区措勤县", + "陕西西安市新城区": "陕西省西安市新城区", + "西安市新城区": "陕西省西安市新城区", + "陕西西安市碑林区": "陕西省西安市碑林区", + "西安市碑林区": "陕西省西安市碑林区", + "陕西西安市莲湖区": "陕西省西安市莲湖区", + "西安市莲湖区": "陕西省西安市莲湖区", + "陕西西安市灞桥区": "陕西省西安市灞桥区", + "西安市灞桥区": "陕西省西安市灞桥区", + "陕西西安市未央区": "陕西省西安市未央区", + "西安市未央区": "陕西省西安市未央区", + "陕西西安市雁塔区": "陕西省西安市雁塔区", + "西安市雁塔区": "陕西省西安市雁塔区", + "陕西西安市阎良区": "陕西省西安市阎良区", + "西安市阎良区": "陕西省西安市阎良区", + "陕西西安市临潼区": "陕西省西安市临潼区", + "西安市临潼区": "陕西省西安市临潼区", + "陕西西安市长安区": "陕西省西安市长安区", + "西安市长安区": "陕西省西安市长安区", + "陕西西安市高陵区": "陕西省西安市高陵区", + "西安市高陵区": "陕西省西安市高陵区", + "陕西西安市鄠邑区": "陕西省西安市鄠邑区", + "西安市鄠邑区": "陕西省西安市鄠邑区", + "陕西西安市蓝田县": "陕西省西安市蓝田县", + "西安市蓝田县": "陕西省西安市蓝田县", + "陕西西安市周至县": "陕西省西安市周至县", + "西安市周至县": "陕西省西安市周至县", + "陕西铜川市王益区": "陕西省铜川市王益区", + "铜川市王益区": "陕西省铜川市王益区", + "陕西铜川市印台区": "陕西省铜川市印台区", + "铜川市印台区": "陕西省铜川市印台区", + "陕西铜川市耀州区": "陕西省铜川市耀州区", + "铜川市耀州区": "陕西省铜川市耀州区", + "陕西铜川市宜君县": "陕西省铜川市宜君县", + "铜川市宜君县": "陕西省铜川市宜君县", + "陕西宝鸡市渭滨区": "陕西省宝鸡市渭滨区", + "宝鸡市渭滨区": "陕西省宝鸡市渭滨区", + "陕西宝鸡市金台区": "陕西省宝鸡市金台区", + "宝鸡市金台区": "陕西省宝鸡市金台区", + "陕西宝鸡市陈仓区": "陕西省宝鸡市陈仓区", + "宝鸡市陈仓区": "陕西省宝鸡市陈仓区", + "陕西宝鸡市凤翔区": "陕西省宝鸡市凤翔区", + "宝鸡市凤翔区": "陕西省宝鸡市凤翔区", + "陕西宝鸡市岐山县": "陕西省宝鸡市岐山县", + "宝鸡市岐山县": "陕西省宝鸡市岐山县", + "陕西宝鸡市扶风县": "陕西省宝鸡市扶风县", + "宝鸡市扶风县": "陕西省宝鸡市扶风县", + "陕西宝鸡市眉县": "陕西省宝鸡市眉县", + "宝鸡市眉县": "陕西省宝鸡市眉县", + "陕西宝鸡市陇县": "陕西省宝鸡市陇县", + "宝鸡市陇县": "陕西省宝鸡市陇县", + "陕西宝鸡市千阳县": "陕西省宝鸡市千阳县", + "宝鸡市千阳县": "陕西省宝鸡市千阳县", + "陕西宝鸡市麟游县": "陕西省宝鸡市麟游县", + "宝鸡市麟游县": "陕西省宝鸡市麟游县", + "陕西宝鸡市凤县": "陕西省宝鸡市凤县", + "宝鸡市凤县": "陕西省宝鸡市凤县", + "陕西宝鸡市太白县": "陕西省宝鸡市太白县", + "宝鸡市太白县": "陕西省宝鸡市太白县", + "陕西咸阳市秦都区": "陕西省咸阳市秦都区", + "咸阳市秦都区": "陕西省咸阳市秦都区", + "陕西咸阳市杨陵区": "陕西省咸阳市杨陵区", + "咸阳市杨陵区": "陕西省咸阳市杨陵区", + "陕西咸阳市渭城区": "陕西省咸阳市渭城区", + "咸阳市渭城区": "陕西省咸阳市渭城区", + "陕西咸阳市三原县": "陕西省咸阳市三原县", + "咸阳市三原县": "陕西省咸阳市三原县", + "陕西咸阳市泾阳县": "陕西省咸阳市泾阳县", + "咸阳市泾阳县": "陕西省咸阳市泾阳县", + "陕西咸阳市乾县": "陕西省咸阳市乾县", + "咸阳市乾县": "陕西省咸阳市乾县", + "陕西咸阳市礼泉县": "陕西省咸阳市礼泉县", + "咸阳市礼泉县": "陕西省咸阳市礼泉县", + "陕西咸阳市永寿县": "陕西省咸阳市永寿县", + "咸阳市永寿县": "陕西省咸阳市永寿县", + "陕西咸阳市长武县": "陕西省咸阳市长武县", + "咸阳市长武县": "陕西省咸阳市长武县", + "陕西咸阳市旬邑县": "陕西省咸阳市旬邑县", + "咸阳市旬邑县": "陕西省咸阳市旬邑县", + "陕西咸阳市淳化县": "陕西省咸阳市淳化县", + "咸阳市淳化县": "陕西省咸阳市淳化县", + "陕西咸阳市武功县": "陕西省咸阳市武功县", + "咸阳市武功县": "陕西省咸阳市武功县", + "陕西咸阳市兴平市": "陕西省咸阳市兴平市", + "咸阳市兴平市": "陕西省咸阳市兴平市", + "陕西咸阳市彬州市": "陕西省咸阳市彬州市", + "咸阳市彬州市": "陕西省咸阳市彬州市", + "陕西渭南市临渭区": "陕西省渭南市临渭区", + "渭南市临渭区": "陕西省渭南市临渭区", + "陕西渭南市华州区": "陕西省渭南市华州区", + "渭南市华州区": "陕西省渭南市华州区", + "陕西渭南市潼关县": "陕西省渭南市潼关县", + "渭南市潼关县": "陕西省渭南市潼关县", + "陕西渭南市大荔县": "陕西省渭南市大荔县", + "渭南市大荔县": "陕西省渭南市大荔县", + "陕西渭南市合阳县": "陕西省渭南市合阳县", + "渭南市合阳县": "陕西省渭南市合阳县", + "陕西渭南市澄城县": "陕西省渭南市澄城县", + "渭南市澄城县": "陕西省渭南市澄城县", + "陕西渭南市蒲城县": "陕西省渭南市蒲城县", + "渭南市蒲城县": "陕西省渭南市蒲城县", + "陕西渭南市白水县": "陕西省渭南市白水县", + "渭南市白水县": "陕西省渭南市白水县", + "陕西渭南市富平县": "陕西省渭南市富平县", + "渭南市富平县": "陕西省渭南市富平县", + "陕西渭南市韩城市": "陕西省渭南市韩城市", + "渭南市韩城市": "陕西省渭南市韩城市", + "陕西渭南市华阴市": "陕西省渭南市华阴市", + "渭南市华阴市": "陕西省渭南市华阴市", + "陕西延安市宝塔区": "陕西省延安市宝塔区", + "延安市宝塔区": "陕西省延安市宝塔区", + "陕西延安市安塞区": "陕西省延安市安塞区", + "延安市安塞区": "陕西省延安市安塞区", + "陕西延安市延长县": "陕西省延安市延长县", + "延安市延长县": "陕西省延安市延长县", + "陕西延安市延川县": "陕西省延安市延川县", + "延安市延川县": "陕西省延安市延川县", + "陕西延安市志丹县": "陕西省延安市志丹县", + "延安市志丹县": "陕西省延安市志丹县", + "陕西延安市吴起县": "陕西省延安市吴起县", + "延安市吴起县": "陕西省延安市吴起县", + "陕西延安市甘泉县": "陕西省延安市甘泉县", + "延安市甘泉县": "陕西省延安市甘泉县", + "陕西延安市富县": "陕西省延安市富县", + "延安市富县": "陕西省延安市富县", + "陕西延安市洛川县": "陕西省延安市洛川县", + "延安市洛川县": "陕西省延安市洛川县", + "陕西延安市宜川县": "陕西省延安市宜川县", + "延安市宜川县": "陕西省延安市宜川县", + "陕西延安市黄龙县": "陕西省延安市黄龙县", + "延安市黄龙县": "陕西省延安市黄龙县", + "陕西延安市黄陵县": "陕西省延安市黄陵县", + "延安市黄陵县": "陕西省延安市黄陵县", + "陕西延安市子长市": "陕西省延安市子长市", + "延安市子长市": "陕西省延安市子长市", + "陕西汉中市汉台区": "陕西省汉中市汉台区", + "汉中市汉台区": "陕西省汉中市汉台区", + "陕西汉中市南郑区": "陕西省汉中市南郑区", + "汉中市南郑区": "陕西省汉中市南郑区", + "陕西汉中市城固县": "陕西省汉中市城固县", + "汉中市城固县": "陕西省汉中市城固县", + "陕西汉中市洋县": "陕西省汉中市洋县", + "汉中市洋县": "陕西省汉中市洋县", + "陕西汉中市西乡县": "陕西省汉中市西乡县", + "汉中市西乡县": "陕西省汉中市西乡县", + "陕西汉中市勉县": "陕西省汉中市勉县", + "汉中市勉县": "陕西省汉中市勉县", + "陕西汉中市宁强县": "陕西省汉中市宁强县", + "汉中市宁强县": "陕西省汉中市宁强县", + "陕西汉中市略阳县": "陕西省汉中市略阳县", + "汉中市略阳县": "陕西省汉中市略阳县", + "陕西汉中市镇巴县": "陕西省汉中市镇巴县", + "汉中市镇巴县": "陕西省汉中市镇巴县", + "陕西汉中市留坝县": "陕西省汉中市留坝县", + "汉中市留坝县": "陕西省汉中市留坝县", + "陕西汉中市佛坪县": "陕西省汉中市佛坪县", + "汉中市佛坪县": "陕西省汉中市佛坪县", + "陕西榆林市榆阳区": "陕西省榆林市榆阳区", + "榆林市榆阳区": "陕西省榆林市榆阳区", + "陕西榆林市横山区": "陕西省榆林市横山区", + "榆林市横山区": "陕西省榆林市横山区", + "陕西榆林市府谷县": "陕西省榆林市府谷县", + "榆林市府谷县": "陕西省榆林市府谷县", + "陕西榆林市靖边县": "陕西省榆林市靖边县", + "榆林市靖边县": "陕西省榆林市靖边县", + "陕西榆林市定边县": "陕西省榆林市定边县", + "榆林市定边县": "陕西省榆林市定边县", + "陕西榆林市绥德县": "陕西省榆林市绥德县", + "榆林市绥德县": "陕西省榆林市绥德县", + "陕西榆林市米脂县": "陕西省榆林市米脂县", + "榆林市米脂县": "陕西省榆林市米脂县", + "陕西榆林市佳县": "陕西省榆林市佳县", + "榆林市佳县": "陕西省榆林市佳县", + "陕西榆林市吴堡县": "陕西省榆林市吴堡县", + "榆林市吴堡县": "陕西省榆林市吴堡县", + "陕西榆林市清涧县": "陕西省榆林市清涧县", + "榆林市清涧县": "陕西省榆林市清涧县", + "陕西榆林市子洲县": "陕西省榆林市子洲县", + "榆林市子洲县": "陕西省榆林市子洲县", + "陕西榆林市神木市": "陕西省榆林市神木市", + "榆林市神木市": "陕西省榆林市神木市", + "陕西安康市汉滨区": "陕西省安康市汉滨区", + "安康市汉滨区": "陕西省安康市汉滨区", + "陕西安康市汉阴县": "陕西省安康市汉阴县", + "安康市汉阴县": "陕西省安康市汉阴县", + "陕西安康市石泉县": "陕西省安康市石泉县", + "安康市石泉县": "陕西省安康市石泉县", + "陕西安康市宁陕县": "陕西省安康市宁陕县", + "安康市宁陕县": "陕西省安康市宁陕县", + "陕西安康市紫阳县": "陕西省安康市紫阳县", + "安康市紫阳县": "陕西省安康市紫阳县", + "陕西安康市岚皋县": "陕西省安康市岚皋县", + "安康市岚皋县": "陕西省安康市岚皋县", + "陕西安康市平利县": "陕西省安康市平利县", + "安康市平利县": "陕西省安康市平利县", + "陕西安康市镇坪县": "陕西省安康市镇坪县", + "安康市镇坪县": "陕西省安康市镇坪县", + "陕西安康市旬阳市": "陕西省安康市旬阳市", + "安康市旬阳市": "陕西省安康市旬阳市", + "陕西安康市白河县": "陕西省安康市白河县", + "安康市白河县": "陕西省安康市白河县", + "陕西商洛市商州区": "陕西省商洛市商州区", + "商洛市商州区": "陕西省商洛市商州区", + "陕西商洛市洛南县": "陕西省商洛市洛南县", + "商洛市洛南县": "陕西省商洛市洛南县", + "陕西商洛市丹凤县": "陕西省商洛市丹凤县", + "商洛市丹凤县": "陕西省商洛市丹凤县", + "陕西商洛市商南县": "陕西省商洛市商南县", + "商洛市商南县": "陕西省商洛市商南县", + "陕西商洛市山阳县": "陕西省商洛市山阳县", + "商洛市山阳县": "陕西省商洛市山阳县", + "陕西商洛市镇安县": "陕西省商洛市镇安县", + "商洛市镇安县": "陕西省商洛市镇安县", + "陕西商洛市柞水县": "陕西省商洛市柞水县", + "商洛市柞水县": "陕西省商洛市柞水县", + "甘肃兰州市城关区": "甘肃省兰州市城关区", + "兰州市城关区": "甘肃省兰州市城关区", + "甘肃兰州市七里河区": "甘肃省兰州市七里河区", + "兰州市七里河区": "甘肃省兰州市七里河区", + "甘肃兰州市西固区": "甘肃省兰州市西固区", + "兰州市西固区": "甘肃省兰州市西固区", + "甘肃兰州市安宁区": "甘肃省兰州市安宁区", + "兰州市安宁区": "甘肃省兰州市安宁区", + "甘肃兰州市红古区": "甘肃省兰州市红古区", + "兰州市红古区": "甘肃省兰州市红古区", + "甘肃兰州市永登县": "甘肃省兰州市永登县", + "兰州市永登县": "甘肃省兰州市永登县", + "甘肃兰州市皋兰县": "甘肃省兰州市皋兰县", + "兰州市皋兰县": "甘肃省兰州市皋兰县", + "甘肃兰州市榆中县": "甘肃省兰州市榆中县", + "兰州市榆中县": "甘肃省兰州市榆中县", + "甘肃嘉峪关市": "甘肃省嘉峪关市", + "甘肃金昌市金川区": "甘肃省金昌市金川区", + "金昌市金川区": "甘肃省金昌市金川区", + "甘肃金昌市永昌县": "甘肃省金昌市永昌县", + "金昌市永昌县": "甘肃省金昌市永昌县", + "甘肃白银市白银区": "甘肃省白银市白银区", + "白银市白银区": "甘肃省白银市白银区", + "甘肃白银市平川区": "甘肃省白银市平川区", + "白银市平川区": "甘肃省白银市平川区", + "甘肃白银市靖远县": "甘肃省白银市靖远县", + "白银市靖远县": "甘肃省白银市靖远县", + "甘肃白银市会宁县": "甘肃省白银市会宁县", + "白银市会宁县": "甘肃省白银市会宁县", + "甘肃白银市景泰县": "甘肃省白银市景泰县", + "白银市景泰县": "甘肃省白银市景泰县", + "甘肃天水市秦州区": "甘肃省天水市秦州区", + "天水市秦州区": "甘肃省天水市秦州区", + "甘肃天水市麦积区": "甘肃省天水市麦积区", + "天水市麦积区": "甘肃省天水市麦积区", + "甘肃天水市清水县": "甘肃省天水市清水县", + "天水市清水县": "甘肃省天水市清水县", + "甘肃天水市秦安县": "甘肃省天水市秦安县", + "天水市秦安县": "甘肃省天水市秦安县", + "甘肃天水市甘谷县": "甘肃省天水市甘谷县", + "天水市甘谷县": "甘肃省天水市甘谷县", + "甘肃天水市武山县": "甘肃省天水市武山县", + "天水市武山县": "甘肃省天水市武山县", + "甘肃天水市张家川回族自治县": "甘肃省天水市张家川回族自治县", + "天水市张家川回族自治县": "甘肃省天水市张家川回族自治县", + "甘肃武威市凉州区": "甘肃省武威市凉州区", + "武威市凉州区": "甘肃省武威市凉州区", + "甘肃武威市民勤县": "甘肃省武威市民勤县", + "武威市民勤县": "甘肃省武威市民勤县", + "甘肃武威市古浪县": "甘肃省武威市古浪县", + "武威市古浪县": "甘肃省武威市古浪县", + "甘肃武威市天祝藏族自治县": "甘肃省武威市天祝藏族自治县", + "武威市天祝藏族自治县": "甘肃省武威市天祝藏族自治县", + "甘肃张掖市甘州区": "甘肃省张掖市甘州区", + "张掖市甘州区": "甘肃省张掖市甘州区", + "甘肃张掖市肃南裕固族自治县": "甘肃省张掖市肃南裕固族自治县", + "张掖市肃南裕固族自治县": "甘肃省张掖市肃南裕固族自治县", + "甘肃张掖市民乐县": "甘肃省张掖市民乐县", + "张掖市民乐县": "甘肃省张掖市民乐县", + "甘肃张掖市临泽县": "甘肃省张掖市临泽县", + "张掖市临泽县": "甘肃省张掖市临泽县", + "甘肃张掖市高台县": "甘肃省张掖市高台县", + "张掖市高台县": "甘肃省张掖市高台县", + "甘肃张掖市山丹县": "甘肃省张掖市山丹县", + "张掖市山丹县": "甘肃省张掖市山丹县", + "甘肃平凉市崆峒区": "甘肃省平凉市崆峒区", + "平凉市崆峒区": "甘肃省平凉市崆峒区", + "甘肃平凉市泾川县": "甘肃省平凉市泾川县", + "平凉市泾川县": "甘肃省平凉市泾川县", + "甘肃平凉市灵台县": "甘肃省平凉市灵台县", + "平凉市灵台县": "甘肃省平凉市灵台县", + "甘肃平凉市崇信县": "甘肃省平凉市崇信县", + "平凉市崇信县": "甘肃省平凉市崇信县", + "甘肃平凉市庄浪县": "甘肃省平凉市庄浪县", + "平凉市庄浪县": "甘肃省平凉市庄浪县", + "甘肃平凉市静宁县": "甘肃省平凉市静宁县", + "平凉市静宁县": "甘肃省平凉市静宁县", + "甘肃平凉市华亭市": "甘肃省平凉市华亭市", + "平凉市华亭市": "甘肃省平凉市华亭市", + "甘肃酒泉市肃州区": "甘肃省酒泉市肃州区", + "酒泉市肃州区": "甘肃省酒泉市肃州区", + "甘肃酒泉市金塔县": "甘肃省酒泉市金塔县", + "酒泉市金塔县": "甘肃省酒泉市金塔县", + "甘肃酒泉市瓜州县": "甘肃省酒泉市瓜州县", + "酒泉市瓜州县": "甘肃省酒泉市瓜州县", + "甘肃酒泉市肃北蒙古族自治县": "甘肃省酒泉市肃北蒙古族自治县", + "酒泉市肃北蒙古族自治县": "甘肃省酒泉市肃北蒙古族自治县", + "甘肃酒泉市阿克塞哈萨克族自治县": "甘肃省酒泉市阿克塞哈萨克族自治县", + "酒泉市阿克塞哈萨克族自治县": "甘肃省酒泉市阿克塞哈萨克族自治县", + "甘肃酒泉市玉门市": "甘肃省酒泉市玉门市", + "酒泉市玉门市": "甘肃省酒泉市玉门市", + "甘肃酒泉市敦煌市": "甘肃省酒泉市敦煌市", + "酒泉市敦煌市": "甘肃省酒泉市敦煌市", + "甘肃庆阳市西峰区": "甘肃省庆阳市西峰区", + "庆阳市西峰区": "甘肃省庆阳市西峰区", + "甘肃庆阳市庆城县": "甘肃省庆阳市庆城县", + "庆阳市庆城县": "甘肃省庆阳市庆城县", + "甘肃庆阳市环县": "甘肃省庆阳市环县", + "庆阳市环县": "甘肃省庆阳市环县", + "甘肃庆阳市华池县": "甘肃省庆阳市华池县", + "庆阳市华池县": "甘肃省庆阳市华池县", + "甘肃庆阳市合水县": "甘肃省庆阳市合水县", + "庆阳市合水县": "甘肃省庆阳市合水县", + "甘肃庆阳市正宁县": "甘肃省庆阳市正宁县", + "庆阳市正宁县": "甘肃省庆阳市正宁县", + "甘肃庆阳市宁县": "甘肃省庆阳市宁县", + "庆阳市宁县": "甘肃省庆阳市宁县", + "甘肃庆阳市镇原县": "甘肃省庆阳市镇原县", + "庆阳市镇原县": "甘肃省庆阳市镇原县", + "甘肃定西市安定区": "甘肃省定西市安定区", + "定西市安定区": "甘肃省定西市安定区", + "甘肃定西市通渭县": "甘肃省定西市通渭县", + "定西市通渭县": "甘肃省定西市通渭县", + "甘肃定西市陇西县": "甘肃省定西市陇西县", + "定西市陇西县": "甘肃省定西市陇西县", + "甘肃定西市渭源县": "甘肃省定西市渭源县", + "定西市渭源县": "甘肃省定西市渭源县", + "甘肃定西市临洮县": "甘肃省定西市临洮县", + "定西市临洮县": "甘肃省定西市临洮县", + "甘肃定西市漳县": "甘肃省定西市漳县", + "定西市漳县": "甘肃省定西市漳县", + "甘肃定西市岷县": "甘肃省定西市岷县", + "定西市岷县": "甘肃省定西市岷县", + "甘肃陇南市武都区": "甘肃省陇南市武都区", + "陇南市武都区": "甘肃省陇南市武都区", + "甘肃陇南市成县": "甘肃省陇南市成县", + "陇南市成县": "甘肃省陇南市成县", + "甘肃陇南市文县": "甘肃省陇南市文县", + "陇南市文县": "甘肃省陇南市文县", + "甘肃陇南市宕昌县": "甘肃省陇南市宕昌县", + "陇南市宕昌县": "甘肃省陇南市宕昌县", + "甘肃陇南市康县": "甘肃省陇南市康县", + "陇南市康县": "甘肃省陇南市康县", + "甘肃陇南市西和县": "甘肃省陇南市西和县", + "陇南市西和县": "甘肃省陇南市西和县", + "甘肃陇南市礼县": "甘肃省陇南市礼县", + "陇南市礼县": "甘肃省陇南市礼县", + "甘肃陇南市徽县": "甘肃省陇南市徽县", + "陇南市徽县": "甘肃省陇南市徽县", + "甘肃陇南市两当县": "甘肃省陇南市两当县", + "陇南市两当县": "甘肃省陇南市两当县", + "甘肃临夏回族自治州临夏市": "甘肃省临夏回族自治州临夏市", + "临夏回族自治州临夏市": "甘肃省临夏回族自治州临夏市", + "甘肃临夏回族自治州临夏县": "甘肃省临夏回族自治州临夏县", + "临夏回族自治州临夏县": "甘肃省临夏回族自治州临夏县", + "甘肃临夏回族自治州康乐县": "甘肃省临夏回族自治州康乐县", + "临夏回族自治州康乐县": "甘肃省临夏回族自治州康乐县", + "甘肃临夏回族自治州永靖县": "甘肃省临夏回族自治州永靖县", + "临夏回族自治州永靖县": "甘肃省临夏回族自治州永靖县", + "甘肃临夏回族自治州广河县": "甘肃省临夏回族自治州广河县", + "临夏回族自治州广河县": "甘肃省临夏回族自治州广河县", + "甘肃临夏回族自治州和政县": "甘肃省临夏回族自治州和政县", + "临夏回族自治州和政县": "甘肃省临夏回族自治州和政县", + "甘肃临夏回族自治州东乡族自治县": "甘肃省临夏回族自治州东乡族自治县", + "临夏回族自治州东乡族自治县": "甘肃省临夏回族自治州东乡族自治县", + "甘肃临夏回族自治州积石山保安族东乡族撒拉族自治县": "甘肃省临夏回族自治州积石山保安族东乡族撒拉族自治县", + "临夏回族自治州积石山保安族东乡族撒拉族自治县": "甘肃省临夏回族自治州积石山保安族东乡族撒拉族自治县", + "甘肃甘南藏族自治州合作市": "甘肃省甘南藏族自治州合作市", + "甘南藏族自治州合作市": "甘肃省甘南藏族自治州合作市", + "甘肃甘南藏族自治州临潭县": "甘肃省甘南藏族自治州临潭县", + "甘南藏族自治州临潭县": "甘肃省甘南藏族自治州临潭县", + "甘肃甘南藏族自治州卓尼县": "甘肃省甘南藏族自治州卓尼县", + "甘南藏族自治州卓尼县": "甘肃省甘南藏族自治州卓尼县", + "甘肃甘南藏族自治州舟曲县": "甘肃省甘南藏族自治州舟曲县", + "甘南藏族自治州舟曲县": "甘肃省甘南藏族自治州舟曲县", + "甘肃甘南藏族自治州迭部县": "甘肃省甘南藏族自治州迭部县", + "甘南藏族自治州迭部县": "甘肃省甘南藏族自治州迭部县", + "甘肃甘南藏族自治州玛曲县": "甘肃省甘南藏族自治州玛曲县", + "甘南藏族自治州玛曲县": "甘肃省甘南藏族自治州玛曲县", + "甘肃甘南藏族自治州碌曲县": "甘肃省甘南藏族自治州碌曲县", + "甘南藏族自治州碌曲县": "甘肃省甘南藏族自治州碌曲县", + "甘肃甘南藏族自治州夏河县": "甘肃省甘南藏族自治州夏河县", + "甘南藏族自治州夏河县": "甘肃省甘南藏族自治州夏河县", + "青海西宁市城东区": "青海省西宁市城东区", + "西宁市城东区": "青海省西宁市城东区", + "青海西宁市城中区": "青海省西宁市城中区", + "西宁市城中区": "青海省西宁市城中区", + "青海西宁市城西区": "青海省西宁市城西区", + "西宁市城西区": "青海省西宁市城西区", + "青海西宁市城北区": "青海省西宁市城北区", + "西宁市城北区": "青海省西宁市城北区", + "青海西宁市湟中区": "青海省西宁市湟中区", + "西宁市湟中区": "青海省西宁市湟中区", + "青海西宁市大通回族土族自治县": "青海省西宁市大通回族土族自治县", + "西宁市大通回族土族自治县": "青海省西宁市大通回族土族自治县", + "青海西宁市湟源县": "青海省西宁市湟源县", + "西宁市湟源县": "青海省西宁市湟源县", + "青海海东市乐都区": "青海省海东市乐都区", + "海东市乐都区": "青海省海东市乐都区", + "青海海东市平安区": "青海省海东市平安区", + "海东市平安区": "青海省海东市平安区", + "青海海东市民和回族土族自治县": "青海省海东市民和回族土族自治县", + "海东市民和回族土族自治县": "青海省海东市民和回族土族自治县", + "青海海东市互助土族自治县": "青海省海东市互助土族自治县", + "海东市互助土族自治县": "青海省海东市互助土族自治县", + "青海海东市化隆回族自治县": "青海省海东市化隆回族自治县", + "海东市化隆回族自治县": "青海省海东市化隆回族自治县", + "青海海东市循化撒拉族自治县": "青海省海东市循化撒拉族自治县", + "海东市循化撒拉族自治县": "青海省海东市循化撒拉族自治县", + "青海海北藏族自治州门源回族自治县": "青海省海北藏族自治州门源回族自治县", + "海北藏族自治州门源回族自治县": "青海省海北藏族自治州门源回族自治县", + "青海海北藏族自治州祁连县": "青海省海北藏族自治州祁连县", + "海北藏族自治州祁连县": "青海省海北藏族自治州祁连县", + "青海海北藏族自治州海晏县": "青海省海北藏族自治州海晏县", + "海北藏族自治州海晏县": "青海省海北藏族自治州海晏县", + "青海海北藏族自治州刚察县": "青海省海北藏族自治州刚察县", + "海北藏族自治州刚察县": "青海省海北藏族自治州刚察县", + "青海黄南藏族自治州同仁市": "青海省黄南藏族自治州同仁市", + "黄南藏族自治州同仁市": "青海省黄南藏族自治州同仁市", + "青海黄南藏族自治州尖扎县": "青海省黄南藏族自治州尖扎县", + "黄南藏族自治州尖扎县": "青海省黄南藏族自治州尖扎县", + "青海黄南藏族自治州泽库县": "青海省黄南藏族自治州泽库县", + "黄南藏族自治州泽库县": "青海省黄南藏族自治州泽库县", + "青海黄南藏族自治州河南蒙古族自治县": "青海省黄南藏族自治州河南蒙古族自治县", + "黄南藏族自治州河南蒙古族自治县": "青海省黄南藏族自治州河南蒙古族自治县", + "青海海南藏族自治州共和县": "青海省海南藏族自治州共和县", + "海南藏族自治州共和县": "青海省海南藏族自治州共和县", + "青海海南藏族自治州同德县": "青海省海南藏族自治州同德县", + "海南藏族自治州同德县": "青海省海南藏族自治州同德县", + "青海海南藏族自治州贵德县": "青海省海南藏族自治州贵德县", + "海南藏族自治州贵德县": "青海省海南藏族自治州贵德县", + "青海海南藏族自治州兴海县": "青海省海南藏族自治州兴海县", + "海南藏族自治州兴海县": "青海省海南藏族自治州兴海县", + "青海海南藏族自治州贵南县": "青海省海南藏族自治州贵南县", + "海南藏族自治州贵南县": "青海省海南藏族自治州贵南县", + "青海果洛藏族自治州玛沁县": "青海省果洛藏族自治州玛沁县", + "果洛藏族自治州玛沁县": "青海省果洛藏族自治州玛沁县", + "青海果洛藏族自治州班玛县": "青海省果洛藏族自治州班玛县", + "果洛藏族自治州班玛县": "青海省果洛藏族自治州班玛县", + "青海果洛藏族自治州甘德县": "青海省果洛藏族自治州甘德县", + "果洛藏族自治州甘德县": "青海省果洛藏族自治州甘德县", + "青海果洛藏族自治州达日县": "青海省果洛藏族自治州达日县", + "果洛藏族自治州达日县": "青海省果洛藏族自治州达日县", + "青海果洛藏族自治州久治县": "青海省果洛藏族自治州久治县", + "果洛藏族自治州久治县": "青海省果洛藏族自治州久治县", + "青海果洛藏族自治州玛多县": "青海省果洛藏族自治州玛多县", + "果洛藏族自治州玛多县": "青海省果洛藏族自治州玛多县", + "青海玉树藏族自治州玉树市": "青海省玉树藏族自治州玉树市", + "玉树藏族自治州玉树市": "青海省玉树藏族自治州玉树市", + "青海玉树藏族自治州杂多县": "青海省玉树藏族自治州杂多县", + "玉树藏族自治州杂多县": "青海省玉树藏族自治州杂多县", + "青海玉树藏族自治州称多县": "青海省玉树藏族自治州称多县", + "玉树藏族自治州称多县": "青海省玉树藏族自治州称多县", + "青海玉树藏族自治州治多县": "青海省玉树藏族自治州治多县", + "玉树藏族自治州治多县": "青海省玉树藏族自治州治多县", + "青海玉树藏族自治州囊谦县": "青海省玉树藏族自治州囊谦县", + "玉树藏族自治州囊谦县": "青海省玉树藏族自治州囊谦县", + "青海玉树藏族自治州曲麻莱县": "青海省玉树藏族自治州曲麻莱县", + "玉树藏族自治州曲麻莱县": "青海省玉树藏族自治州曲麻莱县", + "青海海西蒙古族藏族自治州格尔木市": "青海省海西蒙古族藏族自治州格尔木市", + "海西蒙古族藏族自治州格尔木市": "青海省海西蒙古族藏族自治州格尔木市", + "青海海西蒙古族藏族自治州德令哈市": "青海省海西蒙古族藏族自治州德令哈市", + "海西蒙古族藏族自治州德令哈市": "青海省海西蒙古族藏族自治州德令哈市", + "青海海西蒙古族藏族自治州茫崖市": "青海省海西蒙古族藏族自治州茫崖市", + "海西蒙古族藏族自治州茫崖市": "青海省海西蒙古族藏族自治州茫崖市", + "青海海西蒙古族藏族自治州乌兰县": "青海省海西蒙古族藏族自治州乌兰县", + "海西蒙古族藏族自治州乌兰县": "青海省海西蒙古族藏族自治州乌兰县", + "青海海西蒙古族藏族自治州都兰县": "青海省海西蒙古族藏族自治州都兰县", + "海西蒙古族藏族自治州都兰县": "青海省海西蒙古族藏族自治州都兰县", + "青海海西蒙古族藏族自治州天峻县": "青海省海西蒙古族藏族自治州天峻县", + "海西蒙古族藏族自治州天峻县": "青海省海西蒙古族藏族自治州天峻县", + "青海海西蒙古族藏族自治州海西蒙古族藏族自治州直辖": "青海省海西蒙古族藏族自治州海西蒙古族藏族自治州直辖", + "海西蒙古族藏族自治州海西蒙古族藏族自治州直辖": "青海省海西蒙古族藏族自治州海西蒙古族藏族自治州直辖", + "宁夏银川市兴庆区": "宁夏回族自治区银川市兴庆区", + "银川市兴庆区": "宁夏回族自治区银川市兴庆区", + "宁夏银川市西夏区": "宁夏回族自治区银川市西夏区", + "银川市西夏区": "宁夏回族自治区银川市西夏区", + "宁夏银川市金凤区": "宁夏回族自治区银川市金凤区", + "银川市金凤区": "宁夏回族自治区银川市金凤区", + "宁夏银川市永宁县": "宁夏回族自治区银川市永宁县", + "银川市永宁县": "宁夏回族自治区银川市永宁县", + "宁夏银川市贺兰县": "宁夏回族自治区银川市贺兰县", + "银川市贺兰县": "宁夏回族自治区银川市贺兰县", + "宁夏银川市灵武市": "宁夏回族自治区银川市灵武市", + "银川市灵武市": "宁夏回族自治区银川市灵武市", + "宁夏石嘴山市大武口区": "宁夏回族自治区石嘴山市大武口区", + "石嘴山市大武口区": "宁夏回族自治区石嘴山市大武口区", + "宁夏石嘴山市惠农区": "宁夏回族自治区石嘴山市惠农区", + "石嘴山市惠农区": "宁夏回族自治区石嘴山市惠农区", + "宁夏石嘴山市平罗县": "宁夏回族自治区石嘴山市平罗县", + "石嘴山市平罗县": "宁夏回族自治区石嘴山市平罗县", + "宁夏吴忠市利通区": "宁夏回族自治区吴忠市利通区", + "吴忠市利通区": "宁夏回族自治区吴忠市利通区", + "宁夏吴忠市红寺堡区": "宁夏回族自治区吴忠市红寺堡区", + "吴忠市红寺堡区": "宁夏回族自治区吴忠市红寺堡区", + "宁夏吴忠市盐池县": "宁夏回族自治区吴忠市盐池县", + "吴忠市盐池县": "宁夏回族自治区吴忠市盐池县", + "宁夏吴忠市同心县": "宁夏回族自治区吴忠市同心县", + "吴忠市同心县": "宁夏回族自治区吴忠市同心县", + "宁夏吴忠市青铜峡市": "宁夏回族自治区吴忠市青铜峡市", + "吴忠市青铜峡市": "宁夏回族自治区吴忠市青铜峡市", + "宁夏固原市原州区": "宁夏回族自治区固原市原州区", + "固原市原州区": "宁夏回族自治区固原市原州区", + "宁夏固原市西吉县": "宁夏回族自治区固原市西吉县", + "固原市西吉县": "宁夏回族自治区固原市西吉县", + "宁夏固原市隆德县": "宁夏回族自治区固原市隆德县", + "固原市隆德县": "宁夏回族自治区固原市隆德县", + "宁夏固原市泾源县": "宁夏回族自治区固原市泾源县", + "固原市泾源县": "宁夏回族自治区固原市泾源县", + "宁夏固原市彭阳县": "宁夏回族自治区固原市彭阳县", + "固原市彭阳县": "宁夏回族自治区固原市彭阳县", + "宁夏中卫市沙坡头区": "宁夏回族自治区中卫市沙坡头区", + "中卫市沙坡头区": "宁夏回族自治区中卫市沙坡头区", + "宁夏中卫市中宁县": "宁夏回族自治区中卫市中宁县", + "中卫市中宁县": "宁夏回族自治区中卫市中宁县", + "宁夏中卫市海原县": "宁夏回族自治区中卫市海原县", + "中卫市海原县": "宁夏回族自治区中卫市海原县", + "新疆乌鲁木齐市天山区": "新疆维吾尔自治区乌鲁木齐市天山区", + "乌鲁木齐市天山区": "新疆维吾尔自治区乌鲁木齐市天山区", + "新疆乌鲁木齐市沙依巴克区": "新疆维吾尔自治区乌鲁木齐市沙依巴克区", + "乌鲁木齐市沙依巴克区": "新疆维吾尔自治区乌鲁木齐市沙依巴克区", + "新疆乌鲁木齐市新市区": "新疆维吾尔自治区乌鲁木齐市新市区", + "乌鲁木齐市新市区": "新疆维吾尔自治区乌鲁木齐市新市区", + "新疆乌鲁木齐市水磨沟区": "新疆维吾尔自治区乌鲁木齐市水磨沟区", + "乌鲁木齐市水磨沟区": "新疆维吾尔自治区乌鲁木齐市水磨沟区", + "新疆乌鲁木齐市头屯河区": "新疆维吾尔自治区乌鲁木齐市头屯河区", + "乌鲁木齐市头屯河区": "新疆维吾尔自治区乌鲁木齐市头屯河区", + "新疆乌鲁木齐市达坂城区": "新疆维吾尔自治区乌鲁木齐市达坂城区", + "乌鲁木齐市达坂城区": "新疆维吾尔自治区乌鲁木齐市达坂城区", + "新疆乌鲁木齐市米东区": "新疆维吾尔自治区乌鲁木齐市米东区", + "乌鲁木齐市米东区": "新疆维吾尔自治区乌鲁木齐市米东区", + "新疆乌鲁木齐市乌鲁木齐县": "新疆维吾尔自治区乌鲁木齐市乌鲁木齐县", + "乌鲁木齐市乌鲁木齐县": "新疆维吾尔自治区乌鲁木齐市乌鲁木齐县", + "新疆克拉玛依市独山子区": "新疆维吾尔自治区克拉玛依市独山子区", + "克拉玛依市独山子区": "新疆维吾尔自治区克拉玛依市独山子区", + "新疆克拉玛依市克拉玛依区": "新疆维吾尔自治区克拉玛依市克拉玛依区", + "克拉玛依市克拉玛依区": "新疆维吾尔自治区克拉玛依市克拉玛依区", + "新疆克拉玛依市白碱滩区": "新疆维吾尔自治区克拉玛依市白碱滩区", + "克拉玛依市白碱滩区": "新疆维吾尔自治区克拉玛依市白碱滩区", + "新疆克拉玛依市乌尔禾区": "新疆维吾尔自治区克拉玛依市乌尔禾区", + "克拉玛依市乌尔禾区": "新疆维吾尔自治区克拉玛依市乌尔禾区", + "新疆吐鲁番市高昌区": "新疆维吾尔自治区吐鲁番市高昌区", + "吐鲁番市高昌区": "新疆维吾尔自治区吐鲁番市高昌区", + "新疆吐鲁番市鄯善县": "新疆维吾尔自治区吐鲁番市鄯善县", + "吐鲁番市鄯善县": "新疆维吾尔自治区吐鲁番市鄯善县", + "新疆吐鲁番市托克逊县": "新疆维吾尔自治区吐鲁番市托克逊县", + "吐鲁番市托克逊县": "新疆维吾尔自治区吐鲁番市托克逊县", + "新疆哈密市伊州区": "新疆维吾尔自治区哈密市伊州区", + "哈密市伊州区": "新疆维吾尔自治区哈密市伊州区", + "新疆哈密市巴里坤哈萨克自治县": "新疆维吾尔自治区哈密市巴里坤哈萨克自治县", + "哈密市巴里坤哈萨克自治县": "新疆维吾尔自治区哈密市巴里坤哈萨克自治县", + "新疆哈密市伊吾县": "新疆维吾尔自治区哈密市伊吾县", + "哈密市伊吾县": "新疆维吾尔自治区哈密市伊吾县", + "新疆昌吉回族自治州昌吉市": "新疆维吾尔自治区昌吉回族自治州昌吉市", + "昌吉回族自治州昌吉市": "新疆维吾尔自治区昌吉回族自治州昌吉市", + "新疆昌吉回族自治州阜康市": "新疆维吾尔自治区昌吉回族自治州阜康市", + "昌吉回族自治州阜康市": "新疆维吾尔自治区昌吉回族自治州阜康市", + "新疆昌吉回族自治州呼图壁县": "新疆维吾尔自治区昌吉回族自治州呼图壁县", + "昌吉回族自治州呼图壁县": "新疆维吾尔自治区昌吉回族自治州呼图壁县", + "新疆昌吉回族自治州玛纳斯县": "新疆维吾尔自治区昌吉回族自治州玛纳斯县", + "昌吉回族自治州玛纳斯县": "新疆维吾尔自治区昌吉回族自治州玛纳斯县", + "新疆昌吉回族自治州奇台县": "新疆维吾尔自治区昌吉回族自治州奇台县", + "昌吉回族自治州奇台县": "新疆维吾尔自治区昌吉回族自治州奇台县", + "新疆昌吉回族自治州吉木萨尔县": "新疆维吾尔自治区昌吉回族自治州吉木萨尔县", + "昌吉回族自治州吉木萨尔县": "新疆维吾尔自治区昌吉回族自治州吉木萨尔县", + "新疆昌吉回族自治州木垒哈萨克自治县": "新疆维吾尔自治区昌吉回族自治州木垒哈萨克自治县", + "昌吉回族自治州木垒哈萨克自治县": "新疆维吾尔自治区昌吉回族自治州木垒哈萨克自治县", + "新疆博尔塔拉蒙古自治州博乐市": "新疆维吾尔自治区博尔塔拉蒙古自治州博乐市", + "博尔塔拉蒙古自治州博乐市": "新疆维吾尔自治区博尔塔拉蒙古自治州博乐市", + "新疆博尔塔拉蒙古自治州阿拉山口市": "新疆维吾尔自治区博尔塔拉蒙古自治州阿拉山口市", + "博尔塔拉蒙古自治州阿拉山口市": "新疆维吾尔自治区博尔塔拉蒙古自治州阿拉山口市", + "新疆博尔塔拉蒙古自治州精河县": "新疆维吾尔自治区博尔塔拉蒙古自治州精河县", + "博尔塔拉蒙古自治州精河县": "新疆维吾尔自治区博尔塔拉蒙古自治州精河县", + "新疆博尔塔拉蒙古自治州温泉县": "新疆维吾尔自治区博尔塔拉蒙古自治州温泉县", + "博尔塔拉蒙古自治州温泉县": "新疆维吾尔自治区博尔塔拉蒙古自治州温泉县", + "新疆巴音郭楞蒙古自治州库尔勒市": "新疆维吾尔自治区巴音郭楞蒙古自治州库尔勒市", + "巴音郭楞蒙古自治州库尔勒市": "新疆维吾尔自治区巴音郭楞蒙古自治州库尔勒市", + "新疆巴音郭楞蒙古自治州轮台县": "新疆维吾尔自治区巴音郭楞蒙古自治州轮台县", + "巴音郭楞蒙古自治州轮台县": "新疆维吾尔自治区巴音郭楞蒙古自治州轮台县", + "新疆巴音郭楞蒙古自治州尉犁县": "新疆维吾尔自治区巴音郭楞蒙古自治州尉犁县", + "巴音郭楞蒙古自治州尉犁县": "新疆维吾尔自治区巴音郭楞蒙古自治州尉犁县", + "新疆巴音郭楞蒙古自治州若羌县": "新疆维吾尔自治区巴音郭楞蒙古自治州若羌县", + "巴音郭楞蒙古自治州若羌县": "新疆维吾尔自治区巴音郭楞蒙古自治州若羌县", + "新疆巴音郭楞蒙古自治州且末县": "新疆维吾尔自治区巴音郭楞蒙古自治州且末县", + "巴音郭楞蒙古自治州且末县": "新疆维吾尔自治区巴音郭楞蒙古自治州且末县", + "新疆巴音郭楞蒙古自治州焉耆回族自治县": "新疆维吾尔自治区巴音郭楞蒙古自治州焉耆回族自治县", + "巴音郭楞蒙古自治州焉耆回族自治县": "新疆维吾尔自治区巴音郭楞蒙古自治州焉耆回族自治县", + "新疆巴音郭楞蒙古自治州和静县": "新疆维吾尔自治区巴音郭楞蒙古自治州和静县", + "巴音郭楞蒙古自治州和静县": "新疆维吾尔自治区巴音郭楞蒙古自治州和静县", + "新疆巴音郭楞蒙古自治州和硕县": "新疆维吾尔自治区巴音郭楞蒙古自治州和硕县", + "巴音郭楞蒙古自治州和硕县": "新疆维吾尔自治区巴音郭楞蒙古自治州和硕县", + "新疆巴音郭楞蒙古自治州博湖县": "新疆维吾尔自治区巴音郭楞蒙古自治州博湖县", + "巴音郭楞蒙古自治州博湖县": "新疆维吾尔自治区巴音郭楞蒙古自治州博湖县", + "新疆阿克苏地区阿克苏市": "新疆维吾尔自治区阿克苏地区阿克苏市", + "阿克苏地区阿克苏市": "新疆维吾尔自治区阿克苏地区阿克苏市", + "新疆阿克苏地区库车市": "新疆维吾尔自治区阿克苏地区库车市", + "阿克苏地区库车市": "新疆维吾尔自治区阿克苏地区库车市", + "新疆阿克苏地区温宿县": "新疆维吾尔自治区阿克苏地区温宿县", + "阿克苏地区温宿县": "新疆维吾尔自治区阿克苏地区温宿县", + "新疆阿克苏地区沙雅县": "新疆维吾尔自治区阿克苏地区沙雅县", + "阿克苏地区沙雅县": "新疆维吾尔自治区阿克苏地区沙雅县", + "新疆阿克苏地区新和县": "新疆维吾尔自治区阿克苏地区新和县", + "阿克苏地区新和县": "新疆维吾尔自治区阿克苏地区新和县", + "新疆阿克苏地区拜城县": "新疆维吾尔自治区阿克苏地区拜城县", + "阿克苏地区拜城县": "新疆维吾尔自治区阿克苏地区拜城县", + "新疆阿克苏地区乌什县": "新疆维吾尔自治区阿克苏地区乌什县", + "阿克苏地区乌什县": "新疆维吾尔自治区阿克苏地区乌什县", + "新疆阿克苏地区阿瓦提县": "新疆维吾尔自治区阿克苏地区阿瓦提县", + "阿克苏地区阿瓦提县": "新疆维吾尔自治区阿克苏地区阿瓦提县", + "新疆阿克苏地区柯坪县": "新疆维吾尔自治区阿克苏地区柯坪县", + "阿克苏地区柯坪县": "新疆维吾尔自治区阿克苏地区柯坪县", + "新疆克孜勒苏柯尔克孜自治州阿图什市": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿图什市", + "克孜勒苏柯尔克孜自治州阿图什市": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿图什市", + "新疆克孜勒苏柯尔克孜自治州阿克陶县": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿克陶县", + "克孜勒苏柯尔克孜自治州阿克陶县": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿克陶县", + "新疆克孜勒苏柯尔克孜自治州阿合奇县": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿合奇县", + "克孜勒苏柯尔克孜自治州阿合奇县": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州阿合奇县", + "新疆克孜勒苏柯尔克孜自治州乌恰县": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州乌恰县", + "克孜勒苏柯尔克孜自治州乌恰县": "新疆维吾尔自治区克孜勒苏柯尔克孜自治州乌恰县", + "新疆喀什地区喀什市": "新疆维吾尔自治区喀什地区喀什市", + "喀什地区喀什市": "新疆维吾尔自治区喀什地区喀什市", + "新疆喀什地区疏附县": "新疆维吾尔自治区喀什地区疏附县", + "喀什地区疏附县": "新疆维吾尔自治区喀什地区疏附县", + "新疆喀什地区疏勒县": "新疆维吾尔自治区喀什地区疏勒县", + "喀什地区疏勒县": "新疆维吾尔自治区喀什地区疏勒县", + "新疆喀什地区英吉沙县": "新疆维吾尔自治区喀什地区英吉沙县", + "喀什地区英吉沙县": "新疆维吾尔自治区喀什地区英吉沙县", + "新疆喀什地区泽普县": "新疆维吾尔自治区喀什地区泽普县", + "喀什地区泽普县": "新疆维吾尔自治区喀什地区泽普县", + "新疆喀什地区莎车县": "新疆维吾尔自治区喀什地区莎车县", + "喀什地区莎车县": "新疆维吾尔自治区喀什地区莎车县", + "新疆喀什地区叶城县": "新疆维吾尔自治区喀什地区叶城县", + "喀什地区叶城县": "新疆维吾尔自治区喀什地区叶城县", + "新疆喀什地区麦盖提县": "新疆维吾尔自治区喀什地区麦盖提县", + "喀什地区麦盖提县": "新疆维吾尔自治区喀什地区麦盖提县", + "新疆喀什地区岳普湖县": "新疆维吾尔自治区喀什地区岳普湖县", + "喀什地区岳普湖县": "新疆维吾尔自治区喀什地区岳普湖县", + "新疆喀什地区伽师县": "新疆维吾尔自治区喀什地区伽师县", + "喀什地区伽师县": "新疆维吾尔自治区喀什地区伽师县", + "新疆喀什地区巴楚县": "新疆维吾尔自治区喀什地区巴楚县", + "喀什地区巴楚县": "新疆维吾尔自治区喀什地区巴楚县", + "新疆喀什地区塔什库尔干塔吉克自治县": "新疆维吾尔自治区喀什地区塔什库尔干塔吉克自治县", + "喀什地区塔什库尔干塔吉克自治县": "新疆维吾尔自治区喀什地区塔什库尔干塔吉克自治县", + "新疆和田地区和田市": "新疆维吾尔自治区和田地区和田市", + "和田地区和田市": "新疆维吾尔自治区和田地区和田市", + "新疆和田地区和田县": "新疆维吾尔自治区和田地区和田县", + "和田地区和田县": "新疆维吾尔自治区和田地区和田县", + "新疆和田地区墨玉县": "新疆维吾尔自治区和田地区墨玉县", + "和田地区墨玉县": "新疆维吾尔自治区和田地区墨玉县", + "新疆和田地区皮山县": "新疆维吾尔自治区和田地区皮山县", + "和田地区皮山县": "新疆维吾尔自治区和田地区皮山县", + "新疆和田地区洛浦县": "新疆维吾尔自治区和田地区洛浦县", + "和田地区洛浦县": "新疆维吾尔自治区和田地区洛浦县", + "新疆和田地区策勒县": "新疆维吾尔自治区和田地区策勒县", + "和田地区策勒县": "新疆维吾尔自治区和田地区策勒县", + "新疆和田地区于田县": "新疆维吾尔自治区和田地区于田县", + "和田地区于田县": "新疆维吾尔自治区和田地区于田县", + "新疆和田地区民丰县": "新疆维吾尔自治区和田地区民丰县", + "和田地区民丰县": "新疆维吾尔自治区和田地区民丰县", + "新疆伊犁哈萨克自治州伊宁市": "新疆维吾尔自治区伊犁哈萨克自治州伊宁市", + "伊犁哈萨克自治州伊宁市": "新疆维吾尔自治区伊犁哈萨克自治州伊宁市", + "新疆伊犁哈萨克自治州奎屯市": "新疆维吾尔自治区伊犁哈萨克自治州奎屯市", + "伊犁哈萨克自治州奎屯市": "新疆维吾尔自治区伊犁哈萨克自治州奎屯市", + "新疆伊犁哈萨克自治州霍尔果斯市": "新疆维吾尔自治区伊犁哈萨克自治州霍尔果斯市", + "伊犁哈萨克自治州霍尔果斯市": "新疆维吾尔自治区伊犁哈萨克自治州霍尔果斯市", + "新疆伊犁哈萨克自治州伊宁县": "新疆维吾尔自治区伊犁哈萨克自治州伊宁县", + "伊犁哈萨克自治州伊宁县": "新疆维吾尔自治区伊犁哈萨克自治州伊宁县", + "新疆伊犁哈萨克自治州察布查尔锡伯自治县": "新疆维吾尔自治区伊犁哈萨克自治州察布查尔锡伯自治县", + "伊犁哈萨克自治州察布查尔锡伯自治县": "新疆维吾尔自治区伊犁哈萨克自治州察布查尔锡伯自治县", + "新疆伊犁哈萨克自治州霍城县": "新疆维吾尔自治区伊犁哈萨克自治州霍城县", + "伊犁哈萨克自治州霍城县": "新疆维吾尔自治区伊犁哈萨克自治州霍城县", + "新疆伊犁哈萨克自治州巩留县": "新疆维吾尔自治区伊犁哈萨克自治州巩留县", + "伊犁哈萨克自治州巩留县": "新疆维吾尔自治区伊犁哈萨克自治州巩留县", + "新疆伊犁哈萨克自治州新源县": "新疆维吾尔自治区伊犁哈萨克自治州新源县", + "伊犁哈萨克自治州新源县": "新疆维吾尔自治区伊犁哈萨克自治州新源县", + "新疆伊犁哈萨克自治州昭苏县": "新疆维吾尔自治区伊犁哈萨克自治州昭苏县", + "伊犁哈萨克自治州昭苏县": "新疆维吾尔自治区伊犁哈萨克自治州昭苏县", + "新疆伊犁哈萨克自治州特克斯县": "新疆维吾尔自治区伊犁哈萨克自治州特克斯县", + "伊犁哈萨克自治州特克斯县": "新疆维吾尔自治区伊犁哈萨克自治州特克斯县", + "新疆伊犁哈萨克自治州尼勒克县": "新疆维吾尔自治区伊犁哈萨克自治州尼勒克县", + "伊犁哈萨克自治州尼勒克县": "新疆维吾尔自治区伊犁哈萨克自治州尼勒克县", + "新疆塔城地区塔城市": "新疆维吾尔自治区塔城地区塔城市", + "塔城地区塔城市": "新疆维吾尔自治区塔城地区塔城市", + "新疆塔城地区乌苏市": "新疆维吾尔自治区塔城地区乌苏市", + "塔城地区乌苏市": "新疆维吾尔自治区塔城地区乌苏市", + "新疆塔城地区额敏县": "新疆维吾尔自治区塔城地区额敏县", + "塔城地区额敏县": "新疆维吾尔自治区塔城地区额敏县", + "新疆塔城地区沙湾市": "新疆维吾尔自治区塔城地区沙湾市", + "塔城地区沙湾市": "新疆维吾尔自治区塔城地区沙湾市", + "新疆塔城地区托里县": "新疆维吾尔自治区塔城地区托里县", + "塔城地区托里县": "新疆维吾尔自治区塔城地区托里县", + "新疆塔城地区裕民县": "新疆维吾尔自治区塔城地区裕民县", + "塔城地区裕民县": "新疆维吾尔自治区塔城地区裕民县", + "新疆塔城地区和布克赛尔蒙古自治县": "新疆维吾尔自治区塔城地区和布克赛尔蒙古自治县", + "塔城地区和布克赛尔蒙古自治县": "新疆维吾尔自治区塔城地区和布克赛尔蒙古自治县", + "新疆阿勒泰地区阿勒泰市": "新疆维吾尔自治区阿勒泰地区阿勒泰市", + "阿勒泰地区阿勒泰市": "新疆维吾尔自治区阿勒泰地区阿勒泰市", + "新疆阿勒泰地区布尔津县": "新疆维吾尔自治区阿勒泰地区布尔津县", + "阿勒泰地区布尔津县": "新疆维吾尔自治区阿勒泰地区布尔津县", + "新疆阿勒泰地区富蕴县": "新疆维吾尔自治区阿勒泰地区富蕴县", + "阿勒泰地区富蕴县": "新疆维吾尔自治区阿勒泰地区富蕴县", + "新疆阿勒泰地区福海县": "新疆维吾尔自治区阿勒泰地区福海县", + "阿勒泰地区福海县": "新疆维吾尔自治区阿勒泰地区福海县", + "新疆阿勒泰地区哈巴河县": "新疆维吾尔自治区阿勒泰地区哈巴河县", + "阿勒泰地区哈巴河县": "新疆维吾尔自治区阿勒泰地区哈巴河县", + "新疆阿勒泰地区青河县": "新疆维吾尔自治区阿勒泰地区青河县", + "阿勒泰地区青河县": "新疆维吾尔自治区阿勒泰地区青河县", + "新疆阿勒泰地区吉木乃县": "新疆维吾尔自治区阿勒泰地区吉木乃县", + "阿勒泰地区吉木乃县": "新疆维吾尔自治区阿勒泰地区吉木乃县", + "新疆石河子市": "新疆维吾尔自治区石河子市", + "新疆阿拉尔市": "新疆维吾尔自治区阿拉尔市", + "新疆图木舒克市": "新疆维吾尔自治区图木舒克市", + "新疆五家渠市": "新疆维吾尔自治区五家渠市", + "新疆北屯市": "新疆维吾尔自治区北屯市", + "新疆铁门关市": "新疆维吾尔自治区铁门关市", + "新疆双河市": "新疆维吾尔自治区双河市", + "新疆可克达拉市": "新疆维吾尔自治区可克达拉市", + "新疆昆玉市": "新疆维吾尔自治区昆玉市", + "新疆胡杨河市": "新疆维吾尔自治区胡杨河市", + "香港中西区": "香港特别行政区中西区", + "香港湾仔区": "香港特别行政区湾仔区", + "香港东区": "香港特别行政区东区", + "香港南区": "香港特别行政区南区", + "香港油尖旺区": "香港特别行政区油尖旺区", + "香港深水埗区": "香港特别行政区深水埗区", + "香港九龙城区": "香港特别行政区九龙城区", + "香港黄大仙区": "香港特别行政区黄大仙区", + "香港观塘区": "香港特别行政区观塘区", + "香港荃湾区": "香港特别行政区荃湾区", + "香港屯门区": "香港特别行政区屯门区", + "香港元朗区": "香港特别行政区元朗区", + "香港北区": "香港特别行政区北区", + "香港大埔区": "香港特别行政区大埔区", + "香港西贡区": "香港特别行政区西贡区", + "香港沙田区": "香港特别行政区沙田区", + "香港葵青区": "香港特别行政区葵青区", + "香港离岛区": "香港特别行政区离岛区", + "澳门花地玛堂区": "澳门特别行政区花地玛堂区", + "澳门花王堂区": "澳门特别行政区花王堂区", + "澳门望德堂区": "澳门特别行政区望德堂区", + "澳门大堂区": "澳门特别行政区大堂区", + "澳门风顺堂区": "澳门特别行政区风顺堂区", + "澳门嘉模堂区": "澳门特别行政区嘉模堂区", + "澳门路凼填海区": "澳门特别行政区路凼填海区", + "澳门圣方济各堂区": "澳门特别行政区圣方济各堂区" + } +} diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..9df629d --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,9 @@ +[project] +name = "ZiPingEightChar" +version = "0.1.0" +requires-python = ">=3.10" # zoneinfo 需 3.9+,dataclass 语法需 3.10 +dependencies = [ + "tyme4py==1.5.0", # 精确锁定:历表数据跨版本会变,锁版本 = 锁可复现性 + "tzdata>=2024.1", # 跨平台的 IANA 时区数据兜底 + "pyyaml>=6.0", # 规则文件 / 黄金样本(tests/golden/*.yaml) +] diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..0e92060 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +tyme4py==1.5.0 +tzdata>=2024.1 +pyyaml>=6.0 diff --git a/rules/00_总纲_取格.md b/rules/00_总纲_取格.md new file mode 100644 index 0000000..9a21a74 --- /dev/null +++ b/rules/00_总纲_取格.md @@ -0,0 +1,182 @@ +# 子平真诠 · 取格总纲 + + + + +## 0. 最高原则 + +### R-纲-00 用神专求月令 +- **条件**:任何命盘。 +- **判定**:取格只以「日干配月令地支」为本,四柱干支字字统归月令观喜忌;**不得**以年柱纳音、神煞、日主自坐等另立格局。旺衰是从属变量:身强身弱影响喜忌取舍,不决定格之有无。 +- **出处**:第八篇·论用神 +- **原文**:「八字用神,专求月令,以日干配月令地支,而生克不同,格局分焉。」「今人不知专主提纲,然后将四柱干支,字字统归月令,以观喜忌……此皆由不知月令而妄论之故也。」 + +--- + +## 1. 取格决策流程(路由器) + +按序执行,命中即停;每一步的依据规则见 §2 起各节。 + +``` +第一步 定月令:读「## 节令」的月令(月柱地支)与「## 地支藏干」。 + +第二步 月令十神分类:以日干对月令本气取十神。 + ├─ 财 → 财格(正偏财同格) ├─ 煞(七煞)→ 偏官格 + ├─ 官 → 正官格 ├─ 伤 → 伤官格 + ├─ 印 → 印绶格(正偏印同格) ├─ 食 → 食神格 + └─ 比劫(禄/刃/劫)→ 月令无用神: + 阳干临刃 → 转 17_阳刃格 + 其余 → 转 18_建禄月劫格(于四柱另取财官煞食为用) + +第三步 藏干变化(寅申巳亥、辰戌丑未月): + 本气不透而透他干 → 以透者取用(格随透干变); + 但辨主从:透干与本气相生(透干生本气或本气生透干 + 皆可)、本气当令有力者,多为「变而不失本格」—— + 本气仍主格,透干为相为兼(如壬生申月透戊,煞生印而 + 印格用煞;何参政造则本气生透干,煞格用印); + 本气无力、透干自立为用者,格随透变(见 R-纲-07)。 + 多透兼用;透而又会支 → 透与会并用;以有情/无情判吉凶。 + +第四步 会支变化:地支三合/三会使月令之气化为别神 → 格随所化而变; + 变而能成美格者为变之善,反之为变之不善。 + +第五步 定格完成 → 加载对应分格文件,判成/败/救/应、纯杂、高低。 + 需要断运时再加载 90_行运.md。 + +第六步 外格(杂格)闸门:以下二门任一通过方许转 19_杂格—— + ① 从化门:日干逢合而化、化神当令、支局全者,先论从化; + ② 无用门:月令无用神(禄刃劫)且四柱干头无官煞财食可取; + 但财透而无根仅一位者、及透食而无官煞者,不阻此门 + (与 R-杂-01 但书及合禄格诸命例对齐)。 + 月令自有用神,或用神虽破而可救者,一概不得弃正格就杂格。 +``` + +--- + +## 2. 顺用逆用(定格后的总方向) + +### R-纲-01 吉神顺用、凶神逆用 +- **条件**:已定格。 +- **判定**:财、官、印、食为四吉神,**顺用**——宜生之护之(相生相护);煞、伤、劫、刃为四凶神,**逆用**——宜制之化之(制伏化泄)。当顺而顺、当逆而逆,配合得宜,皆为贵格;顺逆失当,格即成败。 +- **出处**:第八篇·论用神 +- **原文**:「财官印食,此用神之善而顺用之者也;煞伤劫刃,用神之不善而逆用之者也。当顺而顺,当逆而逆,配合得宜,皆为贵格。」 + +### R-纲-02 顺逆之大路 +- **条件**:已定格,审其配合。 +- **判定**:顺用四例——财喜食神相生、生官护财;官喜透财相生、生印护官;印喜官煞相生、劫财护印;食喜身旺相生、生财护食。逆用四例——七煞喜食神制伏,忌财印资扶;伤官喜佩印制伏、生财化伤;阳刃喜官煞制伏,忌官煞俱无;月劫喜透官制伏,利用财而透食化劫。 +- **出处**:第八篇·论用神 +- **原文**:「此顺逆之大路也。」(各格细则以分格文件为准) + +### R-纲-03 喜忌以需要为准,不以名分吉凶 +- **条件**:论喜忌时。 +- **判定**:吉神用之不当亦能破格(如食神带煞透财、煞逢食制透印);凶神施之得宜亦能成格(如印绶根轻透煞、财逢比劫得伤官化解)。**吉凶喜忌全在是否合于格局需要,不因十神名称而有分别。** +- **出处**:第十八篇·论四吉神能破格;第十九篇·论四凶神能成格 +- **原文**:「吉凶喜忌,全在是否合于需要,不因名称而有分别也。」「财不忌伤,官不忌枭,煞不忌刃。」 + +--- + +## 3. 成败救应通例 + +### R-纲-04 成与败 +- **条件**:已定格。 +- **判定**:**成** = 用神得辅(顺用者得生护、逆用者得制伏)且无刑冲破害之伤;**败** = 用神受伤(逢伤克刑冲)或无制无生。各格的成败细则(官逢财印为成、官逢伤克为败之类)以分格文件为准。 +- **出处**:第九篇·论用神成败救应 +- **原文**:「用神专寻月令,以四柱配之,必有成败。」 + +### R-纲-05 带忌与救应 +- **条件**:成格之中复见忌字,或败格之中见解救。 +- **判定**:成中有败谓之**带忌**(如正官逢财而又逢伤);败中有成全凭**救应**。救应三法:**制**(如官逢伤而透印制伤)、**合**(如官杂煞而合煞以清、伤被合)、**解**(如刑冲而会合以解)。能去忌者,格复成。 +- **出处**:第九篇·论用神成败救应 +- **原文**:「成中有败,必是带忌;败中有成,全凭救应。」 + +### R-纲-06 因成得败、因败得成 +- **条件**:定格成败之后仍须复查全局配合。 +- **判定**:本成之格可因一字之党忌转败(如化伤为财而财反党煞);本败之局可因位置间隔得宜转成(如伤不能越印克官,反泄身为秀)。**成败不是终点判断,须以理权衡全局,毋执而不化。** +- **出处**:第十三篇·论用神因成得败因败得成 +- **原文**:「惟以理权衡之,随在观理,因时运化……观命者毋眩而无主、执而不化也。」 + +--- + +## 4. 用神变化与纯杂 + +### R-纲-07 透干变化 +- **条件**:月令藏干不止一干(寅申巳亥、辰戌丑未月;子午卯酉专气除外)。 +- **判定**:本气不透而透余气,以透者取用,格随透干而变(如己生申月本为伤官,藏庚透壬则化为财)。透出而化为美格者愈美;化坏者遂坏。变后仍能兼顾本格成格者,为「变而不失本格」,本格兼格并论。**辨主从**:透干与本气相生(透干生本气,如壬生申月透戊、煞生印而印格用煞——据马参政造核;或本气生透干,如何参政造戌中辛印透而戊煞相生)、且本气当令有力者,本气仍主格,透干为相为兼;本气无力、透干自立为用者,方以透者取用。 +- **出处**:第十篇·论用神变化 +- **原文**:「月令所藏不一,而用神遂有变化。」「八字非用神不立,用神非变化不灵。」 + +### R-纲-08 会支变化 +- **条件**:地支与月支成三合/三会局;六合(如卯戌化火)与半合拱局(如寅午拱火)力稍逊,亦足参变化,合全局观之(综括注,据印格诸命例核)。 +- **判定**:月令之气随局而化,格随所化而变(如丁生亥月本为正官,支全卯未则化为印)。化忌为喜为变之善(如癸生寅月会午戌,伤化为财,不作伤官见官论);化喜为忌为变之不善(如丙生寅月会午戌,印化为劫)。**判断顺序:先察会合变化,再论本气生克。** +- **出处**:第十篇·论用神变化 +- **原文**:「盖寅午戌三合变化在前,不作伤官见官论也。」 + +### R-纲-09 纯与杂 +- **条件**:用神变化之中两干(或透与会)互用。 +- **判定**:互用而**两相得**(相生或相克而得其当)为**纯**,吉;互用而**两不相谋**(相战无依)为**杂**,凶。(如甲丙并透于辛日寅月,财官相生,纯;乙己并透于壬日未月,官伤相克,杂。) +- **出处**:第十一篇·论用神纯杂 +- **原文**:「纯者吉,杂者凶。」 + +### R-纲-10 杂气取用(四墓月细则) +- **条件**:生于辰戌丑未月。 +- **判定**:透干会支**取其清者用之**,杂而不杂。一透一用,兼透兼用,透而又会则并用;透与会**合而有情**(顺而相成)吉,**合而无情**(逆而相背)不吉。有情可因一字牵累卒成无情(富而不贵);无情亦有因所克恰为忌神而终成有情者。又,透干非月令所藏而以月令为库根者(如辛生未月透甲,甲以未为木库通根——据第三十三篇·论财汪学士造核),亦作透出取用论。 +- **出处**:第十六篇·论杂气如何取用 +- **原文**:「然而甚易也,透干会取其清者用之,杂而不杂也。」 + +### R-纲-11 墓库刑冲辨正 +- **条件**:遇辰戌丑未相刑冲。 +- **判定**:**四墓不忌刑冲,刑冲未必成格。** 「财官入库不冲不发」非子平之法:杂气透干会支即可取用,何劳刑冲。惟财官属土者,冲则库启(土冲则灵);财官为水木金火者,冲则反累(劫动、伤官)。不得以「冲开库」为由故意求冲;月令非四墓而局带四墓,更不得见库求冲。 +- **出处**:第十七篇·论墓库刑冲之说 +- **原文**:「是故四墓不忌刑冲,刑冲未必成格。」 + +--- + +## 5. 相神 + +### R-纲-12 相神之定义与地位 +- **条件**:定格之后,寻成格之所赖。 +- **判定**:月令得用神,**全局之格赖此一字而成者,谓之相神**(如煞逢食制,煞为用食为相)。常法之外,凡成格所倚之字皆为相。**伤用神甚于伤身,伤相甚于伤用**——相神无破,贵格已成;相神被伤(被合、被制),立败其格。 +- **出处**:第十五篇·论相神紧要 +- **原文**:「凡全局之格,赖此一字而成者,均谓之相也。」「相神无破,贵格已成;相神相伤,立败其格。」 + +--- + +## 6. 格局高低 + +### R-纲-13 有情与有力 +- **条件**:格成之后,评其高低。 +- **判定**:高低大纲在两轴——**有情**(配合得宜,忌字得制合、喜字得安顿,如合伤存官、劫煞相合两得其用)与**有力**(用相身三者根深力均)。有情兼有力者最高;有情而非情之至、有力而非力之全者次之;无情(配合失所,如身强印旺更透煞)或无力(如煞强食旺而身无根)者低,或夭或贫。 +- **出处**:第十二篇·论用神格局高低 +- **原文**:「然其理之大纲,亦在有情、有力无力之间而已。」「或一字而有千钧之力,或半字而败全局之美。」 + +### R-纲-14 生克先后分吉凶 +- **条件**:同一组合,字之先后(年月日时所居)不同。 +- **判定**:须分先后与阻隔:喜用在前(年月)而忌字在后(时)者,晚运须防结局有损;忌字得喜字隔挡(如戊癸之间有甲,合而不全)反成大贵。**同一生克组合,次序不同,吉凶迥异,不可并论。** +- **出处**:第二十篇·论生克先后分吉凶 +- **原文**:「然有同此生克,而先后之间,遂分吉凶者,尤谈命之奥也。」 + +### R-纲-15 气候参看(调候) +- **条件**:定格论贵贱之后。 +- **判定**:**以月令用神为主,配气候互参**。同一成格,得气候者事半功倍(如金水伤官见官反秀、夏木伤官佩印秀百倍);失气候者虽成而减色(如冬水伤官用财,小富不贵)。气候只增减格局之成色,不推翻格局之判定。 +- **出处**:第十四篇·论用神配气候得失 +- **原文**:「论命惟以月令用神为主,然亦须配气候而互参之。」 + +--- + +## 7. 外格(杂格)用舍 + +### R-纲-16 外格启用条件 +- **条件**:第二步路由至「月令无用神」者。 +- **判定**:外格(类象、属象、冲财、会禄、刑合、遥迎、井栏、朝阳诸格)**仅因月令无用,权而用之**。二禁:月令自有用神而另寻外格,谬;春木冬水(禄刃当令)而**干头已有财官七煞**可取,弃之以就外格,亦谬。又不得以「用神已破」冒充「月令无用」而弃正就外。 +- **出处**:第二十二篇·论外格用舍 +- **原文**:「提纲有用提纲重」「有官莫寻格局」「月令无用者,原是月令本无用神……用神已破,皆以为月令无取,而弃之以就外格,则谬之又谬矣。」 + +--- + +## 8. 解释输出要求 + +- 取格结论须写明:月令、本气/透出/会支之依据、所定之格、所用规则编号。 +- 结论中区分三层:**格之成败**(含带忌救应)→ **用神相神** → **格局高低**(有情/有力、纯杂、气候)。 +- 凡依本总纲转介分格文件者,后续判定以分格文件为准;分格与本纲冲突时,回查 `sources/` 原文裁决。 + + diff --git a/rules/11_正官格.md b/rules/11_正官格.md new file mode 100644 index 0000000..2fc0ff3 --- /dev/null +++ b/rules/11_正官格.md @@ -0,0 +1,174 @@ +# 子平真诠 · 正官格 + + + + +## 1. 格之定义 + +### R-官-01 正官为尊,喜生护忌刑冲 +- **条件**:月令本气克日干、且与日干阴阳相配者(正官)立为正官格;藏干透出、会支变化致格变者,依总纲 R-纲-07/08 处理。 +- **判定**:正官为分所当尊之神(在国有君、在家有亲),全格以**生之护之**为喜、以**刑冲破害**为忌;以下犯上(伤克刑冲)则格败。 +- **出处**:第三十一篇·论正官 +- **原文**:「正官者分所当尊,如在国有君,在家有亲,刑冲破害,以下犯上,乌乎可乎?」「以刑冲破害为忌,则以生之护之为喜矣。」 + +--- + +## 2. 成格条件 + +### R-官-02 财印并透,两不相碍 +- **条件**:月令正官;天干财、印并透;财与印在干头互不相碍(中有他干或日主相隔,不相克、不相合)。 +- **判定**:成格,其贵也大。财生官、印护官,二者并美而不相妨。 +- **出处**:第三十一篇·论正官 +- **原文**:「以财印并透者论之,两不相碍,其贵也大。」 + +### R-官-03 单用财胜于单用印 +- **条件**:月令正官;财印不以两用,仅透其一。 +- **判定**:成格;单用印不若单用财——印能护官亦能泄官之气,财则生官。 +- **出处**:第三十一篇·论正官 +- **原文**:「若财印不以两用,则单用印不若单用财,以印能护官,亦能泄官,而财生官也。」 + +### R-官-04 化官为印而透财 +- **条件**:月令正官;地支会成印局(官之气化为印);天干透财。 +- **判定**:成格,甚秀,大贵之格。 +- **出处**:第三十一篇·论正官 +- **原文**:「若化官为印而透财,则又为甚秀,大贵之格也。」 + +--- + +## 3. 破格条件 + +### R-官-05 刑冲破害 +- **条件**:月令正官;月支或官星所寄之支逢刑、冲、破、害。 +- **判定**:破格。正官最忌刑冲破害,犯之为以下犯上。**但刑冲破害得会合而解者不破**(转 R-官-11,如薛相公造寅申冲得巳申合解、李参政造子酉破得辰酉合解,仍成)。 +- **出处**:第三十一篇·论正官 +- **原文**:「官以克身……何以切忌刑冲破害,尊之若是乎?」「刑冲破害,以下犯上,乌乎可乎?」 + +### R-官-06 遇伤官、杂七煞 +- **条件**:月令正官;四柱透伤官(遇伤),或干透七煞相混(混煞)。 +- **判定**:破格(带忌)。遇伤须佩印、混煞须取清,方有救(见 R-官-08、R-官-09);无救则败。 +- **出处**:第三十一篇·论正官 +- **原文**:「然而遇伤在于佩印,混煞贵乎取清。」 + +### R-官-07 官格透伤用印,忌再见财 +- **条件**:月令正官;干透伤官,透印制伤为救;复见财星透干。 +- **判定**:破格。财能去印,未能生官,适以护伤——印被财坏则伤无制。 +- **出处**:第三十一篇·论正官 +- **原文**:「至于官格透伤用印者,又忌见财,以财能去印,未能生官,而适以护伤故也。」 + +--- + +## 4. 败中有救(救应) + +### R-官-08 遇伤佩印 +- **条件**:月令正官(含藏干透出取清者);四柱带伤官(或支会伤官之局);天干透印制伤。 +- **判定**:救应成格。官遇伤而佩印,印制伤以护官。 +- **出处**:第三十一篇·论正官 +- **原文**:「遇伤在于佩印。」「未中己官透干用清,支会水局,两辛解之,是遇伤而佩印也。」 + +### R-官-09 混煞取清(合煞留官) +- **条件**:月令正官;干透七煞混杂;另有天干与煞相合(如劫财合煞),合去其煞。 +- **判定**:救应成格。合煞留官,格取清。 +- **出处**:第三十一篇·论正官 +- **原文**:「混煞贵乎取清。」「甲用酉官,庚金混杂,乙以合之,合煞留官,是杂煞而取清也。」 + +### R-官-10 印制伤而财有制合(印两用一足) +- **条件**:月令正官;支会伤官,天干透印为制;复透财星;然印星两透(或叠出),以一印合财去之、一印制伤存官。 +- **判定**:救应,反主大贵。财有合则去,伤有制则清,无情而愈有情。 +- **出处**:第三十一篇·论正官 +- **原文**:「然亦有逢财而反大贵者……以丁合壬而财去,以丙制伤而官清,无情而愈有情。此正造化之妙,变幻无穷,焉得不贵?」 + +### R-官-11 刑冲以会合解 +- **条件**:月令正官;地支见刑冲;复有会合之支解其刑冲。 +- **判定**:救应。刑冲得会合而解,不以破格论。 +- **出处**:第三十一篇·论正官 +- **原文**:「至若地支刑冲,会合可解,已见前篇,不必再述。」 + +--- + +## 5. 喜忌总表 + +| | 干支配置 | 依据规则 | +|---|---|---| +| 喜 | 财透生官 | R-官-02、R-官-03 | +| 喜 | 印透护官 | R-官-02、R-官-08 | +| 喜 | 财印并透而两不相碍 | R-官-02 | +| 喜 | 会支化官为印而透财 | R-官-04 | +| 喜 | 合煞留官(劫合煞) | R-官-09 | +| 喜 | 印制伤官 | R-官-08 | +| 喜 | 会合解刑冲 | R-官-11 | +| 忌 | 刑冲破害月令官星 | R-官-05 | +| 忌 | 伤官透干(无印制) | R-官-06 | +| 忌 | 七煞混官(无合清) | R-官-06 | +| 忌 | 用印制伤时再见财(财坏印护伤) | R-官-07 | +| 忌 | 财印相合,两失其用(孤官无辅) | R-官-12 | + +--- + +## 6. 格局高低 + +### R-官-12 财印相合,孤官无辅 +- **条件**:月令正官(含杂气正官透干会支之贵格);天干财印并透而二者相合(如丁壬合)。 +- **判定**:成格而降等。财印相合则两失其用,官孤无辅,纵贵格亦不上七品。 +- **出处**:第三十一篇·论正官 +- **原文**:「杂气正官,透干会支,最为贵格,而壬财丁印,二者相合,仍以孤官无辅论,所以不上七品。」 + +### R-官-13 无情而愈有情 +- **条件**:正官格带忌(伤、财坏印之类);救应之字配合奇巧(一合去忌、一制存官,见 R-官-10)。 +- **判定**:救应得妙者,格反大贵——看似无情之配合,愈成有情。 +- **出处**:第三十一篇·论正官 +- **原文**:「无情而愈有情。此正造化之妙,变幻无穷,焉得不贵?」 + +--- + +## 7. 取运 + +> 取运总原则:一八字有一八字之论,其理甚精、其法甚活,只可大略言之,变化在人,不可泥也。运中每遇一字,各有研究,随时取用。凡格皆然,不独正官。(第三十二篇·论正官取运) + +### R-官-14 正官用财印之取运 +- **条件**:月令正官,用财用印成格;行大运。 +- **判定**:身稍轻者行运取助身(印比之地);官稍轻者行运取助官(财官之地)。官已露出者,行运**不可逢合**(合去官星)、**不可杂煞**、**不可重官**;地支逢刑冲者,不问所就何局,皆不利。 +- **出处**:第三十二篇·论正官取运 +- **原文**:「正官而用财印,身稍轻则取助身,官稍轻则助官。若官露而不可逢合,不可杂煞,不可重官。与地支刑冲,不问所就何局,皆不利也。」 + +### R-官-15 正官用财之取运 +- **条件**:月令正官,单用财成格(财生官);行大运。 +- **判定**:运喜印绶、身旺之地;切忌食伤运(伤食克官)。若身旺而财轻官弱,则仍取财官运。 +- **出处**:第三十二篇·论正官取运 +- **原文**:「正官用财,运喜印受身旺之地,切忌食伤。若身旺而财轻官弱,即仍取财官运可也。」 +- > 存疑:「印受身旺之地」之「受」疑为「绶」之传抄讹字(「印绶身旺之地」于义方通),未敢擅改。 + +### R-官-16 正官佩印之取运 +- **条件**:月令正官,佩印成格(官印相生);行大运。 +- **判定**:运喜财乡,伤食运反吉(印能制伤护官,故不忌)。若官重身轻而佩印者,则以行身旺之地为宜,不必财运。 +- **出处**:第三十二篇·论正官取运 +- **原文**:「正官佩印,运喜财乡,伤食反吉。若官重身轻而佩印,则身旺为宜,不必财运也。」 + +### R-官-17 正官带伤食用印制之取运 +- **条件**:月令正官,带伤官食神,用印制伤食为救;行大运。 +- **判定**:运喜官旺、印旺之乡;财运切忌(财坏印则伤食无制)。若命中印绶叠出(印有余裕),则财运亦无害。 +- **出处**:第三十二篇·论正官取运 +- **原文**:「正官带伤食而用印制,运喜官旺印旺之乡,财运切忌。若印绶叠出,财运亦无害矣。」 + +### R-官-18 正官带煞之取运 +- **条件**:月令正官,带七煞;行大运。分两种救应情形:命中用劫合煞者、命中用伤官合煞者。 +- **判定**:正官带煞,行伤食运反为不碍(伤食制煞)。**用劫合煞**者:财运可行、伤食可行、身旺可行、印绶亦可行,只不可复露七煞(运干再见煞)。**用伤官合煞**者:伤食与财运俱可行,而不宜逢印(印克伤官,合煞之具被夺)。 +- **出处**:第三十二篇·论正官取运 +- **原文**:「正官而带煞,伤食反为不碍。其命中用劫合煞,则财运可行,伤食可行,身旺,印绶亦可行,只不过复露七煞。若命用伤官合煞,则伤食与财俱可行,而不宜逢印矣。」 + +--- + +## 8. 命例 + +1. **薛相公命**:甲申、壬申、乙巳、戊寅 → 壬印戊财并透,以日主乙隔之,水与土两不相碍,故大贵 → 示范 R-官-02(财印并透两不相碍)。 +2. **杂气正官命**:壬戌、丁未、戊甲、乙卯 → 杂气正官透干会支,本最贵格;然壬财丁印二者相合,以孤官无辅论,不上七品 → 示范 R-官-12(财印相合,孤官无辅)。 + - > 存疑:「戊甲」于干支相配不通(甲为天干,不能居日支位),疑为传抄异文(或作「戊午」「戊申」之类),原文如此,未敢擅改。 +3. **金状元命**:乙卯、丁亥、丁未、庚戌 → 并用财印,无伤官、不杂煞,去其忌而存其喜,大贵 → 示范 R-官-04(化官为印而透财;原书此例正承该句,兼应 R-官-01)。 +4. **宣参国命**:己卯、辛未、壬寅、辛亥 → 未中己官透干用清,支会水局(伤)〔校勘:亥卯未会木局,「水」疑为「木」之传抄讹字〕,两辛印解之,遇伤佩印 → 示范 R-官-08。 +5. **李参政命**:庚寅、乙酉、甲子、戊辰 → 甲用酉官,庚金七煞混杂,乙劫合庚,合煞留官取清 → 示范 R-官-09。 +6. **范太傅命**:丁丑、壬寅、己巳、丙寅 → 支具巳丑会金伤官,丙丁并透解之;以丁合壬而财去、以丙制伤而官清,无情而愈有情,大贵 → 示范 R-官-10、R-官-13。 + +--- + +> 取运篇(第三十二篇)无自带命例;以上命例均出第三十一篇·论正官。 + + diff --git a/rules/12_财格.md b/rules/12_财格.md new file mode 100644 index 0000000..cfd9b44 --- /dev/null +++ b/rules/12_财格.md @@ -0,0 +1,259 @@ +# 子平真诠 · 财格 + + + + + +## 1. 格之定义 + +### R-财-01 财格之定义 +- **条件**:月令为财(日干所克之支,正财偏财同格);以月令本气定格,或依总纲透干、会支变化定格。 +- **判定**:定财格。财为我克、供我使用之物,以能生官,所以为美;于人事主财帛、妻妾、才能。 +- **出处**:第三十三篇·论财 +- **原文**:「财为我克,使用之物也,以能生官,所以为美。为财帛,为妻妾,为才能,为驿马,皆财类也。」 + +### R-财-02 财喜根深,透一位以清用 +- **条件**:财格;财星于地支根深;天干透财一位。非月令之财(如寅月透乙、卯月透甲,即月令藏干透出),透一位亦同论。 +- **判定**:成格之所最喜。财宜根深不宜太露;透一位清用不为露,透两位以上则为露。 +- **出处**:第三十三篇·论财 +- **原文**:「财喜根深,不宜太露,然透一位以清用,格所最喜,不为之露。即非月令用神,若寅透乙、卯透甲之类,一亦不为过,太多则露矣。」 + +### R-财-03 财旺生官则露不忌 +- **条件**:财格透财(财露);又透官星,财旺生官。 +- **判定**:财露不忌。露财本防比劫劫夺,生官则比劫自退——如府库钱粮有官守护,虽露白而无人敢劫。 +- **出处**:第三十三篇·论财 +- **原文**:「然而财旺生官,露亦不忌,盖露以防劫,生官则劫退,譬如府库钱粮,有官守护,即使露白,谁敢劫之?」 + +### R-财-04 变格:劫刃太重,弃财就煞 +- **条件**:月令为财;四柱劫刃太重;透七煞。 +- **判定**:变格。弃财不用,转以煞为用神,属「变之又变」之局。 +- **出处**:第三十三篇·论财 +- **原文**:「至于劫刃太重,弃财就煞……此变之又变者也。」 + +--- + +## 2. 成格条件 + +### R-财-05 财旺生官 +- **条件**:月令为财;财旺;透官;身强;不透伤官;不混七煞。 +- **判定**:成格,贵格。 +- **出处**:第三十三篇·论财 +- **原文**:「有财旺生官者,身强而不透伤官,不混七煞,贵格也。」 + +### R-财-06 财用食生 +- **条件**:月令为财;透食神生财;身强;不透官;略带一位比劫。 +- **判定**:成格。略带一位比劫益觉有情;若透官而身弱,则格坏(见 R-财-12)。 +- **出处**:第三十三篇·论财 +- **原文**:「有财用食生者,身强而不露官,略带一位比劫,益觉有情……透官身弱,则格坏矣。」 + +### R-财-07 财格佩印 +- **条件**:月令为财;透印(佩印帮身);财与印两不相碍(天干不相贴相克)。 +- **判定**:成格取贵。孤财不贵,佩印帮身,即印取贵;若财印相并相克,则降为小富(见 R-财-21)。 +- **出处**:第三十三篇·论财 +- **原文**:「有财格佩印者,盖孤财不贵,佩印帮身,即印取贵。」 + +### R-财-08 财用食印兼用 +- **条件**:月令为财;透食又透印;食与印两不相碍(位置隔开、互不相克)。 +- **判定**:成格,贵格。若食印相克而藉去食以存月令暗官者,亦贵(见 R-财-18);反是则减福(见 R-财-22)。 +- **出处**:第三十三篇·论财 +- **原文**:「有用食而兼用印者,食与印两不相碍,或有暗官而去食护官,皆贵格也。」 + +### R-财-09 壬午癸巳,月令暗官 +- **条件**:壬日生午月,或癸日生巳月(午中丁己、巳中丙戊,财与官同宫);单透财。 +- **判定**:成格亦贵。月令自有暗官,财透则暗生其官。 +- **出处**:第三十三篇·论财 +- **原文**:「至于壬生午月,癸生巳月,单透财而亦贵,又月令有暗官也。」 + +### R-财-10 壬生巳月,弃煞就财 +- **条件**:壬日生巳月;巳中透丙(财)而藏戊(煞);单透财。 +- **判定**:成格亦贵。透财藏煞,弃煞就财,存其美而弃其赠。 +- **出处**:第三十三篇·论财 +- **原文**:「又壬生巳月,单透财而亦贵,以其透丙藏戊,弃煞就财,美者存在赠者弃也。」 + +> 存疑:「美者存在赠者弃也」文句疑有讹脱(似当作「美者存、赠者弃」之类,「赠」字或为他字之误),未敢遽定,存以俟考。 + +--- + +## 3. 破格条件 + +### R-财-11 财旺生官之破:透伤、混煞 +- **条件**:财旺生官格;天干透伤官,或七煞并透(官煞混杂)。 +- **判定**:破格。生官格以「不透伤官、不混七煞」为成,犯之即破。 +- **出处**:第三十三篇·论财 +- **原文**:「身强而不透伤官,不混七煞,贵格也。」(反言之:透伤、混煞即破。) + +### R-财-12 财用食生之破:透官身弱 +- **条件**:财用食生格;天干透官;日干身弱。 +- **判定**:格坏。 +- **出处**:第三十三篇·论财 +- **原文**:「透官身弱,则格坏矣。」 + +### R-财-13 财旺无劫而透伤 +- **条件**:财格财旺;无比劫;天干透伤官。 +- **判定**:不利。伤官本非美物,财轻透劫时不得已而用之;财旺无劫而露伤,徒使财遇伤而失其生官之具,难望富贵。 +- **出处**:第三十三篇·论财 +- **原文**:「财旺无劫而透伤,反为不利,盖伤官本非美物,财轻透劫,不得己而用之。旺而露伤,何苦用彼?徒使财遇伤而死生官之具,安望富贵乎?」 + +### R-财-14 财用煞印之破:印独、财煞并透 +- **条件**:财用煞印格(救应见 R-财-19);印独;财与煞并透天干。 +- **判定**:破格,非特不贵,亦不富。 +- **出处**:第三十三篇·论财 +- **原文**:「若财用煞印而印独,财煞并透,非特不贵,亦不富也。」 + +> 存疑:「印独」确指不明(或指印无辅、或指印孤单而财煞结党),原文未释,存以俟考。 + +--- + +## 4. 败中有救(救应) + +### R-财-15 财用伤官:化劫生财 +- **条件**:月令为财;财不甚旺而比劫强(比劫争财为忌);露一位伤官化劫生财。 +- **判定**:败中有救,成格。比劫为忌,得伤官化之,是不得已而用之(总纲 R-纲-03「财逢比劫得伤官化解」同例);若财旺无劫而透伤,则反破(见 R-财-13)。 +- **出处**:第三十三篇·论财 +- **原文**:「有财用伤官者,财不甚旺而比强,辂露一位伤官以化之……甲透未库,逢辛为劫,壬以化劫生财。」 + +> 存疑:「辂露一位伤官」之「辂」疑为「略」之传抄异文。 + +### R-财-16 财带七煞:合煞存财 +- **条件**:月令为财;带七煞(财生煞攻身为忌);有干与煞相合(如甲日庚煞得乙合),合去其煞而存财。 +- **判定**:败中有救,贵格。对应总纲救应之「合」法。 +- **出处**:第三十三篇·论财 +- **原文**:「有财带七煞者,或合煞存财,或制煞生财,皆贵格也……合煞存财也。」 + +### R-财-17 财带七煞:制煞生财 +- **条件**:月令为财;带七煞;有食伤制煞,使煞不攻身而财得生。 +- **判定**:败中有救,贵格。对应总纲救应之「制」法。 +- **出处**:第三十三篇·论财 +- **原文**:「有财带七煞者,或合煞存财,或制煞生财,皆贵格也……制煞生财也。」 + +### R-财-18 去食护官 +- **条件**:月令为财;食印兼用而食印相克;月令有暗官(如巳中戊官);去食以存官。 +- **判定**:败中有救,贵格。食印相克本碍,以其去食护官,反成其贵。 +- **出处**:第三十三篇·论财 +- **原文**:「或有暗官而去食护官,皆贵格也……虽食印相克,而欲存巳戊官,是去食护官也。」 + +### R-财-19 财用煞印:印化党煞 +- **条件**:月令为财;财党七煞为忌;透印化煞;冬土(己日生冬月)逢之尤的;不透财杂印。 +- **判定**:败中有救。印化党煞,格成富局;冬土逢之则印兼解冻之功,又不露财以杂其印,故贵。若印独而财煞并透,则破(见 R-财-14)。 +- **出处**:第三十三篇·论财 +- **原文**:「有财用煞印者,党煞为忌,印以化之,格成富局,若冬土逢之亦贵格……化煞而即以解冻,又不露财以杂其印,所以贵也。」 + +--- + +## 5. 喜忌总表 + +### R-财-20 财格喜忌大纲 +- **条件**:已定财格,审四柱配合。 +- **判定**:喜——财星根深;透财一位清用;食神生财;官星护财(财旺生官则露不忌);身弱佩印而财印不相碍;食印兼用两不相碍;煞得合、得制;财用食生格略带一位比劫。忌——财露而无官护(比劫劫之);透财过多成露;生官格透伤、混煞;食生格透官而身弱;财旺无劫而透伤官;财印相并相克;食印相碍而不去食护官;煞无制合而财党之;财用煞印而印独、财煞并透。 +- **出处**:第三十三篇·论财 +- **原文**:(综括,无单一原文) + +| 喜(某干某支) | 忌(某干某支) | +|---|---| +| 财星地支根深 | 透财过多(露) | +| 透财一位清用 | 财露无官,比劫劫夺 | +| 食生财 | 财旺无劫而透伤官 | +| 官护财(生官则劫退) | 生官格透伤官、混七煞 | +| 身弱佩印(财印不相碍) | 财印相并,两不相能 | +| 食印两不相碍;去食护官 | 食印相碍而不护官 | +| 煞得合(合煞存财)、得制(制煞生财) | 煞无制合,财党煞攻身 | +| 印化煞(不露财杂印) | 印独、财煞并透 | +| 食生格略带一位比劫 | 食生格透官而身弱 | + +--- + +## 6. 格局高低 + +### R-财-21 财印相并,两不相能 +- **条件**:财格佩印;财与印天干相并(紧贴相克,如乙与己相邻)。 +- **判定**:降格。纵有好处,小富而已,不能取贵。 +- **出处**:第三十三篇·论财 +- **原文**:「然财印宜相并,如乙未、己卯、庚寅、辛巳,乙与己两不相能,即有好处,小富而已。」 + +> 存疑:「然财印宜相并」之「宜」字与下文「两不相能,小富而已」语气不协,疑有传抄异文(或本无「宜」字,作「然财印相并」)。 + +### R-财-22 食印相碍而不护官,减福 +- **条件**:财格食印兼用;食与印相克;又非为存月令暗官而去食。 +- **判定**:降格,减福。 +- **出处**:第三十三篇·论财 +- **原文**:「反是则减福矣。」 + +--- + +## 7. 取运 + +### R-财-23 财旺生官取运 +- **条件**:财旺生官成格(R-财-05);行运。 +- **判定**:运喜身旺、印绶之地;不利行七煞、伤官运。若生官之后又透印者,行伤官之地亦不甚有害。 +- **出处**:第三十四篇·论财取运 +- **原文**:「其财旺生官者,运喜身旺印缓,不利七煞伤官;若生官而后透印,伤官之地,不甚有害。」 + +> 存疑:「印缓」疑为「印绶」之传抄异文。 + +### R-财-24 财旺生官带食破局取运 +- **条件**:财旺生官格而带食破局;行运。 +- **判定**:运喜印绶(制食护官);逢七煞运反吉(食得煞而制之,格复有用)。 +- **出处**:第三十四篇·论财取运 +- **原文**:「至于生官而带食破局,则运喜印绶,而逢煞反吉矣。」 + +### R-财-25 财用食生取运 +- **条件**:财用食生成格(R-财-06);行运。 +- **判定**:财食重而身轻者,喜行助身之运;财食轻而身重者,仍行财食之运。七煞运不忌;行官、印运反晦。 +- **出处**:第三十四篇·论财取运 +- **原文**:「财用食生,财食重而身轻,则喜助身;财食轻而身重,则仍行财食。煞运不忌,官印反晦矣。」 + +### R-财-26 财格佩印取运 +- **条件**:财格佩印成格(R-财-07);行运。 +- **判定**:运喜官乡(官印相生之地);身弱逢官,最喜印旺之运。 +- **出处**:第三十四篇·论财取运 +- **原文**:「财格佩印,运喜官乡,身弱逢之,最喜印旺。」 + +### R-财-27 财用食印取运 +- **条件**:财用食印成格(R-财-08);行运。 +- **判定**:财轻者喜行财、食之运;身轻者喜行比、印之运。官运有碍;七煞运反不忌。 +- **出处**:第三十四篇·论财取运 +- **原文**:「财用食印,财轻则喜财食,身轻则喜比印,官运有碍,煞反不忌也。」 + +### R-财-28 财带伤官取运 +- **条件**:财带伤官之格(化劫生财者见 R-财-15);行运。 +- **判定**:行财运则亨;七煞运不利;行官、印运亦未见其美。 +- **出处**:第三十四篇·论财取运 +- **原文**:「财带伤官,财运则亨,煞运不利,运行官印,未见其美矣。」 + +### R-财-29 财带七煞取运 +- **条件**:财带七煞而得救应之格(合煞存财 R-财-16,或制煞生财 R-财-17);行运。 +- **判定**:不论合煞、制煞,运皆喜食伤、身旺之方。 +- **出处**:第三十四篇·论财取运 +- **原文**:「财带七煞。不论合煞制煞,运喜食伤身旺之方。」 + +### R-财-30 财用煞印取运 +- **条件**:财用煞印成格(R-财-19);行运。 +- **判定**:印旺之运最宜;逢财运必忌(财坏印而党煞);伤官、食神之方亦任意可行。 +- **出处**:第三十四篇·论财取运 +- **原文**:「财用煞印,印旺最宜,逢财必忌。伤食之方,亦任意矣。」 + +--- + +## 8. 命例 + +论财篇自带命例如下(论财取运篇无命例): + +| 命例 | 四柱 | 书中判定 | 示范规则 | +|---|---|---|---| +| 葛参政 | 壬申、壬子、戊午、乙卯 | 财虽两透而露,唯其生官(时透乙官),所以不忌 | R-财-03 财旺生官露不忌 | +| 杨待郎 | 壬寅、壬寅、庚辰、辛巳 | 财用食生,身强不露官,略带一位比劫,益觉有情 | R-财-06 财用食生 | +| 曾参政 | 乙未、甲申、丙申、庚寅 | 财格佩印,印取贵(财印不相碍) | R-财-07 财格佩印 | +| (无名,反例) | 乙未、己卯、庚寅、辛巳 | 乙与己两不相能,即有好处,小富而已 | R-财-21 财印相并 | +| 吴榜眼 | 庚戌、戊子、戊子、丙辰 | 庚与丙隔两戊而不相克,食与印两不相碍 | R-财-08 财用食印兼用 | +| 平江伯 | 壬辰、乙巳、癸巳、辛酉 | 食印虽相克,而存巳中戊官,去食护官 | R-财-18 去食护官 | +| 汪学士 | 甲子、辛未、辛酉、壬辰 | 甲透未库,逢辛为劫,壬伤化劫生财 | R-财-15 财用伤官化劫 | +| 毛状元 | 乙酉、庚辰、甲午、戊辰 | 乙庚相合,合煞存财 | R-财-16 合煞存财 | +| 李御史 | 庚辰、戊子、戊寅、甲寅 | 庚制甲煞,制煞生财 | R-财-17 制煞生财 | +| 赵待郎 | 乙丑、丁亥、己亥、丙子 | 冬土逢煞印,化煞而即以解冻,又不露财杂印,所以贵 | R-财-19 财用煞印 | +| 林尚书 | 丙寅、癸巳、癸未、壬戌 | 癸生巳月,单透丙财而贵,月令有暗官 | R-财-09 月令暗官 | +| 王太仆 | 丙辰、癸巳、壬戌、壬寅 | 壬生巳月,透丙藏戊,弃煞就财而贵 | R-财-10 弃煞就财 | +| 一尚书 | 丙辰、丙申、丙午、壬辰 | 劫刃太重,弃财就煞,变之又变 | R-财-04 弃财就煞变格 | + +> 存疑:「杨待郎」「赵待郎」之「待郎」疑为「侍郎」之传抄异文,原文如此,未改。 + + diff --git a/rules/13_印绶格.md b/rules/13_印绶格.md new file mode 100644 index 0000000..900dc83 --- /dev/null +++ b/rules/13_印绶格.md @@ -0,0 +1,224 @@ +# 子平真诠 · 印绶格 + + + + +## 1. 格之定义 + +### R-印-01 印绶格(正偏同格) +- **条件**:以日干对月令本气取十神,月令为印绶(正印或偏印)。 +- **判定**:定为印绶格。印绶以生身为用,正印、偏印同为美格,不分偏正,同为一格而论。 +- **出处**:第三十五篇·论印绶 +- **原文**:「印绶喜其生身,正偏同为美格,故财与印不分偏正,同为一格而论之。」 + +### R-印-02 变格:化印为劫,弃印就财官 +- **条件**:月令为印;地支与月支会局(如寅午会火),印绶之气随局化为比劫;四柱另见财官可取。 +- **判定**:变格。格随会支所化而变,弃印不用,转就四柱财官取用;为「变之又变」。 +- **出处**:第三十五篇·论印绶 +- **原文**:「至于化印为劫;弃之以就财官,如赵知府命,丙午、庚寅、丙午、癸已,则变之又变者矣。」 +> 存疑:命例干支「癸已」之「已」非地支用字,疑当作「癸巳」(本篇「己未、甲戌、辛未、癸已」同)。 + +--- + +## 2. 成格条件 + +### R-印-03 印格透官(官印相生) +- **条件**:月令为印;四柱透正官。 +- **判定**:成格。正官不独取其生印,即可以为用,与用煞者不同;身旺印强亦不愁太过,只要官星清纯。 +- **出处**:第三十五篇·论印绶 +- **原文**:「有印而透官者,正官不独取其生印,而即可以为用,与用煞者不同。故身旺印强,不愁太过,只要官星清纯。」 + +### R-印-04 印格透官兼带伤食(伤食有制) +- **条件**:月令为印;透官;又透伤官或食神,而伤食被他干所制(如壬伤被戊制、己食被乙制),不能碍官。 +- **判定**:成格而贵。伤食有制,不伤官星,格仍清。 +- **出处**:第三十五篇·论印绶 +- **原文**:「然亦有带伤食而贵者,则如朱尚书命,丙戌、戊戌、辛未、壬辰,壬为戊制,不伤官也。又如临淮侯命,乙亥、己卯、丁酉、壬寅,己为乙制,己不碍官也。」 + +### R-印-05 印格用伤食泄秀 +- **条件**:月令为印;身强、印旺,恐其太过;透伤官或食神泄身。 +- **判定**:成格。身强印旺,以伤食泄身以为秀气。 +- **出处**:第三十五篇·论印绶 +- **原文**:「有印而用伤食者,身强印旺,恐其太过,泄身以为秀气。」 + +### R-印-06 印格用七煞(煞印相生) +- **条件**:月令为印;透七煞;且身重印轻、或身轻印重,身与印有所偏、有所不足。 +- **判定**:成格。偏官本非美物,藉其生印,不得已而用之;必身印一轻一重、有所不足,始为有情。 +- **出处**:第三十五篇·论印绶 +- **原文**:「有用偏官者,偏官本非美物,藉其生印,不得已而用之。故必身重印轻,或身轻印重,有所不足,始为有性。」 +> 存疑:「始为有性」之「有性」,诸本多作「有情」,疑似传抄异文。 + +### R-印-07 印格用煞兼带伤食 +- **条件**:月令为印;透七煞;又带伤官或食神制煞。 +- **判定**:成格而贵。用煞而有制,生身而有泄,不论身旺印重,皆为贵格。 +- **出处**:第三十五篇·论印绶 +- **原文**:「有用煞而兼带伤食者,则用煞而有制,生身而有泄,不论身旺印重,皆为贵格。」 + +### R-印-08 印多用财 +- **条件**:月令为印;印重身强;透财以抑印之太过;财星根深。 +- **判定**:成格。印重身强,透财抑其太过,权而用之;只要财星根深,无妨财破(印)。 +- **出处**:第三十五篇·论印绶 +- **原文**:「有印多而用财者,印重身强,透财以抑太过,权而用之,只要根深,无防财破。」 +> 存疑:「无防财破」疑当作「无妨财破」。 + +### R-印-09 印重财轻兼露伤食(就富不贵) +- **条件**:月令为印;印重财轻;又透伤官或食神,财与食伤相生。 +- **判定**:成格而降。财星得伤食相生,轻而不轻,可以就富,但不贵。 +- **出处**:第三十五篇·论印绶 +- **原文**:「即或印重财轻而兼露伤食,财与食相生,轻而不轻,即可就富,亦不贵矣。」 + +--- + +## 3. 破格条件 + +### R-印-10 印浅身轻而用层层伤食 +- **条件**:月令为印;印浅、身轻;而四柱叠用伤官食神。 +- **判定**:破格。身弱印浅,不堪层层伤食之泄,为寒贫之局。 +- **出处**:第三十五篇·论印绶 +- **原文**:「若印浅身轻,而用层层伤食,则寒贫之局矣。」 + +### R-印-11 身印并重而用七煞 +- **条件**:月令为印;身与印并重(无所偏轻偏重);而用七煞。 +- **判定**:破格。身印两旺无亏,更添煞生印,非孤则贫。 +- **出处**:第三十五篇·论印绶 +- **原文**:「若身印并重而用七煞,非孤则贫矣。」 + +### R-印-12 贪财破印 +- **条件**:月令为印;印轻财重;又无劫财制财以救。 +- **判定**:破格。为贪财破印,贫贱之局。 +- **出处**:第三十五篇·论印绶 +- **原文**:「若印轻财重,又无劫财以救,则为贪财破印,贫贱之局也。」 + +--- + +## 4. 败中有救(救应) + +### R-印-13 财重破印,得劫财为救 +- **条件**:月令为印;印轻财重(财破印);四柱有劫财制财。 +- **判定**:败中有救。劫财制去财星,印得救而格复成。 +- **出处**:第三十五篇·论印绶 +- **原文**:「若印轻财重,又无劫财以救,则为贪财破印,贫贱之局也。」(反言:有劫财救则不坠贪财破印。) + +### R-印-14 印格带食伤混财,得合而清 +- **条件**:月令为印;印重财轻而兼带伤食;得干合去其混——或合印存食(如乙合庚,印被合而不生日干,食伤得专其秀),或合财存食。 +- **判定**:败中有救,转贵。本为财食相混、富而不贵之局,得合则清,所以为贵。 +- **出处**:第三十五篇·论印绶 +- **原文**:「然亦有带食而贵者,何也?如庚寅、乙酉、癸亥、丙辰,此牛监薄命,乙合庚而不生癸,所以为贵,若合财存食,又可类推矣。如己未、甲戌、辛未、癸已,此合财存食之贵也。」 +> 存疑:「牛监薄」他本多作「牛监簿」(职官名);「癸已」疑当作「癸巳」。 + +### R-印-15 印格官煞竞透,合煞或有制 +- **条件**:月令为印;官与煞并透;得合去其煞(合煞留官),或有食伤制煞。 +- **判定**:败中有救,皆为贵格。官煞混杂本为忌,合之、制之则清。 +- **出处**:第三十五篇·论印绶 +- **原文**:「又有印而兼透官煞者,或合煞,或有制,皆为贵格。如辛亥、庚子、甲辰、乙亥,此合煞留官也;壬子、癸卯、丙子、己亥、此官煞有制也。」 + +### R-印-16 印透七煞,劫财存煞印 +- **条件**:月令为印;透七煞;又透劫财(如庚煞、乙劫并透,劫财合煞/护局)。 +- **判定**:败中有救,亦有贵格。然此格毕竟难看,宜细详之。 +- **出处**:第三十五篇·论印绶 +- **原文**:「更有印透七煞,而劫财以存煞印,亦有贵格,如庚戌、戊子、甲戌、乙亥是也。然此格毕竟难看,宜细详之。」 + +--- + +## 5. 喜忌总表 + +| 格局情形 | 喜 | 忌 | +|---|---|---| +| 印格用官(R-印-03/04) | 官星清纯;伤食有制 | 官煞混杂;伤食无制碍官 | +| 印格用伤食(R-印-05/10) | 身强印旺,伤食泄秀 | 印浅身轻而层层伤食 | +| 印格用煞(R-印-06/07/11) | 身印偏柱(一轻一重);煞兼伤食制之 | 身印并重而用煞;煞无制化 | +| 印格用财(R-印-08/09/12/13) | 印重身强、财根深;财重得劫财救 | 印轻财重无救(贪财破印) | +| 官煞竞透(R-印-15) | 合煞留官;食伤制煞 | 官煞并透而无合无制 | + +> 总纲之「吉神顺用、凶神逆用」同样适用于印格:印为吉神宜生护(喜官煞相生),煞虽凶神,藉生印而得用(见 R-纲-01、R-纲-03)。 + +--- + +## 6. 格局高低 + +### R-印-17 高低在清纯与身印偏柱 +- **条件**:印格既成,评其高低。 +- **判定**:官印格以官星清纯为高,杂煞(无合无制)则浊;用煞格以身印有所偏(身重印轻或身轻印重)为有情,身印并重为下(非孤则贫);印格用财兼食者,得合则清而贵,不得合则就富不贵。 +- **出处**:第三十五篇·论印绶 +- **原文**:「只要官星清纯」「故必身重印轻,或身轻印重,有所不足,始为有性」「即可就富,亦不贵矣」。 + +### R-印-18 变格与难局 +- **条件**:印格逢会支化劫(R-印-02),或印透煞而透劫财(R-印-16)。 +- **判定**:化印为劫、弃就财官者,为「变之又变」之格;劫财存煞印者虽贵而「毕竟难看」,须逐字细详,不可轻断。 +- **出处**:第三十五篇·论印绶 +- **原文**:「则变之又变者矣」「然此格毕竟难看,宜细详之。」 + +--- + +## 7. 取运 + +### R-印-19 印格用官:喜财、伤食运 +- **条件**:印格用官,官星透出且印重;行财运、伤食运。 +- **判定**:财运反吉,伤食之方亦最利。 +- **出处**:第三十六篇·论印绶取运 +- **原文**:「其印绶用官者,官露印重,财运反吉,伤食之方,亦为最利。」 + +### R-印-20 用官带伤食:喜官印运,忌伤食运,煞运不忌 +- **条件**:印格用官而兼带伤食;行官旺、印绶、伤食、七煞诸运。 +- **判定**:运喜官旺、印绶之乡;伤食运为害;逢煞不忌。 +- **出处**:第三十六篇·论印绶取运 +- **原文**:「若用官而带伤食,运喜官旺印绶之乡,伤食为害,逢煞不忌矣。」 + +### R-印-21 印格用伤食:喜财与伤食运,忌官运,煞运反福 +- **条件**:印格用伤食(泄秀);行财、伤食、官、煞诸运。 +- **判定**:财运反吉,伤食运亦利;行官运反见其灾;煞运反能为福。 +- **出处**:第三十六篇·论印绶取运 +- **原文**:「印绶而用伤食,财运反吉,伤食亦利,若行官运,反见其灾,煞运则反能为福矣。」 + +### R-印-22 印格用七煞:喜伤食、身旺运,大忌财运 +- **条件**:印格用七煞;行伤食、身旺、财运。 +- **判定**:运喜伤食,身旺之方亦为美地;一见财乡,其凶立至。 +- **出处**:第三十六篇·论印绶取运 +- **原文**:「印用七煞,运喜伤食,身旺之方,亦为美地,一见财乡,其凶立至。」 + +### R-印-23 用煞兼带伤食:喜身旺、印、伤食运,忌官财运 +- **条件**:印格用煞而兼带伤食;行身旺、印绶、伤食、官、财诸运。 +- **判定**:运喜身旺、印绶之方,伤食运亦美;逢官遇财,皆不吉。 +- **出处**:第三十六篇·论印绶取运 +- **原文**:「若用煞而兼带伤食,运喜身旺印绶之方,伤食亦美,逢官遇财,皆不吉也。」 + +### R-印-24 印格遇财(印多用财):喜劫、官、印运,忌财运 +- **条件**:印格而局带财星(印多用财之类);行劫、官、印、财诸运。 +- **判定**:运喜劫地,官运、印运亦亨通;财乡则忌。 +- **出处**:第三十六篇·论印绶取运 +- **原文**:「印绶遇财,运喜劫地,官印亦亨,财乡则忌。」 + +### R-印-25 官煞竞透:喜食伤、印旺身旺运,忌官煞、财运 +- **条件**:印格而官煞竞透;行伤官、食神、印旺、身旺、官煞、财诸运。 +- **判定**:运喜食神伤官,印旺身旺之方行之亦利;若运再透官煞、或行财运,立见其灾。 +- **出处**:第三十六篇·论印绶取运 +- **原文**:「印格而官煞竞透,运喜食神伤官,印旺身旺,行之亦利。若再透官煞,行财运,立见其灾矣。」 + +### R-印-26 印用食伤而印轻者:财运亦忌 +- **条件**:印格用食伤泄秀,而印轻;行财运。 +- **判定**:印轻者亦不利见财(财坏印,泄秀之局失所恃)。 +- **出处**:第三十六篇·论印绶取运 +- **原文**:「印用食伤,印轻者亦不利见财也。」 + +--- + +## 8. 命例 + +| 四柱 | 书中判定 | 示范规则 | +|---|---|---| +| 丙寅、戊戌、辛酉、戊子(张参政) | 印格透官,身旺印强、官星清纯,贵 | R-印-03 | +| 丙戌、戊戌、辛未、壬辰(朱尚书) | 印格透官带伤,壬伤被戊制,不伤官,贵 | R-印-04 | +| 乙亥、己卯、丁酉、壬寅(临淮侯) | 印格透官带食,己食被乙制,不碍官,贵 | R-印-04 | +| 戊戌、乙卯、丙午、乙亥(李状元) | 身强印旺,用伤食泄秀,贵 | R-印-05 | +| 己巳、癸酉、癸未、庚申(茅状元) | 印格用煞,身轻印重,贵 | R-印-06 | +| 壬寅、戊申、壬辰、壬寅(马参政) | 印格用煞,身重印轻,贵 | R-印-06 | +| 辛酉、丙申、壬申、辛亥(汪侍郎) | 印多用财,印重身强、财根深,贵 | R-印-08 | +| 庚寅、乙酉、癸亥、丙辰(牛监薄) | 印重财轻带食,乙合庚、印不生身,合印存食而贵 | R-印-14 | +| 己未、甲戌、辛未、癸已 | 合财存食之贵 | R-印-14 | +| 辛亥、庚子、甲辰、乙亥 | 印格官煞并透,合煞留官,贵 | R-印-15 | +| 壬子、癸卯、丙子、己亥 | 印格官煞并透,官煞有制,贵 | R-印-15 | +| 丙午、庚寅、丙午、癸已(赵知府) | 寅午会火,化印为劫,弃印就财官,变之又变 | R-印-02 | +| 庚戌、戊子、甲戌、乙亥 | 印透七煞,劫财存煞印,贵;此格难看,宜细详 | R-印-16 | + +> 存疑:「牛监薄」他本多作「牛监簿」;两见「癸已」之「已」非地支用字,疑皆当作「癸巳」。 + + diff --git a/rules/14_食神格.md b/rules/14_食神格.md new file mode 100644 index 0000000..a6ebbca --- /dev/null +++ b/rules/14_食神格.md @@ -0,0 +1,211 @@ +# 子平真诠 · 食神格 + + + + +## 1. 格之定义 + +### R-食-01 食神格之定义 +- **条件**:月令本气为食神(日干所生、与日干同阴阳之神);寅申巳亥、辰戌丑未月食神不透而透他干、或会支化为他神者,格随透与会而变,依总纲 R-纲-07、R-纲-08。 +- **判定**:定为食神格。食神为四吉神之一,顺用:本属泄气,以其能生财,所以喜之。 +- **出处**:第三十七篇·论食神 +- **原文**:「食神本属泄气,以其能生正财,所以喜之。」 + +> 存疑:「能生正财」——食神与日干同阴阳,其所生之同性财为偏财;此处「正财」当为财之泛称,他本或作「能生财」。 + +--- + +## 2. 成格条件 + +### R-食-02 食神生财 +- **条件**:月令食神;财星透出天干(正偏不必叠出)且地支有根;身强食旺。 +- **判定**:成格,且为大贵之格。食神泄身生财,身强食旺而财透者最贵。 +- **出处**:第三十七篇·论食神 +- **原文**:「故食神生财,美格也。财要有根,不必偏正叠出,如身强食旺而财透,大贵之格。」 + +### R-食-03 弃食就煞印 +- **条件**:月令食神;不透财;透七煞与印绶,以煞印为用。 +- **判定**:成格,最为威权显赫。食格不就财而就煞印,威权之贵。 +- **出处**:第三十七篇·论食神 +- **原文**:「若不用财而就煞印,最为威权显赫。」 + +### R-食-04 单露偏官(无印无财) +- **条件**:月令食神;无印绶透出;单透七煞;无财透干(藏支不碍,如胡会元造戌中藏辛仍成)。 +- **判定**:成格,为贵格。关键在于无财——无财则食不生财、财不党煞,食得制煞为用。 +- **出处**:第三十七篇·论食神 +- **原文**:「若无印绶而单露偏官,只要无财,亦为贵格。」 + +### R-食-05 金水食神用煞 +- **条件**:月令食神;日主为金、生于水月或柱成金水之势(金水食神);透七煞。 +- **判定**:成格,贵而且秀。金水食神得煞,取其调候与制配之美。 +- **出处**:第三十七篇·论食神 +- **原文**:「若金水食神而用煞,贵而且秀。」 + +### R-食-06 单用食神有气 +- **条件**:月令食神;不透财、不透煞印,单以食神为用。 +- **判定**:成格(食神有气),但贵贱系于运:行财运则富,无财运则贫。 +- **出处**:第三十七篇·论食神 +- **原文**:「至若单用食神,作食神有气,有财运则富,无财运则贫。」 + +> 存疑:「作食神有气」之「作」字疑为传抄异文,他本多作「但(但食神有气)」。 + +### R-食-07 官煞竞出 +- **条件**:月令食神;官星与七煞并透(或并见)于四柱。 +- **判定**:亦可成局,但不甚贵。食神能制煞,官煞并见则格局不清,故降等。 +- **出处**:第三十七篇·论食神 +- **原文**:「至于食神而官煞竞出,亦可成局,但不甚贵耳。」 + +### R-食-08 食神合煞存财 +- **条件**:月令食神;柱中透煞亦透财;有字与煞相合(合去其煞),使煞不能为害而财星得存。 +- **判定**:成格,最为贵格。合去其煞而独存其财,去忌存喜,故最贵。 +- **出处**:第三十七篇·论食神 +- **原文**:「更有食神合煞存财,最为贵格。」 + +--- + +## 3. 破格条件 + +### R-食-09 印夺食(枭印夺食) +- **条件**:月令食神;印绶(枭印)透出或旺盛,直接克伤食神;无财透出制印。**但煞印同透、可弃食就煞印者不为破**(转 R-食-03,如书中常国公造两辛夺食,以就煞印成格)。 +- **判定**:破格。食神以泄身生财为用,印来夺食则用神受伤。 +- **出处**:第三十七篇·论食神 +- **原文**:「更有印来夺食,透财以解,亦有富贵。」(其无解者即破;透财之解救见 R-食-12) + +### R-食-10 食神忌官 +- **条件**:月令食神;官星透出(金水食神除外,见 R-食-15)。 +- **判定**:破格(忌)。食神与官相碍,官来则食不能安其用;惟金水食神不忌见官。 +- **出处**:第三十七篇·论食神 +- **原文**:「食神忌官,金水不忌,即金水伤官可见官之谓。」 + +### R-食-11 食神透煞忌见财 +- **条件**:月令食神;七煞透出;又见财星透出,且财与煞之间无食神间隔(财能生煞)。 +- **判定**:破格(忌)。食神本可制煞,见财则财反党煞、泄食之气,煞无制矣。 +- **出处**:第三十七篇·论食神 +- **原文**:「至若食神透煞。本忌见财……」 + +--- + +## 4. 败中有救(救应) + +### R-食-12 印夺食,透财以解 +- **条件**:月令食神;印来夺食(R-食-09 之破格情形);财星透出制印。 +- **判定**:救应成立,亦有富贵。财能损印护食,去其夺食之忌;富贵程度须就全局之势而断。 +- **出处**:第三十七篇·论食神 +- **原文**:「更有印来夺食,透财以解,亦有富贵,须就其全局之势而断之。」 + +### R-食-13 财先煞后,食以间之 +- **条件**:月令食神;煞透而本忌见财(R-食-11);但财星在前(年月)、煞在后(时),食神居于财煞之间。 +- **判定**:救应成立,亦可就贵。食隔于财煞之间,财不能越食而生煞,党煞之忌自解。 +- **出处**:第三十七篇·论食神 +- **原文**:「而财先煞后,食以间之,而财不能党煞,亦可就贵。」 + +### R-食-14 夏火木焦,透印不碍 +- **条件**:月令食神;夏月火太炎(木日火令之类,火炎木焦之候);印绶透出。 +- **判定**:带忌而不忌,不碍成格。食神虽忌印,火炎木焦之时得印润泽制火,调候所需,透印反不为害。 +- **出处**:第三十七篇·论食神 +- **原文**:「至于食神忌印,夏火太炎而木焦,透印不碍。」 + +### R-食-15 金水食神,见官不忌 +- **条件**:月令食神;金水食神(金日水月或柱成金水之势);官星透出。 +- **判定**:带忌而不忌。即「金水伤官可见官」之理——冬金寒水,得官(火)调候,故不忌。 +- **出处**:第三十七篇·论食神 +- **原文**:「食神忌官,金水不忌,即金水伤官可见官之谓。」 + +--- + +## 5. 喜忌总表 + +| 喜(宜见) | 条件与依据 | +|---|---| +| 财星(透干有根) | 食神生财为美格;财不必偏正叠出(R-食-02) | +| 身旺(身强食旺) | 泄之有力,生财之源不绝(R-食-02) | +| 煞印(弃财就煞印) | 不用财者,威权显赫(R-食-03) | +| 单煞(无印无财时) | 食制煞为用(R-食-04) | +| 煞(金水食神) | 贵而且秀(R-食-05) | +| 印(夏火木焦时) | 调候所需,透印不碍(R-食-14) | +| 官(金水食神时) | 金水不忌见官(R-食-15) | + +| 忌(不宜见) | 条件与依据 | +|---|---| +| 印(枭印夺食) | 伤用神;透财可解(R-食-09、R-食-12) | +| 官(金水食神除外) | 食神忌官(R-食-10) | +| 财与煞并透而无间隔 | 财党煞、泄食(R-食-11;财先煞后食间之则解,R-食-13) | +| 官煞竞出 | 成局而不甚贵(R-食-07) | +| 财星偏正叠出 | 富贵不巨(R-食-17) | + +--- + +## 6. 格局高低 + +### R-食-16 高格诸相 +- **条件**:食神格成,分别具备下列配合:①身强食旺而财透有根;②弃食就煞印;③金水食神用煞;④食神合煞存财。 +- **判定**:由高而贵——身强食旺而财透者大贵;就煞印者最为威权显赫;金水用煞者贵而且秀;合煞存财者最为贵格。 +- **出处**:第三十七篇·论食神 +- **原文**:「如身强食旺而财透,大贵之格。」「若不用财而就煞印,最为威权显赫。」「若金水食神而用煞,贵而且秀。」「更有食神合煞存财,最为贵格。」 + +### R-食-17 低格及减色相 +- **条件**:食神格成而有下列情形之一:①藏食露伤(月令藏食而伤官透干);②财星偏正叠出;③夏木用财而火炎土燥;④官煞竞出。 +- **判定**:各有所减——藏食露伤者主人性刚;偏正叠出者富贵不巨;夏木火炎土燥者贵多就武(贵而趋于武职);官煞竞出者成局而不甚贵。 +- **出处**:第三十七篇·论食神 +- **原文**:「藏食露伤,主人性刚。」「偏正叠出,富贵不巨。」「夏木用财,火炎土燥,贵多就武。」「亦可成局,但不甚贵耳。」 + +--- + +## 7. 取运 + +### R-食-18 食神生财局之取运 +- **条件**:食神格以食神生财成局(R-食-02)。 +- **判定**:财重食轻者,行财运、食伤运为喜;财与食俱重者,喜行帮身运(比劫印绶);官煞之方,俱为不美。 +- **出处**:第三十八篇·论食神取运 +- **原文**:「食神生财,财重食轻,则行财食,财食重则喜帮身。官煞之方,俱为不美。」 + +### R-食-19 食用煞印局之取运 +- **条件**:食神格弃食就煞印成局(R-食-03)。 +- **判定**:运喜印旺之乡,切忌财运(财坏印也)。若身旺,行食伤运亦为福运,行官运、煞运亦为吉。 +- **出处**:第三十八篇·论食神取运 +- **原文**:「食用煞印,运喜印旺,切忌财乡。身旺,食伤亦为福运,行官行煞,亦为吉也。」 + +### R-食-20 食伤带煞局之取运 +- **条件**:食神格带煞(食伤与煞并见)。 +- **判定**:喜行印绶运;身旺者行食伤运亦为美运;财运最忌(财生煞而泄食)。若食太重而煞轻,行印运最利(印制食伤以护煞),此时逢财运反吉。 +- **出处**:第三十八篇·论食神取运 +- **原文**:「食伤带煞,喜行印绶,身旺,食伤亦为美运,财则最忌。若食太重而煞轻,印运最利,逢财反吉矣。」 + +### R-食-21 食神太旺而带印局之取运 +- **条件**:食神格,食神太旺,且带印绶。 +- **判定**:运最利财(财泄食而损印,两用其宜),行食伤运亦吉;印运最忌;官运、煞运皆不吉。 +- **出处**:第三十八篇·论食神取运 +- **原文**:「食神太旺而带印,运最利财,食伤亦吉,印则最忌,官煞皆不吉也。」 + +### R-食-22 食神带印、透财以解局之取运 +- **条件**:食神格,印来夺食而透财以解(R-食-12 之救应局)。 +- **判定**:运喜财旺之乡(护财以制印),行食伤运亦吉;印运与官煞运皆忌。 +- **出处**:第三十八篇·论食神取运 +- **原文**:「若食神带印,透财以解,运喜财旺,食伤亦吉,印与官煞皆忌也。」 + +--- + +## 8. 命例 + +| 命例 | 四柱 | 书中判定 | 示范规则 | +|---|---|---|---| +| 梁丞相 | 丁未、癸卯、癸亥、癸丑 | 食神生财,大贵之格 | R-食-02、R-食-16 | +| 谢阁老 | 己未、壬申、戊子、庚申 | 食神生财,大贵之格 | R-食-02、R-食-16 | +| 沈路分 | 丁亥、癸卯、癸卯、甲寅 | 藏食露伤,主人性刚 | R-食-17 | +| 龚知县 | 甲午、丁卯、癸丑、丙辰 | 偏正叠出,富贵不巨 | R-食-17 | +| 黄都督 | 己未、己巳、甲寅、丙寅 | 夏木用财,火炎土燥,贵多就武 | R-食-17 | +| 常国公 | 辛卯、辛卯、癸酉、己未 | 不用财而就煞印,最为威权显赫 | R-食-03、R-食-16 | +| 胡会元 | 戊戌、壬戌、丙子、戊戌 | 无印单露偏官、无财,亦为贵格 | R-食-04 | +| 舒尚书 | 丁亥、壬子、辛巳、丁酉 | 金水食神用煞,贵而且秀 | R-食-05、R-食-16 | +| 钱参政 | 丙午、癸巳、甲子、丙寅 | 夏火太炎而木焦,透印不碍 | R-食-14 | +| 刘提台 | 癸酉、辛酉、己卯、乙亥 | 食神透煞见财,财先煞后食以间之,亦可就贵 | R-食-13 | + +> 存疑:①龚知县命原文作「职甲午」,「职」字疑为「如」字传抄之误;②黄都督命原文作「己未、已巳」,「已巳」当为「己巳」;③舒尚书命原文作「职丁亥」,「职」为衍字(与①同类)。 + +--- + +## 附:取运篇情形覆盖核对 + +取运篇五类与本篇对应:食神生财 → R-食-18;食用煞印 → R-食-19;食伤带煞(含食太重煞轻之变) → R-食-20;食神太旺而带印 → R-食-21;食神带印透财以解 → R-食-22。论格篇成格六类(生财、煞印、单煞、金水用煞、单用食神、合煞存财)与破格救应(夺食透财、财煞间隔、夏火透印、金水见官)均已分别落入 §2–§4 各条。 + + diff --git a/rules/15_偏官格.md b/rules/15_偏官格.md new file mode 100644 index 0000000..754e98c --- /dev/null +++ b/rules/15_偏官格.md @@ -0,0 +1,200 @@ +# 子平真诠 · 偏官格(七煞) + + + + + +## 1. 格之定义 + +### R-杀-01 偏官格之定义(逆用为贵) +- **条件**:月令本气为日干之七煞(偏官);或依总纲透干、会支变化定格为七煞者。 +- **判定**:定偏官格。煞为凶神,**逆用**——宜制之化之;控制得宜则煞为我用,反主大贵,故大贵的格多存七煞。 +- **出处**:第三十九篇·论偏官 +- **原文**:「煞以攻身,似非美物,百大贵之格,多存七煞。盖控制得宜,煞为我用……此王侯将相所以多存七煞也。」 + +### R-杀-02 弃命从煞归外格 +- **条件**:满盘皆煞,日主无根,不能自立。 +- **判定**:此为弃命从煞,属外格,于杂格(外格)篇详之;本篇食制、印化、用财诸法概不适用。 +- **出处**:第三十九篇·论偏官 +- **原文**:「乃若弃命从煞,则于外格详之。」 + +--- + +## 2. 成格条件 + +### R-杀-03 煞用食制(诸格之上) +- **条件**:月令七煞;四柱透食神制煞;煞旺、食强而日主有根身健。 +- **判定**:成格。偏官诸式以食制为最上;煞旺食强而身健者,极为贵格。 +- **出处**:第三十九篇·论偏官 +- **原文**:「煞用食制者,上也,煞旺食强而身健,极为贵格。」 + +### R-杀-04 煞用印绶,印贵有情 +- **条件**:月令七煞;透印化煞;印与煞同通月令(印之根与煞同出月令藏干),为印有情。 +- **判定**:成格。印能护煞,本非偏官所宜;惟印有情,便为贵格。 +- **出处**:第三十九篇·论偏官 +- **原文**:「有七煞用印者,印能护煞,本非所宜,而印有情,便为贵格。」 + +> 补注:煞印格**兼透伤官**者,原书无专条;印能制伤,作不碍格论(E2E 验证:辛日午月透己印壬伤之造,依 R-纲-03 处理)。 + +### R-杀-05 煞重身轻,转食就印 +- **条件**:月令七煞;煞重身轻,用食制则日主不能当;转而就印化煞(印虽不通根月令亦可)。 +- **判定**:成格而降等——为无情而有情,格亦许贵,但不大。 +- **出处**:第三十九篇·论偏官 +- **原文**:「亦有煞重身轻,用食则身不能当,不若转而就印,虽不通根月令,亦为无情而有情。格亦许贵,但不大耳。」 + +### R-杀-06 食被印制,用财去印存食 +- **条件**:月令七煞;透食(伤)制煞,而食被印克制、不能伏煞;复透财(得位,如居时干),财克印而存食。 +- **判定**:成格。财本党煞、非偏官所喜;惟财能去印存食,使食得清而制煞,兼生不足之煞,两得其用,尤为大贵。 +- **出处**:第三十九篇·论偏官 +- **原文**:「有煞而用财者,财以党煞,本非所喜,而或食被制,不能伏煞,而财以去印存食,便为贵格。」「生煞即以制煞,两得其用,尤为大贵。」 +> 存疑:「生煞即以制煞」一句文义艰涩(或谓财生煞与食制煞并行不悖、两得其用),不敢强解,存原文俟考。 + +### R-杀-07 身重煞轻煞化印,借财清格 +- **条件**:月令七煞;身重煞轻;煞又化印(煞印相生),用神不清;透财。 +- **判定**:成格。借财以清格(财损印而煞清,且助煞之不及),亦为贵格。 +- **出处**:第三十九篇·论偏官 +- **原文**:「又有身重煞轻,煞又化印,用神不清,而借财以清格,亦为贵格。」 + +### R-杀-08 杂气七煞取清 +- **条件**:生于辰戌丑未月,月令藏煞(杂气七煞);干头取清而用(不透财亦可)。 +- **判定**:成格。杂气七煞,干头取清者用之,即不透财以清用,亦可取贵。 +- **出处**:第三十九篇·论偏官 +- **原文**:「更有杂气七煞,干头不透财以清用,亦可取贵。」 +> 存疑:此句句读有歧——或读作「干头不透财以清用,亦可取贵」(不必透财,取清即贵),或疑有夺字;未敢裁决,存之。 + +### R-杀-09 煞格杂官,去留取清 +- **条件**:月令七煞,复见正官混杂(透干);局中有字能去官或去煞(克、冲、合去其一)。 +- **判定**:去官留煞、或去煞留官,取清则贵。月令偏官者煞为用而官非用,各从其重,故煞格去官留煞,其清如此;若正官格杂煞而去官留煞,则不能如是之清。 +- **出处**:第三十九篇·论偏官 +- **原文**:「有煞而杂官者,或去官,或去煞,取清则贵。」「岂知月令偏官,煞为用而官非用,各从其重。若官格杂煞而去官留煞,不能如是之清矣。」 + +### R-杀-10 煞无食制,用印当煞 +- **条件**:月令七煞;四柱无食制煞;支会印局(或印透)以化煞。 +- **判定**:成格。以印化煞为权宜之成格(与 R-杀-04 之「印有情」、R-杀-05 之「转食就印」相参)。 +- **出处**:第三十九篇·论偏官 +- **原文**:「有煞无食制而用印当者。」 +> 存疑:取运篇与此相应之格局作「用刃当煞」(见 R-杀-21),本篇作「用印当」;按赵员外命(戊辰、甲寅、戊寅、戊午)寅午会火,火为戊日之印而午为戊日之刃,印刃同宫,二说相通而措辞有别,并存之。 + +--- + +## 3. 破格条件 + +### R-杀-11 食制格忌露财透印 +- **条件**:煞用食制成格;复透财,或复透印(且无 R-杀-13、R-杀-14 之救应)。 +- **判定**:破格。财能转食生煞(食不制煞而转生财、财转生煞),印能去食护煞(夺食则煞无制)。 +- **出处**:第三十九篇·论偏官 +- **原文**:「煞用食制,不要露财透印,以财能转食生煞,而印能去食护煞也。」 + +### R-杀-12 煞强食泄而印露则破 +- **条件**:煞强而食弱(食泄于制煞、力不足以当之);复透印。 +- **判定**:破格(破局)。 +- **出处**:第三十九篇·论偏官 +- **原文**:「若煞强食泄而印露,则破局矣。」 +> 存疑:「食泄」之确指原文未明(或谓食被煞泄而弱,或谓食泄日主之气),大义为制煞之食不足任而印复夺食,故破。 + +--- + +## 4. 败中有救(救应) + +### R-杀-13 财先食后,财反为用 +- **条件**:煞用食制而透财(本忌);但财居食之前(年月为先、日时为后),财生煞而食以制之。 +- **判定**:败中有救,格成大贵。 +- **出处**:第三十九篇·论偏官 +- **原文**:「然而财先食后,财生煞而食以制之……则格成大贵。」 + +### R-杀-14 印先食后,食太重得印制 +- **条件**:煞用食制而透印(本忌);但印居食之前,且食太旺(制煞太过),印制食以损其太过。 +- **判定**:败中有救,格成大贵。 +- **出处**:第三十九篇·论偏官 +- **原文**:「或印先食后,食太旺而印制,则格成大贵。」 + +--- + +## 5. 喜忌总表 + +| 格局情形 | 喜(透干 / 会支 / 行运) | 忌(透干 / 会支 / 行运) | 依据规则 | +|---|---|---|---| +| 煞用食制 | 透食制煞;煞旺食强、日主有根 | 透财(转食生煞)、透印(去食护煞);正官混杂;运畏印绶夺食 | R-杀-03、11、16 | +| 食制带忌得救 | 财先食后;印先食后而食太旺 | 煞强食泄而印露 | R-杀-12、13、14 | +| 煞用印绶 | 印与煞同通月令(有情);伤官运、印绶运、身旺运 | 财运坏印 | R-杀-04、17 | +| 煞重身轻就印 | 印(虽不通根月令) | 食(身弱不能当制) | R-杀-05 | +| 用财去印存食 | 透财(去印存食);伤食运、财运、煞运 | 印;劫财运 | R-杀-06、18 | +| 用财助煞清格 | 财足则食、印、帮身;财未足则财旺、露煞 | —— | R-杀-07、19 | +| 煞格杂官 | 去官留煞或去煞留官,取清;身轻喜助身、食轻喜助食 | 官煞并留不清;行运去取清之物、伤制煞之神 | R-杀-09、20 | +| 煞无食制,印/刃当煞 | 支会印局;煞轻刃重喜助煞,刃轻煞重喜制伏;印运不忌 | 官运混杂(七煞既纯,杂官不利) | R-杀-10、21 | +| 通论 | 制煞太过者,行财印运亦发福 | 执「制煞不可太过」之说而废财印运 | R-杀-22 | + +--- + +## 6. 格局高低 + +### R-杀-15 偏官诸格之高下 +- **条件**:偏官成格,评其高低。 +- **判定**:煞用食制而煞旺食强身健者,极等之贵,诸式最上;用财去印存食、生煞制煞两得其用者,尤为大贵;煞印有情者贵;煞重身轻转而就印者,无情而有情,贵而不大。 +- **出处**:第三十九篇·论偏官 +- **原文**:「煞用食制者,上也。」「两得其用,尤为大贵。」「格亦许贵,但不大耳。」 + +--- + +## 7. 取运 + +### R-杀-16 煞用食制之取运 +- **条件**:煞用食制成格;行运(大运干支)。 +- **判定**:煞重食轻者,运喜助食;煞轻食重者,运喜助煞;煞食均而日主根轻者,运喜助身。**忌行官运混杂(正官混煞),畏行印运夺食。** +- **出处**:第四十篇·论偏官取运 +- **原文**:「煞用食制,煞重食轻则助食,煞轻食重则助煞,煞食均而日主根轻则助身。忌正官之混杂,畏印绶之夺食。」 + +### R-杀-17 煞用印绶之取运 +- **条件**:煞用印绶成格;行运。 +- **判定**:不利行财乡(财坏印);伤官运为美;印绶运、身旺运,俱为福地。 +- **出处**:第四十篇·论偏官取运 +- **原文**:「煞用印绶,不利财乡,伤官为美,印绶身旺,俱为福地。」 + +### R-杀-18 用财去印存食之取运 +- **条件**:七煞用财、以财去印存食之格(R-杀-06);行运。 +- **判定**:不利行劫财运(劫财夺财);伤官、食神运皆吉;喜财运、怕印运;行煞运(透煞)亦顺。 +- **出处**:第四十篇·论偏官取运 +- **原文**:「其以财而去印存食者,不利劫财,伤食皆吉,喜财怕印,透煞亦顺。」 + +### R-杀-19 用财助煞之取运 +- **条件**:七煞用财、以财助煞不及之格(身重煞轻,R-杀-07);行运。 +- **判定**:财已足者,运喜食、印与帮身;财未足者,运喜财旺而露煞(煞透干)。 +- **出处**:第四十篇·论偏官取运 +- **原文**:「其以财而助煞不及者,财已足,则喜食印与帮身;财未足,则喜财旺而露煞。」 + +### R-杀-20 煞带正官取清之取运 +- **条件**:煞格杂官、已取清之局(R-杀-09,不论去官留煞或去煞留官);行运。 +- **判定**:身轻者运喜助身,食轻者运喜助食。**不可行运去其取清之物(所赖以去官/去煞之字),不可伤其制煞之神(食)。** +- **出处**:第四十篇·论偏官取运 +- **原文**:「煞带正官,不论去官留煞,去煞留官,身轻则喜助身,食轻则喜助食。莫去取清之物,无伤制煞之神。」 + +### R-杀-21 煞无食制、用刃当煞之取运 +- **条件**:煞无食制、以刃敌煞之格(本篇论格作「用印当」,见 R-杀-10);行运。 +- **判定**:煞轻刃重者,运喜助煞;刃轻煞重者,运宜制伏(食伤制煞)。局中无食,则印运无夺食之患,不为忌(「无食可夺,印运何伤」)。七煞既纯,行官运混杂不利。 +- **出处**:第四十篇·论偏官取运 +- **原文**:「煞无食制而用刃当煞,煞轻刃重则喜助煞,刃轻煞重,则宜制伏,无食可夺,印运何伤?七煞既纯,杂官不利。」 + +### R-杀-22 制煞太过,财印运亦发福 +- **条件**:煞用食制而制之太过(食重煞轻);行运。 +- **判定**:书言「制煞不可太过」虽有理,然行财运、印运亦能发福(财泄食生煞、印损食护煞,皆是调剂),不可执一而论。 +- **出处**:第三十九篇·论偏官 +- **原文**:「至书有制煞不可太过之说,虽亦有理,然运行财印,亦能发福,不可执一也。」 + +--- + +## 8. 命例 + +本篇命例皆出第三十九篇·论偏官;第四十篇·论偏官取运无命例。 + +- **乙亥、乙酉、乙卯、丁丑** → 书中判定:煞用食制,煞旺食强而身健,「极等之贵也」 → 示范 R-杀-03(兼 R-杀-15)。 +- **脱脱丞相:壬辰、甲戌、丙戌、戊戌** → 书中判定:辰中暗煞,壬以透之;戊食坐四支、食太重,透甲印以损太过,「岂非贵格」 → 示范 R-杀-14(印先食后)。 +> 存疑:第二柱原文作「甲胡」,十干十二支无「胡」字,显系传抄之误,通行本作「甲戌」;未敢自改,录以存疑。 +- **何参政:丙寅、戊戌、壬戌、辛丑** → 书中判定:戊与辛同通月令(戌中藏戊辛),是煞印有情,贵格 → 示范 R-杀-04。 +- **周丞相:戊戌、甲子、丁未、庚戌** → 书中判定:戊被(甲)制不能伏煞,时透庚财,去印存食以清食,兼生不足之煞;「生煞即以制煞,两得其用,尤为大贵」 → 示范 R-杀-06。 +- **刘运使:甲申、乙亥、丙戌、庚寅** → 书中判定:身重煞轻,煞又化印,用神不清,借(庚)财以清格,亦为贵格 → 示范 R-杀-07。 +- **岳统制:癸卯、丁巳、庚寅、庚辰** → 书中判定:月令偏官而官透,「去官留煞也」,取清则贵 → 示范 R-杀-09。 +- **沈郎中:丙子、甲午、辛亥、辛卯** → 书中判定:「子冲午而克煞,是去煞留官也」 → 示范 R-杀-09(官煞去留之对照例)。 +> 存疑:此造月令午火为辛日七煞,按上文「月令偏官,煞为用而官非用」之说,煞格似应去官留煞;而此造去煞留官,其理原文未明言,存疑俟考。 +- **赵员外:戊辰、甲寅、戊寅、戊午** → 书中判定:「有煞无食制而用印当者」——甲煞透而无食制,寅午会火,以印(刃)化敌其煞 → 示范 R-杀-10(兼参 R-杀-21)。 + + diff --git a/rules/16_伤官格.md b/rules/16_伤官格.md new file mode 100644 index 0000000..0ff171b --- /dev/null +++ b/rules/16_伤官格.md @@ -0,0 +1,236 @@ +# 子平真诠 · 伤官格 + + + + +## 1. 格之定义 + +### R-伤-01 伤官格之定义与逆用 +- **条件**:月令本气为日干之伤官(日干所生而阴阳相异之五行),或月令藏干透出伤官而格随透干变。 +- **判定**:定格为伤官格。伤官为凶神,**逆用**——宜佩印制伏之、宜生财化泄之。伤官虽非吉神,实为秀气,文人学士多于此格得之。 +- **出处**:第四十一篇·论伤官 +- **原文**:「伤官虽非吉神,实为秀气,故文人学士,多于伤官格内得之。」 + +### R-伤-02 伤官多变化,不可执一 +- **条件**:已定为伤官格,论成败高低之前。 +- **判定**:伤官格局比他格多、变化尤多,须查其气候、量其强弱、审其喜忌、观其纯杂,逐项审察,不得执一端而论。 +- **出处**:第四十一篇·论伤官 +- **原文**:「其中格局比他格多,变化尤多,在查其气候,量其强弱,审其喜忌,观其纯杂,微之又微,不可执也。」 + +--- + +## 2. 成格条件 + +### R-伤-03 伤官生财(伤官用财) +- **条件**:月令伤官;四柱透财,以伤生财;日干强而有根。 +- **判定**:成格,贵格。伤官本为生官之碍所以为凶,伤转而生财、以伤为生官之具,则转凶为吉,故最利;惟须身强有根方为贵格。 +- **出处**:第四十一篇·论伤官 +- **原文**:「伤官生财,则以伤官为生官之具,转凶为吉,故最利。只要身强而有根,便为贵格。」 + +### R-伤-04 化伤为财 +- **条件**:月令伤官;干透财星,财通根于月令,或地支会成财局,使伤官之气化为财(如辛日亥月透甲,甲通根亥,又会未成木局,化水为木)。 +- **判定**:成格,大为秀气,秀气尤有过於伤官生财者。 +- **出处**:第四十一篇·论伤官 +- **原文**:「至于化伤为财,大为秀气。」「干头之甲,通根于亥,然又会未成局,化水为木,化之生财,尤为有情。」 + +### R-伤-05 财伤有情(财与伤同根月令) +- **条件**:月令伤官;财星与伤官同根于月令藏干(如丙日丑月,己与庚同根于丑)。 +- **判定**:成格。其秀气与化伤为财不相上下。 +- **出处**:第四十一篇·论伤官 +- **原文**:「至于财伤有情,与化伤为财者,其秀气不相上下。」「己与庚同根月令是也。」 + +### R-伤-06 伤官佩印 +- **条件**:月令伤官;伤官旺;日干稍弱;四柱透印,印根深。 +- **判定**:成格,贵格。印能制伤,所以为贵;与常格相反,此格反要伤官旺、身稍弱,始为秀气。 +- **出处**:第四十一篇·论伤官 +- **原文**:「有伤官佩印者,印能制伤,所以为贵,反要伤官旺,身稍弱,始为秀气。」 + +> 补注:伤官佩印而**身强**者,原书无专条。E2E 验证(己日巳月造:伤印两旺而身得禄得令)落于此条与 R-伤-12 破格三要件之间,作「成格而降等」论——属推断,非原文,用者知悉。 + +### R-伤-07 伤官兼用财印 +- **条件**:月令伤官;财与印并透。两情形:伤官生财格中财太旺而带印,或伤官佩印格中印太重而带财;财印在干头两清而不相碍(参 R-伤-16)。 +- **判定**:成格,贵格。财印相克本不并用,惟干头两清、互不相碍,且一重一轻、调停中和,遂为贵格;反是则财印不并用而不秀。 +- **出处**:第四十一篇·论伤官 +- **原文**:「有伤官兼用财印者,财印相克,本不并用,只要干头两清而不相碍;又必生财者,财太旺而带印,佩印者印太重而带财,调停中和,遂为贵格。」「反是则财印不并用而不秀矣。」 + +### R-伤-08 伤官用煞印 +- **条件**:月令伤官;伤官多而日干弱;四柱透煞与印,赖煞生印以帮身而制伤;财不透干(藏支不碍,如蔡贵妃造未中藏乙仍成)。 +- **判定**:成格,贵格。煞因伤而有制,印得煞生而帮身制伤,两得其宜;只要无财,便为贵格。 +- **出处**:第四十一篇·论伤官 +- **原文**:「有伤官用煞印者,伤多身弱,赖煞生印以邦身而制伤。」「煞因伤而有制,两得其宜,只要无财,便为贵格。」 + +> 存疑:书中夏阁老造仅录三柱(疑脱时柱),以身稍强、印藏寅不透而判入此局,与「身弱」「透印」字面有张力;本条按多数命例核之,「无财」实为财不透干。 + +### R-伤-09 金水伤官用官 +- **条件**:日干为金、月令为水(金水伤官);四柱透官;兼透财与印为辅;官星与伤官不并透(如藏伤露官)。 +- **判定**:成格,贵格。伤官见官,他格不用,金水伤官独宜;然要财印为辅,不可官与伤并透。 +- **出处**:第四十一篇·论伤官 +- **原文**:「有伤官用官者,他格不用,金水独宜,然要财印为辅,不可伤官并透。」 + +### R-伤-10 冬金用官兼化伤为财 +- **条件**:金水伤官生于冬月(亥子月);透官;又化伤为财(伤官之气化为财星,转而生官)。 +- **判定**:成格,极秀极贵。 +- **出处**:第四十一篇·论伤官 +- **原文**:「若冬金用官,而又化伤为财,则尤为极秀极贵。」 + +### R-伤-11 非金水伤官见官 +- **条件**:非金水伤官(日干非金、或月令非水)而四柱见官;局已化伤为财(伤化为财,作财旺生官论,不作伤官见官论)。 +- **判定**:成格。化伤为财,则伤非其伤,以财旺生官论,不以伤官见官论。 +- **出处**:第四十一篇·论伤官 +- **原文**:「然亦有非金水而见官,何也?化伤为财,伤非其伤,作财旺生官而不作伤官见官。」 + +--- + +## 3. 破格条件 + +### R-伤-12 佩印格伤轻身重而印多 +- **条件**:伤官佩印格;伤官轻、日干重(身强);印绶多见,偏正印叠出。 +- **判定**:破格,贫穷之格。印旺极深本不必多见,偏正叠出反为不秀;伤轻身重而印绶多见,则秀气尽掩。 +- **出处**:第四十一篇·论伤官 +- **原文**:「然印旺极深,不必多见,偏正叠出,反为不秀,故伤轻身重而印绶多见,贫穷之格也。」 + +### R-伤-13 金水用官而孤官无辅或官伤并透 +- **条件**:金水伤官用官格;官星孤立、无财印为辅;或官星与伤官并透。 +- **判定**:破格,发福不大。 +- **出处**:第四十一篇·论伤官 +- **原文**:「若孤官无辅,或官伤并透,则发福不大矣。」 + +### R-伤-14 用煞印而见财 +- **条件**:伤官用煞印格;四柱透财。 +- **判定**:破格,不贵。此格以「无财」为贵格之条件,见财则坏印、党煞,格破。 +- **出处**:第四十一篇·论伤官 +- **原文**:「只要无财,便为贵格。」(反推:有财即非贵格) + +### R-伤-15 官煞并透而不能取清 +- **条件**:伤官格;官与七煞并透;干头不能取清(无合去其一之字,又非金水得清之局)。 +- **判定**:破格。官煞并透而不清,空有结构,不能成格。 +- **出处**:第四十一篇·论伤官 +- **原文**:「至于伤官而官煞并透,只要干头取清,金水得之亦清,不然则空结构而已。」 + +--- + +## 4. 败中有救(救应) + +### R-伤-16 财印相克以间隔为救 +- **条件**:伤官兼用财印而财印相克(带忌);财印二干在干头被他干间隔,两不相碍(如丁与壬隔以戊己)。 +- **判定**:救应成立,格复成而贵。财印本相克不并用,得间隔则两清而不相碍,财印并美。 +- **出处**:第四十一篇·论伤官 +- **原文**:「财印相克,本不并用,只要干头两清而不相碍。」「而丁与壬隔以戊已,两不碍。」 +> 存疑:「隔以戊已」之「已」疑为「己」之传抄异文,前后两见皆然;不代为改。 + +### R-伤-17 官煞并透以取清为救 +- **条件**:伤官格官与七煞并透(带忌);干头取清(去其一干,或金水伤官格官煞并透而自得清)。 +- **判定**:救应成立。官煞并透本为浊,取清则成;金水伤官格得官煞并透亦清。 +- **出处**:第四十一篇·论伤官 +- **原文**:「至于伤官而官煞并透,只要干头取清,金水得之亦清,不然则空结构而已。」 + +--- + +## 5. 喜忌总表 + +| 格局情形 | 喜(干/支) | 忌(干/支) | 依据 | +|---|---|---|---| +| 伤官生财 | 财透干;身强有根 | 身弱无根 | R-伤-03 | +| 化伤为财 | 财透而通根、支会财局 | 冬金生财富而冻水不生木(化木者不在此忌) | R-伤-04、R-伤-19 | +| 伤官佩印 | 印透而根深;伤旺身弱 | 印多偏正叠出;伤轻身重 | R-伤-06、R-伤-12 | +| 伤官兼用财印 | 财印两清相间隔;一重一轻调停中和 | 财印相碍(紧挨相克) | R-伤-07、R-伤-16 | +| 伤官用煞印 | 煞印并透;无财 | 财透 | R-伤-08、R-伤-14 | +| 金水伤官用官 | 官透,财印为辅;官伤不并透 | 孤官无辅;官伤并透 | R-伤-09、R-伤-13 | +| 伤官官煞并透 | 干头取清;金水得清 | 浊而不清 | R-伤-15、R-伤-17 | +| 气候 | 夏木见水、冬金见火(秀之尤秀) | 冬金伤官生财而冻水不能生木 | R-伤-18、R-伤-19 | + +--- + +## 6. 格局高低 + +### R-伤-18 夏木见水、冬金见火,秀之尤秀 +- **条件**:伤官格;夏月木伤官(木日干生于巳午月)而透水(印),或冬月金伤官(金日干生于亥子月)而透火(官)。 +- **判定**:格局高。伤官本为秀气,得此气候配合,则为秀之尤秀者。 +- **出处**:第四十一篇·论伤官 +- **原文**:「而夏木见水,冬金见火,则又为秀之尤秀者也。」 + +### R-伤-19 冬金伤官生财不贵,化木则秀 +- **条件**:冬月金伤官(金日干生于亥子月)用财;仅伤官生财而水冻寒者;若干透木、支会木局,化水为木(化伤为财)者。 +- **判定**:冬金伤官生财,以冻水不能生木,虽成格而不贵;若化伤为财(化木),财不待生,则秀而贵。 +- **出处**:第四十一篇·论伤官 +- **原文**:「所以伤官生财,冬金不贵,以冻水不能生木。若乃化木,不待于生,安得不为殿元乎?」 + +### R-伤-20 佩印而夏木逢润,其秀百倍 +- **条件**:伤官佩印格;伤官旺、印根深、身又弱;木日干生于夏月(火月)而得水(印)滋润。 +- **判定**:格局最高,可至一品之贵。 +- **出处**:第四十一篇·论伤官 +- **原文**:「伤官旺,印根深,身又弱,又是夏木逢润,其秀百倍,所以一品之贵。」 + +### R-伤-21 金水多寒得火融和 +- **条件**:伤官局而金水偏盛、气候觉寒(不限金水日元——书中都统制造为戊日酉月土金伤官,亦以此论);得火(官)融和调候。 +- **判定**:格局高。寒金冷水得火调停中和,则格由秀而贵。 +- **出处**:第四十一篇·论伤官 +- **原文**:「且金水多而觉寒,得火融和。」 + +--- + +## 7. 取运 + +### R-伤-22 伤官用财之取运 +- **条件**:伤官生财格。财旺而身轻者,行印运、比劫运;身强而财浅者,行财运、伤官运。 +- **判定**:财旺身轻,行印比之运利;身强财浅,行财运喜,伤官运亦宜。 +- **出处**:第四十二篇·论伤官取运 +- **原文**:「伤官用财,财旺身轻,则利印比;身强财浅,则喜财运,伤官亦宜。」 + +### R-伤-23 伤官佩印之取运 +- **条件**:伤官佩印格。行官运、七煞运;行印运;行伤食运;行财运。 +- **判定**:行官煞运最宜,印运亦吉,伤食运无碍;行财运则凶。 +- **出处**:第四十二篇·论伤官取运 +- **原文**:「伤官佩印,运行官煞为宜,印运亦吉,伤食不碍,财地则凶。」 + +### R-伤-24 伤官兼用财印之取运 +- **条件**:伤官兼用财印格。局中财多而带印者,行印运(助印);局中印多而带财者,行财运(助财)。 +- **判定**:财多带印,运喜助印;印多带财,运喜助财。随其偏重而扶其轻者。 +- **出处**:第四十二篇·论伤官取运 +- **原文**:「伤官而兼用财印,其财多而带印者,运喜助印,印多而带财者,运喜助财。」 + +### R-伤-25 伤官用煞印之取运 +- **条件**:伤官用煞印格。行印运;行伤食运;行官运(杂官);行财运。 +- **判定**:印运最利,伤食运亦亨;杂官运非吉;逢财运即危。 +- **出处**:第四十二篇·论伤官取运 +- **原文**:「伤官而用煞印,印运最利,伤食亦亨,杂官非吉,逢财即危。」 + +### R-伤-26 伤官带煞之取运(煞轻) +- **条件**:伤官带七煞格。通例喜印忌财;若伤官重而七煞轻者,行印运、财运。 +- **判定**:伤官带煞,行印运喜、行财运忌;然伤重煞轻者,运喜印而财运亦吉。 +- **出处**:第四十二篇·论伤官取运 +- **原文**:「伤官带煞,喜印忌财,然伤重煞轻,运喜印而财亦吉。」 + +### R-伤-27 伤官带煞之取运(七煞根重) +- **条件**:伤官带七煞格;七煞根重者。行伤食运;行印绶运、身旺运;行财运。 +- **判定**:七煞根重,则运喜伤食(制煞),印绶、身旺运亦吉;而逢财运为凶。 +- **出处**:第四十二篇·论伤官取运 +- **原文**:「惟七根重,则运喜伤食,印绶身旺亦吉,而逢财为凶矣。」 +> 存疑:「惟七根重」疑脱「煞」字,当作「七煞根重」;不代为补。 + +### R-伤-28 伤官用官之取运 +- **条件**:金水伤官用官格。行财运、印运;行食伤运。若局中官星露而财印两旺者,行比劫运、伤官运。 +- **判定**:运喜财、印,不利食伤;若官露而财印两旺,则比劫、伤官运亦吉。 +- **出处**:第四十二篇·论伤官取运 +- **原文**:「伤官用官,运喜财印,不利食伤,若局中官露而财印两旺,则比劫伤官,未绐非吉矣。」 +> 存疑:「未绐非吉」之「绐」疑为「尝」之传抄异文;不代为改。 + +--- + +## 8. 命例 + +1. **壬午、己酉、戊午、庚申**(史春芳)→ 伤官生财,身强有根,贵格 → R-伤-03 之示范。 +2. **甲子、乙亥、辛未、戊子**(罗状元)→ 辛日亥月透甲,甲通根于亥又会未成木局,化水为木、化伤生财,秀气发越,殿元 → R-伤-04、R-伤-19 之示范。 +3. **己卯、丁丑、丙寅、庚寅**(秦龙图)→ 丙日丑月,己与庚同根月令,财伤有情,秀气与化伤为财不相上下 → R-伤-05 之示范。 +4. **壬申、丙午、申午、壬申**(孛罗平章)→ 伤官佩印,伤官旺、印根深、身又弱,夏木逢润,其秀百倍,一品之贵 → R-伤-06、R-伤-20 之示范。 + > 存疑:第三柱「申午」干支失配(天干配地支不可能为申午),疑脱天干,或为「甲午」;不代为补。 +5. **丁酉、己酉、戊子、壬子**(都统制)→ 伤官生财而财太重带印,丁与壬隔以戊己两不相碍,金水多寒得火融和,贵 → R-伤-07、R-伤-16、R-伤-21 之示范。 +6. **壬戌、己酉、戊午、丁巳**(某丞相)→ 伤官佩印而印太重带财,丁与壬隔以戊己不相碍,贵至丞相 → R-伤-07、R-伤-16 之示范。 +7. **己未、丙子、庚子、丙子**(蔡贵妃)→ 伤官用煞印,伤多身弱,赖煞生印帮身制伤,无财,贵格 → R-伤-08 之示范。 +8. **壬寅、丁未、丙寅**(夏阁老)→ 伤官用煞印,煞因伤而有制、两得其宜,无财,贵格 → R-伤-08 之示范。 + > 存疑:原文仅录三柱,疑脱时柱;不代为补。 +9. **戊申、甲子、庚午、丁丑**(某丞相)→ 金水伤官用官,藏癸(伤)露丁(官),戊甲(印财)为辅,官又得禄,丞相之格 → R-伤-09 之示范。 +10. **丙申、己亥、辛未、己亥**(郑丞相)→ 冬金用官而又化伤为财,极秀极贵 → R-伤-10 之示范。 +11. **甲子、壬申、己亥、辛未**(章丞相)→ 非金水而见官,然化伤为财、伤非其伤,作财旺生官而不作伤官见官,贵至丞相 → R-伤-11 之示范。 + + diff --git a/rules/17_阳刃格.md b/rules/17_阳刃格.md new file mode 100644 index 0000000..e63a345 --- /dev/null +++ b/rules/17_阳刃格.md @@ -0,0 +1,154 @@ +# 子平真诠 · 阳刃格 + + + + +## 1. 格之定义 + +### R-刃-01 阳刃之定义 +- **条件**:日干为五阳干(甲、丙、戊、庚、壬);月令为禄前一位(甲日卯月、丙戊日午月、庚日酉月、壬日子月)。 +- **判定**:定为阳刃格。阳刃为劫我正财之神、正财之七煞;惟五阳干有之,不曰劫而曰刃,言其劫之甚也。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「阳刃者,劫我正财之神,乃正财之七煞也。禄前一位,惟五阳有之,故为旭刃。不曰劫而曰刃,劫之甚也。」 + +> 存疑:「故为旭刃」之「旭刃」疑为「阳刃」传抄之讹,原文如此,姑存之。 + +--- + +## 2. 成格条件 + +### R-刃-02 刃宜伏制,官煞皆宜(逆用大纲) +- **条件**:阳刃格;四柱透官或透煞以制刃。 +- **判定**:成格之大路。刃宜伏制,官煞皆可为制刃之用;制刃而财印相随者,尤为贵显。阳刃用煞与他格相反:他格以煞能伤身,故喜制伏、忌财印;阳刃用煞则赖煞以制刃,不怕伤身,故**反喜财印,忌制伏其煞**。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「刃宜伏制,官煞皆宜,财印相随,尤为贵显。」「岂知他格以煞能伤身,故喜制伏,忌财印;阳刃用之,则赖以制刃,不怕伤身,故反喜财印,忌制伏也。」 + +### R-刃-03 阳刃用官,透刃不虑 +- **条件**:阳刃格;天干透正官制刃;即或别柱再透劫刃之干。 +- **判定**:成格。官能制刃,刃透而不为害,不以为忌。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「阳刃用官,透刃不虑。」「盖官能制刃,透而不为害。」 + +### R-刃-04 丙生午月,尤宜带财佩印 +- **条件**:丙日主生午月(午中藏己土,可以克水,暗伤水官水煞);用官煞制刃。 +- **判定**:成格之配合要求。丙火午刃内藏己土克水,故用官煞制刃时尤宜带财(生官煞)佩印(护官煞、制己土)。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「其于丙生午月,内藏己土,可以克水,尤宜带财佩印。」 + +### R-刃-05 戊生午月,化刃为印 +- **条件**:戊日主生午月;天干透丙火;地支会火。 +- **判定**:成格之变。午中丁印透丙、支又会火,则化刃为印;此时或官或煞透出,则去刃存印,其格愈清。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「若戊生午月,干透丙火,支会火乙,则化刃为印,或官或煞,透则去刃存印其格愈清。」 + +> 存疑:「支会火乙」文义不通,疑为「支会火局」传抄之讹,未敢擅改。 + +### R-刃-06 阳刃用财,须伤食转生(变通用法) +- **条件**:阳刃格;以财为用;财星根深;且有伤食透出,转刃生财(刃生伤食、伤食生财)。 +- **判定**:变格可成,主富。阳刃用财本为格所不喜,得伤食通关则刃不克财,虽不比建禄月劫之可以取贵,亦可就富。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「更若阳刃用财,格所不喜,然财根深而用伤食,以转刃生财,虽不比建禄月劫,可以取贵,亦可就富。」 + +--- + +## 3. 破格条件 + +### R-刃-07 阳刃露煞,透刃无成 +- **条件**:阳刃格;天干透七煞制刃;他柱又透刃干与煞相合(如丙生午月透壬煞,又透丁,丁壬相合)。 +- **判定**:破格(透刃无成)。刃能合煞,七煞贪合忘克,不能制刃,故无功。与 R-刃-03 用官透刃不虑对看:官不受合,透刃无害;煞被刃合,透刃则败。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「阳刃露煞,透刃无成。」「盖官能制刃,透而不为害;刃能合煞,则有何功?」「丁与壬合,则七煞有贪合忘克之意,如何制刃?故无功也。」 + +### R-刃-08 化刃为印,财煞并透 +- **条件**:戊生午月化刃为印之局(干透丙火、支会火,见 R-刃-05);财星与七煞并透露干。 +- **判定**:破格。财煞并透则财坏印而生煞,犯去印存煞之忌,不作生煞制煞之例,主富贵两空。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「倘或财煞并透露,则犯去印存煞之忌,不作生煞制煞之例,富贵两空矣。」 + +### R-刃-09 刃财相搏,不成局 +- **条件**:阳刃格;以财为用而无伤食转生通关。 +- **判定**:破格。无伤食化解,则刃与财直接相搏(劫财),不能成局。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「不然,则刃与财相搏,不成局矣。」 + +--- + +## 4. 败中有救(救应) + +### R-刃-10 制刃带伤食,印护为贵 +- **条件**:阳刃格,官煞制刃而带伤食(伤食克官煞,为带忌);天干透印合住伤食。 +- **判定**:败中有救,成格而贵。印合伤食,伤食不能克官煞,官煞得以制刃,是谓印护。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「然亦有官煞制刃带伤食而贵者,何也?或是印护。」「癸水伤寅午之官,而戊以合之,所谓印护也。」 + +### R-刃-11 煞太重者,食以裁损 +- **条件**:阳刃格;七煞太重(煞多透、根深);带食神制之。 +- **判定**:败中有救,成格而贵。煞太重则制刃太过,以食神裁损其煞,轻重得宜。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「或是煞太重而裁损之。」「煞两透而根太重,食以制之,所谓裁损也。」 + +### R-刃-12 官煞竞出,合官留煞以取清 +- **条件**:阳刃格;官煞并透(混杂为忌);有干合去官星,独留煞制刃。 +- **判定**:败中有救,成格。阳刃之格利于留煞,合官存煞则煞纯而不杂,是谓取清。**合优先于克(贪合忘克)**:食既合官留煞,不以其克煞触 R-刃-02 之忌论。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「官煞轻而取清之。」「官煞竞出,而壬合丁官,煞纯而不杂。况阳刃之格,利于留煞,所谓取清也。」 + +--- + +## 5. 喜忌总表 + +| 情形 | 喜 | 忌 | +|---|---|---| +| 总纲(逆用) | 官、煞制刃;财印相随 | 官煞俱无(参 R-纲-02) | +| 阳刃用官 | 透官;财生官、印护官 | 伤食克官、合官 | +| 阳刃用煞 | 透煞制刃;财印相随(不怕伤身) | 制伏其煞;透刃合煞(贪合忘克) | +| 官煞并透 | 合官留煞取清;制伏裁损 | 官煞混杂无取清 | +| 丙生午月用官煞 | 带财佩印(制午中己土之克水) | —— | +| 戊生午月化刃为印 | 透官或透煞,去刃存印 | 财煞并透(去印存煞) | +| 阳刃用财(变格) | 财根深、伤食转刃生财 | 无伤食则刃财相搏 | + +--- + +## 6. 格局高低 + +### R-刃-13 官煞根深贵大,藏而不露或根浅贵小 +- **条件**:阳刃格以官煞制刃成格之后,审官煞之露藏与根之深浅。 +- **判定**:官煞露而根深,其贵也大;官煞藏而不露,或露而根浅,其贵也小。根浅而得财印助之者,亦可至贵(如辛酉、甲午、丙申、壬辰,透煞根浅,财印助之,亦丞相命)。 +- **出处**:第四十三篇·论阳刃 +- **原文**:「然同是官煞制刃,而格亦有高低,如官煞露而根深,其贵也大;官煞藏而不露,或露而根浅,其贵也小。」 + +--- + +## 7. 取运 + +### R-刃-14 阳刃用官之运 +- **条件**:阳刃用官成格;行大运。 +- **判定**:运喜助官(行财、官之方)。若原局官星根深,则行印绶、比劫之方反为美运;但不喜伤食及合官之运。 +- **出处**:第四十四篇·论阳刃取运 +- **原文**:「阳刃用官,则运喜助官,然命中官星根深,则印绶比劫之方,反为美运,但不喜伤食合官耳。」 + +### R-刃-15 阳刃用煞之运 +- **条件**:阳刃用煞成格;行大运;先辨原局煞之轻重。 +- **判定**:煞不甚旺,则运喜助煞(行财、煞之方);煞若太重,则运喜身旺、印绶之方,行伤食运亦不为忌。 +- **出处**:第四十四篇·论阳刃取运 +- **原文**:「阳刃用煞,煞不甚旺,则运喜助煞;煞若太重,则运喜身旺印绶,伤食亦不为忌。」 + +### R-刃-16 官煞并出之运 +- **条件**:阳刃格,原局官煞并出(不论去官或去煞取清);行大运。 +- **判定**:运喜制伏(行伤食制煞之方),身旺之运亦利;行财地、官乡反为不吉。 +- **出处**:第四十四篇·论阳刃取运 +- **原文**:「阳刃而官煞并出,不论去官去煞,运喜制伏,身旺亦利,财地官乡反为不吉也。」 + +--- + +## 8. 命例 + +1. **己酉、丙子、壬寅、丙午**(壬日子月,阳刃用官)→ 书中判定:官透有力,旺财生之,丞相命 → 示范 R-刃-02(官制刃、财相随)与 R-刃-13(官煞露而根深,贵大)。 +2. **辛酉、甲午、丙申、壬辰**(丙日午月,阳刃用煞)→ 书中判定:透煞根浅,财印助之,亦丞相命 → 示范 R-刃-02(用煞反喜财印)与 R-刃-13(根浅得财印助亦贵)。 +3. **穆同知命:甲午、癸酉、庚寅、戊寅**(庚日酉月,阳刃用官带伤)→ 书中判定:癸水伤寅午之官,而戊以合之,印护而贵 → 示范 R-刃-10。 +4. **贾平章命:甲寅、庚午、戊申、甲寅**(戊日午月,煞太重)→ 书中判定:煞两透而根太重,食以制之,裁损而贵 → 示范 R-刃-11。 +5. **丙戌、丁酉、庚申、壬午**(庚日酉月,官煞竞出)→ 书中判定:壬合丁官,煞纯而不杂,阳刃利于留煞,取清成格 → 示范 R-刃-12。 + +取运篇自带命例:本篇无。 + + diff --git a/rules/18_建禄月劫格.md b/rules/18_建禄月劫格.md new file mode 100644 index 0000000..e37bc7b --- /dev/null +++ b/rules/18_建禄月劫格.md @@ -0,0 +1,225 @@ +# 子平真诠 · 建禄月劫格 + + + + +## 1. 格之定义 + +### R-禄-01 建禄月劫同格,别取财官煞食为用 +- **条件**:月令为日干之禄(临官)或劫财;总纲第二步路由「比劫(禄/刃/劫)→ 月令无用神」且非阳干临刃者。 +- **判定**:立建禄月劫格。禄即是劫,建禄与月劫同为一格,不必加分;月令自身无用神,须于四柱透干、会支中别取财、官、煞、食为用神。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「建禄者,月建逢禄堂也,禄即是劫。」「故建禄与月劫,可同一格,不必加分,皆以透干支,别取财官煞食为用。」 + +### R-禄-02 禄堂透出仍不可依以为用 +- **条件**:月令为禄/劫,且月禄之干透出天干。 +- **判定**:仍不得即以透出之禄劫为用神;用神须在财官煞食上另取。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「或以禄堂透出,即可依以用者,非也。」 + +--- + +## 2. 成格条件 + +### R-禄-03 禄格用官,须财印相随 +- **条件**:建禄月劫格;天干透正官;财或印与官相随(透干或支藏有气皆可——书中李知府造财在年支、印在时支均不透干,亦判成格)。 +- **判定**:成格。干头透官为奇,又须财、印相随以辅之;印护者与财助者皆为贵格。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「禄格用官,干头透出为奇,又要财印相随,不可孤官无辅。」 + +### R-禄-04 用官兼带财印(三奇),以官隔之 +- **条件**:建禄月劫格;财、官、印三者俱透;官星位置间隔于财、印之间,使财印两不相伤。 +- **判定**:成格且格大。财、官、印为「三奇」,身强值之尤为贵气;其要在以官隔之,护印而财不坏印。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「有官而兼带财印者,所谓身强值三奇,尤为贵气。三奇者,财官印也,只要以官隔之,使财印两不相伤,其格便大。」 + +### R-禄-05 禄劫用财,须带伤食化劫 +- **条件**:建禄月劫格;以财为用神;四柱带食神/伤官透出或有气。 +- **判定**:成格。月令为劫而以财作用,劫与财相克,必以伤食化劫、转劫生财,格乃可成。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「禄劫用财,须带食伤,盖月令为劫而以财作用,二财相克,必以伤食化之,始可转劫生财。」 +> 存疑:「二财相克」于理不顺,疑为「劫财相克」之讹,指劫与财相克;不敢擅改,并存之。 + +### R-禄-06 会支化劫为财 +- **条件**:建禄月劫格;地支与禄劫之支会成财局(劫支会而化为财)。 +- **判定**:成格,大贵。化劫为财,尤为秀气。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「至于化劫为财,与化劫为生,尤为秀气。如己未、已巳、丁未、辛丑,丑与巳会,即以劫财之火为金局之财,安得不为大贵?」 + +### R-禄-07 化劫为生(劫化为伤食生财) +- **条件**:建禄月劫格;局中劫财之气化为伤食,由伤食转而生财。 +- **判定**:成格,秀气。化劫为生,与化劫为财同为贵局。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「如高尚书命,庚子、甲申、庚子、甲申,即以劫财之金,化为生财之水,所谓化劫为生也。」 + +### R-禄-08 禄劫用煞,必须制伏 +- **条件**:建禄月劫格;以七煞为用神;有合去煞之党(财星党煞者合去其财)、或会支成食伤局制煞。 +- **判定**:成格。禄劫用煞,必须制伏方成。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「禄劫用煞,必须制伏台,如娄参政命,丁巳、壬子、癸卯、己未,壬合丁财以去其党煞,卯未会局以制伏是也。」 +> 存疑:「必须制伏台」之「台」疑为「也」字形近之讹。 + +### R-禄-09 无财官而用伤食泄秀 +- **条件**:建禄月劫格;四柱无财官可取;用伤食泄禄劫之太过。以春木(木火)、秋金(金水)用之则贵。 +- **判定**:成格,亦为秀气。盖木逢火则明,金生水则灵;非春木秋金者泄秀减色。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「其禄劫之格,无财官而用伤食,泄其太过,亦为秀气。唯春木秋金,用之则贵,盖木逢火则明,金生水则灵。」 + +--- + +## 3. 破格条件 + +### R-禄-10 孤官无辅 +- **条件**:建禄月劫格;透官为用,而四柱无财无印相随。 +- **判定**:破格(格小难贵)。孤官无辅,难于取贵。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「若夫用官而孤官无辅,格局更小,难于取贵。」 + +### R-禄-11 用官而透伤食 +- **条件**:建禄月劫格;用官,伤食与官并透,且无合制去伤。 +- **判定**:原文作「若透伤食便不破格」;然下文紧接「然亦有官伤并透而贵者」,以「然」字转语推之,似当以「破格」为常态、合去其伤者为例外。两读并存,不断。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「若透伤食便不破格。然亦有官伤并透而贵者,何也?如己酉、乙亥、壬戌、庚子,庚合乙而去伤存官,王总兵命也。」 +> 存疑:「便不破格」与下文转语气相悖,疑为「便为破格」之讹;依通例官星忌伤,「破格」于理为顺,但原文如此,不擅改。 + +### R-禄-12 用财而不透伤食 +- **条件**:建禄月劫格;用财为用神,而伤食不透。 +- **判定**:破格(难于发端)。劫夺其财而无伤食化解,财用难发。若财透一位而不杂、地支根多,降格取富而不贵(见 R-禄-18)。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「用财而不透伤食,便难于发端,然干头透一位而不杂,地支根多,亦可取富,但不贵耳。」 + +### R-禄-13 官煞重而无制伏 +- **条件**:建禄月劫格;用官/煞而官煞重,无食伤制伏。 +- **判定**:破格。官煞太重无制,致令身危;运行制伏之地者,亦可发财(见 R-禄-22 至 R-禄-24)。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「用官煞重而无制伏,运行制伏,亦可发财,但不可官煞太重,致令身危也。」 + +--- + +## 4. 败中有救(救应) + +### R-禄-14 用煞带财,合煞存财 +- **条件**:建禄月劫格;用煞而又带财(财党煞,本为不美);有干合去其煞,存其财。 +- **判定**:败中有成,又成贵格。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「至用煞而又财,本为不美,然能去煞存财,又成贵格。戊辰、癸亥、壬午、丙午,合煞存财,袁内阁命是也。」 + +### R-禄-15 官煞竞出,取清为贵 +- **条件**:建禄月劫格;官煞并透(混);有合去其煞留官,或制伏其煞留官。 +- **判定**:败中有成。官煞竞出必取清方为贵格:合煞留官、制煞留官,二法皆可。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「更有禄劫而官煞竞出,必取清方为贵格。如一平章命,辛丑、庚寅、甲辰、乙亥、合煞留这也;如辛亥、庚写、甲申、丙寅,制煞留官也。」 +> 存疑:「合煞留这也」疑为「合煞留官也」之讹;「辛亥、庚写、甲申、丙寅」之「庚写」不成干支,按辛年正月起庚寅,疑为「庚寅」之讹。均不擅改。 + +### R-禄-16 两官竞出,须制伏其一 +- **条件**:建禄月劫格;两官并透相争;有制伏去其一者。 +- **判定**:败中有成。争正官不可无伤,制去其一则清。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「倘或两官竞出,亦须制伏,所谓争正官不可无伤也。」 + +### R-禄-17 官伤并透,合伤存官 +- **条件**:建禄月劫格;官星与伤官并透;有他干合去伤官(如庚合乙),存其官星。 +- **判定**:败中有成,仍可取贵。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「然亦有官伤并透而贵者,何也?如己酉、乙亥、壬戌、庚子,庚合乙而去伤存官,王总兵命也。」 + +--- + +## 5. 喜忌总表 + +| 用神情形 | 喜 | 忌 | 依据 | +|---|---|---|---| +| 用官 | 透官为奇;财印相随(印护/财助);三奇俱透而以官隔 | 孤官无辅;伤食并透无合制;官星逢合;七煞相乘 | R-禄-03/04/10/11/19/20 | +| 用财 | 带伤食化劫生财;财透一位不杂而支根多 | 无伤食化劫(难发);比劫夺财 | R-禄-05/06/12 | +| 用煞 | 食伤制伏;合去党煞之财 | 财党煞而不去;官煞太重无制(身危) | R-禄-08/13/14 | +| 官煞竞出 | 合煞留官、制煞留官(取清) | 混而不清 | R-禄-15 | +| 两官竞出 | 制伏去一 | 并争无伤 | R-禄-16 | +| 无财官用伤食 | 泄其太过;春木秋金尤贵 | —— | R-禄-09 | + +--- + +## 6. 格局高低 + +### R-禄-18 禄劫格高低之判 +- **条件**:格成之后,评其高低。 +- **判定**:高者三档——官兼财印三奇得隔(格大);化劫为财、化劫为生(大贵秀气);伤食泄秀而值春木秋金(木火通明、金水相涵,贵)。低者三档——孤官无辅(格小难贵);用财不透伤食而仅财纯根多(富而不贵);官煞重无制(发财可冀而身危可虞,煞太重则危)。 +- **出处**:第四十五篇·论建禄月劫 +- **原文**:「只要以官隔之,使财印两不相伤,其格便大。」「至于化劫为财,与化劫为生,尤为秀气。」「唯春木秋金,用之则贵。」「亦可取富,但不贵耳。」 + +--- + +## 7. 取运 + +> 纲领:「禄劫取运,即以禄劫所成之局,分而配之。」以下按论格篇所立各成局,逐局配运。 + +### R-禄-19 用官印护之运 +- **条件**:建禄月劫格,用官而印护成格;行财运 / 官星逢合之运 / 七煞运 / 伤食运 / 劫比运。 +- **判定**:喜财运(财生官而印不碍);怕官星逢合(合去用神);畏七煞相乘(混官)。伤食不能为害(有印回克),劫比未即为凶。 +- **出处**:第四十六篇·论建禄月劫取运 +- **原文**:「禄劫用官,印护者喜财,怕官星之逢合,畏七煞这相乘。伤食不能为害,劫比未即为凶。」 +> 存疑:「畏七煞这相乘」之「这」疑为「之」字之讹。 + +### R-禄-20 用官财生之运 +- **条件**:建禄月劫格,用官而财助(财生)成格;行印运 / 官星得根之运 / 伤食运 / 财运 / 杂煞运。 +- **判定**:喜印运;宜官星植根之运;畏伤食相侮(伤食克官);逢财运愈见其功;杂煞为碍(忌煞混官)。 +- **出处**:第四十六篇·论建禄月劫取运 +- **原文**:「财生喜印,宜官星之植根,畏伤食之相侮,逢财愈见其功,杂煞岂能无碍?」 + +### R-禄-21 用财带伤食之运 +- **条件**:建禄月劫格,用财而带伤食成格;按命中财食之轻重分运,并行煞运 / 官运。 +- **判定**:财食重者,运喜印绶,不喜比肩;财食轻者,运宜助财,不喜印比。逢煞无伤(有食制伏),遇官非福。 +- **出处**:第四十六篇·论建禄月劫取运 +- **原文**:「禄劫用财而带伤食,财食重则喜印绶,而不书法比肩;财食轻则宜助财,而不喜印比。逢煞无伤,遇官非福。」 +> 存疑:「而不书法比肩」文不成义,疑为「而不喜比肩」之讹;不擅改。 + +### R-禄-22 用煞食制之运 +- **条件**:建禄月劫格,用煞而食制成格;按命中食煞之轻重分运。 +- **判定**:食重煞轻者,运宜助煞;食轻煞重者,运喜助食。 +- **出处**:第四十六篇·论建禄月劫取运 +- **原文**:「禄劫用煞食制,食重煞轻,则运宜助煞;食轻煞重,则运喜助食。」 + +### R-禄-23 合煞存财之运 +- **条件**:建禄月劫格,用煞带财而命中已合煞存财成格;行伤食运 / 财运 / 透官之运 / 身旺之运。 +- **判定**:伤食运为宜;财运不忌;透官无虑;身旺运亦亨。 +- **出处**:第四十六篇·论建禄月劫取运 +- **原文**:「若用煞而带财,命中合煞存财,则伤食为宜,财运不忌,透官无虑,身旺亦亨。」 + +### R-禄-24 合财存煞之运 +- **条件**:建禄月劫格,用煞带财而命中合财存煞、以食制煞成格;按煞食轻重分运。 +- **判定**:煞轻则运助煞,食轻则运助食。 +- **出处**:第四十六篇·论建禄月劫取运 +- **原文**:「若命中合财存煞,而用食制,煞轻则助煞,食轻则助食则已。」 + +### R-禄-25 用伤食泄秀之运 +- **条件**:建禄月劫格,无财官而用伤食泄秀成格;行财运 / 煞运 / 印运 / 官运;兼审命中伤食是否太重。 +- **判定**:常法——财运最宜,煞亦不忌,行印非吉,透官不美。变法——若命中伤食太重,则财运固利,而印亦不忌。 +- **出处**:第四十六篇·论建禄月劫取运 +- **原文**:「禄劫而用伤食,财运最宜,煞亦不忌,行印非吉,透官不美。若命中伤食太重,则财运固利,而印亦不忌矣。」 + +### R-禄-26 官煞并出取清之运 +- **条件**:建禄月劫格,官煞并出而取清成格(不论合煞留官、存官制煞);行伤食运 / 比肩运 / 印绶运 / 财官运。 +- **判定**:运喜伤食,比肩亦宜;印绶未为良图,财官亦非福运。 +- **出处**:第四十六篇·论建禄月劫取运 +- **原文**:「禄劫而官煞并出,不论合煞留官,存官制煞,运喜伤食,比肩亦宜,印绶未为良图,财官亦非福运。」 + +--- + +## 8. 命例 + +论格篇自带命例十三则(取运篇无),作为上列规则的应用示范与测试基准: + +1. 庚戌 / 戊子 / 癸酉 / 癸亥 → 金丞相命;禄劫用官而印护,贵格 → R-禄-03(印护)之示范。 +2. 丁酉 / 丙午 / 丁巳 / 壬寅 → 李知府命;禄劫用官而财助,贵格 → R-禄-03(财助)之示范。 +3. 庚午 / 戊子 / 癸卯 / 丁巳 → 王少师命;财官印三奇俱透,以官隔之,格大 → R-禄-04 之示范。 +4. 甲子 / 丙子 / 癸丑 / 壬辰 → 张都统命;禄劫用财带食伤,转劫生财 → R-禄-05 之示范。 +5. 己未 / 己巳 / 丁未 / 辛丑 → 丑与巳会,化劫财之火为金局之财,大贵 → R-禄-06 之示范。 +6. 庚子 / 甲申 / 庚子 / 甲申 → 高尚书命;化劫财之金为生财之水,化劫为生 → R-禄-07 之示范。 +7. 丁巳 / 壬子 / 癸卯 / 己未 → 娄参政命;壬合丁财以去党煞,卯未会局制煞 → R-禄-08 之示范。 +8. 戊辰 / 癸亥 / 壬午 / 丙午 → 袁内阁命;用煞带财,合煞存财,败中成贵 → R-禄-14 之示范。 +9. 甲子 / 丙寅 / 甲子 / 丙寅 → 张状元命;春木泄秀,木火通明 → R-禄-09 之示范。 +10. 癸卯 / 庚申 / 庚子 / 庚辰 → 秋金泄秀,金水相涵 → R-禄-09 之示范。 +11. 辛丑 / 庚寅 / 甲辰 / 乙亥 → 一平章命;官煞竞出,合煞留官取清 → R-禄-15 之示范。 +12. 辛亥 / 庚写 / 甲申 / 丙寅 → 官煞竞出,制煞留官取清 → R-禄-15 之示范(「庚写」存疑,见 R-禄-15)。 +13. 己酉 / 乙亥 / 壬戌 / 庚子 → 王总兵命;官伤并透,庚合乙去伤存官而贵 → R-禄-17 之示范。 + + diff --git a/rules/19_杂格.md b/rules/19_杂格.md new file mode 100644 index 0000000..36c2270 --- /dev/null +++ b/rules/19_杂格.md @@ -0,0 +1,296 @@ +# 子平真诠 · 杂格 + + + + +## 1. 格之定义 + +### R-杂-01 杂格之定义与启用条件 +- **条件**:月令无用神(禄刃劫当令之类);且四柱天干无官无煞透出。 +- **判定**:方许以杂格(外格)论。若干头透官煞,则自有官煞为用,不列入外格;若干头透财,尚可权取外格,但财根深、或财透两位者,则以财格为重,不取外格。 +- **出处**:第四十七篇·论杂格 +- **原文**:「杂格者,月令无用,以外格而用之,其格甚多,故谓之杂。大约要干头无官无煞,方成格,如有官煞,则自有官煞为用,列外格矣。若透财尚可取格,然财根深,或财透两位,则亦以财为重,不取外格也。」 + +### R-杂-02 一切无理之格置勿取 +- **条件**:遇拱禄、拱贵、趋乾、归禄、夹戌、鼠贵、骑龙、日贵、日德、富禄、魁罡、食神时墓、两干不杂、干支一气、五行具足之类旧格名目。 +- **判定**:一概置而勿取。诸格意为牵就、硬填人格,百无一是,徒误后学。 +- **出处**:第四十七篇·论杂格 +- **原文**:「若夫拱禄、拱贵……一切无理之格,既置勿取。即古人格内,亦有成式,总之意为牵就,硬填人格,百无一是,徒误后学而已。」 + +### R-杂-03 天地双飞不可执 +- **条件**:遇天地双飞(两柱干支皆同)之式。 +- **判定**:富贵之命亦自有其正格,不全赖此式;天地双飞但能增重基格——用神不甚有用而偶依此为用者,亦成美格;然若有用之神不吉,即以为凶,不可执此式为凭。 +- **出处**:第四十七篇·论杂格 +- **原文**:「乃若天地双飞,虽富贵亦有自有格,不全赖此。而亦能增重基格,即用神不甚有用,偶有依以为用,亦成美格。然而有用神不吉,即以为凶,不可执也。」 + +### R-杂-04 伤官伤尽辨谬 +- **条件**:遇「伤官伤尽、不宜见官、行伤运便富贵」之旧说。 +- **判定**:此说非是。作者以术历试,但见贫贱、并无富贵;近亦见有大贵者,不知何故,然要之极贱者多,须观人物以衡之。不得以「伤尽」为由刻意求伤官运。 +- **出处**:第四十七篇·论杂格 +- **原文**:「不知官有何罪,而恶之如此?」「予用是术以历试,但有贫贱,并无富贵,未轻信也,近亦见有大贵者,不知何故。然要之极贱者多,不得不观其人物以衡之。」 + +--- + +## 2. 成格条件 + +### R-杂-05 一行得气格(曲直仁寿及五方秀气) +- **条件**:甲乙日主,地支全亥卯未、或全寅卯辰,又生于春月(木当令);余四行仿此——丙丁日主支全寅午戌或巳午未为炎上格,戊己日主支全辰戌丑未为稼穑格,庚辛日主支全巳酉丑或申酉戌为从革格,壬癸日主支全亥子丑或子辰(水局)为润下格。 +- **判定**:成格。本是一派劫财,以五行各得其全体,故成格;喜印透而体纯。五格意义相同。 +- **出处**:第四十七篇·论杂格;第四十八篇(附)·论杂格取运 +- **原文**:「有取五行一方秀气者,取甲乙全亥卯未、寅卯辰,又生春月之类,本是一派劫财,以五行各得其全体,所以成格,喜印露而体纯。」「五种意义相同。」 +> 存疑:取运篇润下格作「支全甲子辰或亥子丑」,「甲子辰」疑为「申子辰」之讹,照原文存录。 + +### R-杂-06 从化格 +- **条件**:日干与他干相合而化(甲己化土、乙庚化金、丙辛化水、丁壬化木、戊癸化火五种);所化之物得时乘令(生于化神当令之月);地支局全(如丁壬化木,支全亥卯未或寅卯辰,又生春月)。 +- **判定**:成格,方为大贵。化神之元神透出者尤的(如丁壬化木而透甲)。若不得令而支逢生地(如亥未之月亦是木地),亦成格而为次等之贵。 +- **出处**:第四十七篇·论杂格;第四十八篇(附)·论杂格取运 +- **原文**:「有从化取格者,要化出之物,得时乘令,四支局全。如丁壬化木,地支全亥卯未、寅卯辰,而又生于春月,方为大贵。否则,亥未之月亦是木地,次等之贵。」「时逢甲辰,木之元神透出,乃化木格。」 + +### R-杂-07 倒冲格 +- **条件**:四柱无财官明现,以支中同一字叠见(字多方冲得动)冲对宫之财官;如四戊午冲子中癸财,或午多冲子中癸官。 +- **判定**:成格。以弱主邀强官,主不众则宾不从,故支中字多是成格之要。 +- **出处**:第四十七篇·论杂格 +- **原文**:「有倒冲成格者,以四柱列财官而对面以冲之,要支中字多,方冲得动。譬如以弱主邀强官,主不众则宾不从。」 + +### R-杂-08 朝阳格 +- **条件**:辛日见戊(六辛日戊子时之式),以丙戊同禄于巳,取戊朝丙、辛得官之意;干头无木、无火。 +- **判定**:成格。戊为辛印,遥朝丙禄以为辛官,乃引汲之意。干头见火则官已明现、无待于朝;见木则财克戊印,不为我朝(破法详见 R-杂-16)。 +- **出处**:第四十七篇·论杂格 +- **原文**:「有朝阳成格者,戊去朝丙,辛日得官,以丙戊同禄于巳,即以引汲之意。要干头无木火,方成其格。」 + +### R-杂-09 合禄格 +- **条件**:命中无官星,借干支以合之。二式:戊日庚申时,以庚合乙(乙为戊官),因其主而得其偶;癸日庚申时,以申合巳(巳中戊为癸官),因其主而得其朋。 +- **判定**:成格。官星全仗合邀而得,故最忌官星填实明见(见 R-杂-15、R-杂-30)。 +- **出处**:第四十七篇·论杂格 +- **原文**:「有合禄成格者,命无官星,借干支以合之。戊日庚申,以庚合乙,因其主而得其偶……癸日庚申,以申合巳,因其主而得其朋。」 + +### R-杂-10 弃命从财格 +- **条件**:四柱皆财;日主无气(支中无日主之根、无印生身)。 +- **判定**:成格,格成大贵。日主舍命从财。若透印则身有所赖而不从,有官煞则无从财兼从煞之理,其格不成(破法见 R-杂-17)。 +- **出处**:第四十七篇·论杂格 +- **原文**:「有弃命保财者,四柱皆财而身无气,舍而从之,格成大贵。」 + +### R-杂-11 弃命从煞格 +- **条件**:四柱皆煞;日主无根。 +- **判定**:成格,格成大贵。日主舍命从煞。若有伤食则煞受制而不从,有印则印化煞而不从(破法见 R-杂-18)。 +- **出处**:第四十七篇·论杂格 +- **原文**:「有弃命从煞者,四柱皆煞,而日主无根,舍而从之,格成大贵。」 + +### R-杂-12 井栏叉格 +- **条件**:庚金日主,生于三月(辰月)或七月(申月);地支全申子辰水局,以申子辰冲寅午戌(财官印绶合而冲之)。 +- **判定**:成格。若干头透丙丁、或支有巳午,则财官明现,无待于冲,非井栏之格(见 R-杂-19)。 +- **出处**:第四十七篇·论杂格 +- **原文**:「有井拦成格者,庚金生三七月,方用此格。以申子辰冲寅午戌,财官印绶,合而冲之。」 +> 存疑:「三七月」按申子辰水局之需解为三月(辰)、七月(申);「井拦」与「井栏叉」两篇用字不一,并存。 + +### R-杂-13 刑合格 +- **条件**:癸日甲寅时;以寅刑巳,刑出巳中丙火之财、戊土之官。 +- **判定**:成格。格与合禄相似,但合禄喜以合之,刑合则硬以致之。命有庚申则寅被冲克不能刑,有戊己透干则官煞已现、无待于刑,皆非此格(见 R-杂-20)。 +- **出处**:第四十七篇·论杂格 +- **原文**:「有刑合成格者,癸日甲寅时,寅刑巳而得财官,格与合禄相似,但合禄则喜以合之,而刑合则硬以致之也。」 + +### R-杂-14 遥合格(丑遥巳、子遥巳) +- **条件**:二式。丑遥巳:辛日,支中丑多,巳与丑本同一局,丑多则会巳,遥取巳中丙火为辛官(亦合禄之意)。子遥巳:甲子日甲子时,以子遥合巳。 +- **判定**:丑遥巳成格。子遥巳辗转求合、似觉无情,作者谓此格可废,因罗御史命聊复存之,用者宜审。 +- **出处**:第四十七篇·论杂格 +- **原文**:「有遥合成格者,巳与丑会,本同一局,丑多则会巳而辛丑处官,亦合禄之意也。」「至于甲子遥已,转辗求俣,似觉无情,此格可废,因罗御史命,聊复存之。」 +> 存疑:「转辗求俣」之「俣」字疑为传抄异文,义当为「合」;「辛丑处官」「甲子遥已」之「已」当作「巳」,均照旧存录,不擅改。 + +--- + +## 3. 破格条件 + +### R-杂-15 杂格通用之破:官煞明见、财重 +- **条件**:干头透官、透煞;或财星根深、或财透两位。 +- **判定**:破杂格之资格——有官煞则自以官煞为用,财重则自以财格为重,均不得弃正格就外格(与 R-杂-01、总纲 R-纲-16 互为表里)。 +- **出处**:第四十七篇·论杂格 +- **原文**:「大约要干头无官无煞,方成格,如有官煞,则自有官煞为用,列外格矣。若透财尚可取格,然财根深,或财透两位,则亦以财为重,不取外格也。」 + +### R-杂-16 朝阳格之破:干头见火见木 +- **条件**:辛日朝阳之局,天干见火(丙丁)、或见木(甲乙)。 +- **判定**:破格。有火则官星明现,无待于朝;有木则财触戊(印)之怒,不为我朝。 +- **出处**:第四十七篇·论杂格 +- **原文**:「盖有火则无待于朝,有木财触戊之怒,而不为我朝。」 + +### R-杂-17 从财格之破:透印、见官煞 +- **条件**:从财之局,天干透印;或四柱见官煞。**印被合化者不以为破**(如王十万造两乙透印,乙庚相合而化、印不作印论,仍成从财)。 +- **判定**:破格。透印则身赖印生而不从;有官煞则亦无从财兼从煞之理,其格不成。 +- **出处**:第四十七篇·论杂格 +- **原文**:「若透印则身赖印生而不从,有官煞则亦无从财兼从煞之理,其格不成。」 + +### R-杂-18 从煞格之破:见伤食、见印 +- **条件**:从煞之局,四柱见伤官食神;或见印。**比劫无根虚浮不碍其从**(如李侍郎造天干乙乙乙甲四见而地支无根,仍成从煞)。 +- **判定**:破格。有伤食则煞受制而不从,有印则印以化煞而不从。 +- **出处**:第四十七篇·论杂格 +- **原文**:「若有伤食,则煞受制而不从,有印则印以化煞而不从。」 + +### R-杂-19 井栏叉格之破:透丙丁、见巳午 +- **条件**:井栏之局,天干透丙或丁;或地支有巳、午。 +- **判定**:破格。现有财官明见,无待于冲,非井栏之格。 +- **出处**:第四十七篇·论杂格 +- **原文**:「若透丙丁,有巳午,以现有财官,而无待于冲,乃非井拦之格矣。」 + +### R-杂-20 刑合格之破:见庚申、透戊己 +- **条件**:刑合之局,四柱有庚申;或天干透戊、己。 +- **判定**:破格。有庚申则寅木被冲克而不能刑;有戊己字则官煞现透,无待于刑,另有取用,非此格。 +- **出处**:第四十七篇·论杂格 +- **原文**:「命有庚申,则木被冲克而不能刑;有戊已字,则现透官煞而无待于刑,非此格矣。」 + +### R-杂-21 遥合格之破:见子、透官煞 +- **条件**:丑遥巳之局,四柱有子字;或天干透丙、丁、戊、己。 +- **判定**:破格。有子字则丑与子合而不遥;有丙丁戊己则辛癸日之官煞已透,无待于遥,另有取用,非此格。 +- **出处**:第四十七篇·论杂格 +- **原文**:「若命是有子字,则丑与子合而不遥,有丙丁戊已,则辛癸之官煞已透,而无待于遥,另有取用,非此格矣。」 + +--- + +## 4. 败中有救(救应) + +本篇无。两篇于杂格只论成、破与取运,未论带忌救应之法。 + +--- + +## 5. 喜忌总表 + +| 格 | 喜 | 忌 | +|---|---|---| +| 一行得气(曲直仁寿等五格) | 印透而体纯;行印绶、比劫之乡;食伤(火) | 官煞运最忌;财运(两篇小异,见 R-杂-25 存疑) | +| 从化格 | 所化之物(化神旺地、比劫乡);所化之印绶;财伤亦可 | 官煞;日主还原(生扶日干)之地;克化神之运 | +| 倒冲格 | 泄秀之运(火土从旺喜金;木火炎上喜土) | 填实最忌;水运(杯水车薪);木运逆势 | +| 朝阳格 | 土金水运;带水之木尚可行 | 火运;带火之木;木运平平 | +| 合禄格 | 金运泄秀最吉,水运亦美 | 填实;官煞;火运(克金使不能合);木运(土盛木折) | +| 弃命从财 | 伤食财乡(土金水运) | 身旺(印比,南方火乡最忌);木运亦不利 | +| 弃命从煞 | 财官(金运最美,水土亦吉) | 身旺逢根(木运);食伤运尤忌;火运逆势 | +| 井栏叉 | 财运;土金水运均美,木运亦可 | 填实;火运逆势不利 | +| 刑合格 | 木火运(从儿喜食伤财);比劫不忌(有食伤引化) | 填实;金乡(印运)不利;官煞大忌 | +| 遥合格(丑遥巳) | 土金水运 | 木火逆势;填实 | +| 子遥巳(作者按财格论) | 财星透清之运 | 庚辛申酉官煞生印为忌;午冲子、丑刑戌均忌 | + +--- + +## 6. 格局高低 + +### R-杂-22 从化格之高低:得时乘令为大贵 +- **条件**:从化之局,所化之物得时乘令(生于化神当令之月)且四支局全;对比化神生地之月(如亥未月于化木)。 +- **判定**:得令局全者方为大贵;仅逢生地者次等之贵。高低在化神之得令与否。 +- **出处**:第四十七篇·论杂格 +- **原文**:「如丁壬化木,地支全亥卯未、寅卯辰,而又生于春月,方为大贵。否则,亥未之月亦是木地,次等之贵。」 + +### R-杂-23 从财、从煞皆为大贵之格 +- **条件**:从财、从煞成格(见 R-杂-10、R-杂-11),无印、无食伤、无官煞杂之。 +- **判定**:格成大贵。所从之神专一、日主无根净尽者,格高;稍有自扶之物(印、根),即落破栏,非高低问题而是不成格(见 R-杂-17、R-杂-18)。 +- **出处**:第四十七篇·论杂格 +- **原文**:「舍而从之,格成大贵。」 + +### R-杂-24 一行得气以印露体纯为高 +- **条件**:一行得气之局,印星透干,全局气纯于一方。 +- **判定**:喜印露而体纯,体纯者高。本是一派劫财,妙在五行各得其全体,全在气之纯一。 +- **出处**:第四十七篇·论杂格 +- **原文**:「本是一派劫财,以五行各得其全体,所以成格,喜印露而体纯。」 + +--- + +## 7. 取运 + +### R-杂-25 杂格取运总原则:顺其气势 +- **条件**:杂格已成,审其气势偏旺之方。 +- **判定**:杂格大都气势偏旺、出于五行常理之外,取运大都须顺其气势;干支喜忌虽须察四柱配合,而顺势取运大致有定。逆势之运(官煞财印逆其旺势者)多忌。 +- **出处**:第四十八篇(附)·论杂格取运 +- **原文**:「偏旺之格,取运大都须顺其气势,虽干支喜忌,须察四柱之配合,而顺势取运,大致有定。」 + +### R-杂-26 一行得气格取运 +- **条件**:一行得气成格(如甲乙日主支全木局)。 +- **判定**:行运宜印绶、比劫之乡,食伤亦吉(取运篇统言宜水木火);官煞运最忌。 +- **出处**:第四十七篇·论杂格;第四十八篇(附)·论杂格取运 +- **原文**:「运亦喜印绶比劫之乡,财食亦吉,官煞则忌矣。」「宜行水木火运,官煞运最忌,财运亦不宜。」 +> 存疑:财运一条两篇相左——论杂格云「财食亦吉」,取运篇云「财运亦不宜」,并存待考。 + +### R-杂-27 从化格取运 +- **条件**:从化成格。 +- **判定**:运喜所化之物(化神旺地、比劫乡,如化木宜东方寅卯辰)与所化之印绶;财伤亦可;不利官煞;日主还原之地(生扶日干使化神不专者)亦忌。细分:丁壬化木,日元壬水,行亥子丑印地生起化神亦吉;若甲己化土而行寅卯辰木运,克我化神,为大忌。 +- **出处**:第四十七篇·论杂格;第四十八篇(附)·论杂格取运 +- **原文**:「运喜所化之物,与所化之印绶,财伤亦可,不利官煞。」「化神喜行旺地,最宜东方寅卯辰比劫乡,而忌官煞,日主还原之地亦忌……若甲已化土,而行寅卯辰,克我化神,为大忌也。」 + +### R-杂-28 倒冲格取运(火土从旺型) +- **条件**:倒冲成格、气势偏于火土者(如四戊午造)。 +- **判定**:运忌填实。最宜金运泄土之气;但火炎土燥究嫌偏枯,宜带水之土以护之,如庚辰、辛丑等运最佳。若见水运,如以一杯水救车薪之火,立见其灾——所谓倒冲最忌填实即此意。木运逆土之性、增火之焰,亦不相宜。 +- **出处**:第四十七篇·论杂格;第四十八篇(附)·论杂格取运 +- **原文**:「运忌填实,余俱可行。」「最宜金运,泄土之气……宜带水之土以护之。如庚辰、辛丑等运为最佳,若见水运,如以一杯水救车薪之火,立见其灾。」 + +### R-杂-29 倒冲格取运(木火炎上型) +- **条件**:倒冲之局而庚金无根、气偏木火(如甲寅、庚午、丙午、甲午造)。 +- **判定**:无根之庚置之不论,格成炎上,最宜土运泄火之气;余同炎上格法(说见一行得气各条)。 +- **出处**:第四十八篇(附)·论杂格取运 +- **原文**:「庚金无根,置之不论,气偏木火,格成炎上,最宜土运泄火之气。」 + +### R-杂-30 朝阳格取运 +- **条件**:朝阳成格(金水伤官、原无官星、气势偏于金水)。 +- **判定**:运喜土金水,顺金水之性为美;火运为忌;木运平平——带水之木尚可行,带火之木则不宜见。 +- **出处**:第四十七篇·论杂格;第四十八篇(附)·论杂格取运 +- **原文**:「运喜土金水,木运平平,火则忌矣。」「行土金水运为美,火运为忌。带水之木尚可行,而带火之木则不宜见。」 + +### R-杂-31 合禄格取运 +- **条件**:合禄成格(如己未、戊辰、戊辰、庚申,土金食神之局)。 +- **判定**:运忌填实,不利官煞;不宜以火克金(使彼受制而不能合);余则吉。细分:比劫重重、气势偏于土金者,以金运泄土之秀为最吉,水运亦美,火运为忌,木亦不美(土盛木折)。俗以庚合乙为官星、喜财生之,取运略同。 +- **出处**:第四十七篇·论杂格;第四十八篇(附)·论杂格取运 +- **原文**:「运亦忌填实,不利官煞,理会不宜以火克金,使彼受制而不能合,余则吉矣。」「以金运泄土之秀为最吉,水运亦美,火运为忌,木亦不美,所谓土盛木折也。」 + +### R-杂-32 从财格取运 +- **条件**:从财成格、气势偏旺于财(金)者。 +- **判定**:运喜伤食财乡(土金水),不宜身旺(印比帮身);南方火乡(官煞,逆财之势且炼身)最忌,木(印)亦不利。 +- **出处**:第四十七篇·论杂格;第四十八篇(附)·论杂格取运 +- **原文**:「运喜伤食财乡,不宜身旺。」「运宜行土金水,南方火乡最忌,木亦不利。」 + +### R-杂-33 从煞格取运 +- **条件**:从煞成格、日主无根、气势偏旺于煞(金)者。 +- **判定**:运喜财官——金运最美,水土亦吉;不宜身旺——木运为日主逢根,忌;食伤则尤忌(火运逆其旺势)。与从财格取运大致相同。 +- **出处**:第四十七篇·论杂格;第四十八篇(附)·论杂格取运 +- **原文**:「运喜财官,不宜身旺,食伤则尤忌矣。」「金运最美,水土亦吉。木运为乙木逢根,火运逆其旺势,皆忌见。与上从财格大致相同。」 + +### R-杂-34 井栏叉格取运 +- **条件**:井栏成格、庚金乘旺泄秀、支全申子辰水局、气势偏于金水。 +- **判定**:运喜财;不利填实,余亦吉。细分:当顺金水之势取运,土金水运均美,木运(财)亦可,行火运逆其旺势不利。 +- **出处**:第四十七篇·论杂格;第四十八篇(附)·论杂格取运 +- **原文**:「运喜财,不利填实,余亦吉也。」「土金水运均美,木运亦可,行火运逆其旺势不利。」 + +### R-杂-35 遥合格取运(丑遥巳) +- **条件**:丑遥巳成格、土金成局、时上寅木无气不能为用、势偏土金。 +- **判定**:宜土金水运;木火逆其旺势为不宜。 +- **出处**:第四十八篇(附)·论杂格取运 +- **原文**:「土金成局,生于十二月,时上寅木无气,不能为用。势象偏于土金,宜土金水运,木火逆其旺势为不宜。」 + +### R-杂-36 刑合格取运(丑遥巳禄,实从儿格) +- **条件**:癸日甲寅时刑合之局(如乙未、癸卯、癸卯、甲寅),气势偏于木。 +- **判定**:运忌填实,不利金乡(印),余则吉。取运篇按从儿格论:行运最喜木火;从格忌见比劫,而从儿有食伤引化,不忌比劫——此为从儿与他从格不同之点;官煞大忌,印运亦忌。 +- **出处**:第四十七篇·论杂格;第四十八篇(附)·论杂格取运 +- **原文**:「运忌填实,不利金乡,余则吉矣。」「其实乃从儿格也。气势偏于木,行运最喜木火。从格忌见比劫,而从儿有食伤引化,不忌比劫,此为不同之点。官煞大忌,印运亦忌。」 + +### R-杂-37 子遥巳禄格取运(作者按财格论) +- **条件**:甲子日甲子时之局(如甲申、甲戌、甲子、甲子),月令偏财,戌藏丁火生起财星。 +- **判定**:作者谓此实乃月令偏财、用财损印,何必另取格局。运以财星透清(遇运透清)为美;庚辛申酉官煞生印为忌;午冲子、丑刑戌,均为忌。 +- **出处**:第四十八篇(附)·论杂格取运 +- **原文**:「其实月令偏财,用财损印,何必另取格局?戌藏丁火,生起财星,遇运透清为美,庚辛申酉官煞生印为忌,午冲子、丑刑戌均为忌也。」 + +--- + +## 8. 命例 + +1. **癸亥、乙卯、乙未、壬午**(吴相公)→ 甲乙日主支全亥卯未又生春月,曲直仁寿格(一行得气),取运甲寅、癸丑、壬子、辛亥、庚戌、己酉 → 示范 R-杂-05、R-杂-26。 +2. **甲戌、丁卯、壬寅、甲辰**(一品贵格)→ 丁壬化木生于春月、时透甲为木之元神,化木格,取运戊辰、己巳、庚午、辛未、壬申、癸酉 → 示范 R-杂-06、R-杂-22、R-杂-27。 +3. **戊午、戊午、戊午、戊午** → 四午冲子,冲子中癸财,倒冲格(取运篇按火土从旺论),取运己未、庚申、辛酉、壬戌、癸亥、甲子 → 示范 R-杂-07、R-杂-28。 +4. **甲寅、庚午、丙午、甲午** → 午多冲子官,倒冲格(取运篇以庚金无根置之不论、按炎上论),取运辛未、壬申、癸酉、甲戌、乙亥、丙子 → 示范 R-杂-07、R-杂-29。 +5. **戊辰、辛酉、(辛酉、)戊子**(张知县)→ 辛日戊子时,干头无木火,朝阳格(金水伤官顺势),取运壬戌、癸亥、甲子、乙丑、丙寅、丁卯 → 示范 R-杂-08、R-杂-30。 + > 存疑:论杂格仅列三柱「戊辰、辛酉、戊子」,取运篇作「戊辰、辛酉、辛酉、戊子」,日柱当为辛酉,两篇传录详略不一。 +6. **己未、戊辰、戊辰、庚申**(蜀王)→ 戊日庚申时以庚合乙为官,合禄格(土金食神、气势偏土金),取运丁卯、丙寅、乙丑、甲子、癸亥、壬戌 → 示范 R-杂-09、R-杂-31。 +7. **己酉、癸未、癸未、庚申**(起丞相)→ 癸日庚申时以申合巳取官,合禄格,取运庚午、己巳、戊辰、丁卯、丙寅、乙丑 → 示范 R-杂-09。 + > 存疑:取运篇月柱作「辛未」(非癸未),且作者径按「月令偏官、年上透出、时上庚印化煞为用」之正格解,斥「取巳中戊土官星」为官煞混杂——此造正属 R-杂-15「自有官煞为用不取外格」之例,两说并存。 +8. **庚申、乙酉、丙申、乙丑**(王十万)→ 四柱皆财(金)、丙火坐申病地无根,弃命从财格,取运丙戌、丁亥、戊子、己丑、庚寅、辛卯 → 示范 R-杂-10、R-杂-32。 + > 存疑:时柱论杂格作「乙丑」,取运篇作「己丑」;取运篇并谓「乙从庚化,不作印论」,以解年干乙印不破从格之嫌。 +9. **乙酉、乙酉、乙酉、甲申**(李侍郎)→ 四柱皆煞(金)、乙木无根,弃命从煞格,取运甲申、癸未、壬午、辛巳、庚辰、己卯 → 示范 R-杂-11、R-杂-33。 +10. **戊子、庚申、庚申、庚申**(郭统制)→ 庚金生七月、支全申子(辰)水局冲寅午戌,井栏叉格,取运辛酉、壬戌、癸亥、甲子、乙丑、丙寅 → 示范 R-杂-12、R-杂-34。 + > 存疑:时柱论杂格作「庚申」,取运篇作「庚辰」;作庚辰则申子辰水局齐全,与「支全申子辰水局」之文合,疑传抄异文。 +11. **乙未、癸卯、癸卯、甲寅**(十二节度使)→ 癸日甲寅时寅刑巳得财官,刑合格(取运篇按从儿格论),取运壬寅、辛丑、庚子、己亥、戊戌、丁酉 → 示范 R-杂-13、R-杂-36。 +12. **辛丑、辛丑、辛丑、庚寅**(章统制)→ 辛日丑多会巳取官,遥合格(丑遥巳),取运庚子、己亥、戊戌、丁酉、丙申、乙未 → 示范 R-杂-14、R-杂-35。 +13. **甲申、甲戌、甲子、甲子**(罗御史)→ 甲子日甲子时子遥巳,作者谓此格可废、聊复存之(取运篇按月令偏财、用财损印论),取运乙亥、丙子、丁丑、戊寅、己卯、庚辰 → 示范 R-杂-14、R-杂-37。 + + diff --git a/rules/90_行运.md b/rules/90_行运.md new file mode 100644 index 0000000..2a84ba4 --- /dev/null +++ b/rules/90_行运.md @@ -0,0 +1,375 @@ +# 子平真诠 · 行运通论 + + + + + +## 1. 行运总原则 + +### R-运-01 看命取运无二法 +- **条件**:已按总纲定格、判明八字喜忌;排至 `## 大运`,每一运之干与支各作一字论。 +- **判定**:看命以四柱干支配月令之喜忌;取运则以运之一字(运干或运支)配八字之喜忌。运中每行一字,即以此一字与命中干支统观,为喜为忌,吉凶立判。论运之法与看命无二。 +- **出处**:第二十五篇·论行运 +- **原文**:「论运与看命无二法也。看命以四柱干支,配月令之喜忌,而取运则又以运之干,配八字之喜忌。故运中每运行一字,即必以此一字,配命中干支而统观之,为喜为忌,吉凶判然矣。」 + +### R-运-02 喜运:命中所喜,运得而助之 +- **条件**:运干或运支为命中所喜之神、或能助其神者。按格局分八型: + - 正官格用印制伤,行运助印; + - 财格(财生官)而身轻,行运助身; + - 印绶格带财为忌,行运劫财(劫去其财,去忌); + - 食神格带煞成格:身轻则运逢印(印生身),煞重则运助食(食制煞); + - 伤官格佩印,运行官煞(官煞生印); + - 阳刃格用官,运行财乡(财生官); + - 建禄月劫格用财,运行伤食(伤食生财)。 +- **判定**:美运。命中所喜之神,我得而助之。 +- **出处**:第二十五篇·论行运 +- **原文**:「何为喜?命中所喜之神,我得而助之者是也。如官用印以制伤,而运助印;财生官而身轻,而运助身;印带财以为忌,而运劫财;食带煞以成格,身轻而运逢印,煞重而运助食;伤官佩印,而运行官煞;阳刃用官,而运助财乡;月劫用财,而运行伤食。如此之类,皆美运也。」 + +### R-运-03 忌运:命中所忌,运逆而施之 +- **条件**:运干或运支逆命中所忌而施之。按格局分八型: + - 正官格无印护,行运逢伤(伤官克官); + - 财格不透食,行运逢煞(财生煞、煞攻身); + - 印绶格用官,行运合官(合去其官); + - 食神格带煞,行运逢财(财泄食生煞); + - 偏官格食制,行运逢枭(枭夺食,煞无制); + - 伤官格佩印,行运逢财(财坏印,伤无制); + - 阳刃格用煞,行运逢食(食制煞,夺其制刃之具); + - 建禄格用官,行运逢伤(伤官克官)。 +- **判定**:败运。命中所忌,我逆而施之。 +- **出处**:第二十五篇·论行运 +- **原文**:「何谓忌?命中所忌,我逆而施之者是也。如正官无印,而运行伤;财不透食,而运行煞;印绶用官,而运合官;食神带煞,而运行财;七煞食制,而运逢枭;伤官佩印,而运行财;阳刃用煞,而运逢食;建禄用官,而运逢伤。如此之类,皆败运也。」 + +### R-运-04 似喜而实忌 +- **条件**:运来之神就十神名分本为命中所喜,然命中另有牵制——如正官格逢印运,而本命有合(印被牵合,不能为用);印绶格逢官运,而本命系用煞者(官来混煞)。 +- **判定**:不作喜论。运之喜字须查命中是否被合绊、是否与他神相混;失所者虽喜实忌。 +- **出处**:第二十五篇·论行运 +- **原文**:「其有似喜而实忌者,何也?如官逢印运,而本命有合,印逢官运,而本命用煞之类是也。」 +- > 存疑:「官逢印运,而本命有合」未明言何字被合(或指印被合绊、或指官星先有合),原文不详,两说并存,不断。 + +### R-运-05 似忌而实喜 +- **条件**:运来之神就十神名分本为命中所忌,然命中自有制伏——如正官格逢伤运,而命中透印(印制伤);财格行煞运,而命中透食(食制煞)。 +- **判定**:不作忌论。运之忌字被命中之字制伏,反成其用。 +- **出处**:第二十五篇·论行运 +- **原文**:「有似忌而实喜者,何也?如官逢伤运,而命透印,财行煞运,而命透食之类是也。」 + +### R-运-06 行干而不行支 +- **条件**:命中需某五行之助,而支路有冲。例:丙生子月、亥年(官煞旺,喜帮身)。行运天干逢丙丁则帮身为喜;行运地支逢巳午本亦帮身,然巳冲亥、午冲子,冲动官煞,故支不可行。 +- **判定**:同一五行,干可行而支不可行——干以生克为用,支以冲合为先;支来冲动命中旺神,故宁行干、不行支。 +- **出处**:第二十五篇·论行运 +- **原文**:「又有行干而不行支者,何也?如丙生子月亥年,逢丙丁则帮身,逢巳午则相冲是也。」 + +### R-运-07 行支而不行干 +- **条件**:命中某神偏弱需扶,而干头忌叠见。例:甲生酉月(正官格),辛金透干而官犹弱。行运地支逢申酉则官得禄旺、植根而强;行运天干逢庚辛则庚为混煞、辛为重官,反坏官格。 +- **判定**:同一五行,支可行而干不可行——支为干之根,助支即助其已透之神而不添杂;干头叠见则成混煞、重官。 +- **出处**:第二十五篇·论行运 +- **原文**:「又有行支而不行干者,何也?如甲生酉月,辛金透而官犹弱,逢申酉则官植根,逢庚辛则混煞重官之类是也。」 + +### R-运-08 干同一类而不两行 +- **条件**:行运天干与命中之干有合有不合。例:丁生亥月(正官格),年干透壬官。运干逢丙则帮身为喜;运干逢丁则丁壬合、合去官星为忌。丙丁同属火类比劫,一喜一忌。 +- **判定**:同五行同类之两干,因与命中之干合与不合而吉凶相反;取运须逐干分论,不得以五行同类并看。 +- **出处**:第二十五篇·论行运 +- **原文**:「又有干同一类而不两行者,何也?如丁生亥月,而年透壬官,逢丙则帮身,逢丁则合官之类是也。」 + +### R-运-09 支同一类而不两行 +- **条件**:行运地支与命中之支会有不会。例:戊生卯月(正官格)、丑年。运支逢申则戊土自坐长生为喜;运支逢酉则酉丑会金,伤官克官为忌。申酉同属金类,一喜一忌。 +- **判定**:同五行之两支,因与命中之支会与不会而吉凶相反;取运须逐支分论。 +- **出处**:第二十五篇·论行运 +- **原文**:「又有支同一类而不两行,何也?如戊生卯月,丑年,逢申则自坐长生,逢酉则会丑以伤官之类是也。」 + +### R-运-10 同是相冲而分缓急 +- **条件**:运支冲命中之支;分所冲之位:冲年月支 / 冲日时支。 +- **判定**:冲年月则急,冲日时则缓。同为冲,应期之缓急以所冲之位分。 +- **出处**:第二十五篇·论行运 +- **原文**:「又有同是相冲而分缓急者,何也?冲年月则急,冲日时则缓也。」 + +### R-运-11 同是相冲而分轻重 +- **条件**:行运逢冲;分两种:本为美运而逢冲 / 本为忌运而又逢冲。 +- **判定**:运本美而逢冲则轻(美中带疵,祸轻);运既忌而又冲则重(忌上加冲,祸重)。 +- **出处**:第二十五篇·论行运 +- **原文**:「又有同是相冲而分轻重者,何也?运本美而逢冲则轻,运既忌面又冲则重也。」 +- > 存疑:「运既忌面又冲则重」之「面」于义不通,疑为「而」之传抄讹字,未敢擅改。 + +### R-运-12 逢冲而不冲 +- **条件**:运支与月令用神之支本相冲,然命中先有会合。例:甲用酉官,行卯运本冲酉官;而本命巳酉相会(半会官局),则卯冲无力;或年支见亥未,则卯与亥未会木局,不冲月官。 +- **判定**:冲逢会合则解——或用神之支自有会为护而冲之无力,或运支被他支会去而忘冲。凡此皆不以冲论。 +- **出处**:第二十五篇·论行运 +- **原文**:「又有逢冲而不冲,何也?如甲用酉官,行卯则冲,而本命巳酉相会,则冲无力;年支亥未,则卯逢年会而不冲月官之类是也。」 + +### R-运-13 一冲而得两冲 +- **条件**:命中两支并立,原有之冲众寡不敌而不成;运支补之,则冲局成真。例:乙用申官,命中两申并见,一寅不能冲;运又逢寅,则运寅与命寅合成二寅,以冲二申。 +- **判定**:众寡不敌则冲之不成;运来补缺、两两相当,则潜伏之冲被激活,一冲遂成两冲。 +- **出处**:第二十五篇·论行运 +- **原文**:「又有一冲而得两冲者,何也?如乙用申官,两申并而不冲一寅,运又逢寅,则运与本命,合成二寅,以冲二申之类是也。」 + +--- + +## 2. 行运成格变格 + +### R-运-14 行运有成格变格之要权 +- **条件**:已定格成败之后,将行大运;凡断运先审此条,再论喜忌。 +- **判定**:格局成于八字,然配之以运,亦有成格、变格之要权——运可使成而未全者成之、已成者变之。**成格变格较之寻常喜忌祸福尤重**,取运者须先细详。 +- **出处**:第二十六篇·论行运成格变格 +- **原文**:「命之格局,成于八字,然配之以运,亦有成格变格之要权。其成格变格,较之喜忌祸福尤重。」「成格变格,关系甚大,取运者其细详之。」 + +### R-运-15 行运成格:成而未全,运来就之 +- **条件**:本命用神成而未全,运补足之。两型: + - 透干待会:如丁生辰月,透壬为官;运支逢申子,与辰会水局,官由透而得会; + - 会支待透:如乙生辰月,支有申或子与辰会印成局;运干逢壬癸,印由会而得透。 +- **判定**:成格。运补其所未全(已透者会之、已会者透之),格于是完备,此运中以成格之贵论。 +- **出处**:第二十六篇·论行运成格变格 +- **原文**:「何为成格?本命用神,成而未全,从而就之者是也。如丁生辰月,透壬为宫,而运逢申子以会之;乙生辰月,或申或子会印成局,而运逢壬癸以透之。如此之类,皆成格也。」 +- > 存疑:「透壬为宫」之「宫」疑为「官」之传抄讹字,未敢擅改。 + +### R-运-16 行运变格:运引别神,格随而变 +- **条件**:本命已成某格,运干或运支引出月令(或局)中另一用神,格随而改。三型: + - 丁生辰月,透壬为官成格;运逢戌,透出辰中伤官——官格变为伤官; + - 壬生戌月,丁己并透、支又会寅会午,本作财旺生官;运干逢戊土,透出戌中七煞——变为煞格; + - 壬生亥月,透己为用,作建禄用官;运支逢卯未,与亥会成木局——建禄化为伤官。 +- **判定**:变格。运透出或会出另一用神,原格随之改易;此运中按新变之格论成败喜忌。 +- **出处**:第二十六篇·论行运成格变格 +- **原文**:「何为变格?如丁生辰月,透壬为官,而运逢戌,透出辰中伤官;壬生戌月,丁己并透,而支又会寅会午,作财旺生官矣,而运逢戊土,透出戌中七煞;壬生亥月,透己为用,作建禄用官矣,而运逢卯未,会亥成本,又化建禄为伤。如此之类,皆变格也。」 +- > 存疑:「会亥成本」之「本」疑为「木」之传抄讹字(亥卯未会木局,木为壬之伤官),未敢擅改。 + +### R-运-17 逢成格而不喜 +- **条件**:运虽就成格之型,然与命中所忌相触。例:壬生午月(财格),运透己官,本为财官相生成格;而本命透甲乙(食伤),食伤克官,官不可立。 +- **判定**:成格而不喜。运之成格仍须与命中喜忌相参;命中原有克破所成之物者,虽成不喜。 +- **出处**:第二十六篇·论行运成格变格 +- **原文**:「然亦有逢成格而不喜者,何也?如壬生午月,运透己官,而本命有甲乙之类是也。」 + +### R-运-18 逢变格而不忌 +- **条件**:运虽引变格之型,然命中自有救应。例:丁生辰月透壬用官,运逢戊(伤官透出),而命有甲(印制伤);壬生亥月透己用官,运逢卯未(会伤化官),而命有庚辛(印制伤护官)。 +- **判定**:变格而不忌。变格所引出之忌字得命中制伏者,不为害。 +- **出处**:第二十六篇·论行运成格变格 +- **原文**:「又有逢变格而不忌者,何也?如丁生辰月,透壬用官,逢戊而命有甲;壬生亥月,透己用官,运逢卯未,而命有庚辛之类是也。」 + +--- + +## 3. 喜忌干支有别 + +### R-运-19 干动支静,为福为祸有别 +- **条件**:论命中及运中喜忌,凡一字在干或在支,皆须先分干支。 +- **判定**:干主天,动而有为——喜忌之应直捷;支主地,静以待用——非透、非会则其用不显。且干主一(一干即一神),支藏多(一支或藏二三干)。故同一五行在干在支,为福为祸不同科,不得以干之例律支。 +- **出处**:第二十七篇·论喜忌干支有别 +- **原文**:「命中喜忌,虽支干俱有,而干主天,动而有为,支主地,静以待用,且干主一而支藏多,为福为祸,安不得殊?」 + +### R-运-20 干支不两例三则(混煞 / 重官 / 伤官) +- **条件**:以甲用酉官(正官格)为例,分别论干与支: + - 干逢庚辛则官煞混杂;支逢申酉不作混杂论——申亦辛之旺地,辛得申酉,如府官又掌道印(增其权而不杂); + - 干逢二辛则官犯重;支逢二酉不作重论——辛坐二酉,如一府而摄二郡(一身兼二任,不为重官); + - 干透丁则伤官见官;支逢午不作伤官论——丁动而午静,且午中丁己并藏,安知其为伤为财。 +- **判定**:干头所见之忌(混、重、伤),支中见同五行不即作忌论;支之用须待透待会(见 R-运-21、R-运-22)。 +- **出处**:第二十七篇·论喜忌干支有别 +- **原文**:「譬如甲用酉官,逢庚辛则官煞杂,而申酉不作此例。申亦辛之旺地,辛坐申酉,如府官又掌道印也。逢二辛则官犯重,而二酉不作此例。辛坐二酉,如一府而摄二郡也,透丁则伤官,而逢午不作此例。丁动而午静,且丁巳并藏,安知其为财也?」 +- > 存疑:「且丁巳并藏」疑为「丁己并藏」之讹(午中所藏为丁、己),未敢擅改。 + +### R-运-21 支待会而动,动则能作祸福 +- **条件**:支中藏干本静待用,而支与支会局则动。两型: + - 甲用酉官,逢午未能伤官(静也);而又遇寅遇戌、不隔二位,午与寅戌合而火动,亦能伤官; + - 反观制煞之例:午本不制煞(静也);会寅会戌,二者会局而火动,亦能制煞。 +- **判定**:支字能否作祸福,以「会而动」为断——有会则藏干得用,与干之动而有为同科;无会则静以待用,不即以藏干论喜忌。此正与干有别处;即此一端,余者可知。 +- **出处**:第二十七篇·论喜忌干支有别 +- **原文**:「然亦有支而能作祸福者,何也?如甲用酉官,逢午酉未能伤,而又遇寅遇戌,不隔二位,二者合而火动,亦能伤矣。即此反观,如甲生甲月,午不制煞,会寅会戌,二者清局而火动,亦能矣。然必会有动,是正与干有别也。即此一端,余者可知。」 +- > 存疑一:「逢午酉未能伤」文气不顺,疑「酉」为「犹」之讹(当作「逢午犹未能伤」),未敢擅改。 +- > 存疑二:「甲生甲月」之「甲月」可疑——午既言制煞,月令当为煞(如申月),疑为「甲生申月」之讹;「二者清局」或当作「二者会局」。原文如此,并存备考。 + +--- + +## 4. 支中喜忌逢运透清 + +### R-运-22 支中喜忌,逢运透清则验 +- **条件**:支中所藏喜神或忌神(本静待用),行运天干透出其所藏之神。例:甲用酉官——支逢辰未即为财,运透戊则财透清;支逢午未即为伤,运透丁则伤透清。 +- **判定**:透清则静而待用者正得其用——支中喜忌之验,于运透之运乃见:藏喜则吉应,藏忌则凶应。 +- **出处**:第二十八篇·论支中喜忌逢运透清 +- **原文**:「支中喜忌,固与干有别矣,而运逢透清,则静而待用者,正得其用,而喜忌之验,于此乃见。何谓透清?如甲用酉官,逢辰未即为财,而运透戊,逢午未即为伤,而运透丁之类是也。」 + +### R-运-23 命与运二支会局,亦作清论 +- **条件**:命中一支与运支会合成局,引出支中藏干。例:甲用酉官,本命有午(伤官伏于支),运逢寅或戌,与午会成火局。 +- **判定**:会局与透干同科,亦作清论——所藏之喜忌于是得用。其轻重以命中该支所居之位分:**在年支则重,在日支次之,在时支则缓而不急**。 +- **出处**:第二十八篇·论支中喜忌逢运透清 +- **原文**:「若命与运二支会局,亦作清论。如甲用酉官,本命有午,而运逢寅戌之类。然在年则重,在日次之,至于时生于午,而运逢寅戌会局,则缓而不急矣。」 +- > 存疑:「至于时生于午」文句不顺,揆其义当为「午在时支」,未敢擅改。 + +### R-运-24 透清会局之应期,与月令透清之殊科 +- **条件**:支中喜忌逢运透清或会局(R-运-22、R-运-23);或所透清者为月令之物。 +- **判定**:①支中喜忌逢运透清、会局者,格之成败高低八字已有定论,此类祸福与命中原有者不同科,**其应止在此五年之中**。②若所透清者为月令之物,则与命中原有者不甚相悬——即第二十六篇所谓行运成格变格(见 R-运-15、R-运-16),按成格变格论,不作寻常喜忌论。 +- **出处**:第二十八篇·论支中喜忌逢运透清 +- **原文**:「虽格之成败高低,八字已有定论,与命中原有者不同,而此五年中,亦能炒其祸福。若月令之物,而运中透清,则与命中原有者,不甚相悬,即前篇所谓行运成格变格是也。」 +- > 存疑一:「亦能炒其祸福」之「炒」于义不通,疑为「判」「移」之类讹字,未敢擅改。 +- > 存疑二:「此五年中」为运中一字管五年之据;然原文仅此一语,未明言「干管五年、支管五年」之通例,谨据原文存录,不引申。 + +### R-运-25 逐干逐支,上下统看 +- **条件**:凡断命与取运,将八字逐干逐支配合统观。其法: + - 天干有一字,则统观四支求其根——如命中有一甲字,四支有寅亥卯未任一字,皆甲木之根; + - 地支有一字,则统观藏干求其用——如有一亥字,看壬甲二字何者为用:用壬则亥为壬禄、以壬水用;用甲则亥为甲长生、以甲木用;用壬甲俱全,则一以禄为根、一以长生为根,二者并用。 +- **判定**:支为干之生地,干为支之发用。取运亦用此术——将本命八字与运之干支逐字相配统观(即 R-运-01「每运行一字,配命中干支统观」之操作法)。 +- **出处**:第二十八篇·论支中喜忌逢运透清 +- **原文**:「故凡一八字到手,必须逐干逐支,上下统看。支为干之生地,干为支之发用。如命中有一甲字,则统观四支,有寅亥卯未等字否,有一字,皆甲木之根也。有一亥字,则统观四支,有壬甲二字否。有壬,则亥为壬禄,以壬水用;用甲,则亥为甲长生,以甲木用;用壬甲俱全,则一以禄为根,一以长生为根,二者并用。取运亦用此术,将本命八字,逐干支配之而已。」 + +--- + +## 5. 与分格「取运」条目的配合关系 + +### R-运-26 断运执行序:先分格取运条,以本通论校正 +- **条件**:断运时;已按 00_总纲_取格.md 定格、按分格文件判明成败救应。 +- **判定**:按以下顺序执行—— + 1. **先查分格文件「取运」节**(如 11_正官格.md R-官-14~18、12_财格.md R-财-23~30、15_偏官格.md R-杀-16~21、16_伤官格.md R-伤-22~28 等),得该格局行运喜忌之基线;本文件 R-运-02、R-运-03 所列喜忌八型即分格取运条之总纲,二者相互印证,判定方向一致时以分格细则为准。 + 2. **再以本通论校正**,五道校正: + - 似喜实忌 / 似忌实喜(R-运-04、R-运-05):分格条所云「喜某运」「忌某运」,逢命中有合、有透等条件时反转判定; + - 干支分殊(R-运-06~09、R-运-19~21):分格条所云「喜某运」须再分干与支——干可行者支或不可行,同五行之两干两支亦不两行; + - 冲之缓急轻重与逢冲不冲(R-运-10~13):运逢刑冲时,先查会合解冲、再分年月日时之缓急、美运忌运之轻重; + - 成格变格优先(R-运-14~18):运若引动透清、会局而成格或变格,其权尤重于寻常喜忌,先按新格重定喜忌; + - 透清会局之应期(R-运-22~24):支中喜忌非运透、运会不验;月令之物透清者按成格变格论。 + 3. 分格取运条与本通论疑似冲突时,回查 `sources/` 原文裁决(依 README §5 加载协议)。 +- **出处**:综括第二十五至二十八篇 +- **原文**:(综括,无单一原文) + +--- + +## 6. 命例(例解汇编) + +四篇皆无完整四柱之命名命例,所举均为片段式例解,作为规则的应用示范与测试基准。 + +**第二十五篇·论行运**: + +1. 丙生子月、亥年:运干逢丙丁则帮身,运支逢巳午则相冲 → 示范 R-运-06(行干不行支)。 +2. 甲生酉月,辛金透而官犹弱:运支逢申酉则官植根,运干逢庚辛则混煞重官 → 示范 R-运-07(行支不行干)。 +3. 丁生亥月,年透壬官:运干逢丙则帮身,逢丁则合官 → 示范 R-运-08(干同类不两行)。 +4. 戊生卯月、丑年:运支逢申则自坐长生,逢酉则会丑伤官 → 示范 R-运-09(支同类不两行)。 +5. 甲用酉官,行卯运:本命巳酉相会则冲无力;年支亥未则卯逢年会而不冲月官 → 示范 R-运-12(逢冲不冲)。 +6. 乙用申官,两申并而不冲一寅;运又逢寅,合成二寅冲二申 → 示范 R-运-13(一冲得两冲)。 + +**第二十六篇·论行运成格变格**: + +7. 丁生辰月,透壬为官;运逢申子以会之 → 示范 R-运-15(透干待会而成格)。 +8. 乙生辰月,或申或子会印成局;运逢壬癸以透之 → 示范 R-运-15(会支待透而成格)。 +9. 丁生辰月,透壬为官;运逢戌,透出辰中伤官 → 示范 R-运-16(变格,官变伤)。 +10. 壬生戌月,丁己并透,支又会寅会午,作财旺生官;运逢戊土,透出戌中七煞 → 示范 R-运-16(变格,官变煞)。 +11. 壬生亥月,透己为用,作建禄用官;运逢卯未,会亥成木,化建禄为伤 → 示范 R-运-16(变格,官化伤)。 +12. 壬生午月,运透己官,而本命有甲乙(食伤克官)→ 示范 R-运-17(逢成格而不喜)。 +13. 丁生辰月,透壬用官,运逢戊而命有甲(印制伤)→ 示范 R-运-18(逢变格而不忌)。 +14. 壬生亥月,透己用官,运逢卯未而命有庚辛(印制伤护官)→ 示范 R-运-18(逢变格而不忌)。 + +**第二十七篇·论喜忌干支有别**: + +15. 甲用酉官:干逢庚辛则官煞杂,支逢申酉不杂(如府官又掌道印)→ 示范 R-运-20。 +16. 甲用酉官:干逢二辛则官犯重,支逢二酉不重(如一府而摄二郡)→ 示范 R-运-20。 +17. 甲用酉官:干透丁则伤官,支逢午不作伤论(丁动午静,丁己并藏)→ 示范 R-运-20。 +18. 甲用酉官,逢午未能伤;又遇寅遇戌不隔二位,合而火动,亦能伤官 → 示范 R-运-21。 +19. 甲生煞月,午不制煞;会寅会戌而火动,亦能制煞 → 示范 R-运-21(原文「甲生甲月」存疑,见 R-运-21)。 + +**第二十八篇·论支中喜忌逢运透清**: + +20. 甲用酉官:逢辰未为财而运透戊,逢午未为伤而运透丁 → 示范 R-运-22(透清)。 +21. 甲用酉官,本命有午,运逢寅戌会局;午在年则重、在日次之、在时则缓 → 示范 R-运-23(会局作清)。 +22. 命中有一甲字,统观四支有寅亥卯未否,有一字皆甲木之根 → 示范 R-运-25(干求根于支)。 +23. 命中有一亥字:用壬则亥为壬禄,用甲则亥为甲长生,壬甲俱全则二者并用 → 示范 R-运-25(支发用于干)。 + +--- + +## 7. 断运操作序列(SOP) + +本节为通论规则的执行程序,据前列各条综括而成;断运时按序执行,每步写明依据的规则编号。 + +### R-运-27 断运四步:先运后年、先大局后流年 +- **条件**:已完成取格、成败、用神相神、喜忌之判定(断运必在断命之后,不得越级)。 +- **判定**:①**定基线**——按本格分格文件「取运」节,依成格/败格/带忌救应之情形,定每步大运喜忌基线;②**校干支**——以 R-运-02/03 喜忌八型、R-运-19~21 干支有别校正运干运支各自之应(行干不行支、行支不行干、同类不两行、逢冲不冲);③**察成变**——查本运是否成格变格(R-运-14~18),成格变格之权尤重于寻常喜忌;④**定应期**——以流年填实、冲合、透清(R-运-22~25)把喜忌收敛到具体年份;流月仅在用户追问且应期已收敛到年内时参看。 +- **出处**:第二十五~二十八篇通论综括 +- **原文**:(综括,无单一原文;依据见各引条) + +### R-运-28 断运表述纪律 +- **条件**:输出断运结论时。 +- **判定**:每步运、每个关键流年均须标注依据的规则编号;喜运中逢忌年、忌运中逢喜年,按冲会透清之有无申明加减(R-运-12/13、R-运-22),不以一步运之喜忌抹杀流年之别。**事类倾向必须落地为具体事件候选**(映射见 R-运-31,程序见 R-运-32;覆盖多个流年的批量断运先经 R-运-33 锚点核对轮);不断具体事件之必然——候选按可能性排序、以问句邀请核对,不打包票。**不得以「不断必然」为由省略候选、只给抽象事类词**:只写「迁动」「文书」之类而不给出现实事件者,视为未落地。 +- **出处**:第二十五篇·论行运综括 +- **原文**:(综括,无单一原文;篇中「故运逢喜忌,而又有冲合透清之别」义) + +### R-运-29 应期收敛标准:五组引动清单 +- **条件**:把断语落到具体时间段时。 +- **判定**:应期之据为透清(R-运-22)、会局作清(R-运-23)、冲之缓急与一冲得两冲(R-运-12/13)。**常态收敛到年**。落到流月之前,须先列出该年**全部**引动该神该宫者,按下表归入五组之一,再数组数: + + | 组 | 引动类型 | 判据 | + |---|---|---| + | **A 透清** | 流年或流月干,透出命中地支所藏之喜神或忌神 | R-运-22 | + | **B 会局** | 流年(月)支与大运支、或与命中他支会合成局,使伏藏之藏干得用 | R-运-23 | + | **C 刑冲** | 流年(月)支冲、刑、害命中之支或大运支 | R-运-10~13 | + | **D 空亡** | 流年(月)支与四柱空亡之支填实(同支)、冲空(相冲)、合空(相合) | R-煞-13 | + | **E 伏吟反吟** | 流年(月)干支与四柱或大运干支全同(伏吟)或干支皆冲(反吟) | 干支通例 | + + **同一组内数件事只算一组。** 组数 ≥ 2 → 可下到流月;= 1 → 止于年;= 0 → 该年不作应期年,只按大运喜忌给背景。 + + 举例校验:流年支冲妻宫,同时又填实日柱空亡、又逢神煞——C + D 两组,可下流月。流年支单纯冲日支——仅 C 一组,止于年。仅逢神煞而神煞本为命带、流年不过再遇——不构成新引动,不计组。 + +- **落笔要求**:下流月时须写明哪两组、各是什么;止于年时须写明「该年引动单一」或「仅一重引动」。**不得**只给一句「收敛到年」作解释,那是结论不是依据。 +- **出处**:第二十八篇·论支中喜忌逢运透清综括;五组分法据 R-运-22/23、R-运-10~13、R-煞-13 综括 +- **原文**:(综括,无单一原文;篇中「此五年中」存疑条参看) + +### R-运-30 流月落笔的三档标准 +- **条件**:已判定某年引动组数 ≥ 2(R-运-29),需落到流月时。 +- **判定**:按组数分档: + + | 组数 | 落笔方式 | + |---|---| + | ≥ 3 | 可指认具体月份,并说明该月是哪两重以上引动重合 | + | = 2 | 只给月份**区间**(如「春末夏初」「秋后」),不给单月 | + | = 1 | 不下流月,止于年 | + +- **出处**:第二十八篇综括(R-运-29 之操作细则) +- **原文**:(综括,无单一原文) + +--- + +## 8. 事类落地:由引动到现实事件候选 + +本节解决「断语停在事类词、用户无从对号」的问题。事类(迁动、文书、争夺)是规则的中间输出,用户要的是现实事件(搬家、考试、分手)。落地之法:以「十神事类 × 宫位事类 × 神煞事类」合成候选事件,按可能性排序给出,并邀请核对。 + +### R-运-31 事类映射表:十神、宫位、神煞的现实领域 +- **条件**:需要把某字(天干十神、地支宫位、神煞)翻译成现实事类时。 +- **判定**:按下表取象,再按 R-运-32 合成候选事件。 + + **十神事类**(被透清、被引动之干,或宫位中所藏透出之神): + + | 十神 | 现实领域 | + |---|---| + | 财(正偏) | 钱财进出、收入渠道、父亲、妻与女友(男命)、下属与可支配的资源 | + | 官 / 煞 | 职务、上级、规章考核、名声、压力与责任;女命兼指丈夫与男友,男命兼指子女 | + | 印(正偏) | 学业、考试、文书、证书、房产与住所、母亲、长辈与贵人、单位平台 | + | 食 / 伤 | 表达输出、专业技能、作品、口才、饮食享受;女命兼指子女 | + | 比劫 | 同辈、朋友、同事、竞争者、合伙人;兼主分夺(钱财、机会、感情之争) | + + **宫位事类**(被会、被冲刑、被填实之支所居之位): + + | 宫位 | 现实领域 | + |---|---| + | 年柱 | 祖上、原生家庭之根、远方、早年环境、大范围外部局面 | + | 月柱 | 父母、兄弟、所在单位与平台、青年时期所处环境 | + | 日支 | 己身、配偶、婚恋关系、贴身的处境 | + | 时柱 | 子女、下属、学生、手头正在做的事、晚来的方向 | + + **神煞事类**:见 `94_神煞细节.md`(驿马=迁动、桃花=感情社交、华盖=向学孤处、将星=掌事任责、劫煞=破耗争夺、亡神=耗散失脱、二德=遇险得解、空亡填冲合=虚象落实或被激起)。 + +- **出处**:综括——十神事类散见各分格文件与 96_六亲.md、97_女命.md;宫位事类据 R-运-23(在年则重、在日次之、在时则缓)与 96 宫分定位综括;本表为操作映射,真诠无对应专篇 +- **原文**:(综括,无单一原文) + +### R-运-32 落地义务与候选收敛 +- **条件**:按 R-运-29 判定引动组数 ≥ 1、并在正文中作为关键流年(应期年)落笔时;用户问「会发生什么/发生过什么」类问题时,本条不可豁免。 +- **判定**:每个关键流年**必须给出 2–3 个具体事件候选**,按以下程序合成与落笔—— + 1. **合成**:取该年诸引动所涉之「十神 × 宫位」(R-运-31),叠加神煞事类(94),组合成现实事件。例:流年巳填实空亡、冲年支亥,巳为驿马、又逢印星透清 → 「离开原生之地(冲年支)+住所与文书变动(驿马、印)」→ 候选:升学离家、迁居异地、入职外派。三线一视同仁:问感情、婚姻时同样给到事件级候选(如「确定关系/分手/见家长」),不得只给「起变化」「被牵动」这类方向词。 + 2. **排序**:候选按可能性从大到小排列。排序依据三事:引动之喜忌方向(喜取顺象、忌取逆象)、组数多寡、人生阶段窗口(学龄、婚龄、育龄等自然节点)——阶段与引动吻合者排前。阶段窗口未问实前按常规学制等假设落笔的,须在候选处就地声明(如「若你 2013 年上大学」),不得拖到存疑段才统一交代。 + 3. **落笔**:候选以「这一年常见于……」句式平列,不用「一定」「必然」;随后以一句问句邀请核对(「这一年实际是哪一类?」)。覆盖多个流年的批量断运,先经 R-运-33 锚点核对轮,不一次性倾倒全部年份。 + 4. **收敛**:用户核对后,以已证实之候选反推该组引动的事类权重;后续相邻年份同型引动的候选随之收窄(同型引动多应同类事),不得年年重新发散。候选全部落空(证伪)时按 R-运-33 第 2 步回查,不得硬铺。 + 5. **豁免**:仅当用户明确只要喜忌方向、不要事件推测时,本条可不执行。 +- **理由**:R-运-28 禁的是「断具体事件之必然」,不是禁给候选。只给事类词不给候选,等于把翻译工作推回给用户——用户不对号,断语便无意义。排序与收敛使候选逐年变准,而非逐年放空。 +- **出处**:综括——操作程序据 R-运-22/23(透清会局之事类所在)、R-运-29(组数)、94_神煞细节.md(神煞事类)综括而成 +- **原文**:(综括,无单一原文) + +### R-运-33 锚点核对轮:先对锚点,再铺逐年 +- **条件**:断运输出覆盖五年以上、或多个流年候选需要用户核对时。agent 环境具备询问工具时**必须用询问工具**,无询问工具时以正文编号选项代替。 +- **判定**:断运分两轮落笔—— + 1. **第一轮:底盘 + 锚点**。以白话输出格局喜忌与各步大运性质(底盘,术语依据只收一行依据行),再从全部候选年中挑出 3 个左右**锚点年**请用户核对。锚点年选取规则:引动组数最多者优先;落在人生阶段窗口(升学、毕业、婚育、换工作)者优先;用户所问之线(学业、事业、感情等)每条至少占一个。每个锚点年给 2–3 个候选事件(R-运-32)。**核对用结构化选项**:每个锚点年一个问题,选项为按可能性排序的候选事件、外加「都对不上」(证伪入口);几个锚点年合成一次提问,不逐条单独打断用户;无询问工具时正文列出编号选项,请用户回复编号。 + 2. **第二轮:收窄再铺**。按 R-运-32 第 4 步收敛后,再输出完整逐年。**锚点全部落空(证伪)时不得硬铺**——先回头检查:组数判定是否偏重、学制等阶段假设是否错位、出生时刻是否跨时辰或跨日界(晚子时);修正后重新给锚点。 + 3. **学制锚点前置**:断语涉及学业年份时,先把一个学制锚点问实(「哪年上的大学/哪年毕业、中间有没有复读或休学」),以此反推中小学各节点;不全程按常规学制假设落笔。学制锚点并入第一轮的结构化提问,不单独多问一轮。 + 4. **豁免**:用户只问某一年、某一件事,或明确说「一口气说完、不用问我」时,不走两轮,一次性输出。 +- **理由**:核对是免费的精度来源——用户对得上号的事实能把后续候选收窄一半以上;一次性倾倒则把核对成本全部推给用户,错一处则处处偏。锚点先行是以最少的问题换最大的收窄。 +- **出处**:综括——据 R-运-32(候选与收敛)扩展为交互程序 +- **原文**:(综括,无单一原文) + + diff --git a/rules/94_神煞细节.md b/rules/94_神煞细节.md new file mode 100644 index 0000000..bb52f08 --- /dev/null +++ b/rules/94_神煞细节.md @@ -0,0 +1,142 @@ +# 子平真诠 · 神煞细节(体系拓展层) + + + + + +**声明:本篇为体系拓展层。真诠原文仅以「险格二德可旁参安危」为有限认可(第二十一篇·论星辰无关格局),其余神煞细断均为后世流俗,真诠未言。本篇内容只用于格局定论(取格、成败、用神相神、高低)之后的流年流月细节参看,不得回改格局结论。** + +--- + +## 1. 定位与边界 + +### R-煞-01 细节层之定位:不取格、不定成败、不改喜忌 +- **条件**:凡引用本篇任何条目时。 +- **判定**:神煞、空亡、纳音为「细节补充层」——不取格、不定成败、不取用相、不改喜忌高低;只在格局与行运喜忌已定之后,作流年流月之应期细节与事类联想。格局法结论绝不因神煞、纳音、空亡而增删或修饰。 +- **出处**:【原书】第二十一篇·论星辰无关格局 +- **原文**:「至于星辰好歹,既不能为生克之用,又何以操成败之权?」「是以格局既成,即使满盘孤辰入煞,何损其贵?格局既破,即使満盘天德贵人,何以为功?」 + +### R-煞-02 原书唯一有限认可:险格二德旁参安危 +- **条件**:命局已按格局法判为险格(败格、凶格之应,如七煞无制、伤官见官无救之类,依各分格文件判定,本篇不自定);且 `## 神煞` 章节列有天德、月德,或按 R-煞-05 查法见天德、月德。 +- **判定**:可于安危层面旁参一语——「险中或有所救、或免于危」;且仅以安危为限,与格局之贵贱成败无涉,不得据此改判格局、不得入格局判断之条件。 +- **出处**:【原书】第二十一篇·论星辰无关格局 +- **原文**:「若云命逢险格,柱有二德,逢凶有救,右免于危,则亦有之,然终无关于格局之贵贱也。」 +- > 存疑:「右免于危」之「右」疑为「或」之讹;原文照引(同 R-禁-05)。 + +### R-煞-03 数据口径:`## 神煞` 为历家日神,与子平查法不同源 +- **条件**:读取 `## 神煞` 章节时。 +- **判定**:`## 神煞` 所列为历家日神(吉神宜趋、凶神宜忌之类,以月支配日干支查黄历日神而得),与子平通行神煞查法(以日干、年支、日支查四柱地支)**不同源,二者不互证**。本篇条目以 `## 四柱` 干支(日干、年支、日支)及 `## 流年`/`## 流月` 干支自查为准;`## 神煞` 所列之名(驿马、劫煞、咸池、天德、月德等偶见其中)仅作旁参提示,不作查法依据。 +- **出处**:【拓展】据排盘输出口径与通行子平口径综括 +- **原文**:(拓展条,无原文) + +--- + +## 2. 常用神煞细断 + +以下查法均采用通行子平口径:以 `## 四柱` 之**日干**(天乙贵人)、**年支或日支**(驿马、桃花、华盖、将星、劫煞、亡神)查**四柱地支**(命带)与 `## 流年`/`## 流月` 地支(岁运逢)。事类联想均为后世流俗之传,真诠未言,只作细节参看。 + +### R-煞-04 天乙贵人 +- **条件**:以 `## 四柱` 日干查:甲、戊、庚日见丑、未;乙、己日见子、申;丙、丁日见亥、酉;壬、癸日见卯、巳;辛日见午、寅。四柱地支见之为命带;`## 流年`/`## 流月` 地支遇之为岁运逢。 +- **判定**:命带天乙贵人,传统主平生易得人力扶助、逢事有解。流年流月遇之参看:得人提携、近贵、谋事顺遂、纠纷易解——事类指向「他人之力」(上司、长辈、朋友之助)。只作细节联想,吉之有无仍一断于格局喜忌。 +- **出处**:【拓展】通行子平神煞口径(歌诀「甲戊庚牛羊,乙己鼠猴乡,丙丁猪鸡位,壬癸兔蛇藏,六辛逢马虎」) +- **原文**:(拓展条,无原文) + +### R-煞-05 天德、月德(二德查法) +- **条件**:以 `## 节令` 月令(月支)查四柱干支与 `## 流年`/`## 流月` 干支——天德:寅月见丁、卯月见申、辰月见壬、巳月见辛、午月见亥、未月见甲、申月见癸、酉月见寅、戌月见丙、亥月见乙、子月见巳、丑月见庚;月德:寅午戌月见丙、申子辰月见壬、亥卯未月见甲、巳酉丑月见庚。 +- **判定**:二德为真诠唯一有限认可之神煞(认可范围见 R-煞-02),其**查法**真诠未言,属后世通行口径。流年流月遇之参看:凶险之事有解、遇事得人宽宥。险格之命逢之,按 R-煞-02 旁参安危一语,不及贵贱。 +- **出处**:【拓展】通行子平神煞口径(二德之「有限认可」属原书 R-煞-02,查法属拓展) +- **原文**:(拓展条,无原文) + +### R-煞-06 驿马 +- **条件**:以 `## 四柱` 年支或日支查:申子辰见寅、寅午戌见申、巳酉丑见亥、亥卯未见巳。四柱地支见之为命带;`## 流年`/`## 流月` 地支遇之为岁运逢马。 +- **判定**:驿马主动。流年流月遇之参看:出行、迁动、移徙、岗位调动、车马奔波之事;流年支再冲马者,动象尤急。动之吉凶(晋升之动抑或奔波之劳)以格局喜忌为断,驿马只给「动」之事类。 +- **出处**:【拓展】通行子平神煞口径 +- **原文**:(拓展条,无原文) + +### R-煞-07 桃花(咸池) +- **条件**:以 `## 四柱` 年支或日支查:申子辰见酉、寅午戌见卯、巳酉丑见午、亥卯未见子。四柱地支见之为命带;`## 流年`/`## 流月` 地支遇之为岁运逢。 +- **判定**:桃花主人缘、风情。流年流月遇之参看:异性缘动、社交应酬增多、感情之事萌动;已有室家者参看感情纠葛之扰。只作事类联想,吉凶以格局喜忌为断。 +- **出处**:【拓展】通行子平神煞口径 +- **原文**:(拓展条,无原文) + +### R-煞-08 华盖 +- **条件**:以 `## 四柱` 年支或日支查:申子辰见辰、寅午戌见戌、巳酉丑见丑、亥卯未见未。四柱地支见之为命带;`## 流年`/`## 流月` 地支遇之为岁运逢。 +- **判定**:华盖主孤高、艺文、宗教玄学之缘。流年流月遇之参看:静心向学、技艺进修、亲近佛道玄学之事;亦主孤处少援。只作事类联想,吉凶以格局喜忌为断。 +- **出处**:【拓展】通行子平神煞口径 +- **原文**:(拓展条,无原文) + +### R-煞-09 将星 +- **条件**:以 `## 四柱` 年支或日支查:申子辰见子、寅午戌见午、巳酉丑见酉、亥卯未见卯。四柱地支见之为命带;`## 流年`/`## 流月` 地支遇之为岁运逢。 +- **判定**:将星主权柄、统摄。流年流月遇之参看:独当一面、掌事任责、组织调度之事。只作事类联想,能否任事以格局喜忌为断。 +- **出处**:【拓展】通行子平神煞口径 +- **原文**:(拓展条,无原文) + +### R-煞-10 劫煞 +- **条件**:以 `## 四柱` 年支或日支查:申子辰见巳、寅午戌见亥、巳酉丑见寅、亥卯未见申。四柱地支见之为命带;`## 流年`/`## 流月` 地支遇之为岁运逢。 +- **判定**:劫煞主争夺、破耗。流年流月遇之参看:财物被夺之虞、口舌争夺、意外伤损之事;宜提示守财、慎争。凶象之有无轻重以格局喜忌为断。 +- **出处**:【拓展】通行子平神煞口径 +- **原文**:(拓展条,无原文) + +### R-煞-11 亡神 +- **条件**:以 `## 四柱` 年支或日支查:申子辰见亥、寅午戌见巳、巳酉丑见申、亥卯未见寅。四柱地支见之为命带;`## 流年`/`## 流月` 地支遇之为岁运逢。 +- **判定**:亡神主耗散、失脱。流年流月遇之参看:遗失物件、心神不宁、谋事多变之细节。只作事类联想,吉凶以格局喜忌为断。 +- **出处**:【拓展】通行子平神煞口径 +- **原文**:(拓展条,无原文) + +--- + +## 3. 空亡细断 + +### R-煞-12 旬空之虚实参看 +- **条件**:`## 四柱空亡` 所列日柱空亡、时柱空亡(各二支);参空亡支在 `## 四柱` 所临之宫位与十神。 +- **判定**:空亡(旬空)者,该支之气虚而不实。通行参看:空亡支所临之十神、宫位,其象打折扣——吉神临空则吉减,忌神临空则凶亦减;事多有名实不符、成而復败之细节。真诠格局法不以空亡取格、不入格局层判断(见 95_禁则 R-禁-01),此仅作细节层虚实之参看。 +- **出处**:【拓展】通行子平空亡口径 +- **原文**:(拓展条,无原文) +- > 存疑:空亡吉凶之细论(如「金空则鸣、火空则发」之类)诸书口径不一,本篇不取;只取「虚而不实」之通义。 + +### R-煞-13 空亡应期:填实、逢冲、逢合 +- **条件**:`## 流年` 或 `## 流月` 地支与 `## 四柱空亡` 所列之支:相同(填实)、相冲(冲空)、相合(合空)。 +- **判定**:通行应期参看——空亡之支逢流年流月填实(同支),虚象落实,所临之事于该年(月)参看其应;逢冲则「冲空则起」,伏象被激起;逢合则空象得牵绊而显。三者皆应期细节之参看,所应何事、吉凶如何,仍以格局喜忌为断。 +- **出处**:【拓展】通行子平空亡口径 +- **原文**:(拓展条,无原文) +- > 存疑:「冲空则实/冲空则起」与「空亡忌冲」两说并见于诸书,兹取通行「冲空则起」之应期用法;事验与否,不敢必。 + +--- + +## 4. 纳音参看 + +### R-煞-14 流年流月纳音与命局纳音之生克参看 +- **条件**:`## 纳音` 所列四柱纳音(以年柱纳音为参看之本);流年、流月纳音由 `## 流年`/`## 流月` 干支按六十甲子纳音推得。 +- **判定**:通行纳音参看——流年纳音生年柱纳音,参看外境助我、顺遂;流年纳音克年柱纳音,参看外境相逼、压力;年柱纳音克流年纳音,参看我可制外、劳而有成;年柱纳音生流年纳音,参看泄气付出;比和参看平。此系纳音体系(《三命通会》一路)之借参,非真诠所有,权重为本篇最低,只作事类联想之助;纳音生克绝不入取格与格局层判断(参 R-纲-00、R-禁-01)。 +- **出处**:【拓展】通行纳音生克口径 +- **原文**:(拓展条,无原文) +- > 存疑:以年柱纳音为「命」属纳音古法,与子平日干体系不同源;借参之权重与验度,诸书无定论,特此标明。 + +--- + +## 5. 使用纪律 + +### R-煞-15 先格局后细节:神煞之间或与格局矛盾时,以格局喜忌为断 +- **条件**:流年流月同时逢吉煞与凶煞(如天乙贵人与劫煞并见);或神煞细节断语与格局行运断语方向相反。 +- **判定**:一律以格局喜忌为断——喜运逢凶煞,凶煞只作细节插曲,不改为喜;忌运逢吉煞,吉煞只作缓冲,不改为忌。神煞彼此矛盾时,取与格局喜忌同向者参看,逆向者存而不论。执行顺序:本篇一切条目在 00_总纲、分格文件、90_行运.md 判定完成之后方得引用。 +- **出处**:【拓展】分层逻辑依 R-禁-01、R-禁-05 推得 +- **原文**:(拓展条,无原文) + +### R-煞-16 表述纪律:细节断语必带「参看」语气并标注拓展层 +- **条件**:输出凡引用本篇条目之断语时。 +- **判定**:①语气用「参看」「可留意」「通常这时候」,只断事类倾向,不断具体事件之必然(与 R-运-28 同科);所断事类供 R-运-32 合成为现实事件候选;②细节断语的规则编号标注**不进正文**——正文只以「神煞细节·拓展层」标明层级,编号收在段末依据行(见 SKILL.md「★编号标注」);③用户不问流年流月细节时,本篇不主动加载;④只声明层级而不落实细节者不算引用本条(见 R-煞-17)。 +- **出处**:【拓展】 +- **原文**:(拓展条,无原文) + +### R-煞-17 细节落实配额:引用本篇必须产出具体事类 +- **条件**:本轮回答涉及流年流月细节(即已加载本篇)。 +- **判定**:**至少将 2 条神煞或空亡细节落实成「年份/月份 + 具体事类」**,事类须取本篇条目的「判定」字段所列内容(如逢驿马→出行、迁动、调动;逢劫煞→财物被夺之虞、宜守财慎争;日柱空亡逢流年填实→所临之事于该年落实)。**只标注「(神煞细节·拓展层)」「本篇未言,只作参看」而不给事类者,不计入配额。** + + 查不出两条合格的细节时(如全盘无神煞、空亡不逢引动),**删除所有空的层级声明**,在依据行写「细节层无可落实之事」,不得以声明充内容。 + +- **理由**:本篇为**体系拓展层**,其存在意义是补真诠格局法缺乏的细节断事颗粒度。若引用本篇只产出免责声明而不产出事类,等于既未增加信息、又增加了噪音——违背本层设立目的。配额的下限是 2 条,是「不许空手引用」的底线而非上限。 +- **出处**:【拓展】据本篇设立目的综括 +- **原文**:(拓展条,无原文) +- > 说明:本条约束的是**落实情况**,不改变 R-煞-01(不取格、不定成败、不改喜忌)与 R-禁-01(不入格局四层)的分层规则;细节依然只叠加于格局定论之后。 + + diff --git a/rules/95_禁则.md b/rules/95_禁则.md new file mode 100644 index 0000000..1b8a44d --- /dev/null +++ b/rules/95_禁则.md @@ -0,0 +1,137 @@ +# 子平真诠 · 禁则(不得为之事) + + + + +## 一、神煞星辰之禁(第二十一篇·论星辰无关格局) + +### R-禁-01 神煞、纳音、空亡不入格局四层;行运细节参看另依 94 +- **禁止**:将排盘输出 `## 神煞`、`## 纳音`、`## 四柱空亡` 三章的任何字段引入取格、成败(含救应)、用神相神、格局高低的任何条件或判定;不得因神煞吉凶、纳音生克、空亡有无增删或修饰格局结论。行运层面:流年流月之细节参看可依 `94_神煞细节.md` 叠加于格局定论之后,但不得改变格局喜忌之断。 +- **理由**:真诠所禁者,是以星辰操格局之权,非禁一切参看——星辰不能为生克之用,无权操格局成败;格局成则凶煞满盘不损其贵,格局破则吉神满盘不为功。年柱纳音同属非生克之本,不得据以立格(参 R-纲-00)。然原书亦许命逢险格而柱有二德者,于安危层面旁参(「则亦有之,然终无关于格局之贵贱也」)。故禁分两层:取格、成败、用神相神、格局高低四层绝对禁止,神煞纳音空亡概不得入;流年流月之细节参看放开为拓展层(见 `94_神煞细节.md`),细节只叠加、不回改。 +- **出处**:第二十一篇·论星辰无关格局 +- **原文**:「至于星辰好歹,既不能为生克之用,又何以操成败之权?」「是以格局既成,即使满盘孤辰入煞,何损其贵?格局既破,即使満盘天德贵人,何以为功?」(纳音之禁本篇无直接论述,依同一原理综括,并据总纲 R-纲-00 并禁。) + +### R-禁-02 不得见吉星而抛却用神 +- **禁止**:见天乙贵人、天德、月德等吉星,即抛开月令用神与四柱配合,妄论贵贱祸福。 +- **理由**:贵贱之权在格局不在星辰;抛却用神、不管四柱,即失子平之本。 +- **出处**:第二十一篇·论星辰无关格局 +- **原文**:「今人不知轻重,见是吉星,遂致拋却用神,不管四柱,妄论贵贱,谬谈祸福,甚可笑也。」 + +### R-禁-03 书中「禄」「贵」多训正官,不得读作神煞 +- **禁止**:把古书中的「禄」「贵」字眼一律读作禄堂、贵人等神煞,并据以论命。 +- **理由**:书中所云禄贵往往指正官。「正财得伤贵为奇」者,伤官乃生财之具,正财得之所以为奇,非遇贵人;「因得禄而避位」者,得禄谓得官——运得官乡宜乎进爵,然财用伤官食神者运透官则格坏、正官格行运又遇官则官重为病,凡此类方须避位。若作禄堂解,不独无是理,文法亦上下不相顾。 +- **出处**:第二十一篇·论星辰无关格局 +- **原文**:「况书中所云禄贵,往往指正官而言,不是禄堂人贵人。」「若作禄堂,不独无是理,抑且得禄避位,文法上下相顾。古人作书,何至不通若是!」 +> 存疑:「运透官则格条」之「格条」疑为「格刲/格坏」之讹,兹依文意释为破格;原文照引。 + +### R-禁-04 女命「贵众」训官众,不得以「贵人多」断淫贱 +- **禁止**:将「贵众则舞裙歌扇」之「贵」解为天乙贵人众多,并据以断女命为娼妓。 +- **理由**:贵众者官众也;女以官为夫,正夫岂可叠出,一女众夫故主舞裙歌扇。贵人乃天星,并非夫主,何碍于众。 +- **出处**:第二十一篇·论星辰无关格局 +- **原文**:「贵众者,官众也,女以官为夫,正夫岂可叠出乎?一女众夫,舞裙歌扇,理固然也。若作贵人,乃是天星,并非夫主,何碍于众,而必为娼妓乎?」 + +### R-禁-05 神煞之保留性边界:可参看安危,绝不关贵贱 +- **禁止**:将本篇批谬夸大为「原书否认神煞一切参考意义」;亦不得反以此保留为由,让神煞进入格局贵贱成败之判断。 +- **理由**:原书所认边界有二。其一,神煞如衣服、财官成格如人美貌,「贵人头上带财官,门充驰马」实因财官成格,非贵人之力;俗歌「局清贵又带二德必受荣封」仍以局之清贵为前提,若二德专主荣封,何不竟云带二德受两国之封。其二,命逢险格而柱有二德,逢凶有救、或免于危,「则亦有之」——可于安危层面存参,然终无关于格局之贵贱。正确做法:贵贱成败一断于格局;神煞至多作险中之救的旁参,且不得入规则条件。 +- **出处**:第二十一篇·论星辰无关格局 +- **原文**:「然星辰命书,亦有谈及,不善看书者执之也。」「若云命逢险格,柱有二德,逢凶有救,右免于危,则亦有之,然终无关于格局之贵贱也。」 +> 存疑:「右免于危」之「右」疑为「或」之讹;原文照引。 + +--- + +## 二、拘泥格局之禁(第二十九篇·论时说拘泥格局) + +### R-禁-06 月令为本、外格为末,不得执假失真 +- **禁止**:月令自有用神而弃之,拘泥外格名目以为「活变」;颠倒本末。 +- **理由**:八字用神专凭月令;必待月无用神,再寻外格。月令本也,外格末也。拘泥格局名目而不察月令用神之实,即执假失真,百无一是。 +- **出处**:第二十九篇·论时说拘泥格局 +- **原文**:「八字用神专凭月令,月无用神,台寻格局。月令,本也;外格,未也。今人不知轻重,拘泥格局,执假失真。」「如此谬论,百无一是,此皆由不知命理,妄为评断。」 +> 存疑:「台寻格局」之「台」疑为「再」之讹;「外格,未也」之「未」通「末」。原文照引。 + +### R-禁-07 戊生甲寅月时上庚:明煞有制,非「专食」格 +- **禁止**:以「专食」之格论此造,并以逢甲(煞)为减福。 +- **理由**:正确看法是明煞有制——月令甲木七煞当权,时上庚金食神制煞,正为逆用得宜之成格;煞为食所制,非减福之物。 +- **出处**:第二十九篇·论时说拘泥格局 +- **原文**:「故戊生甲寅之月,时上庚甲,不以为明煞有制,而以为专食之格,逢甲减福。」 +> 存疑:「时上庚甲」之「甲」与时柱干支体例不合,疑为「庚申」之讹;其理为食神制煞则不殊。原文照引。 + +### R-禁-08 丙生子月时逢巳禄:正官格归禄帮身,非「日禄归时」格 +- **禁止**:以「日禄归时」外格论此造,并以逢官为破局。 +- **理由**:月令子水正官为格之本,时逢巳禄乃归禄帮身,官星正其所用,非破局。 +- **出处**:第二十九篇·论时说拘泥格局 +- **原文**:「丙生子月,时逢巳禄,不以为正官之格,归禄帮身,而以为日禄归时,逢官破局。」 + +### R-禁-09 辛日透丙时遇戊子:得官逢印,非「朝阳」格 +- **禁止**:以「六阴朝阳」格论此造,并以透丙为「因丙无成」。 +- **理由**:辛日以丙为官星,丙透则官星明现,时遇戊子则印绶护身——得官逢印之美,非因丙而无成。 +- **出处**:第二十九篇·论时说拘泥格局 +- **原文**:「辛日透丙,时遇戊子,不以为辛日得官逢印,而以为朝阳之格,因丙无成。」 + +### R-禁-10 财逢时煞:生煞攻身,非「时上偏官」贵格 +- **禁止**:财格逢时干七煞,反以「时上偏官」贵格论之取贵。 +- **理由**:财生煞而煞攻身,是忌神肆虐,当忧其祸;不得以贵格名目文饰凶象。 +- **出处**:第二十九篇·论时说拘泥格局 +- **原文**:「财逢时煞,不以为生煞攻身,而以为时上偏官。」 + +### R-禁-11 癸生巳月时遇甲寅:暗官受破,非「刑合」成格 +- **禁止**:以寅刑巳「刑出财官」之刑合格论此造成格。 +- **理由**:巳中丙戊为癸之财官(暗官),时上甲寅伤官乘旺,刑而伤之,是暗官受破,非刑合成格。 +- **出处**:第二十九篇·论时说拘泥格局 +- **原文**:「癸生巳月,时遇甲寅,不以为暗官受破,而以为刑合成格。」 + +### R-禁-12 癸生冬月酉日亥时透戊坐戌:建禄用官通根,非「拱戌」格 +- **禁止**:以「拱戌」格论此造,并以戊坐戌为「填实不利」。 +- **理由**:冬月癸水乃月劫建禄,干透戊土官星、坐戌通根,正是建禄用官之成格;官星明透通根,无所谓填实之忌。 +- **出处**:第二十九篇·论时说拘泥格局 +- **原文**:「癸生冬月,酉日亥时,透戊坐戌,不以为月劫建禄,用官通根,而以为拱戌之格,填实不利。」 + +### R-禁-13 辛日坐丑、寅年亥月卯时:正财之格,非「填实拱贵」 +- **禁止**:以「拱贵填实」之外格名目论此造。 +- **理由**:本书明言此造为正财之格(亥月甲木正财当令,年时寅卯财旺根深);弃月令正财而就拱贵,执假失真。 +- **出处**:第二十九篇·论时说拘泥格局 +- **原文**:「辛日坐丑,寅年,亥月,卯时,不以为正财之格,而以为填实拱贵。」 + +### R-禁-14 乙逢寅月时遇丙子:木火通明,非「鼠贵」格 +- **禁止**:以「六乙鼠贵」格论此造。 +- **理由**:寅月木旺、时透丙火,木火通明,吐秀为美;与鼠贵无涉。 +- **出处**:第二十九篇·论时说拘泥格局 +- **原文**:「乙逢寅月,时遇丙子,不以为木火通明,而以为格成鼠贵。」 + +--- + +## 三、以讹传讹之禁(第三十篇·论时说以讹传讹) + +### R-禁-15 四事不得徇俗:干支、格局、生克、行运 +- **禁止**:①论干支,以俗书体象歌诀为确论,而不明阴阳之理;②论格局,以拘泥外格为活变,而不知专寻月令;③论生克,不察喜忌,以伤旺扶弱(损旺扶弱)为定法;④论行运,不问同中有异,以干支相类为一例。 +- **理由**:八字本有定理,理之不明遂生异端。正确做法:干支以阴阳之理为断,格局专寻月令,生克先察喜忌(参 R-纲-03),行运须辨同中有异。 +- **出处**:第三十篇·论时说以讹传讹 +- **原文**:「如论干支,则不知阴阳之理,而以俗书体象歌诀为确论;论格局,则不知专寻月令,而以拘泥外格为活变;论生克,则不察喜忌,而以伤旺扶弱为定法;论行运,则不问同中有导,而以干支相类为一例。」 +> 存疑:「同中有导」之「导」疑为「异」之讹;「伤旺扶弱」依文意读作损旺扶弱(俗法不论喜忌、唯以旺抑弱扶为定则)。原文照引。 + +### R-禁-16 讹传四源,皆当自警 +- **禁止**:堕入致讹四源——误读书中用字轻重而谬生偏见;信俗书无知妄作而深入迷途;以论命取运之偶然凑合为不易之定法;误收古人命式,或命式不误又以己意硬入外格。 +- **理由**:此四者为俗说讹传之根;「以己意入外格」尤为害人不浅。 +- **出处**:第三十篇·论时说以讹传讹 +- **原文**:「究其缘由,一则书中用字轻重,不知其意,而谬生偏见;一则以鹆书无知妄作,误会其说,而深入迷途;一则论命取运,偶然湊合,而遂以己见为不易,一则以古人命式,亦有误收,即收之不误,又以己意入外格,尤为害人不浅。」 +> 存疑:「鹆书」疑为「俗书」之讹;原文照引。 + +### R-禁-17 误收命式之禁(壬申、癸丑、己丑、甲戌例) +- **禁止**:将本为杂气财旺生官之造,误收作乙亥时,以「时上偏官」贵格论之取贵。 +- **理由**:壬申、癸丑、己丑、甲戌,本杂气财旺生官;若果为乙亥时,则旺财生煞攻身,将救死之不暇,于何取贵。命式误收,则全盘皆谬。 +- **出处**:第三十篇·论时说以讹传讹 +- **原文**:「如壬申、癸丑、己丑、甲戌,本杂气财旺生官也,而以为乙亥时,作时上偏官论,岂知旺财生煞,将救死之不暇,于何取贵?」 + +### R-禁-18 硬入外格之禁(己未、壬申、戊子、庚申例) +- **禁止**:月令自有财食可取,却弃月令,以「戊日庚申合禄」之外格论之。 +- **理由**:己未、壬申、戊子、庚申,本食神生财,本身自有财食,岂不甚美;何劳以庚合乙,求局外之官乎。 +- **出处**:第三十篇·论时说以讹传讹 +- **原文**:「如己未、壬申、戊子、庚申,本食神生财也,而欲弃月令,以为戊日庚申合禄之格,岂知本身自有财食,岂不甚美?又何劳以庚合乙,求局外之官乎,此类甚多,皆硬入外格也。」 + +### R-禁-19 不得以富贵倒推附会贵格 +- **禁止**:以既知富贵之命为指归——将风闻为实据,或探其生日而以己意妄加生时,谬造贵格;或见人富贵即迁就其说以相从。 +- **理由**:贵命之八字时多未确,即其人之本身亦不自知;不究其本而迁就附会,则终身无解。正确做法:论命只凭命式本身之月令格局,不以结果倒推规则。 +- **出处**:第三十篇·论时说以讹传讹 +- **原文**:「人苟中无定见,察理不精,睹此谬论,岂能无惑?」「岂知行术之人,必以贵命为指归,或将风闻为实据,或探其生日,而即以己意加之生时,谬造贵格,其人之八字,时多未确,即彼本身,亦不自知。若看命者不究其本,而徒以彼既富贵迁就其说以相从,无惑乎终身无解日矣!」 +> 存疑:「终身无解日矣」句疑有脱讹,大意谓终身无醒悟之日;原文照引。 + + diff --git a/rules/96_六亲.md b/rules/96_六亲.md new file mode 100644 index 0000000..e654407 --- /dev/null +++ b/rules/96_六亲.md @@ -0,0 +1,166 @@ +# 子平真诠 · 六亲(宫分、用神配六亲、妻子) + + + + + +## 1. 宫分定位 + +### R-亲-01 四柱宫分配六亲 +- **条件**:`## 四柱` 年、月、日、时四柱。 +- **判定**:年月日时自上而下,配祖父妻子亦自上而下——年柱为祖上之宫,月柱为父母之宫(宫分篇作「父」,论妻子篇以提纲得力主父母双全,互证),日柱为妻室之宫(妻宫取日支,即日主「坐下」,据第二十四篇「以妻论之,坐下财官」之用法),时柱为子息之宫。此乃「以地相配」的不易之位。 +- **出处**:第二十三篇·论宫分用神配六亲 +- **原文**:「年月日时,自上而下,祖父妻子,亦自上而下。以地相配,适得其宜,不易之位也。」 +- > 存疑:原文只言「日」配妻,未明言干或支;妻宫为日支系据第二十四篇「坐下」一语推定,并此注明,非宫分篇明文。 + +### R-亲-02 用神(十神)配六亲 +- **条件**:`## 四柱` 天干十神(含 `## 地支藏干` 十神)。 +- **判定**:正印为母(身所自出,取其生我);偏财为父(母之正夫——正印既为母,则母之夫偏财为父);正财为妻(受我克制,夫为妻纲,妻则从夫);官煞为子女(财所生——财为妻妾,则妻所生之官煞为子女);比肩为兄弟(理之显然)。 +- **出处**:第二十三篇·论宫分用神配六亲 +- **原文**:「正印也母,身所自出,取其生我也……偏财者,母之正夫也,正印为母,则偏才为父矣。正财为妻,受我克制,夫为妻纲,妻则从夫……官煞者,财所生也,财为妻妾,则官煞为子女矣。至于比肩为兄弟,又理之显然者。」 + +--- + +## 2. 宫分与用神配合论六亲吉凶 + +### R-亲-03 宫分所临之神,以格局喜忌定六亲吉凶 +- **条件**:某宫(年/月/日/时柱)所临干支系财、官、伤、刃等何十神;已按总纲定格、判明格局喜忌。 +- **判定**:六亲之有无得力、或吉或凶,看法分两步:先看四柱何宫存何物(财官伤刃系是何物),再以六亲配之于用神;该神于局中为喜为忌,即为此亲吉凶之据。参而配之,可以了然。 +- **出处**:第二十三篇·论宫分用神配六亲 +- **原文**:「其间有无得力,或吉或凶,则以四柱所存或年月或日时财官伤刃,系是何物,然后以六亲配之用神。局中作何喜忌,参而配之,可以了然矣。」 + +--- + +## 3. 父母总论(亲疏与验否) + +### R-亲-04 于人愈近其验益灵:父母验,祖宗兄弟不甚验 +- **条件**:论六亲吉凶之验否;看月令(提纲)是否得力、年干之十神是否于格局有用。 +- **判定**:命中吉凶,于人愈近其验益灵。提纲得力、或年干有用者,皆主父母双全得力——父母为身所自出,故自有验;至于祖宗、兄弟,不甚验。 +- **出处**:第二十四篇·论妻子 +- **原文**:「大凡命中吉凶,于人愈近,其验益灵。」「所以提纲得力,或年干有用,皆主父母双全得力。至于祖宗兄弟,不甚验矣。」 +- > 存疑:首段「故看命者,妻财子提纲得力,或年干有用,皆主父母身所自出,亦自有验」一句疑有讹夺(「妻财子」三字与下文「皆主父母」文气不属),未敢擅改;条目所取为下文自注之重出明白语。 + +--- + +## 4. 妻宫与妻星(论妻子篇) + +### R-亲-05 妻宫坐财官为吉之常法,不可执一 +- **条件**:日支(妻宫)所临为财、官。 +- **判定**:常法:妻宫坐财官,妻当贤贵。然不可执一——亦有坐财官而妻不利、逢伤刃而妻反吉者,盖以月令用神配成之喜忌为断(R-亲-06 至 R-亲-09 即其例)。 +- **出处**:第二十四篇·论妻子 +- **原文**:「以妻论之,坐下财官,妻当贤贵;然亦有坐财官而妻不利,逢伤刃而妻反吉者,何也?此盖月令用神,配成喜忌。」「其理不可执一。」 + +### R-亲-06 妻宫坐财,印格逢之反为不美 +- **条件**:日支坐财星;格局为印绶格。 +- **判定**:妻宫坐财本吉,而印格逢之,财能坏印、于格局有妨,于妻反为不美。 +- **出处**:第二十四篇·论妻子 +- **原文**:「如妻宫坐财,吉也,而印格逢之,反为不美。」 + +### R-亲-07 妻宫坐官,伤官格逢之不能顺意 +- **条件**:日支坐官星;格局为伤官格。 +- **判定**:妻坐官本吉,而伤官格逢之,伤官见官,岂能顺意。 +- **出处**:第二十四篇·论妻子 +- **原文**:「妻坐官,吉也,而伤官逢之,岂能顺意?」 + +### R-亲-08 妻宫坐伤官,财格、煞格逢之反主内助 +- **条件**:日支坐伤官;格局为财格(伤官生财)或偏官格(伤官制煞)。 +- **判定**:妻坐伤官本凶,而财格逢之可以生财,煞格逢之可以制煞,于格局有用,反主妻能内助。 +- **出处**:第二十四篇·论妻子 +- **原文**:「妻坐伤官,凶也,而财格逢之,可以生堸,煞格逢之,可以制煞,反主妻能内助。」 +- > 存疑:「可以生堸」之「堸」于义不通,疑为「财」之讹字(财格得伤官则伤官生财,方与「煞格逢之可以制煞」对文);按文义以「生财」解,原文如此,录以备考。 + +### R-亲-09 妻宫坐阳刃,格成而日主无气全赖日刃帮身,妻必能相夫 +- **条件**:日支坐阳刃;已为财、官、煞、伤等格且四柱已成格局;日主无气(身弱),全凭日支之刃帮身。 +- **判定**:妻坐阳刃本凶;而格成身弱、全赖日刃帮身者,妻宫即全局之所倚,妻必能相夫。 +- **出处**:第二十四篇·论妻子 +- **原文**:「妻坐阳刃,凶也,而或财官煞伤等格,四柱已成格局,而日主无气,全凭日刃帮身,则妻必能相关。」 +- > 存疑:「妻必能相关」之「相关」疑为「相夫」之讹;未敢擅改,两存之。 + +### R-亲-10 妻星透干成局,即坐下无用亦主内助 +- **条件**:天干透财星(妻星者,干头之财);财之透于格局为成局之用——如官格透财(财生官)、印多逢财(印绶格印多,取财损有余之印)、食伤透财为用(食伤生财)之类。 +- **判定**:既看妻宫,又看妻星。妻星透干而于格局成局者,即使日支坐下无用,亦主妻贤内助。 +- **出处**:第二十四篇·论妻子 +- **原文**:「既看妻宫,又看妻星。妻星者,干头之财也。妻透而成局,若官格透财、印多逢财、食伤透财为用之类,即坐下无用,亦主内助。」 + +### R-亲-11 妻星透干破格,即坐下有用亦防刑克 +- **条件**:天干透财星;财之透于格局为破格——如印轻财露(印格印轻而财星露出坏印)、食神伤官(食伤相关格局透财之破格)、透煞逢财(煞格逢财生煞)之类。 +- **判定**:妻星透干而破格者,即使日支坐下有用,亦防刑克。 +- **出处**:第二十四篇·论妻子 +- **原文**:「妻透而破格,若印轻财露、食神伤官、透煞逢财之类,即坐下有用,亦防刑克。」 +- > 存疑:「食神伤官」四字未足成句,确指何种配合未详(或承前省「透财」字,谓食伤格透财泄气太过、或食神制煞格透财化食生煞之类),原文如此,不强行补解。 + +### R-亲-12 妻星妻宫皆美而坐下逢刑冲,得美妻而难偕老 +- **条件**:妻星透干成格、或妻宫(日支)有用(临格局之喜);而日支逢刑冲。 +- **判定**:主得美妻而难偕老——星宫虽美,刑冲动其宫也。 +- **出处**:第二十四篇·论妻子 +- **原文**:「又有妻透成格,或妻宫有用而坐下刑冲,未免得美妻而难偕老。」 + +### R-亲-13 妻星两透、偏正杂出,亦防刑克 +- **条件**:天干正财、偏财并透(妻星两透,偏正杂出)。 +- **判定**:主妻室不一(多妻之象),并须防刑克。 +- **出处**:第二十四篇·论妻子 +- **原文**:「又若妻星两透,偏正杂出,何一夫而多妻?亦防刑克之道也。」 +- > 存疑:「何一夫而多妻」为反诘语气,谓偏正杂出非一夫一妻之正配;其断语落在「亦防刑克」。是否即直断多妻,原文语意在此一反问间,录以备考。 + +--- + +## 5. 子息(论妻子篇) + +### R-亲-14 看子息:宫(时支)与星(时干所透)并参,理与论妻同 +- **条件**:时支(子息宫)与时干所透之子星;已按总纲定格、判明格局喜忌。 +- **判定**:看子息,其宫分(时支)与星(时干所透)之喜忌并看,理路与论妻(宫、星并参,以月令用神所配喜忌为断)略同。 +- **出处**:第二十四篇·论妻子 +- **原文**:「至于子息,其看宫分与星所透喜忌,理与论妻略同。」 + +### R-亲-15 长生沐浴歌诀,以子星临时支之宫数定子息多寡 +- **条件**:子星(官煞,用阳干查宫,见 R-亲-16)于时支所临十二长生之位(长生、沐浴、冠带、临官、帝旺、衰、病、死、墓、绝、胎、养)。 +- **判定**:以长生沐浴之歌定子息数目之常数:长生四子(中旬半),沐浴二子,冠带、临官各三子,帝旺五子,衰二子、病一子,死则至老无儿(除非养取他人之子),入墓则子命夭亡,绝(受气为绝)一子,胎则头产为女,养则三子只留一。此仅定多寡之常数;子之贵贱与终归有无,仍须以时干喜忌参之(见 R-亲-17、R-亲-18)。 +- **出处**:第二十四篇·论妻子 +- **原文**:「但看子息,长生沐浴之歌,亦当熟读,如『长生四子中旬半,沐浴一双保吉祥,冠带临官三子位,旺中五子自成行,衰中二子病中一,死中至老没儿郞,除非养取他之子,入墓之时命夭亡,受气为绝一个子,胎中头产养姑娘,养中三子只留一,男子宫中子细详』是也。」 + +### R-亲-16 查子星长生用阳不用阴;子之男女以干之阴阳分,不拘官煞 +- **条件**:以官煞为子星查十二长生宫数时(例:甲乙日子星为金)。 +- **判定**:长生论法用阳而不用阴:甲乙日只用庚金之长生(自巳起顺数,巳酉丑之局),不用辛金之逆数(子申辰之局)。子星之男女,不问日主甲(阳)乙(阴),总以阳干为男、阴干为女(木为日主,总以庚为男、辛为女);俗书「官为女、煞为男」之说不可拘。 +- **出处**:第二十四篇·论妻子 +- **原文**:「然长生论法,用阳而不用阴。如甲乙日只用庚金长生,巳酉丑顺数之局,而不用辛金逆数之子申辰。虽书有官为女煞为男之说……盖木为日主,不问甲乙,总以庚为男辛为女,其理为然,拘于官煞,其能验乎?」 +- > 存疑:「总以庚为男辛为女」系就木日金为子星一例立论;推及他日主是否悉以「阳干为男、阴干为女」为通例,原文未明言,姑按此例引申,录以备考。 + +### R-亲-17 时干有用,时支虽死绝亦主子贵;再逢生旺则贵且繁 +- **条件**:看子息之次序:先看时支,定子星所临生旺死绝(多寡之定数);再以时干所透之十神配格局喜忌。时干有用之例:财格而时干透食(食神生财)、官格而时干透财(财生官)之类。 +- **判定**:时干有用者,即使时支逢死绝,亦主子女贵显,但不甚繁(数目不多);若时干有用而又逢时支生旺,则麟儿绕膝,贵且多,岂可量乎。 +- **出处**:第二十四篇·论妻子 +- **原文**:「所以八字到手,要看子息,先看时支。如甲乙生日,其时果系庚金何宫?或生旺,或死绝,其多寡已有定数,然后以时干子星配之。如财格而时干透食,官格而时干透财之类,皆谓时干有用,即使时逢死绝,亦主子贵,但不甚繁耳。若又逢生旺,则麟儿绕膝,岂可量乎?」 + +### R-亲-18 时干子透破局,虽生旺难为子息;又逢死绝则无所望 +- **条件**:时干所透之十神于格局为忌(子星透而破局);参时支生旺死绝。 +- **判定**:时干不好、子透破局者,即使时支逢生旺,亦难为子息;若时干破局而又逢时支死绝,则子息无所望矣。 +- **出处**:第二十四篇·论妻子 +- **原文**:「若时干不好,子透破局,即逢生旺,难为子息。若又死绝,无所望矣。此论妻子之大略也。」 + +--- + +## 6. 六亲向背(第四篇兼收) + +### R-亲-19 妻星、夫星被别干合去,则不亲其配 +- **条件**:男命财星(妻星)透干,被别干五合合去;女命官星(夫星)透干,被他干五合合去。(干合依 `## 四柱` 天干五合;合之成否、隔位争合等,依 R-附-10 至 R-附-14。) +- **判定**:男以财为妻,财被别干合去,则妻不亲其夫;女以官为夫,官被他干合去,则夫不爱其妻。配合有向背,吉凶因之而殊——此即 R-附-08「四喜神因合而无用」在六亲上之应。 +- **出处**:第四篇·论十干配合性情 +- **原文**:「即以六亲言之,如男以财为妻,而被别干合去,财妻岂能亲其夫乎?女以官为夫,而被他干合去,官夫岂能爱其妻乎?此谓配合之性情,因向背而殊也。」 + +--- + +## 7. 与格局法的衔接 + +### R-亲-20 六亲论叠加于格局成败之后,不回改格局 +- **条件**:凡论六亲(妻、子、父母等)。 +- **判定**:次序:先依总纲定格、判成败喜忌,再于四柱宫分与所透之星上叠加六亲判断——宫(年月日时所临)与星(干头所透)皆以月令用神配成之喜忌为转移,故同一宫星,格异则吉凶异(「其理不可执一」,见 R-亲-05 至 R-亲-09、R-亲-17/18)。六亲判断是格局喜忌之应用层:两篇原文均未言六亲宫星之吉凶可反过来改动格局成败之判定,故只顺向叠加、不逆向回改(综括,无单一原文)。 +- **出处**:第二十三篇·论宫分用神配六亲;第二十四篇·论妻子 +- **原文**:「然后以六亲配之用神。局中作何喜忌,参而配之,可以了然矣。」「此盖月令用神,配成喜忌。」「其理不可执一。」(综括两条之语意,无单一原文) + +--- + +## 8. 命例 + +本篇无。(第二十三、第二十四篇均不载完整命造;文中「官格透财、印多逢财」「财格而时干透食」之类皆配合示例,非独立命例。) + + diff --git a/rules/97_女命.md b/rules/97_女命.md new file mode 100644 index 0000000..842ded9 --- /dev/null +++ b/rules/97_女命.md @@ -0,0 +1,197 @@ +# 子平真诠 · 女命(夫星、夫宫、子息、婚姻应期) + + + + + +## 1. 总纲:女命取格与男命同法 + +### R-女-01 女命取格与男命无二【原书】 +- **条件**:任何女命命盘(性别已知为女)。 +- **判定**:取格专求月令、格局成败救应、顺逆纯杂高低、行运喜忌,一切依 00_总纲_取格.md 与各分格文件,与男命同法;原书未尝为女命另立格局。明证:原书批俗说「贵众则舞裙歌扇」时,即以「贵众者,官众也」之十神格局语义直论女命——可见原书论女命与论男命同此一体系,无第二法。女命本身之富贵贫贱寿夭,悉以格局定之。 +- **出处**:第二十一篇·论星辰无关格局(兼第八篇·论用神之通例) +- **原文**:「又若女命,有云『贵众则舞裙歌扇』。贵众者,官众也,女以官为夫,正夫岂可叠出乎?」「八字用神,专求月令。」 + +### R-女-02 先格局、后夫子【拓展】 +- **条件**:女命而论婚姻、子息。 +- **判定**:次序:先依总纲定格、判成败喜忌(女命本身之贵贱由此出),再于夫星、夫宫、子星、子息宫上叠加夫子判断;夫子吉凶是格局喜忌之应用层,只顺向叠加、不逆向回改格局。推演依据:第二十四篇首段「富贵贫贱,本身之事……妻以配身,子为后嗣,亦是切身之事」及 R-亲-20 之衔接次序——原书就男命立言,女命易「妻」为「夫」,理路不异。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +### R-女-03 女命身旺身弱之宜忌,与男命同视格局需要【拓展】 +- **条件**:女命日主身强或身弱(得令失令、根之有无,依 99_附录_干支通例.md §第六篇)。 +- **判定**:身旺身弱之于女命,仍只是格局喜忌之从属变量(R-纲-00):格局需身强则强身弱则弱,原书无「女命宜身弱、忌身旺」之说,不得因女命身弱即许为福、身旺即断为孤硬。推演依据:R-纲-00「旺衰是从属变量」与 R-附-16 至 R-附-19 得时失时之辨,其文皆无男女之别。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) +- > 存疑:「女命宜柔宜弱,身旺无依则孤硬克夫」乃后世流俗所增(《渊海子平》等书论女命诸诀类此),真诠五十篇无一语及此。本条依旺衰通例推得边界,非原书明文。 + +--- + +## 2. 夫星(以官煞为夫) + +### R-女-04 女以官为夫【原书】 +- **条件**:`## 四柱` 天干(含 `## 地支藏干`)见正官。 +- **判定**:女命以正官为夫星;夫星之透藏、向背、成破,为婚姻论断之主轴。此义原书三见(第四、第五、第二十一篇),为女命论之最固基点。 +- **出处**:第四篇·论十干配合性情(兼第五篇·论十干合而不合、第二十一篇·论星辰无关格局) +- **原文**:「女以官为夫,而被他干合去,官夫岂能爱其妻乎?」「女以官为夫,丁日逢壬,是我之夫,是我合之,正如夫妻相亲,其情愈密。」 + +### R-女-05 官星叠出(贵众),夫缘不一【原书】 +- **条件**:天干正官两透及以上;或干透支藏、官星三位以上(官众)。 +- **判定**:官星叠出,正夫岂可叠出,一女众夫之象,主夫缘不一(于古应再醮、于今应多段婚姻或婚缘屡易)。此「贵众」训「官众」,非天乙贵人众多——贵人乃天星,并非夫主,何碍于众(互见 R-禁-04,不得以神煞曲解)。 +- **出处**:第二十一篇·论星辰无关格局 +- **原文**:「贵众者,官众也,女以官为夫,正夫岂可叠出乎?一女众夫,舞裙歌扇,理固然也。若作贵人,乃是天星,并非夫主,何碍于众,而必为娼妓乎?」 + +### R-女-06 七煞亦为夫星之属,官煞并透混杂为忌【拓展】 +- **条件**:`## 四柱` 天干(含藏干)见七煞而无正官,或官煞并透。 +- **判定**:七煞与正官同为克我之神,煞格女命、或官星不现而煞现者,夫星即煞——煞亦可为夫。然官与煞判然(R-附-04),煞为夫者须赖制化方吉(见 R-女-11)。官煞并透则夫星混杂不清,主夫缘不一;得合去其一而取清(合煞留官、合官留煞,依 R-纲-05 救应法与各分格取清条)者,格清则前忌可解。推演依据:第二十一篇「贵众者,官众也」之训可通于煞;官煞混杂取清,则第八篇成败救应与偏官格篇之通例。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) +- > 存疑:原书及于女命之明文言「官」不言「煞」;煞为夫星系依「同克我者」之生克义与「官众即众夫」之训推广,传统命家虽同此说,真诠无明文。 + +### R-女-07 夫星透干成局,即夫宫无用亦主夫贤得力【拓展】 +- **条件**:天干透官星(夫星);官之透于格局为成局之用——如印格透官(官印相生)、财格透官(财官双美)、煞格合官留清之类;参日支有用与否。 +- **判定**:既看夫宫,又看夫星。夫星透干而于格局成局者,即使日支坐下无用,亦主夫贤得力。推演依据:镜像 R-亲-10(妻星透干成局即坐下无用亦主内助),易妻星之财为夫星之官,结构全同。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +### R-女-08 夫星透干破格,即夫宫有用亦防刑克【拓展】 +- **条件**:天干透官星;官之透于格局为破格——如伤官格而透官(伤官见官)、正官格而透伤克官、煞格官煞并透而无制化之类;参日支有用与否。 +- **判定**:夫星透干而破格者,即使日支坐下有用,亦防刑克。推演依据:镜像 R-亲-11(妻透而破格,即坐下有用,亦防刑克)。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +### R-女-09 夫星被别干合去,夫不亲妻【原书】 +- **条件**:官星透干,被别干五合合去(合之成否、间隔、争合,依 R-附-10 至 R-附-14)。 +- **判定**:夫星被合则其情外向,夫不爱其妻——四喜神因合而无用(R-附-08)在女命夫星上之应。(本条与 R-亲-19 互见:彼兼论男命妻星、女命夫星,此专就女命重录以便检索。) +- **出处**:第四篇·论十干配合性情 +- **原文**:「女以官为夫,而被他干合去,官夫岂能爱其妻乎?此谓配合之性情,因向背而殊也。」 + +### R-女-10 日主自合官星则夫妻相亲;被争合则夫星见夺【原书】 +- **条件**:阴日干与所透正官作合(如丁日逢壬);官星与日干之间无别干争先。若官星居月而年干先合(两丁争壬之类),则成争合妒合。 +- **判定**:日主自合官星,是我之夫、是我合之,夫妻相亲,其情愈密(日主本身之合,不以合去论,R-附-13);若官星被年月别干先合而去,日干反不能合,则己之夫星被姊妹合去,夫星透而不透——主夫缘见夺(于古应夫有所私、于今应婚恋为人所夺)。 +- **出处**:第五篇·论十干合而不合 +- **原文**:「又如女以官为夫,丁日逢壬,是我之夫,是我合之,正如夫妻相亲,其情愈密。惟壬在月上,而年丁合之,日干之丁,反不能合,是以己之夫星,被姊妹合去,夫星透而不透矣。」 + +### R-女-11 煞重为夫,赖食制印化,不以煞为夫即断凶【拓展】 +- **条件**:夫星为七煞(煞格或煞透为用),煞重(煞透多干或根重);四柱有食神制煞、或印绶化煞;或无制化。 +- **判定**:煞为凶神逆用(R-纲-01),煞重得食制、印化则格成,夫星虽猛而为我所用,主得夫之力、夫有威权;煞重无制无化而攻身者,格局既败,本身与夫缘俱损——其凶由破格来,非「煞为夫则必悍、煞重则必克」之谓。推演依据:第八篇逆用之法;R-亲-08「煞格逢伤制煞,反主内助」之镜像——妻宫之神制煞尚主内助,则制煞成格之女命,夫星之煞受制同理。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +### R-女-12 夫星入墓,不忌刑冲、不求冲开【拓展】 +- **条件**:夫星(官/煞)为辰戌丑未所藏(官星入四墓之库);或局逢辰戌丑未相刑冲。 +- **判定**:杂气透干会支即可取用,何劳刑冲;不得以「官星入库不冲不发」「冲开夫库」立论,更不得见库求冲。夫星入墓之吉凶,仍归格局喜忌(透干会支之清浊)为断。推演依据:第十七篇「财官入库不冲不发——此说虽俗书盛称之,然子平先生造命,无是说也」与 R-纲-11 墓库刑冲辨正——官即夫星,通例直贯。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) +- > 存疑:俗书有「女命官星入墓,主夫缘薄、夫早亡」之说,真诠无明文;本条但破「冲库」之谬,不坐实入墓之吉凶。 + +--- + +## 3. 夫宫(日支) + +### R-女-13 日支为夫宫【拓展】 +- **条件**:`## 四柱` 日柱地支。 +- **判定**:女命以日支为夫宫(配偶之宫)。推演依据:第二十三篇宫分法以日柱配妻室之宫、第二十四篇以「坐下」为用(R-亲-01)——日柱为配偶之宫,男命则为妻宫,女命则为夫宫;「以地相配,不易之位」之宫分不因男女而异。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +### R-女-14 夫宫所临之神,以格局喜忌定夫之吉凶,其理不可执一【拓展】 +- **条件**:日支所临十神;已按总纲定格、判明格局喜忌。 +- **判定**:常法:夫宫坐官(夫星得位)为吉;然亦有坐官而夫不利、坐伤刃而夫反吉者,一以月令用神配成之喜忌为断,不可执一(诸例见 R-女-15 至 R-女-18)。推演依据:镜像 R-亲-05(妻宫坐财官之常法不可执一)——原书就妻宫立论,「此盖月令用神,配成喜忌」之理于夫宫全同。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +### R-女-15 夫宫坐官,伤官格逢之不能顺意【拓展】 +- **条件**:日支坐官星;格局为伤官格。 +- **判定**:夫宫坐官本吉,而伤官格逢之,伤官见官,岂能顺意——夫缘多乖。推演依据:镜像 R-亲-07(妻坐官,吉也,而伤官逢之,岂能顺意);女命夫宫坐官、格逢伤官,其理一字不易。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +### R-女-16 夫宫坐伤官,财格、煞格逢之反主夫能相扶【拓展】 +- **条件**:日支坐伤官;格局为财格(伤官生财)或偏官格(伤官制煞)。 +- **判定**:夫宫坐伤官本凶,而财格逢之可以生财,煞格逢之可以制煞,于格局有用,反主夫能相扶内助。推演依据:镜像 R-亲-08(妻坐伤官而财格生财、煞格制煞,反主妻能内助)。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +### R-女-17 女命伤官见官,仍归格局喜忌,不作「克夫」专断【拓展】 +- **条件**:女命伤官格透官、或官格透伤(伤官见官之局)。 +- **判定**:伤官见官之吉凶依格局法断:破格者「为祸百端」,其祸及于本身富贵寿夭;金水伤官见官反秀者,以调候权用(R-纲-15)。夫之吉凶仍依 R-女-14 宫星喜忌与 R-女-07/08 成破叠断——不得一见女命伤官即直断「克夫」「必再嫁」。推演依据:「六亲吉凶以格局喜忌定」之通例(R-亲-03、R-亲-20);原书论伤官见官皆格局语,无一语专属女命。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) +- > 存疑:「女命伤官见官必克夫、伤官重者必刑夫再嫁」乃后世流俗所增;真诠伤官格篇与气候篇论伤官见官,皆就格局成败立言。本条所破者为流俗之专断,非谓伤官见官于女命无伤——其伤仍在格局,并循格局及于夫缘。 + +### R-女-18 夫宫坐阳刃,格成身弱全赖日刃帮身,夫必能助【拓展】 +- **条件**:日支坐阳刃;已为财、官、煞、伤等格且四柱已成格局;日主无气(身弱),全凭日支之刃帮身。 +- **判定**:夫宫坐刃本凶,而格成身弱、全赖日刃帮身者,夫宫即全局之所倚,夫必能助(于古应夫能持家,于今应得配偶之扶持)。推演依据:镜像 R-亲-09(妻坐阳刃而全凭日刃帮身,妻必能相夫)。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +### R-女-19 夫星夫宫皆美而夫宫逢刑冲,得良夫而难偕老【拓展】 +- **条件**:夫星透干成格、或夫宫(日支)有用(临格局之喜);而日支逢刑冲。 +- **判定**:主得良夫而难偕老——星宫虽美,刑冲动其宫也。推演依据:镜像 R-亲-12(妻透成格或妻宫有用而坐下刑冲,未免得美妻而难偕老)。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +--- + +## 4. 子星与子息宫(以食伤为子) + +### R-女-20 女命以食神伤官为子星【拓展】 +- **条件**:`## 四柱` 天干(含 `## 地支藏干`)见食神、伤官。 +- **判定**:女命以食伤为子星——子者,我所生也;我生者为食伤,于女命最切。推演依据:第二十三篇定男命子星为官煞,其推衍之径为「财为妻妾,则妻所生之官煞为子女」;女命无「妻所生」之径,依「子为后嗣」之直义,取我所生之食伤。原书无女命子星明文。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) +- > 存疑:男命子星取官煞(妻所生)、女命子星取食伤(我所生),两径不同,系依原书推衍逻辑分别立之;原书未尝并论两径,亦无一语及女命子星,录以备考。 + +### R-女-21 时柱为子息宫【原书】 +- **条件**:`## 四柱` 时柱(时支为主,时干所透参之)。 +- **判定**:时柱为子息之宫——宫分法年月日时自上而下配祖父妻子,为「不易之位」,无男女之别,女命同用。(看子息「宫分与星所透喜忌」并参之法,原书就男命立言而明言「理与论妻略同」;移于女命则理与论夫略同,应用见 R-女-22。) +- **出处**:第二十三篇·论宫分用神配六亲(并参之法出第二十四篇·论妻子) +- **原文**:「年月日时,自上而下,祖父妻子,亦自上而下。以地相配,适得其宜,不易之位也。」「至于子息,其看宫分与星所透喜忌,理与论妻略同。」 + +### R-女-22 时干有用则子贵,时干破局则子息难【拓展】 +- **条件**:时干所透十神于格局之喜忌;参时支之生旺死绝。 +- **判定**:时干有用(如财格而时干透食、官格而时干透财之类)者,即使时支逢死绝,亦主子女贵显,但不甚繁;时干有用而又逢时支生旺,则贵且多。时干不好、子星(食伤)透而破局者,即使时支逢生旺,亦难为子息;时干破局而又逢时支死绝,则子息无所望。推演依据:镜像 R-亲-17/18(时干有用主子贵、子透破局难为子息)——原书定子息贵贱之两层法(先时支定多寡之数,后时干定贵贱之实)无男女之别,惟子星之名易官煞为食伤。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +### R-女-23 长生沐浴歌移用于女命子星,用阳不用阴【拓展】 +- **条件**:以食伤为子星查十二长生(用阳不用阴:如甲乙日子星为火,只用丙火之长生自寅顺数,不用丁火之逆数);子星于时支所临长生之位。 +- **判定**:长生沐浴歌之宫数(长生四子中旬半、沐浴二子、冠带临官各三、帝旺五、衰二病一、死则无儿、入墓夭亡、绝一子、胎头产女、养三留一)移用于女命,定子息多寡之常数;子之贵贱与终归有无,仍依 R-女-22 以时干喜忌参之。推演依据:R-亲-15/16 之查法(长生论法用阳不用阴),移子星为食伤。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) +- > 存疑:原歌末句明言「男子宫中子细详」——本为男命子星(官煞)而设;移于女命食伤,原书无据,效验未详。解释时只可作参考、不可作铁断,并须向用户声明此边界。 + +--- + +## 5. 婚姻应期(夫星夫宫之引动,悉归行运通论) + +### R-女-24 婚姻应期三途:夫星、夫宫、格局之引动【拓展】 +- **条件**:`## 大运` / `## 流年` 干支与下列三者之关系:①夫星(天干官煞)——支中官星逢运透清(R-运-22)、官星被合者逢冲合之解(R-附-20 至 R-附-23);②夫宫(日支)——逢会则动(R-运-21)、逢冲分缓急轻重(R-运-10/11);③格局——运之成格变格(R-运-14 至 R-运-16)。 +- **判定**:婚恋之应(成婚、婚变、夫缘起伏、夫之荣枯)以此三途之交会为期:夫星透清或夫宫逢合会之岁运,多应婚缘之成;夫星被伤、夫宫逢冲而无解之岁运,多应婚缘之变。断法细节与表述纪律悉依 90_行运.md(先运后年、先大局后流年,R-运-27;应期收敛,R-运-29),本篇不复写;不得孤立以一冲一合直断婚期。推演依据:行运通论本为万用之则,施于夫子之宫星即婚姻应期;原书无女命应期专文。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +### R-女-25 引动但言其应,吉凶仍由格局喜忌出【拓展】 +- **条件**:夫星、夫宫逢大运流年引动之际。 +- **判定**:同一引动,喜神被引则吉应(如夫宫所临之喜逢会而婚成、夫荣),忌神被引则凶应(如夫星被伤、夫宫之喜逢冲而婚变、夫损);合冲刑会只是「应」之机,喜忌才是「吉凶」之据(R-运-02/03:命中所喜运助之为喜,命中所忌运逆之为忌)。推演依据:R-运-02/03 行运总原则,通用于一切宫星。 +- **出处**:(体系拓展,无直接出处) +- **原文**:(拓展条,无原文) + +--- + +## 6. 与 96_六亲.md 之分工 + +### R-女-26 男女命分工与文件路由【拓展】 +- **条件**:命盘性别已知(问命者自述)。 +- **判定**:分工如下——**男命**:妻室、子息之论在 96_六亲.md §4-5(妻星=财,子星=官煞,妻宫=日支,子息宫=时柱);**女命**:夫、子之论在本篇(夫星=官煞,夫宫=日支,子星=食伤,子息宫=时柱);**父母**(印为母、偏财为父,R-亲-02)、**兄弟**(比肩,R-亲-02)之论两篇通用,悉依 96_六亲.md §1-3,本篇不复写。宫分框架(年月日时配祖父妻子,R-亲-01)与「六亲吉凶以格局喜忌定」之总法(R-亲-03、R-亲-20)亦两篇共用。性别未知而问婚姻者,不得遽以男命论,须先问明性别,或两说并陈。 +- **出处**:(体系拓展,无直接出处——文件分工为规则库之组织约定) +- **原文**:(拓展条,无原文) + +--- + +## 7. 命例 + +本篇无。(原书无女命专篇,亦无女命命造可为基准;本篇各条之应用示范,俟规则库验证补强时另立。) + + diff --git a/rules/99_附录_干支通例.md b/rules/99_附录_干支通例.md new file mode 100644 index 0000000..8922365 --- /dev/null +++ b/rules/99_附录_干支通例.md @@ -0,0 +1,189 @@ +# 子平真诠 · 附录:干支通例(基础七篇) + + + + +## 第一篇·论十干十二支 + +### R-附-01 干气支质,干以支为根 +- **条件**:凡以天干论旺衰、通根(天干对 `## 四柱` 四支及 `## 地支藏干` 寻根)时。 +- **判定**:干为五行之气行于天,动而不居;支为五行之质存乎地,止而不迁。干施而支受,故天干之强弱系于地支之根;十干之禄寄于支(甲禄于寅、乙禄于卯之类),如官长之莅该管地方,「各司一月之令」。土为木火金水冲气所结,寄旺于四时,阴阳气质之理同此。 +- **出处**:第一篇·论十干十二支 +- **原文**:「甲乙在天,故动而不居……寅卯在地,故止而不迁。」「甲乙如官长,寅卯如该管地方。甲禄于寅,乙禄于卯,如府官之在郡,县官之在邑,而各司一月之令也。」 + +### R-附-02 阳干气旺、阴干质坚,无大小宜忌之等差 +- **条件**:比较同五行阴阳二干(如甲与乙)之强弱、宜制宜护时。 +- **判定**:以气而论阳干旺于阴干(甲旺于乙),以质而论阴干坚于阳干(乙坚于甲),二者相埒,无贵贱等差。俗书所谓「甲为大林,盛而宜斩;乙为微苗,脆而莫伤」乃谬论——不得因干之阴阳而别立「阳干宜克伐、阴干不堪制」之说,干扰格局制化之正理。 +- **出处**:第一篇·论十干十二支 +- **原文**:「以气而论,甲旺于乙;以质而论,乙坚于甲。而俗书谬论,以甲为大林,盛而宜斩,乙为微苗,脆而莫伤,可为不知阴阳之理者矣。」 + +--- + +## 第二篇·论阴阳生克 + +### R-附-03 生与克同用(逆用之理据) +- **条件**:论格局制化,尤凶神逆用(煞、伤、劫、刃得制伏)之理据。 +- **判定**:克非为害,乃「节而止之,使之收敛,以为发泄之机」;杀正所以为生,生与克同用、克与生同功。故凶神得制不惟免祸,反成其美——此为四凶神逆用(参 R-纲-01、R-纲-02)之根本原理。 +- **出处**:第二篇·论阴阳生克 +- **原文**:「杀者,使发泄于外者藏收内,是杀正所以为生。」「是以四时之运,生与克同用,克与生同功。」 + +### R-附-04 同克而官煞判然;印之偏正可置勿论 +- **条件**:日干逢克我之干,定其为正官抑七煞(十神定性)时。 +- **判定**:同一克我,因阴阳配合而官煞判然:阳克阳、阴克阴(同性)为七煞,阴阳相配(异性)为正官。其理:阳为气、阴为质,气能克气(丙之阳和能克去庚之肃杀)、质能克质(丁之薪火能化辛之金铁),故庚以丙为煞而辛以丙为官,辛以丁为煞而庚以丁为官——同性之克无情而能伤,异性之克有情而相成。官煞「淑慝判然」,顺逆之用迥异(官顺用、煞逆用),不可不细辨;印则偏正相似,「生克之殊,可置勿论」(正偏印生身之功相近,不若官煞之悬殊)。 +- **出处**:第二篇·论阴阳生克 +- **原文**:「此所以水同生木,而印有偏正;金同克木,而局有官煞也。印绶之中,偏正相似,生克之殊,可置勿论;而相克之内,一官一煞,淑慝判然,其理不可不细详也。」 +> 存疑:原文「木之生气,寄于木而行于天,故逢秋天为官,而乙则反是,庚官而辛杀也」一句,按字面与常法(甲以庚为煞、乙以庚为官)及同篇下文丙丁庚辛之例不合,疑有讹文(「为官」或当作「为杀」)。本条判定以同篇丙丁庚辛例证及通行十神为准,录此备查,不自行改文。 + +--- + +## 第三篇·论阴阳生死 + +### R-附-05 十二长生阳顺阴逆,阳生即阴死 +- **条件**:以十二长生查某干于十二支之生旺墓绝方位时。 +- **判定**:阳干长生顺行,阴干逆行(阳主聚,以进为进;阴主散,以退为退)。阳之所生即阴之所死,彼此互换:甲生于亥即乙死于亥,甲死于午即乙生于午。盖阳为气、阴为质,气之消长与质之成毁异位。长生沐浴等名乃假借形容之词,状气之盛衰渐次耳。 +- **出处**:第三篇·论阴阳生死 +- **原文**:「阳主聚,以进为进,故主顺;阴主散,以退为退,故主逆。」「阳之所生,即阴之所死,彼此互换,自然之运也。」 + +### R-附-06 月令休囚而他柱得禄旺,便不为弱 +- **条件**:判日主强弱;月令为日主休囚之地,而年、日、时支(`## 四柱` 四支)见日主之长生、禄、旺。 +- **判定**:日主不必生逢禄旺之月;即月令休囚,年日时中得长生禄旺,便不为弱。不得执月令一语遽定身弱(详参 R-附-16)。 +- **出处**:第三篇·论阴阳生死 +- **原文**:「人之日主,不必生逢禄旺,即月令休囚,而年日时中,得长禄旺,便不为弱。」 + +### R-附-07 阴阳长生力殊,逢库阳根阴否;驳「投库必冲」 +- **条件**:日主于四支逢长生、逢墓库(辰戌丑未),分阴阳论根之有无轻重。 +- **判定**:阳长生有力,阴长生不甚有力,然亦不弱。逢库则阳干为有根、阴干为无用——阳大阴小,阳得兼阴,阴不能兼阳。俗书谓「投库而必冲」者谬:墓库自可作根,无须刑冲开之(参 R-附-19、R-纲-11)。 +- **出处**:第三篇·论阴阳生死 +- **原文**:「就使逢库,亦为有根。时产谓投库而必冲者,俗书之谬也,但阳长生有力,而阴长生不甚有力,然亦不弱。若是逢库,则阳为有根,而阴为无用。」 + +--- + +## 第四篇·论十干配合性情 + +### R-附-08 四喜神因合而无用(合去) +- **条件**:官、印、财、食四喜神为用为相,而四柱另有透干来合(`## 四柱` 天干五合)。 +- **判定**:喜神被合则失其用:官被合则「非其官」,印被合则「非其印」,财被别位之干合去则「非其财」(如年己月甲,年上之财被月合去,日主无分;年甲月己,则被年合去,日主不与),食被合则「非其食」。「有所合则有所忌,逢吉不为吉」——吉神逢合,其吉不属日主。 +- **出处**:第四篇·论十干配合性情 +- **原文**:「如甲用辛官,透丙作合,而官非其官;甲用癸印,透戊作合,而印非其印……甲用丙食与辛作合,而非其食,此四喜神因合而无用者也。」 + +### R-附-09 四忌神因合而化吉(合去忌神) +- **条件**:煞、伤、枭(及劫财)四忌神通干,另有透干来合之。 +- **判定**:忌神被合则化吉:煞被合则不攻身(甲逢庚煞,乙来合庚);伤被合则不为伤官(丁被壬合);枭被合则不夺食(壬被丁合)。「逢凶不为凶。」此「合煞」「合伤」即救应三法中「合」法(参 R-纲-05)之所本。 +- **出处**:第四篇·论十干配合性情 +- **原文**:「如甲逢庚为煞,与乙作合,而煞不攻身;甲逢乙为劫财,甲逢丁为伤,与壬作合,而丁不为伤官;甲逢壬为枭,与丁作合,而壬不夺食。此四忌神因合化吉者也。」 +> 存疑:「甲逢乙为劫财」一句下原文无对应「与某合作合而劫不为害」之文,疑有省文;以例推之当为劫财被合(乙与庚合)则不劫。原文语气如此,录以待考。 + +--- + +## 第五篇·论十干合而不合 + +### R-附-10 间隔则合而不敢合 +- **条件**:两干相合,其间隔有制其中一干之干(如甲与己合,甲己之间隔庚)。 +- **判定**:合而不敢合,「有若无也」——合完全不成立,不作合论(甲不能越克我之庚而合己)。此为「制于势」,与隔远之半合(R-附-11)有差。 +- **出处**:第五篇·论十干合而不合 +- **原文**:「譬如甲与己合,而甲己中间,以庚间隔之,则甲岂能越克我之庚而合己?此制于势然也,合而不敢合也,有若无也。」 + +### R-附-11 隔位太远则半合 +- **条件**:相合两干分居年干与时干,中隔两位。 +- **判定**:合而不能合,为半合——「其为祸福得十之二三而已」。论合之吉凶(合去喜神、合去忌神之类)时,效力按十之二三折算,不得作全合论。 +- **出处**:第五篇·论十干合而不合 +- **原文**:「如甲在年干,己在时上,心虽相契,地则相远,如人天南地北,不能相合一般。然于有所制而不敢合者,亦稍有差,合而不能合也,半合也,其为祸福得十之二三而已。」 + +### R-附-12 合一留一,合而无伤 +- **条件**:同类两干并透(`## 四柱` 天干两见同神,如两辛官、庚辛并透),其中一干逢合。 +- **判定**:所合者去、所留者存,格随所留论,于合无伤。二例:甲生寅卯,月时两透辛官,年丙合月辛,为「合一留一」;甲逢月刃,庚辛并透(官煞混杂),丙合辛官,为「合官留煞」,煞刃依然成格。 +- **出处**:第五篇·论十干合而不合 +- **原文**:「如甲生寅卯,月时两透辛官,以年丙合月辛,是为合一留一,官星反轻。甲逢月刃,庚辛并透,丙与辛合,是为合官留煞,而煞刃依然成格,皆无伤于合也。」 +> 存疑:「官星反轻」之「轻」语义未确(或谓所留一官之力较两透为轻),按原文录之,不强解。 + +### R-附-13 日主本身之合,不以合去论 +- **条件**:日干自与四柱中干相合(五阳干逢财、五阴干遇官,即日主与财、官之合)。 +- **判定**:本身之合不为合去——乙日见庚官,是我合我官,官仍为我用;丁日见壬亦然。但若所合之神先被他干合去(庚在年而乙在月,月乙先合庚),则日主反不能合,是为合去:我之官财被他人所夺,「透而不透」矣(如丁日以壬为夫,年丁先合月壬,夫星被姊妹合去)。 +- **出处**:第五篇·论十干合而不合 +- **原文**:「盖五阳逢财,五阴遇官,俱是作合,惟是本身十干合之,不为合去。」「若庚在年上,乙在月上,则月上之乙,先去合庚,而日干反不能合,是为合去也。」 + +### R-附-14 争合妒合 +- **条件**:两干同合一干(两辛合丙、两丁合壬之类)。 +- **判定**:有争合妒合之嫌,然到底终有合意,但情不专耳——合作成立而减其情专之吉。若两合一而中间隔位(如庚午、乙酉、甲子、乙亥,两乙合庚而甲日隔之),则全无争妒,仍作合论(该造作合煞留官,无减福)。 +- **出处**:第五篇·论十干合而不合 +- **原文**:「然到底终有合意,但情不专耳。若以两合一而隔位,则全无争妒。如庚午、乙酉、甲子、乙亥,两乙合庚,甲日隔之,此高太尉命,仍作合煞留官,无减福也。」 + +### R-附-15 化气真假之辨 +- **条件**:论天干合化(化气)之真伪,定其是否以化论。 +- **判定**:化气有真有假。三种皆假化:化气有余而日主带根、带苗、带劫、带印者(日主有依,不能真化);日主无根而化神不足者(化之不成);合化虽真而有闲神来伤化气者(化而被破)。反是则为化气之真。 +- **出处**:第五篇·论十干合而不合 +- **原文**:「化气有真有假。上两造为化气之真者,亦有化气有余,而日带根苗劫印者;有日主无根,而化神不足者;更有合化虽真,而闲神来伤化气者,皆为假化。」 +> 存疑:原文「上两造为化气之真者」一语承上指某两造命例,然本篇前文(现存提取文本)未见明确命例,疑有阙文;真假之辨的三条标准则完整如上。 + +--- + +## 第六篇·论十干得时不旺失时不弱 + +### R-附-16 得时不旺、失时不弱(月令与他柱之损益权) +- **条件**:判某干(尤日主)旺衰,执「得时俱为旺论,失时便作衰看」之成法时。 +- **判定**:八字虽以月令为重,而年月日时亦有损益之权,不可执一。**得时而不旺**:如春木虽强,金太重而木亦危(干庚辛、支酉丑,无火制之);**失时而不弱**:如秋木虽弱,木根深而木亦强(干甲乙、支寅卯,遇官透而能受)。月令为权重最大之一柱,而非独断(参 R-附-06)。 +- **出处**:第六篇·论十干得时不旺失时不弱 +- **原文**:「书云,得时俱为旺论,失时便作衰看,虽是至理,亦死法也。」「八字虽以月令为重,而旺相休囚,年月日时,亦有损益之权……是以得时而不旺也……是失时不弱也。」 + +### R-附-17 有根便能受财官当煞伤;根重于干之等次 +- **条件**:日主(或用神)于天干多比劫 vs 地支通根,权衡身之强弱。 +- **判定**:十干不论月令休囚,只要四柱有根,便能受财官食神、当伤官七煞。根之等次:长生禄旺,根之重者也;墓库余气,根之轻者也。得一比肩不如支中一墓库;得二比肩不如一余气;得三比肩不如一长生禄刃。「比劫如朋友之相扶,通根如室家之可住」,干多不如根重。 +- **出处**:第六篇·论十干得时不旺失时不弱 +- **原文**:「是故十干不论月令休囚,只要四柱有根,便能受财官食神而当伤官七煞。长生禄旺,根之重者也;墓库余气,根之轻者也。得一比肩,不如得支中一墓库……得三比肩,不如得一长生禄刃。」 + +### R-附-18 墓库余气为根,以库中藏干为准 +- **条件**:以墓库、余气、阴长生为根时,核 `## 地支藏干`。 +- **判定**:墓库为根,以库中确藏其干为限:甲逢未、丙逢戌作通根论;乙逢戌、丁逢丑不作此论(戌中无藏木,丑中无藏火)。余气为根:乙逢辰、丁逢未之类。阴长生不作重根论(乙逢午、丁逢酉),然亦为明根,抵得一余气(参 R-附-07「阴长生不甚有力,然亦不弱」)。 +- **出处**:第六篇·论十干得时不旺失时不弱 +- **原文**:「乙逢戌、丁逢丑、不作此论,以戌中无藏木,丑中无藏火也。得二比肩,不如得一余气,如乙逢辰、丁逢未之类……阴长生不作此论,如乙逢午、丁逢酉之类,然亦为明根,比得一余气。」 + +### R-附-19 驳「失令即弱」与「阳干逢库求冲」二谬 +- **条件**:见夏水冬火之类失令之干;或阳干逢库(壬逢辰、丙坐戌)。 +- **判定**:二谬必宜扫除:一,见夏水冬火不问有无通根便断为弱——失令而通根者不弱(参 R-附-16、R-附-17);二,阳干逢库(壬逢辰、丙坐戌)乃水火通根于身库,不得不知为根,更不得求刑冲以开之(参 R-纲-11 墓库刑冲辨正)。 +- **出处**:第六篇·论十干得时不旺失时不弱 +- **原文**:「今人不知命理,见夏水冬火,不问有无通根,便为之弱。更有阳干逢库,如壬逢辰、丙坐戌之类,不以为水火通根身库,甚至求刑冲开之。此种谬论,必宜一切扫除也。」 + +--- + +## 第七篇·论刑冲会合解法 + +> 原书于三刑取义自注阙疑:「至于三刑取庑,姑且阙疑,虽不知其所以然,于命理亦无害也。」(三刑之名目照旧使用,其取义之由不究。) + +### R-附-20 会合解刑冲 +- **条件**:四支有冲(六冲)或刑(三刑),另有支与相刑相冲之一方成六合或三合局(`## 四柱` 四支、`## 地支藏干`)。 +- **判定**:刑冲俱非美事,而三合六合可以解之。解冲:与冲之一方合或会,则冲不作(甲生酉月逢卯冲,有戌则卯戌合而不冲;有辰则酉辰合而不冲;有亥未则卯会亥未而不冲;有巳丑则酉会巳丑而不冲)。解刑同理(丙生子月逢卯刑,有戌合卯、丑合子、亥未会卯、申辰会子,皆不刑)。**会合之力先于刑冲而论。** +- **出处**:第七篇·论刑冲会合解法 +- **原文**:「八字支中,刑冲俱非美事,而三合六合,可以解之。」「是会合可以解冲也。」「是会合可以解刑也。」 + +### R-附-21 因解而反得刑冲 +- **条件**:本为解刑冲之合,合去并列重支之一。 +- **判定**:众不刑寡:二卯不刑一子;支逢戌合去一卯,则余一卯复刑子——「一合而一刑」,因解而反得刑冲。凡以合解刑冲者,解后须复查余支有无新出之刑冲。 +- **出处**:第七篇·论刑冲会合解法 +- **原文**:「假如甲生子月,支逢二卯相并,二卯不刑一子,而支又逢戌,戌与卯合,本为解刑,而合去其一,则一合而一刑,是因解而反得刑冲也。」 + +### R-附-22 会合不能解(解神被牵) +- **条件**:解刑冲之支自身复被别支合去或会去。 +- **判定**:解神被他合他牵,则原刑冲复作:子年午月,日坐丑,丑合子本解子午之冲,而时逢巳酉,丑与巳酉会,子复冲午;子年卯月,日坐戌,戌合卯本解刑,时逢寅午,戌与寅午会,卯复刑子。——解神之系属,视其先被何合何会所牵而定。 +- **出处**:第七篇·论刑冲会合解法 +- **原文**:「假如子年午月,日坐丑位,丑与子合,可以解冲,而时逢巳酉,则丑与巳酉会,而子复冲午……是会合而不能解刑冲也。」 + +### R-附-23 以刑冲解刑冲,保月令为优先 +- **条件**:刑冲伤月令用神(刑冲用神尤为破格),支中另有刑冲可牵制来刑来冲之支。 +- **判定**:刑冲俱不为美,而刑冲月令用神尤为破格,故可以另位之刑冲解月令之刑冲:丙生子月,卯来刑子,支逢酉则卯被酉冲,不复刑月令之官;甲生酉月,卯日冲之,时逢子则卯与子刑,冲月令官星无力。**优先次序:保月令用神之格,重于避别宫之刑冲**——虽别宫刑冲、六亲不无刑克,而月官犹在,其格不破。 +- **出处**:第七篇·论刑冲会合解法 +- **原文**:「盖四柱之中,刑冲俱不为美,而刑冲用神,尤为破格,不如以另位之刑冲,解月令之刑冲矣。」「虽于别宫刑冲,六亲不无刑克,而月官犹在,其格不破。是所谓以刑冲而解刑冲也。」 + +--- + +## 附记:源文件 03 中附录之非真诠内容 + +`rules/sources/03_论阴阳生克.md` 后部附有出版方补入的两段文字,**非《子平真诠》原文**,本规则库不蒸馏其内容,仅注明其存在与来源备查: + +- **附《滴天髓》之七天干篇**(「五阳皆阳丙为最……」起,至癸水篇止,含刘基注)——出自《滴天髓》,出版方附于真诠此篇之后。 +- **附《渊海子平》干支体象篇**(《甲》《乙》……天干十首暨《子》《丑》……地支十二首体象诗)——出自《渊海子平》,同属出版方附录。 + +凡规则引用「第二篇·论阴阳生克」者,仅指该源文件起首至「即此以推,而余者以相克可知矣」之真诠正文。 + + diff --git a/rules/README.md b/rules/README.md new file mode 100644 index 0000000..6d4ebc5 --- /dev/null +++ b/rules/README.md @@ -0,0 +1,93 @@ +# 子平真诠 · 解释规则库(格式规范 v1.0) + +本目录是排盘脚本 L2 输出与模型 L3 解释之间的规则层。**规则由模型阅读并执行,不由脚本执行。** +本文件定义规则库的文件布局、条目格式、锚点约定与加载协议;所有规则文件必须遵守。 + +## 1. 文件布局 + +``` +rules/ +├── README.md # 本文件:格式规范与加载协议 +├── 00_总纲_取格.md # 取格决策流程(所有解释的入口) +├── 1x_正官格.md … 18_杂格.md # 分格规则,一格一文件 +├── 90_行运.md # 行运通论(横切所有格局) +├── 94_神煞细节.md # 神煞/空亡/纳音细节参看(体系拓展层,格局定论后叠加) +├── 95_禁则.md # 不得为之事(神煞/纳音/时说批谬) +├── 96_六亲.md # 六亲/婚姻/子息(宫分与十神双重定位) +├── 97_女命.md # 女命专篇(体系内拓展:夫星/夫宫/子息/婚姻应期,原书无女命专篇) +├── 99_附录_干支通例.md # 影响取格的基础规则(合冲刑会、得时失时等) +└── sources/ # 真诠原文机械提取(50 篇,仅供溯源回查) +``` + +- 分格文件编号:`11_正官格 12_财格 13_印绶格 14_食神格 15_偏官格 16_伤官格 17_阳刃格 18_建禄月劫格 19_杂格`。 +- `sources/` 为原文,**不主动加载**;仅当规则与原文疑似冲突、或规则注明「存疑」时回查。 + +## 2. 规则条目格式 + +每条规则一个三级标题 + 四个固定字段: + +```markdown +### R-官-03 正官佩印 +- **条件**:月令为正官;日干弱;四柱透印,无财坏印。 +- **判定**:成格。官印相生,身弱得之尤美。 +- **出处**:第三十一篇·论正官 +- **原文**:「正官佩印,……」 +``` + +字段约定: + +- **编号**:`R-<格码>-<两位序号>`。格码:总纲用 `纲`,官/财/印/食/杀/伤/刃/禄/杂/运/禁 各用一个字。 +- **条件**:必须能用排盘输出的字段表达(见 §3 锚点),不得出现「看组合」「视情况」一类无锚措辞;确有弹性时写明判断依据。 +- **判定**:结论 + 一句理由。 +- **出处**:篇号 + 篇名,与 `sources/` 文件名对应。 +- **原文**:关键原文引句,供模型体会语气与边界;无对应原文的原则性条目写「(综括,无单一原文)」。 + +## 3. 锚点约定(与排盘输出 ABI 对齐) + +规则的条件只能引用排盘输出 v1.0 的冻结章节与字段: + +| 规则措辞 | 对应输出 | +|---|---| +| 月令 | `## 节令` 的月令(月柱地支) | +| 透干 / 某干透出 | `## 四柱` 各柱天干(含十神标注) | +| 会支 / 支成某局 | `## 四柱` 四支及 `## 地支藏干` | +| 藏干透出 | `## 地支藏干` 与 `## 四柱` 天干的对照 | +| 行某运 / 逢某年 | `## 大运` / `## 流年` 干支 | +| 日干、月令之外不取格 | ——(原则,见总纲) | + +**禁止**在取格条件中引用 `## 神煞`、`## 纳音`(依据见 `95_禁则.md`);此二章与 `## 四柱空亡` 仅在格局定论之后作流年流月细节参看,口径见 `94_神煞细节.md`(体系拓展层)。 + +`## 四柱空亡` 不入取格与格局层判断(真诠格局法不以空亡取格);空亡之细节参看(填实、冲空、合空)见 `94_神煞细节.md` §3。 + +## 4. 分格文件的固定栏目 + +每个分格文件按以下栏目组织,无内容的栏目写「本篇无」: + +1. **格之定义**(月令何神为此格,含变格) +2. **成格条件** +3. **破格条件** +4. **败中有救(救应)** +5. **喜忌总表**(喜某干某支 / 忌某干某支) +6. **格局高低**(有情无情、有力无力) +7. **取运**(成格 / 败格 / 救应各情形下的行运喜忌) +8. **命例**(书中自带命例,作为规则的应用示范与测试基准) + +## 5. 加载协议(模型执行顺序) + +``` +读命盘 Markdown + → 加载 00_总纲_取格.md,按决策流程定格(正格八格 → 建禄月劫 → 杂格) + → 命中后加载对应分格文件:判成败、定用神相神、评高低 + → 需要断运时加载 90_行运.md + 分格文件「取运」节 + → 用户追问流年流月细节时加载 94_神煞细节.md(体系拓展层,只叠加、不回改格局结论) + → 全程受 95_禁则.md 约束 + → 结论中标注所用规则编号(如「依 R-官-03」),便于用户核查 +``` + +## 6. 版本与溯源 + +- 规则库版本:**1.8**(2026-10-07)。文件头注释的 `rules_version` 标记该文件的**格式版本**(1.0);库版本以本文件为准。1.8 相对 1.7:新增授权体系(规则条目无增删,仍 380 条)——`LICENSE.md` 授权书(四川灵爻妙解文化传播有限公司,测试授权,禁止商业用途与个人传播,保留追责途径);`scripts/_license_gate.py` 软锁(定制副本按次数/期限放行,退出码 4,签名防手改;总开关为 `_ENABLED` 一行变量);`tools/make_license_copy.py` 水印副本工具(副本编号指纹注入 SKILL.md、rules/ 顶层、cast_chart.py 与授权状态文件,泄露可按编号溯源);SKILL.md 解释输出契约升 v2.1——新增第 5 阶段「结尾标识与免责」固定引用块,退出码表与 Intake 话术接入退出码 4,新增「授权与分发」节。1.7 相对 1.6:**解释输出契约升 v2.0(白话先行)**——说人话段由全文最末移至排盘口径之后(阶段 2),术语段改为「依据备查」随后,存疑与边界声明为第 4 段;思考次序不变(先判定后落笔白话),内行可翻转为术语先行;SKILL.md 断运交互与 `90_行运.md` R-运-33 修订——锚点核对一律用结构化选项(每锚点年一题,选项为候选事件加「都对不上」证伪入口,多锚点合成一次提问),第一轮底盘以白话呈现,学制锚点并入该次提问。1.6 相对 1.5:`90_行运.md` 新增 R-运-33 锚点核对轮(批量断运分两轮:先底盘加锚点年请用户核对,核对后收窄再铺逐年;学制锚点前置;锚点全部落空时回查组数判定、阶段假设、时辰边界,不得硬铺),R-运-28、R-运-32 接入;SKILL.md 新增「断运交互」小节(agent 环境用询问工具执行核对轮)、说人话段增「落笔前自检」(每条白话须有术语段出处、凶断强度不许降维、术语段未涉及的年份事项不得出现)、文风节增「刑冲合害用本名」禁条。1.5 相对 1.4:`90_行运.md` R-运-28 修订——事类倾向必须落地为具体事件候选,不得以「不断必然」为由只给抽象事类词;新增 §8 事类落地(R-运-31 十神/宫位/神煞事类映射表、R-运-32 落地义务与候选收敛程序);`94_神煞细节.md` R-煞-16 与 R-运-32 衔接(细节事类供合成候选);SKILL.md「说人话段」由 100–180 字单段概括改版为逐点对应的白话详解、明禁总结腔,解释输出契约第 6、8 阶段同步修订。1.4 相对 1.3:`90_行运.md` R-运-29 由原则改写为「五组引动清单」(A 透清 / B 会局 / C 刑冲 / D 空亡 / E 伏吟反吟),组数 ≥ 2 方下流月,并新增 R-运-30 流月落笔三档;`94_神煞细节.md` 新增 R-煞-17 细节落实配额(引用本篇须至少落实 2 条具体事类,禁止只声明层级),R-煞-16 标注方式改为编号不入正文;SKILL.md 解释输出契约新增第 8 阶段「说人话」、★编号标注改收依据行、★边界声明单轮上限一次,并新增「文风与反 AI 腔」章节。1.3 相对 1.2:新增 `94_神煞细节.md`(神煞/空亡/纳音体系拓展层);`95_禁则.md` R-禁-01 收紧为格局四层(取格、成败、用神相神、高低)绝对禁断,行运细节参看放行并指向 94。1.2 相对 1.1:新增 `97_女命.md`(真诠体系内拓展文件,原书无女命专篇,【原书】/【拓展】分级标注)。1.1 相对 1.0:新增 `96_六亲.md`、`90_行运.md` §7 断运操作序列、SKILL.md 解释输出契约;总纲「辨主从」等 11 处验证驱动回修。 +- 每条规则必须可溯源到 `sources/` 的具体一篇;蒸馏使用现代汉语,**不得改变原意**; + 遇原文歧义,在条目末尾加 `> 存疑:…` 注明,不得自行裁决。 + + diff --git a/rules/sources/00_序.md b/rules/sources/00_序.md new file mode 100644 index 0000000..c70be11 --- /dev/null +++ b/rules/sources/00_序.md @@ -0,0 +1,15 @@ +# 序 + +> 来源:《子平真诠》epub 机械提取,目录第 1 项,原文件 chapter-76f57b24a231.xhtml。正文未作任何增删改。 + +予自束发就传,即喜读子史诸集,暇则子平《渊海》、《大全》略为流览,亦颇晓其意。然无师授,而于五行生克之理,终若有所未得者。后复购得《三命通会》、《星学大成》诸书,悉心参究,昼夜思维,乃恍然于命之不可不信,而知命之君子当有以顺受其正。 + +戊子岁予由副贡充补官学教习,馆舍在阜城门右,得交同里章公君安,欢若生平,相得无间,每值馆课暇,即诣君安寓谈《三命》,彼此辩难,阐民无余蕴。已而三年期满,僦居宛平沈明府署,得山阴沈孝瞻先生所著子平手录三十九篇,不觉爽然自失,悔前次之揣摩未至。遂携其书示君安,君安慨然叹曰:“此谈子平家真诠也!” + +先生讳燡燔,成乾隆己未进士,天资颖悟,学业渊邃,其于造化精微,固神而明之,变化从心者矣。观其论用神之成败得失,又用神之因成得败、因败得成,用神之必兼看于忌神,与用神先后生克之别,并用神之透与全、有情无情、无力无力之辨,疑似毫芒,至详且悉。是先生一生心血,生注于是,是安可以淹没哉! + +君安爰谋付剞劂,为天下谈命者,立至当不易之准,而一切影响游移管窥蠡测之智,俱可以不惑。此亦谈命家之幸也;且不谈命家之幸,抑亦天下士君子之幸,何则?人能知命,则营竞之可以息,非分之想可以屏,凡一切富贵穷通寿夭之遭,皆听之于天,而循循焉各安于义命,以共勉于圣贤之路,岂非士君子厚幸哉! + +观于此而君安之不没人善,公诸同好,其功不亦多乎哉?爱乐序其缘起。 + +乾隆四十一年岁丙申初夏同后学胡焜倬空甫谨识 diff --git a/rules/sources/01_凡例.md b/rules/sources/01_凡例.md new file mode 100644 index 0000000..4e6d527 --- /dev/null +++ b/rules/sources/01_凡例.md @@ -0,0 +1,21 @@ +# 凡例 + +> 来源:《子平真诠》epub 机械提取,目录第 2 项,原文件 chapter-1afa3b9c7596.xhtml。正文未作任何增删改。 + +去夏刊行《滴天髓征义》,阅者以其陈义过高,纷以用科学编制,另辑浅近讲义为请。窃念《滴天髓》固非初学也。子平之法,源于五星,年代尚近,佳著无多,《子平大全》、《渊海子平》、《三命通会》、《神峰辟谬》等书,大都杂而不精,非初学所能读,惟《子平真诠》,议论鸿辟,而其编次,月令为经,诸神为纬,条理井然,最便初学,惜失于简略,且有看法而无起例,初习者有入门无从之叹。适友人绍兴何寄重君,藏有赵展如中丞原刊本,互相校正,缘本平生研究所得,详为评注,并以现代名人命造,作为例证,埋首半载,方克成书,并于篇末附入门起例一卷。虽未敢云阐发无余,而大致已备,学者手此一编,从而进研《滴天髓征义》诸书,则登堂入室,庶无杆格之虞。虽非讲义,固无殊于循序渐进之讲义也。评注既竣,述其凡例于右: + +一.原书序文谓手录三十九篇,盖论八格与取运合为一篇也(如论正官与论正官取运实为一篇),若分列之,有四十七篇,而坊本仅四十四篇半,行运、成格、变格坊本仅半篇。今照原本补足,以成完璧。 + +一.子平源于五星,名词格局,多沿五星之旧,后人不得其解,牵强附会,最足以淆乱耳目。《评注》悉加纠正,并说明于评注中,加以纠正。 + +一.《真诠》以月令用神为经,诸神为纬,然用神非尽出于月令,故于舍月令别取用神之格局,特别提出,加以说明。盖取用无定法,以月令用神编次,虽十得七八,究不能包括完备。此非原书之误,特限于编次之法,不得不然耳。 + +一.起例歌诀,无非便于记忆,若明其原理,则歌决不特容易记忆,且可自己编造,否则,命理歌诀多牛毛,焉能一一熟记? + +故本编入门起例,略述原理,并附歌诀,并列表以便检查。 + +一.未习命理者,宜先阅末卷命理入门,再阅评注,循序而进,自不致毫无头绪。 + +一.评注中所引例证,或采现代名人命造,或录自《滴天髓征义》。然因材料不足,凡无适合之例证者,暂付缺如,或彼此可以互证者,不免前后重出,将来续有收集,当于再版时改正之。 + +一.初版仅印一千部,藉以就正有道,如蒙纠正谬误,或录示例证,感纫无极,当并于再版时改正加入。 diff --git a/rules/sources/02_论十干十二支.md b/rules/sources/02_论十干十二支.md new file mode 100644 index 0000000..a1b15e0 --- /dev/null +++ b/rules/sources/02_论十干十二支.md @@ -0,0 +1,11 @@ +# 一.论十干十二支 + +> 来源:《子平真诠》epub 机械提取,目录第 3 项,原文件 chapter-47b69b681b54.xhtml。正文未作任何增删改。 + +天地之间,一气而已。惟有动静,遂分阴阳。有老少,遂分四象。老者极动静之时,是为太阳太阴;少者初动初静之际,是为少阴少阳。有是四象,而五行具于其中矣。水者,太阴也;火者,太阳也;木者,少阳也;金者,少阴也;土者,阴阳老少、木火金水冲气所结也。 + +有是五行,何以又有十干十二支乎?盖有阴阳,因生五行,而五行之中,各有阴阳。即以木论,甲乙者,木之阴阳也。甲者,乙之气;乙者,甲之质。在天为生气,而流行于万物者,甲也;在地为万物,而承兹生气者,乙也。又细分之,生气之散布者,甲之甲,而生气之凝成者,甲之乙;万木之所以有枝叶者,乙之甲,而万木之枝枝叶叶者,乙之乙也。方其为甲,而乙之气已备;及其为乙,而甲之质乃坚。有是甲乙,而木之阴阳具矣。 + +何以复有寅卯者,又与甲乙分阴阳天地而言之者也。以甲乙而分阴阳,则甲为阳,乙为阴,木之行于天而为阴阳者也。以寅卯而阴阳,则寅为阳,卯为阴,木之存乎地而为阴阳者也。以甲乙寅卯而统分阴阳,则甲乙为阳寅卯为阴,木之在天成象而在地成形者也。甲乙行乎天,而寅卯受之;寅卯存乎也,而甲乙施焉。是故甲乙如官长,寅卯如该管地方。甲禄于寅,乙禄于卯,如府官之在郡,县官之在邑,而各司一月之令也。 + +甲乙在天,故动而不居。建寅之月,岂必当甲?建卯之月,岂必当乙?寅卯在地,故止而不迁。甲虽递易,月必建寅;乙虽递易,月必建卯。以气而论,甲旺于乙;以质而论,乙坚于甲。而俗书谬论,以甲为大林,盛而宜斩,乙为微苗,脆而莫伤,可为不知阴阳之理者矣。以木类推,余者可知,惟土为木火金水冲气,故寄旺于四时,而阴阳气质之理,亦同此论。欲学命者,必须先知干支之说,然后可以入门。 diff --git a/rules/sources/03_论阴阳生克.md b/rules/sources/03_论阴阳生克.md new file mode 100644 index 0000000..eb71c19 --- /dev/null +++ b/rules/sources/03_论阴阳生克.md @@ -0,0 +1,109 @@ +# 二、论阴阳生克 + +> 来源:《子平真诠》epub 机械提取,目录第 4 项,原文件 chapter-7452e0f74086.xhtml。正文未作任何增删改。 + +四时之运,相生而成,故木生火,火生土,土生金,金生水,水复生木,即相生之序,循环迭运,而时行不匮。然而有生又必有克,生而不克,则四时亦不成矣。克者,所以节而止之,使之收敛,以为发泄之机,故曰“天地节而四时成”。即以木论,木盛于夏,杀于秋,杀者,使发泄于外者藏收内,是杀正所以为生,大易以收剑为性情之实,以兑为万物所说,至哉言乎!譬如人之养生,固以饮食为生,然使时时饮食,而不使稍饥以待将来,人寿其能久乎?是以四时之运,生与克同用,克与生同功。 + +然以五行而统论之,则水木相生,金木相克。以五行之阴阳而分配之,则生克之中,又有异同。此所以水同生木,而印有偏正;金同克木,而局有官煞也。印绶之中,偏正相似,生克之殊,可置勿论;而相克之内,一官一煞,淑慝判然,其理不可不细详也。 + +即以甲乙庚辛言之。甲者,阳木也,木之生气也;乙者,阴木也,木之形质也。庚者,阳金也,秋天肃杀之气也;辛者,阴金也,人间五金之质也。木之生气,寄于木而行于天,故逢秋天为官,而乙则反是,庚官而辛杀也。又以丙丁庚辛言之。丙者,阳火也,融和之气也;丁者,阴火也,薪传之火也。秋天肃杀之气,逢阳和而克去,而人间之金,不畏阳和,此庚以丙为杀,而辛以丙为官也。人间金铁之质,逢薪传之火而立化,而肃杀之气,不畏薪传之火。此所以辛以丁为杀,而庚以丁为官也。即此以推,而余者以相克可知矣。 + +附《滴天髓》之七天干篇。 + +五阳皆阳丙为最,五阴皆阴癸为至。 + +刘基注:甲、丙、戊、庚、壬为阳,独丙火秉阳之精,而为阳中之阳;乙、丁、己、辛、癸为阴,独癸水秉阴之精,而为阴中之阴。 + +五阳从气不从势,五阴从势无情义。 + +刘基注:五阳得阳之气,即能成乎阳刚之势,不畏财杀之势;五阴得阴之气,即能成乎阴顺之义,故木盛则从木,火盛则从火,土盛则从土,金盛则从金,水盛则从水。于情义之所在者,见其势衰,则忌之矣,盖妇人之情也。如此,若得气顺理正者,亦未必从势而忘义,虽从亦必正矣。 + +甲木参天,脱胎要火。春不容金,秋不容土。火炽乘龙,水宕骑虎。地润天和,植立千古。 + +刘基注:纯阳之木,参天雄壮。火者木之子也,旺木得火而愈敷荣。生于春则欺金,而不能容金也;生于秋则助金,而不能容土也。寅午戌,丙丁多见而坐辰,则能归;申子辰,壬癸多见而坐寅,则能纳。使土气不干,水气不消,则能长生矣。 + +乙木虽柔,刲羊解牛。怀丁抱丙,跨凤乘猴。虚湿之地,骑马亦忧。藤萝系甲,可春可秋。 + +刘基注:乙木者,生于春如桃李,夏如禾稼,秋如桐桂,冬如奇葩。坐丑未能制柔土,如割宰羊、解割牛然,只要有一丙丁,则虽生申酉之月,亦不胃之;生于子月,而又壬癸发透者,则虽坐午,亦能发生。故益知坐丑未月之为美。甲与寅字多见,弟从兄义,譬之藤萝附乔木,不畏斫伐也。 + +丙火猛烈,欺霜侮雪。能煅庚金,逢辛反怯。土众成慈,水猖显节。虎马犬乡,甲木若来,必当焚灭(一本作虎马犬乡,甲来成灭)。 + +刘基注:火阳精也,丙火灼阳之至,故猛烈,不畏秋而欺霜,不畏冬而侮雪。庚金虽顽,力能煅之,辛金本柔,合而反弱。土其子也,见戊己多而成慈爱之德;水其君也,遇壬癸旺而显忠节之风。至于未遂炎上之性,而遇寅午戌三位者,露甲木则燥而焚灭也。 + +丁火柔中,内性昭融。抱乙而孝,合壬而忠。旺而不烈,衰而不穷,如有嫡母,可秋可冬。 + +刘基注:丁干属阴,火性虽阴,柔而得其中矣。外柔顺而内文明,内性岂不昭融乎?乙非丁之嫡母也,乙畏辛而辛抱之,不若丙抱甲而反能焚甲木也,不若乙抱丁而反能晦丁火也,其孝异乎人矣。壬为丁之正君也,壬畏戊而丁合之,外则抚恤戊土,能使戊土不欺壬也,内则暗化木神,而使戊土不敢抗乎壬也,其忠异乎人矣。生于秋冬,得一甲木,则倚之不灭,而焰至无穷也,故曰可秋可冬。皆柔之道也。 + +戊土固重,既中且正。静翕动辟,万物司命。水润物生,火燥物病。若在艮坤,怕冲宜静。 + +刘基注:戊土非城墙堤岸之谓也,较己特高厚刚燥,乃己土发源之地,得乎中气而且正大矣。春夏则气辟而生万物,秋冬则气翕而成万物,故为万物之司命也。其气属阳,喜润不喜燥,坐寅怕申,坐申怕寅。盖冲则根动,非地道之正也,故宜静。 + +己土卑湿,中正蓄藏。不愁木盛,不畏水狂。火少火晦,金多金光。若要物旺,宜助宜帮 + +刘基注:己土卑薄软湿,乃戊土枝叶之地,亦主中正而能蓄藏万物。柔土能生木,非木所能克,故不愁木盛;土深而能纳水,非水所能荡,故不畏水狂。无根之火,不能生湿土,故火少而火反晦;湿土能润金气,故金多而金光彩,反清莹可观。此其无为而有为之妙用。若要万物充盛长旺,惟土势深固,又得火气暖和方可。 + +庚金带煞,刚健为最。得水而清,得火而锐。土润则生,土干则脆。能赢甲兄,输于乙妹。 + +刘基注:庚金乃天上之太白,带杀而刚健。健而得水,则气流而清;刚而得火,则气纯而锐。有水之土,能全其生;有火之土,能使其脆。甲木虽强,力足伐之;乙木虽柔,合而反弱。 + +辛金软弱,温润而清。畏土之叠,乐水之盈。能扶社稷,能救生灵。热则喜母,寒则喜丁。 + +刘基注:辛乃阴金,非珠玉之谓也。凡温软清润者,皆辛金也。戊己土多而能埋,故畏之;壬癸水多而必秀,故乐之。辛为丙之臣也,合丙化水,使丙火臣服壬水,而安扶社稷;辛为甲之君也,合丙化水,使丙火不焚甲木,而救援生灵。生于九夏而得己土,则能晦火而存之;生于隆冬而得丁火,则能敌寒而养之。故辛金生于冬月,见丙火则男命不贵,虽贵亦不忠;女命克夫,不克亦不和。见丁男女皆贵且顺。 + +壬水通河,能泄金气,刚中之德,周流不滞。通根透癸,冲天奔地。化则有情,从则相济。 + +刘基注:壬水即癸水之发源,昆仑之水也;癸水即壬水之归宿,扶桑之水也。有分有合,运行不息,所以为百川者此也,亦为雨露者此也,是不可歧而二之。申为天关,乃天河之口,壬水长生于此,能泄西方金气。周流之性,冲进不滞,刚中之德犹然也。若申子辰全而又透癸,则其势冲奔,不可遏也。如东海本发端于天河,复成水患,命中遇之,若无财官者,其祸当何如哉!合丁化木,又生丁火,则可谓有情;能制丙火,不使其夺丁之爱,故为夫义而为君仁。生于九夏,则巳、午、未、申火土之气,得壬水熏蒸而成雨露,故虽从火土,未尝不相济也。 + +癸水至弱,达于天津。得龙而运,功化斯神。不愁火土,不论庚辛。合戊见火,化象斯真。 + +刘基注:癸水乃阴之纯而至弱,故扶桑有弱水也。达于天津,随天而运,得龙以成云雨,乃能润泽万物,功化斯神。凡柱中有甲乙寅卯,皆能运水气,生木制火,润土养金,定为贵格,火土虽多不畏。至于庚金,则不赖蜞生,亦不忌其多。惟合戊土化火也,戊生寅,癸生卯,皆属东方,故能生火。此固一说也,不知地不满东南,戊土之极处,即癸水之尽处,乃太阳起方也,故化火。凡戊癸得丙丁透者,不论衰旺,秋冬皆能化火,最为真也。 + +附《渊海子平》干支体象篇。 + +《干支体象》天干 + +《甲》甲木天干作首排,原无枝叶与根荄;欲存天地千年久,直向沙泥万丈埋。断就栋梁金得用,化成灰炭火为灾;蠢然块物无机事,一任春秋自往来。 + +《乙》乙木根荄种得深,只宜阳地不宜阴;漂浮最怕多逢水,刻断何当苦用金。南去火炎灾不浅,西行土重祸尤侵;栋梁不是连根木,辨别工夫好用心。 + +《丙》丙火明明一太阳,原从正大立纲常;洪光不独窥千里,巨焰犹能遍八荒。出世肯为浮木子,传生不作湿泥娘;江湖死水安能克,惟怕成林木作殃。 + +《丁》丁火其形一烛灯,太阳相见夺光明;得时能铸千金铁,失令难镕一寸金。虽少干柴犹可引,纵多湿木不能生;其间衰旺当分晓,旺比一炉衰一檠。 + +《戊》戊土城墙堤岸同,振江河海要根重;柱中带合形还壮,日下乘虚势必崩。力薄不胜金漏泄,功成安用木疏通;平生最要东南健,身旺东南健失中。 + +《己》己土田园属四维,坤深能为万物基;水金旺处身还弱,火土功成局最奇。失令岂能埋剑戟,得时方可用镃基;漫夸印旺兼多合,不遇刑冲总不宜。 + +《庚》庚金顽钝性偏刚,火制功成怕水乡;夏产东南过煅炼,秋生西北亦光芒。水深反是他相克,木旺能令我自伤;戊己干支重遇土,不逢冲破即埋藏。 + +《辛》辛金珠玉性通灵,最爱阳和沙水清;成就不劳炎火煅,资扶偏爱湿泥生。水多火旺宜西北,水冷金寒要丙丁;坐禄通根身旺地,何愁厚土没其形。 + +《壬》壬水汪洋并百川,漫流天下总无边;干支多聚成漂荡,火土重逢涸本源。养性结胎须未午,长生归禄属乾坤;身强原自无财禄,西北行程厄少年。 + +《癸》癸水应非雨露么,根通亥子即江河;柱无坤坎还身弱,局有财官不尚多。申子辰全成上格,寅午戌备要中和;假饶火土生深夏,西北行程岂太过。 + +《干支体象》地支 + +《子》月支子水占魁名,溪涧汪洋不尽清;天道阳回行土旺,人间水暖寄金生。若逢午破应无定,纵遇卯刑还有情;柱内申辰来合局,即成江海发涛声。 + +《丑》隆冬建丑怯冰霜,谁识天时转二阳;暖土诚能生万物,寒金难道只深藏。刑冲戌未非无用,类聚鸡蛇信有方;若在日时多水木,直须行入巽离乡。 + +《寅》艮宫之木建于春,气聚三阳火在寅;志合蛇猴三贵客,类同卯未一家人。超凡入圣惟逢午,破禄伤提独虑申;四柱火多嫌火地,从来燥木不南奔。 + +《卯》卯木繁华禀气深,仲春难道不嫌金;庚辛迭见愁申酉,亥子重来忌癸壬。祸见六冲应落叶,喜逢三合便成林;若归时日秋金重,更向西行患不禁。 + +《辰》辰当三月水泥温,长养堪培万木根;虽是甲衰乙余气,纵然入墓癸还魂。直须一钥能开库,若遇三冲即破门;水木重逢西北运,只愁原土不能存。 + +《巳》巳当初夏火增光,造化流行正六阳;失令庚金生赖母,得时戊土禄随娘。三形传送翻无害,一撞登明便有伤;行到东南生发地,烧天烈火岂寻常。 + +《午》午月炎炎火正升,六阳气续一阴生;庚金失位身无用,己土归垣禄有成。申子齐来能战克,戌寅同见越光明;东南正是身强地,西北休囚已丧形。 + +《未》未月阴深火渐衰,藏官藏印不藏财;近无亥卯形难变,远带刑冲库亦开。无火怕行金水去,多寒偏爱丙丁来;用神喜忌当分晓,莫把圭璋作石猜。 + +《申》申金刚健月支逢,水土长生在此宫;巳午炉中成剑戟,子辰局里得光锋。木多无火终能胜,土重埋金却有凶;欲识斯神何所似,温柔珠玉不相同。 + +《酉》八月从魁已得名,羡他金白水流清;火多东去愁寅卯,木旺南行怕丙丁。柱见水泥应有用,运临西北岂无情;假能三合能坚锐,不比顽金未炼成。 + +《戌》九月河魁性最刚,漫云于此物收藏;洪炉巨火能成就,钝铁顽金赖主张。海窟冲龙生雨露,山头合虎动文章;天罗虽是迷魂阵,火命逢之独有伤。 + +《亥》登明之位水源深,雨雪生寒值六阴;必待胜光方用土,不逢传送浪多金。五湖归聚原成象,三合羁留正有心;欲识乾坤和暖处,即从艮震巽离寻。 diff --git a/rules/sources/04_论阴阳生死.md b/rules/sources/04_论阴阳生死.md new file mode 100644 index 0000000..f11e403 --- /dev/null +++ b/rules/sources/04_论阴阳生死.md @@ -0,0 +1,11 @@ +# 三、论阴阳生死 + +> 来源:《子平真诠》epub 机械提取,目录第 5 项,原文件 chapter-0f3f2b1b0b17.xhtml。正文未作任何增删改。 + +五行干支之说,已详论于干支篇。干动而不息,支静而有常。以每干流行于十二支之月,而生旺墓绝系焉。 + +阳主聚,以进为进,故主顺;阴主散,以退为退,故主逆。此生沐浴等项,所以有阳顺阴逆之殊也。四时之运,功成者去,等用者进,故每流行于十二支之月,而生旺墓绝,又有一定。阳之所生,即阴之所死,彼此互换,自然之运也。即以甲乙论,甲为木之阳,木之枝枝叶叶,受天生气,己收藏饱足,可以为来克发泄之机,此其所以生于亥也。木当午月,正枝叶繁盛之候,而甲何以死?却不是外虽繁盛,而内之生气发泄已尽,此其所以死于午也。乙木反是,午月枝叶繁盛,即为之生,亥月枝叶剥落,即为之死。以质而论,自与气殊也。以甲乙为例,余可知矣。 + +支有十二月,故每干长生至胎养,亦分十二位。气之由盛而衰,衰而复盛,逐节细分,遂成十二。而长生沐浴等名,则假借形容之词也。长生者,犹人之初生也。沐浴者,犹人既生之后,而沐浴以去垢;如果核既为苗,则前之青壳,洗而去之矣。冠带者,形气渐长,犹人之年长而冠带也。临官者,由长而壮,犹人之可以出仕也。帝旺者,壮盛之极,犹人之可以辅帝而大有为也。衰者,盛极而衰,物之初变也。病者,衰之甚也。死者,气之尽而无余也。墓者,造化收藏,犹人之埋于土者也。绝者,前之气已绝,后之气将续也。胎者,后之气续而结聚成胎也。养者,如人养母腹也。自是而后,长生循环无端矣。 + +人之日主,不必生逢禄旺,即月令休囚,而年日时中, 得长禄旺,便不为弱,就使逢库,亦为有根。时产谓投库而必冲者,俗书之谬也,但阳长生有力,而阴长生不甚有力,然亦不弱。若是逢库,则阳为有根,而阴为无用。盖阳大阴小,阳得兼阴,阴不能兼阳,自然之理也。 diff --git a/rules/sources/05_论十干配合性情.md b/rules/sources/05_论十干配合性情.md new file mode 100644 index 0000000..804d9d3 --- /dev/null +++ b/rules/sources/05_论十干配合性情.md @@ -0,0 +1,11 @@ +# 四、论十干配合性情 + +> 来源:《子平真诠》epub 机械提取,目录第 6 项,原文件 chapter-63218d05e4f3.xhtml。正文未作任何增删改。 + +合化之义,以十干阴阳相配而成。河图之数,以一二三四五配六七八十,先天之道也。故始于太阴之水,而终于冲气之土,以气而语其生之序也。盖未有五行之先,必先有阴阳老少,而后冲气,故生以土。终之既有五行,则万物又生于土,而水火木金,亦寄质焉,故以土先之。是以甲己相合之始,则化为土;土则生金,故乙庚化金次之;金生水,故丙辛化水又次之;水生木,故丁壬化木又次之;木生火,故戊癸化火又次之,而五行遍焉。先之以土,相生之序,自然如此。此十干合化之义也。 + +其性情何也?盖既有配合,必有向背。如甲用辛官,透丙作合,而官非其官;甲用癸印,透戊作合,而印非其印;甲用己财,己与别位之甲作合,而财非其财。如年己月甲,年上之财,被月合去,而日主之甲乙无分;年甲月己,月上之财,被年合去,而日主之甲乙不与是也。甲用丙食与辛作合,而非其食,此四喜神因合而无用者也。 + +又如甲逢庚为煞,与乙作合,而煞不攻身;甲逢乙为劫财,甲逢丁为伤,与壬作合,而丁不为伤官;甲逢壬为枭,与丁作合,而壬不夺食。此四忌神因合化吉者也。 + +盖有所合则有所忌,逢吉不为吉,逢凶不为凶。即以六亲言之,如男以财为妻,而被别干合去,财妻岂能亲其夫乎?女以官为夫,而被他干合去,官夫岂能爱其妻乎?此谓配合之性情,因向背而殊也。 diff --git a/rules/sources/06_论十干合而不合.md b/rules/sources/06_论十干合而不合.md new file mode 100644 index 0000000..00d45a7 --- /dev/null +++ b/rules/sources/06_论十干合而不合.md @@ -0,0 +1,17 @@ +# 五、论十干合而不合 + +> 来源:《子平真诠》epub 机械提取,目录第 7 项,原文件 chapter-7f16f42ecadc.xhtml。正文未作任何增删改。 + +十干化合之义,前篇既明之矣,然而亦有合而不合者,何也? + +盖隔于有所间也,譬如人彼此相好,而有人从中间之,则交必不能成。譬如甲与己合,而甲己中间,以庚间隔之,则甲岂能越克我之庚而合己?此制于势然也,合而不敢合也,有若无也。 + +又有隔位太远,如甲在年干,己在时上,心虽相契,地则相远,如人天南地北,不能相合一般。然于有所制而不敢合者,亦稍有差,合而不能合也,半合也,其为祸福得十之二三而已。 + +又有合而无伤于合者,何也?如甲生寅卯,月时两透辛官,以年丙合月辛,是为合一留一,官星反轻。甲逢月刃,庚辛并透,丙与辛合,是为合官留煞,而煞刃依然成格,皆无伤于合也。 + +又有合而不以合论者,何也?本身之合也。盖五阳逢财,五阴遇官,俱是作合,惟是本身十干合之,不为合去。假如乙用庚官,日干之乙,与庚作合,是我之官,是我合之。何为合去?若庚在年上,乙在月上,则月上之乙,先去合庚,而日干反不能合,是为合去也。又如女以官为夫,丁日逢壬,是我之夫,是我合之,正如夫妻相亲,其情愈密。惟壬在月上,而年丁合之,日干之丁,反不能合,是以己之夫星,被姊妹合去,夫星透而不透矣。 + +然又有争合妒合之说,何也?如两辛合丙,两丁合壬之类,一夫不娶二妻,一女不配二夫,所以有争合妒合之说。然到底终有合意,但情不专耳。若以两合一而隔位,则全无争妒。如庚午、乙酉、甲子、乙亥,两乙合庚,甲日隔之,此高太尉命,仍作合煞留官,无减福也。 + +化气有真有假。上两造为化气之真者,亦有化气有余,而日带根苗劫印者;有日主无根,而化神不足者;更有合化虽真,而闲神来伤化气者,皆为假化。 diff --git a/rules/sources/07_论十干得时不旺失时不弱.md b/rules/sources/07_论十干得时不旺失时不弱.md new file mode 100644 index 0000000..cbef9df --- /dev/null +++ b/rules/sources/07_论十干得时不旺失时不弱.md @@ -0,0 +1,11 @@ +# 六、论十干得时不旺失时不弱 + +> 来源:《子平真诠》epub 机械提取,目录第 8 项,原文件 chapter-25160afad08a.xhtml。正文未作任何增删改。 + +书云,得时俱为旺论,失时便作衰看,虽是至理,亦死法也。然亦可活看。夫五行之气,流行四时,虽日干各有专令,而其实专令之中,亦有并存者在。假若春木司令,甲乙虽旺,而此时休囚之戊己,亦尝艳于天地也。特时当退避,不能争先,而其实春土何尝不生万物,冬日何尝不照万国乎? + +况八字虽以月令为重,而旺相休囚,年月日时,亦有损益之权,故生月即不值令,而年时如值禄旺,岂便为衰?不可执一而论。犹如春木虽强,金太重而木亦危。干庚辛而支酉丑,无火制而晃富,逢土生而必夭,是以得时而不旺也。秋木虽弱,木根深而木亦强。干甲乙而支寅卯,遇官透而能受,逢水生而太过,是失时不弱也。 + +是故十干不论月令休囚,只要四柱有根,便能受财官食神而当伤官七煞。长生禄旺,根之重者也;墓库余气,根之轻者也。得一比肩,不如得支中一墓库,如甲逢未、丙逢戌之类。乙逢戌、丁逢丑、不作此论,以戌中无藏木,丑中无藏火也。得二比肩,不如得一余气,如乙逢辰、丁逢未之类。得三比肩,不如得一长生禄刃,如甲逢亥子寅卯之类。阴长生不作此论,如乙逢午、丁逢酉之类,然亦为明根,比得一余气。盖比劫如朋友之相扶,通根如室家之可住;干多不如根重,理固然也。 + +今人不知命理,见夏水冬火,不问有无通根,便为之弱。更有阳干逢库,如壬逢辰、丙坐戌之类,不以为水火通根身库,甚至求刑冲开之。此种谬论,必宜一切扫除也。 diff --git a/rules/sources/08_论刑冲会合解法.md b/rules/sources/08_论刑冲会合解法.md new file mode 100644 index 0000000..ca1419d --- /dev/null +++ b/rules/sources/08_论刑冲会合解法.md @@ -0,0 +1,17 @@ +# 七、论刑冲会合解法 + +> 来源:《子平真诠》epub 机械提取,目录第 9 项,原文件 chapter-c32c606bf8c5.xhtml。正文未作任何增删改。 + +刑者,三刑也,子卯巳申子类是也。冲者,六冲也,子午卯酉之类是也,会者,三会也,申子辰之类是也。合者,六合也,子与丑合之类是也。此皆以地支宫分而言,系对射之意也。三方为会,朋友之意也。并对为合,比邻之意也。至于三刑取庑,姑且阙疑,虽不知其所以然,于命理亦无害也。 + +八字支中,刑冲俱非美事,而三合六合,可以解之。假如甲生酉月,逢卯则冲,而或支中有戌,则卯与戌合而不冲;有辰,则酉与辰合而不冲;有亥与未,则卯与亥未会而不冲;有巳与丑,则酉与巳丑会而不冲。是会合可以解冲也。又如丙生子月,逢卯则刑,而或支中有戌,则与戌合而不刑;有丑,则子与丑合而不刑;有亥与未,则卯与亥未会而不刑;有申与辰,则子与申辰会而不刑。是会合可以解刑也。 + +又有因解而反得刑冲者,何也?假如甲生子月,支逢二卯相并,二卯不刑一子,而支又逢戌,戌与卯合,本为解刑,而合去其一,则一合而一刑,是因解而反得刑冲也。 + +又有刑冲而会合不能解者,何也?假如子年午月,日坐丑位,丑与子合,可以解冲,而时逢巳酉,则丑与巳酉会,而子复冲午;子年卯月,日坐戌位,戌与卯合,可以解刑,而或时逢寅午,则戌与寅午会,而卯复刑子。是会合而不能解刑冲也。 + +更有刑冲而可以解刑者,何也?盖四柱之中,刑冲俱不为美,而刑冲用神,尤为破格,不如以另位之刑冲,解月令之刑冲矣。 + +假如丙生子月,卯以刑子,而支又逢酉,则又与酉冲不刑月令之官。甲生酉月,卯日冲之,而时逢子立,则卯与子刑,而月令官星,冲之无力,虽于别宫刑冲,六亲不无刑克,而月官犹在,其格不破。是所谓以刑冲而解刑冲也。 + +如此之类,在人之变化而己。 diff --git a/rules/sources/09_论用神.md b/rules/sources/09_论用神.md new file mode 100644 index 0000000..2baac5c --- /dev/null +++ b/rules/sources/09_论用神.md @@ -0,0 +1,11 @@ +# 八、论用神 + +> 来源:《子平真诠》epub 机械提取,目录第 10 项,原文件 chapter-9efdfa7dc12c.xhtml。正文未作任何增删改。 + +八字用神,专求月令,以日干配月令地支,而生克不同,格局分焉。财官印食,此用神之善而顺用之者也;煞伤劫刃,用神之不善而逆用之者也。当顺而顺,当逆而逆,配合得宜,皆为贵格。 + +是以善而顺用之,则财喜食神以相生,生官以护财;官喜透财以相生,生印以护官;印喜官煞以相生,劫才以护印;食喜身旺以相生,生财以护食。不善而逆用之,则七煞喜食神以制伏,忌财印以资扶;伤官喜佩印以制伏,生财以化伤;阳刃喜官煞以制伏,忌官煞之俱无;月劫喜透官以制伏,利用财而透食以化劫。此顺逆之大路也。 + +今人不知专主提纲,然后将四柱干支,字字统归月令,以观喜忌,甚至见正官佩印,则以为官印双全,与印绶用官者同论;见财透食神,不以为财逢食生,而以为食神生财,与食神生财同论;见偏印透食,不以为泄身之秀,而以为枭神夺食,宜用财制,与食神逢枭同论;见煞逢食制而露印者,不为去食护煞,而以为煞印相生,与印绶逢煞者同论;更有煞格逢刃,不以为刃可帮身制煞,而以为七煞制刃,与阳刃露煞者同论。此皆由不知月令而妄论之故也。 + +然亦有月令无用神者,将若之何?如木生寅卯,日与月同,本身不可为用,必看四柱有无财官煞食透干会支,另取用神;然终以月令为主,然后寻用,是建禄月劫之格,非用而即用神也。 diff --git a/rules/sources/10_论用神成败救应.md b/rules/sources/10_论用神成败救应.md new file mode 100644 index 0000000..d59d59a --- /dev/null +++ b/rules/sources/10_论用神成败救应.md @@ -0,0 +1,13 @@ +# 九、论用神成败救应 + +> 来源:《子平真诠》epub 机械提取,目录第 11 项,原文件 chapter-87764ed6dd69.xhtml。正文未作任何增删改。 + +用神专寻月令,以四柱配之,必有成败。何谓成?如官逢财印,又无刑冲破害,官格成也。财生官旺,或财逢食生而身强带比,或财格透印而位置妥贴,两不相克,财格成也。印轻逢煞,或官印双全,或身印两旺而用食伤泄气,或印多逢财而财透根轻,印格成也。食神生财,或食带煞而无财,弃食就煞而透印,食格成也。身强七煞逢制,煞格成也。伤官生财,或伤官佩印而伤官旺,印有根,或伤官旺、身主弱而透煞印,或伤官带煞而无财,伤官格成也。阳刃透官煞而露财印,不见伤官,阳刃格成也。建禄月劫,透官而逢财印,透财而逢食伤,透煞而遇制伏,建禄月劫之格成也。 + +何谓败?官逢伤克刑冲,官格败也;财轻比重,财透七煞,财格败也;印轻逢财,或身强印重而透煞,印格败也;食神逢枭,或生财露煞,食神格败也;七煞逢财无制,七煞格败也;伤官非金水而见官,或生财生带煞,或佩印而伤轻身旺,伤官格败也;阳刃无官煞,刃格败也;建禄月劫,无财官,透煞印,建禄月劫之格败也。 + +成中有败,必是带忌;败中有成,全凭救应。何谓带忌?如正官逢财而又逢伤;透官而又逢合;财旺生官而又逢伤逢合;印透食以泄气,而又遇财露;透煞以生印,而又透财,以去印存煞;食神带煞印而又逢财;七煞逢食制而又逢印;伤官生财而财又逢合;佩印而印又遭伤,透财而逢煞,是皆谓之带忌也。 + +何谓救应?如官逢伤而透印以解之,杂煞而合煞以清之,刑冲而会合以解之;财逢劫而透食以化之,生官以制之,逢煞而食神制煞以生财,或存财而合煞;印逢财而劫财以解之,或合财而存印;食逢枭而就煞以成格,或生财以护食;煞逢食制,印来护煞,而逢财以去印存食;伤官生财透煞而煞逢合;阳刃用官煞带伤食,而重印以护之;建禄月劫用官,遇伤而伤被合,用财带煞而煞被合,是谓之救应也。 + +八字妙用,全在成败救应,其中权轻权重,甚是活泼。学者从此留心,能于万变中融以一理,则于命之一道,其庶几乎! diff --git a/rules/sources/11_论用神变化.md b/rules/sources/11_论用神变化.md new file mode 100644 index 0000000..c17bb74 --- /dev/null +++ b/rules/sources/11_论用神变化.md @@ -0,0 +1,15 @@ +# 十、论用神变化 + +> 来源:《子平真诠》epub 机械提取,目录第 12 项,原文件 chapter-9b4e1ac86245.xhtml。正文未作任何增删改。 + +用神既主月令矣,然月令所藏不一,而用神遂有变化。如十二支中,除子午卯酉外,余皆有藏,不必四库也。即以寅论,甲为本主,如郡之有府,丙其长生,如郡之有同知,戊亦长生,如郡之有通判;假使寅月为提,不透甲而透丙,则如知府不临郡,而同知得以作主。此变化之由也。 + +故若丁生亥月,本为正官,支全卯未,则化为印。己生申月,本属伤官。藏庚透壬,则化为财。凡此之类皆用神之变化也。 + +变之而善,其格愈美;变之不善,其格遂坏,何谓变之而善?如辛生寅月,逢丙而化财为官;壬生戌月逢辛而化煞为印。癸生寅月,不专以煞论。此二者以透出而变化者也。癸生寅月,月令伤官秉令,藏甲透丙,会午会戌,则寅午戌三合,伤化为财;加以丙火透出,完全作为财论,即使不透丙而透戊土,亦作财旺生官论。盖寅午戌三合变化在前,不作伤官见官论也。乙生寅月,月劫秉令,会午会戌,则劫化为食伤,透戊则为食伤生财,不作比劫争财论。此二者因会合而变化者。因变化而忌化为喜,为变之善者。 + +何谓变之而不善?如丙生寅月,本为印绶,甲不透干而会午会戌,则化为劫。丙生申月,本属偏财,藏庚透壬,会子会辰,则化为煞。如此之类亦多,皆变之不善者也。 + +又有变之而不失本格者。如辛生寅月,透丙化官,而又透甲,格成正财,正官乃其兼格也。乙生申月,透壬化印,而又透戊,则财能生官,印逢财而退位,虽通月令,格成伤官,百戊官忌见。丙生寅月,午戌会劫,而又或透甲,或透壬,则仍为印而格不破。丙生申月,逢壬化煞,而又透戊,则食神能制煞生财,仍为财格,不失富贵。如此之类甚多,是皆变而不失本格者也。 + +是故八字非用神不立,用神非变化不灵,善观命者,必于此细详之。 diff --git a/rules/sources/12_论用神纯杂.md b/rules/sources/12_论用神纯杂.md new file mode 100644 index 0000000..37f17d2 --- /dev/null +++ b/rules/sources/12_论用神纯杂.md @@ -0,0 +1,11 @@ +# 十一、论用神纯杂 + +> 来源:《子平真诠》epub 机械提取,目录第 13 项,原文件 chapter-8ae321e0e25f.xhtml。正文未作任何增删改。 + +用神既有变化,则变化之中,遂分纯、杂。纯者吉,杂者凶。 + +何谓纯?互用而两相得者是也。如辛生寅月,甲丙并透,财与官相生,两相得也。戊生申月,庚壬并透,财与食相生,两相得也。癸生未月,乙己并透,煞与食相克,相克而得其当,亦两相得也。如此之类,皆用神之纯者。 + +何谓杂?互用而两不相谋者是也。如壬生未月,乙己并透,官与伤相克,两不相谋也。甲也辰月,戊壬并透,印与财相克,亦两不相谋也。如此之类,皆用之杂者也。 + +纯杂之理,不出变化,分而疏之,其理愈明,学命者不可不知也。 diff --git a/rules/sources/13_论用神格局高低.md b/rules/sources/13_论用神格局高低.md new file mode 100644 index 0000000..1866260 --- /dev/null +++ b/rules/sources/13_论用神格局高低.md @@ -0,0 +1,17 @@ +# 十二、 论用神格局高低 + +> 来源:《子平真诠》epub 机械提取,目录第 14 项,原文件 chapter-3d0e3d029bba.xhtml。正文未作任何增删改。 + +八字既有用神,必有格局,有格局必有高低,财官印食煞伤劫刃,何格无贵?何格无贱?由极贵而至极贱,万有不齐,其变千状,岂可言传?然其理之大纲,亦在有情、有力无力之间而已。 + +如正官佩印,不如透财,而四柱带伤,反推佩印。故甲透酉官,透丁合壬,是谓合伤存官,遂成贵格,以其有情也。财忌比劫,而与煞作合,劫反为用。故甲生辰月,透戊成格,遇乙为劫,逢庚为煞,二者相合,皆得其用,遂成贵格,亦以其有情也。 + +身强煞露而食神又旺,如乙生酉月,辛金透,丁火刚,秋木盛,三者皆备,极等之贵,以其有力也。官强财透,身逢禄刃,如丙生子月,癸水透,庚金露,而坐寅午,三者皆均,遂成大贵,亦以其有力也。 + +又有有情而兼有力,有力而兼有情者。如甲用酉官,壬合丁以清官,而壬水根深,是有情而兼有力者也。乙用酉煞,辛逢丁制,而辛之禄即丁之长生,同根月令,是有力而兼有情者也。是皆格之最高者也。 + +如甲用酉官,透丁逢癸,癸克不如壬合,是有情而非情之至。乙逢酉逢煞,透丁以制,而或煞强而丁稍弱,丁旺而煞不昂,又或辛丁并旺而乙根不甚深,是有力而非力之全,格之高而次者也。 + +至如印用七煞,本为贵格,而身强印旺,透煞孤贫,盖身旺不劳印生,印旺何劳煞助?偏之又偏,以其无情也。伤官佩印,本秀而贵,而身主甚旺,伤官甚浅,印又太重,不贵不秀,盖欲助身则身强,制伤则伤浅,要此重印何用?是亦无情也。又如煞强食旺而身无根,身强比重而财无气,或夭或贫,以其无力也。是皆格之低而无用者也。 + +然其中高低之故,变化甚微,或一字而有千钧之力,或半字而败全局之美,随时观理,难以拟议,此特大略而已。 diff --git a/rules/sources/14_论用神因成得败因败得成.md b/rules/sources/14_论用神因成得败因败得成.md new file mode 100644 index 0000000..dfdd41c --- /dev/null +++ b/rules/sources/14_论用神因成得败因败得成.md @@ -0,0 +1,11 @@ +# 十三、论用神因成得败因败得成 + +> 来源:《子平真诠》epub 机械提取,目录第 15 项,原文件 chapter-9ba8275fd9be.xhtml。正文未作任何增删改。 + +八字之中,变化不一,遂分成败;而成败之中,又变化不测,遂有因成得败,因败得成之奇。 + +是故化伤为财,格之成也,然辛生亥月,透丁为用,卯未会财,乃以党煞,因成得败矣。印用七煞,格之成也,然癸生申月,秋金重重,略带财以损太过,逢煞则煞印忌财,因成得败也。如此之类,不可胜数,皆因成得败之例也。 + +官印逢伤,格之败也,然辛生戊戌月,年丙时壬,壬不能越戊克丙,而反能泄身为秀,是因败得成矣。煞刃逢食,格之败也,然庚生酉月,年丙月丁,时上逢壬,则食神合官留煞,而官煞不杂,煞刃局清,是因败得成矣。如此之类,亦不可胜数,皆因败得成之例也。 + +其间奇奇怪怪,变幼无穷,惟以理权衡之,随在观理,因时运化,由他奇奇怪怪,自有一种至当不易不论。观命者毋眩而无主、执而不化也。 diff --git a/rules/sources/15_论用神配气候得失.md b/rules/sources/15_论用神配气候得失.md new file mode 100644 index 0000000..4c97144 --- /dev/null +++ b/rules/sources/15_论用神配气候得失.md @@ -0,0 +1,21 @@ +# 十四、论用神配气候得失 + +> 来源:《子平真诠》epub 机械提取,目录第 16 项,原文件 chapter-655e3eac4114.xhtml。正文未作任何增删改。 + +论命惟以月令用神为主,然亦须配气候而互参之。譬如英雄豪杰,生得其时,自然事半功倍;遭时不顺,虽有奇才,成功不易。 + +是以印绶遇官,此谓官印双全,无人不贵。而冬木逢水,虽透官星,亦难必贵,盖金寒而水益冻,冻水不能生木,其理然也。身印两旺,透食则贵,凡印格皆然。而用之冬木,尤为秀气,以冬木逢火,不惟可以泄身,而即可以调候也。 + +伤官见官,为祸百端,而金水见之,反为秀气。非官之不畏夫伤,而调候为急,权而用之也。伤官带煞,随时可用,而用之冬金,其秀百倍。 + +伤官佩印,随时可用,而用之夏木,其秀百倍,火济水,水济火也。 + +伤官用财,本为贵格,而用之冬水,即使小富,亦多不贵,冻水不能生木也。 + +伤官用财,即为秀气,而用之夏木,贵而不甚秀,燥土不甚灵秀也。 + +春木逢火,则为木为通明,而夏木不作此论;秋金遇水,则为金水相涵,而冬金不作此论。气有衰旺,取用不同也。春木逢火,木火通明,不利见官;而秋金遇水,金水相涵,见官无碍。假如庚生申月,而支中或子或辰,会成水局,天干透丁,以为官星,只要壬癸不透露干头,便为贵格,与食神伤官喜见官之说同论,亦调候之道也。 + +食神虽逢正印,亦谓夺食,而夏木火盛,轻用之亦秀而贵,与木火伤官喜见水同论,亦调候之谓也。 + +此类甚多,不能悉述,在学者引伸触类,神而明之而已。 diff --git a/rules/sources/16_论相神紧要.md b/rules/sources/16_论相神紧要.md new file mode 100644 index 0000000..0518e7c --- /dev/null +++ b/rules/sources/16_论相神紧要.md @@ -0,0 +1,13 @@ +# 十五、论相神紧要 + +> 来源:《子平真诠》epub 机械提取,目录第 17 项,原文件 chapter-bb216d564de1.xhtml。正文未作任何增删改。 + +月令既得用神,则别位亦必有相,若君之有相,辅者是也。如官逢财生,则官为用,财为相;财旺生官,则财为用,官为相;煞逢食制,则煞为用,食为相。然此乃一定之法,非通变之妙。要而言之,凡全局之格,赖此一字而成者,均谓之相也。 + +伤用神甚于伤身,伤相甚于伤用。如甲用酉官,透丁逢壬,则合伤存官以成格者,全赖壬之相;戊用子财,透甲并己,则合煞存财以成格者,全赖己之相;乙用酉煞,年丁月癸,时上逢戊,则合去癸印以使丁得制煞者,全赖戊之相。 + +癸生亥月,透丙为财,财逢月劫,而卯未来会,则化水为木而转劫以生财者,全赖于卯未之相。庚生申月,透癸泄气,不通月令而金气不甚灵,子辰会局,则化金为水而成金水相涵者,全赖于子辰之相。如此之类,皆相神之紧要也。 + +相神无破,贵格已成;相神相伤,立败其格。如甲用酉官,透丁逢癸印,制伤以护官矣,而又逢戊,癸合戊而不制丁,癸水之相伤矣;丁用酉财,透癸逢己,食制煞以生财矣,而又透甲,己合甲而不制癸,己土之相伤矣。是皆有情而化无情,有用而成无用之格也。 + +凡八字排定,必有一种议论,一种作用,一种弃取,随地换形,难以虚拟,学命者其可忽诸? diff --git a/rules/sources/17_论杂气如何取用.md b/rules/sources/17_论杂气如何取用.md new file mode 100644 index 0000000..05f97c5 --- /dev/null +++ b/rules/sources/17_论杂气如何取用.md @@ -0,0 +1,17 @@ +# 十六、论杂气如何取用 + +> 来源:《子平真诠》epub 机械提取,目录第 18 项,原文件 chapter-7851cf04ee99.xhtml。正文未作任何增删改。 + +四墓者,冲气也,何以谓之杂气?以其所藏者多,用神不一,故谓之杂气也。如辰本藏戊,而又为水库,为乙余气,三者俱有,于何取用?然而甚易也,透干会取其清者用之,杂而不杂也。 + +何谓透干?如甲生辰月,透戊则用偏财,透癸则用正印,透乙则用月劫是也。何谓会支?如甲生辰月,逢申与子会局,则用水印是也。一透则一用,兼透则兼用,透而又会,则透与会并用。其合而有情者吉,其合而无情者则不吉。 + +何谓有情?顺而相成者是也。如甲生辰月,透癸为印,而又会子会申以成局,印绶之格,清而不杂,是透干与会支,合而有情也。又如丙生辰月,透癸为官,而又逢乙以为印,官与印相生,而印又能去辰中暗土以清官,是两干并透,合而情也。又如甲生丑月,辛透为官,或巳酉会成金局,而又透己财以生官,是两干并透,与会支合而有情也。 + +何谓无情?逆而相背者是也。如壬生未月,透己为官,而地支会亥卯以成伤官之局,是透官与会支,合而无情者也。又如甲生辰月,透戊为财,又或透壬癸以为印,透癸则戊癸作合,财印两失,透壬则财印两伤,又以贪财坏印,是两干并透,合而无情也。又如甲生戌月,透辛为官,而又透丁以伤官,月支又会寅会午以成伤官之局,是两干并透,与会支合而无情也。 + +又有有情而卒成无情者,何也?如甲生辰月,逢壬为印,而又逢丙,印绶本喜泄身为秀,似成格矣,而火能生土,似又助辰中之戊,印格不清,是必壬干透而支又会申会子,则透丙亦无所碍。又有甲生辰月,透壬为印,虽不露丙而支逢戌位,戌与辰冲,二者为月冲而土动,干头之壬难通月令,印格不成,是皆有情而卒无情,富而不贵者也。 + +又有无情而终有情者,何也?如癸生辰月,透戊为官,又有会申会子以成水局,透干与会支相克矣。然所克者乃是劫财,譬如月劫用官,何伤之有?又如丙生辰月,透戊为食,而又透壬为煞,是两干并透,而相克也。然所克者乃是偏官,譬如食神带煞,煞逢食制,二者皆是美格,其局愈贵。是皆无情而终为有情也。 + +如此之类,不可胜数,即此为例,旁悟而已。 diff --git a/rules/sources/18_论墓库刑冲之说.md b/rules/sources/18_论墓库刑冲之说.md new file mode 100644 index 0000000..d3695f0 --- /dev/null +++ b/rules/sources/18_论墓库刑冲之说.md @@ -0,0 +1,15 @@ +# 十七、论墓库刑冲之说 + +> 来源:《子平真诠》epub 机械提取,目录第 19 项,原文件 chapter-dcccc6df8a04.xhtml。正文未作任何增删改。 + +辰戌丑未,最喜刑冲,财官入库不冲不发——此说虽俗书盛称之,然子平先生造命,无是说也。夫杂气透干会支,岂不甚美? + +又何劳刑冲乎?假如甲生辰月,戊土透岂非偏财?申子会岂非印绶?若戊土不透,即辰戌相冲,财格犹不甚清也。至于透壬为印,辰戌相冲,将以累印,谓之冲开印库可乎? + +况四库之中,虽五行俱有,而终以土为主。土冲则灵,金木水火,岂取胜以四库之冲而动乎?故财官属土,冲则库启,如甲用戊财而辰戌冲,壬用己官而丑未冲之类是也。然终以戊己干头为清用,干既透,即不冲而亦得也。至于财官为水,冲则反累,如己生辰月,壬透为财,戌冲则劫动,何益之有?丁生辰月,透壬为官,戌冲则伤官,岂能无害?其可谓之逢冲而壬水之财库官库开乎? + +今人不知此理,甚有以出库为投库。如丁生辰月,壬官透干,不以为库内之壬,干头透出,而反为干头之壬,逢辰入库,求戌以冲土,不顾其官之伤。更有可笑者,月令本非四墓,别有用神,年月日时中一带四墓,便求刑冲;日临四库不以为身坐库根,而以为身主入库,求冲以解。种种谬论,令人掩耳。 + +然亦有逢冲而发者,何也?如官最忌冲,而癸生辰月,透戊为官,与戌相冲,不见破格,四库喜冲,不为不足。却不知子午卯酉之类,二者相仇,乃冲克之冲,而四墓土自为冲,乃冲动之冲,非冲克之冲也。然既以土为官,何害于事乎? + +是故四墓不忌刑冲,刑冲未必成格。其理甚明,人自不察耳。 diff --git a/rules/sources/19_论四吉神能破格.md b/rules/sources/19_论四吉神能破格.md new file mode 100644 index 0000000..ce5936c --- /dev/null +++ b/rules/sources/19_论四吉神能破格.md @@ -0,0 +1,9 @@ +# 十八、论四吉神能破格 + +> 来源:《子平真诠》epub 机械提取,目录第 20 项,原文件 chapter-49a00b822b5c.xhtml。正文未作任何增删改。 + +财官印食,四吉神也,然用之不当,亦能破格。 + +如食神带煞,透财为害,财能破格也;春木火旺,见官则忌,官能破格也;煞逢食制,透印无功,印能破格也;财旺生官,露食则杂,食能破格也。 + +是故官用食破,印用财破。譬之用药,参苓芪术,本属良材,用之失宜,亦能害人。官忌食伤,财畏比劫,印惧财破,食畏印夺,参合错综,各极其妙。弱者以生扶为喜,强者因生扶而反害;衰者以裁抑为忌,太旺者反以裁抑而得益。吉凶喜忌,全在是否合于需要,不因名称而有分别也。 diff --git a/rules/sources/20_论四凶神能成格.md b/rules/sources/20_论四凶神能成格.md new file mode 100644 index 0000000..2f768fc --- /dev/null +++ b/rules/sources/20_论四凶神能成格.md @@ -0,0 +1,7 @@ +# 十九、论四凶神能成格 + +> 来源:《子平真诠》epub 机械提取,目录第 21 项,原文件 chapter-0d2f52f50185.xhtml。正文未作任何增删改。 + +煞伤枭刃,四凶神也,然施之得宜,亦能成格。如印绶根轻,透煞为助,煞能成格也。财逢比劫,伤官可解,伤能成格也。食神带煞,灵枭得用,枭能成格也。财逢七煞,刃可解厄,刃能成格也。 + +是故财不忌伤,官不忌枭,煞不忌刃,如治国长抢大戟,本非美具,而施之得宜,可以戡乱。 diff --git a/rules/sources/21_论生克先后分吉凶.md b/rules/sources/21_论生克先后分吉凶.md new file mode 100644 index 0000000..c399acf --- /dev/null +++ b/rules/sources/21_论生克先后分吉凶.md @@ -0,0 +1,21 @@ +# 二十、论生克先后分吉凶 + +> 来源:《子平真诠》epub 机械提取,目录第 22 项,原文件 chapter-ee5d733dac53.xhtml。正文未作任何增删改。 + +月令用神,配以四柱,固有每字之生克以分吉凶,然有同此生克,而先后之间,遂分吉凶者,尤谈命之奥也。 + +如正官同是财伤并透,而先后有殊。假如甲用酉官,丁先戊后,后则以财为解伤,即不能贵,后运必有结局。若戊先而丁后时,则为官遇财生,而后因伤破,即使上运稍顺,终无结局,子嗣亦难矣。 + +印格同是贪格坏印,而先后有殊。如甲用子印,己先癸后,即使不富,稍顺晚境;若癸先而己在时,晚景亦悴矣。 + +食神同是财枭并透,而先后有殊。如壬用甲食,庚先丙后,晚运必亨,格亦富而望贵。若丙先而庚在时,晚运必淡,富贵两空矣。 + +七煞同是财食并透,而先后大殊。如己生卯月,癸先辛后,则为财以助用,而后煞用食制,不失大贵。若辛先而癸在时,则煞逢食制,而财转食党煞,非特不贵,后运萧索,兼难永寿矣。 + +他如此类,可以例推。然犹吉凶易者也,至丙生甲寅月,年癸时戊,官能生印,而不怕戊合;戊能泄身为秀,而不得越甲以合癸,大贵之格也。假使年月戊癸而时甲,或年甲而月癸时戊,则戊无所隔而合全癸,格大破矣。 + +丙生辛酉,年癸时己,伤因财间,伤之无力,间有小贵。假如癸己产并而中无辛隔,格尽破矣。 + +辛生申月,年壬月戊,时上丙官,不愁隔戊之壬,格亦许贵。假使年丙月壬而时戊,或年戊月丙而时壬,则壬能克丙,无望其贵矣。 + +如此之类,不可胜数,其中吉凶似难猝喻。然细思其故,理甚显然,特难为浅者道耳。 diff --git a/rules/sources/22_论星辰无关格局.md b/rules/sources/22_论星辰无关格局.md new file mode 100644 index 0000000..d07f0f2 --- /dev/null +++ b/rules/sources/22_论星辰无关格局.md @@ -0,0 +1,11 @@ +# 二十一、论星辰无关格局 + +> 来源:《子平真诠》epub 机械提取,目录第 23 项,原文件 chapter-0f0fcd3baef4.xhtml。正文未作任何增删改。 + +八字格局,专以月令配四柱,至于星辰好歹,既不能为生克之用,又何以操成败之权?况于局有碍,即财官美物,尚不能济,何论吉星?于局有用,即七煞伤官,何谓凶神乎?是以格局既成,即使满盘孤辰入煞,何损其贵?格局既破,即使満盘天德贵人,何以为功?今人不知轻重,见是吉星,遂致拋却用神,不管四柱,妄论贵贱,谬谈祸福,甚可笑也。 + +况书中所云禄贵,往往指正官而言,不是禄堂人贵人。如正财得伤贵为奇,伤贵也,伤官乃生财之具,正财得之,所以为奇,若指贵人,则伤贵为何物乎?又若因得禄而避位,得禄者,得官也,运得官乡,宜乎进爵,然如财用伤官食神,运透官则格条,正官运又遇官则重,凡此之类,只可避位也。若作禄堂,不独无是理,抑且得禄避位,文法上下相顾。古人作书,何至不通若是! + +又若女命,有云“贵众则舞裙歌扇”。贵众者,官众也,女以官为夫,正夫岂可叠出乎?一女众夫,舞裙歌扇,理固然也。若作贵人,乃是天星,并非夫主,何碍于众,而必为娼妓乎? + +然星辰命书,亦有谈及,不善看书者执之也。如“贵人头上带财官,门充驰马”,盖财官如人美貌,贵人如人衣服,貌之美者,衣服美则现。其实财官成格,即非贵人头上,怕不门充驰马!又局清贵,又带二德,必受荣封。若专主二德,则何不竟云带二德受两国之封,而秘先曰无煞乎?若云命逢险格,柱有二德,逢凶有救,右免于危,则亦有之,然终无关于格局之贵贱也。 diff --git a/rules/sources/23_论外格用舍.md b/rules/sources/23_论外格用舍.md new file mode 100644 index 0000000..3d129e4 --- /dev/null +++ b/rules/sources/23_论外格用舍.md @@ -0,0 +1,11 @@ +# 二十二、论外格用舍 + +> 来源:《子平真诠》epub 机械提取,目录第 24 项,原文件 chapter-1e4fdea5726f.xhtml。正文未作任何增删改。 + +八字用神既专主月令,何以又有外格乎?外格者,盖因月令无用,权而用之,故曰外格也。 + +如春木冬水、土生四季之类,日与月同,难以作用,类象、属象、冲财、会禄、刑合、遥迎、井栏、朝阳诸格,皆可用也。若月令自有用神,岂可另寻外格?又或春木冬水,干头已有财官七煞,而弃之以就外格,亦太谬矣。是故干头有财,何用冲财? + +干头有官,何用合禄?书云“提纲有用提纲重”,又曰“有官莫寻格局”,不易之论也。 + +然所谓月令无用者,原是月令本无用神,而今人不知,往往以财被劫官被伤之类。用神已破,皆以为月令无取,而弃之以就外格,则谬之又谬矣。 diff --git a/rules/sources/24_论宫分用神配六亲.md b/rules/sources/24_论宫分用神配六亲.md new file mode 100644 index 0000000..1312bba --- /dev/null +++ b/rules/sources/24_论宫分用神配六亲.md @@ -0,0 +1,11 @@ +# 二十三、论宫分用神配六亲 + +> 来源:《子平真诠》epub 机械提取,目录第 25 项,原文件 chapter-a1d17c044317.xhtml。正文未作任何增删改。 + +人有六亲,配之八字,亦存于命。 + +其由宫分配之者,则年月日时,自上而下,祖父妻子,亦自上而下。以地相配,适得其宜,不易之位也。 + +其由用神配之者,则正印也母,身所自出,取其生我也。若偏财受我克制,何反为父?偏财者,母之正夫也,正印为母,则偏才为父矣。正财为妻,受我克制,夫为妻纲,妻则从夫。若官煞则克制乎我,何以反为子女也?官煞者,财所生也,财为妻妾,则官煞为子女矣。至于比肩为兄弟,又理之显然者。 + +其间有无得力,或吉或凶,则以四柱所存或年月或日时财官伤刃,系是何物,然后以六亲配之用神。局中作何喜忌,参而配之,可以了然矣。 diff --git a/rules/sources/25_论妻子.md b/rules/sources/25_论妻子.md new file mode 100644 index 0000000..26b92e6 --- /dev/null +++ b/rules/sources/25_论妻子.md @@ -0,0 +1,15 @@ +# 二十四、论妻子 + +> 来源:《子平真诠》epub 机械提取,目录第 26 项,原文件 chapter-1ed7e028a475.xhtml。正文未作任何增删改。 + +大凡命中吉凶,于人愈近,其验益灵。富贵贫贱,本身之事,无论矣,至于六亲,妻以配身,子为后嗣,亦是切身之事。故看命者,妻财子提纲得力,或年干有用,皆主父母身所自出,亦自有验。所以提纲得力,或年干有用,皆主父母双全得力。至于祖宗兄弟,不甚验矣。 + +以妻论之,坐下财官,妻当贤贵;然亦有坐财官而妻不利,逢伤刃而妻反吉者,何也?此盖月令用神,配成喜忌。如妻宫坐财,吉也,而印格逢之,反为不美。妻坐官,吉也,而伤官逢之,岂能顺意?妻坐伤官,凶也,而财格逢之,可以生堸,煞格逢之,可以制煞,反主妻能内助。妻坐阳刃,凶也,而或财官煞伤等格,四柱已成格局,而日主无气,全凭日刃帮身,则妻必能相关。其理不可执一。 + +既看妻宫,又看妻星。妻星者,干头之财也。妻透而成局,若官格透财、印多逢财、食伤透财为用之类,即坐下无用,亦主内助。妻透而破格,若印轻财露、食神伤官、透煞逢财之类,即坐下有用,亦防刑克。又有妻透成格,或妻宫有用而坐下刑冲,未免得美妻而难偕老。又若妻星两透,偏正杂出,何一夫而多妻?亦防刑克之道也。 + +至于子息,其看宫分与星所透喜忌,理与论妻略同。但看子息,长生沐浴之歌,亦当熟读,如“长生四子中旬半,沐浴一双保吉祥,冠带临官三子位,旺中五子自成行,衰中二子病中一,死中至老没儿郞,除非养取他之子,入墓之时命夭亡,受气为绝一个子,胎中头产养姑娘,养中三子只留一,男子宫中子细详”是也。 + +然长生论法,用阳而不用阴。如甲乙日只用庚金长生,巳酉丑顺数之局,而不用辛金逆数之子申辰。虽书有官为女煞为男之说,然终不可以甲用庚男而用阳局,乙用辛男而阴局。盖木为日主,不问甲乙,总以庚为男辛为女,其理为然,拘于官煞,其能验乎? + +所以八字到手,要看子息,先看时支。如甲乙生日,其时果系庚金何宫?或生旺,或死绝,其多寡已有定数,然后以时干子星配之。如财格而时干透食,官格而时干透财之类,皆谓时干有用,即使时逢死绝,亦主子贵,但不甚繁耳。若又逢生旺,则麟儿绕膝,岂可量乎?若时干不好,子透破局,即逢生旺,难为子息。若又死绝,无所望矣。此论妻子之大略也。 diff --git a/rules/sources/26_论行运.md b/rules/sources/26_论行运.md new file mode 100644 index 0000000..3f2c782 --- /dev/null +++ b/rules/sources/26_论行运.md @@ -0,0 +1,29 @@ +# 二十五、论行运 + +> 来源:《子平真诠》epub 机械提取,目录第 27 项,原文件 chapter-dabfe987ac30.xhtml。正文未作任何增删改。 + +论运与看命无二法也。看命以四柱干支,配月令之喜忌,而取运则又以运之干,配八字之喜忌。故运中每运行一字,即必以此一字,配命中干支而统观之,为喜为忌,吉凶判然矣。 + +何为喜?命中所喜之神,我得而助之者是也。如官用印以制伤,而运助印;财生官而身轻,而运助身;印带财以为忌,而运劫财;食带煞以成格,身轻而运逢印,煞重而运助食;伤官佩印,而运行官煞;阳刃用官,而运助财乡;月劫用财,而运行伤食。如此之类,皆美运也。 + +何谓忌?命中所忌,我逆而施之者是也。如正官无印,而运行伤;财不透食,而运行煞;印绶用官,而运合官;食神带煞,而运行财;七煞食制,而运逢枭;伤官佩印,而运行财;阳刃用煞,而运逢食;建禄用官,而运逢伤。如此之类,皆败运也。 + +其有似喜而实忌者,何也?如官逢印运,而本命有合,印逢官运,而本命用煞之类是也。 + +有似忌而实喜者,何也?如官逢伤运,而命透印,财行煞运,而命透食之类是也。 + +又有行干而不行支者,何也?如丙生子月亥年,逢丙丁则帮身,逢巳午则相冲是也。 + +又有行支而不行干者,何也?如甲生酉月,辛金透而官犹弱,逢申酉则官植根,逢庚辛则混煞重官之类是也。 + +又有干同一类而不两行者,何也?如丁生亥月,而年透壬官,逢丙则帮身,逢丁则合官之类是也。 + +又有支同一类而不两行者,何也?如戊生卯月,丑年,逢申则自坐长生,逢酉则会丑以伤官之类是也。 + +又有同是相冲而分缓急者,何也?冲年月则急,冲日时则缓也。 + +又有同是相冲而分轻重者,何也?运本美而逢冲则轻,运既忌面又冲则重也。 + +又有逢冲而不冲,何也?如甲用酉官,行卯则冲,而本命巳酉相会,则冲无力;年支亥未,则卯逢年会而不冲月官之类是也。 + +又有一冲而得两冲者,何也?如乙用申官,两申并而不冲一寅,运又逢寅,则运与本命,合成二寅,以冲二申之类是也。 diff --git a/rules/sources/27_论行运成格变格.md b/rules/sources/27_论行运成格变格.md new file mode 100644 index 0000000..9f7fb1c --- /dev/null +++ b/rules/sources/27_论行运成格变格.md @@ -0,0 +1,15 @@ +# 二十六、论行运成格变格 + +> 来源:《子平真诠》epub 机械提取,目录第 28 项,原文件 chapter-fcc35f450080.xhtml。正文未作任何增删改。 + +命之格局,成于八字,然配之以运,亦有成格变格之要权。其成格变格,较之喜忌祸福尤重。 + +何为成格?本命用神,成而未全,从而就之者是也。如丁生辰月,透壬为宫,而运逢申子以会之;乙生辰月,或申或子会印成局,而运逢壬癸以透之。如此之类,皆成格也。 + +何为变格?如丁生辰月,透壬为官,而运逢戌,透出辰中伤官;壬生戌月,丁己并透,而支又会寅会午,作财旺生官矣,而运逢戊土,透出戌中七煞;壬生亥月,透己为用,作建禄用官矣,而运逢卯未,会亥成本,又化建禄为伤。如此之类,皆变格也。 + +然亦有逢成格而不喜者,何也?如壬生午月,运透己官,而本命有甲乙之类是也。 + +又有逢变格而不忌者,何也?如丁生辰月,透壬用官,逢戊而命有甲;壬生亥月,透己用官,运逢卯未,而命有庚辛之类是也。 + +成格变格,关系甚大,取运者其细详之。 diff --git a/rules/sources/28_论喜忌干支有别.md b/rules/sources/28_论喜忌干支有别.md new file mode 100644 index 0000000..ca13b7f --- /dev/null +++ b/rules/sources/28_论喜忌干支有别.md @@ -0,0 +1,9 @@ +# 二十七、论喜忌干支有别 + +> 来源:《子平真诠》epub 机械提取,目录第 29 项,原文件 chapter-ba12cc5315f8.xhtml。正文未作任何增删改。 + +命中喜忌,虽支干俱有,而干主天,动而有为,支主地,静以待用,且干主一而支藏多,为福为祸,安不得殊? + +譬如甲用酉官,逢庚辛则官煞杂,而申酉不作此例。申亦辛之旺地,辛坐申酉,如府官又掌道印也。逢二辛则官犯重,而二酉不作此例。辛坐二酉,如一府而摄二郡也,透丁则伤官,而逢午不作此例。丁动而午静,且丁巳并藏,安知其为财也? + +然亦有支而能作祸福者,何也?如甲用酉官,逢午酉未能伤,而又遇寅遇戌,不隔二位,二者合而火动,亦能伤矣。即此反观,如甲生甲月,午不制煞,会寅会戌,二者清局而火动,亦能矣。然必会有动,是正与干有别也。即此一端,余者可知。 diff --git a/rules/sources/29_论支中喜忌逢运透清.md b/rules/sources/29_论支中喜忌逢运透清.md new file mode 100644 index 0000000..81c3a59 --- /dev/null +++ b/rules/sources/29_论支中喜忌逢运透清.md @@ -0,0 +1,9 @@ +# 二十八、论支中喜忌逢运透清 + +> 来源:《子平真诠》epub 机械提取,目录第 30 项,原文件 chapter-ac575e248b4c.xhtml。正文未作任何增删改。 + +支中喜忌,固与干有别矣,而运逢透清,则静而待用者,正得其用,而喜忌之验,于此乃见。何谓透清?如甲用酉官,逢辰未即为财,而运透戊,逢午未即为伤,而运透丁之类是也。 + +若命与运二支会局,亦作清论。如甲用酉官,本命有午,而运逢寅戌之类。然在年则重,在日次之,至于时生于午,而运逢寅戌会局,则缓而不急矣。虽格之成败高低,八字已有定论,与命中原有者不同,而此五年中,亦能炒其祸福。若月令之物,而运中透清,则与命中原有者,不甚相悬,即前篇所谓行运成格变格是也。 + +故凡一八字到手,必须逐干逐支,上下统看。支为干之生地,干为支之发用。如命中有一甲字,则统观四支,有寅亥卯未等字否,有一字,皆甲木之根也。有一亥字,则统观四支,有壬甲二字否。有壬,则亥为壬禄,以壬水用;用甲,则亥为甲长生,以甲木用;用壬甲俱全,则一以禄为根,一以长生为根,二者并用。取运亦用此术,将本命八字,逐干支配之而已。 diff --git a/rules/sources/30_论时说拘泥格局.md b/rules/sources/30_论时说拘泥格局.md new file mode 100644 index 0000000..c29d480 --- /dev/null +++ b/rules/sources/30_论时说拘泥格局.md @@ -0,0 +1,21 @@ +# 二十九、论时说拘泥格局 + +> 来源:《子平真诠》epub 机械提取,目录第 31 项,原文件 chapter-d47f44d38f41.xhtml。正文未作任何增删改。 + +八字用神专凭月令,月无用神,台寻格局。月令,本也;外格,未也。今人不知轻重,拘泥格局,执假失真。 + +故戊生甲寅之月,时上庚甲,不以为明煞有制,而以为专食之格,逢甲减福。 + +丙生子月,时逢巳禄,不以为正官之格,归禄帮身,而以为日禄归时,逢官破局。 + +辛日透丙,时遇戊子,不以为辛日得官逢印,而以为朝阳之格,因丙无成。 + +财逢时煞,不以为生煞攻身,而以为时上偏官。 + +癸生巳月,时遇甲寅,不以为暗官受破,而以为刑合成格。 + +癸生冬月,酉日亥时,透戊坐戌,不以为月劫建禄,用官通根,而以为拱戌之格,填实不利。辛日坐丑,寅年,亥月,卯时,不以为正财之格,而以为填实拱贵。 + +乙逢寅月,时遇丙子,不以为木火通明,而以为格成鼠贵。 + +如此谬论,百无一是,此皆由不知命理,妄为评断。 diff --git a/rules/sources/31_论时说以讹传讹.md b/rules/sources/31_论时说以讹传讹.md new file mode 100644 index 0000000..9cdfb28 --- /dev/null +++ b/rules/sources/31_论时说以讹传讹.md @@ -0,0 +1,13 @@ +# 三十、论时说以讹传讹 + +> 来源:《子平真诠》epub 机械提取,目录第 32 项,原文件 chapter-4dc1692b3b4b.xhtml。正文未作任何增删改。 + +八字本有定理,理之不明,遂生导端,妄言妄听,牢不可破。如论干支,则不知阴阳之理,而以俗书体象歌诀为确论;论格局,则不知专寻月令,而以拘泥外格为活变;论生克,则不察喜忌,而以伤旺扶弱为定法;论行运,则不问同中有导,而以干支相类为一例。 + +究其缘由,一则书中用字轻重,不知其意,而谬生偏见;一则以鹆书无知妄作,误会其说,而深入迷途;一则论命取运,偶然湊合,而遂以己见为不易,一则以古人命式,亦有误收,即收之不误,又以己意入外格,尤为害人不浅。 + +如壬申、癸丑、己丑、甲戌,本杂气财旺生官也,而以为乙亥时,作时上偏官论,岂知旺财生煞,将救死之不暇,于何取贵? + +此类甚多,皆误收格局也。如己未、壬申、戊子、庚申,本食神生财也,而欲弃月令,以为戊日庚申合禄之格,岂知本身自有财食,岂不甚美?又何劳以庚合乙,求局外之官乎,此类甚多,皆硬入外格也。 + +人苟中无定见,察理不精,睹此谬论,岂能无惑?何况近日贵格不可解者,亦往往有之乎?岂知行术之人,必以贵命为指归,或将风闻为实据,或探其生日,而即以己意加之生时,谬造贵格,其人之八字,时多未确,即彼本身,亦不自知。若看命者不究其本,而徒以彼既富贵迁就其说以相从,无惑乎终身无解日矣! diff --git a/rules/sources/32_论正官.md b/rules/sources/32_论正官.md new file mode 100644 index 0000000..f21db47 --- /dev/null +++ b/rules/sources/32_论正官.md @@ -0,0 +1,15 @@ +# 三十一、论正官 + +> 来源:《子平真诠》epub 机械提取,目录第 33 项,原文件 chapter-214a9034f70f.xhtml。正文未作任何增删改。 + +官以克身,虽与七煞有别,终受彼制,何以切忌刑冲破害,尊之若是乎?岂知人生天地间,必无矫焉自尊之理,虽贵极天子,亦有天祖临之。正官者分所当尊,如在国有君,在家有亲,刑冲破害,以下犯上,乌乎可乎? + +以刑冲破害为忌,则以生之护之为喜矣。存其喜而去其忌则贵,而贵之中又有高低者,何也?以财印并透者论之,两不相碍,其贵也大。如薛相公命,甲申、壬申、乙巳,戊寅,壬印戊财,以乙隔之,水与土不相碍,故为大贵。若壬戌、丁未、戊甲、乙卯,杂气正官,透干会支,最为贵格,而壬财丁印,二者相合,仍以孤官无辅论,所以不上七品。 + +若财印不以两用,则单用印不若单用财,以印能护官,亦能泄官,而财生官也。若化官为印而透财,则又为甚秀,大贵之格也。如金状元命,乙卯、丁亥、丁未、庚戌,此并用财印,无伤官而不杂煞,所谓去其忌而存其喜者也。 + +然而遇伤在于佩印,混煞贵乎取清。如宣参国命,己卯、辛未、壬寅、辛亥,未中己官透干用清,支会水局,两辛解之,是遇伤而佩印也。李参政命,庚寅、乙酉、甲子、戊辰,甲用酉官,庚金混杂,乙以合之,合煞留官,是杂煞而取清也。 + +至于官格透伤用印者,又忌见财,以财能去印,未能生官,而适以护伤故也。然亦有逢财而反大贵者,如范太傅命,丁丑、壬寅、己巳、丙寅,支具巳丑,会金伤官,丙丁解之,透壬岂非破格?却不知丙丁并透,用一而足,以丁合壬而财去,以丙制伤而官清,无情而愈有情。此正造化之妙,变幻无穷,焉得不贵? + +至若地支刑冲,会合可解,已见前篇,不必再述,而以后诸格,亦不谈及矣。 diff --git a/rules/sources/33_论正官取运.md b/rules/sources/33_论正官取运.md new file mode 100644 index 0000000..f666ecf --- /dev/null +++ b/rules/sources/33_论正官取运.md @@ -0,0 +1,17 @@ +# 三十二、论正官取运 + +> 来源:《子平真诠》epub 机械提取,目录第 34 项,原文件 chapter-bdf39a06358a.xhtml。正文未作任何增删改。 + +取运之道,一八字则有一八字这论,其理甚精,其法甚活,只可大略言之。变化在人,不可泥也。 + +如正官取运,即以正官所统之格分而配之。正官而用财印,身稍轻则取助身,官稍轻则助官。若官露而不可逢合,不可杂煞,不可重官。与地支刑冲,不问所就何局,皆不利也。 + +正官用财,运喜印受身旺之地,切忌食伤。若身旺而财轻官弱,即仍取财官运可也。 + +正官佩印,运喜财乡,伤食反吉。若官重身轻而佩印,则身旺为宜,不必财运也。 + +正官带伤食而用印制,运喜官旺印旺之乡,财运切忌。若印绶叠出,财运亦无害矣。 + +正官而带煞,伤食反为不碍。其命中用劫合煞,则财运可行,伤食可行,身旺,印绶亦可行,只不过复露七煞。若命用伤官合煞,则伤食与财俱可行,而不宜逢印矣。 + +此皆大略言之,其八字各有议论。运中每遇一字,各有研究,随时取用,不可言形。凡格皆然,不独正官也。 diff --git a/rules/sources/34_论财.md b/rules/sources/34_论财.md new file mode 100644 index 0000000..c88ffd5 --- /dev/null +++ b/rules/sources/34_论财.md @@ -0,0 +1,25 @@ +# 三十三、论财 + +> 来源:《子平真诠》epub 机械提取,目录第 35 项,原文件 chapter-5c3765ce8edf.xhtml。正文未作任何增删改。 + +财为我克,使用之物也,以能生官,所以为美。为财帛,为妻妾,为才能,为驿马,皆财类也。 + +财喜根深,不宜太露,然透一位以清用,格所最喜,不为之露。即非月令用神,若寅透乙、卯透甲之类,一亦不为过,太多则露矣。然而财旺生官,露亦不忌,盖露不忌,盖露以防劫,生官则劫退,譬如府库钱粮,有官守护,即使露白,谁敢劫之?如葛参政命,壬申、壬子、戊午、乙卯,岂非财露?唯其生官,所以不忌也。 + +财格之贵局不一,有财旺生官者,身强而不透伤官,不混七煞,贵格也。 + +有财用食生者,身强而不露官,略带一位比劫,益觉有情,如壬寅、壬寅、庚辰、辛巳,杨待郎之命是也。透官身弱,则格坏矣。 + +有财格佩印者,盖孤财不贵,佩印帮身,即印取贵。如乙未、甲申、丙申、庚寅,曾参政之命是也,然财印宜相并,如乙未、己卯、庚寅、辛巳,乙与己两不相能,即有好处,小富而已。 + +有用食而兼用印者,食与印两不相碍,或有暗官而去食护官,皆贵格也。如吴榜眼命,庚戌、戊子、戊子、丙辰,庚与丙隔两戊而不相克,是食与印不相碍也。如平江伯命,壬辰、乙巳、癸巳、辛酉,虽食印相克,而欲存巳戊官,是去食护官也。反是则减福矣。 + +有财用伤官者,财不甚旺而比强,辂露一位伤官以化之,如甲子、辛未、辛酉、壬辰,甲透未库,逢辛为劫,壬以化劫生财,汪学士命是也,财旺无劫而透伤,反为不利,盖伤官本非美物,财轻透劫,不得己而用之。旺而露伤,何苦用彼?徒使财遇伤而死生官之具,安望富贵乎? + +有财带七煞者,或合煞存财,或制煞生财,皆贵格也,如毛状元命,乙酉、庚辰、甲午、戊辰,合煞存财也;李御史命,庚辰、戊子、戊寅、甲寅,制煞生财也。 + +有财用煞印者,党煞为忌,印以化之,格成富局,若冬土逢之亦贵格。如赵待郎命,乙丑、丁亥、己亥、丙子,化煞而即以解冻,又不露财以杂其印,所以贵也。若财用煞印而印独,财煞并透,非特不贵,亦不富也。 + +至于壬生午月,癸生巳月,单透财而亦贵,又月令有暗官也。如丙寅、癸巳、癸未、壬戌,林尚书命是也。又壬生巳月,单透财而亦贵,以其透丙藏戊,弃煞就财,美者存在赠者弃也。如丙辰、癸巳、壬戌、壬寅,王太仆命是也。 + +至于劫刃太重,弃财就煞,如一尚书命,丙辰、丙申、丙午、壬辰,此变之又变者也。 diff --git a/rules/sources/35_论财取运.md b/rules/sources/35_论财取运.md new file mode 100644 index 0000000..f4a3bde --- /dev/null +++ b/rules/sources/35_论财取运.md @@ -0,0 +1,17 @@ +# 三十四、论财取运 + +> 来源:《子平真诠》epub 机械提取,目录第 36 项,原文件 chapter-0823d07b2b75.xhtml。正文未作任何增删改。 + +财格取运,即以财格所就之局,分而配之。其财旺生官者,运喜身旺印缓,不利七煞伤官;若生官而后透印,伤官之地,不甚有害。至于生官而带食破局,则运喜印绶,而逢煞反吉矣。 + +财用食生,财食重而身轻,则喜助身;财食轻而身重,则仍行财食。煞运不忌,官印反晦矣。 + +财格佩印,运喜官乡,身弱逢之,最喜印旺。 + +财用食印,财轻则喜财食,身轻则喜比印,官运有碍,煞反不忌也。 + +财带伤官,财运则亨,煞运不利,运行官印,未见其美矣。 + +财带七煞。不论合煞制煞,运喜食伤身旺之方。 + +财用煞印,印旺最宜,逢财必忌。伤食之方,亦任意矣。 diff --git a/rules/sources/36_论印绶.md b/rules/sources/36_论印绶.md new file mode 100644 index 0000000..70b65b9 --- /dev/null +++ b/rules/sources/36_论印绶.md @@ -0,0 +1,25 @@ +# 三十五、论印绶 + +> 来源:《子平真诠》epub 机械提取,目录第 37 项,原文件 chapter-747590932418.xhtml。正文未作任何增删改。 + +印绶喜其生身,正偏同为美格,故财与印不分偏正,同为一格而论之。印绶之格局亦不一,有印而透官者,正官不独取其生印,而即可以为用,与用煞者不同。故身旺印强,不愁太过,只要官星清纯,如丙寅、戊戌、辛酉、戊子,张参政之命是也。 + +然亦有带伤食而贵者,则如朱尚书命,丙戌、戊戌、辛未、壬辰,壬为戊制,不伤官也。又如临淮侯命,乙亥、己卯、丁酉、壬寅,己为乙制,己不碍官也。 + +有印而用伤食者,身强印旺,恐其太过,泄身以为秀气。如戊戌、乙卯、丙午、乙亥,李状元命也,若印浅身轻,而用层层伤食,则寒贫之局矣。 + +有用偏官者,偏官本非美物,藉其生印,不得已而用之。故必身重印轻,或身轻印重,有所不足,始为有性。如茅状元命,己巳、癸酉、癸未、庚申,此身轻印重也。马参政命,壬寅、戊申、壬辰、壬寅,此身重印轻也。若身印并重而用七煞,非孤则贫矣。 + +有用煞而兼带伤食者,则用煞而有制,生身而有泄,不论身旺印重,皆为贵格。 + +有印多而用财者,印重身强,透财以抑太过,权而用之,只要根深,无防财破。如辛酉、丙申、壬申、辛亥,汪侍郎命是也。 + +若印轻财重,又无劫财以救,则为贪财破印,贫贱之局也。 + +即或印重财轻而兼露伤食,财与食相生,轻而不轻,即可就富,亦不贵矣。然亦有带食而贵者,何也?如庚寅、乙酉、癸亥、丙辰,此牛监薄命,乙合庚而不生癸,所以为贵,若合财存食,又可类推矣。如己未、甲戌、辛未、癸已,此合财存食之贵也。 + +又有印而兼透官煞者,或合煞,或有制,皆为贵格。如辛亥、庚子、甲辰、乙亥,此合煞留官也;壬子、癸卯、丙子、己亥、此官煞有制也。 + +至于化印为劫;弃之以就财官,如赵知府命,丙午、庚寅、丙午、癸已,则变之又变者矣。 + +更有印透七煞,而劫财以存煞印,亦有贵格,如庚戌、戊子、甲戌、乙亥是也。然此格毕竟难看,宜细详之。 diff --git a/rules/sources/37_论印绶取运.md b/rules/sources/37_论印绶取运.md new file mode 100644 index 0000000..f85af30 --- /dev/null +++ b/rules/sources/37_论印绶取运.md @@ -0,0 +1,19 @@ +# 三十六、论印绶取运 + +> 来源:《子平真诠》epub 机械提取,目录第 38 项,原文件 chapter-5de6a6955836.xhtml。正文未作任何增删改。 + +印格取运,即以印格所成之局,分而配之。其印绶用官者,官露印重,财运反吉,伤食之方,亦为最利。 + +若用官而带伤食,运喜官旺印绶之乡,伤食为害,逢煞不忌矣。 + +印绶而用伤食,财运反吉,伤食亦利,若行官运,反见其灾,煞运则反能为福矣。 + +印用七煞,运喜伤食,身旺之方,亦为美地,一见财乡,其凶立至。 + +若用煞而兼带伤食,运喜身旺印绶之方,伤食亦美,逢官遇财,皆不吉也。 + +印绶遇财,运喜劫地,官印亦亨,财乡则忌。 + +印格而官煞竞透,运喜食神伤官,印旺身旺,行之亦利。若再透官煞,行财运,立见其灾矣。 + +印用食伤,印轻者亦不利见财也。 diff --git a/rules/sources/38_论食神.md b/rules/sources/38_论食神.md new file mode 100644 index 0000000..d41ccaa --- /dev/null +++ b/rules/sources/38_论食神.md @@ -0,0 +1,25 @@ +# 三十七、论食神 + +> 来源:《子平真诠》epub 机械提取,目录第 39 项,原文件 chapter-030e8a1814e5.xhtml。正文未作任何增删改。 + +食神本属泄气,以其能生正财,所以喜之。故食神生财,美格也。财要有根,不必偏正叠出,如身强食旺而财透,大贵之格。 + +若丁未、癸卯、癸亥、癸丑,梁丞相之命是也;己未、壬申、戊子、庚申,谢阁老之命是也。 + +藏食露伤,主人性刚如丁亥、癸卯、癸卯、甲寅,沈路分命是也。偏正叠出,富贵不巨,职甲午、丁卯、癸丑、丙辰,龚知县命是也。 + +夏木用财,火炎土燥,贵多就武。如己未、已巳、甲寅、丙寅,黄都督之命是也。 + +若不用财而就煞印,最为威权显赫。如辛卯、辛卯、癸酉、己未,常国公命是也。若无印绶而单露偏官,只要无财,亦为贵格,如戊戌、壬戌、丙子、戊戌,胡会元命是也。 + +若金水食神而用煞,贵而且秀,职丁亥、壬子、辛巳、丁酉,舒尚书命是也。至于食神忌印,夏火太炎而木焦,透印不碍,如丙午、癸巳、甲子、丙寅,钱参政命是也。食神忌官,金水不忌,即金水伤官可见官之谓。 + +至若单用食神,作食神有气,有财运则富,无财运则贫。 + +更有印来夺食,透财以解,亦有富贵,须就其全局之势而断之。至于食神而官煞竞出,亦可成局,但不甚贵耳。 + +更有食神合煞存财,最为贵格。 + +至若食神透煞。本忌见财,而财先煞后,食以间之,而财不能党煞,亦可就贵。如刘提台命,癸酉、辛酉、己卯、乙亥是也。 + +其余变化,不能尽述,类而推之可也。 diff --git a/rules/sources/39_论食神取运.md b/rules/sources/39_论食神取运.md new file mode 100644 index 0000000..14e985c --- /dev/null +++ b/rules/sources/39_论食神取运.md @@ -0,0 +1,13 @@ +# 三十八、论食神取运 + +> 来源:《子平真诠》epub 机械提取,目录第 40 项,原文件 chapter-0f7f15784691.xhtml。正文未作任何增删改。 + +食神取运,即以食神所成之局,分而配之。食神生财,财重食轻,则行财食,财食重则喜帮身。官煞之方,俱为不美。 + +食用煞印,运喜印旺,切忌财乡。身旺,食伤亦为福运,行官行煞,亦为吉也。 + +食伤带煞,喜行印绶,身旺,食伤亦为美运,财则最忌。若食太重而煞轻,印运最利,逢财反吉矣。 + +食神太旺而带印,运最利财,食伤亦吉,印则最忌,官煞皆不吉也。 + +若食神带印,透财以解,运喜财旺,食伤亦吉,印与官煞皆忌也。 diff --git a/rules/sources/40_论偏官.md b/rules/sources/40_论偏官.md new file mode 100644 index 0000000..e2d8878 --- /dev/null +++ b/rules/sources/40_论偏官.md @@ -0,0 +1,25 @@ +# 三十九、论偏官 + +> 来源:《子平真诠》epub 机械提取,目录第 41 项,原文件 chapter-a5f8c7bc0d8a.xhtml。正文未作任何增删改。 + +煞以攻身,似非美物,百大贵之格,多存七煞。盖控制得宜,煞为我用,如大英雄大豪杰,似难驾驭,而处之有方,则惊天动地之功,忽焉而就。此王侯将相所以多存七煞也。 + +七煞之格局亦不一:煞用食制者,上也,煞旺食强而身健,极为贵格。如乙亥、乙酉、乙卯、丁丑,极等之贵也。 + +煞用食制,不要露财透印,以财能转食生煞,而印能去食护煞也。然而财先食后,财生煞而食以制之,或印先食后,食太旺而印制,则格成大贵。如脱脱丞相命,壬辰、甲胡、丙戌、戊戌,辰中暗煞,壬以透之,戊坐四支,食太重而透甲印,以损太过,岂非贵格?若煞强食泄而印露,则破局矣。 + +有七煞用印者,印能护煞,本非所宜,而印有情,便为贵格。如何参政命,丙寅、戊戌、壬戌、辛丑,戊与辛同通月令,是煞印有情也。 + +亦有煞重身轻,用食则身不能当,不若转而就印,虽不通根月令,亦为无情而有情。格亦许贵,但不大耳。 + +有煞而用财者,财以党煞,本非所喜,而或食被制,不能伏煞,而财以去印存食,便为贵格。如周丞相命,戊戌、甲子,丁未、庚戌,戊被制不能伏煞,时透庚财,即以清食者,生不足之煞。生煞即以制煞,两得其用,尤为大贵。 + +又有身重煞轻,煞又化印,用神不清,而借财以清格,亦为贵格。如甲申、乙亥、丙戌、庚寅,刘运使命是也。 + +更有杂气七煞,干头不透财以清用,亦可取贵。 + +有煞而杂官者,或去官,或去煞,取清则贵。如岳统制命,癸卯、丁巳、庚寅、庚辰,去官留煞也。夫官为贵气,去官何如去煞?岂知月令偏官,煞为用而官非用,各从其重。若官格杂煞而去官留煞,不能如是之清矣。如沈郎中命,丙子、甲午、辛亥、辛卯,子冲午而克煞,是去煞留官也。 + +有煞无食制而用印当者,如戊辰、甲寅、戊寅、戊午、赵员外命是也。 + +至书有制煞不可太过之说,虽亦有理,然运行财印,亦能发福,不可执一也,乃若弃命从煞,则于外格详之。 diff --git a/rules/sources/41_论偏官取运.md b/rules/sources/41_论偏官取运.md new file mode 100644 index 0000000..ca7f5fd --- /dev/null +++ b/rules/sources/41_论偏官取运.md @@ -0,0 +1,15 @@ +# 四十、论偏官取运 + +> 来源:《子平真诠》epub 机械提取,目录第 42 项,原文件 chapter-091f67d38a52.xhtml。正文未作任何增删改。 + +偏官取运,即以偏官所成之局分而配之。煞用食制,煞重食轻则助食,煞轻食重则助煞,煞食均而日主根轻则助身。忌正官之混杂,畏印绶之夺食。 + +煞用印绶,不利财乡,伤官为美,印绶身旺,俱为福地。 + +七煞用财,其以财而去印存食者,不利劫财,伤食皆吉,喜财怕印,透煞亦顺。 + +其以财而助煞不及者,财已足,则喜食印与帮身;财未足,则喜财旺而露煞。 + +煞带正官,不论去官留煞,去煞留官,身轻则喜助身,食轻则喜助食。莫去取清之物,无伤制煞之神。 + +煞无食制而用刃当煞,煞轻刃重则喜助煞,刃轻煞重,则宜制伏,无食可夺,印运何伤?七煞既纯,杂官不利。 diff --git a/rules/sources/42_论伤官.md b/rules/sources/42_论伤官.md new file mode 100644 index 0000000..fff84ac --- /dev/null +++ b/rules/sources/42_论伤官.md @@ -0,0 +1,25 @@ +# 四十一、论伤官 + +> 来源:《子平真诠》epub 机械提取,目录第 43 项,原文件 chapter-e63f10407ab5.xhtml。正文未作任何增删改。 + +伤官虽非吉神,实为秀气,故文人学士,多于伤官格内得之。而夏木见水,冬金见火,则又为秀之尤秀者也。其中格局比他格多,变化尤多,在查其气候,量其强弱,审其喜忌,观其纯杂,微之又微,不可执也。 + +故有伤官用财者,盖伤不利于民,所以为凶,伤官生财,则以伤官为生官之具,转凶为吉,故最利。只要身强而有根,便为贵格,如壬午、己酉、戊午、庚申,史春芳命也。 + +至于化伤为财,大为秀气,如罗状元命,甲子、乙亥、辛未、戊子,干头之甲,通根于亥,然又会未成局,化水为木,化之生财,尤为有情,所以伤官生财,冬金不贵,以冻水不能生木。若乃化木,不待于生,安得不为殿元乎? + +至于财伤有情,与化伤为财者,其秀气不相上下,如秦龙图命,己卯、丁丑、丙寅、庚寅,已与庚同根月令是也。 + +有伤官佩印者,印能制伤,所以为贵,反要伤官旺,身稍弱,始为秀气。如孛罗平章命,壬申、丙午、申午、壬申、伤官旺,印根深,身又弱,又是夏木逢润,其秀百倍,所以一品之贵。然印旺极深,不必多见,偏正叠出,反为不秀,故伤轻身重而印绶多见,贫穷之格也。 + +有伤官兼用财印者,财印相克,本不并用,只要干头两清而不相碍;又必生财者,财太旺而带印,佩印者印太重而带财,调停中和,遂为贵格。如丁酉、己酉、戊子、壬子,财太重而带印,而丁与壬隔以戊已,两不碍,且金水多而觉寒,得火融和,都统制命也。又如壬戌、己酉、戊午、丁巳,印太重而隔戊已,而丁与壬不相碍,一丞相命也。反是则财印不并用而不秀矣。 + +有伤官用煞印者,伤多身弱,赖煞生印以邦身而制伤,如己未、丙子、庚子、丙子,蔡贵妃也。煞因伤而有制,两得其宜,只要无财,便为贵格,如壬寅、丁未、丙寅,夏阁老命是也。 + +有伤官用官者,他格不用,金水独宜,然要财印为辅,不可伤官并透。如戊申、甲子、庚午、丁丑,藏癸露丁,戊甲为辅,官又得禄,所以为丞相之格。若孤官无辅,或官伤并透,则发福不大矣。 + +若冬金用官,而又化伤为财,则尤为极秀极贵。如丙申、己亥、辛未、己亥,郑丞相命是也。 + +然亦有非金水而见官,何也?化伤为财,伤非其伤,作财旺生官而不作伤官见官,如甲子、壬申、己亥、辛未,章丞相命也。 + +至于伤官而官煞并透,只要干头取清,金水得之亦清,不然则空结构而已。 diff --git a/rules/sources/43_论伤官取运.md b/rules/sources/43_论伤官取运.md new file mode 100644 index 0000000..fee42c3 --- /dev/null +++ b/rules/sources/43_论伤官取运.md @@ -0,0 +1,15 @@ +# 四十二、论伤官取运 + +> 来源:《子平真诠》epub 机械提取,目录第 44 项,原文件 chapter-3d44c5adccba.xhtml。正文未作任何增删改。 + +伤官取运,即以伤官所成之局,分而配之。伤官用财,财旺身轻,则利印比;身强财浅,则喜财运,伤官亦宜。 + +伤官佩印,运行官煞为宜,印运亦吉,伤食不碍,财地则凶。 + +伤官而兼用财印,其财多而带印者,运喜助印,印多而带财者,运喜助财。 + +伤官而用煞印,印运最利,伤食亦亨,杂官非吉,逢财即危。 + +伤官带煞,喜印忌财,然伤重煞轻,运喜印而财亦吉。惟七根重,则运喜伤食,印绶身旺亦吉,而逢财为凶矣。 + +伤官用官,运喜财印,不利食伤,若局中官露而财印两旺,则比劫伤官,未绐非吉矣。 diff --git a/rules/sources/44_论阳刃.md b/rules/sources/44_论阳刃.md new file mode 100644 index 0000000..b305674 --- /dev/null +++ b/rules/sources/44_论阳刃.md @@ -0,0 +1,15 @@ +# 四十三、论阳刃 + +> 来源:《子平真诠》epub 机械提取,目录第 45 项,原文件 chapter-def1fe4c568d.xhtml。正文未作任何增删改。 + +阳刃者,劫我正财之神,乃正财之七煞也。禄前一位,惟五阳有之,故为旭刃。不曰劫而曰刃,劫之甚也。刃宜伏制,官煞皆宜,财印相随,尤为贵显。夫正官而财印相随美矣,七煞得之,夫乃甚乎?岂知他格以煞能伤身,故喜制伏,忌财印;阳刃用之,则赖以制刃,不怕伤身,故反喜财印,忌制伏也。 + +阳刃用官,透刃不虑;阳刃露煞,透刃无成。盖官能制刃,透而不为害;刃能合煞,则有何功?如丙生午月,透壬制刃,而又露丁,丁与壬合,则七煞有贪合忘克之意,如何制刃?故无功也。 + +然同是官煞制刃,而格亦有高低,如官煞露而根深,其贵也大;官煞藏而不露,或露而根浅,其贵也小。若己酉、丙子、壬寅、丙午,官透有力,旺财生之,丞相命也。又辛酉、甲午、丙申、壬辰,透煞根浅,财印助之,亦丞相命也。 + +然亦有官煞制刃带伤食而贵者,何也?或是印护,或是煞太重而裁损之,官煞轻而取清之,如穆同知命,甲午、癸酉、庚寅、戊寅,癸水伤寅午之官,而戊以合之,所谓印护也,如贾平章命,甲寅、庚午、戊申、甲寅,煞两透而根太重,食以制之,所谓裁损也。如丙戌、丁酉、庚申、壬午,官煞竞出,而壬合丁官,煞纯而不杂。况阳刃之格,利于留煞,所谓取清也。 + +其于丙生午月,内藏己土,可以克水,尤宜带财佩印,若戊生午月,干透丙火,支会火乙,则化刃为印,或官或煞,透则去刃存印其格愈清。倘或财煞并透露,则犯去印存煞之忌,不作生煞制煞之例,富贵两空矣。 + +更若阳刃用财,格所不喜,然财根深而用伤食,以转刃生财,虽不比建禄月劫,可以取贵,亦可就富。不然,则刃与财相搏,不成局矣。 diff --git a/rules/sources/45_论阳刃取运.md b/rules/sources/45_论阳刃取运.md new file mode 100644 index 0000000..61cd8a4 --- /dev/null +++ b/rules/sources/45_论阳刃取运.md @@ -0,0 +1,9 @@ +# 四十四、论阳刃取运 + +> 来源:《子平真诠》epub 机械提取,目录第 46 项,原文件 chapter-b0ebea1fb248.xhtml。正文未作任何增删改。 + +阳刃用官,则运喜助官,然命中官星根深,则印绶比劫之方,反为美运,但不喜伤食合官耳。 + +阳刃用煞,煞不甚旺,则运喜助煞;煞若太重,则运喜身旺印绶,伤食亦不为忌。 + +阳刃而官煞并出,不论去官去煞,运喜制伏,身旺亦利,财地官乡反为不吉也。 diff --git a/rules/sources/46_论建禄月劫.md b/rules/sources/46_论建禄月劫.md new file mode 100644 index 0000000..851b719 --- /dev/null +++ b/rules/sources/46_论建禄月劫.md @@ -0,0 +1,31 @@ +# 四十五、论建禄月劫 + +> 来源:《子平真诠》epub 机械提取,目录第 47 项,原文件 chapter-f606255a2fdb.xhtml。正文未作任何增删改。 + +建禄者,月建逢禄堂也,禄即是劫。或以禄堂透出,即可依以用者,非也。故建禄与月劫,可同一格,不必加分,皆以透干支,别取财官煞食为用。 + +禄格用官,干头透出为奇,又要财印相随,不可孤官无辅。有用官而印护者,如庚戌、戊子、癸酉、癸亥,金丞相命是也。有用官而财助者,如丁酉、丙午、丁巳、壬寅,李知府命是也。 + +有官而兼带财印者,所谓身强值三奇,尤为贵气。三奇者,财官印也,只要以官隔之,使财印两不相伤,其格便大,如庚午、戊子、癸卯、丁巳,王少师命是也。 + +禄劫用财,须带食伤,盖月令为劫而以财作用,二财相克,必以伤食化之,始可转劫生财,如甲子、丙子、癸丑、壬辰,张都统命是也。 + +至于化劫为财,与化劫为生,尤为秀气。如己未、已巳、丁未、辛丑,丑与巳会,即以劫财之火为金局之财,安得不为大贵? + +所谓化劫为财也。如高尚书命,庚子、甲申、庚子、甲申,即以劫财之金,化为生财之水,所谓化劫为生也。 + +禄劫用煞,必须制伏台,如娄参政命,丁巳、壬子、癸卯、己未,壬合丁财以去其党煞,卯未会局以制伏是也。 + +至用煞而又财,本为不美,然能去煞存财,又成贵格。戊辰、癸亥、壬午、丙午,合煞存财,袁内阁命是也。 + +其禄劫之格,无财官而用伤食,泄其太过,亦为秀气。唯春木秋金,用之则贵,盖木逢火则明,金生水则灵。如张状元命,甲子、丙寅、甲子、丙寅,木火通明也;又癸卯、庚申、庚子、庚辰,金水相涵也。 + +更有禄劫而官煞竞出,必取清方为贵格。如一平章命,辛丑、庚寅、甲辰、乙亥、合煞留这也;如辛亥、庚写、甲申、丙寅,制煞留官也。 + +倘或两官竞出,亦须制伏,所谓争正官不可无伤也。 + +若夫用官而孤官无辅,格局更小,难于取贵,若透伤食便不破格。然亦有官伤并透而贵者,何也?如己酉、乙亥、壬戌、庚子,庚合乙而去伤存官,王总兵命也。 + +用财而不透伤食,便难于发端,然干头透一位而不杂,地支根多,亦可取富,但不贵耳。 + +用官煞重而无制伏,运行制伏,亦可发财,但不可官煞太重,致令身危也。 diff --git a/rules/sources/47_论建禄月劫取运.md b/rules/sources/47_论建禄月劫取运.md new file mode 100644 index 0000000..3ee63fa --- /dev/null +++ b/rules/sources/47_论建禄月劫取运.md @@ -0,0 +1,15 @@ +# 四十六、论建禄月劫取运 + +> 来源:《子平真诠》epub 机械提取,目录第 48 项,原文件 chapter-f8be44fc7ea4.xhtml。正文未作任何增删改。 + +禄劫取运,即以禄劫所成之局,分而配之。禄劫用官,印护者喜财,怕官星之逢合,畏七煞这相乘。伤食不能为害,劫比未即为凶。 + +财生喜印,宜官星之植根,畏伤食之相侮,逢财愈见其功,杂煞岂能无碍? + +禄劫用财而带伤食,财食重则喜印绶,而不书法比肩;财食轻则宜助财,而不喜印比。逢煞无伤,遇官非福。 + +禄劫用煞食制,食重煞轻,则运宜助煞;食轻煞重,则运喜助食。 + +若用煞而带财,命中合煞存财,则伤食为宜,财运不忌,透官无虑,身旺亦亨。若命中合财存煞,而用食制,煞轻则助煞,食轻则助食则已。 + +禄劫而用伤食,财运最宜,煞亦不忌,行印非吉,透官不美。若命中伤食太重,则财运固利,而印亦不忌矣。禄劫而官煞并出,不论合煞留官,存官制煞,运喜伤食,比肩亦宜,印绶未为良图,财官亦非福运。 diff --git a/rules/sources/48_论杂格.md b/rules/sources/48_论杂格.md new file mode 100644 index 0000000..b03887e --- /dev/null +++ b/rules/sources/48_论杂格.md @@ -0,0 +1,31 @@ +# 四十七、论杂格 + +> 来源:《子平真诠》epub 机械提取,目录第 49 项,原文件 chapter-6f6638ff4cc1.xhtml。正文未作任何增删改。 + +杂格者,月令无用,以外格而用之,其格甚多,故谓之杂。大约要干头无官无煞,方成格,如有官煞,则自有官煞为用,列外格矣。若透财尚可取格,然财根深,或财透两位,则亦以财为重,不取外格也。 + +试以诸格论之,有取五行一方秀气者,取甲乙全亥卯未、寅卯辰,又生春月之类,本是一派劫财,以五行各得其全体,所以成格,喜印露而体纯。如癸亥、乙卯、乙未、壬午,吴相公命是也。运亦喜印绶比劫之乡,财食亦吉,官煞则忌矣。 + +有从化取格者,要化出之物,得时乘令,四支局全。如丁壬化木,地支全亥卯未、寅卯辰,而又生于春月,方为大贵。否则,亥未之月亦是木地,次等之贵,如甲戌、丁卯、壬寅、甲辰,一品贵格命也。运喜所化之物,与所化之印绶,财伤亦可,不利官煞。 + +有倒冲成格者,以四柱列财官而对面以冲之,要支中字多,方冲得动。譬如以弱主邀强官,主不众则宾不从。如戊午、戊午、戊午、戊午,是冲子财也;甲寅、庚午、丙午、甲午,是冲子官也。运忌填实,余俱可行。 + +有朝阳成格者,戊去朝丙,辛日得官,以丙戊同禄于巳,即以引汲之意。要干头无木火,方成其格,盖有火则无待于朝,有木财触戊之怒,而不为我朝。如戊辰、辛酉、戊子,张知县命是也。运喜土金水,木运平平,火则忌矣。 + +有合禄成格者,命无官星,借干支以合之。戊日庚申,以庚合乙,因其主而得其偶。如己未、戊辰、戊辰、庚申,蜀王命是也。癸日庚申,以申合巳,因其主而得其朋,如己酉、癸未、癸未、庚申,起丞相命是也。运亦忌填实,不利官煞,理会不宜以火克金,使彼受制而不能合,余则吉矣。 + +有弃命保财者,四柱皆财而身无气,舍而从之,格成大贵。若透印则身赖印生而不从,有官煞则亦无从财兼从煞之理,其格不成。如庚申、乙酉、丙申、乙丑,王十万命造也。运喜伤食财乡,不宜身旺。有弃命从煞者,四柱皆煞,而日主无根,舍而从之,格成大贵。若有伤食,则煞受制而不从,有印则印以化煞而不从。如乙酉、乙酉、乙酉、甲申,李侍郎命是也。运喜财官,不宜身旺,食伤则尤忌矣。 + +有井拦成格者,庚金生三七月,方用此格。以申子辰冲寅午戌,财官印绶,合而冲之,若透丙丁,有巳午,以现有财官,而无待于冲,乃非井拦之格矣。如戊子、庚申、庚申、庚申,郭统制命也。运喜财,不利填实,余亦吉也。 + +有刑合成格者,癸日甲寅时,寅刑巳而得财官,格与合禄相似,但合禄则喜以合之,而刑合则硬以致之也。命有庚申,则木被冲克而不能刑;有戊已字,则现透官煞而无待于刑,非此格矣。如乙未、癸卯、癸卯、甲寅,十二节度使命是也。运忌填实,不利金乡,余则吉矣。 + +有遥合成格者,巳与丑会,本同一局,丑多则会巳而辛丑处官,亦合禄之意也。如辛丑、辛丑、辛丑、庚寅,章统制命是也。 + +若命是有子字,则丑与子合而不遥,有丙丁戊已,则辛癸之官煞已透,而无待于遥,另有取用,非此格矣。至于甲子遥已,转辗求俣,似觉无情,此格可废,因罗御史命,聊复存之。为甲申、甲戌、甲子、甲子,罗御史命是也。 + +若夫拱禄、拱贵、趋乾、归禄、夹戌、鼠贵、骑龙、日贵、日德、富禄、魁罡、食神时墓、两干不杂、干支一气、五行具足之类,一切无理之格,既置勿取。即古人格内,亦有成式,总之意为牵就,硬填人格,百无一是,徒误后学而已。乃若天地双飞,虽富贵亦有自有格,不全赖此。而亦能增重基格,即用神不甚有用,偶有依以为用,亦成美格。然而有用神不吉,即以为凶,不可执也。 + +其于伤官伤尽,谓是伤尽,不宜一见官,必尽力以伤之,使之无地容身,现行伤运,便能富贵,不知官有何罪,而恶之如此? + +况见官而伤,则以官非美物,而伤以制之,又何伤官之谓凶神,而见官之为祸百端乎?予用是术以历试,但有贫贱,并无富贵,未轻信也,近亦见有大贵者,不知何故。然要之极贱者多,不得不观其人物以衡之。 diff --git a/rules/sources/49_论杂格取运.md b/rules/sources/49_论杂格取运.md new file mode 100644 index 0000000..554ed3b --- /dev/null +++ b/rules/sources/49_论杂格取运.md @@ -0,0 +1,111 @@ +# 四十八(附) 论杂格取运 + +> 来源:《子平真诠》epub 机械提取,目录第 50 项,原文件 chapter-ea9eaf9e862b.xhtml。正文未作任何增删改。 + +杂格不一,大都气势偏旺,出于五行常理之外。昔人评命,泥于财官之说,四柱无财可取,则不惜遥合倒冲,牵强附会,以期合于财官,未免可嗤。命理不外乎五行,气势虽为偏旺,而偏旺之中,仍有正理可取,详《滴天髓征义》。偏旺之格,取运大都须顺其气势,虽干支喜忌,须察四柱之配合,而顺势取运,大致有定。兹就本篇所引各造。约略言之: + +曲直仁寿格 + +癸亥 乙卯乙未 壬午 + +运:甲寅癸丑 壬子 辛亥 庚戌 己酉 + +甲乙日主,支全亥卯未或寅卯辰,乃曲直仁寿格也。气势偏旺于木,宜行水木火运,官煞运最忌,财运亦不宜。丙丁日主,支全寅午戌、或巳午未,为炎上格。戊已日主,支全辰戌丑未为稼穑格。庚辛日主,支全巳酉丑或申酉戌,为从革格。壬癸日主支全甲子辰或亥子丑,为润下格。五种意义相同。 + +化气格: + +甲戌 丁卯壬寅 甲辰 + +运:戊辰己巳 庚午 辛未 壬申 癸酉 + +丁壬化木,生于春月,时逢甲辰,木之元神透出,乃化木格。气势偏于木也。化神喜行旺地,最宜东方寅卯辰比劫乡,而忌官煞,日主还原之地亦忌,其中略分别,如丁壬化木,日元壬水,行亥子丑印地,生起化神亦吉;若甲已化土,而行寅卯辰,克我化神,为大忌也。化气格有甲己化土、乙庚化金、丙辛化水、丁壬化木、戊癸化火五种,意义略同。 + +倒冲格: + +戊午 戊午戊午 戊午 + +运:己未庚申 辛酉 壬戌 癸亥 甲子 + +两神成象,而气势偏于火土,为从旺格。最宜金运,泄土之气,但火炎土燥,究嫌偏枯,宜带水之土以护之。如庚辰、辛丑等运为最佳,若见水运,如以一杯水救车薪之火。立见其灾。所谓倒冲最忌填实,即此意也。木运逆土之性,增火之焰,亦不相宜。 + +甲寅 庚午丙午 甲午 + +运:辛未壬申 癸酉 甲戌 乙亥 丙子 + +庚金无根,置之不论,气偏木火,格成炎上,最宜土运泄火之气。说见前仁寿格。 + +以上两造皆俗所谓倒冲格也。 + +朝阳格: + +戊辰 辛酉辛酉 戊子 + +运:壬戌癸亥 甲子 乙丑 丙寅 丁卯 + +此金水伤官,原无官星,气势偏于金水,以顺其性。行土金水运为美,火运为忌。带水之木尚可行,而带火之木则不宜见。此俗所谓朝阳格也。 + +合禄格: + +己未 戊辰戊辰 庚申 + +运:丁卯丙寅 乙丑 甲子 癸亥 壬戌 + +此土金食神也。比劫重重,气势偏于土金,以金运泄土之秀为最吉,水运亦美,火运为忌,木亦不美,所谓土盛木折也。俗以庚合乙为官星,称为合禄格,又不要明见,喜财以生之。取运略同。 + +合禄格: + +己酉 辛未癸未 庚申 + +运:庚午己巳 戊辰 丁卯 丙寅 乙丑 + +俗亦名之为合禄格,以申合巳中戊土为官星也。月令偏官,年上透出,时上庚印化煞为用(见论偏官篇),格正局清,有何不美?若取巳中戊土官星,岂非官煞混杂耶? + +从财格: + +庚申 乙酉 丙申己丑 + +运:丙戌丁亥 戊子 己丑 庚寅 辛卯 + +乙从庚化,不作印论,丙火临申,坐于病地,四柱无根,时上己丑又来生金,气势偏于金旺,为弃命从财格也。运宜行土金水,南方火乡最忌,木亦不利。 + +从煞格: + +乙酉 乙酉乙酉 甲申 + +运:甲申癸未 壬午 辛巳 庚辰 己卯 + +乙木无根,气势偏于金,为弃命从煞格。金运最美,水土亦吉。木运为乙木逢根,火运逆其旺势,皆忌见。与上从财格大致相同。 + +井栏叉格: + +戊子 庚申庚申 庚辰 + +运:辛酉壬戌 癸亥 甲子 乙丑 丙寅 + +此俗所谓井栏叉格。庚金乘旺泄秀,支全申子辰水局。气势偏于金水,当顺其势以取运。土金水运均美,木运亦可,行火运逆其旺势不利。 + +遥合格: + +辛丑 辛丑辛丑 庚寅 + +运:庚子己亥 戊戌 丁酉 丙申 乙未 + +此俗所谓丑遥巳格。土金成局,生于十二月,时上寅木无气,不能为用。势象偏于土金,宜土金水运,木火逆其旺势为不宜。与遥巳格取运相同也。 + +丑遥巳禄格(又名刑合): + +乙未 癸卯癸卯 甲寅 + +运:壬寅辛丑 庚子 己亥 戊戌 丁酉 + +《喜忌篇》云,“癸日进逢寅位,岁月怕戊已二方”,以寅刑出巳中戊土为格,其实乃从儿格也。气势偏于木,行运最喜木火。从格忌见比劫,而从儿有食伤引化,不忌比劫,此为不同之点。官煞大忌,印运亦忌。 + +子遥巳禄格(又名遥合格): + +甲申 甲戌甲子 甲子 + +运:乙亥丙子 丁丑 戊寅 己卯 庚辰 + +《喜忌篇》云,“甲子日再遇子时,畏庚辛申酉丑午,以子遥合巳为格”,其实月令偏财,用财损印,何必另取格局?戌藏丁火,生起财星,遇运透清为美,庚辛申酉官煞生印为忌,午冲子、丑刑戌均为忌也。 + +终 diff --git a/rules/sources/_index.md b/rules/sources/_index.md new file mode 100644 index 0000000..cba03fb --- /dev/null +++ b/rules/sources/_index.md @@ -0,0 +1,58 @@ +# 提取清单(机械提取报告) + +- epub:`子平真诠.epub` +- 目录项 / 提取文件数:50 / 50 +- 正文总字数(不含空白):31290 + +| # | 篇名 | 文件 | 段落数 | 字数 | +|---|---|---|---|---| +| 00 | 序 | `00_序.md` | 6 | 595 | +| 01 | 凡例 | `01_凡例.md` | 9 | 835 | +| 02 | 一.论十干十二支 | `02_论十干十二支.md` | 4 | 681 | +| 03 | 二、论阴阳生克 | `03_论阴阳生克.md` | 53 | 4197 | +| 04 | 三、论阴阳生死 | `04_论阴阳生死.md` | 4 | 688 | +| 05 | 四、论十干配合性情 | `05_论十干配合性情.md` | 4 | 525 | +| 06 | 五、论十干合而不合 | `06_论十干合而不合.md` | 7 | 654 | +| 07 | 六、论十干得时不旺失时不弱 | `07_论十干得时不旺失时不弱.md` | 4 | 562 | +| 08 | 七、论刑冲会合解法 | `08_论刑冲会合解法.md` | 7 | 659 | +| 09 | 八、论用神 | `09_论用神.md` | 4 | 514 | +| 10 | 九、论用神成败救应 | `10_论用神成败救应.md` | 5 | 767 | +| 11 | 十、论用神变化 | `11_论用神变化.md` | 6 | 675 | +| 12 | 十一、论用神纯杂 | `12_论用神纯杂.md` | 4 | 227 | +| 13 | 十二、 论用神格局高低 | `13_论用神格局高低.md` | 7 | 656 | +| 14 | 十三、论用神因成得败因败得成 | `14_论用神因成得败因败得成.md` | 4 | 321 | +| 15 | 十四、论用神配气候得失 | `15_论用神配气候得失.md` | 9 | 531 | +| 16 | 十五、论相神紧要 | `16_论相神紧要.md` | 5 | 469 | +| 17 | 十六、论杂气如何取用 | `17_论杂气如何取用.md` | 7 | 805 | +| 18 | 十七、论墓库刑冲之说 | `18_论墓库刑冲之说.md` | 6 | 566 | +| 19 | 十八、论四吉神能破格 | `19_论四吉神能破格.md` | 3 | 213 | +| 20 | 十九、论四凶神能成格 | `20_论四凶神能成格.md` | 2 | 127 | +| 21 | 二十、论生克先后分吉凶 | `21_论生克先后分吉凶.md` | 9 | 559 | +| 22 | 二十一、论星辰无关格局 | `22_论星辰无关格局.md` | 4 | 570 | +| 23 | 二十二、论外格用舍 | `23_论外格用舍.md` | 4 | 253 | +| 24 | 二十三、论宫分用神配六亲 | `24_论宫分用神配六亲.md` | 4 | 257 | +| 25 | 二十四、论妻子 | `25_论妻子.md` | 6 | 855 | +| 26 | 二十五、论行运 | `26_论行运.md` | 13 | 727 | +| 27 | 二十六、论行运成格变格 | `27_论行运成格变格.md` | 6 | 338 | +| 28 | 二十七、论喜忌干支有别 | `28_论喜忌干支有别.md` | 3 | 264 | +| 29 | 二十八、论支中喜忌逢运透清 | `29_论支中喜忌逢运透清.md` | 3 | 383 | +| 30 | 二十九、论时说拘泥格局 | `30_论时说拘泥格局.md` | 9 | 318 | +| 31 | 三十、论时说以讹传讹 | `31_论时说以讹传讹.md` | 5 | 501 | +| 32 | 三十一、论正官 | `32_论正官.md` | 6 | 628 | +| 33 | 三十二、论正官取运 | `33_论正官取运.md` | 7 | 352 | +| 34 | 三十三、论财 | `34_论财.md` | 11 | 899 | +| 35 | 三十四、论财取运 | `35_论财取运.md` | 7 | 244 | +| 36 | 三十五、论印绶 | `36_论印绶.md` | 11 | 732 | +| 37 | 三十六、论印绶取运 | `37_论印绶取运.md` | 8 | 249 | +| 38 | 三十七、论食神 | `38_论食神.md` | 11 | 522 | +| 39 | 三十八、论食神取运 | `39_论食神取运.md` | 5 | 190 | +| 40 | 三十九、论偏官 | `40_论偏官.md` | 11 | 742 | +| 41 | 四十、论偏官取运 | `41_论偏官取运.md` | 6 | 253 | +| 42 | 四十一、论伤官 | `42_论伤官.md` | 11 | 899 | +| 43 | 四十二、论伤官取运 | `43_论伤官取运.md` | 6 | 223 | +| 44 | 四十三、论阳刃 | `44_论阳刃.md` | 6 | 637 | +| 45 | 四十四、论阳刃取运 | `45_论阳刃取运.md` | 3 | 112 | +| 46 | 四十五、论建禄月劫 | `46_论建禄月劫.md` | 14 | 796 | +| 47 | 四十六、论建禄月劫取运 | `47_论建禄月劫取运.md` | 6 | 322 | +| 48 | 四十七、论杂格 | `48_论杂格.md` | 14 | 1503 | +| 49 | 四十八(附) 论杂格取运 | `49_论杂格取运.md` | 54 | 1695 | diff --git a/rules/tests/README.md b/rules/tests/README.md new file mode 100644 index 0000000..9c06a7e --- /dev/null +++ b/rules/tests/README.md @@ -0,0 +1,71 @@ +# 规则库命例验证(黄金测试集) + +对蒸馏规则库的忠实度验证:**不看分格文件命例栏已标注的「示范规则」,只用总纲路由器 + 规则条文的条件字段,对每个命例独立重推**,再与原书判定比对。 + +## 数据 + +`golden/` 下 9 个 YAML,每格一个,共 **92 个命例**(全部出自《子平真诠》原书,四柱照录原文)。schema: + +```yaml +- id: 官-M01 # 格码-M序号 + name: 薛相公 + pillars: ["甲申","壬申","乙巳","戊寅"] + book_verdict: "原书判定要点" + expected: "可机读的期望结论" + source: 第三十一篇·论正官 + derived: "独立重推结论(复验时全部重写)" + result: match | mismatch | unverifiable + note: "规则问题 / 回修状态 / 传抄存疑" +``` + +## 验证结果 + +第一轮(2026-10-06):92 例 → 87 match / 2 mismatch / 3 unverifiable,抓出 11 处规则措辞问题并回修。 + +**第二轮复验**(同日,回修后全部重推):92 例 → **88 match / 1 mismatch / 3 unverifiable**。禄-M02(李知府)由 mismatch 转为 match,第一轮 11 处回修全部经复验确认「已消解」,无新增 mismatch。 + +| 格 | 总数 | match | mismatch | unverifiable | 第二轮变化 | +|---|---|---|---|---|---| +| 正官 | 6 | 6 | 0 | 0 | — | +| 财 | 13 | 13 | 0 | 0 | — | +| 印绶 | 13 | 13 | 0 | 0 | — | +| 食神 | 10 | 10 | 0 | 0 | — | +| 偏官 | 8 | 8 | 0 | 0 | — | +| 伤官 | 11 | 9 | 0 | 2 | — | +| 阳刃 | 5 | 5 | 0 | 0 | — | +| 建禄月劫 | 13 | 12 | 0 | 1 | 禄-M02 → match | +| 杂格 | 13 | 12 | 1 | 0 | — | +| **合计** | **92** | **88** | **1** | **3** | | + +- unverifiable 3 例均为原书传抄缺陷:伤-M04「申午」干支失配、伤-M08 仅三柱疑脱时柱、禄-M12「庚写」干支失配。 +- mismatch 1 例(杂-M07 起丞相):原书论杂格与取运篇两说并存(取运篇作者自按偏官格印化煞解、斥合禄说),属原书文本分歧而非蒸馏问题,命例栏已存疑照录,规则不修。 + +## 验证驱动的规则修正(共 16 处) + +第一轮 11 处(#1–11),第二轮复验追加 5 处(#12–16): + +| # | 位置 | 修正 | +|---|---|---| +| 1 | `18_建禄月劫格.md` R-禄-03 | 「财印随官而透」→「透干或支藏有气皆可」(原条文推不出书中李知府造,唯一真规则 bug) | +| 2 | `00_总纲_取格.md` 第三步 | 补「辨主从」:透干与本气相生、本气有力者仍为「变而不失本格」(马参政/何参政两造双向证据) | +| 3 | `00_总纲_取格.md` 第六步 | 杂格闸门补「从化门」(日干合化、化神当令、支局全者先论从化) | +| 4 | `00_总纲_取格.md` R-纲-07 | 同 #2,补辨主从正文 | +| 5 | `00_总纲_取格.md` R-纲-08 | 条件补六合、半合拱局(卯戌化火、寅午拱火) | +| 6 | `14_食神格.md` R-食-09 | 补排他:煞印同透弃食就煞印者不为破(常国公造),消与 R-食-03 的判定冲突 | +| 7 | `14_食神格.md` R-食-04 | 「四柱无财」→「无财透干,藏支不碍」(胡会元造) | +| 8 | `16_伤官格.md` R-伤-08 | 同上修正「无财」;并补夏阁老造存疑(仅三柱,与「身弱透印」字面有张力) | +| 9 | `16_伤官格.md` R-伤-21 | 条件放宽:金水偏盛觉寒不限金水日元(都统制造为戊日酉月) | +| 10 | `19_杂格.md` R-杂-17 / R-杂-18 | 补「印被合化不以为破」(王十万造)、「比劫无根虚浮不碍其从」(李侍郎造) | +| 11 | `17_阳刃格.md` R-刃-12 / `11_正官格.md` R-官-05 | 补「贪合忘克」优先级;补「会合解刑冲者不破」豁免 | +| 12 | `00_总纲_取格.md` R-纲-10 | 补「透干非月令所藏而以月令为库根者亦作透出取用」(汪学士造:辛生未月透甲)——第一轮已记录但当轮漏改,财格复验抓出后落实 | +| 13 | `00_总纲_取格.md` 第六步② | 无用门措辞与 R-杂-01 对齐:财透而无根仅一位、及食神透干,不阻外格之门 | +| 14 | `11_正官格.md` R-官-05 | 豁免扩为「刑冲破害得会合而解者不破」(官-M05 子酉破得辰酉合解) | +| 15 | `11_正官格.md` 命例栏 | 官-M03 示范编号改标 R-官-04;官-M04 补「支会水局疑为木局之讹」存疑 | +| 16 | `14_食神格.md` 存疑注 | 补录舒尚书造「职」衍字 | + +## 遗留观察(不影响判定,记录于各 YAML 的 note) + +- 脱脱丞相造路由归属(偏官格 vs 食神格 R-食-03)无明文,两线同归成格; +- 沈郎中造「去煞留官」与 R-附-23 有张力(原已存疑); +- 部分规则未量化「制须紧贴」「制神有力」的边界,远近只影响高低(合 R-纲-14); +- 杂-M11/M12(刑合、遥合)属「作者存外格名目、按正格实质取运」型,路由张力已记 note。 diff --git a/rules/tests/golden/11_正官格.yaml b/rules/tests/golden/11_正官格.yaml new file mode 100644 index 0000000..d8913db --- /dev/null +++ b/rules/tests/golden/11_正官格.yaml @@ -0,0 +1,55 @@ +# 黄金命例:正官格 来源:11_正官格.md 命例栏 +- id: 官-M01 + name: "薛相公" + pillars: ["甲申", "壬申", "乙巳", "戊寅"] + book_verdict: "壬印戊财并透,以日主乙隔之,水与土两不相碍,故大贵" + expected: "正官格/成/用神=申中庚金正官;相神=壬印戊财并透(财生官、印护官),中有日主相隔两不相碍,大贵" + source: "第三十一篇·论正官" + derived: "正官格/成/月令申本气庚金为乙木正官定格(第二步);申藏庚壬戊,本气庚不透而透壬印戊财(皆申中所藏),依回修后总纲第三步辨主从——戊财生庚官(透干生本气)、庚官生壬印(本气生透干)、本气庚当令有力,为变而不失本格,本气正官仍主格,财印为相为辅;年月日时干序甲壬乙戊,壬印与戊财之间隔日主乙,不相克不相合,触发R-官-02(财印并透两不相碍)→成格大贵" + result: "match" + note: "时支寅冲月支申、寅巳申三刑并存,R-官-05条件被触发;日支巳与申六合。上一轮指出的两处规则措辞问题回修后已消解:①R-官-05已明补『但刑冲得会合而解者不破』豁免,且正引本造(薛相公造寅申冲得巳申合解仍成)为例,豁免顺序不再缺失;②总纲第三步已补『辨主从』(透干与本气相生、本气当令有力则本气仍主格),本造透壬透戊皆与庚官相生,路由直接命中变而不失本格(第十篇·论用神变化乙生申月透壬透戊、财能生官之例正在变而不失本格段),无须再绕引R-纲-07。判定与原书大贵一致。" +- id: 官-M02 + name: "无名" + pillars: ["壬戌", "丁未", "戊甲", "乙卯"] + book_verdict: "杂气正官透干会支,本最贵格;然壬财丁印二者相合,以孤官无辅论,不上七品" + expected: "正官格(杂气)/成而降等/用神=未中乙木正官(透干、卯未会支);壬财丁印并透而相合,两失其用,孤官无辅,不上七品" + source: "第三十一篇·论正官" + derived: "正官格(杂气)/成而降等/日干戊,月支未为杂气(四墓),本气己土劫财不透,藏干丁印乙官并透;依总纲第三步及R-纲-10杂气取用,透干会支取其清者用之——乙官透干、时支卯与月支未半合木(官)局(R-纲-08回修后已明补半合拱局亦足参变化),定格杂气正官;年干壬偏财与月干丁正印相邻而丁壬相合,触发R-官-12(财印并透而相合,两失其用,孤官无辅)→成格降等,不上七品" + result: "match" + note: "日柱『戊甲』干支失配(甲为天干不能居日支),原书即如此,分格文件已存疑照录,属原书文本问题,无法消解;日干戊可定,乙=正官、丁=正印、壬=偏财十神自洽,核心判定(丁壬合、卯未半合)不涉日支,仍可验证。回修后R-纲-08补六合半合,本造卯未半合官局之会支依据由类推转为明文。新观察(轻微路由歧义,不影响判定):第二步比劫分支字面可捕获四墓月本气为比劫者(戊生未月本气己土劫财),须借第三步/R-纲-10杂气取用归正,而建禄月劫路由亦以透干别取官为用,两线同归。年支戌与月支未相刑、与时支卯六合,原书未论,不影响结论。" +- id: 官-M03 + name: "金状元" + pillars: ["乙卯", "丁亥", "丁未", "庚戌"] + book_verdict: "并用财印,无伤官、不杂煞,去其忌而存其喜,大贵" + expected: "正官格(会支化印)/成/亥水正官为用神,亥卯未会印局而透庚财为相,化官为印而透财,无伤官不杂煞,大贵" + source: "第三十一篇·论正官" + derived: "正官格(化官为印)/成/月令亥本气壬水为丁火正官定格(第二步);亥藏壬甲,无他干透出,第三步不触发;年卯月亥日未三合木局,依总纲第四步及R-纲-08会支变化,月令之气随局而化、格随所化,化官为印(第十篇·论用神变化正引此例:丁生亥月支全卯未则化为印);时干庚正财透出,触发R-官-04(化官为印而透财)→成格甚秀,大贵之格;天干乙丁丁庚,无伤官透干、无七煞混杂,符存喜去忌" + result: "match" + note: "标注问题仍未消解:按条件字段独立路由最贴合R-官-04(化官为印而透财),而分格文件命例栏仍标示范R-官-02——原书此例紧承『若化官为印而透财,则又为甚秀,大贵之格也』句下,建议改标R-官-04(兼R-官-01存喜去忌),本轮回修未及此处。年干乙偏印与时干庚正财年时遥隔,不作合论,R-官-12不触发。日支未与时支戌相刑(兼破),原书未论;未入亥卯未之会,依R-官-11会合解刑,不影响结论。" +- id: 官-M04 + name: "宣参国" + pillars: ["己卯", "辛未", "壬寅", "辛亥"] + book_verdict: "未中己官透干用清,支会水局(伤),两辛印解之,遇伤佩印" + expected: "正官格/救(遇伤佩印,败中有成)/用神=未中己土正官透干;支会伤官之局为忌,两辛正印透干制伤护官为相" + source: "第三十一篇·论正官" + derived: "正官格(杂气)/救(成)/月令未本气己土为壬水正官且透年干,透干用清,依总纲第三步及R-纲-10一透一用,定格杂气正官;年卯月未时亥三合木局、日寅时亥又六合化木(R-纲-08回修后六合亦足参变化),木为壬水伤食(卯中乙=伤官),支会伤官之局,触发R-官-06(遇伤带忌);月时两辛正印并透,触发R-官-08(遇伤佩印:官格含藏干透出取清者,支会伤官之局,透印制伤护官)→救应成格;无财星透干,R-官-07不触发" + result: "match" + note: "文本问题仍未消解:命例栏『支会水局』照录原书(sources/32_论正官.md同),但与四柱不符——亥卯未所会为木局非水局,且对壬水日主水为比劫非伤,与栏内自注『(伤)』及『遇伤佩印』判定自相矛盾,『水』疑为『木』之传抄讹字;上一轮建议规则库加校注,本轮回修未落实,分格文件命例栏此处仍无存疑校注(建议照M02之例补注,不改原文)。判定不受影响。" +- id: 官-M05 + name: "李参政" + pillars: ["庚寅", "乙酉", "甲子", "戊辰"] + book_verdict: "甲用酉官,庚金七煞混杂,乙劫合庚,合煞留官取清" + expected: "正官格/救(混煞取清,败中有成)/用神=酉中辛金正官;庚煞透干混杂为忌,月干乙劫财合庚煞,合煞留官为相" + source: "第三十一篇·论正官" + derived: "正官格/救(成)/月令酉专气辛金为甲木正官定格(第二步,子午卯酉专气无藏干变化);年干庚七煞透出混官,触发R-官-06(混煞带忌);月干乙劫财与庚相邻而乙庚相合,触发R-官-09(干透七煞混杂,另有天干与煞相合,劫财合煞)→合煞留官取清,救应成格" + result: "match" + note: "日支子与月支酉相破,R-官-05条件含『破』,字面被触发;时支辰与酉六合可解。上一轮指出的豁免顺序问题回修后已部分消解:R-官-05已补『但刑冲得会合而解者不破』豁免;然豁免字面仅赅『刑冲』,未明及『破害』,本案子酉破得辰酉合解仍须类推R-官-11(第八篇·论刑冲会合解法『有辰则酉与辰合而不冲』之例亦仅言冲)——建议R-官-05豁免措辞扩为刑冲破害得会合而解者不破。判定不受影响,与原书一致。" +- id: 官-M06 + name: "范太傅" + pillars: ["丁丑", "壬寅", "己巳", "丙寅"] + book_verdict: "支具巳丑会金伤官,丙丁并透解之;以丁合壬而财去、以丙制伤而官清,无情而愈有情,大贵" + expected: "正官格/救(印制伤而财有制合,败中有成,大贵)/用神=寅中甲木正官;巳丑会金伤官为忌、壬财坏印为嫌;丁印合壬去财、丙印制伤存官为相,无情而愈有情" + source: "第三十一篇·论正官" + derived: "正官格/救(成,大贵)/月令寅本气甲木为己土正官定格(第二步);寅藏甲丙戊,本气甲不透而透丙印(丙火长生在寅),依回修后总纲第三步辨主从——甲官生丙印(本气生透干)、本气甲当令有力,为变而不失本格,正官格仍立、丙印为相;年丑日巳半会金局(R-纲-08回修后明补半合拱局),金为己土伤官,支会伤官成立,触发R-官-06;丁偏印丙正印并透制伤,触发R-官-08;然月干壬正财透出坏印,字面触发R-官-07(官格透伤用印忌再见财);唯年干丁与月干壬相邻而丁壬相合,一印合财去之、一印制伤存官,触发R-官-10(支会伤官、透印为制、复透财、印星两透,以一印合财、一印制伤)→救应反主大贵,兼应R-官-13(无情而愈有情)" + result: "match" + note: "月支寅与日支巳相刑(兼害),原书未论;巳入巳丑之会,依R-官-11及R-官-05新补豁免会合解刑。丁合壬后丙印独任制伤,机制与R-官-10条件逐条吻合,仍为本格命例中规则条件与命例对应最严密者。回修后总纲第三步辨主从与R-纲-08半合两处明文,使本造『本格仍立』与『支会伤官』两步推导由类推转为直引。" diff --git a/rules/tests/golden/12_财格.yaml b/rules/tests/golden/12_财格.yaml new file mode 100644 index 0000000..057671e --- /dev/null +++ b/rules/tests/golden/12_财格.yaml @@ -0,0 +1,118 @@ +# 黄金命例:财格 来源:12_财格.md 命例栏 +- id: 财-M01 + name: 葛参政 + pillars: ["壬申", "壬子", "戊午", "乙卯"] + book_verdict: "财虽两透而露,唯其生官(时透乙官),所以不忌" + expected: "财格/成/财旺生官,露不忌;用神子水财,相神乙木官星" + source: "第三十三篇·论财" + derived: "戊日子月,子本气癸为戊日正财,总纲第二步定财格(子为专气,第三步藏干变化不涉);年月两壬偏财并透为露,时透乙正官坐卯通根,申子半合财局而财旺,戊自坐午刃身强,天干不透伤官、不混七煞;R-财-05 财旺生官条件全触发成格,兼触 R-财-03「财旺生官则露不忌」——两透之露财得官护,不以为病" + result: "match" + note: "" +- id: 财-M02 + name: 杨待郎 + pillars: ["壬寅", "壬寅", "庚辰", "辛巳"] + book_verdict: "财用食生,身强不露官,略带一位比劫,益觉有情" + expected: "财格/成/财用食生;用神寅木财,相神壬水食神" + source: "第三十三篇·论财" + derived: "庚日寅月,寅本气甲为庚日偏财,总纲第二步定财格;第三步(寅藏甲丙戊):本气甲不透,而透干壬壬辛均非寅之藏干,透干变化不触发,格仍其本;两壬食神透出生财,庚坐辰得印生、时支巳为庚之长生、辛劫一位帮身,身强;天干不透官(巳中丙煞亦藏而不透);R-财-06 条件(透食生财、身强、不露官、略带一位比劫)全触发,成格" + result: "match" + note: "「待郎」原文如此,疑为「侍郎」传抄异文(分格文件已标注存疑)" +- id: 财-M03 + name: 曾参政 + pillars: ["乙未", "甲申", "丙申", "庚寅"] + book_verdict: "财格佩印,印取贵(财印不相碍)" + expected: "财格/成/佩印取贵;用神申金财,相神甲乙印星" + source: "第三十三篇·论财" + derived: "丙日申月,申本气庚为丙日偏财,总纲第二步定财格;第三步本气庚自透时干,格仍其本;甲乙印透年月、庚财在时——甲庚之间隔日干丙(丙制庚,庚不能越而克甲,参 R-附-10 间隔之理),乙庚分居年时、隔位太远且系作合而非相克(R-附-11),财印两不相碍;R-财-07 财格佩印条件全触发,成格取贵" + result: "match" + note: "" +- id: 财-M04 + name: 无名 + pillars: ["乙未", "己卯", "庚寅", "辛巳"] + book_verdict: "乙与己两不相能,即有好处,小富而已" + expected: "财格/成而降低(降格)/财格佩印而财印相并相克,小富不贵" + source: "第三十三篇·论财" + derived: "庚日卯月,卯本气乙为庚日正财,总纲第二步定财格(卯为专气,无藏干变化);乙财透年干、己印透月干,佩印之形具,而乙己年月紧贴相克;R-财-21 财印相并两不相能条件触发,降格,小富不贵" + result: "match" + note: "R-财-21 原文即引此造为例;该条「然财印宜相并」之「宜」字与下文「两不相能」语气不协,分格文件已标注存疑" +- id: 财-M05 + name: 吴榜眼 + pillars: ["庚戌", "戊子", "戊子", "丙辰"] + book_verdict: "庚与丙隔两戊而不相克,食与印两不相碍" + expected: "财格/成/食印兼用两不相碍,贵格;用神子水财,相神庚金食神、丙火偏印" + source: "第三十三篇·论财" + derived: "戊日子月,子本气癸为戊日正财,总纲第二步定财格;年透庚食神、时透丙偏印,中隔月日两戊,丙不能克庚,食印两不相碍;R-财-08 财用食印兼用条件全触发,成格贵" + result: "match" + note: "" +- id: 财-M06 + name: 平江伯 + pillars: ["壬辰", "乙巳", "癸巳", "辛酉"] + book_verdict: "食印虽相克,而存巳中戊官,去食护官" + expected: "财格/救/去食护官,贵格;用神巳火财,相神辛金偏印(去食存巳中戊土暗官)" + source: "第三十三篇·论财" + derived: "癸日巳月,巳本气丙为癸日正财,总纲第二步定财格;第三步(巳藏丙戊庚):本气丙不透,透干乙食、辛枭均非巳之藏干,透干变化不触发,格仍其本;乙食透月、辛枭透时,辛坐酉禄且两巳一酉半合金局,金旺木衰,食印相克成立;巳中戊土暗官畏乙食克之,辛印去食正护暗官;R-财-18 条件(月令财+食印兼用相克+月令有暗官+去食存官)触发,败中有救成贵" + result: "match" + note: "乙辛之间隔日干癸、非紧贴之克,「食印相克」实凭辛坐酉禄、巳酉合金、金旺木衰而论;R-财-18 条件未言明相克是否须紧贴,条文可再严密——本轮回修未涉 R-财-18,此覆盖问题仍未消解" +- id: 财-M07 + name: 汪学士 + pillars: ["甲子", "辛未", "辛酉", "壬辰"] + book_verdict: "甲透未库,逢辛为劫,壬伤化劫生财" + expected: "财格/救/伤官化劫生财;用神甲木财(通根未库),相神壬水伤官" + source: "第三十三篇·论财" + derived: "辛日未月,未本气己为辛日偏印,总纲第二步本气路由本入印绶格;第三步藏干变化:未藏己丁乙,透干甲财、壬伤均非未之藏干,透干变化字面不触发(回修新增之辨主从亦无从适用——甲非所透之藏干,且甲己为克合非相生);唯甲财透干通根未库(未为木库,甲逢未作通根论,R-附-18),据书判「甲透未库」之旨依杂气透干取用定财格;两辛并透、日坐酉禄,比劫强而独甲财弱(比劫争财为忌),时透壬伤官一位化劫生财;R-财-15 条件触发,败中有救成格" + result: "match" + note: "路由缺口仍未消解:甲非未之藏干,总纲第三步/R-纲-07 仅言「月令藏干透出」,R-纲-10 亦仅言「透干会支取其清者」,均未涵盖「透库神阳干(甲根于未库)」取财一径。tests/README 回修记录第 6 条称 R-纲-10 已补「透干非月令所藏而以月令为库根者亦作透出取用」,核当前 R-纲-10 正文并无此语——该处回修未落实进规则条文(README 记录与条文不符),R-财-15 条件亦仍直云「月令为财」未注明杂气木库取财之路。又书判「逢辛为劫」,辛于辛日实为比肩(比劫浑言)" +- id: 财-M08 + name: 毛状元 + pillars: ["乙酉", "庚辰", "甲午", "戊辰"] + book_verdict: "乙庚相合,合煞存财" + expected: "财格/救/合煞存财,贵格;用神辰土财,相神乙木(合去庚煞)" + source: "第三十三篇·论财" + derived: "甲日辰月,辰本气戊为甲日偏财,总纲第二步定财格;第三步本气戊自透时干,杂气财格定;庚七煞透月干,财生煞攻身为忌;年干乙与庚年月紧贴作合(R-附-09 忌神因合化吉),合去其煞而存财;R-财-16 条件全触发,败中有救成贵" + result: "match" + note: "" +- id: 财-M09 + name: 李御史 + pillars: ["庚辰", "戊子", "戊寅", "甲寅"] + book_verdict: "庚制甲煞,制煞生财" + expected: "财格/救/制煞生财,贵格;用神子水财,相神庚金食神" + source: "第三十三篇·论财" + derived: "戊日子月,子本气癸为戊日正财,总纲第二步定财格;甲七煞透时干、坐寅得禄,子财生煞攻身为忌;年透庚食神制甲煞,煞不攻身而财得生;R-财-17 条件触发,败中有救成贵" + result: "match" + note: "庚在年干、甲在时干,中隔月日两戊,遥制力薄;R-财-17 条件未言制煞是否须紧贴,书判仍取制煞生财成格(先后远近只影响高低,见总纲 R-纲-14)——本轮回修未涉 R-财-17,此覆盖问题仍未消解" +- id: 财-M10 + name: 赵待郎 + pillars: ["乙丑", "丁亥", "己亥", "丙子"] + book_verdict: "冬土逢煞印,化煞而即以解冻,又不露财杂印,所以贵" + expected: "财格/救/印化党煞,冬土逢之尤贵;用神亥水财,相神丙丁印星" + source: "第三十三篇·论财" + derived: "己日亥月,亥本气壬为己日正财,总纲第二步定财格;第三步(亥藏壬甲):本气壬不透,透干乙煞、丁枭、丙印均非亥之藏干(甲官藏亥不透),透干变化不触发,格仍其本;乙七煞透年,地支丑亥亥子寒水成势,财党煞攻身为忌;月透丁枭、时透丙印,印化煞生身,冬土逢火兼解冻之功;天干无壬癸透出,不露财杂印;R-财-19 条件全触发,败中有救成贵" + result: "match" + note: "「待郎」原文如此,疑为「侍郎」传抄异文(分格文件已标注存疑)" +- id: 财-M11 + name: 林尚书 + pillars: ["丙寅", "癸巳", "癸未", "壬戌"] + book_verdict: "癸生巳月,单透财而贵,月令有暗官" + expected: "财格/成/月令暗官,单透财亦贵;用神巳火财(巳中戊土暗官)" + source: "第三十三篇·论财" + derived: "癸日巳月,巳本气丙为癸日正财,总纲第二步定财格;第三步本气丙自透年干(坐寅长生),单透财一位;巳中戊土暗官与丙财同宫,财透则暗生其官;R-财-09 条件(癸日生巳月、单透财)全触发,成格贵" + result: "match" + note: "天干比劫并见(月透癸比、时透壬劫),比劫争财之嫌未被 R-财-09 条件覆盖(条件仅言癸日巳月、单透财);书判仍贵,条件与判定不冲突但条文覆盖不全——本轮回修未涉 R-财-09,仍未消解" +- id: 财-M12 + name: 王太仆 + pillars: ["丙辰", "癸巳", "壬戌", "壬寅"] + book_verdict: "壬生巳月,透丙藏戊,弃煞就财而贵" + expected: "财格/成/弃煞就财;用神巳中丙火财(弃巳中戊土煞)" + source: "第三十三篇·论财" + derived: "壬日巳月,巳本气丙为壬日偏财,总纲第二步定财格;第三步本气丙自透年干,巳中戊煞藏而不透,透财藏煞,弃煞就财;R-财-10 条件全触发,成格贵" + result: "match" + note: "天干比劫并透(月透癸劫、时透壬比),与财-M11 同,比劫之嫌未被 R-财-10 条件覆盖,书判仍贵——本轮回修未涉 R-财-10,仍未消解" +- id: 财-M13 + name: 一尚书 + pillars: ["丙辰", "丙申", "丙午", "壬辰"] + book_verdict: "劫刃太重,弃财就煞,变之又变" + expected: "财格之变格/救(变格成)/弃财就煞;用神转取壬水七煞" + source: "第三十三篇·论财" + derived: "丙日申月,申本气庚为丙日偏财,总纲第二步定财格;第三步:本气庚不透而时透壬煞(申中壬水长生),按回修后辨主从——透干壬为本气庚所生、且申月庚当令有力,属「变而不失本格」,本气财仍主格、壬煞为兼,路由不出财格;年月两丙比肩并透、日坐午刃,劫刃太重,财被劫夺不堪为用,壬煞坐辰通根水库(R-附-19);入财格后 R-财-04 条件(月令财+劫刃太重+透七煞)全触发,弃财不用转以煞为用神,变之又变,变格成" + result: "match" + note: "回修后第三步「辨主从」措辞与此造路由相容:壬为庚所生、本气当令有力,透煞不夺本气主格,与书判「变之又变」经 R-财-04 变格处理一致,无新问题" diff --git a/rules/tests/golden/13_印绶格.yaml b/rules/tests/golden/13_印绶格.yaml new file mode 100644 index 0000000..ecbce83 --- /dev/null +++ b/rules/tests/golden/13_印绶格.yaml @@ -0,0 +1,130 @@ +# 黄金命例:印绶格 来源:13_印绶格.md 命例栏 +- id: 印-M01 + name: "张参政" + pillars: ["丙寅", "戊戌", "辛酉", "戊子"] + book_verdict: "印格透官,身旺印强、官星清纯,贵" + expected: "印绶格/成/官印相生:用神月令戌中戊印,相神丙官,官星清纯" + source: "第三十五篇·论印绶" + derived: "第一步定月令戌;第二步辛日对戌本气戊→正印,印绶格;第三步本气戊月时两透,格不随他干变;年干透丙正官(根于寅),丁煞藏戌库不透,官星清纯;第四步寅戌拱午(半合缺中神),火气助官生印、不化印气,格不变。辛坐酉禄身旺,土旺印强。R-印-03 条件(月令为印、透正官)触发→印绶格/成/用戊印、相神丙官。" + result: "match" + note: "上一轮指出寅戌拱午之半合拱局为 R-纲-08 所未覆盖;回修后 R-纲-08 已补『六合与半合拱局力稍逊,亦足参变化,合全局观之』,此处半合火气仅助官印、不足以化格,与书判不作变格一致——回修后已消解。" + +- id: 印-M02 + name: "朱尚书" + pillars: ["丙戌", "戊戌", "辛未", "壬辰"] + book_verdict: "印格透官带伤,壬伤被戊制,不伤官,贵" + expected: "印绶格/成(成格而贵)/透官带伤、伤被印制:用神戌中戊印,相神丙官,戊制壬护官" + source: "第三十五篇·论印绶" + derived: "第一步定月令戌;第二步辛日对戌本气戊→正印;第三步本气戊月干透出,年干丙正官透,时干壬伤官透(坐辰得根);月干戊克时干壬,伤被印制不碍官。R-印-04 条件(月令为印、透官、伤食被他干所制)触发→印绶格/成而贵。" + result: "match" + note: "月干戊与时干壬隔日主辛,按总纲 R-纲-14 生克先后阻隔之义制力有隔,规则条件未言阻隔限制,原书直判『壬为戊制』,结果一致,记此备查(本轮回修未涉及,仍存)。" + +- id: 印-M03 + name: "临淮侯" + pillars: ["乙亥", "己卯", "丁酉", "壬寅"] + book_verdict: "印格透官带食,己食被乙制,不碍官,贵" + expected: "印绶格/成(成格而贵)/透官带食、食被印制:用神卯中乙印,相神壬官,乙制己护官" + source: "第三十五篇·论印绶" + derived: "第一步定月令卯;第二步丁日对卯本气乙→偏印,正偏同格(R-印-01)定印绶格;第三步本气乙年干透出,时干壬正官透(根于年支亥),月干己食神透;年干乙克月干己,食被印制不碍官。R-印-04 条件触发→印绶格/成而贵。" + result: "match" + note: "亥卯半合木局、寅亥六合皆助印,印愈旺(R-纲-08 回修已覆盖半合六合,此处会合不化印气,格不变);不改变判定。" + +- id: 印-M04 + name: "李状元" + pillars: ["戊戌", "乙卯", "丙午", "乙亥"] + book_verdict: "身强印旺,用伤食泄秀,贵" + expected: "印绶格/成/伤食泄秀:用神卯中乙印,相神戊食泄身" + source: "第三十五篇·论印绶" + derived: "第一步定月令卯;第二步丙日对卯本气乙→正印;第三步本气乙月时两透,印旺;第四步月支卯与年支戌六合化火(R-纲-08 已补六合),六合力稍逊、乙印双透当令有力,合全局观之印气不夺,格不随化;丙坐午刃、火局助身,身强印旺成立;年干戊食神透(坐戌得根)泄身成秀。R-印-05 条件(身强印旺、透伤食泄身)触发→印绶格/成/用乙印、相神戊食。" + result: "match" + note: "上一轮指出卯戌六合化火(印化劫)为 R-纲-08 未覆盖之缝隙;回修后 R-纲-08 已补六合(如卯戌化火),判以『力稍逊、合全局观之』——本造乙印两透当令,六合并火不夺印格,与书判一致,回修后已消解;时支亥与卯半合木,印愈旺。" + +- id: 印-M05 + name: "茅状元" + pillars: ["己巳", "癸酉", "癸未", "庚申"] + book_verdict: "印格用煞,身轻印重,贵" + expected: "印绶格/成/煞印相生:用神酉中辛印,相神己煞,身轻印重为有情" + source: "第三十五篇·论印绶" + derived: "第一步定月令酉;第二步癸日对酉本气辛→偏印,正偏同格定印绶格;第三步时柱庚申、巳酉半合金局,印重;癸坐未无根,仅月干癸比、申中壬劫微根,身轻印重成立;年干己七煞透(根于巳未)生印。R-印-06 条件(透煞、身印一轻一重)触发→印绶格/成/用辛印、相神己煞。" + result: "match" + note: "" + +- id: 印-M06 + name: "马参政" + pillars: ["壬寅", "戊申", "壬辰", "壬寅"] + book_verdict: "印格用煞,身重印轻,贵" + expected: "印绶格/成/煞印相生:用神申中庚印,相神戊煞,身重印轻为有情" + source: "第三十五篇·论印绶" + derived: "第一步定月令申(四长生,藏庚壬戊);第二步壬日对申本气庚→偏印,正偏同格定印绶格;第三步本气庚不透而月干透戊——按回修后总纲第三步/R-纲-07 所补『辨主从』:透干戊煞生本气庚印(透干生本气),本气庚当令有力,为变而不失本格,本气仍主格、戊煞为相(规则正文即据本造核:『壬生申月透戊,煞生印而印格用煞』);年时三壬并透、日支辰为水库、申辰拱水(R-纲-08 已补半合拱局)助身,身重印轻成立。R-印-06 条件(透煞、身印一轻一重)触发→印绶格/成/用庚印、相神戊煞。" + result: "match" + note: "上一轮所指两点规则缺口,回修后均已消解:①路由张力——本气庚不透而透戊煞,旧版 R-纲-07 字面『格随透干变』偏向偏官格,与书判『印格用煞』相左;回修后总纲第三步与 R-纲-07 补『辨主从』(透干与本气相生、本气当令有力者本气主格,透干为相为兼),且以本造为核验例,印格用煞成立。②申辰拱水之半合拱局,R-纲-08 已补『力稍逊亦足参变化』,此处拱水仅助身、不夺印格。回修后已消解。" + +- id: 印-M07 + name: "汪侍郎" + pillars: ["辛酉", "丙申", "壬申", "辛亥"] + book_verdict: "印多用财,印重身强、财根深,贵" + expected: "印绶格/成/印多用财:用神申中庚印,相神丙财抑印,财星根深" + source: "第三十五篇·论印绶" + derived: "第一步定月令申;第二步壬日对申本气庚→偏印,正偏同格定印绶格;第三步年时两辛并透(辛非申藏干,正印透,正偏同格),印重;壬坐申长生、时支亥禄,身强;月干丙偏财透(非申藏干,透干自立为相)抑印之太过。R-印-08 主体条件(印重身强、透财抑印)触发→印绶格/成/印多用财、相神丙财。" + result: "match" + note: "疑点(本轮回修未触及 R-印-08,仍未消解):丙火在地支(酉申申亥)全无火根,仅亥中甲木可视为间接生源,与 R-印-08『财星根深』条件字面不合,书中判定『财根深』过强;又丙与年时两辛并透有丙辛合(财被印合)之嫌,R-印-08 未覆盖此情形。格与成败结论与书一致,故仍记 match。" + +- id: 印-M08 + name: "牛监薄" + pillars: ["庚寅", "乙酉", "癸亥", "丙辰"] + book_verdict: "印重财轻带食,乙合庚、印不生身,合印存食而贵" + expected: "印绶格/救(败中有救转贵)/合印存食:用神酉中辛印,相神乙食,乙庚合去印之混" + source: "第三十五篇·论印绶" + derived: "第一步定月令酉;第二步癸日对酉本气辛→偏印,正偏同格定印绶格;第三步年干庚正印透,印重;时干丙财透(根于寅中丙,孤弱)财轻;月干乙食神透,本为印重财轻、财食相混富而不贵之局;乙庚相邻合,印被合而不生癸,食得专秀。R-印-14 条件(印重财轻兼带伤食、干合去其混之合印存食)触发→印绶格/救而转贵。" + result: "match" + note: "『牛监薄』他本多作『牛监簿』,文件存疑条已记。" + +- id: 印-M09 + name: "无名" + pillars: ["己未", "甲戌", "辛未", "癸已"] + book_verdict: "合财存食之贵" + expected: "印绶格/救(败中有救转贵)/合财存食:用神戌中戊印,相神癸食,甲己合去财之混" + source: "第三十五篇·论印绶" + derived: "第一步定月令戌;第二步辛日对戌本气戊→正印;第三步本气戊不透,年干透己偏印(非戌藏干,与戊同气,正偏同格,格不随变),月干甲正财透、时干癸食神透(均非戌藏干),财食相混本富而不贵;甲己相邻合,财被合去,存癸食专秀。R-印-14 条件之『或合财存食』触发→印绶格/救而转贵。" + result: "match" + note: "原文时柱作『癸已』,『已』非地支用字,疑当作『癸巳』(文件存疑条同),照录原文;若作癸巳则巳藏丙官戊印庚劫,不影响判定。透干己甲癸均非戌藏干(戊辛丁),且辨主从无从谈起(透干与本气无相生之变),按 R-纲-07 格不随透干变,仍归印格。" + +- id: 印-M10 + name: "无名" + pillars: ["辛亥", "庚子", "甲辰", "乙亥"] + book_verdict: "印格官煞并透,合煞留官,贵" + expected: "印绶格/救(败中有救转贵)/合煞留官:用神子中癸印,相神辛官,乙庚合去煞之混" + source: "第三十五篇·论印绶" + derived: "第一步定月令子;第二步甲日对子本气癸→正印;第三步月干庚七煞、年干辛正官并透,官煞混杂本为忌;时干乙劫财与庚合,合煞留官,格转清。R-印-15 条件(官煞并透、得合去其煞)触发→印绶格/救而转贵。" + result: "match" + note: "时干乙与月干庚隔日主甲,按 R-纲-14 有『合而不全』之可能,原书直判合煞留官;规则条件未言位置限制,记此备查(本轮回修未涉及,仍存)。" + +- id: 印-M11 + name: "无名" + pillars: ["壬子", "癸卯", "丙子", "己亥"] + book_verdict: "印格官煞并透,官煞有制,贵" + expected: "印绶格/救(败中有救转贵)/食伤制煞:用神卯中乙印,相神己伤制水" + source: "第三十五篇·论印绶" + derived: "第一步定月令卯;第二步丙日对卯本气乙→正印(不透);第三步年干壬七煞、月干癸正官并透,官煞混杂;时干己伤官透,土克水,官煞有制。R-印-15 条件(官煞并透、或有食伤制煞)触发→印绶格/救而转贵。" + result: "match" + note: "疑点(本轮回修未触及 R-印-15,仍未消解):己土在地支(子子卯亥)全无根,制煞力极弱,而全局水势汪洋(二子一亥、壬癸并透),规则『有制』无量化标准(制的力度、是否有根未作条件);且己土伤官兼克癸官,有伤官见官之嫌,规则未区分制煞与伤官之别。原书判贵,按条件形式触发记 match。" + +- id: 印-M12 + name: "赵知府" + pillars: ["丙午", "庚寅", "丙午", "癸已"] + book_verdict: "寅午会火,化印为劫,弃印就财官,变之又变" + expected: "变格(化印为劫)/弃印就财官:取庚财癸官为用,不再以印论" + source: "第三十五篇·论印绶" + derived: "第一步定月令寅;第二步丙日对寅本气甲→偏印;第四步会支变化优先(R-纲-08:先察会合变化,再论本气生克):月支寅与年日二午半合火局,印绶之气随局化为比劫;第三步寅中丙透干助身,庚偏财(月干)、癸正官(时干)并透可取。R-印-02 条件(月令为印、会支化劫、四柱另见财官)触发→变格,弃印就财官(庚财癸官)。" + result: "match" + note: "原文时柱作『癸已』,疑当作『癸巳』(文件存疑条同),照录原文;若作癸巳,巳为丙禄庚生,财官愈有力,结论不变。上一轮指出寅午半合(缺戌)为 R-纲-08 三合/三会字面所未明;回修后 R-纲-08 已补『半合拱局(如寅午拱火)力稍逊,亦足参变化』,本造一寅二午火势足,化劫有据——回修后已消解。" + +- id: 印-M13 + name: "无名" + pillars: ["庚戌", "戊子", "甲戌", "乙亥"] + book_verdict: "印透七煞,劫财存煞印,贵;此格难看,宜细详" + expected: "印绶格/救(败中有救转贵)/劫财存煞印:用神子中癸印,相神乙劫(合庚存煞、制戊护印)" + source: "第三十五篇·论印绶" + derived: "第一步定月令子;第二步甲日对子本气癸→正印;第三步年干庚七煞透生印,月干戊偏财透有破印之嫌;时干乙劫财透,乙庚合存煞、乙木制戊护印,煞印两存。R-印-16 条件(月令为印、透煞、又透劫财合煞护局)触发→印绶格/救而转贵。" + result: "match" + note: "规则自注『此格毕竟难看,宜细详之』,条件仅作形式覆盖;乙庚合(时干合年干,中隔月日两干)之合效、戊财破印与乙制戊之先后,规则均未细化,记此备查。" diff --git a/rules/tests/golden/14_食神格.yaml b/rules/tests/golden/14_食神格.yaml new file mode 100644 index 0000000..8b08901 --- /dev/null +++ b/rules/tests/golden/14_食神格.yaml @@ -0,0 +1,100 @@ +# 黄金命例:食神格 来源:14_食神格.md 命例栏 +- id: 食-M01 + name: "梁丞相" + pillars: ["丁未", "癸卯", "癸亥", "癸丑"] + book_verdict: "食神生财,大贵之格" + expected: "食神格/成/用神:食神(月令卯中乙);相神:偏财丁(透年干,根于年支未);身强食旺而财透,大贵" + source: "第三十七篇·论食神" + derived: "食神格/成/癸日卯月,卯本气乙为食神(癸水生乙木、同为阴),总纲第二步路由食神格;年未月卯日亥成亥卯未三合木局,会支所化仍属木、与月令同气,格性不变(R-纲-08);丁偏财透年干、根于未中所藏丁火,癸三透干(年月时)、坐亥得旺,身强食旺而财透有根——R-食-02条件全触发,食神生财大贵之格" + result: "match" + note: "与上轮结论一致。总纲R-纲-08回修增六合半合之语,本造为三合全局,判定不受影响。" + +- id: 食-M02 + name: "谢阁老" + pillars: ["己未", "壬申", "戊子", "庚申"] + book_verdict: "食神生财,大贵之格" + expected: "食神格/成/用神:食神(月令申中庚);相神:偏财壬(透月干,根于申子);身强食旺而财透,大贵" + source: "第三十七篇·论食神" + derived: "食神格/成/戊日申月,申本气庚为食神(戊土生庚金、同为阳),总纲第二步路由食神格;申藏庚壬戊,时干透庚(本气自透)、月干透壬(余气偏财),依回修后R-纲-07辨主从:透干壬与本气庚相生(金生水)、本气当令有力且自透,本气仍主格,壬财为相为兼,格不变;月日申子半合水局(R-纲-08回修后明及半合),透与会并用、财食相生为纯(R-纲-09);年柱己未比劫扶身,身强食旺而财透有根——R-食-02条件全触发,食神生财大贵之格" + result: "match" + note: "与上轮结论一致。本轮推导改用回修后「辨主从」表述核之:壬财与庚食相生、本气当令,格不变之判定获得更直接的条文支持,无冲突。" + +- id: 食-M03 + name: "沈路分" + pillars: ["丁亥", "癸卯", "癸卯", "甲寅"] + book_verdict: "藏食露伤,主人性刚" + expected: "食神格/成而减色/藏食露伤:月令藏食乙而时干透伤官甲;主人性刚" + source: "第三十七篇·论食神" + derived: "食神格/成而减色/癸日卯月,卯专气藏乙为食神,路由食神格;卯为子午卯酉专气,R-纲-07明言专气月除外,时干甲伤官之透不引透干取用、格不变;月令藏食而伤官露干,R-食-17①藏食露伤之条件触发,主人性刚;年干丁偏财透而无根(亥藏壬甲、卯藏乙,皆无火),R-食-02「财要有根」不满足,不判生财大贵" + result: "match" + note: "与上轮结论一致。专气月透异性伤官由R-食-17①独立覆盖、与R-纲-07专气除外限定衔接自洽;R-食-02有根条件正确排除了误套生财大贵。" + +- id: 食-M04 + name: "龚知县" + pillars: ["甲午", "丁卯", "癸丑", "丙辰"] + book_verdict: "偏正叠出,富贵不巨" + expected: "食神格/成而减色/财星偏正叠出:丁偏财、丙正财并透;富贵不巨" + source: "第三十七篇·论食神" + derived: "食神格/成而减色/癸日卯月,卯藏乙为食神,路由食神格;月干丁偏财、时干丙正财并透,二财同根于年支午(丁禄在午、午为丙之旺地),财透有根故食神生财成格(R-食-02),同时R-食-17②财星偏正叠出之条件触发,富贵不巨" + result: "match" + note: "与上轮结论一致。原书此命作「职甲午」,「职」字疑为「如」字传抄之误(分格文件§8存疑注已录);四柱照录无误。" + +- id: 食-M05 + name: "黄都督" + pillars: ["己未", "己巳", "甲寅", "丙寅"] + book_verdict: "夏木用财,火炎土燥,贵多就武" + expected: "食神格/成而减色/夏木用财而火炎土燥:巳月甲日食神生财(己财透);贵多就武" + source: "第三十七篇·论食神" + derived: "食神格/成而减色/甲日巳月,巳本气丙为食神(甲木生丙火、同为阳),路由食神格;巳藏丙戊庚,时干丙透为本气透干,格不变;己正财两透年月、根于年支未(本气己)及巳中所藏戊,食神生财成格;生于初夏巳月,两丙透干、日时寅中各藏丙助火,火炎土燥——R-食-17③夏木用财而火炎土燥之条件触发,贵多就武" + result: "match" + note: "与上轮结论一致。原书作「己未、已巳」,「已巳」当为「己巳」,分格文件已更正并录存疑,本YAML照录更正后四柱;日时寅与月巳有寅巳相刑,原书不论,规则亦未涉及,记以备查。" + +- id: 食-M06 + name: "常国公" + pillars: ["辛卯", "辛卯", "癸酉", "己未"] + book_verdict: "不用财而就煞印,最为威权显赫" + expected: "食神格/成/弃食就煞印:不透财,透己七煞与辛印绶,以煞印为用;最为威权显赫" + source: "第三十七篇·论食神" + derived: "食神格/成/癸日卯月,卯藏乙为食神,路由食神格;财不透干(未中丁偏财藏支),年月辛偏印两透、时干己七煞透出,煞印同透——依回修后R-食-09但书「煞印同透、可弃食就煞印者不为破(转R-食-03,如书中常国公造两辛夺食,以就煞印成格)」,R-食-09印夺食之破被明确排除,转R-食-03弃食就煞印之条件触发,最为威权显赫;月日卯酉冲、辛印盖卯之头,食神受制,弃食就煞印与全局之势相合" + result: "match" + note: "回修后已消解。上轮指出R-食-09(印夺食→破格)与R-食-03(煞印→成格)条件字面重叠、判定相反,逐条核对会同时推出破与成两结论;本轮重读R-食-09已补排他条款并即以本造为注例,重叠矛盾消解,推导唯一指向R-食-03成格。" + +- id: 食-M07 + name: "胡会元" + pillars: ["戊戌", "壬戌", "丙子", "戊戌"] + book_verdict: "无印单露偏官、无财,亦为贵格" + expected: "食神格/成/单露偏官:无印透、单透壬七煞、无财透,食得制煞为用;贵格" + source: "第三十七篇·论食神" + derived: "食神格/成/丙日戌月,戌本气戊为食神(丙火生戊土、同为阳),路由食神格;戌藏戊辛丁,年时戊透为本气透干,格不变;四柱无甲乙印绶透出,月干壬七煞单透;戌中辛正财藏支不透——依回修后R-食-04「无财透干(藏支不碍,如胡会元造戌中藏辛仍成)」,无印单露偏官、无财透干之条件触发,食旺(三戌)制煞为用,贵格" + result: "match" + note: "回修后已消解。上轮指出R-食-04「四柱无财」有歧义(戌中藏辛,若藏干计财则条件不触发);本轮重读R-食-04条件已明确为「无财透干(藏支不碍)」并以本造为注例,歧义消解。" + +- id: 食-M08 + name: "舒尚书" + pillars: ["丁亥", "壬子", "辛巳", "丁酉"] + book_verdict: "金水食神用煞,贵而且秀" + expected: "食神格/成/金水食神用煞:辛日子月金水食神,丁七煞透;贵而且秀" + source: "第三十七篇·论食神" + derived: "食神格/成/辛日子月,子专气藏癸为食神(辛金生癸水、同为阴),路由食神格;辛日主生于子月水旺之乡、年支亥复助水,金水之势成立,属金水食神;年时丁七煞两透、通根日支巳(丁之旺地),R-食-05金水食神用煞之条件触发,贵而且秀;月干壬伤官透,子为专气不构成透干取用,金水同类不碍其势" + result: "match" + note: "结论与上轮一致,但上轮指出的小漏未消解:原书此命作「职丁亥、壬子、辛巳、丁酉」,「职」为衍字(与龚知县命「职甲午」同类),分格§8存疑注现仍仅录龚知县、黄都督二条,漏录本条。规则条文本身无碍判定,建议补录存疑注。" + +- id: 食-M09 + name: "钱参政" + pillars: ["丙午", "癸巳", "甲子", "丙寅"] + book_verdict: "夏火太炎而木焦,透印不碍" + expected: "食神格/成(带忌不忌)/夏火太炎而木焦,透癸印不碍,不碍成格" + source: "第三十七篇·论食神" + derived: "食神格/成(带忌不忌)/甲日巳月,巳本气丙为食神,年时两丙并透(本气透),路由食神格而格不变;巳月夏火当令,年支午、日时两寅(各藏丙)助之,夏火太炎而木焦之候成立;月干癸正印透出、禄根于日支子——R-食-14夏火太炎而木焦透印不碍之条件触发,带忌而不忌,不碍成格" + result: "match" + note: "与上轮结论一致。时支寅与月支巳有寅巳相刑,原书不论;印有子水强根,润泽制火,与规则判定一致。" + +- id: 食-M10 + name: "刘提台" + pillars: ["癸酉", "辛酉", "己卯", "乙亥"] + book_verdict: "食神透煞见财,财先煞后食以间之,亦可就贵" + expected: "食神格/成(败中有救)/财先煞后食以间之:癸财在年、乙煞在时、辛食居月干间隔,财不党煞;亦可就贵" + source: "第三十七篇·论食神" + derived: "食神格/成(败中有救)/己日酉月,酉专气藏辛为食神(己土生辛金、同为阴),月干辛透本气,路由食神格;时干乙七煞透、禄根于日支卯,年干癸偏财透、通根时支亥,煞财并透近R-食-11之忌;然财居年干(先)、煞居时干(后),辛食居月干间之,R-食-13财先煞后食以间之之救应条件触发,财不能越食而生煞,救应成立亦可就贵" + result: "match" + note: "与上轮结论一致。年月两酉冲日支卯(煞根受冲)、时支亥与卯半合,原书仅取天干先后间隔,不论支之冲合;验证与书判一致。" diff --git a/rules/tests/golden/15_偏官格.yaml b/rules/tests/golden/15_偏官格.yaml new file mode 100644 index 0000000..2ada1f2 --- /dev/null +++ b/rules/tests/golden/15_偏官格.yaml @@ -0,0 +1,73 @@ +# 黄金命例:偏官格 来源:15_偏官格.md 命例栏 +- id: 杀-M01 + name: "无名" + pillars: ["乙亥", "乙酉", "乙卯", "丁丑"] + book_verdict: "煞用食制,煞旺食强而身健,极等之贵也" + expected: "偏官格/成/用神酉辛七煞,相神丁食制煞,煞旺食强身健,极贵" + source: "第三十九篇·论偏官" + derived: "偏官格/成:乙日生酉月,酉本气辛为乙日七煞(阴克阴),总纲第二步定格;酉为专气,第三步无透干变化;日支卯与月令酉相冲,年支亥与日支卯半会木局,依 R-附-20 会合解冲(R-纲-08 回修后半合拱局亦明入会支之例),卯会亥而不冲酉,月令不化,第四步无格变;时干透丁食神制煞,煞当令而旺、乙日坐卯禄兼三乙并透则身健,R-杀-03 条件全触发→成格,用神七煞、相神丁食" + result: "match" + note: "丁食四支无火根,书径判「食强」(盖取三乙相生),规则库于「食强」无量化界说,依书判触发,不碍结论;余无问题(与上轮同)" +- id: 杀-M02 + name: "脱脱丞相" + pillars: ["壬辰", "甲戌", "丙戌", "戊戌"] + book_verdict: "辰中暗煞,壬以透之;戊食坐四支,食太重而透甲印以损太过,岂非贵格" + expected: "偏官格(壬煞为用)/救/食制煞而食太重,甲印居食先损其太过,败中有救,成格大贵" + source: "第三十九篇·论偏官" + derived: "总纲路由:丙日生戌月,戌本气戊为丙日食神,第二步定食神格;戊透时干(本气透,R-纲-10 杂气透干取用),第三步无格变。年干透壬七煞(通根年支辰中癸,非月令戌所出——戌藏戊辛丁无水),月干透甲印,四柱不透财:食神格 R-食-03(弃食就煞印)条件全触发,且 R-食-09 回修排他(煞印同透、可弃食就煞印者不为破)明定甲印夺食之嫌不破→成格威权之贵。另依本书系篇之路(以壬煞为用走偏官规则):时透戊食、四支辰戌戌戌皆土,食太重;月干甲印居食先,R-杀-11 带忌(透印)而 R-杀-14 救应触发(印先食后、食太旺得印制)→败中有救,格成大贵。两线同归成格,与书判合" + result: "match" + note: "三事并存:(1) 原文月柱作「甲胡」,十干十二支无胡字,系传抄之误,通行本作甲戌,命例栏已存疑,兹照甲戌排;(2) 年月干支失配——壬辰年九月依五虎遁当为庚戌,甲戌月属甲己之年,四柱照录存疑;(3) 路由出入仍未消解:总纲六步路由(用神专求月令)导此造入食神格,而本书系于偏官格下示范 R-杀-14(煞出年支辰、非月令所出);回修之 R-食-09 排他使食神格一线更明(夺食不为破、转 R-食-03),但「煞出他支之造系于何格」之归属界说规则库仍阙如,属可补之处" +- id: 杀-M03 + name: "何参政" + pillars: ["丙寅", "戊戌", "壬戌", "辛丑"] + book_verdict: "戊与辛同通月令(戌中藏戊辛),是煞印有情,贵格" + expected: "偏官格/成/用神戌中戊煞,相神辛印化煞,煞印同通月令为有情" + source: "第三十九篇·论偏官" + derived: "偏官格/成:壬日生戌月,戌本气戊为壬日七煞(阳克阳),总纲第二步定格;戌藏戊辛丁,月干透戊(本气透)、时干透辛印——回修后 R-纲-07 辨主从:本气戊与透干辛相生(土生金,本气生透干)且本气当令有力,本气仍主格、透干为相为兼,即该条所举「何参政造戌中辛印透而戊煞相生」之例,煞格用印,第三步无格变;辛印与戊煞同通月令戌,R-杀-04 条件全触发(印有情)→成格,用神七煞、相神辛印" + result: "match" + note: "年干丙偏财与辛印分居年时、中隔两位,按 R-附-11 仅半合(十之二三),书未论,不碍成格;丑戌刑属四墓相刑,依 R-纲-11 不忌。回修后 R-纲-07 径以本造为「本气生透干、本气主格」之例,路由依据较上轮更明" +- id: 杀-M04 + name: "周丞相" + pillars: ["戊戌", "甲子", "丁未", "庚戌"] + book_verdict: "戊被(甲)制不能伏煞,时透庚财,去印存食以清食,兼生不足之煞;生煞即以制煞,两得其用,尤为大贵" + expected: "偏官格/成/用神子癸七煞,戊伤制煞被甲印所制,相神庚财去印存食、兼生煞,两得其用,尤为大贵" + source: "第三十九篇·论偏官" + derived: "偏官格/成:丁日生子月,子本气癸为丁日七煞(阴克阴),总纲第二步定格;子为专气,第三步无透干变化;年干透戊伤官制煞,月干透甲正印紧贴克戊(伤被印制、不能伏煞),时干透庚正财居时得位、庚克甲而去印存食,R-杀-06 条件全触发(月令七煞、透食(伤)制煞、食被印克制、透财得位去印存食)→成格,用神七煞、相神庚财,存食制煞与生不足之煞两得其用,尤为大贵" + result: "match" + note: "日支未与月令子有子未之害,书未论,规则条件亦未以害入破格,记此备查(与上轮同,无变化)" +- id: 杀-M05 + name: "刘运使" + pillars: ["甲申", "乙亥", "丙戌", "庚寅"] + book_verdict: "身重煞轻,煞又化印,用神不清,借(庚)财以清格,亦为贵格" + expected: "偏官格/成/用神亥中壬煞,身重煞轻、煞化印而用神不清,相神庚财损印清格" + source: "第三十九篇·论偏官" + derived: "偏官格/成:丙日生亥月,亥本气壬为丙日七煞(阳克阳),总纲第二步定格;亥藏壬甲,本气壬不透而年透甲、月透乙(印)——回修后 R-纲-07 辨主从:透干与本气相生(水生木,本气生透干)且本气当令有力,本气仍主格、透干为相为兼,变而不失本格,煞格兼印并论;丙日通根戌库(R-附-18 丙逢戌作通根论)、寅为丙之长生,印又生身→身重;煞仅亥中壬一点且化印→煞轻、用神不清;时干透庚偏财、禄于年支申,R-杀-07 条件全触发(身重煞轻、煞又化印、用神不清、透财)→成格,用神七煞、相神庚财(借财清格)" + result: "match" + note: "透干变化使格兼印绶,回修后 R-纲-07 辨主从(本气生透干、本气主格)直接支撑「煞格兼印」之判,依据较上轮更明;申亥相害书未论(与上轮同)" +- id: 杀-M06 + name: "岳统制" + pillars: ["癸卯", "丁巳", "庚寅", "庚辰"] + book_verdict: "月令偏官而官透,去官留煞也,取清则贵" + expected: "偏官格/成/用神巳中丙煞,丁官透干混杂,相神癸伤去官留煞取清" + source: "第三十九篇·论偏官" + derived: "偏官格/成:庚日生巳月,巳本气丙为庚日七煞(阳克阳),总纲第二步定格;巳藏丙戊庚,月干所透丁官非巳中藏干,不涉第三步透干格变,作煞格官透混杂论;年干透癸伤官(通根时支辰中癸)紧贴克丁,局中有字去官,R-杀-09 条件触发(月令七煞、官透混杂、有字去官)→去官留煞取清成格,用神七煞、相神癸伤" + result: "match" + note: "地支寅卯辰三会东方财方(日寅、年卯、时辰连珠),财旺党煞之嫌书未论,R-杀-09 条件亦未设此限,记此备查(与上轮同,无变化)" +- id: 杀-M07 + name: "沈郎中" + pillars: ["丙子", "甲午", "辛亥", "辛卯"] + book_verdict: "子冲午而克煞,是去煞留官也" + expected: "偏官格杂官/成/子冲午去煞,留丙官取清" + source: "第三十九篇·论偏官" + derived: "偏官格/成(取清):辛日生午月,午本气丁为辛日七煞(阴克阴),总纲第二步定格;午藏丁己,年干所透丙官非午中藏干,不涉第三步透干格变,作煞格官透混杂论;年支子冲月令午、子中癸克午中丁,局中有字去煞,R-杀-09 条件触发→去煞留官取清成格,格实转以丙官为用(丙辛本身之合,依 R-附-13 不为合去,官亲日主)" + result: "match" + note: "规则张力仍未消解:此造之「去煞」系年支子冲坏月令午中丁煞——月令用神被冲而书反以为成格,与 R-附-23「刑冲月令用神尤为破格」之原则相悖,且 R-杀-09 判定明言「月令偏官,煞为用而官非用……(煞格)去官留煞,其清如此」,此造反向去煞留官,其理原文未明言,命例栏已存疑;回修未及 R-杀-09,上轮所请补注(「去煞留官限于煞被冲去、官有根且亲日主之情形」之类界说)仍未补。旁证自圆处:丙辛为日主自合(R-附-13)、丙官通根午(丙刃于午),留官为用尚可说" +- id: 杀-M08 + name: "赵员外" + pillars: ["戊辰", "甲寅", "戊寅", "戊午"] + book_verdict: "有煞无食制而用印当者——甲煞透而无食制,寅午会火,以印(刃)化敌其煞" + expected: "偏官格/成/用神寅中甲煞,无食制,寅午会火印(刃)当煞化敌" + source: "第三十九篇·论偏官" + derived: "偏官格/成:戊日生寅月,寅本气甲为戊日七煞(阳克阳),总纲第二步定格;甲透月干(本气透),第三步无格变;四柱无金、无食制煞,日支寅与时支午半合拱火(回修后 R-纲-08 明定半合拱局亦足参变化),火为戊日之印、午兼戊刃,支会印局化煞而月令本气不夺,R-杀-10 条件全触发(月令七煞、无食制、支会印局以化煞)→成格,用神七煞、相神印(印刃当煞)" + result: "match" + note: "R-杀-10 作「用印当煞」、R-杀-21 作「用刃当煞」,此造寅午会火、火为印而午为刃,印刃同宫,二说相通,规则条已并存存疑,回修未合并二条措辞,存疑照旧;回修之 R-纲-08(半合拱局亦足参变化)使本造会支依据较上轮更明。推导两说均至成格" diff --git a/rules/tests/golden/16_伤官格.yaml b/rules/tests/golden/16_伤官格.yaml new file mode 100644 index 0000000..fb3f541 --- /dev/null +++ b/rules/tests/golden/16_伤官格.yaml @@ -0,0 +1,110 @@ +# 黄金命例:伤官格 来源:16_伤官格.md 命例栏 +- id: 伤-M01 + name: "史春芳" + pillars: ["壬午", "己酉", "戊午", "庚申"] + book_verdict: "伤官生财,身强有根,贵格" + expected: "伤官格/成/伤官生财:用神酉金伤官,相神壬偏财(透干通根申),身强有根" + source: "第四十一篇·论伤官" + derived: "月令酉藏辛,辛为戊日伤官→伤官格(总纲第二步);酉为专气无透干变化;壬偏财透、通根申中壬水,伤官生财;戊坐午印、年支又午、月干己劫、申中藏戊,身强有根→R-伤-03条件全触发;无印透、无破格项触发→伤官生财成格贵格" + result: "match" + note: "" + +- id: 伤-M02 + name: "罗状元" + pillars: ["甲子", "乙亥", "辛未", "戊子"] + book_verdict: "辛日亥月透甲,甲通根于亥又会未成木局,化水为木、化伤生财,秀气发越,殿元" + expected: "伤官格/成/化伤为财:用神亥水伤官,透甲财通根月令、亥未会木局,冬金化木则秀而贵" + source: "第四十一篇·论伤官" + derived: "月令亥本气壬为辛日伤官→伤官格(总纲第二步);亥为四生月,本气壬不透而透甲(亥藏甲):辨主从——壬水生甲木,本气生透干,且壬水当令有力,属「变而不失本格」,本气壬伤官仍主格、甲财为相(总纲第三步/R-纲-07);甲通根亥、亥未半会木局(财局)→R-伤-04化伤为财触发;亥月冬金伤官化木,R-伤-19秀贵(殿元)→成格" + result: "match" + note: "亥未半会木局缺卯,属拱局,书谓「然又会未成局,化水为木」。回修后总纲第三步/R-纲-07补「辨主从」,本造由上一轮「格随透干变」改判为「变而不失本格」(本气伤官主格、透财为相),与expected「用神亥水伤官」更相合,结论不变" + +- id: 伤-M03 + name: "秦龙图" + pillars: ["己卯", "丁丑", "丙寅", "庚寅"] + book_verdict: "丙日丑月,己与庚同根月令,财伤有情,秀气与化伤为财不相上下" + expected: "伤官格/成/财伤有情:用神丑土伤官,伤(己)财(庚)同根月令并透,伤官生财" + source: "第四十一篇·论伤官" + derived: "月令丑本气己为丙日伤官→伤官格;本气己透、庚财亦透,伤官生财;丙坐两寅长生、年支卯印、月干丁劫,身强有根→R-伤-03触发成格;按书及R-伤-05文义「己与庚同根月令」,财伤有情,秀气尤胜→成格贵格" + result: "match" + note: "藏干细节存疑:通行藏干丑藏己癸辛,庚非丑藏干,「己庚同根月令」须按庚借根丑库(金库)理解;R-伤-05条件字面「财星与伤官同根于月令藏干」与通行藏干表有出入,但规则与书原文表述一致,成格结论不受影响(R-伤-03独立成立)" + +- id: 伤-M04 + name: "孛罗平章" + pillars: ["壬申", "丙午", "申午", "壬申"] + book_verdict: "伤官佩印,伤官旺、印根深、身又弱,夏木逢润,其秀百倍,一品之贵" + expected: "伤官格/成/伤官佩印:用神伤官,相神壬水印(印根深),夏木逢润,格至一品" + source: "第四十一篇·论伤官" + derived: "第三柱「申午」非六十甲子合法干支(两支相拼),日干无法确定,正式排盘不能;按书判语「夏木逢润」反推日干应为木(疑日柱为甲午):午月丁为甲日伤官→伤官格,壬印两透坐双申长生(印根深)、甲地支无根(身弱)、伤当令而旺→R-伤-06、R-伤-20可触发,结论与expected一致,但纯属推测" + result: "unverifiable" + note: "第三柱干支失配(「申午」不可能),疑脱天干;原书(sources/42_论伤官.md)即如此,文件存疑注已录。仅可条件性复推,不能确证" + +- id: 伤-M05 + name: "都统制" + pillars: ["丁酉", "己酉", "戊子", "壬子"] + book_verdict: "伤官生财而财太重带印,丁与壬隔以戊己两不相碍,金水多寒得火融和,贵" + expected: "伤官格/成/伤官生财、财太旺带印:用神酉金伤官,壬财透通根两子,丁印与壬财间隔得清,得火调候格高" + source: "第四十一篇·论伤官" + derived: "月令酉藏辛为戊日伤官→伤官格;壬偏财透、通根双子,财太重;戊地支无根(酉子酉子无土),身弱财旺;丁正印透→R-伤-07情形一「生财者财太旺而带印」触发;丁居年干、壬居时干,隔月干己、日干戊,两不相碍→R-伤-16间隔为救触发;金水多寒,得丁火融和调候→R-伤-21(回修后已放宽,不限金水日元,明引本造戊日酉月土金伤官亦以此论)触发,格高→成格贵格" + result: "match" + note: "上一轮指出R-伤-21条件限「金水伤官格」、对本造(土金伤官)字面失效;回修后R-伤-21条件已放宽并明引本造,问题回修后已消解" + +- id: 伤-M06 + name: "某丞相" + pillars: ["壬戌", "己酉", "戊午", "丁巳"] + book_verdict: "伤官佩印而印太重带财,丁与壬隔以戊己不相碍,贵至丞相" + expected: "伤官格/成/伤官佩印、印太重带财:用神酉金伤官,相神丁印(透而根深),壬财与丁印间隔两清" + source: "第四十一篇·论伤官" + derived: "月令酉藏辛为戊日伤官→伤官格;丁正印透、通根午戌巳,印太重;壬偏财透→R-伤-07情形二「佩印者印太重而带财」触发;丁居时干、壬居年干,隔己戊→R-伤-16触发;身强(坐午、时巳禄、年支戌),R-伤-06「身稍弱」字面不适用,应走R-伤-07;R-伤-12破格三条件(伤轻+身重+印偏正叠出)未并具(伤当令不轻、仅丁透无叠出),不破→成格贵格" + result: "match" + note: "规则适用边界:本造身强,若机械套R-伤-06「日干稍弱」则不触发,须走R-伤-07情形二;规则本身自洽,但佩印类命例条件边界值得留意" + +- id: 伤-M07 + name: "蔡贵妃" + pillars: ["己未", "丙子", "庚子", "丙子"] + book_verdict: "伤官用煞印,伤多身弱,赖煞生印帮身制伤,无财,贵格" + expected: "伤官格/成/伤官用煞印:用神子水伤官,相神己印(赖丙煞生之),无财" + source: "第四十一篇·论伤官" + derived: "月令子藏癸为庚日伤官→金水伤官格;地支三子、伤多;庚地支无根(子未皆无金根),身弱;丙七煞两透、己正印透,煞生印、印帮身制伤;财不透干(未中藏乙正财,藏支不碍)→R-伤-08(回修后条件明定为「财不透干,藏支不碍」,并引本造为证)触发;R-伤-14(透财)不破→成格贵格" + result: "match" + note: "上一轮指出R-伤-08「四柱无财」若含藏干则字面不满足,建议改为「财不透干」;回修后R-伤-08条件已改为「财不透干(藏支不碍,如蔡贵妃造未中藏乙仍成)」,问题回修后已消解" + +- id: 伤-M08 + name: "夏阁老" + pillars: ["壬寅", "丁未", "丙寅"] + book_verdict: "伤官用煞印,煞因伤而有制、两得其宜,无财,贵格" + expected: "伤官格/成/伤官用煞印:用神未土伤官,壬煞有制,无财" + source: "第四十一篇·论伤官" + derived: "缺时柱。月令未本气己为丙日伤官→伤官格;壬七煞透、坐寅(壬水病地,煞弱);丙坐两寅长生、丁劫透,身强而非身弱;甲偏印藏寅不透→R-伤-08条件「伤多日干弱」「透煞与印」字面均未触发;实存结构为伤官制煞;时柱未知,「财不透干」条件无法核验" + result: "unverifiable" + note: "原文仅录三柱,疑脱时柱(sources/42_论伤官.md 即如此);时柱可能带财或印,「财不透干」与身弱条件均无法核验。上一轮指出的规则张力(命例栏标R-伤-08,而条件「伤多身弱、透煞与印」与本造身强、印藏不透不符)回修后已在R-伤-08存疑注中明录(「夏阁老造仅录三柱……与『身弱』『透印』字面有张力」);惟缺时柱,仍无法确证" + +- id: 伤-M09 + name: "某丞相" + pillars: ["戊申", "甲子", "庚午", "丁丑"] + book_verdict: "金水伤官用官,藏癸(伤)露丁(官),戊甲(印财)为辅,官又得禄,丞相之格" + expected: "伤官格/成/金水伤官用官:用神子水伤官(藏),丁官透,甲财戊印为辅,官伤不并透,官得禄于午" + source: "第四十一篇·论伤官" + derived: "月令子藏癸为庚日伤官→金水伤官格;丁正官透、禄于日支午,癸伤藏支不透→官伤不并透;甲偏财、戊偏印并透为辅→R-伤-09条件全触发;R-伤-13(孤官无辅/官伤并透)均不触发→成格贵格" + result: "match" + note: "" + +- id: 伤-M10 + name: "郑丞相" + pillars: ["丙申", "己亥", "辛未", "己亥"] + book_verdict: "冬金用官而又化伤为财,极秀极贵" + expected: "伤官格/成/冬金用官兼化伤为财:用神亥水伤官,丙官透,亥未会木(化伤为财转而生官),己印为辅" + source: "第四十一篇·论伤官" + derived: "月令亥本气壬为辛日伤官→金水伤官格(冬月);丙正官透、壬伤藏支→官伤不并透;亥未半会木局,伤水之气化为财木、转而生官→R-伤-10条件全触发;己偏印两透为辅,R-伤-13不破→成格,极秀极贵" + result: "match" + note: "亥未半会木局缺卯(拱局),书系此例于「冬金用官而又化伤为财」之下" + +- id: 伤-M11 + name: "章丞相" + pillars: ["甲子", "壬申", "己亥", "辛未"] + book_verdict: "非金水而见官,然化伤为财、伤非其伤,作财旺生官而不作伤官见官,贵至丞相" + expected: "伤官格/成/化伤为财、财旺生官:用神申金伤官,壬财透通根月令、申子会水,甲官作财旺生官论,不作伤官见官" + source: "第四十一篇·论伤官" + derived: "月令申本气庚为己日伤官→伤官格(土金伤官,非金水)(总纲第二步);甲己日干逢合,但化神土不当令(申月)、支局不全,不入从化门(总纲第六步);申为四生月,本气庚不透而透壬(申藏壬):辨主从——庚金生壬水,本气生透干,且庚金当令有力,属「变而不失本格」,本气庚伤官仍主格、壬财为相(总纲第三步/R-纲-07);壬财通根申、申子半合水局(财局)→R-伤-04化伤为财触发;甲正官透,R-伤-11触发:局已化伤为财,作财旺生官、不作伤官见官→成格贵格" + result: "match" + note: "回修后总纲第三步/R-纲-07补「辨主从」,本造由上一轮「格随透干变」改判为「变而不失本格」(本气伤官主格、透财为相),与expected「用神申金伤官」更相合,结论不变;另按回修后第六步从化门复核,甲己合而不化,不转杂格" diff --git a/rules/tests/golden/17_阳刃格.yaml b/rules/tests/golden/17_阳刃格.yaml new file mode 100644 index 0000000..51d3c1b --- /dev/null +++ b/rules/tests/golden/17_阳刃格.yaml @@ -0,0 +1,50 @@ +# 黄金命例:阳刃格 来源:17_阳刃格.md 命例栏 +- id: 刃-M01 + name: "无名" + pillars: ["己酉", "丙子", "壬寅", "丙午"] + book_verdict: "官透有力,旺财生之,丞相命" + expected: "阳刃格/成/用神己土正官制刃,丙火偏财为相生官(财相随);官透有力、旺财生之,贵大" + source: "第四十三篇·论阳刃" + derived: "阳刃格/成/用己官制刃、丙财为相,贵大。月令子,壬日子月:壬禄在亥、禄前一位为子,子中本气癸为劫财,月令无用神,阳干临刃,总纲第二步路由转阳刃格(R-刃-01)。第三步藏干变化:子为四仲专气,无藏干变化。审配合:年干透己正官(土克壬异性为官),官能制刃,触 R-刃-02「刃宜伏制、官煞皆宜」与 R-刃-03「阳刃用官透刃不虑」;月时两透丙偏财(火为壬财、丙同性为偏),时支午为丙财临官旺地,财生官而相随,触 R-刃-02「财印相随尤为贵显」。天干无丁(壬之刃干)扰官,亦无伤食克官。官透有力、旺财生之,合 R-刃-13 官煞露而根深贵大之断。" + result: "match" + note: "月支子刃与时支午财子午相冲,刃财相冲在规则条文中无对应处置(R-刃-09「刃财相搏」限以财为用且无伤食通关之局,此处用官非用财,不触),书中仍判丞相命;规则未覆盖此点,不影响成格判定。四柱遁合无失配。" + +- id: 刃-M02 + name: "无名" + pillars: ["辛酉", "甲午", "丙申", "壬辰"] + book_verdict: "透煞根浅,财印助之,亦丞相命" + expected: "阳刃格/成/用神壬水七煞制刃(阳刃用煞反喜财印),辛财、甲印相随为相;煞根浅而财印助之,亦贵" + source: "第四十三篇·论阳刃" + derived: "阳刃格/成/用壬煞制刃、辛财甲印为相,贵。丙日午月:丙禄在巳、禄前一位为午,午中丁劫财为刃,阳干临刃,总纲第二步转阳刃格(R-刃-01)。时干透壬七煞(水克丙同性为煞)制刃,触 R-刃-02;天干不透丁(丙之刃干),故不触 R-刃-07「透刃合煞、贪合忘克」之忌。年干透辛正财、月干透甲偏印——阳刃用煞赖煞制刃不怕伤身,「反喜财印、忌制伏其煞」,财印相随正触 R-刃-02 之喜;又 R-刃-04 丙生午月内藏己土暗伤水煞「尤宜带财佩印」,辛财甲印恰符其配合。壬煞之根仅日支申中壬水长生、时支辰中癸余气,根浅;得财印助之,合 R-刃-13「根浅而得财印助之者亦可至贵」之断。" + result: "match" + note: "书中判「透煞根浅」,然日支申为壬水长生,煞非全无根;「根浅」当系相对「根深」之辞,不改变成格结论,存此备考。四柱遁合无失配。" + +- id: 刃-M03 + name: "穆同知" + pillars: ["甲午", "癸酉", "庚寅", "戊寅"] + book_verdict: "癸水伤寅午之官,而戊以合之,印护而贵" + expected: "阳刃格/成(败中有救·印护)/用神丁火正官(年支午中,寅午会局)制刃;带忌:月干癸水伤官克官;救:时干戊土偏印合癸,伤不能克官;相神为戊印" + source: "第四十三篇·论阳刃" + derived: "阳刃格/成(救·印护)/用丁官制刃,戊印合伤为相。庚日酉月:庚禄在申、禄前一位为酉,酉中辛劫财为刃,阳干临刃,总纲第二步转阳刃格(R-刃-01)。官星丁火不透干,藏年支午中,得日支寅与午半合火局(R-纲-08 半合拱局亦足参变化)而有力,用官制刃成立,触 R-刃-02。月干透癸伤官,癸克丁官,成中带忌(R-纲-05);时干透戊偏印,戊癸相合,合住伤食使不能克官煞——触 R-刃-10「官煞制刃带伤食、天干透印合住伤食则印护成格」之条件,败中有救。年干甲偏财生官,于格有辅。" + result: "match" + note: "官藏于支(午中丁)而不透干,R-刃-10「印护」之条件未限定官煞必须透干,其引例即本命,触发无疑义。四柱遁合无失配。" + +- id: 刃-M04 + name: "贾平章" + pillars: ["甲寅", "庚午", "戊申", "甲寅"] + book_verdict: "煞两透而根太重,食以制之,裁损而贵" + expected: "阳刃格/成(败中有救·裁损)/用神甲木七煞制刃;煞两透、根太重为忌;救:月干庚金食神制煞,轻重得宜;相神为庚食" + source: "第四十三篇·论阳刃" + derived: "阳刃格/成(救·裁损)/用甲煞制刃、庚食制煞为相。戊日午月:戊禄在巳、禄前一位为午,午中己劫财为刃(戊以午为刃,土随火论),阳干临刃,总纲第二步转阳刃格(R-刃-01)。年时两透甲七煞,各坐寅禄,煞两透而根太重——用煞制刃而煞过重,制刃太过为忌;月干透庚食神,通根日支申禄,食有力制煞,触 R-刃-11「煞太重、带食神制之则裁损成格」之条件,败中有救,轻重得宜而贵。" + result: "match" + note: "两寅冲日支申,相神庚食之根受冲,规则条文未论及相神之根被冲之处理,书中仍判贵(贾平章);存此备考。四柱遁合无失配。" + +- id: 刃-M05 + name: "无名" + pillars: ["丙戌", "丁酉", "庚申", "壬午"] + book_verdict: "壬合丁官,煞纯而不杂,阳刃利于留煞,取清成格" + expected: "阳刃格/成(败中有救·取清)/官煞并透混杂为忌;时干壬水食神合去丁官、独留丙煞制刃,煞纯不杂;相神为壬食(合官留煞)" + source: "第四十三篇·论阳刃" + derived: "阳刃格/成(救·取清)/合官留煞,壬食为相。庚日酉月:庚禄在申、禄前一位为酉,酉中辛劫财为刃,阳干临刃,总纲第二步转阳刃格(R-刃-01)。年干透丙七煞、月干透丁正官,官煞并透混杂为忌;时干透壬食神,丁壬相合,合去丁官、独留丙煞制刃——触 R-刃-12「官煞竞出、有干合去官星独留煞制刃则取清」之条件,败中有救成格;阳刃之格利于留煞。回修后 R-刃-12 已明定「合优先于克(贪合忘克):食既合官留煞,不以其克煞触 R-刃-02 之忌论」,故壬食合官之功优先,不以壬本可克丙煞而触「用煞忌制伏」之忌。丙煞坐戌通根火库、得时支午旺地,煞透根深,合 R-刃-13 贵大之象。" + result: "match" + note: "回修后已消解:上一轮指出「阳刃用煞忌制伏其煞」(R-刃-02)与时干壬食并存存在规则张力、条文未明写合与克之优先级;本轮 R-刃-12 已补「合优先于克(贪合忘克):食既合官留煞,不以其克煞触 R-刃-02 之忌论」,优先级明文入规,张力消解,判定路径完全自洽。四柱遁合无失配。" diff --git a/rules/tests/golden/18_建禄月劫格.yaml b/rules/tests/golden/18_建禄月劫格.yaml new file mode 100644 index 0000000..87f89ca --- /dev/null +++ b/rules/tests/golden/18_建禄月劫格.yaml @@ -0,0 +1,118 @@ +# 黄金命例:建禄月劫格 来源:18_建禄月劫格.md 命例栏 +- id: 禄-M01 + name: "金丞相" + pillars: ["庚戌", "戊子", "癸酉", "癸亥"] + book_verdict: "禄劫用官而印护,贵格" + expected: "建禄月劫格/成/用神正官、相神印(印护官)" + source: "第四十五篇·论建禄月劫" + derived: "癸日子月,子中癸为日主之禄(阴干非刃),总纲第二步路由→月令无用神→建禄月劫格;月干透戊正官为用,年干透庚正印与官相随(印透干),R-禄-03 条件(透官+财或印相随)触发→成格;用神戊官、相神庚印(印护官)。" + result: "match" + note: "" +- id: 禄-M02 + name: "李知府" + pillars: ["丁酉", "丙午", "丁巳", "壬寅"] + book_verdict: "禄劫用官而财助,贵格" + expected: "建禄月劫格/成/用神正官、相神财(财助官)" + source: "第四十五篇·论建禄月劫" + derived: "丁日午月,午中丁为日主之禄(阴干非刃)→建禄月劫格;时干透壬正官为用,天干无财印透,但年支酉中辛偏财、时支寅中甲正印,支藏有气——回修后 R-禄-03 条件为『财或印与官相随(透干或支藏有气皆可)』,条文径以本造(李知府)为书证,条件触发→成格;用神壬官、相神辛财(财生官、财助官)。" + result: "match" + note: "回修后已消解:上一轮 R-禄-03 条件写作『财或印随官而透』,严于原文『又要财印相随』,本造财印仅在支而不透,落入不成不破之灰区,判 mismatch;回修后条件放宽为『透干或支藏有气皆可』并直接援引本造为据,成格判定成立,与书中『禄劫用官而财助,贵格』一致。" +- id: 禄-M03 + name: "王少师" + pillars: ["庚午", "戊子", "癸卯", "丁巳"] + book_verdict: "财官印三奇俱透,以官隔之,格大" + expected: "建禄月劫格/成(格大)/财官印三奇俱透、以官隔之" + source: "第四十五篇·论建禄月劫" + derived: "癸日子月禄→建禄月劫格;年透庚正印、月透戊正官、时透丁偏财,三奇俱透,且戊官居庚印与丁财之间(以官隔之,财印两不相伤),R-禄-04 条件触发→成格且格大。" + result: "match" + note: "" +- id: 禄-M04 + name: "张都统" + pillars: ["甲子", "丙子", "癸丑", "壬辰"] + book_verdict: "禄劫用财带食伤,转劫生财" + expected: "建禄月劫格/成/用神财、相神伤食(化劫生财)" + source: "第四十五篇·论建禄月劫" + derived: "癸日子月禄→建禄月劫格;月干透丙正财为用,时干壬劫财争财,年干透甲伤官化劫、转劫生财,R-禄-05『以财为用、伤食透出』条件触发→成格;用神丙财、相神甲伤。" + result: "match" + note: "" +- id: 禄-M05 + name: "无名" + pillars: ["己未", "己巳", "丁未", "辛丑"] + book_verdict: "丑与巳会,化劫财之火为金局之财,大贵" + expected: "建禄月劫格/成(大贵)/会支化劫为财" + source: "第四十五篇·论建禄月劫" + derived: "丁日巳月,巳本气丙为劫财(月劫,非阳干临刃)→建禄月劫格;月支巳与时支丑半合拱金局(回修后 R-纲-08 明认六合半合拱局力稍逊亦足参变化),月令劫财之火随局化为财,时干又透辛偏财,R-禄-06『地支与禄劫之支会成财局』条件触发→成格,大贵。" + result: "match" + note: "" +- id: 禄-M06 + name: "高尚书" + pillars: ["庚子", "甲申", "庚子", "甲申"] + book_verdict: "化劫财之金为生财之水,化劫为生" + expected: "建禄月劫格/成(秀气)/化劫为生(劫化伤食、转而生财)" + source: "第四十五篇·论建禄月劫" + derived: "庚日申月禄→建禄月劫格;月时两申与年日两子各半合水局(申子拱水),禄劫之金化为伤食之水,水复生干头两透之甲偏财,R-禄-07『劫财之气化为伤食、由伤食转而生财』条件触发→成格,秀气。" + result: "match" + note: "" +- id: 禄-M07 + name: "娄参政" + pillars: ["丁巳", "壬子", "癸卯", "己未"] + book_verdict: "壬合丁财以去党煞,卯未会局制煞" + expected: "建禄月劫格/成/用神煞、制伏(合去党煞之财+会支成食伤局制煞)" + source: "第四十五篇·论建禄月劫" + derived: "癸日子月禄→建禄月劫格;时干透己七煞为用,年干丁偏财党煞为忌;月干壬合丁,合去党煞之财;日支卯与时支未半合木局(卯未拱木,R-纲-08 半合亦足参变化)成食伤以制煞,R-禄-08 两项条件(合去党煞之财+会支成食伤局制煞)均触发→成格。" + result: "match" + note: "" +- id: 禄-M08 + name: "袁内阁" + pillars: ["戊辰", "癸亥", "壬午", "丙午"] + book_verdict: "用煞带财,合煞存财,败中成贵" + expected: "建禄月劫格/败中有成(救)/合煞存财" + source: "第四十五篇·论建禄月劫" + derived: "壬日亥月禄→建禄月劫格;年干透戊七煞为用,日时丙午财党煞,本为不美(败);月干癸与戊合,合去其煞存其财,R-禄-14『用煞带财、有干合去其煞存其财』条件触发→败中有成。" + result: "match" + note: "" +- id: 禄-M09 + name: "张状元" + pillars: ["甲子", "丙寅", "甲子", "丙寅"] + book_verdict: "春木泄秀,木火通明" + expected: "建禄月劫格/成(贵)/无财官用伤食泄秀,春木(木火通明)" + source: "第四十五篇·论建禄月劫" + derived: "甲日寅月禄→建禄月劫格;寅藏甲丙戊,干头两甲(比劫)两丙(食神)并透,无财官煞可取(寅中戊财余气不透不为用),丙食泄禄劫之太过;寅月春木,木火通明,R-禄-09『无财官而用伤食泄秀、春木用之则贵』条件触发→成格。" + result: "match" + note: "寅中虽藏戊财余气,但不透不为用,不影响『无财官可取』之判定。" +- id: 禄-M10 + name: "无名" + pillars: ["癸卯", "庚申", "庚子", "庚辰"] + book_verdict: "秋金泄秀,金水相涵" + expected: "建禄月劫格/成(贵)/无财官用伤食泄秀,秋金(金水相涵)" + source: "第四十五篇·论建禄月劫" + derived: "庚日申月禄→建禄月劫格;年干透癸伤官,月日时三支申子辰三合水局(总纲第四步会支变化优先,食伤气专),泄禄劫之太过;申月秋金,金水相涵,R-禄-09『无财官而用伤食泄秀、秋金用之则贵』条件触发→成格。年支卯中乙财不透,不碍泄秀之判。" + result: "match" + note: "年支卯虽为乙财,但不透,且依总纲第四步会支变化优先——申子辰全合水局,食伤气专,从泄秀论;会水转生支中卯财,亦近 R-禄-07 化劫为生之象,书中以泄秀立论。" +- id: 禄-M11 + name: "一平章" + pillars: ["辛丑", "庚寅", "甲辰", "乙亥"] + book_verdict: "官煞竞出,合煞留官取清" + expected: "建禄月劫格/败中有成(救)/官煞竞出、合煞留官" + source: "第四十五篇·论建禄月劫" + derived: "甲日寅月禄→建禄月劫格;年透辛正官、月透庚七煞,官煞竞出为混(败);时干乙与庚合,合去其煞留其官,R-禄-15『官煞并透、有合去其煞留官』条件触发→败中有成,取清为贵。" + result: "match" + note: "" +- id: 禄-M12 + name: "无名" + pillars: ["辛亥", "庚写", "甲申", "丙寅"] + book_verdict: "官煞竞出,制煞留官取清" + expected: "建禄月劫格/败中有成(救)/官煞竞出、制煞留官" + source: "第四十五篇·论建禄月劫" + derived: "月柱『庚写』干支失配(天干庚配地支『写』不成干支),月令地支无法确定,总纲路由第一步『定月令』即不能排;仅作条件性推导:若从 R-禄-15 存疑校为『庚寅』(辛年正月起庚寅),则甲日寅月禄→建禄月劫格,辛官庚煞并透,时干丙食神制庚煞留辛官,合 R-禄-15『制伏其煞留官』之式。原盘无法排,仍定 unverifiable。" + result: "unverifiable" + note: "干支失配照录原文;R-禄-15 已存疑『庚写』疑为『庚寅』之讹,不擅改。条件性推导与 expected 方向一致,但原盘无法排,定 unverifiable。本轮回修未涉及此条,结论与上一轮相同。" +- id: 禄-M13 + name: "王总兵" + pillars: ["己酉", "乙亥", "壬戌", "庚子"] + book_verdict: "官伤并透,庚合乙去伤存官而贵" + expected: "建禄月劫格/败中有成(救)/官伤并透、合伤存官" + source: "第四十五篇·论建禄月劫" + derived: "壬日亥月禄→建禄月劫格;年透己正官、月透乙伤官,官伤并透(依 R-禄-11 转语气及通例以破格为常态);时干庚与乙合,合去伤官存其官,R-禄-17『官伤并透、有他干合去伤官存官』条件触发→败中有成,仍可取贵。" + result: "match" + note: "R-禄-11 原文『若透伤食便不破格』与下文转语气相悖,规则已存疑(疑为『便为破格』之讹);本例『官伤并透本破、合伤为救』的事实支持破格为常态之读法。本轮回修未涉及 R-禄-11,该存疑仍在。" diff --git a/rules/tests/golden/19_杂格.yaml b/rules/tests/golden/19_杂格.yaml new file mode 100644 index 0000000..4276438 --- /dev/null +++ b/rules/tests/golden/19_杂格.yaml @@ -0,0 +1,118 @@ +# 黄金命例:杂格 来源:19_杂格.md 命例栏 +- id: 杂-M01 + name: "吴相公" + pillars: ["癸亥", "乙卯", "乙未", "壬午"] + book_verdict: "甲乙日主支全亥卯未又生春月,曲直仁寿格(一行得气)" + expected: "曲直仁寿格(一行得气)/成/木局得全体、印露体纯" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "乙日卯月,卯本气乙为比肩(阴干为禄非刃),总纲第二步→月令无用神;干头癸壬印、乙比肩,无财官煞食可取,第六步无用门通过→许转杂格。地支亥卯未三合木局(总纲第四步会支),又生卯月春月,R-杂-05『甲乙日主支全亥卯未、又生春月』条件全部触发→曲直仁寿格(一行得气)成格;壬癸印透、全局气纯于木,合 R-杂-24『印露体纯』之贵。" + result: "match" + note: "" +- id: 杂-M02 + name: "无名" + pillars: ["甲戌", "丁卯", "壬寅", "甲辰"] + book_verdict: "丁壬化木生于春月、时透甲为木之元神,化木格(一品贵格)" + expected: "从化格(丁壬化木)/成(大贵)/化神当令、支局全、元神透出" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "壬日卯月,卯本气乙为伤官;然月干丁与日干壬相合而化木,化神当令(卯月春月)、地支寅卯辰东方局全——总纲第六步①从化门优先通过,先论从化,不落入伤官格路由。R-杂-06『日干与他干相合而化、所化之物得时乘令、地支局全』条件全合,时干甲为木之元神透出(『化神之元神透出者尤的』)→从化格(化木)成格,合 R-杂-22『得时乘令为大贵』。" + result: "match" + note: "回修后已消解:上一轮指出总纲六步路由未设『化气优先于月令十神』一步、化气格只能寄于杂格文件无依;本轮总纲第六步已补『从化门』(日干逢合而化、化神当令、支局全者先论从化),此造路由有依,推导在条文内闭环。" +- id: 杂-M03 + name: "无名" + pillars: ["戊午", "戊午", "戊午", "戊午"] + book_verdict: "四午冲子,冲子中癸财,倒冲格(取运篇按火土从旺论)" + expected: "倒冲格/成/四午冲子取癸财为用" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "戊日午月,阳干临刃(戊刃在午),总纲第二步→月令无用神;四柱四戊比肩,干头无财官煞食可取,第六步无用门通过→许转杂格。四柱无财官明现,四午叠见、字多方冲得动,冲对宫子中癸(戊之财)——R-杂-07『四柱无财官明现、支中同一字叠见冲对宫之财官』条件全部触发→倒冲格成格(取运 R-杂-28 按火土从旺论)。" + result: "match" + note: "" +- id: 杂-M04 + name: "无名" + pillars: ["甲寅", "庚午", "丙午", "甲午"] + book_verdict: "午多冲子官,倒冲格(取运篇以庚金无根置之不论、按炎上论)" + expected: "倒冲格/成/多午冲子取癸官为用" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "丙日午月,阳干临刃(丙刃在午)→月令无用神;月干庚偏财一透,但庚绝于寅、四支寅午午午无金气,财透而无根,依 R-杂-01 但书『透财尚可取格』(非财根深、非财透两位),可入杂格。三午叠见冲子,子中癸为丙之正官——R-杂-07 条件触发→倒冲格成格(取运 R-杂-29:庚无根置之不论,按木火炎上论)。" + result: "match" + note: "规则张力仍未消解:总纲第六步②无用门作『干头无财官煞食可取』、R-纲-16 禁『禄刃当令而干头已有财官七煞可取』,此造庚财明透,字面犯禁;赖 R-杂-01 但书『透财尚可,财根深或透两位方以财为重』解套——两条文一禁一许,本轮回修未及此,仍建议在总纲第六步或 R-纲-16 补『财透而无根、仅一位者不在此禁』,使与 R-杂-01 一致。" +- id: 杂-M05 + name: "张知县" + pillars: ["戊辰", "辛酉", "(辛酉)", "戊子"] + book_verdict: "辛日戊子时,干头无木火,朝阳格(金水伤官顺势)" + expected: "朝阳格/成/辛日戊子时、戊朝丙禄为辛得官" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "按取运篇四柱推:辛日酉月,酉本气辛为禄(阴干非刃)→月令无用神;干头戊印、辛比肩,无财官煞食,第六步无用门通过→许转杂格。辛日而时柱戊子(六辛日戊子时之式),丙戊同禄于巳、取戊朝丙为辛得官,天干戊辛辛戊无木无火——R-杂-08『辛日见戊、干头无木无火』条件全部触发→朝阳格成格,R-杂-16 破(见火见木)不触发。" + result: "match" + note: "缺柱存疑仍在(与本轮回修无关):论杂格原文仅列三柱『戊辰、辛酉、戊子』(日柱阙),取运篇作『戊辰、辛酉、辛酉、戊子』——日柱辛酉系据取运篇补录(pillars 中以括号标记);非此则『辛日戊子时』之式不成立。两篇传录详略不一,规则文件存疑注已载。" +- id: 杂-M06 + name: "蜀王" + pillars: ["己未", "戊辰", "戊辰", "庚申"] + book_verdict: "戊日庚申时以庚合乙为官,合禄格(土金食神、气势偏土金)" + expected: "合禄格/成/戊日庚申时、以庚合乙邀官" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "戊日辰月,辰本气戊比肩当令→月令无用神;辰中乙癸不透,第三步无透干之变。天干己戊戊庚无官煞,R-杂-09『命中无官星、戊日庚申时以庚合乙』条件触发;R-杂-15 破(官煞透、财重)不触发→合禄格成格(取运 R-杂-31 按土金食神泄秀论)。" + result: "match" + note: "路由张力仍未消解:时干庚食神透出,总纲第六步②无用门作『干头无财官煞食可取』——庚食透则正格路线成立(建禄月劫用食神泄秀,R-纲-02『透食化劫』),按总纲字面不应入杂格;而 R-杂-01 仅禁官煞与重财、未禁食透,本轮回修未统一两处对『食』的措辞。取运篇径按『土金食神之局,金运泄秀最吉』论运——合禄为名目、食神泄秀为实质。" +- id: 杂-M07 + name: "起丞相" + pillars: ["己酉", "癸未", "癸未", "庚申"] + book_verdict: "癸日庚申时以申合巳取官,合禄格" + expected: "合禄格/成/癸日庚申时、以申合巳取戊官" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "癸日未月,未本气己为七煞,年干己煞透出(总纲第二步偏官格、第三步本气透干,无透他干之辨主从问题);时干庚正印化煞——月令自有用神且煞印相生成格,总纲第六步无用门不通过(『月令自有用神……一概不得弃正格就杂格』,R-纲-16)。分格条文:R-杂-09『命中无官星』条件不触发(己煞明透年干);R-杂-15『干头透煞,自有官煞为用,不取外格』触发→合禄格不成,应定偏官格/成(煞印相生,庚印为相)。" + result: "mismatch" + note: "回修后仍未消解:本轮回修未触及此例——R-杂-09 未补『官煞明透者不适用』之排他例,书中命例标合禄格仍与 R-杂-09 条件、R-杂-15 禁令直接冲突。规则文件存疑注已载:取运篇此造月柱作『辛未』(非癸未),且作者径按『月令偏官、年上透出、时上庚印化煞为用』之正格解,斥『取巳中戊土官星』为官煞混杂——作者本人两说并存。按条文独立推导仍只支持偏官格;建议命例标注改从取运篇作者自解,或在 R-杂-09 注明排他例。" +- id: 杂-M08 + name: "王十万" + pillars: ["庚申", "乙酉", "丙申", "乙丑"] + book_verdict: "四柱皆财(金)、丙火坐申病地无根,弃命从财格" + expected: "弃命从财格/成/四柱皆财、日主无根从之" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "丙日酉月,酉本气辛正财当令(月令有用神,财格路由;从财系财格之变,不经杂格闸门)。支申酉申丑全财金、丙无火根,日主无气;月时两乙正印透干,本犯 R-杂-17『透印则身有所赖而不从』之破,然年干庚与月干乙相邻、乙庚相合而化——R-杂-17 但书『印被合化者不以为破(如王十万造两乙透印,乙庚相合而化、印不作印论,仍成从财)』正指此造→破条件不触发,R-杂-10『四柱皆财、日主无气(印被合化不作印论,身无所赖)』条件成立→弃命从财格成格。" + result: "match" + note: "回修后已消解:上一轮纯按条文只能判破、须回借总纲 R-纲-05 合救通法方与书合;本轮 R-杂-17 已补『印被合化者不以为破』但书且径引王十万造为证,条文内即可闭环。遗留存疑(与回修无关):时柱异文——论杂格作乙丑、取运篇作己丑;作乙丑则两乙一庚成争合、时干余一乙印,合化不彻底,取运篇之改似为弥合此嫌。" +- id: 杂-M09 + name: "李侍郎" + pillars: ["乙酉", "乙酉", "乙酉", "甲申"] + book_verdict: "四柱皆煞(金)、乙木无根,弃命从煞格" + expected: "弃命从煞格/成/四柱皆煞、日主无根从之" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "乙日酉月,酉本气辛七煞当令(偏官格路由;从煞系煞格之变)。地支申酉酉酉全煞、乙木无根,无丙丁伤食、无壬癸印——R-杂-11『四柱皆煞、日主无根』条件触发;天干乙乙乙甲比劫四见,然地支无木气、比劫无根虚浮,依 R-杂-18 但书『比劫无根虚浮不碍其从(如李侍郎造天干乙乙乙甲四见而地支无根,仍成从煞)』不碍其从,R-杂-18 破法(伤食、印)均不触发→弃命从煞格成格。" + result: "match" + note: "回修后已消解:上一轮指出 R-杂-11『四柱皆煞』之『皆』字面对比劫林立之造偏宽、建议补『比劫无根虚浮者不以为破』;本轮 R-杂-18 已补此但书且径引李侍郎造为证,条文覆盖此例。" +- id: 杂-M10 + name: "郭统制" + pillars: ["戊子", "庚申", "庚申", "庚申"] + book_verdict: "庚金生七月、支全申子(辰)水局冲寅午戌,井栏叉格" + expected: "井栏叉格/成/庚日生七月、申子辰冲寅午戌取财官" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "庚日申月,申本气庚为禄→月令无用神;干头戊偏印、三庚比肩,无财官煞食,第六步无用门通过→许转杂格。庚金生七月合 R-杂-12『生三七月』之半;所录四柱地支子申申申,有申子而缺辰,仅半合水局——按 R-纲-08 回修后『六合半合拱局力稍逊,亦足参变化』,申子半合水势成局可参,然 R-杂-12『地支全申子辰水局』字面仍以支全为正;取运篇时柱作庚辰,则申子辰齐全、条件全部触发。R-杂-19 破(透丙丁、见巳午)不触发。结论:井栏叉格/成(按取运篇庚辰时条件全合;按所录庚申时,半合成局、势合而字面非支全)。" + result: "match" + note: "失配存疑仍在:时柱论杂格作庚申、取运篇作庚辰——作庚辰方全合 R-杂-12『支全申子辰水局』之文,疑传抄异文(规则文件存疑注已载)。本轮 R-纲-08 补『六合半合拱局亦足参变化』,于申子半合水局之认定略有支援,但 R-杂-12 条文本身未改,字面触发仍以取运篇庚辰时为全合。结论方向与书一致,判 match。" +- id: 杂-M11 + name: "十二节度使" + pillars: ["乙未", "癸卯", "癸卯", "甲寅"] + book_verdict: "癸日甲寅时寅刑巳得财官,刑合格(取运篇按从儿格论)" + expected: "刑合格/成/癸日甲寅时、寅刑巳取丙戊财官" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "癸日卯月,卯本气乙食神当令(月令自有用神,食神格路由);癸水地支无根(卯卯未寅全无水印),木气成势。分格条文:时柱甲寅,R-杂-13『癸日甲寅时、以寅刑巳取财官』条件触发;R-杂-20 破——无庚申、天干乙癸癸甲无戊己透——均不触发→刑合格成格(取运 R-杂-36 按从儿格论)。" + result: "match" + note: "路由张力仍未消解:月令卯本气食神有气,总纲第六步『月令自有用神……不得弃正格就杂格』字面犯禁;癸水无根、食伤成势,正格路线实为从儿(食神格之变)——取运篇作者自承『其实乃从儿格也』。刑合为名目、从儿为实质,与杂-M06 合禄/食神泄秀同型:作者存外格名目而按正格实质取运。本轮回修未及此。" +- id: 杂-M12 + name: "章统制" + pillars: ["辛丑", "辛丑", "辛丑", "庚寅"] + book_verdict: "辛日丑多会巳取官,遥合格(丑遥巳)" + expected: "遥合格(丑遥巳)/成/丑多遥巳取丙官" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "辛日丑月,丑本气己偏印当令(月令自有用神,印格路由);己不透干,天干辛辛辛庚全比劫,支三丑土金成局。分格条文:辛日、支中丑多(三丑),R-杂-14 丑遥巳式『丑多则会巳、遥取巳中丙火为辛官』条件触发;R-杂-21 破——无子字、天干无丙丁戊己透——均不触发→遥合格(丑遥巳)成格(取运 R-杂-35 按土金成局、寅木无气论)。" + result: "match" + note: "路由张力仍未消解:月令丑本气己偏印当令,非『月令无用神』,与总纲第六步无用门字面不合;取运篇以『土金成局、时上寅木无气不能为用、势象偏于土金』说明舍时支寅中甲财丙官而取遥格之由。原书即如此收录,条文触发与书一致。本轮回修未及此。" +- id: 杂-M13 + name: "罗御史" + pillars: ["甲申", "甲戌", "甲子", "甲子"] + book_verdict: "甲子日甲子时子遥巳,作者谓此格可废、聊复存之(取运篇按月令偏财、用财损印论)" + expected: "遥合格(子遥巳)·格可废/实按财格用财损印论" + source: "第四十七篇·论杂格;第四十八篇(附)·论杂格取运" + derived: "甲日戌月,戌本气戊偏财当令(月令自有用神,财格路由);戊不透而三甲比肩透干,支两子为印——按总纲路由止于财格(用财损印,取运篇 R-杂-37 作者自解『其实月令偏财,用财损印,何必另取格局』)。分格条文:日柱甲子、时柱甲子,R-杂-14 子遥巳式『甲子日甲子时以子遥合巳』条件触发,但同条判定明言『辗转求合、似觉无情,此格可废,因罗御史命聊复存之』。结论:子遥巳式触发而作者自判可废,实按财格/成(用财损印)论——与 expected 一致。" + result: "match" + note: "此例为 R-纲-16『提纲有用提纲重』之自证:月令自有偏财用神,作者存外格之名而按正格实质论断,条文推导与书中结论殊途同归。本轮推导与回修无涉,结论不变。" diff --git a/scripts/_license_gate.py b/scripts/_license_gate.py new file mode 100644 index 0000000..346a57c --- /dev/null +++ b/scripts/_license_gate.py @@ -0,0 +1,103 @@ +"""软授权锁(防君子不防小人)。 + +总开关就是下面的 `_ENABLED` 一行变量:置 False 则完全放行。 +本锁只是授权边界的可见表达,真正的约束在 LICENSE.md 的法律条款—— +绕过、篡改、移除软锁或水印,即构成对授权的违反。 + +母版(技能开发目录)无 `data/.license.json`,本模块全部放行; +由 `tools/make_license_copy.py` 生成的定制副本带该状态文件, +按剩余次数与到期日限制使用,并以签名防止手工篡改状态文件。 + +退出码 4 = 授权不可用(次数用尽 / 已过期 / 状态文件被篡改)。 +""" +from __future__ import annotations + +import hashlib +import json +from datetime import date +from pathlib import Path + +_ENABLED = True # 软锁总开关:False = 完全放行 + +_SALT = "lingyao-miaojie-ziping-eightchar" +_COMPANY = "四川灵爻妙解文化传播有限公司" +STATE_REL = Path("data") / ".license.json" + + +def _state_path(root: Path) -> Path: + return root / STATE_REL + + +def _sig(st: dict) -> str: + raw = "|".join([ + str(st["copy_id"]), str(st["licensee"]), str(st["max_uses"]), + str(st["remaining_uses"]), str(st["expires_at"]), _SALT, + ]) + return hashlib.sha256(raw.encode("utf-8")).hexdigest()[:16] + + +def _load(root: Path) -> dict | None: + p = _state_path(root) + if not p.is_file(): + return None + try: + return json.loads(p.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError): + # 状态文件损坏按篡改变体处理:拒跑 + return {"copy_id": "?", "licensee": "?", "remaining_uses": 0, + "max_uses": 0, "expires_at": None, "sig": ""} + + +def _deny(reason: str, st: dict) -> str: + return (f"授权不可用:{reason}。" + f"(副本编号 {st.get('copy_id', '?')},授权对象:{st.get('licensee', '?')})" + f"本技能为测试授权副本,禁止商业用途与个人传播;" + f"如需续期或正式授权,请联系{_COMPANY}。") + + +def check(root: Path) -> str | None: + """返回 None 表示放行;返回字符串表示拒跑原因(由调用方打印到 stderr,退出码 4)。""" + if not _ENABLED: + return None + st = _load(root) + if st is None: + return None # 母版无状态文件,不锁 + if st.get("sig") != _sig(st): + return _deny("授权状态校验失败(授权文件被改动过)", st) + exp = st.get("expires_at") + if exp and date.today() > date.fromisoformat(exp): + return _deny(f"授权已于 {exp} 到期", st) + if st.get("remaining_uses", 0) <= 0: + return _deny("本副本的使用次数已用尽", st) + return None + + +def consume(root: Path) -> None: + """成功排盘一次后扣减一次。仅在 check 放行后调用。""" + if not _ENABLED: + return + st = _load(root) + if st is None: + return + st["remaining_uses"] = max(0, int(st.get("remaining_uses", 0)) - 1) + st["sig"] = _sig(st) + _state_path(root).write_text( + json.dumps(st, ensure_ascii=False, indent=2), encoding="utf-8") + + +def write_state(root: Path, *, copy_id: str, licensee: str, + max_uses: int, expires_at: str | None = None) -> dict: + """生成授权状态文件(供 tools/make_license_copy.py 调用,签名算法单点在此)。""" + st = { + "copy_id": copy_id, + "licensee": licensee, + "issued_at": date.today().isoformat(), + "expires_at": expires_at, + "max_uses": max_uses, + "remaining_uses": max_uses, + } + st["sig"] = _sig(st) + p = _state_path(root) + p.parent.mkdir(parents=True, exist_ok=True) + p.write_text(json.dumps(st, ensure_ascii=False, indent=2), encoding="utf-8") + return st diff --git a/scripts/astro/__init__.py b/scripts/astro/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scripts/astro/day_boundary.py b/scripts/astro/day_boundary.py new file mode 100644 index 0000000..6e751f6 --- /dev/null +++ b/scripts/astro/day_boundary.py @@ -0,0 +1,23 @@ +from datetime import datetime, timedelta + +ZI_HOUR_START = 23 # 真太阳时 23:00 换日 + + +def resolve_calendar_day(tst: datetime) -> tuple[datetime, dict]: + """ + 子初换日:真太阳时 23:00–24:00 归入次日。 + + 返回 + (日历日 00:00 的 datetime, flag) + """ + is_late_zi = tst.hour == ZI_HOUR_START + + day = tst.replace(hour=0, minute=0, second=0, microsecond=0) + if is_late_zi: + day += timedelta(days=1) + + return day, { + "rule": "子初换日@真太阳时23:00", + "is_late_zi": is_late_zi, + "tst_time": tst.strftime("%Y-%m-%d %H:%M:%S"), + } diff --git a/scripts/astro/equation_of_time.py b/scripts/astro/equation_of_time.py new file mode 100644 index 0000000..09d6d0b --- /dev/null +++ b/scripts/astro/equation_of_time.py @@ -0,0 +1,26 @@ +import math +from datetime import datetime + + +def equation_of_time_minutes(dt_utc: datetime) -> float: + """ + 均时差近似,精度约 ±15 秒(远优于时辰粒度所需)。 + 返回:真太阳时 = 平太阳时 + 返回值(分钟)。 + """ + assert dt_utc.tzinfo is not None + + # 一年中的天数序 + 当日小数 + doy = dt_utc.timetuple().tm_yday + frac = (dt_utc.hour * 3600 + dt_utc.minute * 60 + dt_utc.second) / 86400 + + gamma = 2 * math.pi / 365.0 * (doy - 1 + (frac - 0.5)) + + # 经典近似式(Spencer / NOAA 系列),单位:分钟 + eot = 229.18 * ( + 0.000075 + + 0.001868 * math.cos(gamma) + - 0.032077 * math.sin(gamma) + - 0.014615 * math.cos(2 * gamma) + - 0.040849 * math.sin(2 * gamma) + ) + return eot diff --git a/scripts/astro/solar_time.py b/scripts/astro/solar_time.py new file mode 100644 index 0000000..eaea2d1 --- /dev/null +++ b/scripts/astro/solar_time.py @@ -0,0 +1,39 @@ +from datetime import datetime, timedelta + +from .equation_of_time import equation_of_time_minutes + +STANDARD_MERIDIAN = 120.0 # 北京时间基准经线 + + +def to_true_solar_time(utc: datetime, lon: float) -> tuple[datetime, dict]: + """ + 完整真太阳时归算。 + + 链条:UTC → 120°E 平太阳时 → 经度修正 → 均时差 → 真太阳时 + + 参数 + utc : 带时区的 UTC datetime + lon : 出生地经度(东经为正) + + 返回 + (真太阳时 datetime, audit) + """ + assert utc.tzinfo is not None, "必须传入带时区的 UTC 时间" + + # 剥掉 tzinfo 是刻意的:后续全是 120°E 平太阳时域内的算术 + base_naive = (utc + timedelta(hours=8)).replace(tzinfo=None) + + # 经度修正:每偏离 1° 差 4 分钟 + lon_corr = (lon - STANDARD_MERIDIAN) * 4.0 + + eot = equation_of_time_minutes(utc) + + tst = base_naive + timedelta(minutes=lon_corr + eot) + + return tst, { + "longitude": lon, + "lon_correction_min": round(lon_corr, 2), + "eot_minutes": round(eot, 2), + "total_correction_min": round(lon_corr + eot, 2), + "tst": tst, + } diff --git a/scripts/astro/timezone_resolve.py b/scripts/astro/timezone_resolve.py new file mode 100644 index 0000000..fe7db2a --- /dev/null +++ b/scripts/astro/timezone_resolve.py @@ -0,0 +1,268 @@ +""" +timezone_resolve.py — 把「当地钟表时间 + 地点」解析为 UTC。 + +诚实声明(近似性) +================== +1949 年以前中国的「民国五时区」在执行层面存在大量地方差异:各省、 +各县乃至铁路、电报系统采用的标准时并不完全统一,本模块内嵌的 +「年份 × 省份 → UTC 偏移」表是按 1919 年中央观象台五时区方案 +(及后来的内政部修订)整理的**省级粒度近似**,与个别地方的实际 +执行可能有数十分钟乃至一小时量级的出入。昆仑/新藏时区的分界 +(82.5°E)在省级粒度无法表达,本表仅以少数西部城市的伪省份键 +(「新疆西部」「西藏西部」)粗略体现。调用方应保留 audit 中的 +source / tz_used,供人工复核边界情形。 +""" + +from datetime import datetime, timedelta, timezone +from zoneinfo import ZoneInfo + +# --------------------------------------------------------------------------- +# 民国五时区(1912-01-01 ~ 1949-09-30):省份 → UTC 偏移(分钟) +# --------------------------------------------------------------------------- +# 昆仑时区 82.5°E UTC+5:30 新疆西部、西藏西部(省级粒度无法表达,见伪键) +# 新藏时区 90°E UTC+6 新疆东部、西藏东部 +# 陇蜀时区 105°E UTC+7 陕西/甘肃/宁夏/四川/重庆/云南/贵州/青海大部 +# 中原时区 120°E UTC+8 华东/华中/华北/华南大部 +# 长白时区 127.5°E UTC+8:30 黑龙江/吉林 +PROVINCE_OFFSET_MIN: dict[str, int] = { + # 新藏时区 + "新疆": 360, + "西藏": 360, + # 昆仑时区(伪省份键,仅由城市表命中;省级粒度下新疆/西藏整体归入新藏时区) + "新疆西部": 330, + "西藏西部": 330, + # 陇蜀时区;西康(已撤销,今川西藏东)归此 + "陕西": 420, + "甘肃": 420, + "宁夏": 420, + "四川": 420, + "重庆": 420, + "云南": 420, + "贵州": 420, + "青海": 420, + "西康": 420, + # 长白时区。辽宁历史上处于长白时区西缘(亦有资料归中原), + # 本表取 +510;与 +480 之差为半小时,属本表近似范围 + "辽宁": 510, + "吉林": 510, + "黑龙江": 510, + # 中原标准时区。历史省份热河/察哈尔/绥远并入华北→中原; + # 内蒙古横跨甚广(西部实为陇蜀边缘),此处整体取中原,属近似 + "北京": 480, + "天津": 480, + "河北": 480, + "山西": 480, + "内蒙古": 480, + "热河": 480, + "察哈尔": 480, + "绥远": 480, + "上海": 480, + "江苏": 480, + "浙江": 480, + "安徽": 480, + "福建": 480, + "江西": 480, + "山东": 480, + "河南": 480, + "湖北": 480, + "湖南": 480, + "广东": 480, + "广西": 480, + "海南": 480, + "台湾": 480, + "香港": 480, + "澳门": 480, +} + +_ZONE_NAME = { + 330: "昆仑时区", + 360: "新藏时区", + 420: "陇蜀时区", + 480: "中原标准时区", + 510: "长白时区", +} + +_PSEUDO_PROVINCES = frozenset({"新疆西部", "西藏西部"}) + +# 城市名 → 省份(简表:省会及主要地级市;Location.name 常为城市名) +_CITY_TABLE: dict[str, tuple[str, ...]] = { + "河北": ("石家庄", "唐山", "秦皇岛", "邯郸", "邢台", "保定", "张家口", + "承德", "沧州", "廊坊", "衡水"), + "山西": ("太原", "大同", "阳泉", "长治", "晋城", "朔州", "晋中", + "运城", "忻州", "临汾", "吕梁"), + "内蒙古": ("呼和浩特", "包头", "乌海", "赤峰", "通辽", "鄂尔多斯", + "呼伦贝尔", "巴彦淖尔", "乌兰察布", "锡林郭勒", "阿拉善", "兴安"), + "辽宁": ("沈阳", "大连", "鞍山", "抚顺", "本溪", "丹东", "锦州", + "营口", "阜新", "辽阳", "盘锦", "铁岭", "朝阳", "葫芦岛"), + "吉林": ("长春", "吉林", "四平", "辽源", "通化", "白山", "松原", + "白城", "延边"), + "黑龙江": ("哈尔滨", "齐齐哈尔", "鸡西", "鹤岗", "双鸭山", "大庆", + "伊春", "佳木斯", "七台河", "牡丹江", "黑河", "绥化", "大兴安岭"), + "江苏": ("南京", "无锡", "徐州", "常州", "苏州", "南通", "连云港", + "淮安", "盐城", "扬州", "镇江", "泰州", "宿迁"), + "浙江": ("杭州", "宁波", "温州", "嘉兴", "湖州", "绍兴", "金华", + "衢州", "舟山", "台州", "丽水"), + "安徽": ("合肥", "芜湖", "蚌埠", "淮南", "马鞍山", "淮北", "铜陵", + "安庆", "黄山", "滁州", "阜阳", "宿州", "六安", "亳州", + "池州", "宣城"), + "福建": ("福州", "厦门", "莆田", "三明", "泉州", "漳州", "南平", + "龙岩", "宁德"), + "江西": ("南昌", "景德镇", "萍乡", "九江", "新余", "鹰潭", "赣州", + "吉安", "宜春", "抚州", "上饶"), + "山东": ("济南", "青岛", "淄博", "枣庄", "东营", "烟台", "潍坊", + "济宁", "泰安", "威海", "日照", "临沂", "德州", "聊城", + "滨州", "菏泽", "莱芜"), + "河南": ("郑州", "开封", "洛阳", "平顶山", "安阳", "鹤壁", "新乡", + "焦作", "濮阳", "许昌", "漯河", "三门峡", "南阳", "商丘", + "信阳", "周口", "驻马店", "济源"), + "湖北": ("武汉", "黄石", "十堰", "宜昌", "襄阳", "鄂州", "荆门", + "孝感", "荆州", "黄冈", "咸宁", "随州", "恩施", "仙桃", + "潜江", "天门"), + "湖南": ("长沙", "株洲", "湘潭", "衡阳", "邵阳", "岳阳", "常德", + "张家界", "益阳", "郴州", "永州", "怀化", "娄底", "湘西"), + "广东": ("广州", "韶关", "深圳", "珠海", "汕头", "佛山", "江门", + "湛江", "茂名", "肇庆", "惠州", "梅州", "汕尾", "河源", + "阳江", "清远", "东莞", "中山", "潮州", "揭阳", "云浮"), + "广西": ("南宁", "柳州", "桂林", "梧州", "北海", "防城港", "钦州", + "贵港", "玉林", "百色", "贺州", "河池", "来宾", "崇左"), + "海南": ("海口", "三亚", "三沙", "儋州"), + "四川": ("成都", "自贡", "攀枝花", "泸州", "德阳", "绵阳", "广元", + "遂宁", "内江", "乐山", "南充", "眉山", "宜宾", "广安", + "达州", "雅安", "巴中", "资阳", "阿坝", "甘孜", "凉山"), + "贵州": ("贵阳", "六盘水", "遵义", "安顺", "毕节", "铜仁", + "黔西南", "黔东南", "黔南"), + "云南": ("昆明", "曲靖", "玉溪", "保山", "昭通", "丽江", "普洱", + "临沧", "楚雄", "红河", "文山", "西双版纳", "大理", "德宏", + "怒江", "迪庆"), + "西藏": ("拉萨", "日喀则", "昌都", "林芝", "山南", "那曲"), + "西藏西部": ("阿里",), + "陕西": ("西安", "铜川", "宝鸡", "咸阳", "渭南", "延安", "汉中", + "榆林", "安康", "商洛"), + "甘肃": ("兰州", "嘉峪关", "金昌", "白银", "天水", "武威", "张掖", + "平凉", "酒泉", "庆阳", "定西", "陇南", "临夏", "甘南", "敦煌"), + "青海": ("西宁", "海东", "海北", "黄南", "果洛", "玉树", "海西", "海南州"), + "宁夏": ("银川", "石嘴山", "吴忠", "固原", "中卫"), + "新疆": ("乌鲁木齐", "克拉玛依", "吐鲁番", "哈密", "昌吉", "博尔塔拉", + "巴音郭楞", "库尔勒", "伊犁", "塔城", "阿勒泰", "石河子", + "奎屯", "阿拉尔", "五家渠"), + # 昆仑时区(82.5°E)大致覆盖:喀什噶尔、和阗一带 + "新疆西部": ("喀什", "和田", "克孜勒苏", "阿克苏", "阿图什", + "图木舒克", "莎车", "叶城"), + "台湾": ("台北", "高雄", "台中", "台南", "基隆", "新竹", "嘉义", "桃园"), +} + +CITY_TO_PROVINCE: dict[str, str] = { + city: prov for prov, cities in _CITY_TABLE.items() for city in cities +} + +_NAME_TO_PROVINCE: dict[str, str] = { + **{p: p for p in PROVINCE_OFFSET_MIN if p not in _PSEUDO_PROVINCES}, + **CITY_TO_PROVINCE, +} + +_PREFIX_KEYS = sorted(_NAME_TO_PROVINCE, key=len, reverse=True) + +_ADMIN_SUFFIXES = ( + "维吾尔自治区", "壮族自治区", "回族自治区", "特别行政区", + "自治区", "省", "市", "地区", "州", "盟", "县", "区", +) + +# 1986–1991 全国夏令时期间未实行夏令时的省份(官方仍用 UTC+8 北京时间; +# tzdata 的 Asia/Urumqi 条目同样不含 DST 规则,可相互印证) +_DST_EXEMPT_PROVINCES = frozenset({"新疆"}) + +_HIST_START = datetime(1912, 1, 1) +_HIST_END = datetime(1949, 10, 1) # 自此起回退 zoneinfo(Asia/Shanghai,含 1986–1991 DST) + + +def _strip_admin_suffix(name: str) -> str: + for suffix in _ADMIN_SUFFIXES: + if name.endswith(suffix) and len(name) > len(suffix): + return name[: -len(suffix)] + return name + + +def _resolve_province(name: str) -> str | None: + """从 Location.name 提取省份键;name 可能是省名或城市名,匹配不到返回 None。""" + key = (name or "").strip() + if not key: + return None + if key in _NAME_TO_PROVINCE: + return _NAME_TO_PROVINCE[key] + stripped = _strip_admin_suffix(key) + if stripped in _NAME_TO_PROVINCE: + return _NAME_TO_PROVINCE[stripped] + # 前缀匹配,如「甘肃省兰州市」「新疆乌鲁木齐」 + for cand in _PREFIX_KEYS: + if key.startswith(cand): + return _NAME_TO_PROVINCE[cand] + return None + + +def historical_offset_minutes(dt_naive: datetime, province: str) -> int | None: + """ + 若自维护表覆盖该 (年份, 省份),返回 UTC 偏移(分钟)。 + 否则返回 None,由调用方回退到 zoneinfo。 + + 覆盖区间:1912-01-01 ~ 1949-09-30(民国五时区)。 + 1912 年之前返回 None(zoneinfo 给 LMT,符合历史实况); + 1949-10-01 起返回 None(全国统一北京时间,zoneinfo 正确处理 1986–1991 DST)。 + """ + if not province or dt_naive < _HIST_START or dt_naive >= _HIST_END: + return None + key = province.strip() + return PROVINCE_OFFSET_MIN.get(key) or PROVINCE_OFFSET_MIN.get( + _strip_admin_suffix(key) + ) + + +def _fmt_offset(minutes: int) -> str: + sign = "+" if minutes >= 0 else "-" + m = abs(minutes) + return f"UTC{sign}{m // 60:02d}:{m % 60:02d}" + + +def to_utc(local_dt_naive: datetime, loc) -> tuple[datetime, dict]: + """ + 返回 (UTC datetime, audit_info)。 + audit_info 固定键:tz_used(str)、is_dst(bool)、dst_offset_min(int)、source(str)。 + """ + province = _resolve_province(getattr(loc, "name", "")) + offset = historical_offset_minutes(local_dt_naive, province) + + if offset is not None: + utc = (local_dt_naive - timedelta(minutes=offset)).replace( + tzinfo=timezone.utc + ) + return utc, { + "tz_used": f"{_ZONE_NAME[offset]}({_fmt_offset(offset)})", + "is_dst": False, + "dst_offset_min": 0, + "source": "historical_table", + } + + tz_name = getattr(loc, "tz", None) or "Asia/Shanghai" + tz = ZoneInfo(tz_name) + localized = local_dt_naive.replace(tzinfo=tz) + dst = localized.dst() + is_dst = bool(dst) and dst != timedelta(0) + dst_min = int(dst.total_seconds() // 60) if is_dst else 0 + + if is_dst and province in _DST_EXEMPT_PROVINCES: + # 退回标准时(UTC+8):直接按「标准偏移」换算,保持 naive 不变 + std_offset = localized.utcoffset() - dst + utc = (local_dt_naive - std_offset).replace(tzinfo=timezone.utc) + return utc, { + "tz_used": tz_name, + "is_dst": False, + "dst_offset_min": 0, + "source": "zoneinfo", + } + + utc = localized.astimezone(timezone.utc) + return utc, { + "tz_used": tz_name, + "is_dst": is_dst, + "dst_offset_min": dst_min, + "source": "zoneinfo", + } diff --git a/scripts/cast_chart.py b/scripts/cast_chart.py new file mode 100644 index 0000000..d464002 --- /dev/null +++ b/scripts/cast_chart.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python3 +# 副本 LY-20261007-AC63 · 授权对象 normal +"""子平排盘 —— 唯一对外接口。 + +用法: + python cast_chart.py --name 张三 --gender 男 \ + --birth "1990-05-14 08:30" --place "四川省成都市" +输出:Markdown 到 stdout。 + +退出码:0 成功;2 输入不可用(应追问用户);3 库内部错误(报错,不猜);4 授权不可用(软锁,见 LICENSE.md)。 +""" +import argparse +import sys +import traceback +from datetime import datetime +from pathlib import Path + +# 引导:无论从哪个目录调用,scripts/ 下的顶层包(geo/astro/chart/render)都可导入 +sys.path.insert(0, str(Path(__file__).resolve().parent)) + +# 免安装:优先使用随包内置的依赖(vendor/,版本锁定 tyme4py==1.5.0 + tzdata) +# vendor 目录不存在时回退到环境中已安装的包(开发模式) +_VENDOR = Path(__file__).resolve().parents[1] / "vendor" +if _VENDOR.is_dir(): + sys.path.insert(0, str(_VENDOR)) + + +def main() -> int: + ap = argparse.ArgumentParser( + prog="cast_chart.py", + description="子平真诠八字排盘:姓名/性别/出生时刻/出生地 → 结构化命盘 Markdown(只排盘,不断命)", + ) + ap.add_argument("--name", required=True, help="姓名") + ap.add_argument("--gender", required=True, choices=["男", "女"], + help="性别:男 或 女") + ap.add_argument("--birth", required=True, + help='出生时刻(当地钟表时间),格式 "YYYY-MM-DD HH:MM",时刻必需') + ap.add_argument("--place", required=True, + help="出生地,精确到地级市一级,如「四川省成都市」") + a = ap.parse_args() + + # 软授权锁:定制副本(含 data/.license.json)按授权次数/期限放行;母版无状态文件直接放行 + import _license_gate as _gate + _deny = _gate.check(Path(__file__).resolve().parents[1]) + if _deny: + print(f"ERROR: {_deny}", file=sys.stderr) + return 4 + + try: + # 延迟导入:让 --help 不依赖下游模块就绪;导入失败按库内部错误(退出码 3)处理 + from geo.cities import resolve_location, LocationError + from astro.timezone_resolve import to_utc + from astro.solar_time import to_true_solar_time + from astro.day_boundary import resolve_calendar_day + from chart.tyme_adapter import cast + from chart.luck import ( + compute_luck, decade_pillars, flow_months, flow_years, is_forward, + ) + from chart.model import build_chart_data + from render.markdown import render + + # L0-a 地点解析(失败抛 LocationError → 退出码 2) + try: + loc = resolve_location(a.place) + except LocationError as e: + print(f"ERROR: {e}", file=sys.stderr) + return 2 + + # L0-b 出生时刻解析 + try: + clock = datetime.strptime(a.birth.strip(), "%Y-%m-%d %H:%M") + except ValueError: + print("ERROR: 出生时间格式应为 YYYY-MM-DD HH:MM;" + "若用户只给了日期,请追问具体时刻。", file=sys.stderr) + return 2 + + # L0-c 当地钟表时间 → UTC(含历史时区/夏令时审计) + utc, tz_audit = to_utc(clock, loc) + + # L0-d UTC → 真太阳时(经度修正 + 均时差) + tst, st_audit = to_true_solar_time(utc, loc.lon) + + # L0-e 子初换日:真太阳时 23:00–24:00 归入次日 + day, bd_audit = resolve_calendar_day(tst) + + # 排盘时刻 = 换日后的日历日 + 真太阳时的时分秒 + cast_dt = day.replace(hour=tst.hour, minute=tst.minute, second=tst.second) + + # L1-a 排盘(tyme4py 唯一接触面) + raw = cast(cast_dt, a.gender) + + # L1-b 起运、大运、流年、流月 + forward = is_forward(a.gender, raw["year"]["gan"]) + luck = compute_luck( + birth_tst=tst, + prev_jie_time=raw["prev_jie"]["time"], + next_jie_time=raw["next_jie"]["time"], + forward=forward, + ) + decade = decade_pillars( + raw["month"]["gan"], raw["month"]["zhi"], forward, + luck["start_age_years"], cast_dt.year, + ) + this_year = datetime.now().year + years = flow_years(this_year, 10) + months = flow_months(this_year) + + # L1-c 组装 ChartData + chart = build_chart_data( + name=a.name, gender=a.gender, place=a.place, clock=a.birth, + loc=loc, tz_audit=tz_audit, st_audit=st_audit, bd_audit=bd_audit, + raw=raw, luck=luck, luck_pillars=decade, + flow_years=years, flow_months=months, + ) + + # L2 渲染:stdout 只出 Markdown + print(render(chart)) + _gate.consume(Path(__file__).resolve().parents[1]) + return 0 + except Exception: + print("ERROR: 排盘内部错误。请把以下信息原样报告给用户," + "不要自行猜测命盘。", file=sys.stderr) + traceback.print_exc(file=sys.stderr) + return 3 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/chart/__init__.py b/scripts/chart/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scripts/chart/luck.py b/scripts/chart/luck.py new file mode 100644 index 0000000..a401024 --- /dev/null +++ b/scripts/chart/luck.py @@ -0,0 +1,132 @@ +"""起运与大运(文档 4.8 节)。 + +规则(真诠体系): +- 阳男阴女顺排,阴男阳女逆排 +- 起运:顺排取出生时刻到下一节、逆排取到上一节的时间差 +- 折算:3 天 = 1 年(1 年 = 12 个月 = 360 天) +- 大运每步 10 年,从月柱干支起顺/逆推 + +纯 Python 历法推算,不 import tyme4py。 +""" +from datetime import datetime + +from .model import LuckPillar + +GAN = "甲乙丙丁戊己庚辛壬癸" +ZHI = "子丑寅卯辰巳午未申酉戌亥" + +YANG_GAN = frozenset("甲丙戊庚壬") + +# 年上起月法(五虎遁):年干 → 寅月天干 +# 甲己之年丙作首,乙庚之年戊为头,丙辛之年寻庚起,丁壬壬寅顺水流,戊癸甲寅 +_MONTH_HEAD_GAN = { + "甲": "丙", "己": "丙", + "乙": "戊", "庚": "戊", + "丙": "庚", "辛": "庚", + "丁": "壬", "壬": "壬", + "戊": "甲", "癸": "甲", +} + +# 节气月:月支从寅起(立春为寅月),(月支, 起始节气) +_SOLAR_MONTHS = ( + ("寅", "立春"), ("卯", "惊蛰"), ("辰", "清明"), ("巳", "立夏"), + ("午", "芒种"), ("未", "小暑"), ("申", "立秋"), ("酉", "白露"), + ("戌", "寒露"), ("亥", "立冬"), ("子", "大雪"), ("丑", "小寒"), +) + +SECONDS_PER_DAY = 86400 +DAYS_PER_LUCK_YEAR = 3.0 # 3 天折 1 年 + + +def ganzhi_of_year(y: int) -> str: + """公元 4 年为甲子,(y-4)%60 定位。""" + return GAN[(y - 4) % 10] + ZHI[(y - 4) % 12] + + +def ganzhi_cycle_next(gan: str, zhi: str, n: int) -> tuple[str, str]: + """干支同步推进 n 步(n 可为负)。""" + return GAN[(GAN.index(gan) + n) % 10], ZHI[(ZHI.index(zhi) + n) % 12] + + +def is_forward(gender: str, year_gan: str) -> bool: + """阳年干(甲丙戊庚壬)+ 男 → 顺;阴年干 + 女 → 顺。""" + return (year_gan in YANG_GAN) == (gender == "男") + + +def compute_luck( + birth_tst: datetime, + prev_jie_time: datetime, + next_jie_time: datetime, + forward: bool, +) -> dict: + """起运:顺排取下一节减出生,逆排取出生减上一节;3 天折 1 年。 + + 返回 {"is_forward", "start_age_years", "start_age_text"}。 + start_age_years 保留 4 位小数;起运年龄精度要到「天」级,否则起运年份会差一年。 + """ + if forward: + delta = next_jie_time - birth_tst + else: + delta = birth_tst - prev_jie_time + + start_age_years = delta.total_seconds() / SECONDS_PER_DAY / DAYS_PER_LUCK_YEAR + + return { + "is_forward": forward, + "start_age_years": round(start_age_years, 4), + "start_age_text": _age_to_text(start_age_years), + } + + +def _age_to_text(years: float) -> str: + """年数 → 「X 岁 Y 个月 Z 天」。 + + 按 1 年 = 12 个月 = 360 天折算(0.5 年 = 6 个月),四舍五入到天。 + """ + total_days = round(years * 360) + y = total_days // 360 + m = (total_days % 360) // 30 + d = total_days % 30 + return f"{y} 岁 {m} 个月 {d} 天" + + +def decade_pillars( + month_gan: str, + month_zhi: str, + forward: bool, + start_age_years: float, + birth_year: int, + n: int = 8, +) -> list[LuckPillar]: + """从月柱起顺/逆推 n 步大运(第 1 步为月柱 ±1)。""" + step = 1 if forward else -1 + pillars = [] + for index in range(n): + gan, zhi = ganzhi_cycle_next(month_gan, month_zhi, step * (index + 1)) + start_age = start_age_years + 10 * index + pillars.append(LuckPillar( + index=index + 1, + gan=gan, + zhi=zhi, + start_age=round(start_age, 4), + start_year=birth_year + round(start_age), + )) + return pillars + + +def flow_years(current_year: int, n: int = 10) -> list[tuple[int, str]]: + """从今年起 n 个流年干支。""" + return [(y, ganzhi_of_year(y)) for y in range(current_year, current_year + n)] + + +def flow_months(year: int) -> list[tuple[str, str]]: + """该年 12 个节气月,返回 (「X月(节气起)」, 干支)。 + + 月支从寅起(立春为寅月);月干按年上起月法(五虎遁)。 + """ + year_gan = GAN[(year - 4) % 10] + head = GAN.index(_MONTH_HEAD_GAN[year_gan]) + return [ + (f"{zhi}月({jie}起)", GAN[(head + i) % 10] + zhi) + for i, (zhi, jie) in enumerate(_SOLAR_MONTHS) + ] diff --git a/scripts/chart/model.py b/scripts/chart/model.py new file mode 100644 index 0000000..06ed3a3 --- /dev/null +++ b/scripts/chart/model.py @@ -0,0 +1,151 @@ +"""L1→L2 数据契约(文档 4.7 节)。 + +改动本文件等于改契约版本(schema_version)。 +本模块只做数据定义与组装,不含任何命理判断(P1)。 +""" +from dataclasses import dataclass, field +from datetime import datetime + + +@dataclass +class Pillar: + gan: str + zhi: str + gan_ten_god: str | None = None # 该柱天干相对日干的十神 + hidden_stems: list[str] = field(default_factory=list) # 藏干 + hidden_ten_gods: list[str] = field(default_factory=list) + na_yin: str | None = None + + +@dataclass +class LuckPillar: + index: int + gan: str + zhi: str + start_age: float + start_year: int + + +@dataclass +class ChartData: + # —— 输入 —— + name: str + gender: str + birthplace: str + birth_clock: str # 用户原始输入 + + # —— 时间归算审计(P3)—— + tz_used: str + is_dst: bool + lon_correction_min: float + eot_minutes: float + true_solar_time: str + is_late_zi: bool + + # —— 四柱 —— + year: Pillar + month: Pillar + day: Pillar + hour: Pillar + + # —— 派生 —— + day_master: str # 日干 + month_ling: str # 月令地支(取格之锚) + solar_term_before: str # 出生前一个节气 + solar_term_after: str # 出生后一个节气 + luck_pillars: list[LuckPillar] = field(default_factory=list) + + # —— 派生(渲染层补充字段)—— + luck_is_forward: bool = False # 大运顺排/逆排 + start_age_text: str = "" # 起运年龄,如「7 岁 7 个月 19 天」 + terrain: dict[str, str] = field(default_factory=dict) # 四柱键 → 十二长生 + void: dict[str, str] = field(default_factory=dict) # {"day": .., "hour": ..} + shen_sha: list[str] = field(default_factory=list) # 神煞 + flow_years: list[tuple[int, str]] = field(default_factory=list) # 流年 (年份, 干支) + flow_months: list[tuple[str, str]] = field(default_factory=list) # 流月 (标签, 干支) + tai_yuan: str = "" # 胎元 + ming_gong: str = "" # 命宫 + + # —— 溯源 —— + library_version: str = "" # tyme4py 版本,写入输出 + schema_version: str = "1.0" + + +def _fmt_dt(dt: datetime) -> str: + return dt.strftime("%Y-%m-%d %H:%M") + + +def _fmt_term(term: dict) -> str: + """{"name", "time"} → 「节气名 YYYY-MM-DD HH:MM」""" + return f"{term['name']} {_fmt_dt(term['time'])}" + + +def _build_pillar(key: str, raw: dict) -> Pillar: + gz = raw[key] + hidden_pairs = raw.get("hidden", {}).get(key, []) + return Pillar( + gan=gz["gan"], + zhi=gz["zhi"], + gan_ten_god=raw.get("ten_god", {}).get(key), + hidden_stems=[pair[0] for pair in hidden_pairs], + hidden_ten_gods=[pair[1] for pair in hidden_pairs], + na_yin=raw.get("na_yin", {}).get(key), + ) + + +def build_chart_data( + name: str, + gender: str, + place: str, + clock: str, + loc, + tz_audit: dict, + st_audit: dict, + bd_audit: dict, + raw: dict, + luck: dict, + luck_pillars: list[LuckPillar], + flow_years: list[tuple[int, str]], + flow_months: list[tuple[str, str]], +) -> ChartData: + """把 tyme_adapter 的原始 dict、各层 audit 与 luck 结果组装成 ChartData。 + + 纯组装,零命理判断。 + """ + return ChartData( + # 输入 + name=name, + gender=gender, + birthplace=place, + birth_clock=clock, + # 时间归算审计 + tz_used=tz_audit["tz_used"], + is_dst=tz_audit["is_dst"], + lon_correction_min=st_audit["lon_correction_min"], + eot_minutes=st_audit["eot_minutes"], + true_solar_time=_fmt_dt(st_audit["tst"]), + is_late_zi=bd_audit["is_late_zi"], + # 四柱 + year=_build_pillar("year", raw), + month=_build_pillar("month", raw), + day=_build_pillar("day", raw), + hour=_build_pillar("hour", raw), + # 派生 + day_master=raw["day_master"], + month_ling=raw["month"]["zhi"], + solar_term_before=_fmt_term(raw["prev_jie"]), + solar_term_after=_fmt_term(raw["next_jie"]), + luck_pillars=luck_pillars, + # 派生(补充字段) + luck_is_forward=luck["is_forward"], + start_age_text=luck["start_age_text"], + terrain=raw.get("terrain", {}), + void=raw.get("void", {}), + shen_sha=raw.get("shen_sha", []), + flow_years=flow_years, + flow_months=flow_months, + tai_yuan=raw.get("tai_yuan", ""), + ming_gong=raw.get("ming_gong", ""), + # 溯源 + library_version=raw.get("library_version", ""), + ) diff --git a/scripts/chart/tyme_adapter.py b/scripts/chart/tyme_adapter.py new file mode 100644 index 0000000..a03688b --- /dev/null +++ b/scripts/chart/tyme_adapter.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +"""tyme4py 唯一接触面:输入真太阳时时刻,返回四柱及派生信息(纯计算,无命理判断)。""" +from datetime import datetime + +import tyme4py +from tyme4py.solar import SolarTime, SolarTerm + +LIBRARY_VERSION = tyme4py.__version__ + +_PILLARS = ("year", "month", "day", "hour") + + +def _solar_time_to_dt(t: SolarTime) -> datetime: + return datetime(t.get_year(), t.get_month(), t.get_day(), + t.get_hour(), t.get_minute(), t.get_second()) + + +def _jie_bounds(cast_dt: datetime) -> tuple: + """出生时刻前后最近的两个节令(is_jie()),以出生年为中心 ±1 年遍历。""" + prev_jie = next_jie = None + for y in (cast_dt.year - 1, cast_dt.year, cast_dt.year + 1): + for i in range(24): + term = SolarTerm.from_index(y, i) + if not term.is_jie(): + continue + t = _solar_time_to_dt(term.get_julian_day().get_solar_time()) + if t < cast_dt and (prev_jie is None or t > prev_jie[1]): + prev_jie = (term, t) + elif t > cast_dt and (next_jie is None or t < next_jie[1]): + next_jie = (term, t) + return prev_jie, next_jie + + +def _hidden(me, earth_branch) -> list: + items = [] + for getter in ("get_hide_heaven_stem_main", + "get_hide_heaven_stem_middle", + "get_hide_heaven_stem_residual"): + hs = getattr(earth_branch, getter)() + if hs is not None: + items.append([hs.get_name(), me.get_ten_star(hs).get_name()]) + return items + + +def _shen_sha(solar: SolarTime) -> list: + try: + return [g.get_name() for g in solar.get_lunar_hour().get_lunar_day().get_gods()] + except Exception: + return [] + + +def cast(cast_dt: datetime, gender: str) -> dict: + """cast_dt:已完成子初换日调整的真太阳时(naive,北京时间语义)。""" + solar = SolarTime.from_ymd_hms(cast_dt.year, cast_dt.month, cast_dt.day, + cast_dt.hour, cast_dt.minute, cast_dt.second) + ec = solar.get_lunar_hour().get_eight_char() + pillars = {k: getattr(ec, f"get_{k}")() for k in _PILLARS} + me = ec.get_day().get_heaven_stem() + + prev_jie, next_jie = _jie_bounds(cast_dt) + + return { + **{k: {"gan": p.get_heaven_stem().get_name(), + "zhi": p.get_earth_branch().get_name()} for k, p in pillars.items()}, + "day_master": me.get_name(), + "ten_god": {k: me.get_ten_star(pillars[k].get_heaven_stem()).get_name() + for k in ("year", "month", "hour")}, + "hidden": {k: _hidden(me, pillars[k].get_earth_branch()) for k in _PILLARS}, + "terrain": {k: me.get_terrain(pillars[k].get_earth_branch()).get_name() + for k in _PILLARS}, + "na_yin": {k: pillars[k].get_sound().get_name() for k in _PILLARS}, + "void": {k: "".join(b.get_name() for b in pillars[k].get_extra_earth_branches()) + for k in ("day", "hour")}, + "shen_sha": _shen_sha(solar), + "prev_jie": {"name": prev_jie[0].get_name(), "time": prev_jie[1]}, + "next_jie": {"name": next_jie[0].get_name(), "time": next_jie[1]}, + "tai_yuan": ec.get_fetal_origin().get_name(), + "ming_gong": ec.get_own_sign().get_name(), + "library_version": LIBRARY_VERSION, + "raw": ec, + } diff --git a/scripts/geo/__init__.py b/scripts/geo/__init__.py new file mode 100644 index 0000000..534ae4a --- /dev/null +++ b/scripts/geo/__init__.py @@ -0,0 +1,5 @@ +"""地理模块:出生地字符串 → 经纬度与时区。""" + +from .cities import Location, LocationError, resolve_location + +__all__ = ["Location", "LocationError", "resolve_location"] diff --git a/scripts/geo/cities.py b/scripts/geo/cities.py new file mode 100644 index 0000000..e7415fc --- /dev/null +++ b/scripts/geo/cities.py @@ -0,0 +1,84 @@ +from dataclasses import dataclass +from pathlib import Path +import json + +@dataclass(frozen=True) +class Location: + name: str + lon: float # 东经为正 + lat: float + tz: str # IANA,如 "Asia/Shanghai" + +class LocationError(Exception): + """出生地无法解析 —— 必须向上抛,不得降级。""" + +_CACHE: dict[str, Location] | None = None +_ALIASES: dict[str, str] | None = None + +# 省级行政区简称/全称前缀,用于「新疆乌鲁木齐市」这类输入的兜底剥离 +_PROVINCE_NAMES = ( + "北京", "天津", "上海", "重庆", + "河北", "山西", "内蒙古", "辽宁", "吉林", "黑龙江", + "江苏", "浙江", "安徽", "福建", "江西", "山东", + "河南", "湖北", "湖南", "广东", "广西", "海南", + "四川", "贵州", "云南", "西藏", "陕西", "甘肃", + "青海", "宁夏", "新疆", "香港", "澳门", "台湾", +) + +# 行政通名,长的必须排在短的前面(replace 顺序敏感) +_ADMIN_WORDS = ( + "壮族自治区", "回族自治区", "维吾尔自治区", "自治区", + "特别行政区", "省", "市", +) + +def _load() -> dict[str, Location]: + global _CACHE, _ALIASES + if _CACHE is None: + raw = json.loads( + (Path(__file__).parents[2] / "data" / "cities.json") + .read_text(encoding="utf-8") + ) + _ALIASES = dict(raw.get("_aliases", {})) + _CACHE = { + k: Location(k, v["lon"], v["lat"], v["tz"]) + for k, v in raw.items() + if not k.startswith("_") # 跳过 _meta / _aliases + } + return _CACHE + +def _alias(key: str) -> str | None: + # 别名表:乌市、蓉城、羊城……(放在 cities.json 的 _aliases 段) + _load() + assert _ALIASES is not None + return _ALIASES.get(key) + +def _strip_admin(text: str) -> str: + """去掉「省/市/自治区/壮族自治区/回族自治区/维吾尔自治区/特别行政区」等字样。""" + for word in _ADMIN_WORDS: + text = text.replace(word, "") + return text + +def resolve_location(text: str) -> Location: + """ + 容错匹配:全称 → 去后缀(市/省/县/区)→ 别名 → 去行政通名(含省名前缀)。 + 命中即返回;未命中抛 LocationError(由 Agent 转成追问)。 + """ + table = _load() + key = text.strip() + + candidates: list[str | None] = [key, key.rstrip("市省县区"), _alias(key)] + + stripped = _strip_admin(key) + candidates += [stripped, _alias(stripped)] + for province in _PROVINCE_NAMES: + if stripped != province and stripped.startswith(province): + rest = stripped[len(province):] + candidates += [rest, _alias(rest)] + + for candidate in candidates: + if candidate and candidate in table: + return table[candidate] + raise LocationError( + f"未能解析出生地:{text!r}。请用户补充到地级市一级," + f"如「四川省成都市」「新疆乌鲁木齐市」。" + ) diff --git a/scripts/render/__init__.py b/scripts/render/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/scripts/render/markdown.py b/scripts/render/markdown.py new file mode 100644 index 0000000..6356df2 --- /dev/null +++ b/scripts/render/markdown.py @@ -0,0 +1,116 @@ +# scripts/render/markdown.py +"""ChartData → 自包含 Markdown(输出格式契约 v1.0)。 + +纯文本、无代码块、无表格嵌套;审计信息放末尾;字段名用中文; +不包含任何命理判断(P1)。 +""" + + +def render(chart) -> str: + L = [] + L.append(f"# 命盘:{chart.name}") + L.append("") + L.append(f"- 性别:{chart.gender}") + L.append(f"- 出生地:{chart.birthplace}") + L.append(f"- 输入时间:{chart.birth_clock}") + L.append(f"- 真太阳时:{chart.true_solar_time}") + if chart.is_late_zi: + L.append( + "- ⚠️ 晚子时:本造落于真太阳时 23:00–24:00," + "已按「子初换日」归入次日。另存「子正换日」一派," + "日柱与时柱将不同,结论需谨慎。" + ) + L.append("") + + L.append("## 四柱") + L.append("") + for key, label, p in (("year", "年柱", chart.year), + ("month", "月柱", chart.month), + ("day", "日柱", chart.day), + ("hour", "时柱", chart.hour)): + god = p.gan_ten_god or ("日主" if key == "day" else "") + line = f"- {label}:{p.gan}{p.zhi}" + if god: + line += f"({god})" + changsheng = chart.terrain.get(key) + if changsheng: + line += f" · {changsheng}" + L.append(line) + L.append("") + + L.append("## 地支藏干") + L.append("") + for label, p in (("年支", chart.year), ("月支", chart.month), + ("日支", chart.day), ("时支", chart.hour)): + if p.hidden_stems: + pairs = "、".join(f"{s}({g})" + for s, g in zip(p.hidden_stems, p.hidden_ten_gods)) + L.append(f"- {label} {p.zhi}:{pairs}") + L.append("") + + L.append("## 四柱空亡") + L.append("") + L.append(f"- 日柱空亡:{chart.void['day']};时柱空亡:{chart.void['hour']}") + L.append("") + + L.append("## 纳音") + L.append("") + for label, p in (("年柱", chart.year), ("月柱", chart.month), + ("日柱", chart.day), ("时柱", chart.hour)): + if p.na_yin: + L.append(f"- {label}:{p.na_yin}") + L.append("") + + L.append("## 神煞") + L.append("") + if chart.shen_sha: + for s in chart.shen_sha: + L.append(f"- {s}") + else: + L.append("- (本造未取神煞)") + L.append("") + + L.append("## 节令") + L.append("") + L.append(f"- 月令:{chart.month_ling}") + L.append(f"- 生于 {chart.solar_term_before} 之后、{chart.solar_term_after} 之前") + L.append(f"- 胎元:{chart.tai_yuan} 命宫:{chart.ming_gong}") + L.append("") + + L.append("## 大运") + L.append("") + direction = "顺行" if chart.luck_is_forward else "逆行" + if chart.luck_pillars: + L.append(f"- 排法:{direction};起运:{chart.start_age_text}" + f"({chart.luck_pillars[0].start_age:.2f} 岁)") + else: + L.append(f"- 排法:{direction};起运:{chart.start_age_text}") + for lp in chart.luck_pillars: + L.append(f"- 第 {lp.index} 步:{lp.gan}{lp.zhi}" + f"({lp.start_age:.2f} 岁起,{lp.start_year} 年)") + L.append("") + + L.append("## 流年") + L.append("") + for year, gz in chart.flow_years: + L.append(f"- {year} {gz}") + L.append("") + + L.append("## 流月") + L.append("") + for label, gz in chart.flow_months: + L.append(f"- {label}:{gz}") + L.append("") + + L.append("---") + L.append("## 排盘审计") + L.append("") + L.append(f"- 时区:{chart.tz_used}(夏令时:{'是' if chart.is_dst else '否'})") + L.append(f"- 经度修正:{chart.lon_correction_min:+.2f} 分 / " + f"均时差:{chart.eot_minutes:+.2f} 分 / " + f"合计修正:{chart.lon_correction_min + chart.eot_minutes:+.2f} 分") + L.append("- 日界规则:子初换日(真太阳时 23:00)") + L.append(f"- 历法库:tyme4py {chart.library_version}") + L.append(f"- 输出 schema:{chart.schema_version}") + + return "\n".join(L) diff --git a/tests/golden/history_tz.yaml b/tests/golden/history_tz.yaml new file mode 100644 index 0000000..51000b9 --- /dev/null +++ b/tests/golden/history_tz.yaml @@ -0,0 +1,35 @@ +# 黄金样本:历史时区与夏令时 —— 设计文档 §6.1 C 组 +# utc_offset_min = 钟表时间 − UTC(分钟),用于验证 UTC 解算本身; +# source 区分偏移来源:"historical_table"(自维护历史表)或 "zoneinfo"。 + +- name: 1988年夏_北京夏令时 + place: 北京市 + birth: "1988-07-15 10:00" + expect: + tz_used: "Asia/Shanghai" + is_dst: true + dst_offset_min: 60 + utc_offset_min: 540 # UTC+9(夏令时),UTC = 当日 01:00 + +- name: 1935年_兰州民国陇蜀时区 + place: 甘肃省兰州市 + birth: "1935-03-20 10:00" + expect: + source: "historical_table" # tzdata 的 Asia/Chongqing 1935 段为 +8,不符民国陇蜀时区 + utc_offset_min: 420 # 陇蜀时区中央经线 105°E → UTC+7 + is_dst: false + +- name: 1900年_北京_zoneinfo兜底 + place: 北京市 + birth: "1900-06-15 10:00" + expect: + source: "zoneinfo" + tz_used: "Asia/Shanghai" + is_dst: false + +- name: 1990年_乌鲁木齐_不执行夏令时 + place: 新疆乌鲁木齐市 + birth: "1990-06-15 12:00" + expect: + is_dst: false + utc_offset_min: 480 # UTC = 钟表时间 − 8h(新疆不按夏令时拨快) diff --git a/tests/golden/longitudes.yaml b/tests/golden/longitudes.yaml new file mode 100644 index 0000000..1ed7014 --- /dev/null +++ b/tests/golden/longitudes.yaml @@ -0,0 +1,44 @@ +# 黄金样本:经度修正梯度 —— lon_correction_min = (lon − 120) × 4 分钟 +# 覆盖 120°E 附近(≈0)、西部大负修正、东部正修正;lon 为城市表应有值(±0.1° 级,见 §4.1)。 + +- name: 上海_几乎零修正 + place: 上海市 + lon: 121.47 + birth: "1990-06-15 12:00" + expect_lon_correction_min: 5.88 + tolerance: 0.1 + +- name: 杭州_东经120度附近 + place: 浙江省杭州市 + lon: 120.16 + birth: "1990-06-15 12:00" + expect_lon_correction_min: 0.64 + tolerance: 0.1 + +- name: 喀什_最西_负修正近三小时 + place: 新疆喀什市 + lon: 75.99 + birth: "1990-06-15 12:00" + expect_lon_correction_min: -176.04 # ≈ −176 分 + tolerance: 0.1 + +- name: 哈尔滨_最东_正修正 + place: 黑龙江省哈尔滨市 + lon: 126.63 + birth: "1990-06-15 12:00" + expect_lon_correction_min: 26.52 # ≈ +26.5 分 + tolerance: 0.1 + +- name: 成都_负修正过半时辰 + place: 四川省成都市 + lon: 104.07 + birth: "1990-06-15 12:00" + expect_lon_correction_min: -63.72 + tolerance: 0.1 + +- name: 乌鲁木齐_负修正超两时辰 + place: 新疆乌鲁木齐市 + lon: 87.62 + birth: "1990-06-15 12:00" + expect_lon_correction_min: -129.52 + tolerance: 0.1 diff --git a/tests/golden/time_boundary.yaml b/tests/golden/time_boundary.yaml new file mode 100644 index 0000000..25e67d8 --- /dev/null +++ b/tests/golden/time_boundary.yaml @@ -0,0 +1,46 @@ +# 黄金样本:真太阳时边界(A 组)+ 晚子时日界(B 组)—— 设计文档 §6.1 +# +# 经度修正公式:(lon − 120°E) × 4 分钟/度 +# A 组断言 expect.lon_correction_min(容差 tolerance); +# 带 expect.true_solar_time 的条目另按 true_solar_time_tolerance_min 宽松比对; +# B 组断言全链条(geo → tz → solar → day_boundary)输出的 expect.is_late_zi。 + +# ---------- A 组:经度修正 ---------- +- name: 乌鲁木齐_北京时间上午_必然错位 + place: 新疆乌鲁木齐市 + birth: "1990-06-15 08:00" + tolerance: 0.1 + expect: + lon_correction_min: -129.5 # (87.62 − 120) × 4 = −129.52 + true_solar_time: "1990-06-15 05:52" # 文档给定(约值) + true_solar_time_tolerance_min: 3 + +- name: 成都_经度修正过半 + place: 四川省成都市 + birth: "1990-06-15 12:00" + tolerance: 0.1 + expect: + lon_correction_min: -63.7 # (104.07 − 120) × 4 = −63.72 + +- name: 上海_几乎无修正 + place: 上海市 + birth: "1990-06-15 12:00" + tolerance: 0.1 + expect: + lon_correction_min: 5.9 # (121.47 − 120) × 4 = +5.88 + +# ---------- B 组:晚子时边界(子初换日@真太阳时 23:00) ---------- +# 北京 lon=116.41,经度修正约 −14.4 分;1 月 15 日均时差约 −9.5 分。 +# 注意:不能用 6–9 月的日期——1990 年北京处于夏令时(钟表已拨快 1 小时), +# 会先把钟表读数拉回 22 点,破坏样本意图。1 月无夏令时。 +- name: 北京_钟表23:30_真太阳时23点_晚子时 + place: 北京市 + birth: "1990-01-15 23:30" + expect: + is_late_zi: true # 真太阳时 ≈ 23:06 → 归次日 + +- name: 北京_钟表22:30_真太阳时22点_非晚子时 + place: 北京市 + birth: "1990-01-15 22:30" + expect: + is_late_zi: false # 真太阳时 ≈ 22:06 → 当日 diff --git a/tests/test_day_boundary.py b/tests/test_day_boundary.py new file mode 100644 index 0000000..d371cc1 --- /dev/null +++ b/tests/test_day_boundary.py @@ -0,0 +1,69 @@ +"""子初换日(设计文档 §4.5 / §6.1 B 组)。 + +- 纯函数边界:真太阳时 22:59→当日 False,23:00→次日 True, + 23:59→次日 True,00:00→当日 False +- 黄金样本:golden/time_boundary.yaml 中带 expect.is_late_zi 的条目, + 走全链条 L0-a ~ L0-e(日界判定必须用真太阳时,不能用钟表时间) +""" +import sys +import unittest +from datetime import datetime +from pathlib import Path + +import yaml + +SKILL_ROOT = Path(__file__).resolve().parents[1] +SCRIPTS_DIR = SKILL_ROOT / "scripts" +GOLDEN_DIR = Path(__file__).resolve().parent / "golden" +if str(SCRIPTS_DIR) not in sys.path: + sys.path.insert(0, str(SCRIPTS_DIR)) + +from astro.day_boundary import resolve_calendar_day # noqa: E402 +from astro.solar_time import to_true_solar_time # noqa: E402 +from astro.timezone_resolve import to_utc # noqa: E402 +from geo.cities import resolve_location # noqa: E402 + +# (真太阳时, 期望日历日, 期望 is_late_zi) +BOUNDARY_CASES = [ + ("1990-06-15 22:59", "1990-06-15", False), + ("1990-06-15 23:00", "1990-06-16", True), + ("1990-06-15 23:59", "1990-06-16", True), + ("1990-06-16 00:00", "1990-06-16", False), +] + + +class DayBoundaryUnitTest(unittest.TestCase): + def test_boundary_cases(self): + for tst_str, day_str, expect_late in BOUNDARY_CASES: + with self.subTest(tst=tst_str): + tst = datetime.strptime(tst_str, "%Y-%m-%d %H:%M") + day, flag = resolve_calendar_day(tst) + self.assertEqual(day, datetime.strptime(day_str, "%Y-%m-%d")) + self.assertIs(flag["is_late_zi"], expect_late) + + def test_day_is_midnight(self): + # 返回的日历日必须是 00:00:00 + day, _flag = resolve_calendar_day(datetime(1990, 6, 15, 23, 30)) + self.assertEqual((day.hour, day.minute, day.second), (0, 0, 0)) + + +class LateZiGoldenTest(unittest.TestCase): + def test_late_zi_samples(self): + with open(GOLDEN_DIR / "time_boundary.yaml", encoding="utf-8") as f: + samples = [ + s for s in yaml.safe_load(f) + if "is_late_zi" in s.get("expect", {}) + ] + self.assertGreaterEqual(len(samples), 2, "time_boundary.yaml B 组应有 2 条样本") + for s in samples: + with self.subTest(sample=s["name"], place=s["place"]): + loc = resolve_location(s["place"]) + clock = datetime.strptime(s["birth"], "%Y-%m-%d %H:%M") + utc, _tz_audit = to_utc(clock, loc) + tst, _st_audit = to_true_solar_time(utc, loc.lon) + _day, flag = resolve_calendar_day(tst) + self.assertIs(flag["is_late_zi"], s["expect"]["is_late_zi"]) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_e2e.py b/tests/test_e2e.py new file mode 100644 index 0000000..5dfd65c --- /dev/null +++ b/tests/test_e2e.py @@ -0,0 +1,64 @@ +"""端到端:subprocess 调 scripts/cast_chart.py(设计文档 §4.10 / §5)。 + +退出码约定:0 成功;2 输入不可用(地点/格式);3 库内部错误。 +""" +import os +import subprocess +import sys +import unittest +from pathlib import Path + +SKILL_ROOT = Path(__file__).resolve().parents[1] +SCRIPTS_DIR = SKILL_ROOT / "scripts" +CAST_CHART = SCRIPTS_DIR / "cast_chart.py" + + +def run_cast(*args): + env = dict(os.environ) + env["PYTHONPATH"] = str(SCRIPTS_DIR) + os.pathsep + env.get("PYTHONPATH", "") + return subprocess.run( + [sys.executable, str(CAST_CHART), *args], + cwd=str(SCRIPTS_DIR), + env=env, + capture_output=True, + text=True, + timeout=120, + ) + + +class CastChartE2ETest(unittest.TestCase): + def test_chengdu_morning_chart(self): + """张三 男 1990-05-14 08:30 四川省成都市 → 正常出盘(巳月辛巳)。""" + r = run_cast( + "--name", "张三", "--gender", "男", + "--birth", "1990-05-14 08:30", "--place", "四川省成都市", + ) + self.assertEqual(r.returncode, 0, f"stderr:\n{r.stderr}") + for marker in ("## 四柱", "## 大运", "## 排盘审计", "辛巳"): + self.assertIn(marker, r.stdout) + + def test_beijing_late_zi_hint(self): + """李四 女 1990-01-15 23:30 北京市 → 真太阳时约 23:06,须含晚子时提示。 + + 取 1 月而非 6 月:1990 年北京处于夏令时,6 月的钟表 23:30 会被拉回 22 点。 + """ + r = run_cast( + "--name", "李四", "--gender", "女", + "--birth", "1990-01-15 23:30", "--place", "北京市", + ) + self.assertEqual(r.returncode, 0, f"stderr:\n{r.stderr}") + self.assertIn("晚子时", r.stdout) + + def test_unresolvable_place_exit_2(self): + """王五 男 1990-01-01 12:00 火星 → LocationError,退出码 2。""" + r = run_cast( + "--name", "王五", "--gender", "男", + "--birth", "1990-01-01 12:00", "--place", "火星", + ) + self.assertEqual(r.returncode, 2, + f"stdout:\n{r.stdout}\nstderr:\n{r.stderr}") + self.assertIn("ERROR", r.stderr) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_equation_of_time.py b/tests/test_equation_of_time.py new file mode 100644 index 0000000..19fb72e --- /dev/null +++ b/tests/test_equation_of_time.py @@ -0,0 +1,50 @@ +"""均时差单测:四个已知极值点(设计文档 §4.2 / §6.2)。 + +采样方式:UTC 正午(12:00Z),容差 ±0.5 分。 +""" +import sys +import unittest +from datetime import datetime, timezone +from pathlib import Path + +SKILL_ROOT = Path(__file__).resolve().parents[1] +SCRIPTS_DIR = SKILL_ROOT / "scripts" +if str(SCRIPTS_DIR) not in sys.path: + sys.path.insert(0, str(SCRIPTS_DIR)) + +from astro.equation_of_time import equation_of_time_minutes # noqa: E402 + +# (月, 日, 已知均时差/分) —— 文档 §4.2 给出的全年极值 +EXTREMA = [ + (2, 11, -14.2), # 全年最小 + (5, 14, 3.7), + (7, 26, -6.5), + (11, 3, 16.4), # 全年最大 +] + + +class EquationOfTimeExtremumTest(unittest.TestCase): + def test_extremum_points(self): + for month, day, expected in EXTREMA: + with self.subTest(date=f"1990-{month:02d}-{day:02d}"): + dt_utc = datetime(1990, month, day, 12, 0, tzinfo=timezone.utc) + eot = equation_of_time_minutes(dt_utc) + self.assertAlmostEqual(eot, expected, delta=0.5) + + def test_year_round_within_physical_bounds(self): + # 每月 15 日 UTC 正午采样,均时差物理范围应落在约 −14.3 ~ +16.5 分内 + for month in range(1, 13): + with self.subTest(month=month): + dt_utc = datetime(1990, month, 15, 12, 0, tzinfo=timezone.utc) + eot = equation_of_time_minutes(dt_utc) + self.assertGreaterEqual(eot, -14.7) + self.assertLessEqual(eot, 16.9) + + def test_naive_datetime_rejected(self): + # 文档 §4.2 契约:必须传入带时区的 UTC datetime + with self.assertRaises(AssertionError): + equation_of_time_minutes(datetime(1990, 1, 1, 12, 0)) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_license_gate.py b/tests/test_license_gate.py new file mode 100644 index 0000000..a59ff7e --- /dev/null +++ b/tests/test_license_gate.py @@ -0,0 +1,73 @@ +"""软授权锁:母版放行、副本扣次、用尽/过期/篡改/总开关。""" +import json +import sys +from pathlib import Path + +import pytest + +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "scripts")) +import _license_gate as gate + + +@pytest.fixture +def root(tmp_path): + return tmp_path + + +def make_state(root, **kw): + kw.setdefault("copy_id", "LY-20261007-A3F9") + kw.setdefault("licensee", "张三") + kw.setdefault("max_uses", 2) + return gate.write_state(root, **kw) + + +class TestMasterCopy: + def test_no_state_file_passes(self, root): + assert gate.check(root) is None + + def test_consume_without_state_is_noop(self, root): + gate.consume(root) + assert not (root / "data" / ".license.json").exists() + + +class TestLicensedCopy: + def test_decrements_per_use_then_denies(self, root): + make_state(root) + assert gate.check(root) is None + gate.consume(root) + st = json.loads((root / "data" / ".license.json").read_text("utf-8")) + assert st["remaining_uses"] == 1 + assert gate.check(root) is None + gate.consume(root) + assert "次数已用尽" in gate.check(root) + + def test_expired_denies(self, root): + make_state(root, expires_at="2020-01-01") + assert "到期" in gate.check(root) + + def test_future_expiry_passes(self, root): + make_state(root, expires_at="2999-01-01") + assert gate.check(root) is None + + def test_tampered_state_denies(self, root): + make_state(root) + p = root / "data" / ".license.json" + st = json.loads(p.read_text("utf-8")) + st["remaining_uses"] = 999 # 手改次数但不重算签名 + p.write_text(json.dumps(st, ensure_ascii=False), "utf-8") + assert "校验失败" in gate.check(root) + + def test_corrupted_state_denies(self, root): + (root / "data").mkdir() + (root / "data" / ".license.json").write_text("not json", "utf-8") + assert gate.check(root) is not None + + +class TestMasterSwitch: + def test_disabled_gate_passes_exhausted_copy(self, root, monkeypatch): + make_state(root, max_uses=0) + monkeypatch.setattr(gate, "_ENABLED", False) + assert gate.check(root) is None + gate.consume(root) # 不扣次 + st = json.loads((root / "data" / ".license.json").read_text("utf-8")) + assert st["remaining_uses"] == 0 diff --git a/tests/test_solar_time.py b/tests/test_solar_time.py new file mode 100644 index 0000000..422f2b9 --- /dev/null +++ b/tests/test_solar_time.py @@ -0,0 +1,85 @@ +"""真太阳时经度修正黄金样本(设计文档 §4.4 / §6.1)。 + +数据来源: + - golden/longitudes.yaml —— 不同经度城市逐条断言 lon_correction_min + - golden/time_boundary.yaml —— 其中带 expect.lon_correction_min 的 A 组样本 +""" +import sys +import unittest +from datetime import datetime +from pathlib import Path + +import yaml + +SKILL_ROOT = Path(__file__).resolve().parents[1] +SCRIPTS_DIR = SKILL_ROOT / "scripts" +GOLDEN_DIR = Path(__file__).resolve().parent / "golden" +if str(SCRIPTS_DIR) not in sys.path: + sys.path.insert(0, str(SCRIPTS_DIR)) + +from astro.solar_time import to_true_solar_time # noqa: E402 +from astro.timezone_resolve import to_utc # noqa: E402 +from geo.cities import resolve_location # noqa: E402 + + +def load_golden(name): + with open(GOLDEN_DIR / name, encoding="utf-8") as f: + return yaml.safe_load(f) + + +def true_solar_chain(place, birth): + """数据流 L0-a ~ L0-d:地名 + 钟表时间 → (真太阳时, solar_audit, loc)。""" + loc = resolve_location(place) + clock = datetime.strptime(birth, "%Y-%m-%d %H:%M") + utc, _tz_audit = to_utc(clock, loc) + tst, st_audit = to_true_solar_time(utc, loc.lon) + return tst, st_audit, loc + + +class LongitudeCorrectionGoldenTest(unittest.TestCase): + def test_longitudes_yaml(self): + samples = load_golden("longitudes.yaml") + self.assertGreaterEqual(len(samples), 5, "longitudes.yaml 至少需要 5 组样本") + for s in samples: + with self.subTest(sample=s["name"], place=s["place"]): + _tst, audit, loc = true_solar_chain(s["place"], s["birth"]) + # 城市表经度 sanity check(0.1° 级即够,见文档 §4.1) + self.assertAlmostEqual(loc.lon, s["lon"], delta=0.1) + self.assertAlmostEqual( + audit["lon_correction_min"], + s["expect_lon_correction_min"], + delta=s["tolerance"], + ) + + +class TimeBoundaryGoldenTest(unittest.TestCase): + """文档 §6.1 A 组:乌鲁木齐 / 成都 / 上海。""" + + def test_time_boundary_yaml(self): + samples = [ + s for s in load_golden("time_boundary.yaml") + if "lon_correction_min" in s.get("expect", {}) + ] + self.assertGreaterEqual(len(samples), 3, "time_boundary.yaml A 组应有 3 条样本") + for s in samples: + with self.subTest(sample=s["name"], place=s["place"]): + tst, audit, _loc = true_solar_chain(s["place"], s["birth"]) + self.assertAlmostEqual( + audit["lon_correction_min"], + s["expect"]["lon_correction_min"], + delta=s["tolerance"], + ) + if "true_solar_time" in s["expect"]: + want = datetime.strptime( + s["expect"]["true_solar_time"], "%Y-%m-%d %H:%M" + ) + tol_min = s["expect"].get("true_solar_time_tolerance_min", 3) + self.assertLessEqual( + abs((tst - want).total_seconds()), + tol_min * 60, + f"真太阳时 {tst} 与期望 {want} 差距超过 {tol_min} 分钟", + ) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_timezone.py b/tests/test_timezone.py new file mode 100644 index 0000000..868d00a --- /dev/null +++ b/tests/test_timezone.py @@ -0,0 +1,54 @@ +"""历史时区 / 夏令时黄金样本(设计文档 §4.3 / §6.1 C 组)。 + +逐条读 golden/history_tz.yaml,断言 to_utc 返回的 (utc, audit): + - tz_used / is_dst / dst_offset_min / source:audit 字段逐项相等 + - utc_offset_min:钟表时间 − UTC(分钟),验证 UTC 解算本身 +""" +import sys +import unittest +from datetime import datetime +from pathlib import Path + +import yaml + +SKILL_ROOT = Path(__file__).resolve().parents[1] +SCRIPTS_DIR = SKILL_ROOT / "scripts" +GOLDEN_DIR = Path(__file__).resolve().parent / "golden" +if str(SCRIPTS_DIR) not in sys.path: + sys.path.insert(0, str(SCRIPTS_DIR)) + +from astro.timezone_resolve import to_utc # noqa: E402 +from geo.cities import resolve_location # noqa: E402 + +AUDIT_KEYS = ("tz_used", "is_dst", "dst_offset_min", "source") + + +class HistoryTzGoldenTest(unittest.TestCase): + def test_history_tz_yaml(self): + with open(GOLDEN_DIR / "history_tz.yaml", encoding="utf-8") as f: + samples = yaml.safe_load(f) + self.assertGreaterEqual(len(samples), 4, "history_tz.yaml 应有 4 条样本") + for s in samples: + with self.subTest(sample=s["name"], place=s["place"]): + loc = resolve_location(s["place"]) + clock = datetime.strptime(s["birth"], "%Y-%m-%d %H:%M") + utc, audit = to_utc(clock, loc) + expect = s["expect"] + for key in AUDIT_KEYS: + if key in expect: + self.assertEqual( + audit[key], expect[key], f"audit[{key!r}] 不符" + ) + if "utc_offset_min" in expect: + offset_min = ( + clock - utc.replace(tzinfo=None) + ).total_seconds() / 60 + self.assertAlmostEqual( + offset_min, expect["utc_offset_min"], delta=0.5, + msg=f"UTC 偏移 {offset_min} 分 ≠ 期望 " + f"{expect['utc_offset_min']} 分", + ) + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/test_version_sentinel.py b/tests/test_version_sentinel.py new file mode 100644 index 0000000..60627f2 --- /dev/null +++ b/tests/test_version_sentinel.py @@ -0,0 +1,22 @@ +"""历法库版本哨兵(设计文档 §6.2 / §7)。 + +tyme4py 用 ==1.5.0 精确锁定:历表数据随版本漂移,库升级导致回归时 +本测试第一时间定位,并提醒重新验证全部黄金样本。 +""" +import unittest + +import tyme4py + + +class TymeVersionSentinelTest(unittest.TestCase): + def test_tyme4py_version_locked(self): + self.assertEqual( + tyme4py.__version__, + "1.5.0", + "tyme4py 版本漂移:升级后必须重新验证全部黄金样本," + "确认后再同步本断言", + ) + + +if __name__ == "__main__": + unittest.main() diff --git a/vendor/VENDOR.md b/vendor/VENDOR.md new file mode 100644 index 0000000..2efa992 --- /dev/null +++ b/vendor/VENDOR.md @@ -0,0 +1,27 @@ +# vendor/ —— 随包内置的依赖(免安装) + +用户拿到 skill 后**无需 pip install**:运行期依赖的源码直接放在这里, +`scripts/cast_chart.py` 启动时把本目录插入 `sys.path` 最前(优先于环境已安装的包)。 + +## 内容 + +| 目录/文件 | 包 | 版本 | 来源 | 许可证 | +|---|---|---|---|---| +| `tyme4py/` | tyme4py | 1.5.0(==锁定) | PyPI / 工作区 `tyme4py-1.5.0/` | MIT(`tyme4py.LICENSE`) | +| `tzdata/` | tzdata | 2026.5 | PyPI | Apache-2.0(`tzdata.LICENSE`) | + +两个包均为纯 Python / 纯数据,无编译产物,跨平台(macOS / Linux / Windows)、 +跨架构可用。运行时唯一要求是 **Python ≥ 3.10**(`zoneinfo` 与类型标注语法需要)。 + +## 为什么 vendor 而不是打包 .venv + +虚拟环境不可移植:`pyvenv.cfg` 与 activate 脚本硬编码创建时的绝对路径, +`bin/python` 是指向本机解释器的符号链接,且按 OS/架构绑定。 +vendor 纯源码没有这些问题,同时把 `tyme4py==1.5.0` 的版本锁定做到了字节级。 + +## 如何升级 + +1. 用新版本源码替换对应目录(保持目录名不变); +2. 同步更新本表的版本号与 `pyproject.toml` / `requirements.txt` 的锁定; +3. 跑 `tests/` 黄金样本与规则库 `rules/tests/` 确认无回归 + (历法库升级可能改变节气时刻,必须全量回归)。 diff --git a/vendor/tyme4py.LICENSE b/vendor/tyme4py.LICENSE new file mode 100644 index 0000000..d263246 --- /dev/null +++ b/vendor/tyme4py.LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 6tail + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/tyme4py/__init__.py b/vendor/tyme4py/__init__.py new file mode 100644 index 0000000..f4f6af9 --- /dev/null +++ b/vendor/tyme4py/__init__.py @@ -0,0 +1,179 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations +from abc import ABC, abstractmethod +from typing import Union, List + +__version__ = '1.5.0' + + +class Culture(ABC): + """传统文化(民俗)""" + + @abstractmethod + def get_name(self) -> str: + """ + 名称 + :return: 名称 + """ + pass + + +class Tyme(Culture): + @abstractmethod + def next(self, n: int) -> Union[Tyme, None]: + """ + 推移 + :param n: 推移步数 + :return: 推移后的Tyme或None + """ + pass + + +class AbstractCulture(Culture): + """传统文化抽象""" + + @abstractmethod + def get_name(self) -> str: + pass + + def __str__(self) -> str: + return self.get_name() + + def __eq__(self, other: Culture) -> bool: + return other and other.__str__() == self.__str__() + + @staticmethod + def index_of(index: int, size: int) -> int: + """ + 转换为不超范围的索引 + :param index: 索引 + :param size: 长度大小 + :return: 索引,从0开始 + """ + i: int = index % size + return i + size if i < 0 else i + + +class AbstractTyme(AbstractCulture, Tyme): + """抽象Tyme""" + + @abstractmethod + def get_name(self) -> str: + pass + + @abstractmethod + def next(self, n: int) -> Union[Tyme, None]: + pass + + +class AbstractCultureDay(AbstractCulture): + """带天索引的传统文化抽象""" + + def __init__(self, culture: AbstractCulture, day_index: int): + """ + 初始化 + :param culture: 传统文化抽象 + :param day_index: 天索引 + """ + self._culture = culture + self._day_index = day_index + + def get_day_index(self) -> int: + """ + 天索引 + :return: 索引 + """ + return self._day_index + + def get_culture(self) -> AbstractCulture: + return self._culture + + def get_name(self) -> str: + return self._culture.get_name() + + def __str__(self) -> str: + return f'{self.get_name()}第{self.get_day_index() + 1}天' + + +class LoopTyme(AbstractTyme): + """可轮回的Tyme""" + + def __init__(self, names: List[str], index_or_name: Union[int, str]): + """ + 初始化 + :param names: 名称列表 + :param index_or_name: 索引,支持负数,自动轮转; 名称 + """ + self._names = names + self._index = self._index_of_by(index_or_name) + + def _index_of_by(self, index_or_name: Union[int, str]) -> int: + """ + :param index_or_name: 索引或名称 + :return: 索引 + """ + if isinstance(index_or_name, int): + return self.index_of(index_or_name, self.get_size()) + else: + for i in range(0, self.get_size()): + if index_or_name == self._names[i]: + return i + raise ValueError(f"illegal name: {index_or_name}") + + def get_name(self) -> str: + return self._names[self._index] + + def get_index(self) -> int: + """ + 索引 + :return: 索引,从0开始 + """ + return self._index + + def get_size(self) -> int: + """ + 数量 + :return: 数量 + """ + return self._names.__len__() + + def next_index(self, n: int) -> int: + """ + 推移后的索引 + :param n: 推移步数 + :return: 索引,从0开始 + """ + return self._index_of_by(self._index + n) + + def steps_to(self, target_index: int) -> int: + """ + 到目标索引的步数(从左往右顺序) + :param target_index: 目标索引 + :return: 步数(>=0) + """ + return self.index_of(target_index - self._index, self.get_size()) + + def steps_back_to(self, target_index: int) -> int: + """ + 到目标索引的步数(从右往左逆序) + :param target_index: 目标索引 + :return: 步数(<=0) + """ + n = self.get_size() + return -((self._index - target_index + n) % n) + + def steps_close_to(self, target_index: int) -> int: + """ + 到目标索引的最少步数 + :param target_index: 目标索引 + :return: 步数(从左往右顺序>=0,从右往左逆序<=0) + """ + d1 = self.steps_to(target_index) + d2 = self.steps_back_to(target_index) + if d1 <= abs(d2): + return d1 + return d2 + + @abstractmethod + def next(self, n: int) -> Union[LoopTyme, None]: + pass diff --git a/vendor/tyme4py/culture/__init__.py b/vendor/tyme4py/culture/__init__.py new file mode 100644 index 0000000..d2750cd --- /dev/null +++ b/vendor/tyme4py/culture/__init__.py @@ -0,0 +1,743 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +import re +from math import floor +from typing import TYPE_CHECKING, List, Union + +from tyme4py import LoopTyme, AbstractCulture, AbstractCultureDay +from tyme4py.util import ShouXingUtil + +if TYPE_CHECKING: + from tyme4py.culture.star.seven import SevenStar + from tyme4py.culture.star.twentyeight import TwentyEightStar + from tyme4py.lunar import LunarDay, LunarMonth + from tyme4py.sixtycycle import SixtyCycle, EarthBranch + from tyme4py.jd import JulianDay + from tyme4py.solar import SolarTime, SolarDay + + +class Animal(LoopTyme): + """动物""" + NAMES: List[str] = ['蛟', '龙', '貉', '兔', '狐', '虎', '豹', '獬', '牛', '蝠', '鼠', '燕', '猪', '獝', '狼', '狗', '彘', '鸡', '乌', '猴', '猿', '犴', '羊', '獐', '马', '鹿', '蛇', '蚓'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Animal: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Animal: + return cls(index) + + def next(self, n: int) -> Animal: + return Animal(self.next_index(n)) + + def get_twenty_eight_star(self) -> TwentyEightStar: + """ + 二十八宿 + :return: 二十八宿 + """ + from tyme4py.culture.star.twentyeight import TwentyEightStar + return TwentyEightStar(self.get_index()) + + +class Beast(LoopTyme): + """神兽""" + NAMES: List[str] = ['青龙', '玄武', '白虎', '朱雀'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Beast: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Beast: + return cls(index) + + def next(self, n: int) -> Beast: + return Beast(self.next_index(n)) + + def get_zone(self) -> Zone: + """ + :return: 宫 + """ + return Zone(self.get_index()) + + +class Constellation(LoopTyme): + """星座""" + NAMES: List[str] = ['白羊', '金牛', '双子', '巨蟹', '狮子', '处女', '天秤', '天蝎', '射手', '摩羯', '水瓶', '双鱼'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Constellation: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Constellation: + return cls(index) + + def next(self, n: int) -> Constellation: + return Constellation(self.next_index(n)) + + +class Direction(LoopTyme): + """方位""" + NAMES: List[str] = ['北', '西南', '东', '东南', '中', '西北', '西', '东北', '南'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Direction: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Direction: + return cls(index) + + def next(self, n: int) -> Direction: + return Direction(self.next_index(n)) + + def get_land(self) -> Land: + """ + :return: 九野 + """ + return Land(self.get_index()) + + def get_element(self) -> Element: + """ + :return: 五行 + """ + return Element([4, 2, 0, 0, 2, 3, 3, 2, 1][self.get_index()]) + + +class Duty(LoopTyme): + """建除十二值神""" + NAMES: List[str] = ['建', '除', '满', '平', '定', '执', '破', '危', '成', '收', '开', '闭'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Duty: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Duty: + return cls(index) + + def next(self, n: int) -> Duty: + return Duty(self.next_index(n)) + + +class Element(LoopTyme): + """五行""" + NAMES: List[str] = ['木', '火', '土', '金', '水'] + """名称""" + + def __init__(self, index_or_name: Union[int, str], names: Union[List[str], None] = None): + super().__init__(self.NAMES if names is None else names, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Element: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Element: + return cls(index) + + def next(self, n: int) -> Element: + return Element(self.next_index(n)) + + def get_reinforce(self) -> Element: + """ + 我生者 + :return: 五行 + """ + return self.next(1) + + def get_restrain(self) -> Element: + """ + 我克者 + :return: 五行 + """ + return self.next(2) + + def get_reinforced(self) -> Element: + """ + 生我者 + :return: 五行 + """ + return self.next(-1) + + def get_restrained(self) -> Element: + """ + 克我者(耗) + :return: 五行 + """ + return self.next(-2) + + def get_direction(self) -> Direction: + """ + 方位 + :return: 方位 + """ + return Direction([2, 8, 4, 6, 0][self.get_index()]) + + +class God(LoopTyme): + """神煞""" + NAMES: List[str] = ['天恩', '鸣吠', '母仓', '不将', '四相', '鸣吠对', '五合', '三合', '除神', '月德', '月空', '月德合', '月恩', '时阴', '五富', '生气', '金匮', '相日', '阴德', '六合', '益后', '青龙', '续世', '明堂', '王日', '要安', '官日', '吉期', '福德', '六仪', '金堂', '宝光', '民日', '临日', '天马', '敬安', '普护', '驿马', '天后', '阳德', '天喜', '天医', '司命', '圣心', '玉宇', '守日', '时德', '解神', '时阳', '天仓', '天巫', '玉堂', '福生', '天德', '天德合', '天愿', '天赦', '天符', '阴神', '解除', '五虚', '五离', '重日', '复日', '血支', '天贼', '土符', '游祸', '白虎', '小耗', '致死', '河魁', '劫煞', '月煞', '月建', '往亡', '大时', '大败', '咸池', '厌对', '招摇', '九坎', '九焦', '天罡', '死神', '月害', '死气', '月破', '大耗', '天牢', '元武', '月厌', '月虚', '归忌', '小时', '天刑', '朱雀', '九空', '天吏', '地火', '四击', '大煞', '勾陈', '八专', '灾煞', '天火', '血忌', '土府', '月刑', '触水龙', '地囊', '八风', '四废', '四忌', '四穷', '五墓', '阴错', '四耗', '阳错', '孤辰', '小会', + '大会', '八龙', '七鸟', '九虎', '六蛇', '天狗', '行狠', '了戾', '岁薄', '逐阵', '三丧', '三阴', '阴道冲阳', '阴位', '阴阳交破', '阴阳俱错', '阴阳击冲', '鬼哭', '单阴', '绝阴', '纯阳', '阳错阴冲', '七符', '成日', '孤阳', '绝阳', '纯阴', '大退', '四离', '阳破阴冲'] + """名称""" + + day_gods: List[str] = [ + ';000002300F14156869717A3F;01001617495C40413C425D6A;0209000C041831031906054A5E6B4B5F;033500041A1B032C06054C4D4E60;04002D321C1D1E104F50615152;05111F53546C55433C3E;062E200721220D01566E44;070B2333242F45;08360A2526242F080157583D59;091234080162463C3D5A;0A270728292A5B6364653F79;0B0237130E2B4748727A3E66;0C09020C04300F0314150568696D;0D3504031617495C40413C6F425D6A;0E38183119064A5E6B4B5F;0F001A1B032C064C4D4E60;10002D321C1D1E104F50615152;110B00111F53546C55433C3E;12360A002E200721220D015644;13002333456D;142526242F080157583F3D59;15001234080162463C3D5A;16090004270728292A5B636465;17350204130E032B47483E66;1802300F14156869;19031617495C40413C425D6A;1A1831031906054A5E6B4B5F;1B0B1A1B032C06054C4D4E;1C360A2D321C1D1E104F50615152;1D111F53546C55433C3E;1E2E200721220D01563F44;1F23334573;20090C042526242F080157583D;2135041234080162463C3D5A;22270728292A5B636465;2302130E032B47483E66;2402300F0314150568696E;250B031617495C40413C425D6A;26360A18311906054A5E6B4B5F;271A1B2C06054C4D4E60;282D321C1D1E104F506151523F;29111F53546C55433C3E;2A090C042E200721220D015644;2B350423334567;2C2526242F0857583D59;2D001234080162463C3D5A;2E00270728292A5B63646574;2F0B0002130E032B47483E66;30360A0002300F141505686975;31001617495C40413C425D6A676D;3218311906054A5E6B4B3F675F76;331A1B2C06054C4D4E60;34090C042D321C1D1E104F50615152;353504111F53546C55433C6F3E;362E200721220D5644;3723334567;382526242F08015758703D6759;390B123408016246703C3D5A84;3A360A270728292A5B636465;3B02130E2B47483E66;', + ';00090002272A536C4C4D4E41717A;0100300F3103233C6151523F66;020004180E032406150543405D;03000C041A1D340617054A5E6B4F50;04002D1B555F;050B112526321C2B3C42654B3E60;060A2E2014100547546246;0712070D161F566A;0822192F0148453D44;092C083301575868695B633C3D;0A0937131E495C6459;0B020721282903727A3F3E5A;0C020427032A05536C4C4D4E416D;0D0C04300F03233C6F61515266;0E38180E24061543405D;0F0B001A1D3406174A5E6B4F5078;100A002D1B555F;1100112526321C2B3C42654B3E60;12002E2014100147546246;130012070D161F566A6D;140922192F080148453D44;152C083301575868695B633C3F3D44;160413031E495C6459;17020C0407212829033E5A;1802272A536C4C4D4E41;190B300F3103233C61515266;1A0A180E032406150543405D;1B1A1D340617014A5E6B4F50;1C2D1B555F;1D112526321C2B3C42654B3E60;1E092E2014100147546246;1F12070D161F56736E6A3F;200422192F080148453D44;210C042C083301575868695B633C3D;22131E495C6459;230B0207212829033E5A;240A0227032A05536C4C4D4E41;25300F31233C61515266;26180E2406150543405D;271A1D340617054A5E6B4F50;28092D1B555F;29112526321C2B3C42654B3F3E60;2A042E2014100147546246;2B0C0412070D161F566A67;2C22192F0848453D44;2D0B002C083301575868695B633C3D85;2E0A0013031E495C6459;2F0002072128293E5A;300002272A05536C4C4D4E4175;3100300F31233C6151526E676D66;3209180E2406150543405D;331A1D340617054A5E6B4F503F76;34042D1B555F;350C04112526321C2B3C6F42654B3E60;362E20141047546246;370B12070D161F566A67;380A22192F08014845703D6744;392C083301575868695B63703C3D74;3A131E495C6459;3B02072128293E5A;', + ';00000207282931032B717A6E5D59;01000314473C5A;020A000427182526300F1D16062A054F506A;03360B00041A1906055562464066;04002D2C154A5E6B6C733F788B;0512111B0E1E17483C3E;060C2E20321C016869655F;0753544960;08350907210D230810015B63564B3D77;091324081F014C4D4E453C423D;0A2203342F57586461515244;0B02032C4341727A3E;0C0A020407282931032B055D6D59;0D360B040314473C6F5A;0E3827182526300F1D16062A4F506A3F;0F001A19065562464066;10000C2D2C154A5E6B6C86;110012111B0E1E17483C3E;123509002E20321C0168696E655F;13005354495C6D60;1407210D230810015B63564B3D7F;1537130324081F014C4D4E453C423D;160A042203342F57586461515244;17360B0204033343413E;1802072829312B5D3F59;190314473C5A;1A0C27182526300F1D16062A054F506A;1B1A1906055562464066;1C35092D2C154A5E6B6C;1D12111B0E1E17483C3E;1E2E20321C016869655F;1F5354495C60;200A0407210D230810015B63564B3D80;21360B04130324081F014C4D4E453C423D;2222342F5758646151523F44;2302033343413E;24020C072829312B055D59;2514473C5A;26120927182526300F1D16062A054F506A;271A1906055562464066;282D2C154A5E6B6C76;2912111B0E1E17483C3E;2A0A042E20321C016869655F;2B360B045354495C6760;2C07210D2308105B63564B3F3D77;2D00130324081F014C4D4E453C423D;2E000C22342F57586461515244;2F00023343413E;3035090002072829312B05755D59;310014473C676D5A;3227182526300F1D16062A054F506A67;331A1906055562464066;340A042D2C154A5E6B6C;35360B0412111B0E1E17483C6F3E;362E20321C6869653F5F;375354495C6760;380C07210D230810015B6356704B3D677774;391324081F014C4D4E45703C423D;3A350922342F57586461515244;3B023343413E;', + ';000A00220362463C44;010B00072128291D334F50645D;02360002230605534855423F59;03000212300F24060568695A;0400042E27342A495C403C8C;050C04184A5E6B3E66788D76;06091A1B2B15014C4D4E;07352D321C14175B636151526577;0811130E16080147546C433C6A3D5F;0920070D190801563D60;0A0A032C2F104541;0B0B252631031E1F57584B3E;0C362203056246717B3C3F6D44;0D072128291D334F50645D;0E020423065348554259;0F00020C0412300F240668696E5A;1009002E12342A495C403C;113500184A5E6B3E66;12001A1B2B15014C4D4E;13002D321C14175B63615152656D77;140A11130E0316080147546C433C6F6A3D5F;150B20070D03190801563D60;1636032C2F104541733F;17252631031E1F5758727B4B3E;1804220362463C44;190C04072128291D334F50645D;1A09022306055348554259;1B3502120D0F24060568695A;1C2E27342A495C403C;1D184A5E6B3E66;1E0A381A1B2B15014C4D4E;1F0B2D321C14175B63615152657F;20363711130E0316080147546C433C6A3F3D5F;2120070D03190801563D60;2204032C2F104541;230C042526311E1F57584B3E;2409220562463C44;2535072128291D334F50645D;26022306055348554259;270212300F24060568695A;280A2E27342A495C403C6F;290B184A5E6B3E66;2A361A1B2B15014C4D4E3F81;2B2D321C14175B6361515265678074;2C0411130E03160847546C433C6A3D5F;2D000C0420070D190801566E3D60;2E09002C2F104541;2F35002526311E1F57584B3E;300022056246703C44;3100072128291D334F50645D676D;320A02230605534855426759;330B02120D0F2406056869755A;34362E27342A495C403C3F;35184A5E6B3E6676;36041A1B2B154C4D4E81;370C042D321C14175B6361515265677774;380911130E16080147546C433C6A3D675F;393520070D190801563D60;3A2C2F104541;3B2526311E1F5758704B3E87;', + ';00001D2F10575868694F503C;0100122B1F495C5564;0209000207222829140605655D44;03000216063305474C4D4E51526A4B3F;04000C042E300F193C6159;0504182C43403E5A;06271A1E2A014A5E6B6C5B6342;070B2D1B1366;080A112526321C0815013C3D;0920032308170153546246413D;0A07210D310324565F;0B0E033448453E60;0C091D2F1005575868694F50717B3C6D;0D122B1F495C553F;0E020C04072228291406655D44;0F000204160633474C4D4E51526A4B;10002E300F193C6159;110B00182C43403E5A;120A00271A1E2A014A5E6B6C5B6342;13002D1B13036D66;14112526321C030815013C6F3D;1520032308170153546246413D;160907210D31032456735F;170E344845727B3F3E60;180C041D2F10575868694F503C;1904122B1F495C5564;1A0207222829140605655D44;1B0B0216063305474C4D4E51526A4B;1C0A2E300F193C6159;1D182C43403E5A;1E38271A1E2A014A5E6B6C5B6342;1F2D1B130366;2009112526321C030815013C3D;21202308170153546246413F3D;220C0407210D3103565F;23040E3448453E60;241D2F1005575868694F503C;250B122B1F495C5564;260A0207222829140605655D44;270216063305474C4D4E51526A4B;282E300F193C6F616E59;29182C43403E5A;2A09271A1E2A014A5E6B6C5B63427988;2B372D1B133F6766;2C0C04112526321C0308153C3D;2D0004202308170153546246413D;2E0007210D3124565F;2F0B000E3448453E60;300A001D2F1005575868694F50703C89;3100122B1F495C5564676D;320207222829140605655D6744;330216063305474C4D4E7551526A4B;34092E300F193C6159;35182C43403F3E5A;360904271A1E2A4A5E6B6C5B634278;37042D1B136766;38112526321C0815013C3D67;390B202308170153546246413D;3A0A07210D3124566E5F;3B0E03344845703E60;', + ';003509001E2F554C4D4E453C51525D5F;010057586C646160;0200020E06100543;0300020721282923061F0565;0400042E2224533C7344;05360B04182526300F34335B633F3E74;060A1A13016246404B59;070C2D2B4A5E6B5A;0827111B0314082A0148413C3D;0920321C310316080148413C3D;0A35090319154754495C42;0B12070D1D2C174F50563E;0C1E2F05554C4D4E45717B3C51525D6D5F;0D57586C646160;0E02040E061043;0F360B0002040721282923061F653F;100A002E2224533C44;11000C182526300F34335B633E;12001A1303016246404B59;13002D032B4A5E6B6D5A;14350927111B0314082A0148413C6F3D;1520321C310316080168696A3D66;1619154754495C426E;1712070D1D2C174F5056727B3E;18041E2F554C4D4E453C51525D5F;19360B0457586C64613F60;1A0A020E06100543;1B020C0721282923061F0565;1C2E2224533C44;1D182526300F34335B633E;1E3509381A1303016246404B59;1F2D032B4A5E6B5A;2027111B14082A0148413C3D;2120321C3116080168696A3D66;22040319154754495C42;23360B0412070D1D2C174F50563F3E;240A1E2F05554C4D4E453C51525D5F;250C57586C646160;26020E06100543;27020721282923061F0565;2835092E2224533C6F44;29182526300F34335B633E;2A1A13016246404B5982;2B2D2B4A5E6B675A76;2C0427111B0314082A48413C3D;2D360B000420321C3116080168696A3F3D66;2E0A0019154754495C42;2F000C12070D1D2C174F50563E;30001E2F05554C4D4E45703C51525D5F;310057586C6461676D608E;323509020E0610054367;33020721282923061F057565;342E2224533C6E44;35182526300F34335B633E7974;3637041A13036246404B5982;37360B042D2B4A5E6B3F675A76;380A27111B14082A0148413C3D67;390C20321C3116080168696A3D66;3A0319154754495C42;3B12070D1D2C174F5056703E;', + ';0000302007210D341556;01000217455D;020A0025262B2F060557586C5F;030B001406056246603C8F;0436000207282916105B6364656A;0537130E191F47483E;0622300F2C0168693F44;07021E33495C40413C;08090C04184A5E423D59;093504121A1B0308014C4D4E51524B3D5A;0A02272D321C1D232A4F507E61;0B1124535455433E66;0C0A2E2007210D341505566D;0D0B0217455D;0E3625262B2F0657586C;0F00140662463C4260;10000207282916105B6364656A3F79;1100130E191F47483E;1209350C0422300F032C01686944;1335000204031E33495C40413C6D;1418310308014A5E6B3D59;15121A1B0308014C4D4E51524B3D5A;160A02272D321C1D232A4F507E61;170B1124535455433C6F6E3E66;18362E2007210D341556;190217455D;1A25262B060557586C3F5F;1B14060562463C4260;1C09020C0407282916105B6364656A;1D3504130E03191F47483E;1E22300F032C01686944;1F02031E495C40413C;200A183108014A5E6B3D59;210B121A1B08014C4D4E51524B3D5A;223602272D321C1D232A4F507E61;231124535455433C3E66;242E2007210D34150556717C3F;25021745735D;26090C0425262B2F060557586C5F;27350414060562463C4260;280207282916105B6364656A74;29130E03191F47483E;2A0A22300F2C01686944;2B0B021E33495C40413C6F67;2C36381831034A5E6B3D59;2D00121A1B08014C4D4E51524B3D5A;2E0002272D321C1D232A4F507E613F;2F00112453545543727C3C3E66;3009000C042E2007210D34150556;313500020417455D676D;3225262B2F060557586C70675F;331406056246703C426084;340A0207282916105B6364656A;350B130E191F47486E3E;363622300F032C7544;37021E33495C40413C67;38183108014A5E6B3F3D675976;39121A1B08014C4D4E51524B3D5A;3A09020C04272D321C1D232A4F507E61;3B35041124535455433C3E66;', + ';000A002E27202C2A475462464B;010B0002070D1E5666;02002F06150548456E5D;0300061705575868695B633C;040002130323495C645F;0507212829249060;0609341001534C4D4E415152;070212300F31031F3C61423F;080418220E032B080143403D44;090C041A1D14080833014A5E6B6C4F503D;0A0A022D1B16556A59;0B0B112526321C193C653E5A;0C2E27202C2A05475462464B6D;0D02070D1E5666;0E2F061548455D;0F000617575868695B633C85;10090002371323495C645F;11000721282903243F3E60;12000403341001534C4D4E415152;1300020C0412300F31031F3C61426D;140A18220E032B080143403D44;150B1A1D140833014A5E6B6C4F503D;16022D1B16556A59;17112526321C193C6F653E5A;182E27202C2A475462464B;1902070D1E5666;1A092F06150548455D;1B061705575868695B633C3F79;1C0204130323495C645F;1D0C040721282903243E60;1E0A03341001534C4D4E415152;1F0B0227300F311F3C6142;2018220E2B080143406E3D44;211A1D140833014A5E6B6C4F503D;22022D1B16556A59;23112526321C193C653E5A;24092E27202C2A0547546246717C4B;2502070D1E56733F66;26042F06150548455D;270C04061705575868695B633C;280A02130323495C645F;290B07212829243E60;2A341001534C4D4E415152;2B0212300F311F3C6F614267;2C3818220E032B0843403D44;2D001A1D140833014A5E6B5B4F503D78;2E0900022D1B16556A59;2F00112526321C19727C3C653F3E5A;3000042E27202C2A05475462464B;3100020C04070D1E56676D66;320A2F0615054845705D67;330B061705575868695B63703C74;34021323495C645F;3507212829243E60;36033410534C4D4E41755152;370212300F311F3C614267;380918220E2B080143403D6744;391A1D140833014A5E6B6C4F503F3D76;3A02042D1B16556A59;3B0C04112526321C193C653E5A;', + ';00002E20391C246869655D59;010002345354495C5A;023509002707210D062A055B6356515277;0300132B06054C4D4E453C66;04000203142F1557586473614B3F;0512161743416A3E;060C072829310319015F;07360B02032C476C3C6E60;080A04182526300F1D1E0810014F503D;09041A081F01556246403D;0A022D224A5E6B4486;0B111B0E2333483C423E;0C35092E20321C24056869655D6D59;0D02345354495C5A;0E2707210D062A5B635651523F77;0F00132B064C4D4E453C66;1000020C03142F15575864614B;11360B001203161743416A3E;120A0004072829310319015F;13000204032C476C3C6D60;14182526300F1D1E0810014F503D;151A081F01556246403D;163509022D224A5E6B44;17111B0E2333483C6F423E;182E20321C246869655D3F59;1902345354495C5A;1A0C2707210D062A055B635651527F;1B360B3713032B06054C4D4E453C66;1C0A020403142F15575864614B;1D041203161743416A3E;1E0728293119015F;1F022C476C3C60;203509182526300F1D1E08104F503D;211A081F01556246403D;22022D224A5E6B3F447891;23111B0E2333483C423E;240C2E20321C24056869717C655D59;25360B021C5354495C6E5A;260A042707210D062A055B6356515280;270413032B06054C4D4E453C66;2802142F15575864614B;2912161743416A3E;2A35090728293119015F;2B022C476C3C6F6760;2C38182526300F1D1E08104F503F3D;2D001A081F01556246403D;2E0002092D224A5E6B4476;2F360B00111B0E233348727C3C423E;300A00042E20321C24056869655D59;31000204345354495C676D5A;322707210D062A055B6356705152677774;33132B06054C4D4E45703C66;34350902142F15575864614B;3512161743416A3E;36072829310319753F5F;37022C476C3C6760;380C182526300F1D1E0810014F503D67;39360B1A081F01556246403D;3A0A02042D224A5E6B44;3B04111B0E2333483C423E;', + ';00090038041A221B194C4D4E44;0135000C042D321C2C335B6361655D77;02002E11130E1E06054754433C59;03001220070D0605565A;0400272F2A454142;050B252631032357583E66;06360A0324150162463C;07072128291D34174F50644B;080208015348553F3D5F;0902300F2B080168693D60;0A09041410495C403C6F;0B35090418161F4A5E6B6C5152403E;0C1A221B19054C4D4E6D44;0D2D321C2C335B6361655D77;0E2E11130E1E064754433C6E59;0F0B351220070D0306565A;10360A0027032F2A454142;1100252631032357583E66;12000324150162463C3F;1300072128291D34174F50644B6D;1409020408015348553D5F;1535020C04300F2B080168693D60;161410495C403C;1718161F4A5E6B6C51526A3E;181A221B194C4D4E4481;190B0A2E11130E031E06054754433C59;1A360A2E11130E031E06054754433C59;1B1220070D030605565A;1C27032F2A454173423F;1D252631032357583E66;1E090424150162463C;1F350C04072128291D34174F50644B;200208015348553D5F;2102300F2B080168693D60;221410495C403C92;230B18161F4A5E6B6C51526A3E7893;24360A1A221B19054C4D4E44;252D321C2C335B6361655D7F;26372E11130E031E06054754433C3F59;271220070D030605565A;280904272F2A454142;29350C042526312357583E66;2A2415016246703C;2B072128291D34174F50644B67;2C02085348556E3D5F;2D090002300F2B080168693D60;2E360A001410495C403C;2F0018161F4A5E6B6C51526A3E;30001A221B19054C4D4E717D3F4481;31002D321C2C335B6361655D676D8074;3209042E11130E1E06054754433C6F6759;33350C042720070D0605565A;34272F2A454142;35252631235758703E6687;36241562463C;370B072128291D34174F50644B67;38360A023A015348553D675F;3902300F2B08016869753D60;3A1410495C403C3F;3B18161F4A5E6B6C727D51526A3E76;', + ';0000380C041A23104A5E6B5B63;010004122D1B13241F838A;020A002E11252622321C3406053C5D44;030B00200306330553544641;040007210D312B5659;050E031448453E5A;060E1D162F2A01575868694F503C6A;0719495C556466;0809020728292C081501515242653D;09021E081701474C4D4E3F3D;0A0C04300F3C6F614B5F;0B041843403E60;0C0A1A2310054A5E6B5B636D;0D0B122D1B1303241F838A94;0E2E11252622321C34063C5D44;0F002003063353546C624641;100007210D31032B5659;11000E031448453E5A;120900271D162F2A01575868694F503C6A;130019495C55643F6D66;14020C040728292C081501515242653D;1502041E081701474C4D4E3D;160A300F3C614B5F;170B1843403E60;181A23104A456B5B6378;19122D1B1303241F9583;1A2E11252622321C033406053C5D44;1B200306330553546C6246416E;1C0907210D31032B567359;1D0E1448453F3E5A;1E0C04271D163B2A01575868694F503C6A;1F0419495C556466;200A020728292C081501515242653D;210B021E081701474C4D4E3D;22300F3C614B5F;231843403E60;241A2310054A5E425B63;25122D1B1303241F;26092E11252622321C033406053C5D44;272006330553546C6246413F;280C0407210D312B5659;29040E1448453E5A;2A0A271D162F2A01575868694F50703C6A89;2B0B19495C55646766;2C020728292C0815515242653D;2D00021E081701474C4D4E3D;2E00300F3C614B5F;2F001843403E60;3009001A2310054A5E6B5B63717D7988;310037122D1B13241F3F676D;320C042E11252622321C3406053C6F5D6744;33042006330553546C624641;340A07210D312B5659;350B0E03144845703E5A;36271D162F2A575868694F503C6A;3719495C55646766;38020728292C081501515242653D67;39021E081701474C4D4E756E3D;3A09300F3C614B5F;3B184340727D3F3E60;', + ';000A003837041A1316624640425D6A5F;01360B00042D194A5E6B4B60;020009111B032C06100548413C;030020321C310310061F056869;0400224754495C7344;05070D1D334F505651523F3E;063509232F01554C4D4E453C59;070C24575864615A;0802270E34082A01433D;09020721282908016E653D66;0A0A042B15536C3C6F;0B360B0412182526300F14175B633E;0C1A13031605624640425D6A6D5F;0D2D03194A5E6B4B60;0E2E111B33061048413C;0F0020321C31031E061F68693F;1035090022034754495C44;11000C070D1D334F505651523E;1200232F01554C4D4E453C59;130024575864616D5A;140A0204270E0F082A01433D;15360B0204072128290801653D66;162B15536C3C;17121825260D0F14175B633E;181A1316624640425D6A5F82;192D03194A5E6B4B3F60;1A35092E111B032C061048413C;1B0C20321C31031E061F056869;1C224754495C44;1D07121D334F505651523E;1E0A04232F01554C4D4E453C59;1F360B0424575864615A;2002270E34082A01433D;2102072128290801653D66;222B15536C3C;2312182526300F14175B633F3E;2435091A13031605624640425D6A5F;250C2D03194A5E6B4B60;262E111B2C06100548413C;2720321C311E061F056869;280A04224746495C44;29360B04070D1D334F505651523E;2A232F01554C4D4E45703C59;2B2457586461675A96;2C02270E34082A433D;2D0002072128290801653F3D66;2E3509002B15536C3C;2F000C12182526300F14175B633E;30001A1316624640717D425D6A5F82;31002D194A5E6B4B676D6076;320A042E111B2C06100548413C6F67;33360B0420321C311E061F0568696E;3422034754495C44;35070D1D334F50567051523E;36232F554C4D4E453C59;3724575864613F675A;38350902270E34082A01433D67;39020C07212829080175653D66;3A2B15536C3C;3B12182526300F14175B63727D3E7974;' + ] + """吉神宜趋,凶神宜忌数据(参考 https://www.51wnl-cq.com/ 并进行了部分数据修正)""" + + def __init__(self, index_or_name: Union[int, str]) -> None: + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> God: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> God: + return cls(index) + + def next(self, n: int) -> God: + return God(self.next_index(n)) + + def get_luck(self) -> Luck: + """ + 吉凶 + :return: 吉凶 + """ + return Luck(0 if self.get_index() < 60 else 1) + + @classmethod + def get_day_gods(cls, month: SixtyCycle, day: SixtyCycle) -> List[God]: + """ + 日神煞列表(吉神宜趋,凶神宜忌) + :return: 神煞列表 + """ + l: List[God] = [] + index: str = format(day.get_index(), '02X') + pattern = re.compile(f';{index}(.[^;]*)') + matcher = pattern.search(God.day_gods[month.get_earth_branch().next(-2).get_index()]) + if matcher: + data: str = matcher.group(1) + for i in range(0, data.__len__(), 2): + l.append(God(int(data[i: i + 2], 16))) + return l + + +class KitchenGodSteed(AbstractCulture): + NUMBERS: List[str] = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'] + """数字""" + + def __init__(self, lunar_year): + from tyme4py.lunar import LunarDay + self._first_day_sixty_cycle = LunarDay.from_ymd(lunar_year, 1, 1).get_sixty_cycle() + + @classmethod + def from_lunar_year(cls, lunar_year): + return cls(lunar_year) + + def _by_heaven_stem(self, n): + return self.NUMBERS[self._first_day_sixty_cycle.get_heaven_stem().steps_to(n)] + + def _by_earth_branch(self, n): + return self.NUMBERS[self._first_day_sixty_cycle.get_earth_branch().steps_to(n)] + + def get_mouse(self): + return f'{self._by_earth_branch(0)}鼠偷粮' + + def get_grass(self): + return f'草子{self._by_earth_branch(0)}分' + + def get_cattle(self): + return f'{self._by_earth_branch(1)}牛耕田' + + def get_flower(self): + return f'花收{self._by_earth_branch(3)}分' + + def get_dragon(self): + return f'{self._by_earth_branch(4)}龙治水' + + def get_horse(self): + return f'{self._by_earth_branch(6)}马驮谷' + + def get_chicken(self): + return f'{self._by_earth_branch(9)}鸡抢米' + + def get_silkworm(self): + return f'{self._by_earth_branch(9)}姑看蚕' + + def get_pig(self): + return f'{self._by_earth_branch(11)}屠共猪' + + def get_field(self): + return f'甲田{self._by_heaven_stem(0)}分' + + def get_cake(self): + return f'{self._by_heaven_stem(2)}人分饼' + + def get_gold(self): + return f'{self._by_heaven_stem(7)}日得金' + + def get_people_cakes(self): + return f'{self._by_earth_branch(2)}人{self._by_heaven_stem(2)}丙' + + def get_people_hoes(self): + return f'{self._by_earth_branch(2)}人{self._by_heaven_stem(3)}锄' + + def get_name(self): + return '灶马头' + + +class Land(LoopTyme): + """九野""" + NAMES: List[str] = ['玄天', '朱天', '苍天', '阳天', '钧天', '幽天', '颢天', '变天', '炎天'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Land: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Land: + return cls(index) + + def next(self, n: int) -> Land: + return Land(self.next_index(n)) + + def get_direction(self) -> Direction: + """ + :return: 方位 + """ + return Direction(self.get_index()) + + +class Luck(LoopTyme): + """吉凶""" + NAMES: List[str] = ['吉', '凶'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Luck: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Luck: + return cls(index) + + def next(self, n: int) -> Luck: + return Luck(self.next_index(n)) + + +class Phase(LoopTyme): + """月相""" + NAMES: List[str] = ['新月', '蛾眉月', '上弦月', '盈凸月', '满月', '亏凸月', '下弦月', '残月'] + """名称""" + + def __init__(self, lunar_year: int, lunar_month: int, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + from tyme4py.lunar import LunarMonth + if isinstance(index_or_name, int): + m = LunarMonth.from_ym(lunar_year, lunar_month).next(index_or_name // self.get_size()) + self._lunar_year = m.get_year() + self._lunar_month = m.get_month_with_leap() + else: + self._lunar_year = lunar_year + self._lunar_month = lunar_month + + @classmethod + def from_name(cls, lunar_year: int, lunar_month: int, name: str) -> Phase: + return cls(lunar_year, lunar_month, name) + + @classmethod + def from_index(cls, lunar_year: int, lunar_month: int, index: int) -> Phase: + return cls(lunar_year, lunar_month, index) + + def next(self, n: int) -> Phase: + from tyme4py.lunar import LunarMonth + size = self.get_size() + i = self.get_index() + n + if i < 0: + i -= size + i //= size + m = LunarMonth.from_ym(self._lunar_year, self._lunar_month) + if i != 0: + m = m.next(i) + return Phase(m.get_year(), m.get_month_with_leap(), self.next_index(n)) + + def _get_start_solar_time(self) -> SolarTime: + from tyme4py.jd import JulianDay + from tyme4py.lunar import LunarDay + n = floor((self._lunar_year - 2000) * 365.2422 / 29.53058886) + i = 0 + jd = JulianDay.J2000 + ShouXingUtil.ONE_THIRD + d = LunarDay.from_ymd(self._lunar_year, self._lunar_month, 1).get_solar_day() + while True: + t = ShouXingUtil.msa_lon_t((n + i) * ShouXingUtil.PI_2) * 36525 + if not JulianDay.from_julian_day(jd + t - ShouXingUtil.dt_t(t)).get_solar_day().is_before(d): + break + i += 1 + t = ShouXingUtil.msa_lon_t((n + i + [0, 90, 180, 270][self.get_index() // 2] / 360.0) * ShouXingUtil.PI_2) * 36525 + return JulianDay.from_julian_day(jd + t - ShouXingUtil.dt_t(t)).get_solar_time() + + def get_solar_time(self) -> SolarTime: + t = self._get_start_solar_time() + if self.get_index() % 2 == 1: + return t.next(1) + return t + + def get_solar_day(self) -> SolarDay: + d = self._get_start_solar_time().get_solar_day() + if self.get_index() % 2 == 1: + return d.next(1) + return d + + +class PhaseDay(AbstractCultureDay): + """月相第几天""" + + def __init__(self, phase: Phase, day_index: int): + super().__init__(phase, day_index) + + def get_phase(self) -> Phase: + """ + 月相 + :return: 月相 + """ + return self.get_culture() + + +class Sixty(LoopTyme): + """元""" + NAMES: List[str] = ['上元', '中元', '下元'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Sixty: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Sixty: + return cls(index) + + def next(self, n: int) -> Sixty: + return Sixty(self.next_index(n)) + + +class Sound(LoopTyme): + """纳音""" + NAMES: List[str] = ['海中金', '炉中火', '大林木', '路旁土', '剑锋金', '山头火', '涧下水', '城头土', '白蜡金', '杨柳木', '泉中水', '屋上土', '霹雳火', '松柏木', '长流水', '沙中金', '山下火', '平地木', '壁上土', '金箔金', '覆灯火', '天河水', '大驿土', '钗钏金', '桑柘木', '大溪水', '沙中土', '天上火', '石榴木', '大海水'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Sound: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Sound: + return cls(index) + + def next(self, n: int) -> Sound: + return Sound(self.next_index(n)) + + +class Taboo(LoopTyme): + """宜忌""" + NAMES: List[str] = ['祭祀', '祈福', '求嗣', '开光', '塑绘', '齐醮', '斋醮', '沐浴', '酬神', '造庙', '祀灶', '焚香', '谢土', '出火', '雕刻', '嫁娶', '订婚', '纳采', '问名', '纳婿', '归宁', '安床', '合帐', '冠笄', '订盟', '进人口', '裁衣', '挽面', '开容', '修坟', '启钻', '破土', '安葬', '立碑', '成服', '除服', '开生坟', '合寿木', '入殓', '移柩', '普渡', '入宅', '安香', '安门', '修造', '起基', '动土', '上梁', '竖柱', '开井开池', '作陂放水', '拆卸', '破屋', '坏垣', '补垣', '伐木做梁', '作灶', '解除', '开柱眼', '穿屏扇架', '盖屋合脊', '开厕', '造仓', '塞穴', '平治道涂', '造桥', '作厕', '筑堤', '开池', '伐木', '开渠', '掘井', '扫舍', '放水', '造屋', '合脊', '造畜稠', '修门', '定磉', '作梁', '修饰垣墙', '架马', '开市', '挂匾', '纳财', '求财', '开仓', '买车', '置产', '雇佣', '出货财', '安机械', '造车器', '经络', '酝酿', '作染', '鼓铸', '造船', '割蜜', '栽种', '取渔', '结网', '牧养', '安碓磑', '习艺', '入学', '理发', '探病', '见贵', '乘船', '渡水', '针灸', '出行', '移徙', '分居', '剃头', '整手足甲', '纳畜', '捕捉', '畋猎', '教牛马', '会亲友', '赴任', '求医', '治病', '词讼', '起基动土', '破屋坏垣', '盖屋', '造仓库', '交易', '立券', '安机', '会友', '求医疗病', '诸事不宜', '馀事勿取', '行丧', '断蚁', '归岫'] + """名称""" + + day_taboo: List[str] = [ + '8219000776262322200C1E1D,06292C2E1F;0F11185C0001092A0D7014692982837B7C2C2E302F802D2B,06454F2089;111852828370795B302F404533802D152B39201E23221D212726,0F2E1F010D29;004023222088,0F29111847;11180001032A0D70795B2C2E302F802D4E152B33714161201F26,52095847;0F17000102061979454F3A15477677,241F8920;34357C88,7129;1551000403706A454F3A3D771F262322271E1D21,382B415220;0F000102037039297175261F1D21,454F2E156341;00076A54196348767765,792029711552890D382B;11180001020439332C2E302F2B5844477515634C1F2721,0F520D19267A29717020;297170192C2E2D2F2B3E363F4C,0F52156320010347;4C78,297172380D2A2E0F474841;18115C0001702A2C2E2F5282837129795B6375802D154C,1F208924;1811795B032C2E302F802D4163754C27261E1D2120,010D0F29521F;00401D232288,71290F4720;0F170001020E032A70692C2E302F802D2B0D7129474C201F2322,5211183809615D;0F1811000102062A0D2C2D804B2B672E2F7129,70471F8920;0007343588,0F71296B7080;175447440D15828377656A49,2B2E1F892022;11187129705B79000106032A0D397B6F7C802D2C2B61756627261E0C1D21,0F2E154147;0007385476771548,52061F20;0106111839513A2C2E2D2F8B804B4723221F63,71522920;1118000717161A2C2E3371292B56433D6375363F,0F0103472089;161A7888,292E1F0F3861;11180F00012A0D70795D7B7C39332D2C2E4E4863664C,064F478920;5452828379195D00012A0D7B7C2C2E3348156366242526201E,0F7129;00262788,292C2E1F2B2F;040318111A17332C15290D200C7A,47450638;0004031A170F11332C2E302F1571292A657677451949,70201D52;007B343588,87;00010670175B71292A152322271E,03637C2B38;04067033392C7161262322271E1D210C,;000715547776,521F;181100012C2E2F1F,0F38;70076A363F,2920;7888,292E1F;0F707B7C00012F75,5220;528303395B2F1E20,0F01;4088,87;02060418110D332C2E415B637566262322271F20,520F;0F181100012C2E7129,5220;7C343588,87;0001020603691817452C2E2D498244,412B6A096338;393588,87;076A48,45752F29384C0F204F612B;000301394F2E154763751F27,0F707A802629710D1920;4F2C2E2B383F443D433663,0F0147892015;201E27262322,88;0F000102700D335282835329711563,3804897D4520;6A0339332C20528283531563,29713801000F0C47806B;005088,87;291503000D332E53261F2075,0F5238584F45;003988,87;3435000788,87;150001021745512E443D65262322,2B63387C;394888,87;00036A7415384878,45751F20240F522E824F;00010203332C2E2F1558631F,0F1920707A29712646;0717363F1A2C4F3A67433D8A,71290F010347;', + '0007010618111A332D302F15262322271E530270164C,560F7129;003988,87;073918111A17332C2E71292322271F1E20481D45548283,38002F70;700F181126151E20001A7919,;5040262788,0F712903;7911192C2E302F00030401060F1571292A75,707C2052;0079701811072C2E01060F33152627200C7A1A302F4576631F2B,80523829;39343588,87;040370181123220F1326271E2021,2915;262322271E202188,1F45;0001060403232226380F767754,56802015;0070071A010618110F5B52836775,632620;00010607155B5C26271E2021165D82,38470F29;3948007888,;528283530339454F0D297115332E2F637520,0F007058;5282835444360F11756415,2C2F29016B472E2B2038;0039504088,;0F0001022E792D3E75663D19,472063703852292B;0F000102032971152C2E19,4720637038522B;343588,87;0F52828303700D332C29712E1F27201E2322,15450175;00261F23221E201D2188,;003988,87;52828354754C2971150301022E,0F63206A0938268941;151A82832627202322,580F7003632E1F297C;00394C786F88,0F2E4420;0704031118528283542D2E4E49201F1E1D2127,292B000C;0F706A151E201D528283544466,47010C2E292F2C38;394088,71294709636F7C44;0F0003450D3329712C2E2F1575,528963705A20587D7C;0F111829711500010370390D332E750C201F,4552822F382B80;0034353988,522E1F;0F1118032A0D545282831A802D2C2E2B71296366774744201F26232221,010900150C;0006261F1E201D212322,0F29381118;0006547677,0F5229151F20;111800010206071979697C67474475664C,0F16298920;000102071282542627201D210C4C78,29580F2E6352031F;00784C793988,0F29702E1F2089;0F03390D332C1929711563261D2E2322,382000521118750C706B;702D155482830F63262720,53292F017D4F38442B2E1F47;4088,030F565A61206B;0F181179005B712980152D4E2A0D533358,52702089;0776776A742623221F200C211D1E,11180F2F5206802B;00343588,060F52;07565A5282835463756677261F20,010F152961;0007363F8A3988,09292C20890F;0F11181200171A7919547638,5215201D;181179000607040D03302F5282834F3A45512B1533664C47,090F702E2089;828354151A4C200C1E23221D212726,030F522E1F;0039787988,1F2E20;111871545282832979397B7C69152B2A0D33485324251F1D1E26,6B00702F800C20;0F18110001027939706954528283685D15565A75201E1D26,29032E;00170F79191A6540,712909387C20;00676588,0F20;0F00071A706A717677492923221E202726,80522E1F;343588,0F5220;111800020D041A796933483E5347446563751F1D212026,010F09150C;262322271E201D21,52450F4F;0038262388,5215;040307177938494C,0F262070;', + '0F00030102705282832E544779,2920454F754C38;00010275261E0C2322,6303706F0F292E1F;033945302F828375262720,297071000F2E1F38;000102030F7039453319152E2D2F63751F0C1E20,71290D3847;7917155B0001025D,0F522E3820;38394088,0001202B;0F00175058,5D6B80382E;110F0001702C2E7129201F,5206;0007396A48343588,0F20;111800012A0D2C705271292E201F,15386179;3F656477,0F2B712920;11000170792C2E7129,0F52201F;110F00017052792E1F1E,71290D2B20;0001020626232227201E,0F2E03801F;1179302F832627201E,0071292E1F;0001067052832E71291F20,030F384775;79026A17657603,522E201F;004088,0F014720;010206110F452C2E7129095B5226232227201F0C,58804B036B2B38;69687011180F791966762627201E,0352292E80;00077B7C4834353988,295220;00170F332C2E2D2F802952443F26232227201F,15637C38;006526232227201F,88;0403010218111A17332C2E2D2B15713E6575,4538206429;0007030401021811171A0F2E2322271F1E706749528382,202F2938;000102081A158382262322270C1E,700F292E;1A162623227954,0001710F29;00061A161718110F292A0C26271F21797001022F49,47;1516291211020056,063820;3840,0001202B88;0403080618111A16332E2F152A09537919702C5445490D75072B,80632038;0001081811171A160F1571292A26271E20396476452B0D,632E5238;7B34,87;010206040318110F2E292A27200C70072C302F541F392B49,3815;64262322271F2021,0F2F2938;0002070818111A16175B153E445D5452838265647576,2038454F;000701020618111A1752838254230C7027,26203829;000102261E2027,03476F700F2971382E;15391A302F82835475662627201E,0F702E46290047;0F150370002E0D3979528283532971331F1E20,477D;0F0302791566046F,29710D722A38528283202E45;383940,6370018975202B454F66;3907,87;0F000170390D332E2971152F63751F1E20,52836A38;00397C343548,88;000102030D70332C2E29712F534426201F1E,0F3815;6526232227201F,87;7100030170391959152E2D2F2B,0F201F4F75668938;0F030102392E15634447001F1E,293845200D7075;00161A5D454F153826201E27,7D0D29;1A454F548283,87;0F00010203700D332E2F1929711552828353261F201E2322,;0F171170792F5B1566770001032C2B802D,29387C2071;50400088,87;5C11180001027170520D2983822B15200C,03802E3863;2E260F27201F,523815292F1A;7B7C343588,520F;00060724232227261F2025,520F157929382F;003F651F0C2027232288,0F29;00076A386563,0F7D892066454F52754C;', + '00077663,0F29713820;000304080618110F1A2E2D0D3371292A2C302F7566010239454E802B,6320;181117332C2E1526232227201F1E3E,38030F5229;0103040818111A155283262322271E20217A79708230,38472E63;00483F,6338200F;03041A174533302F56795B3E808239528354,700F2920;17262322274050,80387C6B;000F01111A1615292A2627200C2C670279538283543E49,6345;00010618111A16332C2E2F2D27200C07483A450D,15528338;34357B7C,87;002E2F18110F5B3315292A26271F20210C7A70710102393E19,035A;000304111A33152D2E302F71292A5283530770022B,0F634520;1A16170F13152654,3852204F;0018112C2E01040607332D292A09270C2322696870302F47023945,38205280;18111A16175B3315262322271F1E201D215D828354433E363F754551,00030F29;00700F1715262720,472E3863;3F87,2B38200F;030402111A16175B4F3A2B153E0079015D54528382696A51,7006200F;000F1320,63803829;0079181A165B332F2B262322271E2021030469702D4E49712930835D,454F;00030401061A16170F332E71292627200C02696A45514F0D2C2D4E497A,2B;007C343588,87;0F00701783821952712C2E1526271F,03380620;52838253000103297115332E2F19,0F89514F6A66207545;6A170F19,5845754C201F4F3824;0F000301020D297115332E1F0C,16522026;1545332C2E2F83826375662620,0F0003700D71292B;000102060F17705282797823221E2027,2E7129;3F74397677658887,0F384720;5452838203152F802C2D,2E1F20897A700F29710C7D;00010F17505840,565A803852828363;0F00030102700D19297115332C2B535448,2E452089;0F03000102700D29713963451F0C20,528238542F158061;34357B7C88,030F;118283155B20272E1F21,0F0338;0001020607036A5D397C2163664744,0F4E252089;5482836376656419786A,29803020;0F18110001702C2E71291F0D2B152F2127,52821620;1783822C2E5B26201F,0F010D29;00797083821754,0F2E472D4E1F;000739483F66,0F20892B;54528283036F796A153E65,712963;0F17795B54828358,52807C38;0F5C111800015B712952831F20,756A25;01067071292C2E1F20,1103150F52;343588,0F715229;0F170070792C2E261F,0403412322;03027011170D332D2C2E2F716152828354,010F201F;6A170F1963766F,5452201F;030102703945802D2C512B7129092322270C7566,112E5282;1A5D453A332C2E2F4B25262322271F201E1D21,000F7047;007983821A160F1719,632E20471D6B;483F88,87;040318111A16175B795452838215302F6563395D,38702920;000F1323222627,2E38290315;010203040618110F3315292A271D200C6339171A712C2E30491E21,7A;0039262322271E201D210C0748766465776A,150F3829;3435,87;007018111A1617192E15382627201F656477,4F09;00030418111617332E2D2F292A52835407020D302B,090F4520;', + '528283530003010215392C20,1112180F29560D2E1F7545;004D64547588,0F29;2A0D11180F52838253037039156358332C2E,38200026;00702C2E164C157126271F1E202425363F,29386A032B;005088,032C2E1F;0F00010206030D7129302F79802D7C2B5C4744,11701D20528338;000403110F527079156523221E2027,0129802E1F6B;00384088,15296763;000102060775261F20,71290F7015;1100010206702D804E2B2620,0F52540D;0007397B7C343588,01065220;0776776564,000F293820;00010206111803302F565A802D4E2B871F261E0C,0D0F52;00763988,0F20;110F70528375660D7129,012E1F2026;0001020617385482,030F47202B6B;0039787088,2E1F89034F206B;0706397B7C794C636A48,520F71294720;02703918110F7919155282756626232227201E,012C2E1F0C;00384088,0F202E157C;5C0001020652825B0E03804B2D4E2B752024210C,292E565A;000103020611187B7C2D4E616439201E0C26,522E4744;000734357B7C3988,0F52822920;87,;0004031811171A5B332C2E155D52,0D292045;0088,090F15;18110F197982832E230C271F1E7A70525463,26202915;00011A1615262322271F1E200C214C,472B0F11;00190F153917701A48,472E1F2003;11037B7C2E2F7129,0F5220;007952151E20,0F2E1F;00384740,0F20;0006522E261F20,0F7129;0F11000170717B,522E1F;007B7C3988,87;076564,0F2920;,87;393588,87;0F03700D33195283825329711563,01260038206B;0F70161715232238828326271F20,7D0352;70504C7888,87;0001030239450D297115332C2E4C,0F54207052833863;110F03706A795215636626271E,0C012F38062C292B;0040395088,87;000103392E54827548,19700F58157A2038;00010203390D3329152C2B751E20,2E1F544753524582;0039343588,87;3F4888,87;000102033911170D3319152E2F0947442627201F,;393488,87;0F0102037039330D5283822971152E1F0C,0026206B;001A1715828344363F261F1E200C2322,0F476B520363;0070784888,0345201F;000102031118396375664819,1D413870208029;0370823F0F6A5215,010D582E1F202C2F29;00387765504088,0F157C;070039201F0C2788,06030F292F;003926271E20747677642322480C06,2E1F;00073934357B7C88,0F52;073F7765644888,0120;', + '0F110001702E2F71291F20,06;110001527B7C2E75,0F20;0F11707129,2E1F20;1811002E1F8283,0F20;0F1A0070153871291F20,7A76;3F6588,87;0F1811700001062E2F1F20,7129;18117915384C,5220;07404826271F1E2088,87;0F00010203700D332E2F192971152B52828353631F20,;00037039041A26271F1E202322,0F2F2C335129452E0D3A;0039343588,87;0F0001020370332E2F0D19297115637566302B2C3979,;528283000103451915332C2E631F2720,29716A0D0F70;653988,87;0F00010203528283157033,752971206B452F2B262E;0F000102700D332C2E297115383F631F20,034756;394888,87;528283530370331929272E2B2F631F1D20,0F156B38;1979,3F2F2E45207D;074048261F202322,0F71454F15000180;0F000102030D70332E3919528283532971152B2F201F0C,;0001020339161745514F2C190F1A152E2D2F304979,;3435073988,87;11180F5C000102030D332C2E195329711563261F202322,5283;5282830001032E1570637566302F391F,0F47297120;39701117302F713819297566,004551152C2E201D1F;0001020370528283631575712D2E4E3E581F1E1D,292C2B45262080;0F82833D363F776424,15462F2C52032971;3F8A657788,0F2029702E7D;11180F0001020339700D29716375662E1F2620,38155680;03111A171538193E3F,0F632C2E70454F200C;110F1A6A702C2E1952828353712F6375,4520150001;5282835300010670802D2C2E4E155B201F1E232221,380F71296A;0F1118000102030D70332E2C192971153953631F0C262720,52836125;000739343588,0320;18110F3900010203700D3329711563752E1F0C201D,38525D;000102031811392E2D19528283543E4463751F20,152F1A290F;00657688,6B0F52;0001020311180F702E1F7952828368332D6749443E46630C1E1D21,292B20;0F1700707129385C363F3D1F1E232226,80412B202F;00398A7988,0F20;0F111800017C5C2C2E7129,5270153820;0F1118795B65170002195D,52382E8920;0007711F204840,010F291538;000106025B75712904032D302F382B2A0D801E20,2E1F0F;0F1118060300017B7C792E39767566261F20,71298051;000739343588,8920;074888,06520F38;5282835B79037B7C802D2C2E4E302F2B38493D4463664C1F2021,0F0D7129;63767788,522E0006206B;0F00010206181139702E1F686F6A792D2C304E153375664923221D21,52296B0D80;88,;3F8A6588,1F20;0370110F45510D3371290941614C522623222720,;1966583F6588,87;03700F,79192C2E2D715275262322271F201D21;0F11700001522E71291F20,2B;0F117B7C2C2E71291F20,5203;00343588,87;', + '00343588,7129565A;00060403702C2E4C154947443D651F,0D29;528283530339332E152C2F58631F20,380D000F29;006588,29704720;0F1118175C000301027039450D29332C2E2F15631F,895820;0F161A17452F0D33712C2E2B5443633F,150170208903;70786288,06802E1F;0F0001020370390D332C1929712E157563548283534C,202489;5B000102073911522C302F3A678B363F33490D482425200C1E2322,0F15382E1F61;00076A74504088,5229702C7D;0F110001708371292E1F20,0338805156;111817000106702C2E71292A0D33802D302F4E2B44,0F522520;0007343588,290F71;0F5B8270000102060403161A494447,386A418920;11177B7C52832C2E5B1F20,060071292F0F;003888,52201F1D47;000102062A397129797B7C2E1F2425,162F5D2026;0F172C2E387129363F7566512D4E4461,0103475220;008254,06462F2E1F;0F181117795B5C007054292A0D690403332D2C2E66632B3D,89454F38;030270170F45513A2C71295282832A0D532D24252623222720,155A382E1F;00076A0F3874485040,06707C25;5B71297000010611182A0D39792C2E332D4E80151F202621,52454F38;00077665776488,52820F2089;34357B7C7788,0F29;0F705B0004037C5D15653F1F26,522B4738;181179190E332C2E2D52637566262322271F20,;0076645088,87;0F1100017B7C702E7129,522B;1A38712975,0F20;0026271E20,2F2E1F;18117001061579,712920;0F11707B7C5271291E20,2E1F;0F00074850,8920;0F1811705200012E71291F20,38;18117000012C2E7129,5220;87,;0F18110001261F20,0352;037B7C2E2F261F20,0F;006388,87;0F030001027039452971150D332C2F6327,20528283;020F11161A17454F2C2E2D302F2B38434C,20700163;003988,87;0F00010D0302703352828353297115632E,2089454F;03027039450D332C2F2D2971528283636626202322,5815;006A5040077448,702B2C0F2F29;0F00030102700D332E2C192971155382836375261F1E20,;0001020370450D332C2E2D152971,0F528289201D;343588,87;52828354443D65002C2E15495D1F,0F417D712B3863;528283546315332C2E2F26201F2322,0F0D45002971756B;003888,87;393588,87;2C2E2D2B156343364C,0F4729710D708920036A19;00788A88,0671292E;11180F000152548371702C2E2D4E303348492A156144474C63,89201F384506;0F0300017039712952542D2C302F80380D2A363F3349483E616320,1118150C1F2E;0F006A385040740717,1F7063;0F1118000102030D70332C2E192971158283535426201E2322,471F;77766564000788,0F52201E89;', + '110001392E1F20,0F7129;00343588,87;0F1152702E2F71291F20,0001;0F1152702E2F71291F20,7A;00385476,521F;0F528300012E7129,0920;363F6526232227201E88,87;0F11700001397129,2E20;0F0001067C1F20,5229;0F705215261E20,012E1F;0F001A651707,565A58202E1F4763;297115030102195282830D332C2E,0F1F5863201D89;0039077426271F1E20,0F29713852822B63;343588,87;0F03706A4F0D332C528283532E29711563,450075;0F0370010239332E2C19528283532971156375262720,;003854637519,205D1D1F52151E21;0001020352666A,0F7020262938172F;00261F2322271E200C88,;007082624C,0F38202E7D4F45471F71;0F000102030D332C2E195282835329716375261E2322,;0F033915666A52261E272048,382E2F6329712C01;003988,87;00010203450D3329152C2E2F5375,0F63896A1D38;39006A26201F,0F520D38580629712B;343588,87;528283542E03700F111869565A7566631F1E2021,297138000C;0F1118000102030D70332C2E195282835329711563261F0C20,47457525;00173882546365756619,466115201F701D475224;0F18000102111A1703154F2C2E382D2F807566,716370891F207D;5D0007363F232227261E21,037C0F471F20;0F00701A17820E544C5C78,7129632E1F382089452F;2C2E5B000739337C38802D44484C2425201F1E272621,52297015;0F11185C0370332D152322528283636626271E,2F292C2E1F000106;000F7765,2E1F7C46;111879690001020370396A2E2D528283543E637566,0F380D582920;00013974150726271F1E200C,0F06520D297170382B45;34353988,0F20;0F528371295B795D2B155333565A446375661F201E272621,00016B0C41;0F181100010603797B7C802D302F2B6743441F202322,2952477D25;11180F71297000010604032A0D793969302F33802D636675,201F52565A1E;11180F000704030D7C684580302F153867534775,702041;00262322271F1E203F8A65,52290F0380;002C7080305C784C62,2E1F4720;000704036939487C4466,0F70112938;54528283700001020339482D301571565A363F637566,06292B201F89;005040,522E1F0F2C20;18110001032A0D835B7129302F791533536678,0F20891F1D;076A7626271F1E20,0D0F29382F2E;7B7C343588,0F70;11180F71297052828354792A0D33802D153853201F1E212627,012F564766;0001067011185B0D332C2E2D712909262322271F200C,0F526325;00195475667688,5229152E20;0004037B7C0F79494766754667,802938692089;003F657788,7152290F032B;525400045B17791A565D754C7866,2E1F207C;71297C790001062A0F802D,5215705D;0470170F191A134C8283662426232227201E,;00170F7665776488,;074888,87;', + '0F0001020D700339332C192A82832971152E1F0C20262322,0652563861;1F2027260076232288,0F295282;34357C88,0111180F2920;0F030001022A0D3945297115528283637020,476A382E1F44;5B11180001020328700D332C2E195282837115632F751F2720,290F4766;0F0001021A175D2C19152E302F7182836379,8920704F754541;0F11180300706A2E1549466319,292F26806B382B207545;00704F0D332C2E2D15363F261F20274C,0F2906036F47;0F11180001027039302971542F7526201E,63472E151F58;390001022C2E302F1575804B2D261F20,0D0F0319707D5229717A;076A79040363660F5D363F,52292E1F20382F155601;006A38075040,0F630141202B454F;0F1118000106287129705B032C2E302F802D4E2B201F,5283583841;002876396577261F20,5282290F;07343588,0652;181100012A0D52832953411E20,2E1F0F4715;0F0001062871292E7C528283032C5C2A15767765,11185D89206B;0F181138171A7975665B52835415,47701F8920;0F181100062839707952542C2E302F03565A7566441F1E,0D29802B20;0F280001363F8A4326232220,2E1F47032F7D;0F17000728705448757A,522E1F15562F;00076A74173926271F1E20,0F7029522B;04170F79195D1A637566363F76,01522E8920;700718111A302F717566,0F2B2E20;11180F000128032A0D7129302C2E2F2D802B09411F1E20,52835438;0076777566262322271F201E,0F11185229;34357C88,8920;010670170F0E3A294152828354262322271F201E,2E181544;01023918112E2D493E52756624262322271F20,;04033918110F0D2C2E7129332D2B72528283547566,;017018110F1A2E15495247828363462322271F,;0F000106387129,2E1F;0F707500261E20,382E1F;181100012C2E2F1F20,0F52;181170792C2F7129,5220;07504088,0F01;0F0001062E7129,5220;7665261F20,0F29;077C343588,87;0F18117052000171291E20,2E1F;0F181100017B7C2E71291F20,036F;181100015B3875,2E20;0F000102702E15471F1E,294F2B452C2F2680;0F000102700D332C712E15261F201E,80036A614738;0001020370392F80712B546675201E26,1F58472E15;0039076A7426271F2048,0F79197029717A38;04031975363F6366,0F5401202C5282832E2F;3807504088,87;00020370454F0D3933192C2E2D156375261F202322,0F71;003F261F202788,87;343588,87;002627651E20232288,87;0F0D33000103452E528283297115752620,63386F70;0003391982835475,2E1F0F6A702971722A0D;0F00010203703915632719792322,8026204529715875;002E4344793F26271F20,03702C2F292B381A;001A2B5448701938754C,152E202425;0039332C2E2D2F152B4644261F1E,0F7019382971637A;11180370392A0D3329712C2F156375795B5D,450C8900382E1F2001;5040000738,0F7D7C584F012063452B;', + '000150402627,0F292F2B;0079110F0304062A528323222627207A19701A2C2E2F5D82,2945;001779332D2322271E2007760304,38290F;0007343588,71297063;0004037039180F332D152952262322271F0C533A82,41178047;0079192E2F030417332D1552837A5D,4E20;001A170F1379232227761926,712938;87,26205282;001A170F5B332E2D7129261E203E5D,15035282;007022230726,2E17712952302F;00077A7088,87;87,;07262723221F40,0F712952;0F000102070D70332C2E19528283297115637526201E2322,;03392D2E332F211D201F1E27,0F7015380029710D1958;343588,87;0F0102700D332C2E2F0319528283531529716345261F2322,;5282835300031929150D332C2E63,0F21704520897175;006A79190F6F2627,6B4620453829;00211D1E232288,;0F7045332C2E71201F1D21,47011552295303;00704888,87;0F00040370396A742E15444948,4589384F20;5282835303702971150D2F,38896A6D0F20;0007504088,87;0F00010203700D332C2E1929711552828353637526202322,;393588,87;007C343588,87;0F11180003706A4F0D332C2E192971155363751F20262322,5247464161;528283545363000103332E15,0F1F197029710D757D20;0F006A1938271779,565A4575522F801F1E63;001D23221E2788,52290F2E1F20;0F175B3975660745514F2B4825201E211D,010352292E;007007482088,2E1F5847;0F110039702C2E522F1574487B7C2D4E804B,098920453861;111852828353546319297115030D332B2C,060F892E38201F;0007504088,0F291570;030102062C2E543E3D636679,380D1946297100;0339332C2E302B66201D1F27,0D2971010015520F6B;34357B7C88,7129;0F111800010203700D332C2E192971152F4B49471F270C2322,52562B20;0F111800010203391929710D1552828353,2075708945630941;00177688,0F52804F25;00396577647969271E2322,52012E1F262061;1707702C2E71291F20,0F52000106111D;0070,0F292C2E791F;0F18110001702C2E7129,6F454F098920;705282835B0D2F71,0F202E41;0007504088,060F71702F29;0F5C5B0001032A0D7052832C2E71291F20,1118517D46;07762623221F1E20,000F1552296B2F;88,6B;181100012A0D2C2E2F2B2D304E447129831F,0F0941613820;03020E0F18110D332C2E2D2F4971293E615244756653,892025;000F76,032E1F522C292B;0028397976771E232227,0F522E474420;7039170F45513A2C2E7129242526271F201D,0001035215;0001027007824878,2E3889201D;703911170E2C2E2D2F4B15712952633D,092B8920;03047039171A533852443D363F,;', + '111879076A1A171523221E272024,5229700F1D012E2B0C2F;390050404C88,0F5282296920;261F1E20232288,52290058363F;0F0001020370332C2E2F1575261F,2971476A45825238;0007343588,0F292F7020;00021719792B155D5466774962,010611180F2920;0F1118528283530001035C702971152B332C2E63201F1E23222621,6B75452D4F80;00177179546A76,0F52443D1F;0001020603700F7B7C2E1F692D48302F565A586366240C21,2B151A2920;0F1A1716007015713F261F2720,5263587D2B4703;005C702C2F802B154C78,5A562E1F2089454663;00037039454F0D332971152C4C48,090F476341382E;11185282837975661271393D692D15565A201E262322,292F060D0C;004088,0F52;767788,5282002920;0F111800010206032A0D097170292D302F1575761320,521F4725;000739343588,520F;181179828354637566,0F52290120;5C0F1811790070528371291F20,2F03805125;003854767788,2E1F5220;0F18110001707B7C0D7129,52565A152B20;170007386A7448363F261F1E,030F79636F20;11180F000102587B7C5282837971302F804B2B497675,09612E1F20;705C4C39171A4F0E7971295B5248,0F2E1F1D;076A171552837982546578,712970010F;004C504088,0F521547;7665262322271F201E21,0F00298071;00010206090D5B7952828354685D7B7C443D77656366201F1E,030F47454F;343588,87;790F181113332C2E2D302F1554,70012038;00040301067018111A0F332C15292A261E200C7A7919712F5D52828354,5617454F;003826232277,632E2052;000106073018110F3329271E0C7A0D75,38262015;0F005B261F20,2E2F;384C,8920;076A696819,0F29;036F791E20,522E1F;00654C88,;262322271F1E20,7129;0F18117000012E71291F20,527A;0039343588,;1811795B5466,0120;0F1811705200012E71291F20,062B;003F88,87;000102035270392E2D5863,0F381D2B29212015;00391A6A15384C4943363F7448,0F0379472B63;00701A17794C0F302F715475,2E454F892024;000102037039714515750D33,201D381F092E0F11;5282835479036A2627201E,0F380D70297115012F;4C4088,87;261F201E232288,;002627241F1E20232288,;0039343588,87;0F0211195465756679,2F384570202B6A;0F0052037029710D332C15,7545584F89201D21;0F003854,20521D21;0F0001020370390D1952828353542971631F0C,1520;0F0001022E154826271F1E203874362322,0363;0001020370392F2971152B54754C,45891F0F2046;000370396A450D332F4B154C,0F20897D41381F2E;', + '00790F072C2E0103047018111A262322271E7A302F5448637545,29381556;6A79363F65,0F292B71;000118111A332C2E2D1571292A23222627200C7A791970302F5D5282835456,387C454F;000118111A332C2E2D1571292A2627200C7A1979,387C;00040318110F1519262322271E2021,52821F38;0039343588,87;00390103040618111A17332C2E262322271E157A7071302F45631F2075,807C;000118111A16175B154C26271E200C232279302F5D528283547543,0F297C7A;074888,87;87,;010670181126271F202165,2938;000770171988,0F2E2038;000106040318111A170F33292A26276A201D0C7A71077C1F1E74694F,52;87,;5282835354037029711575262720,631F58000F2E3801;0F0001020370390D3319297115632E2C752620212322,;0339332C2E1575201E26,0F520D631F29712A724738;343588,87;0F00030D70332C2E3952828353542971156375,6B20;00010203396A79637566201D211E,29387D71707A;00076527262322,1552825A201D0F38;3988,;1500443626271F1E,29710F47380D195203;000788,;0F0370390D332C192E2971637547202322,5815;031A2B7915656A,0F177001204529710D632E2F;0F03700D332C2E2971152F52828363,01004547380C;0F000102030D7033528283534529711520,634758;006A6F391974,0F2E614447702C292F71201F3852;34357B7C88,0F20;11180F00010E715229702E79692C2D2B15093954444C66,2F565A8061;000102033945332C6375201D21,0F1929710D70;07487677393F88,0F2952151F1D;0F17000102060370392E52828353331F,452F2C266A79292B2038;161A0F1526271F4C,5861034738;3950177088,522E1F0F20;11180F0001020370391952835329712B632E7B7C792D2C8020,385D15;00046A7966444C7765,010C202F38520F70292E;70545282832E71291A7933192A5D5A5040,090C384F4520891D6B;0F11180006032A0D70332E011954828371152C202322,58477D63;0F111800037039450D2971332C632026,1F2E2B385282;003934357B7C88,0F20;00481F2023221E27262188,0F292C2E;18117900012C2E5B1F20,0F710D5229;000776776548,0F1118152E1F20;5254700001020612692D4E584647336375662E1F1E,71290D2620;006A583F232227261F20,0F29154703;00077088,522E1F8920;0F5C707971292C2E0E032A0D6A804B2D8B2B3348634C,521109154620;04795B3F651A5D,0F52010620;117154528283292C2E302D4E092A0D50407970443D,56804100;18115452830001712970802D2C2E302F2B2A0D78791F,0F20475861;0F1811000104037115454F7677657B7C392023222726210C,52092E1F;34350088,0F20;0F111800171A454F514E3A3871157765443D23221E262720,80612E1F;111800010206037939695482835D2D2E4E446375661F262120,0F52290D71;767779392623222788,152B1F1D20;000102060717706A33392D2E4E674447482322271E210C,71292B4F20;0F171511793F76584C,0347200C1D;000788,87;' + ] + """每日宜忌数据""" + + hour_taboo: List[str] = [ + '0F520120,6D61;0F7082520115000255,80262F;707A000855,0102;0100380806,707A2E2C;0F8252150255,70717A7D01002C0306;0F707A0120002C0855,87;,87;0F71822952202C,7A7D0102;0F70825201150255,2E2C;0F295220380255,707A01000306;0F82295201200255,70717A7D2C;0F707A0120002C0855,80262F;707A000855,0102;0F708252150255,2E01002C0806;0F522055,707A01000306;0F700120002C380855,;0F825201150255,70717A7D802C262F;0F70718229527A202C55,0102;,87;0F702952200255,7A7D01000306;0F7082527A01150255,;0F70012000380255,80262F;000855,70717A7D012C02;0F7071527A2055,2E2C;0F522055,707A01000306;0F7001200255,;0F7071297A0115202C55,80262F;0F71822952002C380806,707A0102;0F70825201150255,7A2E2C;0F200255,707A01000306;,87;0F700120002C0855,7A7D80262F;0F7082527A1555,0102;0100380806,2E2C;0F20190255,70717A7D01002C0306;0F707A0120002C0855,87;0F520120,707A6D80262F61;0F7082521555,0102;0F7071297A0115200255,2E2C;0F2952200255,707A01000306;0F825201150255,70717A7D2C;0F7001200255,80262F;,87;,7A2E7D2C;0F712915202C55,707A01000306;0F7029018020002C38,;0F825201150255,70717A7D802C262F;0F70718229527A202C55,0102;0F71822952012002,2E6D2C61;0F7029527A200255,01000806;0F71290115202C,707A55;01002C380806,707A80262F;0F8252150055,70717A7D012C02;0F715220,707A2E2C55;,87;0F7001200255,7A7D;0F825201150255,707A80262F;0F7182295220002C380806,707A010255;0F718229522002,707A2E2C55;0F2952200255,707A01000306', + '0F700120000255,;0F70290120000855,6D61;0F707129527A15802C381955,01000806;0F7101200019020655,707A2C;0F200855,707A2E01002C0306;0F7182520115802C0255,707A;0F700120000255,;,87;0F70297A01202C380955,;0F8252150255,707A01002C0306;0F0120000855,707A2E2C;0F7071297A01158020002C0855,;0F7082520115000255,;0F70717A01201955,6D61;0F7071295215802C3855,01000806;0F0120000206,707A2C;0F290120000855,707A2E2C;0F7082527A0115202C0255,;0100380806,2E2C;,87;0F707129527A011580202C380255,;0F7082520115000255,;0F71202C1955,707A;0F707129527A1556802C1955,;0F202C4B,707A01000306;0F71201955,707A6D61;0F70202C55,01000806;0F0120000206,707A2C;0F7101201955,707A2E2C;0F7129521556802C0255,707A01000306;01002C380806,;,87;0F7129527A0115802C380255,;0F82520115000255,707A2C;0F202C0855,707A01000306;0F7129521556802C1955,707A;0F700120002C0855,;202C,6D61;0F71295215802C3802,01000806;0F2002,707A01002C0306;0F29012002,707A2E2C;0F708229527A0115202C0255,;01002C380806,;,87;0F71295215802C380855,707A01000306;0F82520115000255,707A;0F0120000855,707A2E2C;0F707129527A1556802C1955,;0F7082520115000255,;,707A01000306;0F707129527A15802C3855,01000806;0F290120000855,707A2C;0F71201955,707A2E2C;0F7182520115802C02,707A55;0F202C0855,707A01000306;,87;0F0120002C086C,707A55;0F82520115000255,707A2C;0F2901202C3809,707A55;0F7129521556802C196C,707A0100030655', + '0F70297A0120000855,80262F;0F822952202C,0102;0F71822952012002,7A2E7D2C;0F712915202C55,707A01000306;0F718229520120002C380802066C,707A;707A01000855,80262F;0F7082527A1555,0102;0F7001200255,2E2C;,87;0F7071297A15202C55,01000806;0F7082527A0115000255,80262F;0F82521555,70717A7D012C02;0F70718229527A200255,2E01002C0806;0F52,0120002C080306;0F7182295201202C02,7A7D;0F708252150255,01800026082F06;0F7071297A20002C38080655,0102;0F0120000855,707A2E2C;0F708252150255,0120002C080306;0F822952202C02,01000806;,87;0F7071297A15202C55,0102;0F708252011500380255,2E2C;0F202C4B,01000806;0F71822952202C0255,707A;0F7082527A01150255,80262F;0F71822952202C,7A7D016D02;0F712915202C,01800026082F06;0F71292055,707A01000306;,707A01000806;0F7082527A0115000255,80262F;0F71822952202C,0102;,87;0F712915202C,707A01000306;0F825201150255,707A;0F70825201150255,80262F;0F70717A201955,0102;0F7001200255,2E2C;,707A01000306;0F7071297A15202C55,01000806;0F70297A012000380855,80262F;0F2920,70717A7D016D2C02;0F708252150255,2E01002C0806;,707A01000306;,87;0F7082527A01150255,2E2C;0F8252150038,707A010255;0F82520115000255,70717A7D2C;,707A01000306;0F5220,01000806;0F70297A0120000855,80262F;0F712915202C,016D000806;0F70718229527A01200038080206,2E2C;0F822952202C02,707A01000306;0F825201150255,707A;0F7082527A01150255,80262F;,87;0F7071297A011520002C55,;0F708252150255,01000806;0F8252150255,70717A7D01002C0806', + '0F71822952202C02,707A;0F7029527A0120000255,;0F7071527A202C55,87;0F71295215802C3802,707A01000306;55,707A01000806;0F292055,707A2E2C;0F708229527A202C0255,01000806;0F708252150255,01000806;0F202C0855,707A01000306;,87;0F8229520115200255,707A2C;0F7082527A01150255,;0F7129521556802C1955,707A;2C3808,707A01000306;70297A0120002C0855,87;29202C,6D61;0F708229527A202C0255,01000806;0F71522055,707A2E01002C0806;0F7129521556802C0855,707A01000306;0F7082520115000255,;0F71290120002C080206,87;,87;0F0120004B,707A2C;0F8252150255,707A2E01002C0306;71295201155680002C0855,707A;0F70290120002C06,;0F822952202C0255,01000806;71295215802C38,01000806;0F7071822952202C0255,01000806;0F70718229520120002C080255,;0F70718229527A202C0255,;0F7082527A01150255,;0F70717A01200008190655,87;,87;0F8229520115200255,707A2C;0F708229527A0115202C0255,;0F707129527A011556802C026C,;2C38,01000806;0F202C0855,707A01000306;0F70712952011580202C380255,;0F718229522002,707A01002C0806;0F295201200255,707A2E2C;0F707129527A011556802C026C,;0F8252150255,707A01000306;0F70297A01202C0255,87;,87;0F8252150255,707A01002C0806;0F8252150255,707A2E01002C0806;0F712952155680202C0255,707A01000306;0F7029012000080255,;0F70718229527A202C0255,87;0F707129527A0180202C0255,;,707A01000806;0F822952202C02,707A01000306;707129527A01155680002C0855,;0F70822952011520002C0255,;0F822952202C02,01000806;,87;0F8252150255,707A01002C0306;0F82520115000255,707A2E2C', + '0F82521555,70717A7D016D2C02;,2E2C;0F5220,707A01000306;0F0120000206,707A;0F825201150255,707A80262F;0F70717A202C381955,01000806;0F0120000206,70717A7D2C;0F7129202C1955,707A01000306;0F7082527A0115000255,;0F7082520115000255,80262F;,87;0F70717A0120003808190655,2E2C;0F8252150255,707A01000306;,2E2C;0F7082527A01150255,80262F;0F70200006,7A7D016D02;0F7071297A01152055,2E6D2C41;2C38,01000806;0F290120000855,70717A7D2C;0F70825201150255,80262F;0F702920002C,0102;0F0120004B,2E2C;,87;0F70717A0120002C3808190655,;0F7082520115000255,80262F;,0102;0F7071527A01200655,2E2C;0F702002,7A7D01000306;0F7129011520002C,6D41;0F70825215380255,01800026082F06;0F200006,70717A7D016D2C02;,2E2C;0F82521502,707A0100030655;0F7082520115000255,7A7D;,87;0F70717A20002C3808190655,016D02;0F825201150255,70717A7D2C;0F7129202C1955,707A01000306;0F520120006C,707A55;0F7082520115000255,7A7D80262F;0F712915202C,707A016D02;0F70717A20381955,2E01002C0806;0F29202C02,707A01000306;0F82295201202C02,707A;0F70825201150255,80262F;0F7082521555,7A7D016D02;,87;0F71202C38081955,707A01000306;0F82520115000255,70717A7D2C;0F70825201150255,80262F;0F70527A2055,016D02;0F0120000206,707A2E2C;0F712915202C,707A016D00034106;2C38,707A01000806;0F82520115000255,70717A7D802C262F;0F822952202C,0102;0F7082527A01150255,2E2C;0F708252150255,7A7D01000306;,87;01002C380806,80262F', + '0F8229520102,707A202C03;0F7182520115802C0255,707A;0F29522055,707A01000306;0F70718229527A01202C0255,87;0F707129527A15803855,202C03;0F71822952200255,707A2C03;0F71822952012002,707A2E2C;0F7129521556802C0855,707A01000306;0F700120000255,;0F70010255,202C03;0F707129520115800038,202C03;,87;0F29522055,707A2E01002C0306;0F707182527A0115802C0255,;0F70297A55,202C03;0F7071297A0255,202C03;0F718229520120002C080206,;0F29200855,707A01000306;55,707A2E01002C0806;0F7071295201155680000855,202C03;0F01004B,202C03;0F825201150255,707A;0F7129521580202C3855,707A01000306;,87;0F70297A55,202C03;0F707182520115800255,202C03;0F7182295201002C38080206,;0F29200855,707A01000306;0F70297A202C02,01000806;0F70297A01000855,202C03;0F712920,707A2E01002C080306;0F7129521556802C55,707A;0F8252150255,707A01000306;0F8252011502,707A55;0F29526C,707A202C0355;,87;0F718229522002,707A2E2C;0F71825215802C0255,707A01000306;0F70202C55,01000806;0F707A01000855,202C03;0F707129520115800038,202C03;0F290180202C380955,707A6D61;0F7029527A2055,01000806;0F707129527A1556802C0255,;0F71520106,707A202C03;0F70825201150255,202C03;0F718229520120002C080206,;,87;0F200255,707A2E01002C0806;0F70718252011580000255,202C03;0F715201066C,707A202C03;0F290180202C380955,707A;0F71295215802C3855,707A01000306;0F70717A20190255,016D00086106;0F712952,0120002C080306;0F70718229527A0255,202C03;0F7182295201002C38080206,707A;0F8252150255,707A01000306;0F70202C55,01000806;,87', + ',87;0F822952200255,70717A7D01002C0306;0F70825201150255,87;0F7082527A01150255,2E2C;0F70202C55,7A7D0102;0F7029527A012055,2E2C;0F2920380855,707A01000306;0F82520115000255,70717A7D2C;0F7082527A01150255,80262F;0F52202C,016D02;0F70825201150255,7A2E7D2C;0F71822952202C0255,707A01000306;,87;0F825201150255,70717A7D802C262F;0F712952202C,0102;0F70527A012055,2E2C;700855,7A7D01000306;0F7071297A011520002C55,;0F8252011500380255,707A80262F;0F7082521555,010002;0F71290120,707A2E2C;0F71822952202C02,707A0100030655;0F7082527A01150255,;0F7001200255,2E2C;,87;0F707A01200255,2E2C;0F82521502,707A0100030655;0F0120002C086C,707A55;0F7082527A01150255,80262F;0F712915202C,016D02;0F2901203809,707A2E2C;0F708252150255,01000806;0F7182295201202C02,87;0F7082527A01150255,80262F;0F7082527A1555,0102;0F7071297A01152055,2E2C;,87;0F707A01200255,;0F70825201150255,80262F;0F52202C,016D02;0F71522055,707A2E2C;0F712915202C02,707A01000306;0F718229520120002C3802,6D41;0F7082527A150255,01800026082F06;0F71822952202C,0102;0F70527A012055,2E2C;0855,707A01000306;707A01000855,;,87;0F522055,70717A7D012C02;0F825201150255,707A2E2C;0F71822952202C02,707A01000306;0F707182295201202C0255,7A7D;0F7082527A01150255,80262F;0F71822952002C380806,016D0241;0F70200255,2E01002C0806;0855,707A01000306;0F700120002C0855,;0F70825201150255,7A7D80262F;0F712915202C,016D02', + '0F290120002C0855,707A;,87;0F7071295201155680002C0206,;0F70822952011520002C0255,;0F70297A01202C0255,87;0F70712901158020002C380855,;0F8252150255,707A01000306;0F71201955,707A2E6D2C61;0F70297A0120002C0206,;0F710120002C3808190655,707A;0F290120002C0855,707A;0F71825215802C380255,707A01000306;,707A2E2C;,87;0F7071295201155680002C0855,;0F7082520115000255,;0F7120081955,707A01000306;0F7071295201158020002C380206,;0F0120004B,707A2C;0F71201955,707A;0F707129521556802C55,01000806;2C3808,707A0100030655;0F71201955,707A;0F70822952011520002C0255,;0F01200255,707A2C;,87;0F7129521556802C0855,707A01000306;0F70290120002C,;0F2901202C,87;0F71295201158020002C380206,707A;0F01200255,707A2C;0F71201955,707A2E016D002C036106;0F7129521556802C02,01000806;0F8229520120002C02,;0F70297A01202C0255,87;0F7082520115000255,;0F202C0855,707A01000306;,87;0F7071297A0120002C19020655,;0F82520115000255,707A;0F70297A01202C0255,87;0F71295215802C3802,707A01000306;0F825201150255,707A2C;0F71201955,707A2E2C;0F70712952155680202C0255,01000806;0F70290120000855,;0F202C0855,707A01000306;0F70718252011580002C380255,;0F7129202C1955,707A;,87;0F707129520115568020002C0255,;0F8252150255,707A01000306;0F70717A201955,2E2C;0F70290120002C0206,;0F01200255,707A2C;0F290120000855,707A2E6D2C61;0F707129521556802C55,01000806;01002C380806,;0F71201955,707A;0F718252011580002C380255,707A', + '0F708252150255,01000806;0F707A010255,202C03;,87;2920002C0806,0102;0F7082527A01150255,2E2C;0F200255,707A01000306;0F7029527A0155,202C03;0F7082527A011500380255,80262F;0F82295220,70717A7D016D2C02;0F70717A201955,2E01002C0806;0F70527A2055,01000806;707A55,0120002C080306;0F70825201150255,80262F;002C380806,707A010255;,87;0F2002,707A0100030655;0F7029527A010255,202C03;0F0120002C4B02,80262F;0F7071297A15202C55,0102;0F70717A0120003808190655,2E2C;0F8229522002,70717A7D01002C0806;707A55,0120002C080306;0F7082527A01150255,80262F;29202C,7A7D016D02;0F7082520115000255,2E2C;0F71202C38081955,707A01000306;,87;0F70825201150255,80262F;0F7082521555,0102;0F7082527A01150255,2E2C;0F7071297A15202C55,01000806;0F700255,0120002C080306;0F825201150255,70717A7D6D802C262F61;,016D0002;0F70297A0120000855,2E2C;0F70200255,7A7D01000306;0F708229527A01150255,202C03;0F7082527A011500380255,80262F;,87;0F70717A201955,2E2C;0F708252150255,01000806;0F708252150255,0120002C080306;0F7082527A01150255,80262F;0F70717A2000381955,0102;0F290120000855,70717A7D2C;0F70202C55,01000806;0F70527A0155,202C03;0F70825201150255,7A7D80262F;0F7082521555,0102;0F70717A0120003808190655,2E2C;,87;0F7055,0120002C080306;0F70825201150255,80262F;0F7082521555,7A7D016D02;0F70297A0120000855,2E2C;0F71202C38081955,707A01000306;0F29522055,70717A7D2C03;0F708252150255,01800026082F06;0F522055,707A0102;0F71201955,707A2E2C', + '71295215802C380855,707A01000306;0F825201150255,707A2C;0F822952011520000255,707A2E2C;,87;0F708252150255,01000806;0F8252150255,707A01000306;0F70718229527A202C0255,;0F292055,707A2C;0F82295201200255,707A2E2C;0F707129527A011556802C55,6D41;707A55,01000806;,707A55;0F70297A0120002C0855,;0F7082520115000255,;,707A2E01002C0806;,87;0F718229520120002C080206,;0F825201150255,707A;0F82295201202C02,707A55;,707A55;0855,707A2E01002C0306;0F707129527A1556802C55,6D41;0F7029202C55,01000806;0F700120002C0855,87;0F707129527A15802C3855,01000806;0F708252150255,01000806;0F71822952012002,707A2E2C;,87;0F7082520115000255,;0F825201150255,707A;71295215802C380855,707A01000306;,707A2C;0F0120000855,707A2E2C;0F7029012000080255,6D41;0F707152202C,01000806;0F71822952202C02,01000806;0F70718229527A01202C0255,;0F708229527A0115202C0255,;0F8229520120000255,707A2E2C;,87;0F8252150255,707A01000306;0F70825201150255,87;0F707A0120002C0855,;0F700120002C080255,;,707A2E01002C0806;0F71822952202C02,01000806;0F718229522C3802,01000806;0F2952202C55,707A;0F707129527A0115802C380255,;0F2901802000,707A2C;0855,707A2E01002C0306;,87;0F70822952011520002C0255,;0F7082520115000255,;0F707129527A15802C380255,01000806;0F718229522002,707A01002C0806;0F7182295201200002,707A2E2C;0F702901202C0255,6D41;2C38,01000806;0F7071297A2055,87', + '0F7071201955,7A7D;0F71290115202C,707A80262F;0F70825215003855,016D02;0F825201150255,70717A7D2C;,87;0F520120,707A55;0F825201150255,707A80262F;0F71291520002C,016D02;0100380806,707A2E2C55;0F71201955,707A01000306;0F71295201202C,6D61;0F5220,01800026082F06;0F7071201955,7A7D016D02;0F7129011520,707A2E2C;2C3808,707A01000306;0F0120004B,70717A7D2C;,87;0F5220,016D02;0F70825201150255,7A2E7D2C;0F712915202C,707A01000306;0F70717A0120002C3808190655,;0F7082527A01150255,80262F;0F70200006,016D0261;0F5220,2E01002C0806;0F71201955,707A01000306;0F7129011520002C,707A;0F708252011500380255,80262F;0F82521555,70717A7D016D2C02;,87;0F5220,707A01000306;0F70825201150255,7A7D;0F825201150255,707A80262F;002C380806,016D02;0F201955,70717A7D2C;0F2002,707A016D00036106;0F5220,01000806;0F825201150255,707A80262F;0F71291520002C,016D02;0F708252011500380255,2E2C;0F8252150255,70717A7D01002C0306;,87;0F7082527A01150255,80262F;0F7082527A1555,016D02;0F7129011520,707A2E2C;2C3808,707A01000306;0F71201955,707A;0F7082520115000255,80262F;0F5220,016D0002;0F7071201955,7A2E7D2C;0F712915202C,707A01000306;0F7082527A011500380255,;0F825201150255,70717A7D802C262F;,87;0F7071520120002C06,;0F29202C55,707A01000306;0F7129011520002C,707A;0F8252011500380255,707A80262F;0F71201955,707A0102;0F700120000206,6D61;0F5220,01000806', + '0F7182295201202C02,707A55;0F7029527A0120002C0255,;0F82520115000255,707A2C03;0F82520115000255,707A2E2C;0F7129521556802C1955,707A01000306;,87;0F7129202C196C,707A55;0F7182520115803802,707A202C0355;0F29522055,707A2C;0F71822952200255,707A2E01002C0306;0F718229520120002C080206,;0F290120000855,707A;0F700255,0120002C080306;707129527A011580002C380855,;0F204B,707A01002C0306;0F825201150255,707A;0F7071297A202C1955,;,87;0F707A01200255,87;0F71825215802C380255,707A01000306;0F7182295201202C02,;0F290120000855,707A2E2C;0F7071295201155680000855,202C03;01000855,707A;0F70717A201955,01000806;0F7129520115802C3855,707A;0F8229520115200255,707A2C;0F825201150255,707A2E2C03;0F707129527A1580202C55,;,87;0F70718229527A202C0255,87;0F70718252011580002C380255,;0F01200255,707A2C03;01000855,707A2E2C;0F7129521556802C1955,707A01000306;01002C380806,707A6D41;0F7071297A202C1955,01000806;0F707129527A15803855,202C03;0F01200255,707A2C;0F8252150255,707A01000306;0F71822952202C02,;,87;0F707A010255,202C03;707129527A011580002C380855,;0F29202C3809,707A01000306;0F71201955,707A;0F7071297A202C1955,;0100380806,6D202C0341;0F7029527A2055,01000806;0F71295215802C3855,707A01000306;0F825201150255,707A2C;0F822952011520000255,707A2E2C;0F7071295201155680000855,202C03;,87;0F29202C380955,707A01000306;0F7182520115802C380255,707A;29202C,707A;0F71292055,707A2E2C03;0F707129527A1556802C55,;0F71822952202C02,707A016D00034106' + ] + """时辰宜忌数据""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Taboo: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Taboo: + return cls(index) + + def next(self, n: int) -> Taboo: + return Taboo(self.next_index(n)) + + @classmethod + def _get_taboos(cls, data: List[str], sup_index: int, sub_index: int, index: int) -> List[Taboo]: + l: List[Taboo] = [] + d: str = data[sup_index].split(';', -1)[sub_index].split(',', -1)[index] + for i in range(0, d.__len__(), 2): + l.append(Taboo(int(d[i:i + 2], 16))) + return l + + @classmethod + def get_day_recommends(cls, month: SixtyCycle, day: SixtyCycle) -> List[Taboo]: + """ + 日宜 + :param month: 月干支 + :param day: 日干支 + :return: 宜忌列表 + """ + return Taboo._get_taboos(Taboo.day_taboo, month.get_earth_branch().get_index(), day.get_index(), 0) + + @classmethod + def get_day_avoids(cls, month: SixtyCycle, day: SixtyCycle) -> List[Taboo]: + """ + 日忌 + :param month:月干支 + :param day: 日干支 + :return: 宜忌列表 + """ + return Taboo._get_taboos(Taboo.day_taboo, month.get_earth_branch().get_index(), day.get_index(), 1) + + @classmethod + def get_hour_recommends(cls, day: SixtyCycle, hour: SixtyCycle) -> List[Taboo]: + """ + 时辰宜 + :param day: 日干支 + :param hour: 时辰干支 + :return: 宜忌列表 + """ + return Taboo._get_taboos(Taboo.hour_taboo, hour.get_earth_branch().get_index(), day.get_index(), 0) + + @classmethod + def get_hour_avoids(cls, day: SixtyCycle, hour: SixtyCycle) -> List[Taboo]: + """ + 时辰忌 + :param day: 日干支 + :param hour:时辰干支 + :return: 宜忌列表 + """ + return Taboo._get_taboos(Taboo.hour_taboo, hour.get_earth_branch().get_index(), day.get_index(), 1) + + +class Ten(LoopTyme): + """旬""" + NAMES: List[str] = ['甲子', '甲戌', '甲申', '甲午', '甲辰', '甲寅'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Ten: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Ten: + return cls(index) + + def next(self, n: int): + return Ten(self.next_index(n)) + + +class Terrain(LoopTyme): + """地势(长生十二神)""" + NAMES: List[str] = ['长生', '沐浴', '冠带', '临官', '帝旺', '衰', '病', '死', '墓', '绝', '胎', '养'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Terrain: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Terrain: + return cls(index) + + def next(self, n: int) -> Terrain: + return Terrain(self.next_index(n)) + + +class Twenty(LoopTyme): + """运(20年=1运,3运=1元)""" + NAMES: List[str] = ['一运', '二运', '三运', '四运', '五运', '六运', '七运', '八运', '九运'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Twenty: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Twenty: + return cls(index) + + def next(self, n: int) -> Twenty: + return Twenty(self.next_index(n)) + + def get_sixty(self) -> Sixty: + """ + 元 + :return: 元 + """ + return Sixty(self.get_index() // 3) + + +class Week(LoopTyme): + """星期""" + NAMES: List[str] = ['日', '一', '二', '三', '四', '五', '六'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Week: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Week: + return cls(index) + + def next(self, n: int) -> Week: + return Week(self.next_index(n)) + + def get_seven_star(self) -> SevenStar: + """ + 七曜 + :return: 七曜 + """ + from tyme4py.culture.star.seven import SevenStar + return SevenStar(self.get_index()) + + +class Zodiac(LoopTyme): + """十二生肖""" + NAMES: List[str] = ['鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊', '猴', '鸡', '狗', '猪'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Zodiac: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Zodiac: + return cls(index) + + def next(self, n: int) -> Zodiac: + return Zodiac(self.next_index(n)) + + def get_earth_branch(self) -> EarthBranch: + """ + 地支 + :return: 地支 + """ + from tyme4py.sixtycycle import EarthBranch + return EarthBranch(self.get_index()) + + +class Zone(LoopTyme): + """宫""" + NAMES: List[str] = ['东', '北', '西', '南'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Zone: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Zone: + return cls(index) + + def next(self, n: int) -> Zone: + return Zone(self.next_index(n)) + + def get_direction(self) -> Direction: + """ + 方位 + :return: 方位 + """ + return Direction(self.get_name()) + + def get_beast(self) -> Beast: + """ + 神兽 + :return: 神兽 + """ + return Beast(self.get_index()) diff --git a/vendor/tyme4py/culture/dog/__init__.py b/vendor/tyme4py/culture/dog/__init__.py new file mode 100644 index 0000000..76a9450 --- /dev/null +++ b/vendor/tyme4py/culture/dog/__init__.py @@ -0,0 +1,40 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import List, Union + +from tyme4py import LoopTyme, AbstractCultureDay + + +class Dog(LoopTyme): + """三伏""" + NAMES: List[str] = ['初伏', '中伏', '末伏'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Dog: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Dog: + return cls(index) + + def next(self, n: int) -> Dog: + return Dog(self.next_index(n)) + + +class DogDay(AbstractCultureDay): + """三伏天""" + + def __init__(self, dog: Dog, day_index: int): + super().__init__(dog, day_index) + + def get_dog(self) -> Dog: + """ + 三伏 + :return: 三伏 + """ + return self.get_culture() diff --git a/vendor/tyme4py/culture/fetus/__init__.py b/vendor/tyme4py/culture/fetus/__init__.py new file mode 100644 index 0000000..4387f48 --- /dev/null +++ b/vendor/tyme4py/culture/fetus/__init__.py @@ -0,0 +1,149 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import TYPE_CHECKING, Union, List + +from tyme4py import LoopTyme, AbstractCulture +from tyme4py.culture import Direction +from tyme4py.enums import Side + +if TYPE_CHECKING: + from tyme4py.lunar import LunarDay, LunarMonth + from tyme4py.sixtycycle import SixtyCycle, SixtyCycleDay + + +class FetusEarthBranch(LoopTyme): + """地支六甲胎神""" + NAMES: List[str] = ['碓', '厕', '炉', '门', '栖', '床'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> FetusEarthBranch: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> FetusEarthBranch: + return cls(index) + + def next(self, n: int): + return FetusEarthBranch(self.next_index(n)) + + +class FetusHeavenStem(LoopTyme): + """天干六甲胎神""" + NAMES: List[str] = ['门', '碓磨', '厨灶', '仓库', '房床'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> FetusHeavenStem: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> FetusHeavenStem: + return cls(index) + + def next(self, n: int) -> FetusHeavenStem: + return FetusHeavenStem(self.next_index(n)) + + +class FetusMonth(LoopTyme): + """逐月胎神""" + NAMES: List[str] = ['占房床', '占户窗', '占门堂', '占厨灶', '占房床', '占床仓', '占碓磨', '占厕户', '占门房', '占房床', '占灶炉', '占房床'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> FetusMonth: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> FetusMonth: + return cls(index) + + @classmethod + def from_lunar_month(cls, lunar_month: LunarMonth) -> Union[FetusMonth, None]: + """ + 从农历月初始化 + :param lunar_month: 农历月 + :return: 逐月胎神 + """ + return None if lunar_month.is_leap() else cls(lunar_month.get_month() - 1) + + def next(self, n: int) -> FetusMonth: + return FetusMonth(self.next_index(n)) + + +class FetusDay(AbstractCulture): + """逐日胎神""" + + def __init__(self, sixty_cycle: SixtyCycle): + self._fetus_heaven_stem = FetusHeavenStem(sixty_cycle.get_heaven_stem().get_index() % 5) + self._fetus_earth_branch = FetusEarthBranch(sixty_cycle.get_earth_branch().get_index() % 6) + index: int = [3, 3, 8, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, -9, -9, -9, -9, -9, -5, -5, -1, -1, -1, -3, -7, -7, -7, -7, -5, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 3, 3, 3, 3][sixty_cycle.get_index()] + self._side = Side.IN if index < 0 else Side.OUT + self._direction = Direction(index) + + @classmethod + def from_lunar_day(cls, lunar_day: LunarDay) -> FetusDay: + return cls(lunar_day.get_sixty_cycle()) + + @classmethod + def from_sixty_cycle_day(cls, sixty_cycle_day: SixtyCycleDay) -> FetusDay: + return cls(sixty_cycle_day.get_sixty_cycle()) + + def get_name(self) -> str: + s: str = self._fetus_heaven_stem.get_name() + self._fetus_earth_branch.get_name() + if '门门' == s: + s = '占大门' + elif '碓磨碓' == s: + s = '占碓磨' + elif '房床床' == s: + s = '占房床' + elif s.startswith('门'): + s = '占' + s + s += ' ' + if Side.IN == self._side: + s += '房内' + else: + s += '外' + direction_name: str = self._direction.get_name() + if Side.OUT == self._side and '北南西东'.find(direction_name) != -1: + s += '正' + s += direction_name + return s + + def get_side(self) -> Side: + """ + 内外 + :return: 内外 + """ + return self._side + + def get_direction(self) -> Direction: + """ + 方位 + :return: 方位 + """ + return self._direction + + def get_fetus_heaven_stem(self) -> FetusHeavenStem: + """ + 天干六甲胎神 + :return: 天干六甲胎神 + """ + return self._fetus_heaven_stem + + def get_fetus_earth_branch(self) -> FetusEarthBranch: + """ + 地支六甲胎神 + :return: 地支六甲胎神 + """ + return self._fetus_earth_branch diff --git a/vendor/tyme4py/culture/nine/__init__.py b/vendor/tyme4py/culture/nine/__init__.py new file mode 100644 index 0000000..d44dda5 --- /dev/null +++ b/vendor/tyme4py/culture/nine/__init__.py @@ -0,0 +1,41 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import Union, List + +from tyme4py import LoopTyme, AbstractCultureDay + + +class Nine(LoopTyme): + """数九""" + NAMES: List[str] = ['一九', '二九', '三九', '四九', '五九', '六九', '七九', '八九', '九九'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Nine: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Nine: + return cls(index) + + def next(self, n: int): + return Nine(self.next_index(n)) + + +class NineDay(AbstractCultureDay): + """数九天""" + + def __init__(self, nine: Nine, day_index: int): + super().__init__(nine, day_index) + + def get_nine(self) -> Nine: + """ + 数九 + :return: 数九 + """ + return self.get_culture() + diff --git a/vendor/tyme4py/culture/pengzu/__init__.py b/vendor/tyme4py/culture/pengzu/__init__.py new file mode 100644 index 0000000..71596f2 --- /dev/null +++ b/vendor/tyme4py/culture/pengzu/__init__.py @@ -0,0 +1,78 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import TYPE_CHECKING, List, Union + +from tyme4py import LoopTyme, AbstractCulture + +if TYPE_CHECKING: + from tyme4py.sixtycycle import SixtyCycle + + +class PengZuEarthBranch(LoopTyme): + """地支彭祖百忌""" + NAMES: List[str] = ['子不问卜自惹祸殃', '丑不冠带主不还乡', '寅不祭祀神鬼不尝', '卯不穿井水泉不香', '辰不哭泣必主重丧', '巳不远行财物伏藏', '午不苫盖屋主更张', '未不服药毒气入肠', '申不安床鬼祟入房', '酉不会客醉坐颠狂', '戌不吃犬作怪上床', '亥不嫁娶不利新郎'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> PengZuEarthBranch: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> PengZuEarthBranch: + return cls(index) + + def next(self, n: int): + return PengZuEarthBranch(self.next_index(n)) + + +class PengZuHeavenStem(LoopTyme): + """天干彭祖百忌""" + NAMES: List[str] = ['甲不开仓财物耗散', '乙不栽植千株不长', '丙不修灶必见灾殃', '丁不剃头头必生疮', '戊不受田田主不祥', '己不破券二比并亡', '庚不经络织机虚张', '辛不合酱主人不尝', '壬不泱水更难提防', '癸不词讼理弱敌强'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> PengZuHeavenStem: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> PengZuHeavenStem: + return cls(index) + + def next(self, n: int) -> PengZuHeavenStem: + return PengZuHeavenStem(self.next_index(n)) + + +class PengZu(AbstractCulture): + """彭祖百忌""" + + def __init__(self, sixty_cycle: SixtyCycle): + self._peng_zu_heaven_stem = PengZuHeavenStem(sixty_cycle.get_heaven_stem().get_index()) + self._peng_zu_earth_branch = PengZuEarthBranch(sixty_cycle.get_earth_branch().get_index()) + + @classmethod + def from_sixty_cycle(cls, sixty_cycle: SixtyCycle) -> PengZu: + return cls(sixty_cycle) + + def get_name(self) -> str: + return self._peng_zu_heaven_stem.get_name() + " " + self._peng_zu_earth_branch.get_name() + + def get_peng_zu_heaven_stem(self) -> PengZuHeavenStem: + """ + 天干彭祖百忌 + :return: 天干彭祖百忌 + """ + return self._peng_zu_heaven_stem + + def get_peng_zu_earth_branch(self) -> PengZuEarthBranch: + """ + 地支彭祖百忌 + :return: 地支彭祖百忌 + """ + return self._peng_zu_earth_branch diff --git a/vendor/tyme4py/culture/phenology/__init__.py b/vendor/tyme4py/culture/phenology/__init__.py new file mode 100644 index 0000000..e071d13 --- /dev/null +++ b/vendor/tyme4py/culture/phenology/__init__.py @@ -0,0 +1,87 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import List, Union + +from tyme4py import LoopTyme, AbstractCultureDay +from tyme4py.jd import JulianDay +from tyme4py.util import ShouXingUtil + + +class Phenology(LoopTyme): + """候""" + NAMES: List[str] = ['蚯蚓结', '麋角解', '水泉动', '雁北乡', '鹊始巢', '雉始雊', '鸡始乳', '征鸟厉疾', '水泽腹坚', '东风解冻', '蛰虫始振', '鱼陟负冰', '獭祭鱼', '候雁北', '草木萌动', '桃始华', '仓庚鸣', '鹰化为鸠', '玄鸟至', '雷乃发声', '始电', '桐始华', '田鼠化为鴽', '虹始见', '萍始生', '鸣鸠拂其羽', '戴胜降于桑', '蝼蝈鸣', '蚯蚓出', '王瓜生', '苦菜秀', '靡草死', '麦秋至', '螳螂生', '鵙始鸣', '反舌无声', '鹿角解', '蜩始鸣', '半夏生', '温风至', '蟋蟀居壁', '鹰始挚', '腐草为萤', '土润溽暑', '大雨行时', '凉风至', '白露降', '寒蝉鸣', '鹰乃祭鸟', '天地始肃', '禾乃登', '鸿雁来', '玄鸟归', '群鸟养羞', '雷始收声', '蛰虫坯户', '水始涸', '鸿雁来宾', '雀入大水为蛤', '菊有黄花', '豺乃祭兽', '草木黄落', '蛰虫咸俯', '水始冰', '地始冻', '雉入大水为蜃', '虹藏不见', '天气上升地气下降', '闭塞而成冬', '鹖鴠不鸣', '虎始交', '荔挺出'] + """名称""" + + def __init__(self, year: int, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + if isinstance(index_or_name, int): + size: int = self.get_size() + self._year = (year * size + index_or_name) // size + else: + self._year = year + + @classmethod + def from_name(cls, year: int, name: str) -> Phenology: + return cls(year, name) + + @classmethod + def from_index(cls, year: int, index: int) -> Phenology: + return cls(year, index) + + def next(self, n: int) -> Phenology: + size: int = self.get_size() + i: int = self.get_index() + n + return Phenology((self.get_year() * size + i) // size, self.index_of(i, size)) + + def get_year(self) -> int: + """ + :return: 年 + """ + return self._year + + def get_three_phenology(self) -> ThreePhenology: + """ + :return: 三候 + """ + return ThreePhenology(self.get_index() % 3) + + def get_julian_day(self) -> JulianDay: + """ + :return: 儒略日 + """ + t = ShouXingUtil.sa_lon_t((self.get_year() - 2000 + (self.get_index() - 18) * 5.0 / 360 + 1) * 2 * ShouXingUtil.PI) + return JulianDay.from_julian_day(t * 36525 + JulianDay.J2000 + 8.0 / 24 - ShouXingUtil.dt_t(t * 36525)) + + +class ThreePhenology(LoopTyme): + """三候""" + NAMES: List[str] = ['初候', '二候', '三候'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> ThreePhenology: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> ThreePhenology: + return cls(index) + + def next(self, n: int) -> ThreePhenology: + return ThreePhenology(self.next_index(n)) + + def get_three_phenology(self) -> ThreePhenology: + return ThreePhenology(self.get_index() % 3) + + +class PhenologyDay(AbstractCultureDay): + """七十二候""" + + def __init__(self, phenology: Phenology, day_index: int): + super().__init__(phenology, day_index) + + def get_phenology(self) -> Phenology: + return super().get_culture() diff --git a/vendor/tyme4py/culture/plumrain/__init__.py b/vendor/tyme4py/culture/plumrain/__init__.py new file mode 100644 index 0000000..43635aa --- /dev/null +++ b/vendor/tyme4py/culture/plumrain/__init__.py @@ -0,0 +1,43 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import List, Union + +from tyme4py import LoopTyme, AbstractCultureDay + + +class PlumRain(LoopTyme): + """梅雨""" + NAMES: List[str] = ['入梅', '出梅'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> PlumRain: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> PlumRain: + return cls(index) + + def next(self, n: int) -> PlumRain: + return PlumRain(self.next_index(n)) + + +class PlumRainDay(AbstractCultureDay): + """梅雨天""" + + def __init__(self, plum_rain: PlumRain, day_index: int): + super().__init__(plum_rain, day_index) + + def get_plum_rain(self) -> PlumRain: + """ + 梅雨 + :return: 梅雨 + """ + return super().get_culture() + + def __str__(self) -> str: + return super().__str__() if self.get_plum_rain().get_index() == 0 else self.get_plum_rain().get_name() diff --git a/vendor/tyme4py/culture/ren/__init__.py b/vendor/tyme4py/culture/ren/__init__.py new file mode 100644 index 0000000..476e419 --- /dev/null +++ b/vendor/tyme4py/culture/ren/__init__.py @@ -0,0 +1,33 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import List, Union + +from tyme4py import LoopTyme +from tyme4py.culture import Luck, Element + + +class MinorRen(LoopTyme): + """小六壬""" + NAMES: List[str] = ['大安', '留连', '速喜', '赤口', '小吉', '空亡'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + def next(self, n: int) -> MinorRen: + return MinorRen(self.next_index(n)) + + def get_luck(self) -> Luck: + """ + 吉凶 + :return: 吉凶 + """ + return Luck(self.get_index() % 2) + + def get_element(self) -> Element: + """ + 五行 + :return: 五行 + """ + return Element([0, 4, 1, 3, 0, 2][self.get_index()]) diff --git a/vendor/tyme4py/culture/star/__init__.py b/vendor/tyme4py/culture/star/__init__.py new file mode 100644 index 0000000..380474e --- /dev/null +++ b/vendor/tyme4py/culture/star/__init__.py @@ -0,0 +1 @@ +# -*- coding:utf-8 -*- diff --git a/vendor/tyme4py/culture/star/nine.py b/vendor/tyme4py/culture/star/nine.py new file mode 100644 index 0000000..f00b0c8 --- /dev/null +++ b/vendor/tyme4py/culture/star/nine.py @@ -0,0 +1,80 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import List, Union + +from tyme4py import LoopTyme +from tyme4py.culture import Direction, Element + + +class Dipper(LoopTyme): + """北斗九星""" + NAMES: List[str] = ['天枢', '天璇', '天玑', '天权', '玉衡', '开阳', '摇光', '洞明', '隐元'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Dipper: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Dipper: + return cls(index) + + def next(self, n: int) -> Dipper: + return Dipper(self.next_index(n)) + + +class NineStar(LoopTyme): + """九星""" + NAMES: List[str] = ['一', '二', '三', '四', '五', '六', '七', '八', '九'] + """名称""" + COLORS: List[str] = ['白', '黑', '碧', '绿', '黄', '白', '赤', '白', '紫'] + """颜色""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> NineStar: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> NineStar: + return cls(index) + + def next(self, n: int) -> NineStar: + return NineStar(self.next_index(n)) + + def get_color(self) -> str: + """ + 颜色 + :return: 颜色 + """ + return self.COLORS[self.get_index()] + + def get_element(self) -> Element: + """ + 五行 + :return: 五行 + """ + return self.get_direction().get_element() + + def get_dipper(self) -> Dipper: + """ + 北斗九星 + :return: 北斗九星 + """ + return Dipper(self.get_index()) + + def get_direction(self) -> Direction: + """ + 方位 + :return: 方位 + """ + return Direction(self.get_index()) + + def __str__(self) -> str: + return f'{self.get_name()}{self.get_color()}{self.get_element().get_name()}' diff --git a/vendor/tyme4py/culture/star/seven.py b/vendor/tyme4py/culture/star/seven.py new file mode 100644 index 0000000..889706d --- /dev/null +++ b/vendor/tyme4py/culture/star/seven.py @@ -0,0 +1,33 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import List, Union + +from tyme4py import LoopTyme +from tyme4py.culture import Week + + +class SevenStar(LoopTyme): + """七曜(七政、七纬、七耀)""" + NAMES: List[str] = ['日', '月', '火', '水', '木', '金', '土'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> SevenStar: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> SevenStar: + return cls(index) + + def next(self, n: int) -> SevenStar: + return SevenStar(super().next_index(n)) + + def get_week(self) -> Week: + """ + :return:星期 + """ + return Week(self.get_index()) diff --git a/vendor/tyme4py/culture/star/six.py b/vendor/tyme4py/culture/star/six.py new file mode 100644 index 0000000..3056943 --- /dev/null +++ b/vendor/tyme4py/culture/star/six.py @@ -0,0 +1,26 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import List, Union + +from tyme4py import LoopTyme + + +class SixStar(LoopTyme): + """六曜""" + NAMES: List[str] = ['先胜', '友引', '先负', '佛灭', '大安', '赤口'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> SixStar: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> SixStar: + return cls(index) + + def next(self, n: int) -> SixStar: + return SixStar(self.next_index(n)) diff --git a/vendor/tyme4py/culture/star/ten.py b/vendor/tyme4py/culture/star/ten.py new file mode 100644 index 0000000..96d6951 --- /dev/null +++ b/vendor/tyme4py/culture/star/ten.py @@ -0,0 +1,26 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import List, Union + +from tyme4py import LoopTyme + + +class TenStar(LoopTyme): + """十神""" + NAMES: List[str] = ['比肩', '劫财', '食神', '伤官', '偏财', '正财', '七杀', '正官', '偏印', '正印'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> TenStar: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> TenStar: + return cls(index) + + def next(self, n: int) -> TenStar: + return TenStar(self.next_index(n)) diff --git a/vendor/tyme4py/culture/star/twelve.py b/vendor/tyme4py/culture/star/twelve.py new file mode 100644 index 0000000..15c6b40 --- /dev/null +++ b/vendor/tyme4py/culture/star/twelve.py @@ -0,0 +1,61 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import List, Union + +from tyme4py import LoopTyme +from tyme4py.culture import Luck + + +class TwelveStar(LoopTyme): + """黄道黑道十二神""" + NAMES: List[str] = ['青龙', '明堂', '天刑', '朱雀', '金匮', '天德', '白虎', '玉堂', '天牢', '玄武', '司命', '勾陈'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> TwelveStar: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> TwelveStar: + return cls(index) + + def next(self, n: int) -> TwelveStar: + return TwelveStar(self.next_index(n)) + + def get_ecliptic(self) -> Ecliptic: + """ + 黄道黑道 + :return: 黄道黑道 + """ + return Ecliptic([0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1][self.get_index()]) + + +class Ecliptic(LoopTyme): + """黄道黑道就两种,依次为:黄道、黑道。""" + NAMES: List[str] = ["黄道", "黑道"] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> Ecliptic: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> Ecliptic: + return cls(index) + + def next(self, n: int) -> Ecliptic: + return Ecliptic(self.next_index(n)) + + def get_luck(self) -> Luck: + """ + 吉凶 + :return: 吉凶 + """ + return Luck(self.get_index()) diff --git a/vendor/tyme4py/culture/star/twentyeight.py b/vendor/tyme4py/culture/star/twentyeight.py new file mode 100644 index 0000000..a9490e2 --- /dev/null +++ b/vendor/tyme4py/culture/star/twentyeight.py @@ -0,0 +1,61 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import TYPE_CHECKING, List, Union + +from tyme4py import LoopTyme +from tyme4py.culture import Land, Animal, Luck, Zone + +if TYPE_CHECKING: + from tyme4py.culture.star.seven import SevenStar + + +class TwentyEightStar(LoopTyme): + """二十八宿""" + NAMES: List[str] = ['角', '亢', '氐', '房', '心', '尾', '箕', '斗', '牛', '女', '虚', '危', '室', '壁', '奎', '娄', '胃', '昴', '毕', '觜', '参', '井', '鬼', '柳', '星', '张', '翼', '轸'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> TwentyEightStar: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> TwentyEightStar: + return cls(index) + + def next(self, n: int) -> TwentyEightStar: + return TwentyEightStar(self.next_index(n)) + + def get_seven_star(self) -> SevenStar: + """ + :return: 七曜 + """ + from tyme4py.culture.star.seven import SevenStar + return SevenStar(self.get_index() % 7 + 4) + + def get_land(self) -> Land: + """ + :return: 九野 + """ + return Land([4, 4, 4, 2, 2, 2, 7, 7, 7, 0, 0, 0, 0, 5, 5, 5, 6, 6, 6, 1, 1, 1, 8, 8, 8, 3, 3, 3][self.get_index()]) + + def get_zone(self) -> Zone: + """ + :return: 宫 + """ + return Zone(self.get_index() // 7) + + def get_animal(self) -> Animal: + """ + :return: 动物 + """ + return Animal(self.get_index()) + + def get_luck(self) -> Luck: + """ + :return: 吉凶 + """ + return Luck([0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0][self.get_index()]) diff --git a/vendor/tyme4py/eightchar/__init__.py b/vendor/tyme4py/eightchar/__init__.py new file mode 100644 index 0000000..98ccd71 --- /dev/null +++ b/vendor/tyme4py/eightchar/__init__.py @@ -0,0 +1,501 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +import warnings +from math import ceil +from typing import TYPE_CHECKING, Union, List + +from tyme4py import AbstractCulture, AbstractTyme +from tyme4py.culture import Duty +from tyme4py.eightchar.provider import ChildLimitProvider +from tyme4py.eightchar.provider.impl import DefaultChildLimitProvider +from tyme4py.enums import Gender, YinYang + +if TYPE_CHECKING: + from tyme4py.lunar import LunarYear + from tyme4py.solar import SolarTime, SolarTerm, SolarDay + from tyme4py.sixtycycle import SixtyCycle, SixtyCycleYear, ThreePillars + + +class EightChar(AbstractCulture): + """八字""" + + def __init__(self, year: Union[SixtyCycle, str], month: Union[SixtyCycle, str], day: Union[SixtyCycle, str], hour: Union[SixtyCycle, str]): + """ + 初始化 + :param year: 年干支 + :param month: 月干支 + :param day: 日干支 + :param hour: 时干支 + """ + from tyme4py.sixtycycle import SixtyCycle, ThreePillars + self._three_pillars = ThreePillars(year if isinstance(year, SixtyCycle) else SixtyCycle(year), month if isinstance(month, SixtyCycle) else SixtyCycle(month), day if isinstance(day, SixtyCycle) else SixtyCycle(day)) + self._hour = hour if isinstance(hour, SixtyCycle) else SixtyCycle(hour) + + def get_year(self) -> SixtyCycle: + """ + 年柱 + :return: 干支 SixtyCycle + """ + return self._three_pillars.get_year() + + def get_month(self) -> SixtyCycle: + """ + 月柱 + :return: 干支 SixtyCycle + """ + return self._three_pillars.get_month() + + def get_day(self) -> SixtyCycle: + """ + 日柱 + :return: 干支 SixtyCycle + """ + return self._three_pillars.get_day() + + def get_hour(self) -> SixtyCycle: + """ + 时柱 + :return: 干支 SixtyCycle + """ + return self._hour + + def get_fetal_origin(self) -> SixtyCycle: + """ + 胎元 + :return: 干支 SixtyCycle + """ + from tyme4py.sixtycycle import SixtyCycle + m: SixtyCycle = self.get_month() + return SixtyCycle.from_index(m.get_heaven_stem().next(1).get_index() * 6 - m.get_earth_branch().next(3).get_index() * 5) + + def get_fetal_breath(self) -> SixtyCycle: + """ + 胎息 + :return: 干支 SixtyCycle + """ + from tyme4py.sixtycycle import SixtyCycle + d: SixtyCycle = self.get_day() + return SixtyCycle.from_index(d.get_heaven_stem().next(5).get_index() * 6 + d.get_earth_branch().get_index() * 5 - 65) + + def get_own_sign(self) -> SixtyCycle: + """ + 命宫 + :return: 干支 SixtyCycle + """ + from tyme4py.sixtycycle import SixtyCycle + return SixtyCycle.from_index(self.get_year().get_heaven_stem().get_index() * 12 + (27 - self.get_month().get_earth_branch().get_index() - self._hour.get_earth_branch().get_index()) % 12 + 2) + + def get_body_sign(self) -> SixtyCycle: + """ + 身宫 + :return: 干支 SixtyCycle + """ + from tyme4py.sixtycycle import SixtyCycle + return SixtyCycle.from_index(self.get_year().get_heaven_stem().get_index() * 12 + (11 + self.get_month().get_earth_branch().get_index() + self._hour.get_earth_branch().get_index()) % 12 + 2) + + def get_duty(self) -> Duty: + """ + 建除十二值神 + :return: 建除十二值神 + """ + warnings.warn('get_duty() is deprecated, please use SixtyCycleDay.get_duty() instead.', DeprecationWarning) + return Duty(self.get_day().get_earth_branch().get_index() - self.get_month().get_earth_branch().get_index()) + + def get_name(self) -> str: + return f'{self._three_pillars} {self._hour}' + + def get_solar_times(self, start_year: int, end_year: int) -> List[SolarTime]: + """ + 八字转公历时刻列表 + :param start_year: 开始年份,支持1-9999年 + :param end_year: 结束年份,支持1-9999年 + :return: 公历时刻 SolarTime的列表 + """ + from tyme4py.sixtycycle import HeavenStem + from tyme4py.solar import SolarTime, SolarTerm + l: List[SolarTime] = [] + year = self.get_year() + month = self.get_month() + day = self.get_day() + # 月地支距寅月的偏移值 + m: int = month.get_earth_branch().next(-2).get_index() + # 月天干要一致 + if not HeavenStem((year.get_heaven_stem().get_index() + 1) * 2 + m) == month.get_heaven_stem(): + return l + + # 1年的立春是辛酉,序号57 + y: int = year.next(-57).get_index() + 1 + # 节令偏移值 + m *= 2 + # 时辰地支转时刻 + h: int = self._hour.get_earth_branch().get_index() * 2 + # 兼容子时多流派 + hours: List[int] = [0, 23] if h == 0 else [h] + base_year: int = start_year - 1 + if base_year > y: + y += 60 * int(ceil((base_year - y) / 60.0)) + + while y <= end_year: + # 立春为寅月的开始 + term: SolarTerm = SolarTerm(y, 3) + # 节令推移,年干支和月干支就都匹配上了 + if m > 0: + term = term.next(m) + + solar_time: SolarTime = term.get_julian_day().get_solar_time() + if solar_time.get_year() >= start_year: + # 日干支和节令干支的偏移值 + solar_day: SolarDay = solar_time.get_solar_day() + d: int = day.next(-solar_day.get_lunar_day().get_sixty_cycle().get_index()).get_index() + if d > 0: + # 从节令推移天数 + solar_day = solar_day.next(d) + for i in range(0, hours.__len__()): + mi: int = 0 + s: int = 0 + hour: int = hours[i] + if d == 0 and hour == solar_time.get_hour(): + # 如果正好是节令当天,且小时和节令的小时数相等的极端情况,把分钟和秒钟带上 + mi = solar_time.get_minute() + s = solar_time.get_second() + + time: SolarTime = SolarTime(solar_day.get_year(), solar_day.get_month(), solar_day.get_day(), hour, mi, s) + if d == 30: + time = time.next(-3600) + # 验证一下 + if time.get_lunar_hour().get_eight_char() == self: + l.append(time) + y += 60 + return l + + +class ChildLimitInfo: + """童限信息""" + + def __init__(self, start_time: SolarTime, end_time: SolarTime, year_count: int, month_count: int, day_count: int, hour_count: int, minute_count: int): + """ + 初始化 + :param start_time: 开始(即出生)的公历时刻 + :param end_time: 结束(即开始起运)的公历时刻 + :param year_count: 年数 + :param month_count: 月数 + :param day_count: 日数 + :param hour_count: 小时数 + :param minute_count: 分钟数 + """ + self._start_time = start_time + self._end_time = end_time + self._year_count = year_count + self._month_count = month_count + self._day_count = day_count + self._hour_count = hour_count + self._minute_count = minute_count + + def get_start_time(self) -> SolarTime: + """ + :return: 开始(即出生)的公历时刻 + """ + return self._start_time + + def get_end_time(self) -> SolarTime: + """ + :return: 结束(即开始起运)的公历时刻 + """ + return self._end_time + + def get_year_count(self) -> int: + """ + :return: 年数 + """ + return self._year_count + + def get_month_count(self) -> int: + """ + :return: 月数 + """ + return self._month_count + + def get_day_count(self) -> int: + """ + :return: 日数 + """ + return self._day_count + + def get_hour_count(self) -> int: + """ + :return: 小时数 + """ + return self._hour_count + + def get_minute_count(self) -> int: + """ + :return: 分钟数 + """ + return self._minute_count + + +class ChildLimit: + """童限(从出生到起运的时间段)""" + provider: ChildLimitProvider = DefaultChildLimitProvider() + """童限计算接口""" + + def __init__(self, birth_time: SolarTime, gender: Gender): + """ + 通过出生公历时刻初始化 + :param birth_time: 出生公历时刻 + :param gender: 性别 + """ + self._gender = gender + self._eight_char = birth_time.get_lunar_hour().get_eight_char() + # 阳男阴女顺推,阴男阳女逆推 + yang: bool = YinYang.YANG == self._eight_char.get_year().get_heaven_stem().get_yin_yang() + man: bool = Gender.MAN == gender + self._forward = (yang and man) or (not yang and not man) + term: SolarTerm = birth_time.get_term() + if not term.is_jie(): + term = term.next(-1) + if self._forward: + term = term.next(2) + self._info = ChildLimit.provider.get_info(birth_time, term) + + def get_eight_char(self) -> EightChar: + """ + :return: 八字 + """ + return self._eight_char + + def get_gender(self) -> Gender: + """ + :return: 性别 + """ + return self._gender + + def get_year_count(self) -> int: + """ + :return: 年数 + """ + return self._info.get_year_count() + + def get_month_count(self) -> int: + """ + :return: 月数 + """ + return self._info.get_month_count() + + def get_day_count(self) -> int: + """ + :return: 日数 + """ + return self._info.get_day_count() + + def get_hour_count(self) -> int: + """ + :return: 小时数 + """ + return self._info.get_hour_count() + + def get_minute_count(self) -> int: + """ + :return: 分钟数 + """ + return self._info.get_minute_count() + + def get_start_time(self) -> SolarTime: + """ + 开始(即出生)的公历时刻 + :return: 公历时刻 + """ + return self._info.get_start_time() + + def get_end_time(self) -> SolarTime: + """ + 结束(即开始起运)的公历时刻 + :return: 公历时刻 + """ + return self._info.get_end_time() + + def is_forward(self) -> bool: + """ + 是否顺推 + :return: true/false + """ + return self._forward + + def get_start_decade_fortune(self) -> DecadeFortune: + """ + :return: 起运大运 + """ + return DecadeFortune(self, 0) + + def get_decade_fortune(self) -> DecadeFortune: + """ + :return: 所属大运 + """ + return DecadeFortune(self, -1) + + def get_start_fortune(self) -> Fortune: + """ + :return: 小运 + """ + return Fortune(self, 0) + + def get_end_lunar_year(self) -> LunarYear: + """ + 结束农历年 + :return: 农历年 + """ + warnings.warn('get_end_lunar_year() is deprecated, please use SixtyCycleDay.get_duty() instead.', DeprecationWarning) + from tyme4py.lunar import LunarYear + return LunarYear.from_year(self.get_start_time().get_lunar_hour().get_year() + self.get_end_time().get_year() - self.get_start_time().get_year()) + + def get_start_sixty_cycle_year(self) -> SixtyCycleYear: + """ + 开始(即出生)干支年 + :return: 干支年 + """ + from tyme4py.sixtycycle import SixtyCycleYear + return SixtyCycleYear.from_year(self.get_start_time().get_year()) + + def get_end_sixty_cycle_year(self) -> SixtyCycleYear: + """ + 结束(即起运)干支年 + :return: 干支年 + """ + from tyme4py.sixtycycle import SixtyCycleYear + return SixtyCycleYear.from_year(self.get_end_time().get_year()) + + @staticmethod + def get_start_age() -> int: + """ + 开始年龄 + :return: 数字 + """ + return 1 + + def get_end_age(self) -> int: + """ + 结束年龄 + :return: 数字 + """ + n: int = self.get_end_sixty_cycle_year().get_year() - self.get_start_sixty_cycle_year().get_year() + return max(n, 1) + + +class Fortune(AbstractTyme): + """小运--在十年大运中,每一年为一小运。童限结束的公历时刻,既是大运的开始,也是小运的开始。""" + + def __init__(self, child_limit: ChildLimit, index: int): + """ + 通过童限初始化 + :param child_limit: 童限 + :param index: 序号 + """ + self._child_limit = child_limit + self._index = index + + def get_age(self) -> int: + """ + :return: 年龄 + """ + return self._child_limit.get_end_sixty_cycle_year().get_year() - self._child_limit.get_start_sixty_cycle_year().get_year() + 1 + self._index + + def get_lunar_year(self) -> LunarYear: + """ + :return: 农历年 + """ + warnings.warn('get_lunar_year() is deprecated, please use get_sixty_cycle_year() instead.', DeprecationWarning) + return self._child_limit.get_end_lunar_year().next(self._index) + + def get_sixty_cycle_year(self) -> SixtyCycleYear: + """ + :return: 干支年 + """ + return self._child_limit.get_end_sixty_cycle_year().next(self._index) + + def get_sixty_cycle(self) -> SixtyCycle: + """ + :return: 干支 + """ + n: int = self.get_age() + return self._child_limit.get_eight_char().get_hour().next(n if self._child_limit.is_forward() else -n) + + def get_name(self) -> str: + return self.get_sixty_cycle().get_name() + + def next(self, n: int) -> Fortune: + return Fortune(self._child_limit, self._index + n) + + +class DecadeFortune(AbstractTyme): + """大运(10年1大运)--自起运开始,每十年为一大运。童限结束的公历时刻,即开始起运,是大运的开始。""" + + def __init__(self, child_limit: ChildLimit, index: int): + """ + 通过童限初始化 + :param child_limit: 童限 + :param index: 序号 + """ + self._child_limit = child_limit + self._index = index + + def get_start_age(self) -> int: + """ + :return: 开始年龄 + """ + return self._child_limit.get_end_sixty_cycle_year().get_year() - self._child_limit.get_start_sixty_cycle_year().get_year() + 1 + self._index * 10 + + def get_end_age(self) -> int: + """ + :return: 结束年龄 + """ + return self.get_start_age() + 9 + + def get_start_lunar_year(self) -> LunarYear: + """ + 开始农历年 + :return: 农历年 + """ + warnings.warn('get_lunar_year() is deprecated, please use get_sixty_cycle_year() instead.', DeprecationWarning) + return self._child_limit.get_end_lunar_year().next(self._index * 10) + + def get_end_lunar_year(self) -> LunarYear: + """ + 结束农历年 + :return: 农历年 + """ + warnings.warn('get_lunar_year() is deprecated, please use get_sixty_cycle_year() instead.', DeprecationWarning) + return self.get_start_lunar_year().next(9) + + def get_start_sixty_cycle_year(self) -> SixtyCycleYear: + """ + 开始干支年 + :return: 干支年 + """ + return self._child_limit.get_end_sixty_cycle_year().next(self._index * 10) + + def get_end_sixty_cycle_year(self) -> SixtyCycleYear: + """ + 结束干支年 + :return: 干支年 + """ + return self.get_start_sixty_cycle_year().next(9) + + def get_sixty_cycle(self) -> SixtyCycle: + """ + :return: 干支 + """ + return self._child_limit.get_eight_char().get_month().next(self._index + 1 if self._child_limit.is_forward() else -self._index - 1) + + def get_name(self) -> str: + return self.get_sixty_cycle().get_name() + + def next(self, n: int) -> DecadeFortune: + return DecadeFortune(self._child_limit, self._index + n) + + def get_start_fortune(self) -> Fortune: + """ + 本轮大运中开始的小运 + :return: 小运 Fortune + """ + return Fortune(self._child_limit, self._index * 10) diff --git a/vendor/tyme4py/eightchar/provider/__init__.py b/vendor/tyme4py/eightchar/provider/__init__.py new file mode 100644 index 0000000..8be47db --- /dev/null +++ b/vendor/tyme4py/eightchar/provider/__init__.py @@ -0,0 +1,38 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from abc import ABC, abstractmethod +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from tyme4py.eightchar import EightChar + from tyme4py.lunar import LunarHour + from tyme4py.solar import SolarTime, SolarTerm + from tyme4py.eightchar import ChildLimitInfo + + +class EightCharProvider(ABC): + """八字计算接口""" + + @abstractmethod + def get_eight_char(self, hour: LunarHour) -> EightChar: + """ + 八字 + :param hour: 农历时辰 + :return: 八字 EightChar + """ + pass + + +class ChildLimitProvider(ABC): + """童限计算接口""" + + @abstractmethod + def get_info(self, birth_time: SolarTime, term: SolarTerm) -> ChildLimitInfo: + """ + 童限信息 + :param birth_time:出生公历时刻 + :param term: 节令 + :return: 童限信息 + """ + pass diff --git a/vendor/tyme4py/eightchar/provider/impl/__init__.py b/vendor/tyme4py/eightchar/provider/impl/__init__.py new file mode 100644 index 0000000..ecf7257 --- /dev/null +++ b/vendor/tyme4py/eightchar/provider/impl/__init__.py @@ -0,0 +1,141 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from abc import abstractmethod +from typing import TYPE_CHECKING + +from tyme4py.eightchar.provider import EightCharProvider, ChildLimitProvider + +if TYPE_CHECKING: + from tyme4py.eightchar import EightChar, ChildLimitInfo + from tyme4py.lunar import LunarHour + from tyme4py.solar import SolarTime, SolarTerm, SolarMonth + + +class DefaultEightCharProvider(EightCharProvider): + """默认的八字计算(晚子时算第二天)""" + + def get_eight_char(self, hour: LunarHour) -> EightChar: + return hour.get_sixty_cycle_hour().get_eight_char() + + +class LunarSect2EightCharProvider(EightCharProvider): + """Lunar流派2的八字计算(晚子时日柱算当天)""" + + def get_eight_char(self, hour: LunarHour) -> EightChar: + from tyme4py.eightchar import EightChar + from tyme4py.sixtycycle import SixtyCycleHour + h: SixtyCycleHour = hour.get_sixty_cycle_hour() + return EightChar(h.get_year(), h.get_month(), hour.get_lunar_day().get_sixty_cycle(), h.get_sixty_cycle()) + + +class AbstractChildLimitProvider(ChildLimitProvider): + """童限计算抽象""" + + @staticmethod + def next(birth_time: SolarTime, add_year: int, add_month: int, add_day: int, add_hour: int, add_minute: int, add_second: int) -> ChildLimitInfo: + from tyme4py.solar import SolarTime, SolarMonth + from tyme4py.eightchar import ChildLimitInfo + d: int = birth_time.get_day() + add_day + h: int = birth_time.get_hour() + add_hour + mi: int = birth_time.get_minute() + add_minute + s: int = birth_time.get_second() + add_second + mi += s // 60 + s %= 60 + h += mi // 60 + mi %= 60 + d += h // 24 + h %= 24 + sm: SolarMonth = SolarMonth(birth_time.get_year() + add_year, birth_time.get_month()).next(add_month) + dc: int = sm.get_day_count() + while d > dc: + d -= dc + sm = sm.next(1) + dc = sm.get_day_count() + return ChildLimitInfo(birth_time, SolarTime(sm.get_year(), sm.get_month(), d, h, mi, s), add_year, add_month, add_day, add_hour, add_minute) + + @abstractmethod + def get_info(self, birth_time: SolarTime, term: SolarTerm) -> ChildLimitInfo: + pass + + +class DefaultChildLimitProvider(AbstractChildLimitProvider): + """默认的八字计算(晚子时算第二天)""" + + def get_info(self, birth_time: SolarTime, term: SolarTerm) -> ChildLimitInfo: + # 出生时刻和节令时刻相差的秒数 + seconds: int = abs(term.get_julian_day().get_solar_time().subtract(birth_time)) + # 3天 = 1年,3天=60*60*24*3秒=259200秒 = 1年 + year: int = seconds // 259200 + seconds %= 259200 + # 1天 = 4月,1天=60*60*24秒=86400秒 = 4月,85400秒/4=21600秒 = 1月 + month: int = seconds // 21600 + seconds %= 21600 + # 1时 = 5天,1时=60*60秒=3600秒 = 5天,3600秒/5=720秒 = 1天 + day: int = seconds // 720 + seconds %= 720 + # 1分 = 2时,60秒 = 2时,60秒/2=30秒 = 1时 + hour: int = seconds // 30 + seconds %= 30 + # 1秒 = 2分,1秒/2=0.5秒 = 1分 + minute: int = seconds * 2 + return AbstractChildLimitProvider.next(birth_time, year, month, day, hour, minute, 0) + + +class China95ChildLimitProvider(AbstractChildLimitProvider): + """元亨利贞的童限计算""" + + def get_info(self, birth_time: SolarTime, term: SolarTerm) -> ChildLimitInfo: + # 出生时刻和节令时刻相差的分钟数 + minutes: int = int(abs(term.get_julian_day().get_solar_time().subtract(birth_time)) / 60) + year: int = minutes // 4320 + minutes %= 4320 + month: int = minutes // 360 + minutes %= 360 + day: int = minutes // 12 + return AbstractChildLimitProvider.next(birth_time, year, month, day, 0, 0, 0) + + +class LunarSect1ChildLimitProvider(AbstractChildLimitProvider): + """Lunar的流派1童限计算(按天数和时辰数计算,3天1年,1天4个月,1时辰10天)""" + + def get_info(self, birth_time: SolarTime, term: SolarTerm) -> ChildLimitInfo: + term_time: SolarTime = term.get_julian_day().get_solar_time() + end: SolarTime = term_time + start: SolarTime = birth_time + if birth_time.is_after(term_time): + end = birth_time + start = term_time + + end_time_zhi_index: int = 11 if end.get_hour() == 23 else end.get_lunar_hour().get_index_in_day() + start_time_zhi_index: int = 11 if start.get_hour() == 23 else start.get_lunar_hour().get_index_in_day() + # 时辰差 + hour_diff: int = end_time_zhi_index - start_time_zhi_index + # 天数差 + day_diff: int = end.get_solar_day().subtract(start.get_solar_day()) + if hour_diff < 0: + hour_diff += 12 + day_diff -= 1 + + month_diff: int = int(hour_diff * 10 / 30) + month: int = day_diff * 4 + month_diff + day: int = hour_diff * 10 - month_diff * 30 + year: int = int(month / 12) + month = month - year * 12 + return AbstractChildLimitProvider.next(birth_time, year, month, day, 0, 0, 0) + + +class LunarSect2ChildLimitProvider(AbstractChildLimitProvider): + """Lunar的流派2童限计算(按分钟数计算)""" + + def get_info(self, birth_time: SolarTime, term: SolarTerm) -> ChildLimitInfo: + # 出生时刻和节令时刻相差的分钟数 + minutes: int = int(abs(term.get_julian_day().get_solar_time().subtract(birth_time)) / 60) + year: int = int(minutes / 4320) + minutes %= 4320 + month: int = int(minutes / 360) + minutes %= 360 + day: int = int(minutes / 12) + minutes %= 12 + hour: int = minutes * 2 + return AbstractChildLimitProvider.next(birth_time, year, month, day, hour, 0, 0) diff --git a/vendor/tyme4py/enums/__init__.py b/vendor/tyme4py/enums/__init__.py new file mode 100644 index 0000000..78b005d --- /dev/null +++ b/vendor/tyme4py/enums/__init__.py @@ -0,0 +1,52 @@ +# -*- coding:utf-8 -*- +from enum import Enum + + +class YinYang(Enum): + """阴阳:YIN=0=阴,YANG=1=阳""" + YIN = 0 + """阴""" + YANG = 1 + """阳""" + + +class Side(Enum): + """内外:IN=0=内,OUT=1=外""" + IN = 0 + """内""" + OUT = 1 + """外""" + + +class Gender(Enum): + """性别:WOMAN=0=女,MAN=1=男""" + WOMAN = 0 + """女""" + MAN = 1 + """男""" + + +class HideHeavenStemType(Enum): + """藏干类型:RESIDUAL=0=余气,MIDDLE=1=中气,MAIN=2=本气""" + RESIDUAL = 0 + """余气""" + MIDDLE = 1 + """中气""" + MAIN = 2 + """本气""" + + +class EventType(Enum): + """事件类型""" + SOLAR_DAY = 0 + """公历日期""" + SOLAR_WEEK = 1 + """几月第几个星期几""" + LUNAR_DAY = 2 + """农历日期""" + TERM_DAY = 3 + """节气日期""" + TERM_HS = 4 + """节气天干""" + TERM_EB = 5 + """节气地支""" diff --git a/vendor/tyme4py/event/__init__.py b/vendor/tyme4py/event/__init__.py new file mode 100644 index 0000000..13232a8 --- /dev/null +++ b/vendor/tyme4py/event/__init__.py @@ -0,0 +1,361 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +import re +from typing import Union, List, TYPE_CHECKING + +from tyme4py import AbstractCulture +from tyme4py.enums import EventType + +if TYPE_CHECKING: + from tyme4py.solar import SolarMonth, SolarDay, SolarTerm + from tyme4py.lunar import LunarMonth, LunarDay + + +class Event(AbstractCulture): + """事件""" + + def __init__(self, name: str, data: str): + Event.validate(data) + self._name = name + self._data = data + + @staticmethod + def validate(data: str) -> None: + if len(data) != 9: + raise ValueError(f'illegal event data: {data}') + + @staticmethod + def builder() -> EventBuilder: + """构造器""" + return EventBuilder() + + @classmethod + def from_name(cls, name: str) -> Union[Event, None]: + pattern: re.Pattern[str] = re.compile(f'{EventManager.REGEX}{name}') + matcher: Union[re.Match[str], None] = pattern.search(EventManager.DATA) + return cls(name, matcher.group(1)) if matcher else None + + def _get_char_index(self, index: int) -> int: + return EventManager.CHARS.index(self._data[index]) + + def get_value(self, index: int) -> int: + return self._get_char_index(index) - 31 + + def get_month(self, year: int) -> List[int]: + y: int = year + m: int = self.get_value(2) + if m > 12: + m = 1 + y += 1 + return [y, m] + + def get_type(self) -> EventType: + """事件类型""" + n: int = self._get_char_index(1) + if n == 1: + return EventType.SOLAR_WEEK + if n == 2: + return EventType.LUNAR_DAY + if n == 3: + return EventType.TERM_DAY + if n == 4: + return EventType.TERM_HS + if n == 5: + return EventType.TERM_EB + return EventType.SOLAR_DAY + + def get_name(self) -> str: + """名称""" + return self._name + + def get_data(self) -> str: + """数据""" + return self._data + + def get_start_year(self) -> int: + """起始年""" + n: int = 0 + size: int = len(EventManager.CHARS) + for i in range(0, 3): + n = n * size + self._get_char_index(6 + i) + return n + + def get_solar_day(self, year: int) -> Union[SolarDay, None]: + if year < self.get_start_year(): + return None + t: EventType = self.get_type() + d: Union[SolarDay, None] = None + if t == EventType.SOLAR_DAY: + d = self._get_solar_day_by_solar_day(year) + elif t == EventType.SOLAR_WEEK: + d = self._get_solar_day_by_week(year) + elif t == EventType.LUNAR_DAY: + d = self._get_solar_day_by_lunar_day(year) + elif t == EventType.TERM_DAY: + d = self._get_solar_day_by_term(year) + elif t == EventType.TERM_HS: + d = self._get_solar_day_by_term_heaven_stem(year) + elif t == EventType.TERM_EB: + d = self._get_solar_day_by_term_earth_branch(year) + if d is None: + return None + offset: int = self.get_value(5) + return d if 0 == offset else d.next(offset) + + def _get_solar_day_by_solar_day(self, year: int) -> Union[SolarDay, None]: + from tyme4py.solar import SolarMonth, SolarDay + month: List[int] = self.get_month(year) + y: int = month[0] + m: int = month[1] + d: int = self.get_value(3) + delay: int = self.get_value(4) + last_day: int = SolarMonth.from_ym(y, m).get_day_count() + if d > last_day: + if 0 == delay: + return None + elif delay < 0: + return SolarDay.from_ymd(y, m, d + delay) + return SolarDay.from_ymd(y, m, last_day).next(delay) + return SolarDay.from_ymd(y, m, d) + + def _get_solar_day_by_lunar_day(self, year: int) -> Union[SolarDay, None]: + from tyme4py.lunar import LunarMonth, LunarDay + month: List[int] = self.get_month(year) + y: int = month[0] + m: int = month[1] + d: int = self.get_value(3) + delay: int = self.get_value(4) + last_day: int = LunarMonth.from_ym(y, m).get_day_count() + if d > last_day: + if 0 == delay: + return None + elif delay < 0: + return LunarDay.from_ymd(y, m, d + delay).get_solar_day() + return LunarDay.from_ymd(y, m, last_day).get_solar_day().next(delay) + return LunarDay.from_ymd(y, m, d).get_solar_day() + + def _get_solar_day_by_week(self, year: int) -> Union[SolarDay, None]: + from tyme4py.solar import SolarMonth, SolarDay + # 第几个星期 + n: int = self.get_value(3) + if n == 0: + return None + m: SolarMonth = SolarMonth.from_ym(year, self.get_value(2)) + # 星期几 + w: int = self.get_value(4) + if n > 0: + # 当月第1天 + d: SolarDay = m.get_first_day() + # 往后找第几个星期几 + return d.next(d.get_week().steps_to(w) + 7 * n - 7) + + # 当月最后一天 + d: SolarDay = SolarDay.from_ymd(year, m.get_month(), m.get_day_count()) + # 往前找第几个星期几 + return d.next(d.get_week().steps_back_to(w) + 7 * n + 7) + + def _get_solar_day_by_term(self, year: int) -> Union[SolarDay, None]: + from tyme4py.solar import SolarTerm, SolarDay + d: SolarDay = SolarTerm.from_index(year, self.get_value(2)).get_solar_day() + offset: int = self.get_value(4) + return d if 0 == offset else d.next(offset) + + def _get_solar_day_by_term_heaven_stem(self, year: int) -> Union[SolarDay, None]: + from tyme4py.solar import SolarDay + d: SolarDay = self._get_solar_day_by_term(year) + return d.next(d.get_lunar_day().get_sixty_cycle().get_heaven_stem().steps_to(self.get_value(3))) + + def _get_solar_day_by_term_earth_branch(self, year: int) -> Union[SolarDay, None]: + from tyme4py.solar import SolarDay + d: SolarDay = self._get_solar_day_by_term(year) + return d.next(d.get_lunar_day().get_sixty_cycle().get_earth_branch().steps_to(self.get_value(3))) + + @classmethod + def from_solar_day(cls, d: SolarDay) -> List[Event]: + """ + 指定公历日的事件列表 + :param d: 公历日 + """ + l: List[Event] = [] + for e in cls.all(): + if d == e.get_solar_day(d.get_year()): + l.append(e) + return l + + @classmethod + def all(cls) -> List[Event]: + l: List[Event] = [] + pattern: re.Pattern[str] = re.compile(f'{EventManager.REGEX}(.[^@]+)') + matcher: Union[re.Match[str], None] = pattern.search(EventManager.DATA) + while matcher: + l.append(cls(matcher.group(2), matcher.group(1))) + matcher = pattern.search(EventManager.DATA, matcher.end()) + return l + + +class EventBuilder: + """事件构造器""" + + def __init__(self): + self._name = '' + self._data = ['@', '_', '_', '_', '_', '_', '0', '0', '0'] + + def name(self, n: str) -> EventBuilder: + self._name = n + return self + + @staticmethod + def _get_char(index: int) -> str: + return EventManager.CHARS[index] + + def _set_value(self, index: int, n: int) -> EventBuilder: + self._data[index] = self._get_char(31 + n) + return self + + @staticmethod + def encode_type(t: EventType) -> str: + n: int = 0 + if t == EventType.SOLAR_WEEK: + n = 1 + elif t == EventType.LUNAR_DAY: + n = 2 + elif t == EventType.TERM_DAY: + n = 3 + elif t == EventType.TERM_HS: + n = 4 + elif t == EventType.TERM_EB: + n = 5 + return EventBuilder._get_char(n) + + def _content(self, t: EventType, a: int, b: int, c: int) -> EventBuilder: + self._data[1] = self.encode_type(t) + return self._set_value(2, a)._set_value(3, b)._set_value(4, c) + + def solar_day(self, solar_month: int, solar_day: int, delay_days: int) -> EventBuilder: + """ + 公历日 + :param solar_month: 公历月(1至12) + :param solar_day: 公历日(1至31) + :param delay_days: 顺延天数,例如生日在2月29,非闰年没有2月29,是+1天,还是-1天(最远支持-31至31天) + :return: 事件构造器 + """ + return self._content(EventType.SOLAR_DAY, solar_month, solar_day, delay_days) + + def lunar_day(self, lunar_month: int, lunar_day: int, delay_days: int) -> EventBuilder: + """ + 农历日 + :param lunar_month: 农历月(-12至-1,1至12,闰月为负) + :param lunar_day: 农历日(1至30) + :param delay_days: 顺延天数,例如生日在某月的三十,但下一年当月可能只有29天,是+1天,还是-1天(最远支持-31至31天) + :return: 事件构造器 + """ + return self._content(EventType.LUNAR_DAY, lunar_month, lunar_day, delay_days) + + def solar_week(self, solar_month: int, week_index: int, week: int) -> EventBuilder: + """ + 公历第几个星期几 + :param solar_month: 公历月(1至12) + :param week_index: 第几个星期(1为第1个星期,-1为倒数第1个星期) + :param week: 星期几(0至6,0代表星期天,1代表星期一) + :return: 事件构造器 + """ + return self._content(EventType.SOLAR_WEEK, solar_month, week_index, week) + + def term_day(self, term_index: int, delay_days: int) -> EventBuilder: + """ + 节气 + :param term_index: 节气索引(0至23) + :param delay_days: 顺延天数(最远支持-31至31天) + :return: 事件构造器 + """ + return self._content(EventType.TERM_DAY, term_index, 0, delay_days) + + def term_heaven_stem(self, term_index: int, heaven_stem_index: int, delay_days: int) -> EventBuilder: + """ + 节气天干 + :param term_index: 节气索引(0至23) + :param heaven_stem_index: 天干索引(0至9) + :param delay_days: 顺延天数(最远支持-31至31天) + :return: 事件构造器 + """ + return self._content(EventType.TERM_HS, term_index, heaven_stem_index, delay_days) + + def term_earth_branch(self, term_index: int, earth_branch_index: int, delay_days: int) -> EventBuilder: + """ + 节气地支 + :param term_index: 节气索引(0至23) + :param earth_branch_index: 地支索引(0至11) + :param delay_days: 顺延天数(最远支持-31至31天) + :return: 事件构造器 + """ + return self._content(EventType.TERM_EB, term_index, earth_branch_index, delay_days) + + def start_year(self, year: int) -> EventBuilder: + """ + 起始年 + :param year: 年 + :return: 事件构造器 + """ + size: int = len(EventManager.CHARS) + n: int = year + for i in range(3): + self._data[8 - i] = self._get_char(n % size) + n //= size + return self + + def offset(self, days: int) -> EventBuilder: + """ + 偏移天数 + :param days: 天数(最远支持-31至31天) + :return: 事件构造器 + """ + return self._set_value(5, days) + + def build(self) -> Event: + """ + 生成事件 + :return: 事件 + """ + return Event(self._name, ''.join(self._data)) + + +class EventManager: + """事件管理器""" + + CHARS: str = '0123456789ABCDEFGHIJKLMNOPQRSTU_VWXYZabcdefghijklmnopqrstuvwxyz' + """有效字符""" + DATA: str = '' + """全量事件数据""" + REGEX: str = '(@[0-9A-Za-z_]{8})' + """数据匹配的正则表达式""" + + @classmethod + def remove(cls, name: str) -> None: + """ + 删除事件 + :param name: 名称 + """ + cls.DATA = re.sub(rf'{cls.REGEX}{name}', '', cls.DATA) + + @classmethod + def _save_or_update(cls, name: str, data: str) -> None: + """ + 删除事件 + :param name: 名称 + """ + pattern: re.Pattern[str] = re.compile(f'{cls.REGEX}{name}') + matcher: Union[re.Match[str], None] = pattern.search(cls.DATA) + if matcher: + cls.DATA = re.sub(rf'{cls.REGEX}{name}', data, EventManager.DATA) + else: + cls.DATA += data + + @classmethod + def update(cls, name: str, e: Event) -> None: + cls._save_or_update(name, e.get_data() + name if e.get_name() is None or len(e.get_name()) < 1 else e.get_name()) + + @classmethod + def update_data(cls, name: str, data: str) -> None: + Event.validate(data) + cls._save_or_update(name, data) diff --git a/vendor/tyme4py/festival/__init__.py b/vendor/tyme4py/festival/__init__.py new file mode 100644 index 0000000..7897567 --- /dev/null +++ b/vendor/tyme4py/festival/__init__.py @@ -0,0 +1,205 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from abc import abstractmethod +from typing import TYPE_CHECKING, List, Union + +from tyme4py import AbstractTyme, Tyme +from tyme4py.enums import EventType +from tyme4py.event import Event +from tyme4py.unit import DayUnit + +if TYPE_CHECKING: + from tyme4py.lunar import LunarDay + from tyme4py.solar import SolarTerm, SolarDay + + +class AbstractFestival(AbstractTyme): + @abstractmethod + def next(self, n: int) -> Union[Tyme, None]: + pass + + def __init__(self, index: int, event: Event, day: DayUnit): + self._index = index + self._event = event + self._day = day + + def get_name(self) -> str: + return self._event.get_name() + + def get_index(self) -> int: + """ + :return: 索引 + """ + return self._index + + def get_day(self) -> DayUnit: + """ + :return: 日 + """ + return self._day + + def __str__(self) -> str: + return f'{self._day} {self.get_name()}' + +class LunarFestival(AbstractFestival): + """ + 农历传统节日--依据国家标准《农历的编算和颁行》GB/T 33661-2017 + 农历传统节日有:春节、元宵节、龙头节、上巳节、清明节、端午节、七夕节、中元节、中秋节、重阳节、冬至节、腊八节、除夕。 + """ + NAMES: List[str] = ['春节', '元宵节', '龙头节', '上巳节', '清明节', '端午节', '七夕节', '中元节', '中秋节', '重阳节', '冬至节', '腊八节', '除夕'] + """名称""" + DATA: str = '2VV__0002Vj__0002WW__0002XX__0003b___0002ZZ__0002bb__0002bj__0002cj__0002dd__0003s___0002gc__0002hV_U000' + + def __init__(self, index: int, event: Event, day: LunarDay): + """ + 实例化 + :param index: 索引 + :param event: 事件 + :param day: 农历日 + """ + super().__init__(index, event, day) + + @classmethod + def from_index(cls, year: int, index: int) -> Union[LunarFestival, None]: + """ + 指定索引得到 + :param year: 年 + :param index: 索引 + :return: + """ + if index < 0 or index >= cls.NAMES.__len__(): + return None + from tyme4py.lunar import LunarDay + from tyme4py.solar import SolarTerm + start: int = index * 8 + e: Event = Event(LunarFestival.NAMES[index], '@' + LunarFestival.DATA[start: start + 8]) + t: EventType = e.get_type() + if t == EventType.LUNAR_DAY: + m: List[int] = e.get_month(year) + d: LunarDay = LunarDay.from_ymd(m[0], m[1], e.get_value(3)) + offset: int = e.get_value(5) + return LunarFestival(index, e, d if offset == 0 else d.next(offset)) + elif t == EventType.TERM_DAY: + return LunarFestival(index, e, SolarTerm.from_index(year, e.get_value(2)).get_solar_day().get_lunar_day()) + return None + + @classmethod + def from_ymd(cls, year: int, month: int, day: int) -> Union[LunarFestival, None]: + """ + 指定农历年、月、日得到 + :param year: 农历年 + :param month: 农历月 + :param day: 农历日 + :return: + """ + from tyme4py.lunar import LunarDay + from tyme4py.solar import SolarTermDay + d: LunarDay = LunarDay.from_ymd(year, month, day) + for i in range(0, LunarFestival.NAMES.__len__()): + start: int = i * 8 + e: Event = Event(LunarFestival.NAMES[i], '@' + LunarFestival.DATA[start: start + 8]) + t: EventType = e.get_type() + if t == EventType.LUNAR_DAY: + offset: int = e.get_value(5) + if offset == 0: + if d.get_month() == e.get_value(2) and d.get_day() == e.get_value(3): + return LunarFestival(i, e, d) + else: + m: List[int] = e.get_month(d.get_year()) + n: LunarDay = d.next(-offset) + if n.get_year() == m[0] and n.get_month() == m[1] and n.get_day() == e.get_value(3): + return LunarFestival(i, e, d) + elif t == EventType.TERM_DAY: + term: SolarTermDay = d.get_solar_day().get_term_day() + if term.get_day_index() == 0 and term.get_solar_term().get_index() == e.get_value(2) % 24: + return LunarFestival(i, e, d) + return None + + def get_day(self) -> LunarDay: + """ + :return: 农历日 + """ + return super().get_day() + + def get_solar_term(self) -> Union[SolarTerm, None]: + """ + 节气,非节气返回None + :return: 节气 + """ + from tyme4py.solar import SolarTermDay + t: SolarTermDay = self.get_day().get_solar_day().get_term_day() + return t.get_solar_term() if t.get_day_index() == 0 else None + + def next(self, n: int) -> LunarFestival: + size: int = LunarFestival.NAMES.__len__() + i: int = self._index + n + return LunarFestival.from_index(int((self._day.get_year() * size + i) / size), self.index_of(i, size)) + + +class SolarFestival(AbstractFestival): + """公历现代节日""" + NAMES: List[str] = ['元旦', '妇女节', '植树节', '劳动节', '青年节', '儿童节', '建党节', '建军节', '教师节', '国庆节'] + DATA: str = '0VV__0Ux0Xc__0Ux0Xg__0_Q0ZV__0Ux0ZY__0Ux0aV__0Ux0bV__0Uo0cV__0Ug0de__0_V0eV__0Ux' + + def __init__(self, index: int, event: Event, day: SolarDay): + """ + 实例化 + :param index: 索引 + :param event: 事件 + :param day: 公历日 + """ + super().__init__(index, event, day) + + @classmethod + def from_index(cls, year: int, index: int) -> Union[SolarFestival, None]: + """ + 指定索引得到 + :param year: 年份 + :param index: 索引 + :return: + """ + if index < 0 or index >= cls.NAMES.__len__(): + return None + start: int = index * 8 + e: Event = Event(SolarFestival.NAMES[index], '@' + SolarFestival.DATA[start: start + 8]) + if year < e.get_start_year(): + return None + from tyme4py.solar import SolarDay + return SolarFestival(index, e, SolarDay.from_ymd(year, e.get_value(2), e.get_value(3))) + + @classmethod + def from_ymd(cls, year: int, month: int, day: int) -> Union[SolarFestival, None]: + """ + 指定年、月、日得到 + :param year: 年 + :param month: 月 + :param day: 日 + :return: + """ + from tyme4py.solar import SolarDay + d: SolarDay = SolarDay.from_ymd(year, month, day) + for i in range(0, SolarFestival.NAMES.__len__()): + start: int = i * 8 + e: Event = Event(SolarFestival.NAMES[i], '@' + SolarFestival.DATA[start: start + 8]) + if d.get_year() >= e.get_start_year() and d.get_month() == e.get_value(2) and d.get_day() == e.get_value(3): + return SolarFestival(i, e, d) + return None + + def get_day(self) -> SolarDay: + """ + :return: 公历日 + """ + return super().get_day() + + def get_start_year(self) -> int: + """ + 起始年 + :return: 年 + """ + return self._event.get_start_year() + + def next(self, n: int) -> Union[SolarFestival, None]: + size: int = SolarFestival.NAMES.__len__() + i: int = self._index + n + return SolarFestival.from_index(int((self._day.get_year() * size + i) / size), self.index_of(i, size)) diff --git a/vendor/tyme4py/hijri/__init__.py b/vendor/tyme4py/hijri/__init__.py new file mode 100644 index 0000000..1721199 --- /dev/null +++ b/vendor/tyme4py/hijri/__init__.py @@ -0,0 +1,151 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import List + +from tyme4py.jd import JulianDay +from tyme4py.solar import SolarDay +from tyme4py.unit import YearUnit, MonthUnit, DayUnit + + +class HijriYear(YearUnit): + """回历年""" + def __init__(self, year): + HijriYear.validate(year) + super().__init__(year) + + @staticmethod + def validate(year): + if year < -640 or year > 9666: + raise ValueError(f'illegal hijri year: {year}') + + @classmethod + def from_year(cls, year): + return cls(year) + + def get_day_count(self): + return 355 if self.is_leap() else 354 + + def is_leap(self): + i = (self._year - 1) % 30 + return i in (1, 4, 6, 9, 12, 15, 17, 20, 23, 25, 28) + + def get_name(self): + return f'{self._year}年' + + def next(self, n): + return HijriYear.from_year(self._year + n) + + def get_months(self): + months = [] + for i in range(1, 13): + months.append(HijriMonth(self._year, i)) + return months + + def get_first_month(self): + return HijriMonth(self._year, 1) + + +class HijriMonth(MonthUnit): + NAMES: List[str] = ['穆哈兰姆月', '色法尔月', '赖比尔·敖外鲁月', '赖比尔·阿色尼月', '主马达·敖外鲁月', '主马达·阿色尼月', '赖哲卜月', '舍尔邦月', '赖买丹月', '闪瓦鲁月', '都尔喀尔德月', '都尔黑哲月'] + + @staticmethod + def validate(year, month): + if month < 1 or month > 12: + raise ValueError(f'illegal hijri month: {month}') + HijriYear.validate(year) + + def __init__(self, year, month): + HijriMonth.validate(year, month) + super().__init__(year, month) + + @classmethod + def from_ym(cls, year, month): + return cls(year, month) + + def get_hijri_year(self): + return HijriYear(self._year) + + def get_day_count(self): + d = 29 if self._month % 2 == 0 else 30 + if self._month == 12 and self.get_hijri_year().is_leap(): + d += 1 + return d + + def get_index_in_year(self): + return self._month - 1 + + def get_name(self): + return self.NAMES[self.get_index_in_year()] + + def __str__(self): + return f'{self.get_hijri_year()}{self.get_name()}' + + def next(self, n): + i: int = self._month - 1 + n + return HijriMonth((self._year * 12 + i) // 12, self.index_of(i, 12) + 1) + + def get_days(self): + size = self.get_day_count() + days = [] + for i in range(1, size + 1): + days.append(HijriDay(self._year, self._month, i)) + return days + + def get_first_day(self): + return HijriDay(self._year, self._month, 1) + + +class HijriDay(DayUnit): + NAMES: List[str] = ['1日', '2日', '3日', '4日', '5日', '6日', '7日', '8日', '9日', '10日', '11日', '12日', '13日', '14日', '15日', '16日', '17日', '18日', '19日', '20日', '21日', '22日', '23日', '24日', '25日', '26日', '27日', '28日', '29日', '30日'] + + @staticmethod + def validate(year, month, day): + if day < 1 or day > HijriMonth.from_ym(year, month).get_day_count(): + raise ValueError(f'illegal hijri day: {year}-{month}-{day}') + + def __init__(self, year, month, day): + HijriDay.validate(year, month, day) + super().__init__(year, month, day) + + @classmethod + def from_ymd(cls, year, month, day): + return cls(year, month, day) + + def get_hijri_month(self): + return HijriMonth(self._year, self._month) + + def get_name(self): + return self.NAMES[self._day - 1] + + def __str__(self): + return f'{self.get_hijri_month()}{self.get_name()}' + + def next(self, n): + return self.get_solar_day().next(n).get_hijri_day() + + def is_before(self, target: HijriDay): + if self._year != target._year: + return self._year < target._year + if self._month != target._month: + return self._month < target._month + return self._day < target._day + + def is_after(self, target: HijriDay): + if self._year != target._year: + return self._year > target._year + if self._month != target._month: + return self._month > target._month + return self._day > target._day + + def get_index_in_year(self): + return self.subtract(HijriDay(self._year, 1, 1)) + + def subtract(self, target): + return int(self.get_julian_day().subtract(target.get_julian_day())) + + def get_julian_day(self): + return JulianDay((11 * self._year + 3) // 30 + 354 * self._year + 30 * self._month - (self._month - 1) // 2 + self._day + 1948055) + + def get_solar_day(self): + return SolarDay(622, 7, 16).next(self.subtract(HijriDay(1, 1, 1))) diff --git a/vendor/tyme4py/holiday/__init__.py b/vendor/tyme4py/holiday/__init__.py new file mode 100644 index 0000000..0939062 --- /dev/null +++ b/vendor/tyme4py/holiday/__init__.py @@ -0,0 +1,110 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +import re + +from tyme4py import AbstractTyme +from typing import TYPE_CHECKING, List, Union + +if TYPE_CHECKING: + from tyme4py.solar import SolarDay + + +class LegalHoliday(AbstractTyme): + """ + 法定假日(自2001-12-29起) + 仅支持2002年(含)至2025年(含)的法定假日。可以通过公历日 SolarDay 得到,也可指定年、月、日得到。 + """ + NAMES: List[str] = ['元旦', '春节', '清明节', '劳动节', '端午节', '中秋节', '国庆节', '国庆中秋', '抗战胜利日'] + """名称""" + DATA: str = '2001122900+032001123000+022002010110+002002010210-012002010310-022002020901+032002021001+022002021211+002002021311-012002021411-022002021511-032002021611-042002021711-052002021811-062002042703+042002042803+032002050113+002002050213-012002050313-022002050413-032002050513-042002050613-052002050713-062002092806+032002092906+022002100116+002002100216-012002100316-022002100416-032002100516-042002100616-052002100716-062003010110+002003020111+002003020211-012003020311-022003020411-032003020511-042003020611-052003020711-062003020801-072003020901-082003042603+052003042703+042003050113+002003050213-012003050313-022003050413-032003050513-042003050613-052003050713-062003092706+042003092806+032003100116+002003100216-012003100316-022003100416-032003100516-042003100616-052003100716-062004010110+002004011701+052004011801+042004012211+002004012311-012004012411-022004012511-032004012611-042004012711-052004012811-062004050113+002004050213-012004050313-022004050413-032004050513-042004050613-052004050713-062004050803-072004050903-082004100116+002004100216-012004100316-022004100416-032004100516-042004100616-052004100716-062004100906-082004101006-092005010110+002005010210-012005010310-022005020501+042005020601+032005020911+002005021011-012005021111-022005021211-032005021311-042005021411-052005021511-062005043003+012005050113+002005050213-012005050313-022005050413-032005050513-042005050613-052005050713-062005050803-072005100116+002005100216-012005100316-022005100416-032005100516-042005100616-052005100716-062005100806-072005100906-082005123100+012006010110+002006010210-012006010310-022006012801+012006012911+002006013011-012006013111-022006020111-032006020211-042006020311-052006020411-062006020501-072006042903+022006043003+012006050113+002006050213-012006050313-022006050413-032006050513-042006050613-052006050713-062006093006+012006100116+002006100216-012006100316-022006100416-032006100516-042006100616-052006100716-062006100806-072006123000+022006123100+012007010110+002007010210-012007010310-022007021701+012007021811+002007021911-012007022011-022007022111-032007022211-042007022311-052007022411-062007022501-072007042803+032007042903+022007050113+002007050213-012007050313-022007050413-032007050513-042007050613-052007050713-062007092906+022007093006+012007100116+002007100216-012007100316-022007100416-032007100516-042007100616-052007100716-062007122900+032007123010+022007123110+012008010110+002008020201+042008020301+032008020611+002008020711-012008020811-022008020911-032008021011-042008021111-052008021211-062008040412+002008040512-012008040612-022008050113+002008050213-012008050313-022008050403-032008060714+012008060814+002008060914-012008091315+012008091415+002008091515-012008092706+042008092806+032008092916+022008093016+012008100116+002008100216-012008100316-022008100416-032008100516-042009010110+002009010210-012009010310-022009010400-032009012401+012009012511+002009012611-012009012711-022009012811-032009012911-042009013011-052009013111-062009020101-072009040412+002009040512-012009040612-022009050113+002009050213-012009050313-022009052814+002009052914-012009053014-022009053104-032009092706+042009100116+002009100216-012009100316-022009100416-032009100515-022009100615-032009100715-042009100815-052009101005-072010010110+002010010210-012010010310-022010021311+002010021411-012010021511-022010021611-032010021711-042010021811-052010021911-062010022001-072010022101-082010040312+022010040412+012010040512+002010050113+002010050213-012010050313-022010061204+042010061304+032010061414+022010061514+012010061614+002010091905+032010092215+002010092315-012010092415-022010092505-032010092606+052010100116+002010100216-012010100316-022010100416-032010100516-042010100616-052010100716-062010100906-082011010110+002011010210-012011010310-022011013001+042011020211+012011020311+002011020411-012011020511-022011020611-032011020711-042011020811-052011021201-092011040202+032011040312+022011040412+012011040512+002011043013+012011050113+002011050213-012011060414+022011060514+012011060614+002011091015+022011091115+012011091215+002011100116+002011100216-012011100316-022011100416-032011100516-042011100616-052011100716-062011100806-072011100906-082011123100+012012010110+002012010210-012012010310-022012012101+022012012211+012012012311+002012012411-012012012511-022012012611-032012012711-042012012811-052012012901-062012033102+042012040102+032012040212+022012040312+012012040412+002012042803+032012042913+022012043013+012012050113+002012050203-012012062214+012012062314+002012062414-012012092905+012012093015+002012100116+002012100216-012012100316-022012100416-032012100516-042012100616-052012100716-062012100806-072013010110+002013010210-012013010310-022013010500-042013010600-052013020911+012013021011+002013021111-012013021211-022013021311-032013021411-042013021511-052013021601-062013021701-072013040412+002013040512-012013040612-022013042703+042013042803+032013042913+022013043013+012013050113+002013060804+042013060904+032013061014+022013061114+012013061214+002013091915+002013092015-012013092115-022013092205-032013092906+022013100116+002013100216-012013100316-022013100416-032013100516-042013100616-052013100716-062014010110+002014012601+052014013111+002014020111-012014020211-022014020311-032014020411-042014020511-052014020611-062014020801-082014040512+002014040612-012014040712-022014050113+002014050213-012014050313-022014050403-032014053114+022014060114+012014060214+002014090615+022014090715+012014090815+002014092806+032014100116+002014100216-012014100316-022014100416+002014100516-042014100616-052014100716-062014101106-102015010110+002015010210-012015010310-022015010400-032015021501+042015021811+012015021911+002015022011-012015022111-022015022211-032015022311-042015022411-052015022801-092015040412+012015040512+002015040612-012015050113+002015050213-012015050313-022015062014+002015062114-012015062214-022015090318+002015090418-012015090518-022015090608-032015092615+012015092715+002015100116+002015100216-012015100316-022015100416+002015100516-042015100616-052015100716-062015101006-092016010110+002016010210-012016010310-022016020601+022016020711+012016020811+002016020911-012016021011-022016021111-032016021211-042016021311-052016021401-062016040212+022016040312+012016040412+002016043013+012016050113+002016050213-012016060914+002016061014-012016061114-022016061204-032016091515+002016091615-012016091715-022016091805-032016100116+002016100216-012016100316-022016100416-032016100516-042016100616-052016100716-062016100806-072016100906-082016123110+012017010110+002017010210-012017012201+062017012711+012017012811+002017012911-012017013011-022017013111-032017020111-042017020211-052017020401-072017040102+032017040212+022017040312+012017040412+002017042913+022017043013+012017050113+002017052704+032017052814+022017052914+012017053014+002017093006+012017100116+002017100216-012017100316-022017100415+002017100516-042017100616-052017100716-062017100816-072017123010+022017123110+012018010110+002018021101+052018021511+012018021611+002018021711-012018021811-022018021911-032018022011-042018022111-052018022401-082018040512+002018040612-012018040712-022018040802-032018042803+032018042913+022018043013+012018050113+002018061614+022018061714+012018061814+002018092215+022018092315+012018092415+002018092906+022018093006+012018100116+002018100216-012018100316-022018100416-032018100516-042018100616-052018100716-062018122900+032018123010+022018123110+012019010110+002019020201+032019020301+022019020411+012019020511+002019020611-012019020711-022019020811-032019020911-042019021011-052019040512+002019040612-012019040712-022019042803+032019050113+002019050213-012019050313-022019050413-032019050503-042019060714+002019060814-012019060914-022019091315+002019091415-012019091515-022019092906+022019100116+002019100216-012019100316-022019100416-032019100516-042019100616-052019100716-062019101206-112020010110+002020011901+062020012411+012020012511+002020012611-012020012711-022020012811-032020012911-042020013011-052020013111-062020020111-072020020211-082020040412+002020040512-012020040612-022020042603+052020050113+002020050213-012020050313-022020050413-032020050513-042020050903-082020062514+002020062614-012020062714-022020062804-032020092707+042020100117+002020100216-012020100316-022020100416-032020100516-042020100616-052020100716-062020100816-072020101006-092021010110+002021010210-012021010310-022021020701+052021021111+012021021211+002021021311-012021021411-022021021511-032021021611-042021021711-052021022001-082021040312+012021040412+002021040512-012021042503+062021050113+002021050213-012021050313-022021050413-032021050513-042021050803-072021061214+022021061314+012021061414+002021091805+032021091915+022021092015+012021092115+002021092606+052021100116+002021100216-012021100316-022021100416-032021100516-042021100616-052021100716-062021100906-082022010110+002022010210-012022010310-022022012901+032022013001+022022013111+012022020111+002022020211-012022020311-022022020411-032022020511-042022020611-052022040202+032022040312+022022040412+012022040512+002022042403+072022043013+012022050113+002022050213-012022050313-022022050413-032022050703-062022060314+002022060414-012022060514-022022091015+002022091115-012022091215-022022100116+002022100216-012022100316-022022100416-032022100516-042022100616-052022100716-062022100806-072022100906-082022123110+012023010110+002023010210-012023012111+012023012211+002023012311-012023012411-022023012511-032023012611-042023012711-052023012801-062023012901-072023040512+002023042303+082023042913+022023043013+012023050113+002023050213-012023050313-022023050603-052023062214+002023062314-012023062414-022023062504-032023092915+002023093016+012023100116+002023100216-012023100316-022023100416-032023100516-042023100616-052023100706-062023100806-072023123010+022023123110+012024010110+002024020401+062024021011+002024021111-012024021211-022024021311-032024021411-042024021511-052024021611-062024021711-072024021801-082024040412+002024040512-012024040612-022024040702-032024042803+032024050113+002024050213-012024050313-022024050413-032024050513-042024051103-102024060814+022024060914+012024061014+002024091405+032024091515+022024091615+012024091715+002024092906+022024100116+002024100216-012024100316-022024100416-032024100516-042024100616-052024100716-062024101206-112025010110+002025012601+032025012811+012025012911+002025013011-012025013111-022025020111-032025020211-032025020311-042025020411-052025020801-092025040412+002025040512-012025040612-022025042703+042025050113+002025050213-012025050313-022025050413-032025050513-042025053114+002025060114-012025060214-022025092807+032025100117+002025100217-012025100317-022025100417-032025100517-042025100617-052025100717-062025100817-072025101107-102026010110+002026010210-012026010310-022026010400-032026021401+032026021511+022026021611+012026021711+002026021811-012026021911-022026022011-032026022111-042026022211-052026022311-062026022801-112026040412+012026040512+002026040612-012026050113+002026050213-012026050313-022026050413-032026050513-042026050903-082026061914+002026062014-012026062114-022026092006+112026092515+002026092615-012026092715-022026100116+002026100216-012026100316-022026100416-032026100516-042026100616-052026100716-062026101006-09' + + def __init__(self, year: int, month: int, day: int, data: str): + from tyme4py.solar import SolarDay + d: SolarDay = SolarDay(year, month, day) + self._day = d + self._work = 48 == ord(data[8]) + self._name = self.NAMES[ord(data[9]) - 48] + size: int = data.__len__() + offset: int = int(data[size-2: size], 10) + self._target = d.next(-offset if '-' == data[10] else offset) + + @classmethod + def from_ymd(cls, year: int, month: int, day: int) -> LegalHoliday | None: + pattern: re.Pattern[str] = re.compile(f"{year:04}{month:02}{day:02}[0-1][0-8][+|-]" + "\\d{2}") + matcher: Union[re.Match[str], None] = pattern.search(cls.DATA) + if not matcher: + return None + return cls(year, month, day, matcher.group()) + + def get_name(self) -> str: + return self._name + + def get_day(self) -> SolarDay: + return self._day + + def is_work(self) -> bool: + """ + 是否上班 + :return: true/false + """ + return self._work + + def get_target(self) -> SolarDay: + return self._target + + def __str__(self) -> str: + return f'{self._day} {self._name}({"班" if self._work else "休"})' + + def next(self, n: int) -> Union[LegalHoliday, None]: + year: int = self._day.get_year() + month: int = self._day.get_month() + day: int = self._day.get_day() + if n == 0: + return LegalHoliday.from_ymd(year, month, day) + data: List[str] = [] + today: str = f'{year:04}{month:02}{day:02}' + reg: re.Pattern[str] = re.compile(f'{year:04}' + '\\d{4}[0-1][0-8][+|-]\\d{2}') + matcher: Union[re.Match[str], None] = reg.search(LegalHoliday.DATA) + while matcher: + data.append(matcher.group()) + matcher = reg.search(LegalHoliday.DATA, matcher.end()) + index: int = -1 + size: int = data.__len__() + for i in range(0, size): + if data[i].startswith(today): + index = i + break + if index == -1: + return None + index += n + y: int = year + if n > 0: + while index >= size: + index -= size + y += 1 + data = [] + reg = re.compile(f'{y:04}\\d{4}[0-1][0-8][+|-]\\d{2}') + matcher = reg.match(LegalHoliday.DATA) + while matcher: + data.append(matcher[0]) + matcher = reg.match(LegalHoliday.DATA, matcher.end()) + + size = data.__len__() + if size < 1: + return None + else: + while index < 0: + y -= 1 + data = [] + reg = re.compile(f'{y:04}\\d{4}[0-1][0-8][+|-]\\d{2}') + matcher = reg.match(LegalHoliday.DATA) + while matcher: + data.append(matcher[0]) + matcher = reg.match(LegalHoliday.DATA, matcher.end()) + size = data.__len__() + if size < 1: + return None + index += size + d: str = data[index] + return LegalHoliday(int(d[0: 4], 10), int(d[4: 6], 10), int(d[6: 8], 10), d) diff --git a/vendor/tyme4py/jd/__init__.py b/vendor/tyme4py/jd/__init__.py new file mode 100644 index 0000000..62364cf --- /dev/null +++ b/vendor/tyme4py/jd/__init__.py @@ -0,0 +1,111 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations +from tyme4py import AbstractTyme +from tyme4py.culture import Week +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from tyme4py.solar import SolarDay, SolarTime + + +class JulianDay(AbstractTyme): + """儒略日""" + J2000: float = 2451545 + """2000年儒略日数(2000-1-1 12:00:00 UTC)""" + + def __init__(self, day: float): + """ + :param day: 为小数 + """ + self._day = day + + @classmethod + def from_julian_day(cls, day: float) -> JulianDay: + return cls(day) + + @classmethod + def from_ymd_hms(cls, year: int, month: int, day: int, hour: int, minute: int, second: int) -> JulianDay: + """ + 通过公历年月日时分秒进行初始化 + :param year: 年 + :param month: 月 + :param day: 日 + :param hour: 时 + :param minute: 分 + :param second: 秒 + :return: + """ + d: float = day + ((second / 60 + minute) / 60 + hour) / 24 + n: int = 0 + g: bool = year * 372 + month * 31 + int(d) >= 588829 + if month <= 2: + month += 12 + year -= 1 + if g: + n = int(year * 0.01) + n = 2 - n + int(n * 0.25) + return cls(int(365.25 * (year + 4716)) + int(30.6001 * (month + 1)) + d + n - 1524.5) + + def get_day(self) -> float: + """ + :return: 儒略日 + """ + return self._day + + def get_name(self) -> str: + return f'{self._day}' + + def next(self, n: float) -> JulianDay: + return JulianDay(self._day + n) + + def get_solar_day(self) -> SolarDay: + """ + :return: 公历日 + """ + return self.get_solar_time().get_solar_day() + + def get_solar_time(self) -> SolarTime: + """ + :return: 公历时刻 + """ + d: int = int(self._day + 0.5) + f: float = self._day + 0.5 - d + if d >= 2299161: + c: int = int((d - 1867216.25) / 36524.25) + d += 1 + c - int(c * 0.25) + d += 1524 + y: int = int((d - 122.1) / 365.25) + d -= int(365.25 * y) + m: int = int(d / 30.601) + d -= int(30.601 * m) + if m > 13: + m -= 12 + else: + y -= 1 + m -= 1 + y -= 4715 + f *= 24 + hour: int = int(f) + f -= hour + f *= 60 + minute: int = int(f) + f -= minute + f *= 60 + second: int = round(f) + from tyme4py.solar import SolarTime + return SolarTime(y, m, d, hour, minute, second) if second < 60 else SolarTime(y, m, d, hour, minute, second - 60).next(60) + + def get_week(self) -> Week: + """ + 通过儒略日计算的星期是最准的,基姆拉尔森和蔡勒公式计算星期的准确性,在儒略日面前都是弟弟,不服来辩 + :return: 星期 + """ + return Week(int(self._day + 0.5) + 7000001) + + def subtract(self, target: JulianDay) -> float: + """ + 儒略日相减 + :param target: 儒略日 + :return: 差 + """ + return self._day - target.get_day() diff --git a/vendor/tyme4py/lunar/__init__.py b/vendor/tyme4py/lunar/__init__.py new file mode 100644 index 0000000..fa2e29b --- /dev/null +++ b/vendor/tyme4py/lunar/__init__.py @@ -0,0 +1,941 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +import warnings +from math import floor, ceil +from typing import TYPE_CHECKING, List, Union + +from tyme4py import LoopTyme +from tyme4py.culture import Twenty, Direction, KitchenGodSteed, Week, Duty, Phase, God, Taboo, PhaseDay +from tyme4py.culture.star.twentyeight import TwentyEightStar +from tyme4py.culture.fetus import FetusMonth, FetusDay +from tyme4py.culture.ren import MinorRen +from tyme4py.culture.star.nine import NineStar +from tyme4py.culture.star.six import SixStar +from tyme4py.culture.star.twelve import TwelveStar +from tyme4py.eightchar import EightChar +from tyme4py.eightchar.provider import EightCharProvider +from tyme4py.eightchar.provider.impl import DefaultEightCharProvider +from tyme4py.festival import LunarFestival +from tyme4py.jd import JulianDay +from tyme4py.unit import YearUnit, MonthUnit, WeekUnit, DayUnit, SecondUnit +from tyme4py.util import ShouXingUtil + +if TYPE_CHECKING: + from tyme4py.solar import SolarDay, SolarTime, SolarTerm + from tyme4py.sixtycycle import SixtyCycle, SixtyCycleDay, SixtyCycleHour, ThreePillars + + +class LunarYear(YearUnit): + """ + 农历年 + 依据国家标准《农历的编算和颁行》GB/T 33661-2017,农历年以正月初一开始,至除夕结束。 + """ + _IS_INIT: bool = False + _LEAP: List[List[int]] = [] + + @staticmethod + def _init(): + if LunarYear._IS_INIT: + return + chars: str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_@' + months: List[str] = [ + '080b0r0j0j0j0C0j0j0C0j0j0j0C0j0C0j0C0F0j0V0V0V0u0j0j0C0j0j0j0j0V0C0j1v0u0C0V1v0C0b080u110u0C0j0C1v9K1v2z0j1vmZbl1veN3s1v0V0C2S1v0V0C2S2o0C0j1Z1c2S1v0j1c0j2z1v0j1c0j392H0b2_2S0C0V0j1c0j2z0C0C0j0j1c0j0N250j0C0j0b081n080b0C0C0C1c0j0N', + '0r1v1c1v0V0V0F0V0j0C0j0C0j0V0j0u1O0j0C0V0j0j0j0V0b080u0r0u080b0j0j0C0V0C0V0j0b080V0u080b0j0j0u0j1v0u080b1c0j080b0j0V0j0j0V0C0N1v0j1c0j0j1v2g1v420j1c0j2z1v0j1v5Q9z1v4l0j1vfn1v420j9z4l1v1v2S1c0j1v2S3s1v0V0C2S1v1v2S1c0j1v2S2_0b0j2_2z0j1c0j', + '0z0j0j0j0C0j0j0C0j0j0j0C0j0C0j0j0j0j0m0j0C0j0j0C0j0j0j0j0b0V0j0j0C0j0j0j0j0V0j0j0j0V0b0V0V0C0V0C0j0j0b080u110u0V0C0j0N0j0b080b080b0j0r0b0r0b0j0j0j0j0C0j0b0r0C0j0b0j0C0C0j0j0j0j0j0j0j0j0j0b110j0b0j0j0j0C0j0C0j0j0j0j0b080b080b0V080b080b0j0j0j0j0j0j0V0j0j0u1v0j0j0j0C0j0j0j0V0C0N1c0j0C0C0j0j0j1n080b0j0V0C0j0C0C2g0j1c0j0j1v2g1v0j0j1v7N0j1c0j3L0j0j1v5Q1Z5Q1v4lfn1v420j1v5Q1Z5Q1v4l1v2z1v', + '0H140r0N0r140r0u0r0V171c11140C0j0u110j0u0j1v0j0C0j0j0j0b080V0u080b0C1v0j0j0j0C0j0b080V0j0j0b080b0j0j0j0j0b080b0C080j0b080b0j0j0j0j0j0j0b080j0b080C0b080b080b080b0j0j0j0j080b0j0C0j0j0j0b0j0j080C0b0j0j0j0j0j0j0b08080b0j0C0j0j0j0b0j0j0K0b0j0C0j0j0j0b080b080j0C0b0j080b080b0j0j0j0j080b0j0b0r0j0j0j0b0j0C0r0b0j0j0j0j0j0j0j0b080j0b0r0C0j0b0j0j0j0r0b0j0C0j0j0j0u0r0b0C0j080b0j0j0j0j0j0j0j1c0j0b0j0j0j0C0j0j0j0j0j0j0j0b080j1c0u0j0j0j0C0j1c0j0u0j1c0j0j0j0j0j0j0j0j1c0j0u1v0j0j0V0j0j2g0j0j0j0C1v0C1G0j0j0V0C1Z1O0j0V0j0j2g1v0j0j0V0C2g5x1v4l1v421O7N0V0C4l1v2S1c0j1v2S2_', + '050b080C0j0j0j0C0j0j0C0j0j0j0C0j0C0j0C030j0j0j0j0j0j0j0j0j0C0j0b080u0V080b0j0j0V0j0j0j0j0j0j0j0j0j0V0N0j0C0C0j0j0j0j0j0j0j0j1c0j0u0j1v0j0j0j0j0j0b080b080j0j0j0b080b080b080b080b0j0j0j080b0j0b080j0j0j0j0b080b0j0j0r0b080b0b080j0j0j0j0b080b080j0b080j0b080b080b080b080b0j0j0r0b0j0b080j0j0j0j0b080b0j0j0C080b0b080j0j0j0j0j0j0j0b080u080j0j0b0j0j0j0C0j0b080j0j0j0j0b080b080b080b0C080b080b080b0j0j0j0j0j0j0b0C080j0j0b0j0j0j0C0j0b080j0j0C0b080b080j0b0j0j0C080b0j0j0j0j0j0j0b0j0j080C0b0j080b0j0j0j0j0j0j0j0C0j0j0j0b0j0j0C080b0j0j0j0j0j0j0b080b080b0K0b080b080b0j0j0j0j0j0j0j0C0j0j0u0j0j0V0j080b0j0C0j0j0j0b0j0r0C0b0j0j0j0j0j0j0j0j0j0C0j0b080b080b0j0C0C0j0C0j0j0j0u110u0j0j0j0j0j0j0j0j0C0j0j0u0j1c0j0j0j0j0j0j0j0j0V0C0u0j0C0C0V0C1Z0j0j0j0C0j0j0j1v0u0j1c0j0j0j0C0j0j2g0j1c1v0C1Z0V0j4l0j0V0j0j2g0j1v0j1v2S1c7N1v', + '0w0j1c0j0V0j0j0V0V0V0j0m0V0j0C1c140j0j0j0C0V0C0j1v0j0N0j0C0j0j0j0V0j0j1v0N0j0j0V0j0j0j0j0j0j080b0j0j0j0j0j0j0j080b0j0C0j0j0j0b0j0j080u080b0j0j0j0j0j0j0b080b080b080C0b0j080b080b0j0j0j0j080b0j0C0j0j0j0b0j0j080u080b0j0j0j0j0j0j0b080b080b080b0r0b0j080b080b0j0j0j0j080b0j0b0r0j0j0b080b0j0j080b0j080b0j080b080b0j0j0j0j0j0b080b0r0C0b080b0j0j0j0j080b0b080b080j0j0j0b080b080b080b0j0j0j0j080b0j0b080j0j0j0j0b080b0j0j0r0b080b0j0j0j0j0j0b080b080j0b0r0b080j0b080b0j0j0j0j080b0j0b080j0j0j0j0b080b0j080b0r0b0j080b080b0j0j0j0j0j0b080b0r0C0b080b0j0j0j0j0j0j0b080j0j0j0b080b080b080b0j0j0j0r0b0j0b080j0j0j0j0b080b0r0b0r0b0j080b080b0j0j0j0j0j0j0b0r0j0j0j0b0j0j0j0j080b0j0b080j0j0j0j0b080b080b0j0r0b0j080b0j0j0j0j0j0j0j0b0r0C0b0j0j0j0j0j0j0j080b0j0C0j0j0j0b0j0C0r0b0j0j0j0j0j0j0b080b080u0r0b0j080b0j0j0j0j0j0j0j0b0r0C0u0j0j0j0C0j080b0j0C0j0j0j0u110b0j0j0j0j0j0j0j0j0j0C0j0b080b0j0j0C0C0j0C0j0j0j0b0j1c0j080b0j0j0j0j0j0j0V0j0j0u0j1c0j0j0j0C0j0j2g0j0j0j0C0j0j0V0j0b080b1c0C0V0j0j2g0j0j0V0j0j1c0j1Z0j0j0C0C0j1v', + '160j0j0V0j1c0j0C0j0C0j1f0j0V0C0j0j0C0j0j0j1G080b080u0V080b0j0j0V0j1v0j0u0j1c0j0j0j0C0j0j0j0C0C0j1D0b0j080b0j0j0j0j0C0j0b0r0C0j0b0j0C0C0j0j0j0j0j0j0j0j0j0b0r0b0r0j0b0j0j0j0C0j0b0r0j0j0j0b080b080j0b0C0j080b080b0j0j0j0j0j0j0b0C080j0j0b0j0j0j0C0j0b080j0j0j0j0b080b080j0b0C0r0j0b0j0j0j0j0j0j0b0C080j0j0b0j0j0j0C0j0j0j0j0C0j0j0b080b0j0j0C080b0j0j0j0j0j0j0b080b080b080C0b080b080b080b0j0j0j0j0j0b080C0j0j0b080b0j0j0C080b0j0j0j0j0j0j0b080j0b0C080j0j0b0j0j0j0j0j0j0b080j0b080C0b080b080b080b0j0j0j0j080b0j0C0j0j0b080b0j0j0C080b0j0j0j0j0j0j0b080j0b080u080j0j0b0j0j0j0j0j0j0b080C0j0j0b080b0j0j0C0j0j080b0j0j0j0j0j0b080b0C0r0b080b0j0j0j0j0j0j0b080j0b080u080b080b080b0j0j0j0C0j0b080j0j0j0j0b0j0j0j0C0j0j080b0j0j0j0j0j0b080b0C0r0b080b0j0j0j0j0j0j0b080j0b0r0b080b080b080b0j0j0j0r0b0j0b0r0j0j0j0b0j0j0j0r0b0j080b0j0j0j0j0j0j0j0b0r0C0b0j0j0j0j0j0j0j0b080j0C0u080b080b0j0j0j0r0b0j0C0C0j0b0j110b0j080b0j0j0j0j0j0j0u0r0C0b0j0j0j0j0j0j0j0j0j0C0j0j0j0b0j1c0j0C0j0j0j0b0j0814080b080b0j0j0j0j0j0j1c0j0u0j0j0V0j0j0j0j0j0j0j0u110u0j0j0j', + '020b0r0C0j0j0j0C0j0j0V0j0j0j0j0j0C0j1f0j0C0j0V1G0j0j0j0j0V0C0j0C1v0u0j0j0j0V0j0j0C0j0j0j1v0N0C0V0j0j0j0K0C250b0C0V0j0j0V0j0j2g0C0V0j0j0C0j0j0b081v0N0j0j0V0V0j0j0u0j1c0j080b0j0j0j0j0j0j0V0j0j0u0j0j0V0j0j0j0C0j0b080b080V0b0j080b0j0j0j0j0j0j0j0b0r0C0j0b0j0j0j0C0j080b0j0j0j0j0j0j0u0r0C0u0j0j0j0j0j0j0b080j0C0j0b080b080b0j0C0j080b0j0j0j0j0j0j0b080b110b0j0j0j0j0j0j0j0j0j0b0r0j0j0j0b0j0j0j0r0b0j0b080j0j0j0j0b080b080b080b0r0b0j080b080b0j0j0j0j0j0j0b0r0C0b080b0j0j0j0j080b0j0b080j0j0j0j0b080b080b0j0j0j0r0b0j0j0j0j0j0j0b080b0j080C0b0j080b080b0j0j0j0j080b0j0b0r0C0b080b0j0j0j0j080b0j0j0j0j0j0b080b080b080b0j0j080b0r0b0j0j0j0j0j0j0b0j0j080C0b0j080b080b0j0j0j0j0j0b080C0j0j0b080b0j0j0C0j0b080j0j0j0j0b080b080b080b0C0C080b0j0j0j0j0j0j0b0C0C080b080b080b0j0j0j0j0j0j0b0C080j0j0b0j0j0j0C0j0b080j0b080j0j0b080b080b080b0C0r0b0j0j0j0j0j0j0b080b0r0b0r0b0j080b080b0j0j0j0j0j0j0b0r0C0j0b0j0j0j0j0j0j0b080j0C0j0b080j0b0j0j0K0b0j0C0j0j0j0b080b0j0K0b0j080b0j0j0j0j0j0j0V0j0j0b0j0j0j0C0j0j0j0j', + '0l0C0K0N0r0N0j0r1G0V0m0j0V1c0C0j0j0j0j1O0N110u0j0j0j0C0j0j0V0C0j0u110u0j0j0j0C0j0j0j0C0C0j250j1c2S1v1v0j5x2g0j1c0j0j1c2z0j1c0j0j1c0j0N1v0V0C1v0C0b0C0V0j0j0C0j0C1v0u0j0C0C0j0j0j0C0j0j0j0u110u0j0j0j0C0j0C0C0C0b080b0j0C0j080b0j0C0j0j0j0u110u0j0j0j0C0j0j0j0C0j0j0j0u0C0r0u0j0j0j0j0j0j0b0r0b0V080b080b0j0C0j0j0j0V0j0j0b0j0j0j0C0j0j0j0j0j0j0j0b080j0b0C0r0j0b0j0j0j0C0j0b0r0b0r0j0b080b080b0j0C0j0j0j0j0j0j0j0j0b0j0C0r0b0j0j0j0j0j0j0b080b080j0b0r0b0r0j0b0j0j0j0j080b0j0b0r0j0j0j0b080b080b0j0j0j0j080b0j0j0j0j0j0j0b0j0j0j0r0b0j0j0j0j0j0j0b080b080b080b0r0C0b080b0j0j0j0j0j0b080b0r0C0b080b080b080b0j0j0j0j080b0j0C0j0j0j0b0j0j0C080b0j0j0j0j0j0j0b080j0b0C080j0j0b0j0j0j0j0j0j0b0r0b080j0j0b080b080b0j0j0j0j0j0j0b080j0j0j0j0b0j0j0j0r0b0j0b080j0j0j0j0j0b080b080b0C0r0b0j0j0j0j0j0j0b080b080j0C0b0j080b080b0j0j0j0j0j0j', + '0a0j0j0j0j0C0j0j0C0j0C0C0j0j0j0j0j0j0j0m0C0j0j0j0j0u080j0j0j1n0j0j0j0j0C0j0j0j0V0j0j0j1c0u0j0C0V0j0j0V0j0j1v0N0C0V2o1v1O2S2o141v0j1v4l0j1c0j1v2S2o0C0u1v0j0C0C2S1v0j1c0j0j1v0N251c0j1v0b1c1v1n1v0j0j0V0j0j1v0N1v0C0V0j0j1v0b0C0j0j0V1c0j0u0j1c0j0j0j0j0j0j0j0j1c0j0u0j0j0V0j0j0j0j0j0j0b080u110u0j0j0j0j0j0j1c0j0b0j080b0j0C0j0j0j0V0j0j0u0C0V0j0j0j0C0j0b080j1c0j0b0j0j0j0C0j0C0j0j0j0b080b080b0j0C0j080b0j0j0j0j0j0j0j0b0C0r0u0j0j0j0j0j0j0b080j0b0r0C0j0b0j0j0j0r0b0j0b0r0j0j0j0b080b080b0j0r0b0j080b0j0j0j0j0j0j0b0j0r0C0b0j0j0j0j0j0j0b080j0j0C0j0j0b080b0j0j0j0j0j0j0j0j0j0j0b080b080b080b0C0j0j080b0j0j0j0j0j0j0b0j0j0C080b0j0j0j0j0j0j0j0j0b0C080j0j0b0j0j0j0j0j', + '0n0Q0j1c14010q0V1c171k0u0r140V0j0j1c0C0N1O0j0V0j0j0j1c0j0u110u0C0j0C0V0C0j0j0b671v0j1v5Q1O2S2o2S1v4l1v0j1v2S2o0C1Z0j0C0C1O141v0j1c0j2z1O0j0V0j0j1v0b2H390j1c0j0V0C2z0j1c0j1v2g0C0V0j1O0b0j0j0V0C1c0j0u0j1c0j0j0j0j0j0j0j0j1c0N0j0j0V0j0j0C0j0j0b081v0u0j0j0j0C0j1c0N0j0j0C0j0j0j0C0j0j0j0u0C0r0u0j0j0j0C0j0b080j1c0j0b0j0C0C0j0C0C0j0b080b080u0C0j080b0j0C0j0j0j0u110u0j0j0j0j0j0j0j0j0C0C0j0b0j0j0j0C0j0C0C0j0b080b080b0j0C0j080b0j0C0j0j0j0b0j110b0j0j0j0j0j', + '0B0j0V0j0j0C0j0j0j0C0j0C0j0j0C0j0m0j0j0j0j0C0j0C0j0j0u0j1c0j0j0C0C0j0j0j0j0j0j0j0j0u110N0j0j0V0C0V0j0b081n080b0CrU1O5e2SbX2_1Z0V2o141v0j0C0C0j2z1v0j1c0j7N1O420j1c0j1v2S1c0j1v2S2_0b0j0V0j0j1v0N1v0j0j1c0j1v140j0V0j0j0C0C0b080u1v0C0V0u110u0j0j0j0C0j0j0j0C0C0N0C0V0j0j0C0j0j0b080u110u0C0j0C0u0r0C0u080b0j0j0C0j0j0j' + ] + for m in months: + n: int = 0 + size: int = int(m.__len__() / 2) + l: List[int] = [] + for y in range(0, size): + z: int = y * 2 + t: int = 0 + c: int = 1 + for x in range(1, -1, -1): + t += c * chars.index(m[z + x]) + c *= 64 + n += t + l.append(n) + LunarYear._LEAP.append(l) + LunarYear._IS_INIT = True + + @staticmethod + def validate(year: int) -> None: + if year < -1 or year > 9999: + raise ValueError(f'illegal lunar year: {year}') + + def __init__(self, year: int): + LunarYear._init() + LunarYear.validate(year) + super().__init__(year) + + @classmethod + def from_year(cls, year: int) -> LunarYear: + return cls(year) + + def get_day_count(self) -> int: + """ + 当年的总天数 + :return: 数字,从正月初一到除夕的总天数 + """ + n: int = 0 + months: List[LunarMonth] = self.get_months() + for i in range(0, months.__len__()): + n += months[i].get_day_count() + return n + + def get_month_count(self) -> int: + """ + 当年的总月数 + :return: 数字,有闰月为13,无闰月为12 + """ + return 12 if self.get_leap_month() < 1 else 13 + + def get_name(self) -> str: + """ + :return: 农历{六十甲子}年 + """ + return f'农历{self.get_sixty_cycle().get_name()}年' + + def next(self, n: int) -> LunarYear: + return LunarYear(self._year + n) + + def get_leap_month(self) -> int: + """ + 当年的闰月月份 + :return: 数字,代表当年的闰月月份,例如:5代表闰五月,0代表当年没有闰月 + """ + if self._year == -1: + return 11 + for i in range(0, self._LEAP.__len__()): + if self._year in self._LEAP[i]: + return i + 1 + return 0 + + def get_sixty_cycle(self) -> SixtyCycle: + """ + 当年的干支 + :return: 干支 SixtyCycle + """ + from tyme4py.sixtycycle import SixtyCycle + return SixtyCycle(self._year - 4) + + def get_twenty(self) -> Twenty: + """ + :return: 运 Twenty + """ + return Twenty(floor((self._year - 1864) / 20)) + + def get_nine_star(self) -> NineStar: + """ + :return: 九星 NineStar + """ + return NineStar(63 + self.get_twenty().get_sixty().get_index() * 3 - self.get_sixty_cycle().get_index()) + + def get_jupiter_direction(self) -> Direction: + """ + 太岁方位 + :return: 方位 Direction + """ + return Direction([0, 7, 7, 2, 3, 3, 8, 1, 1, 6, 0, 0][self.get_sixty_cycle().get_earth_branch().get_index()]) + + def get_first_month(self) -> LunarMonth: + """ + 首月(农历月,即一月,俗称正月) + :return: 农历月 + """ + return LunarMonth.from_ym(self._year, 1) + + def get_months(self) -> List[LunarMonth]: + """ + 农历月列表 + :return: 农历月 LunarMonth 的列表,从正月到十二月,包含闰月 + """ + l: List[LunarMonth] = [] + leap_month: int = self.get_leap_month() + for i in range(1, 13): + l.append(LunarMonth.from_ym(self._year, i)) + if i == leap_month: + l.append(LunarMonth.from_ym(self._year, -i)) + return l + + def get_kitchen_god_steed(self) -> KitchenGodSteed: + """ + 灶马头 + :return: 灶马头 + """ + return KitchenGodSteed.from_lunar_year(self._year) + + +class LunarSeason(LoopTyme): + """ + 农历季节 + 从正月开始,依次为:孟春、仲春、季春、孟夏、仲夏、季夏、孟秋、仲秋、季秋、孟冬、仲冬、季冬。 + """ + NAMES: List[str] = ['孟春', '仲春', '季春', '孟夏', '仲夏', '季夏', '孟秋', '仲秋', '季秋', '孟冬', '仲冬', '季冬'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> LunarSeason: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> LunarSeason: + return cls(index) + + def next(self, n: int) -> LunarSeason: + return LunarSeason(self.next_index(n)) + + +class LunarMonth(MonthUnit): + """ + 农历月 + 农历月以初一开始,大月30天,小月29天 + """ + NAMES: List[str] = ['正月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'] + + @staticmethod + def validate(year: int, month: int) -> None: + if month == 0 or month > 12 or month < -12: + raise ValueError(f'illegal lunar month: {month}') + if month < 0 and -month != LunarYear.from_year(year).get_leap_month(): + raise ValueError(f'illegal leap month {-month} in lunar year {year}') + + def __init__(self, year: int, month: int): + """ + :param year: 农历年 + :param month: 农历月,闰月为负 + """ + LunarMonth.validate(year, month) + super().__init__(year, abs(month)) + self._leap = month < 0 + + @classmethod + def from_ym(cls, year: int, month: int) -> LunarMonth: + """ + 从农历年、月初始化 + :param year: 农历年,支持从-1到9999年 + :param month: 农历月,支持1到12,如果为闰月的,使用负数,即-3代表闰三月 + :return: LunarMonth + """ + return cls(year, month) + + def _get_new_moon(self): + from tyme4py.solar import SolarTerm + # 冬至 + dong_zhi_jd: float = SolarTerm(self._year, 0).get_cursory_julian_day() + # 冬至前的初一,今年首朔的日月黄经差 + w: int = ShouXingUtil.calc_shuo(dong_zhi_jd) + if w > dong_zhi_jd: + w -= 29.53 + + # 正常情况正月初一为第3个朔日,但有些特殊的 + offset: int = 2 + if 8 < self._year < 24: + offset = 1 + elif LunarYear(self._year - 1).get_leap_month() > 10 and self._year != 239 and self._year != 240: + offset = 3 + # 本月初一 + return w + 29.5306 * (offset + self.get_index_in_year()) + + def get_lunar_year(self) -> LunarYear: + """ + 农历年 + :return: 农历年 + """ + return LunarYear.from_year(self._year) + + def get_month_with_leap(self) -> int: + """ + 月(支持闰月) + :return: 月份数字,范围为1到12,闰月为负数,如闰7月返回-7 + """ + return -self._month if self._leap else self._month + + def get_day_count(self) -> int: + """ + 当月的总天数 + :return: 数字,从初一开始的总天数,大月有30天,小月有29天 + """ + w: float = self._get_new_moon() + return ~~(ShouXingUtil.calc_shuo(w + 29.5306) - ShouXingUtil.calc_shuo(w)) + + def get_index_in_year(self) -> int: + """ + 位于当年的月索引 + :return: 数字,范围0到12,正月为0,依次类推,例如五月索引值为4,闰五月索引值为5 + """ + # 位于当年的索引 + index: int = self._month - 1 + if self._leap: + index += 1 + else: + leap_month: int = LunarYear.from_year(self._year).get_leap_month() + if 0 < leap_month < self._month: + index += 1 + return index + + def get_season(self) -> LunarSeason: + """ + :return: 农历季节 + """ + return LunarSeason(self._month - 1) + + def get_first_julian_day(self) -> JulianDay: + """ + 初一的儒略日 + :return: 儒略日 + """ + from tyme4py.jd import JulianDay + return JulianDay.from_julian_day(JulianDay.J2000 + ShouXingUtil.calc_shuo(self._get_new_moon())) + + def is_leap(self) -> bool: + """ + 是否闰月 + :return: 布尔值,闰月返回true,非闰月返回false + """ + return self._leap + + def get_week_count(self, start: int) -> int: + """ + 当月有几周 + :param start: 参数为起始星期,1234560分别代表星期一至星期天 + :return: 数字 + """ + return ceil((self.index_of(self.get_first_julian_day().get_week().get_index() - start, 7) + self.get_day_count()) / 7) + + def get_name(self) -> str: + """ + 依据国家标准《农历的编算和颁行》GB/T 33661-2017中农历月的命名方法。 + :return: 名称 + """ + return ('闰' if self._leap else '') + self.NAMES[self._month - 1] + + def __str__(self) -> str: + return f'{self.get_lunar_year()}{self.get_name()}' + + def next(self, n: int) -> LunarMonth: + if n == 0: + return LunarMonth.from_ym(self._year, self.get_month_with_leap()) + + m: int = self.get_index_in_year() + 1 + n + y: LunarYear = self.get_lunar_year() + if n > 0: + month_count: int = y.get_month_count() + while m > month_count: + m -= month_count + y = y.next(1) + month_count = y.get_month_count() + else: + while m <= 0: + y = y.next(-1) + m += y.get_month_count() + + leap: bool = False + leap_month: int = y.get_leap_month() + if leap_month > 0: + if m == leap_month + 1: + leap = True + if m > leap_month: + m -= 1 + return LunarMonth.from_ym(y.get_year(), -m if leap else m) + + def get_days(self) -> List[LunarDay]: + """ + 本月的农历日列表 + :return: 农历日 LunarDay 的列表,从初一开始 + """ + m: int = self.get_month_with_leap() + l: List[LunarDay] = [] + for i in range(1, self.get_day_count() + 1): + l.append(LunarDay(self._year, m, i)) + return l + + def get_first_day(self) -> LunarDay: + """ + 初一 + """ + return LunarDay.from_ymd(self._year, self.get_month_with_leap(), 1) + + def get_weeks(self, start: int) -> List[LunarWeek]: + """ + 本月的农历周列表 + :param start: 参数为起始星期,1234560分别代表星期一至星期天 + :return: 农历周 LunarWeek 的列表 + """ + m: int = self.get_month_with_leap() + l: List[LunarWeek] = [] + for i in range(0, self.get_week_count(start)): + l.append(LunarWeek(self._year, m, i, start)) + return l + + def get_sixty_cycle(self) -> SixtyCycle: + """ + 当月的干支 + :return: 干支 SixtyCycle + """ + from tyme4py.sixtycycle import SixtyCycle + return SixtyCycle.from_index(self._year * 12 + self._month - 47) + + def get_nine_star(self) -> NineStar: + """ + :return: 九星 NineStar + """ + index = self.get_sixty_cycle().get_earth_branch().get_index() + if index < 2: + index += 3 + return NineStar(27 - self.get_lunar_year().get_sixty_cycle().get_earth_branch().get_index() % 3 * 3 - index) + + def get_jupiter_direction(self) -> Direction: + """ + 太岁方位 + :return: 方位 Direction + """ + from tyme4py.sixtycycle import SixtyCycle + sixty_cycle: SixtyCycle = self.get_sixty_cycle() + n: int = [7, -1, 1, 3][sixty_cycle.get_earth_branch().next(-2).get_index() % 4] + return Direction(n) if n != -1 else sixty_cycle.get_heaven_stem().get_direction() + + def get_fetus(self) -> Union[FetusMonth, None]: + """ + :return: 逐月胎神 FetusMonth。闰月无胎神。 + """ + return FetusMonth.from_lunar_month(self) + + def get_minor_ren(self) -> MinorRen: + """ + :return: 小六壬 + """ + return MinorRen((self._month - 1) % 6) + + +class LunarWeek(WeekUnit): + """ + 农历周 + 农历一个月最多有6个周,分别为:第一周、第二周、第三周、第四周、第五周、第六周。 + """ + + @staticmethod + def validate(year: int, month: int, index: int, start: int) -> None: + WeekUnit.validate(year, month, index, start) + m: LunarMonth = LunarMonth.from_ym(year, month) + if index >= m.get_week_count(start): + raise ValueError(f'illegal lunar week index: {index} in month: {m}') + + def __init__(self, year: int, month: int, index: int, start: int): + """ + :param year: 年 + :param month: 月 + :param index: 周索引,0-5 + :param start: 起始星期 (1234560分别代表星期一至星期日) + """ + LunarWeek.validate(year, month, index, start) + super().__init__(year, month, index, start) + + @classmethod + def from_ym(cls, year: int, month: int, index: int, start: int) -> LunarWeek: + return cls(year, month, index, start) + + def get_lunar_month(self) -> LunarMonth: + """ + :return:农历月 + """ + return LunarMonth.from_ym(self._year, self._month) + + def get_name(self) -> str: + return self.NAMES[self._index] + + def __str__(self) -> str: + return f'{self.get_lunar_month()}{self.get_name()}' + + def next(self, n: int) -> LunarWeek: + d: int = self._index + n + m: LunarMonth = self.get_lunar_month() + if n > 0: + week_count: int = m.get_week_count(self._start) + while d >= week_count: + d -= week_count + m = m.next(1) + if m.get_first_day().get_week().get_index() != self._start: + d += 1 + week_count = m.get_week_count(self._start) + else: + while d < 0: + if m.get_first_day().get_week().get_index() != self._start: + d -= 1 + m = m.next(-1) + d += m.get_week_count(self._start) + return LunarWeek(m.get_year(), m.get_month_with_leap(), d, self._start) + + def get_first_day(self) -> LunarDay: + """ + 本周第一天的农历日 + :return: 农历日 LunarDay + """ + first_day: LunarDay = LunarDay(self._year, self._month, 1) + return first_day.next(self._index * 7 - self.index_of(first_day.get_week().get_index() - self._start, 7)) + + def get_days(self) -> List[LunarDay]: + """ + 本周农历日列表 + :return: 农历日 LunarDay的列表 + """ + l: List[LunarDay] = [] + d: LunarDay = self.get_first_day() + l.append(d) + for i in range(1, 7): + l.append(d.next(i)) + return l + + def __eq__(self, other: LunarWeek) -> bool: + return other and other.get_first_day() == self.get_first_day() + + +class LunarDay(DayUnit): + """农历日""" + NAMES: List[str] = ['初一', '初二', '初三', '初四', '初五', '初六', '初七', '初八', '初九', '初十', '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '二十', '廿一', '廿二', '廿三', '廿四', '廿五', '廿六', '廿七', '廿八', '廿九', '三十'] + """名称""" + + @staticmethod + def validate(year: int, month: int, day: int) -> None: + if day < 1: + raise ValueError(f'illegal lunar day {day}') + m: LunarMonth = LunarMonth.from_ym(year, month) + if day > m.get_day_count(): + raise ValueError(f'illegal day {day} in {m}') + + def __init__(self, year: int, month: int, day: int): + """ + :param year: 农历年 + :param month: 农历月,闰月为负 + :param day: 农历日 + """ + LunarDay.validate(year, month, day) + super().__init__(year, month, day) + + @classmethod + def from_ymd(cls, year: int, month: int, day: int) -> LunarDay: + return cls(year, month, day) + + def get_lunar_month(self) -> LunarMonth: + """ + :return: 农历月 + """ + return LunarMonth.from_ym(self._year, self._month) + + def get_name(self) -> str: + """ + :return: 农历日名,如:初一 + """ + return self.NAMES[self._day - 1] + + def __str__(self) -> str: + return f'{self.get_lunar_month()}{self.get_name()}' + + def next(self, n: int) -> LunarDay: + return self.get_solar_day().next(n).get_lunar_day() + + def is_before(self, target: LunarDay) -> bool: + """ + 是否在指定农历日之前 + :param target: 农历日 LunarDay + :return: true/false + """ + y: int = target.get_year() + if self._year != y: + return self._year < y + m: int = target.get_month() + if self._month != m: + t: int = abs(m) + return self._month == t or abs(self._month) < t + return self._day < target.get_day() + + def is_after(self, target: LunarDay) -> bool: + """ + 是否在指定农历日之后 + :param target: 农历日 LunarDay + :return: + """ + y: int = target.get_year() + if self._year != y: + return self._year > y + m: int = target.get_month() + if self._month != m: + t: int = abs(self._month) + return t == m or t > abs(m) + return self._day > target.get_day() + + def get_week(self) -> Week: + """ + :return: 星期 + """ + return self.get_solar_day().get_week() + + def get_year_sixty_cycle(self) -> SixtyCycle: + """ + 当天的年干支 非当天所属的农历年干支,以立春换年。 + :return: 干支 SixtyCycle + """ + warnings.warn('get_year_sixty_cycle() is deprecated, please use SixtyCycleDay.get_year() instead.', DeprecationWarning) + return self.get_sixty_cycle_day().get_year() + + def get_month_sixty_cycle(self) -> SixtyCycle: + """ + 当天的月干支 非当天所属的农历月干支,以节令换月。 + :return: 干支 SixtyCycle + """ + warnings.warn('get_month_sixty_cycle() is deprecated, please use SixtyCycleDay.get_month() instead.', DeprecationWarning) + return self.get_sixty_cycle_day().get_month() + + def get_sixty_cycle(self) -> SixtyCycle: + """ + 当天的干支 + :return: 干支 + """ + from tyme4py.sixtycycle import SixtyCycle + return SixtyCycle.from_index(int(self.get_lunar_month().get_first_julian_day().next(self._day - 12).get_day())) + + def get_duty(self) -> Duty: + """ + 建除十二值神 + :return: 建除十二值神 Duty + """ + return self.get_sixty_cycle_day().get_duty() + + def get_twelve_star(self) -> TwelveStar: + """ + 黄道黑道十二神 + :return: 黄道黑道十二神 TwelveStar + """ + return self.get_sixty_cycle_day().get_twelve_star() + + def get_nine_star(self) -> NineStar: + """ + :return: 九星 NineStar + """ + return self.get_solar_day().get_nine_star() + + def get_jupiter_direction(self) -> Direction: + """ + 太岁方位 + :return: 方位 Direction + """ + index: int = self.get_sixty_cycle().get_index() + from tyme4py.culture import Element + return Element(index // 12).get_direction() if index % 12 < 6 else self.get_lunar_month().get_lunar_year().get_jupiter_direction() + + def get_fetus_day(self) -> FetusDay: + """ + :return:逐日胎神 FetusDay + """ + return FetusDay.from_lunar_day(self) + + def get_phase_day(self) -> PhaseDay: + """ + 月相第几天 + :return: 月相第几天 + """ + today = self.get_solar_day() + m = self.get_lunar_month().next(1) + p = Phase.from_index(m.get_year(), m.get_month_with_leap(), 0) + d = p.get_solar_day() + while d.is_after(today): + p = p.next(-1) + d = p.get_solar_day() + return PhaseDay(p, today.subtract(d)) + + def get_phase(self) -> Phase: + """ + 月相 + :return: 月相 Phase + """ + return self.get_phase_day().get_phase() + + def get_solar_day(self) -> SolarDay: + """ + 公历日 + :return: 公历日 SolarDay + """ + return self.get_lunar_month().get_first_julian_day().next(self._day - 1).get_solar_day() + + def get_sixty_cycle_day(self) -> SixtyCycleDay: + """ + 干支日 + :return: 干支日 + """ + return self.get_solar_day().get_sixty_cycle_day() + + def get_twenty_eight_star(self) -> TwentyEightStar: + """ + :return: 二十八宿 TwentyEightStar + """ + return TwentyEightStar(10 + 8 * self.get_week().get_index()).next(-7 * self.get_sixty_cycle().get_earth_branch().get_index()) + + def get_festival(self) -> Union[LunarFestival, None]: + """ + 农历传统节日,如果当天不是农历传统节日,返回None + :return:农历传统节日 LunarFestival + """ + return LunarFestival.from_ymd(self._year, self._month, self._day) + + def get_six_star(self) -> SixStar: + """ + :return: 六曜 + """ + return SixStar((abs(self._month) + self._day - 2) % 6) + + def get_gods(self) -> List[God]: + """ + 神煞列表(吉神宜趋,凶神宜忌) + :return: 神煞列表 + """ + return self.get_sixty_cycle_day().get_gods() + + def get_recommends(self) -> List[Taboo]: + """ + 今日 宜 + :return: 宜忌列表 + """ + return self.get_sixty_cycle_day().get_recommends() + + def get_avoids(self) -> List[Taboo]: + """ + 今日 忌 + :return: 宜忌列表 + """ + return self.get_sixty_cycle_day().get_avoids() + + def get_hours(self) -> List[LunarHour]: + """ + 当天的时辰列表 + :return: 由于23:00-23:59、00:00-00:59均为子时,而农历日是从00:00-23:59为一天,所以获取当天的时辰列表,实际会返回13个。 + """ + l: List[LunarHour] = [LunarHour(self._year, self._month, self._day, 0, 0, 0)] + for i in range(0, 24, 2): + l.append(LunarHour(self._year, self._month, self._day, i + 1, 0, 0)) + return l + + def get_minor_ren(self) -> MinorRen: + """ + 小六壬 + :return: 小六壬 + """ + return self.get_lunar_month().get_minor_ren().next(self._day - 1) + + def get_three_pillars(self) -> ThreePillars: + """ + 三柱 + @return: 三柱 + """ + return self.get_sixty_cycle_day().get_three_pillars() + + +class LunarHour(SecondUnit): + """ + 农历时辰 + """ + provider: EightCharProvider = DefaultEightCharProvider() + """八字计算接口""" + + @staticmethod + def validate(year: int, month: int, day: int, hour: int, minute: int, second: int) -> None: + SecondUnit.validate(year, month, day, hour, minute, second) + LunarDay.validate(year, month, day) + + def __init__(self, year: int, month: int, day: int, hour: int, minute: int = 0, second: int = 0): + """ + :param year: 农历年,支持从-1到9999年 + :param month: 农历月,支持1到12,如果为闰月的,使用负数,即-3代表闰三月 + :param day: 农历日,支持1到30,大月30天,小月29天 + :param hour: 时为0-23 + :param minute: 分为0-59 + :param second: 秒为0-59 + """ + LunarHour.validate(year, month, day, hour, minute, second) + super().__init__(year, month, day, hour, minute, second) + + @classmethod + def from_ymd_hms(cls, year: int, month: int, day: int, hour: int, minute: int = 0, second: int = 0) -> LunarHour: + return cls(year, month, day, hour, minute, second) + + def get_lunar_day(self) -> LunarDay: + """ + :return: 农历日 + """ + return LunarDay.from_ymd(self._year, self._month, self._day) + + def get_name(self) -> str: + from tyme4py.sixtycycle import EarthBranch + return f'{EarthBranch(self.get_index_in_day()).get_name()}时' + + def __str__(self) -> str: + return f'{self.get_lunar_day()}{self.get_sixty_cycle().get_name()}时' + + def get_index_in_day(self) -> int: + """ + 位于当天的索引 + :return: 数字,范围0到11 + """ + return int((self._hour + 1) / 2) + + def next(self, n: int) -> LunarHour: + if n == 0: + return LunarHour(self._year, self._month, self._day, self._hour, self._minute, self._second) + h: int = self._hour + n * 2 + diff: int = -1 if h < 0 else 1 + hour: int = abs(h) + days: int = int(hour / 24) * diff + hour = (hour % 24) * diff + if hour < 0: + hour += 24 + days -= 1 + d: LunarDay = self.get_lunar_day().next(days) + return LunarHour(d.get_year(), d.get_month(), d.get_day(), hour, self._minute, self._second) + + def is_before(self, target: LunarHour) -> bool: + """ + 是否在指定农历时辰之前 + :param target: 农历时辰 + :return: true/false + """ + a_day: LunarDay = self.get_lunar_day() + b_day: LunarDay = target.get_lunar_day() + if a_day != b_day: + return a_day.is_before(b_day) + h = target.get_hour() + if self._hour != h: + return self._hour < h + m = target.get_minute() + return self._minute < m if self._minute != m else self._second < target.get_second() + + def is_after(self, target: LunarHour) -> bool: + """ + 是否在指定农历时辰之后 + :param target: 农历时辰 + :return: true/false + """ + a_day: LunarDay = self.get_lunar_day() + b_day: LunarDay = target.get_lunar_day() + if a_day != b_day: + return a_day.is_after(b_day) + h = target.get_hour() + if self._hour != h: + return self._hour > h + m = target.get_minute() + return self._minute > m if self._minute != m else self._second > target.get_second() + + def get_year_sixty_cycle(self) -> SixtyCycle: + """ + 当时的年干支 非当时所属的农历年干支 + :return: 干支 SixtyCycle + """ + warnings.warn('get_year_sixty_cycle() is deprecated, please use SixtyCycleHour.get_year() instead.', DeprecationWarning) + return self.get_sixty_cycle_hour().get_year() + + def get_month_sixty_cycle(self) -> SixtyCycle: + """ + 当时的月干支 非当天所属的农历月干支,以节令具体时刻换月。 + :return: 干支 SixtyCycle + """ + warnings.warn('get_year_sixty_cycle() is deprecated, please use SixtyCycleHour.get_month() instead.', DeprecationWarning) + return self.get_sixty_cycle_hour().get_month() + + def get_day_sixty_cycle(self) -> SixtyCycle: + """ + 当时的日干支 + :return: 干支 SixtyCycle。注意:23:00开始算做第二天。 + """ + warnings.warn('get_year_sixty_cycle() is deprecated, please use SixtyCycleHour.get_day() instead.', DeprecationWarning) + return self.get_sixty_cycle_hour().get_day() + + def get_sixty_cycle(self) -> SixtyCycle: + """ + 时辰干支 + :return: 干支 SixtyCycle + """ + from tyme4py.sixtycycle import SixtyCycle, HeavenStem + e: int = self.get_index_in_day() + h: HeavenStem = self.get_lunar_day().get_sixty_cycle().get_heaven_stem() + if self._hour >= 23: + h = h.next(1) + e = 0 + return SixtyCycle.from_index(h.get_index() * 12 + e) + + def get_twelve_star(self) -> TwelveStar: + """ + :return: 黄道黑道十二神 TwelveStar + """ + return TwelveStar(self.get_sixty_cycle().get_earth_branch().get_index() + (8 - self.get_sixty_cycle_hour().get_day().get_earth_branch().get_index() % 6) * 2) + + def get_nine_star(self) -> NineStar: + """ + 九星(时家紫白星歌诀:三元时白最为佳,冬至阳生顺莫差,孟日七宫仲一白,季日四绿发萌芽,每把时辰起甲子,本时星耀照光华,时星移入中宫去,顺飞八方逐细查。夏至阴生逆回首,孟归三碧季加六,仲在九宫时起甲,依然掌中逆轮跨。) + :return: 九星 NineStar + """ + from tyme4py.solar import SolarTerm + d: LunarDay = self.get_lunar_day() + solar: SolarDay = d.get_solar_day() + dong_zhi: SolarTerm = SolarTerm(solar.get_year(), 0) + earth_branch_index: int = self.get_index_in_day() % 12 + index: int = 8 - 3 * (d.get_sixty_cycle().get_earth_branch().get_index() % 3) + if (not solar.is_before(dong_zhi.get_julian_day().get_solar_day())) and solar.is_before(dong_zhi.next(12).get_julian_day().get_solar_day()): + index = 8 + earth_branch_index - index + else: + index -= earth_branch_index + return NineStar(index) + + def get_solar_time(self) -> SolarTime: + """ + 公历时刻 + :return: 公历时刻 SolarTime + """ + from tyme4py.solar import SolarTime + d: SolarDay = self.get_lunar_day().get_solar_day() + return SolarTime(d.get_year(), d.get_month(), d.get_day(), self._hour, self._minute, self._second) + + def get_sixty_cycle_hour(self) -> SixtyCycleHour: + """ + 干支时辰 + :return: 干支时辰 SixtyCycleHour + """ + return self.get_solar_time().get_sixty_cycle_hour() + + def get_eight_char(self) -> EightChar: + """ + 八字 + :return: 八字 + """ + return LunarHour.provider.get_eight_char(self) + + def get_recommends(self) -> List[Taboo]: + """ + 宜 + :return: 宜忌列表 + """ + return Taboo.get_hour_recommends(self.get_sixty_cycle_hour().get_day(), self.get_sixty_cycle()) + + def get_avoids(self) -> List[Taboo]: + """ + 忌 + :return: 宜忌列表 + """ + return Taboo.get_hour_avoids(self.get_sixty_cycle_hour().get_day(), self.get_sixty_cycle()) + + def get_minor_ren(self) -> MinorRen: + """ + :return: 小六壬 + """ + return self.get_lunar_day().get_minor_ren().next(self.get_index_in_day()) diff --git a/vendor/tyme4py/rabbyung/__init__.py b/vendor/tyme4py/rabbyung/__init__.py new file mode 100644 index 0000000..1d08b4e --- /dev/null +++ b/vendor/tyme4py/rabbyung/__init__.py @@ -0,0 +1,408 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from typing import TYPE_CHECKING, Union, List, Dict + +from tyme4py import AbstractTyme +from tyme4py.culture import Element, Zodiac +from tyme4py.lunar import LunarMonth +from tyme4py.unit import MonthUnit, DayUnit + +if TYPE_CHECKING: + from tyme4py.sixtycycle import SixtyCycle + from tyme4py.solar import SolarYear, SolarDay + + +class RabByungElement(Element): + """藏历五行""" + + NAMES: List[str] = ['木', '火', '土', '铁', '水'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(index_or_name, self.NAMES) + + @classmethod + def from_index(cls, index: int) -> RabByungElement: + return cls(index) + + @classmethod + def from_name(cls, name: str) -> RabByungElement: + return cls(name) + + def next(self, n: int) -> RabByungElement: + return RabByungElement(self.next_index(n)) + + def get_reinforce(self) -> RabByungElement: + """我生者""" + return self.next(1) + + def get_restrain(self) -> RabByungElement: + """我克者""" + return self.next(2) + + def get_reinforced(self) -> RabByungElement: + """生我者""" + return self.next(-1) + + def get_restrained(self) -> RabByungElement: + """克我者""" + return self.next(-2) + + +class RabByungYear(AbstractTyme): + """藏历年(公历1027年为藏历元年,第一饶迥火兔年)""" + + def __init__(self, rab_byung_index: int, element_index: int, zodiac_index: int): + """ + :param rab_byung_index: 饶迥(胜生周)序号,从0开始 + :param element_index: 五行索引,从0开始 + :param zodiac_index: 生肖索引,从0开始 + """ + if rab_byung_index < 0 or rab_byung_index > 150: + raise ValueError(f'illegal rab-byung index: {rab_byung_index}') + if element_index < 0 or element_index >= len(Element.NAMES): + raise ValueError(f'illegal element index: {element_index}') + if zodiac_index < 0 or zodiac_index > len(Zodiac.NAMES): + raise ValueError(f'illegal zodiac index: {zodiac_index}') + self._rab_byung_index = rab_byung_index + self._element_index = element_index + self._zodiac_index = zodiac_index + + @staticmethod + def validate(year: int) -> None: + if year < 1027 or year > 9999: + raise ValueError(f'illegal rab-byung year: {year}') + + @classmethod + def from_sixty_cycle(cls, rab_byung_index: int, sixty_cycle: SixtyCycle) -> RabByungYear: + return cls(rab_byung_index, sixty_cycle.get_heaven_stem().get_element().get_index(), sixty_cycle.get_earth_branch().get_zodiac().get_index()) + + @classmethod + def from_element_zodiac(cls, rab_byung_index: int, element: RabByungElement, zodiac: Zodiac) -> RabByungYear: + return cls(rab_byung_index, element.get_index(), zodiac.get_index()) + + @classmethod + def from_year(cls, year: int) -> RabByungYear: + from tyme4py.sixtycycle import SixtyCycle + cls.validate(year) + return cls.from_sixty_cycle((year - 1024) // 60, SixtyCycle.from_index(year - 4)) + + def get_rab_byung_index(self) -> int: + """饶迥序号(从0开始)""" + return self._rab_byung_index + + def get_sixty_cycle(self) -> SixtyCycle: + """干支""" + from tyme4py.sixtycycle import SixtyCycle + return SixtyCycle.from_index(6 * (self._element_index * 2 + self._zodiac_index % 2) - 5 * self._zodiac_index) + + def get_zodiac(self) -> Zodiac: + """生肖""" + return Zodiac.from_index(self._zodiac_index) + + def get_element(self) -> RabByungElement: + """五行""" + return RabByungElement.from_index(self._element_index) + + def get_name(self) -> str: + """完整名称""" + digits: List[str] = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'] + units: List[str] = ['', '十', '百'] + n: int = self._rab_byung_index + 1 + s: str = '' + pos: int = 0 + + while n > 0: + digit: int = n % 10 + if digit > 0: + s = digits[digit] + units[pos] + s + elif s: + s = digits[digit] + s + n //= 10 + pos += 1 + + if s.startswith('一十'): + s = s.replace('一十', '十', 1) + return f'第{s}饶迥{self.get_element()}{self.get_zodiac()}年' + + def next(self, n: int) -> RabByungYear: + return RabByungYear.from_year(self.get_year() + n) + + def get_year(self) -> int: + """公历年份""" + return 1024 + self._rab_byung_index * 60 + self.get_sixty_cycle().get_index() + + def get_leap_month(self) -> int: + """闰月(闰月数字,1代表闰1月,0代表无闰月)""" + y: int = 1 + m: int = 4 + t: int = 1 + current_year: int = self.get_year() + + while y < current_year: + i: int = m + 31 + t + y += 2 + m = i - 23 + if i > 35: + y += 1 + m -= 12 + t = 1 - t + + return m if y == current_year else 0 + + def get_solar_year(self) -> SolarYear: + """对应的公历年""" + from tyme4py.solar import SolarYear + return SolarYear.from_year(self.get_year()) + + def get_first_month(self) -> RabByungMonth: + """首月""" + return RabByungMonth(self.get_year(), 1) + + def get_month_count(self) -> int: + """月份数量""" + return 12 if self.get_leap_month() < 1 else 13 + + def get_months(self) -> List[RabByungMonth]: + """所有月份列表""" + months: List[RabByungMonth] = [] + y: int = self.get_year() + leap_month: int = self.get_leap_month() + for i in range(1, 13): + months.append(RabByungMonth(y, i)) + if i == leap_month: + months.append(RabByungMonth(y, -i)) + return months + + def __str__(self) -> str: + return self.get_name() + + +class RabByungMonth(MonthUnit): + """藏历月,仅支持藏历1950年十二月至藏历2050年十二月""" + ALIAS = ['神变月', '苦行月', '具香月', '萨嘎月', '作净月', '明净月', '具醉月', '具贤月', '天降月', '持众月', '庄严月', '满意月'] + DAYS: Dict[int, List[int]] = {} + _IS_INIT: bool = False + + # 初始化特殊日数据(1950-2050年) + @staticmethod + def _init(): + if RabByungMonth._IS_INIT: + return + + years: List[str] = "2c>,182[>1:2TA4ZI=n1E2Bk1J2Ff3Mk503Oc62g=,172^>1:2XA1>2UE2Bo1I2Fj3Lo62Fb3Mf5,03N^72b=1:2]A1>2ZF1B2VI2Em1K2Fe,2Lh1R3Na603P\\:172Y>1;2UB2=m2Dq1J2Eh,2Kl1Q3Me603Pa:172^>1;2YA2=p1C2UI,2Dk2Jp3QEc3Mi603Pf:3L[72b?1:2]A1<2UB2XH,2Cn1I2Ei1L2Ie1Q3Na703Q\\:2`@1;2XA,4\\H;m1B2TI2Em1L2Ij1Q3Nf603Q`903QW:,2[@1;2TB2XI1E4TMAh2Io3RFe3Mj603Pc803Q[;,2^?1;2WA2>q1E2Bm1I2Fi1M2Hc3Of70,3P^82a>1:2[A1>2WE1B2TI2Fm1L2Hf3Ni6,03Oa703PZ:3`A62V>4]F;q1B4YJ>l2Eq1L2Gi3Ml5,03Nd603Q_9172[>1;2XB2>p1E2VK2Fl,1K2Fc3Mh603Pc9172`>1;2\\B1>2UD2=j2En,1J2Fg3Mm62Ib3Pj;3M_703R[:2`B1=2YB2=n,1C2TI2Fk1L2Ig1P3Nd703Q_:152X<2[A,2o1E2Bk1I2Fh1M2Ib3Pf803R^9,2a?1;2ZA1>2UE2Bp1I2Fl1M2If3Oi80,3Pa803QY:2^A1>2ZE1B4WJ>j2Fp1M2Hi1N2H`,3Od703Q]:162Y>1;2VB2?o1E4VM@h2Gl1M,2Hd3Ng603Qa9172^>1;2ZB1?2UE2@l2Fo1L,2Gg3Mk62H`3Pf:172c?3QY;2_B1>2YD2?o1E,2TK2Fj1M2Ie1P3Mb703R^;172X=2\\C1>,2TD2WJ2Fn1L2Ij1P3Ng703Rb:162[<2_B1=,2VC2>m1E4TMAh2Io3QFe3Nl82Ja3Qf:152_;0,3RU<2ZB1>2TE2Bn1I2Fj1M2Je3Pk:2K^3Ra:,03RY;2]A1>2XE1B2TI2Fo1M2Ii1P2Ka3Qd8,03R]:3bB62W>4]F:q1B2?n1F4VNAh2Il1O2Jd,3Pg803Q`:162\\=1;2XB1?2TF2Bl2Ho1N,2Ig3Nk703Qd9162`>1;2]B1?2XE2Ao1G2TM,2Hj1M2Id1P3M_603R\\;172W>2\\E1@2TE,2?i2Gm1M2Ih1P3Md603Ra;172[=28q1?2WD,2?m2Fq1M2Il1P3Mi72I^3Re:162_<172W=,2ZC2?q1E2Bk1I2Fh1M2Jd1Q3M^52b;16,2Y<2]B1>2VE2Bp1I2Fm1M2Jh1Q2Lb3Re:15,2\\;3aC62U>2[E1B4WJ>k1F4TNBg2Jl1P2Le3Qh9,03R`:172Z=1:2VB2?q1F2Bk2Ip1P2Jg,1P2J_3Qc:162^=1;2[B1?2WF2Bo1H2Bg2Ij,1O2Jc3Qg:3L\\62c>3QY;3aC72V?2[F1A2TG2Bj,2Hm1N2Jg1P3Mb603R_;182Z>1:2T@2WF2Am,2Gp1M2Ik1P3Mg603Rc;172^>192W?2ZE,2@p1F2Bj2Io3QEe1M2Jb1Q3M]72b=182Z>,2]D1?2VE2Bn1I2Fk1M2Jg1Q3Ma62e<172]=,172U>2YE1B2UI2Fp1N2Jk1Q3Me503M\\6,2`<172Y>3_F:2TB2?n1F2Cj2Jo3QDc2Lh1R,3L_52c;172]=1:2XB1?2UF2Cn1I2Eg2Kk1P,2Lb3Rf;162a=1:2]B1?2ZF1B2TH2Dj2Jm,1O2Kf1Q3M`603Q\\;182Y?2;q1A2WH2Cm,2Hq1O2Ji1P3Me603Qa;182]>1:2WA2[G2Ap,1G2Bi2Im1P3Mi72I_3Qf;3N\\72Eh1:2Z?29o,1@2UF2Bm1I2Fh1M2Je1Q3N`72f?3PY92]>19,2U?2YF2Bq1I2Fm1M2Jj1Q3Nd603O]72`=,182X?4]F:o1B4WI=k1F4UNCi2Jn3REc3Mh503N`6,2c<182\\>1:2VA2?q1F2Cm1J2Fg2Lk1R3Mc5,2f<172`=1:2[A1?2XF2Cq1I2Ek2Kn1R,2Lf1R3N_62d>3PZ:3aC72W?2;p1B2WI2Dn1J,2De2Ki1Q3Mc603Q_:182\\?1;2VB2,192[?1;2UA2>o1F2Ck1J2Gg3Mk603Oc70,3OZ82_>1:2YA1?2VF2Cp1J2Fj1M2Gc3Nf5,03O^72b>1:2^B1?4[G;n1C2VJ2Fn1L2Gf,3Mi503Nb603Q]:172Y?1<2UB2>m2Eq1K2Fi,2Kl1R3Mf603Qa:182^?1;2YB2>q1D2VJ,2Dl1J2Fe3Mj603Qg;3N]72c@3QX;2]A1=2VB,2YI2Co1J2Fi1M2Je1Q3Nb703R]:2aA1<2XA,2l1E4UNBi1J2Ge3Mk703Pc803Q[9,2^?1;2XB2>q1E2Cn1J2Gj1M2Ic3Of70,3P^82b?1;2\\A1>2XF1C2UJ2Fm1M2Hf3Ni6,03Oa703Q[:3aB72W>1<2TC2?m2Fq1L2Gi3Ml5,03Ne703Q_:172\\>1<2XB2?q1E2WL2Fl,1L2Gd3Ni603Qd:172a?1;2\\B1>2VD2>k,2Eo1K2Gh1M2Ic1Q3N`703R\\;3aC62U=2YC2>o,1D2TJ2Fl1M2Jh1Q3Ne703R`:162Y<2\\B,1=2TC4XJ=j2Fp1M2Jm3QFc3Ni803Qc:152\\;2_A,1<2WB2>o1E2Bl1J2Gh1N2Jc3Qg903R^:,2b@1;2[B1>2VE2Cq1J2Gl1N2Jf3Pj80,3Qa803RZ;2_B1>4[F:o1C4XK?k2Fp1M2Ii1O2Ia,3Pd703R^:172Y>1<2VC2?p1F2Ai2Hl1M,2Hd3Oh703Qb:172^>1<2[C1?2UE2Al2Go,1L2Hg3Nl82Ia3Qg;3M]72e@3RZ;3`C72T>2YD2@o1E,2TK2Gk1M2Jf1Q3Nb703R^;172Y=2\\D1>,2TD4XK>i2Fo1M2Jj1Q3Ng703Rb;172\\<2`C1=,2WC2?n1F4VNBi1J2Gf1N2Kb3Rf:162_;15,2V<2ZB1?2TE2Bn1J2Gk1N2Kf1Q2L^3Rb:,152Z;2^B1>2YE1B2UJ2Go1N2Ji1P2Kb3Qd9,03R];172X>1;2TC2@n1G2Bi2Im1O2Jd,3Ph803Ra:172\\>1;2YC1@2UF2Bl2Hp1N,2Ig3Ol82J`3Qe:172a>1;4^C7q1?2XF2Ao1G2UN,2Hj1N2Jd1Q3N`703R];182X>2]F1@2TF,2@j2Gn1M2Jq1Q3Ne703Ra;172\\>192T?,2WE2@m1F4TMAf2Im3QEc3Nj82J`3Rf;172_=182W>,2ZD2?q1F2Bl1I2Gj1N2Ke1R3M_62b<17,2Z=2]C1?2WE2Bq1I2Gn1N2Ki1Q3Mb52e;16,2]<172V>4[F:o1B4XK?l1G4UOCh2Jl1Q2Le3Rh:,152`;172Z>1;2WB2@q1G2Cl2Ip1P2K_".split(',') + + y: int = 1950 + m: int = 11 + for ys in years: + data: str = ys.strip() + while data: + length: int = ord(data[0]) - 48 + chunk: str = data[1:1+length] + data: str = data[1+length:] + days_data: List[int] = [ord(c) - 53 - 30 for c in chunk] + RabByungMonth.DAYS[y * 13 + m] = days_data + m += 1 + y += 1 + m = 0 + RabByungMonth._IS_INIT = True + + def __init__(self, year: int, month: int): + RabByungMonth._init() + RabByungMonth.validate(year, month) + super().__init__(year, abs(month)) + self._leap = month < 0 + + @staticmethod + def validate(year: int, month: int) -> None: + if month == 0 or month > 12 or month < -12: + raise ValueError(f'illegal rab-byung month: {month}') + if year < 1950 or year > 2050: + raise ValueError(f'rab-byung year {year} must between 1950 and 2050') + leap: bool = month < 0 + m: int = abs(month) + if year == 1950 and m < 12: + raise ValueError(f'month {month} must be 12 in rab-byung year {year}') + if leap and m != RabByungYear.from_year(year).get_leap_month(): + raise ValueError(f'illegal leap month {m} in rab-byung year {year}') + + @classmethod + def from_ym(cls, year: int, month: int) -> RabByungMonth: + return cls(year, month) + + def get_rab_byung_year(self) -> RabByungYear: + return RabByungYear.from_year(self._year) + + def get_month_with_leap(self) -> int: + return -self._month if self._leap else self._month + + def get_index_in_year(self) -> int: + index: int = self._month - 1 + if self._leap: + index += 1 + else: + leap_month: int = self.get_rab_byung_year().get_leap_month() + if 0 < leap_month < self._month: + index += 1 + return index + + def is_leap(self) -> bool: + return self._leap + + def get_name(self) -> str: + return ('闰' if self._leap else '') + LunarMonth.NAMES[self._month - 1] + + def get_alias(self) -> str: + return ('闰' if self._leap else '') + self.ALIAS[self._month - 1] + + def next(self, n: int) -> RabByungMonth: + if n == 0: + return RabByungMonth.from_ym(self.get_year(), self.get_month_with_leap()) + m: int = self.get_index_in_year() + 1 + n + y: RabByungYear = self.get_rab_byung_year() + if n > 0: + month_count: int = y.get_month_count() + while m > month_count: + m -= month_count + y = y.next(1) + month_count = y.get_month_count() + else: + while m <= 0: + y = y.next(-1) + m += y.get_month_count() + + leap: bool = False + leap_month: int = y.get_leap_month() + if leap_month > 0: + if m == leap_month + 1: + leap = True + if m > leap_month: + m -= 1 + return RabByungMonth(y.get_year(), -m if leap else m) + + def get_first_day(self) -> RabByungDay: + return RabByungDay(self._year, self.get_month_with_leap(), 1) + + def get_days(self) -> List[RabByungDay]: + days: List[RabByungDay] = [] + miss_days: List[int] = self.get_miss_days() + leap_days: List[int] = self.get_leap_days() + m: int = self.get_month_with_leap() + for day in range(1, 31): + if day in miss_days: + continue + days.append(RabByungDay(self._year, m, day)) + if day in leap_days: + days.append(RabByungDay(self._year, m, -day)) + return days + + def get_day_count(self) -> int: + return 30 + len(self.get_leap_days()) - len(self.get_miss_days()) + + def get_special_days(self) -> List[int]: + return self.DAYS.get(self.get_year() * 13 + self.get_index_in_year(), []) + + def get_leap_days(self) -> List[int]: + return [d for d in self.get_special_days() if d > 0] + + def get_miss_days(self) -> List[int]: + return [-d for d in self.get_special_days() if d < 0] + + def __str__(self) -> str: + return f'{self.get_rab_byung_year()}{self.get_name()}' + + +class RabByungDay(DayUnit): + """藏历日,仅支持藏历1950年十二月初一(公历1951年1月8日)至藏历2050年十二月三十(公历2051年2月11日)""" + NAMES: List[str] = ['初一', '初二', '初三', '初四', '初五', '初六', '初七', '初八', '初九', '初十', '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '二十', '廿一', '廿二', '廿三', '廿四', '廿五', '廿六', '廿七', '廿八', '廿九', '三十'] + + def __init__(self, year: int, month: int, day: int): + RabByungDay.validate(year, month, day) + super().__init__(year, month, abs(day)) + self._leap = day < 0 + + @staticmethod + def validate(year: int, month: int, day: int) -> None: + if day == 0 or day < -30 or day > 30: + raise ValueError(f'illegal day {day} in {month}') + m: RabByungMonth = RabByungMonth.from_ym(year, month) + leap: bool = day < 0 + d = abs(day) + if leap and d not in m.get_leap_days(): + raise ValueError(f'illegal leap day {d} in {m}') + if not leap and d in m.get_miss_days(): + raise ValueError(f'illegal day {d} in {m}') + + @classmethod + def from_ymd(cls, year: int, month: int, day: int) -> RabByungDay: + return cls(year, month, day) + + @classmethod + def from_solar_day(cls, solar_day: SolarDay) -> RabByungDay: + from tyme4py.solar import SolarDay + days: int = solar_day.subtract(SolarDay.from_ymd(1951, 1, 8)) + m: RabByungMonth = RabByungMonth.from_ym(1950, 12) + count: int = m.get_day_count() + while days >= count: + days -= count + m = m.next(1) + count = m.get_day_count() + day: int = days + 1 + for d in m.get_special_days(): + if d < 0: + if day >= -d: + day += 1 + elif d > 0: + if day == d + 1: + day = -d + break + elif day > d + 1: + day -= 1 + return RabByungDay(m.get_year(), m.get_month_with_leap(), day) + + def get_rab_byung_month(self) -> RabByungMonth: + return RabByungMonth.from_ym(self._year, self._month) + + def is_leap(self) -> bool: + return self._leap + + def get_day_with_leap(self) -> int: + return -self._day if self._leap else self._day + + def get_name(self) -> str: + return ('闰' if self._leap else '') + self.NAMES[self._day - 1] + + def subtract(self, target: RabByungDay) -> int: + return self.get_solar_day().subtract(target.get_solar_day()) + + def get_solar_day(self) -> SolarDay: + from tyme4py.solar import SolarDay + month: RabByungMonth = RabByungMonth.from_ym(1950, 12) + cm: RabByungMonth = self.get_rab_byung_month() + total_days: int = 0 + + # 计算从1950年12月到当前月的总天数 + while month != cm: + total_days += month.get_day_count() + month = month.next(1) + + day_num: int = self._day + for d in month.get_special_days(): + if d < 0: + if day_num > -d: + day_num -= 1 + elif d > 0: + if day_num > d: + day_num += 1 + + if self._leap: + day_num += 1 + + return SolarDay.from_ymd(1951, 1, 7).next(total_days + day_num) + + def next(self, n: int) -> RabByungDay: + return self.get_solar_day().next(n).get_rab_byung_day() + + def __str__(self) -> str: + return f'{self.get_rab_byung_month()}{self.get_name()}' diff --git a/vendor/tyme4py/sixtycycle/__init__.py b/vendor/tyme4py/sixtycycle/__init__.py new file mode 100644 index 0000000..1327a69 --- /dev/null +++ b/vendor/tyme4py/sixtycycle/__init__.py @@ -0,0 +1,919 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from math import floor, ceil +from typing import TYPE_CHECKING, Union, List + +from tyme4py import LoopTyme, AbstractCulture, AbstractCultureDay, AbstractTyme +from tyme4py.culture import Element, Direction, Zodiac, Terrain, Sound, Ten, Twenty, Duty, God, Taboo +from tyme4py.culture.fetus import FetusDay +from tyme4py.culture.pengzu import PengZuEarthBranch, PengZuHeavenStem, PengZu +from tyme4py.culture.star.nine import NineStar +from tyme4py.culture.star.ten import TenStar +from tyme4py.culture.star.twelve import TwelveStar +from tyme4py.eightchar import EightChar +from tyme4py.enums import YinYang, HideHeavenStemType + +if TYPE_CHECKING: + from tyme4py.solar import SolarDay, SolarTime + from tyme4py.culture.star.twentyeight import TwentyEightStar + + +class ThreePillars(AbstractCulture): + """三柱""" + + def __init__(self, year: Union[SixtyCycle, str], month: Union[SixtyCycle, str], day: Union[SixtyCycle, str]): + """ + :param year: 年干支 + :param month: 月干支 + :param day: 日干支 + """ + self._year = year if isinstance(year, SixtyCycle) else SixtyCycle(year) + self._month = month if isinstance(month, SixtyCycle) else SixtyCycle(month) + self._day = day if isinstance(day, SixtyCycle) else SixtyCycle(day) + + def get_year(self) -> SixtyCycle: + """ + 年柱 + :return: 干支 SixtyCycle + """ + return self._year + + def get_month(self) -> SixtyCycle: + """ + 月柱 + :return: 干支 SixtyCycle + """ + return self._month + + def get_day(self) -> SixtyCycle: + """ + 日柱 + :return: 干支 SixtyCycle + """ + return self._day + + def get_name(self) -> str: + return f'{self._year} {self._month} {self._day}' + + def get_solar_days(self, start_year: int, end_year: int) -> List[SolarDay]: + """ + 三柱转公历日列表 + :param start_year: 开始年份,支持1-9999年 + :param end_year: 结束年份,支持1-9999年 + :return: 公历日 SolarDay的列表 + """ + from tyme4py.solar import SolarDay, SolarTerm + l: List[SolarDay] = [] + # 月地支距寅月的偏移值 + m: int = self._month.get_earth_branch().next(-2).get_index() + # 月天干要一致 + if not HeavenStem((self._year.get_heaven_stem().get_index() + 1) * 2 + m) == self._month.get_heaven_stem(): + return l + + # 1年的立春是辛酉,序号57 + y: int = self._year.next(-57).get_index() + 1 + # 节令偏移值 + m *= 2 + base_year: int = start_year - 1 + if base_year > y: + y += 60 * int(ceil((base_year - y) / 60.0)) + + while y <= end_year: + # 立春为寅月的开始 + term: SolarTerm = SolarTerm(y, 3) + # 节令推移,年干支和月干支就都匹配上了 + if m > 0: + term = term.next(m) + + solar_day: SolarDay = term.get_solar_day() + if solar_day.get_year() >= start_year: + # 日干支和节令干支的偏移值 + d: int = self._day.next(-solar_day.get_lunar_day().get_sixty_cycle().get_index()).get_index() + if d > 0: + # 从节令推移天数 + solar_day = solar_day.next(d) + + # 验证一下 + if solar_day.get_sixty_cycle_day().get_three_pillars() == self: + l.append(solar_day) + y += 60 + return l + + +class EarthBranch(LoopTyme): + """地支(地元)""" + NAMES: List[str] = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> EarthBranch: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> EarthBranch: + return cls(index) + + def next(self, n: int) -> EarthBranch: + return EarthBranch(self.next_index(n)) + + def get_element(self) -> Element: + """ + :return:五行 + """ + return Element([4, 2, 0, 0, 2, 1, 1, 2, 3, 3, 2, 4][self.get_index()]) + + def get_yin_yang(self) -> YinYang: + """ + :return:阴阳 + """ + return YinYang.YANG if self.get_index() % 2 == 0 else YinYang.YIN + + def get_hide_heaven_stem_main(self) -> HeavenStem: + """ + 藏干之本气(主气) + :return: 天干 HeavenStem + """ + return HeavenStem([9, 5, 0, 1, 4, 2, 3, 5, 6, 7, 4, 8][self.get_index()]) + + def get_hide_heaven_stem_middle(self) -> Union[HeavenStem, None]: + """ + 藏干之中气,无中气的返回None + :return: 天干 HeavenStem + """ + n: int = [-1, 9, 2, -1, 1, 6, 5, 3, 8, -1, 7, 0][self.get_index()] + return None if n == -1 else HeavenStem(n) + + def get_hide_heaven_stem_residual(self) -> Union[HeavenStem, None]: + """ + 藏干之余气,无余气的返回None + :return: 天干 HeavenStem + """ + n: int = [-1, 7, 4, -1, 9, 4, -1, 1, 4, -1, 3, -1][self.get_index()] + return None if n == -1 else HeavenStem(n) + + def get_hide_heaven_stems(self) -> List[HideHeavenStem]: + """ + :return: 藏干列表 + """ + l: List[HideHeavenStem] = [HideHeavenStem(self.get_hide_heaven_stem_main(), HideHeavenStemType.MAIN)] + o: Union[HeavenStem, None] = self.get_hide_heaven_stem_middle() + if o: + l.append(HideHeavenStem(o, HideHeavenStemType.MIDDLE)) + o = self.get_hide_heaven_stem_residual() + if o: + l.append(HideHeavenStem(o, HideHeavenStemType.RESIDUAL)) + return l + + def get_zodiac(self) -> Zodiac: + """ + 生肖属相 + :return:生肖 Zodiac + """ + return Zodiac(self.get_index()) + + def get_direction(self) -> Direction: + """ + :return: 方位 Direction + """ + return Direction([0, 4, 2, 2, 4, 8, 8, 4, 6, 6, 4, 0][self.get_index()]) + + def get_opposite(self) -> EarthBranch: + """ + 六冲 + 子午冲,丑未冲,寅申冲,辰戌冲,卯酉冲,巳亥冲。 + :return: 地支 EarthBranch + """ + return self.next(6) + + def get_ominous(self) -> Direction: + """ + 煞 + 逢巳日、酉日、丑日必煞东; + 亥日、卯日、未日必煞西; + 申日、子日、辰日必煞南; + 寅日、午日、戌日必煞北。 + :return: 方位 Direction + """ + return Direction([8, 2, 0, 6][self.get_index() % 4]) + + def get_peng_zu_earth_branch(self) -> PengZuEarthBranch: + """ + :return: 地支彭祖百忌 PengZuEarthBranch + """ + return PengZuEarthBranch(self.get_index()) + + def get_combine(self) -> EarthBranch: + """ + 六合(子丑合,寅亥合,卯戌合,辰酉合,巳申合,午未合) + :return: 地支 EarthBranch + """ + return EarthBranch(1 - self.get_index()) + + def get_harm(self) -> EarthBranch: + """ + 六害(子未害、丑午害、寅巳害、卯辰害、申亥害、酉戌害) + :return: 地支 EarthBranch + """ + return EarthBranch(19 - self.get_index()) + + def combine(self, target: EarthBranch) -> Union[Element, None]: + """ + 合化 + 子丑合化土,寅亥合化木,卯戌合化火,辰酉合化金,巳申合化水,午未合化火 + :param target: 地支 EarthBranch + :return: 能合化则返回五行属性,不能合化则返回None + """ + return Element([2, 2, 0, 1, 3, 4, 2, 2, 4, 3, 1, 0][self.get_index()]) if self.get_combine() == target else None + + +class HeavenStem(LoopTyme): + """天干(天元)""" + NAMES: List[str] = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> HeavenStem: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> HeavenStem: + return cls(index) + + def next(self, n: int) -> HeavenStem: + return HeavenStem(self.next_index(n)) + + def get_element(self) -> Element: + """ + 五行 + :return: 五行 + """ + return Element(self.get_index() // 2) + + def get_yin_yang(self) -> YinYang: + """ + :return: 阴阳 + """ + return YinYang.YANG if self.get_index() % 2 == 0 else YinYang.YIN + + def get_ten_star(self, target: HeavenStem) -> TenStar: + """ + 十神(生我者,正印偏印。我生者,伤官食神。克我者,正官七杀。我克者,正财偏财。同我者,劫财比肩。) + :param target: 天干 + :return:十神 + """ + target_index: int = target.get_index() + offset: int = target_index - self.get_index() + if self.get_index() % 2 != 0 and target_index % 2 == 0: + offset += 2 + return TenStar(offset) + + def get_direction(self) -> Direction: + """ + :return: 方位 + """ + return self.get_element().get_direction() + + def get_joy_direction(self) -> Direction: + """ + 喜神方位(《喜神方位歌》甲己在艮乙庚乾,丙辛坤位喜神安。丁壬只在离宫坐,戊癸原在在巽间。) + :return: 方位 + """ + return Direction([7, 5, 1, 8, 3][self.get_index() % 5]) + + def get_yang_direction(self) -> Direction: + """ + 阳贵神方位(《阳贵神歌》甲戊坤艮位,乙己是坤坎,庚辛居离艮,丙丁兑与乾,震巽属何日,壬癸贵神安。) + :return: 方位 + """ + return Direction([1, 1, 6, 5, 7, 0, 8, 7, 2, 3][self.get_index()]) + + def get_yin_direction(self) -> Direction: + """ + 阴贵神方位(《阴贵神歌》甲戊见牛羊,乙己鼠猴乡,丙丁猪鸡位,壬癸蛇兔藏,庚辛逢虎马,此是贵神方。) + :return: 方位 + """ + return Direction([7, 0, 5, 6, 1, 1, 7, 8, 3, 2][self.get_index()]) + + def get_wealth_direction(self) -> Direction: + """ + 财神方位(《财神方位歌》甲乙东北是财神,丙丁向在西南寻,戊己正北坐方位,庚辛正东去安身,壬癸原来正南坐,便是财神方位真。) + :return:方位 + """ + return Direction([7, 1, 0, 2, 8][self.get_index() // 2]) + + def get_mascot_direction(self) -> Direction: + """ + 福神方位(《福神方位歌》甲乙东南是福神,丙丁正东是堪宜,戊北己南庚辛坤,壬在乾方癸在西。) + :return:方位 + """ + return Direction([3, 3, 2, 2, 0, 8, 1, 1, 5, 6][self.get_index()]) + + def get_peng_zu_heaven_stem(self) -> PengZuHeavenStem: + """ + :return:天干彭祖百忌 + """ + return PengZuHeavenStem(self.get_index()) + + def get_terrain(self, earth_branch: EarthBranch) -> Terrain: + """ + 长生十二神(地势) + 长生十二神可通过不同的组合,得到自坐和星运 + :param: 地支 + :return:地势(长生十二神) + """ + earth_branch_index: int = earth_branch.get_index() + return Terrain([1, 6, 10, 9, 10, 9, 7, 0, 4, 3][self.get_index()] + (earth_branch_index if YinYang.YANG == self.get_yin_yang() else -earth_branch_index)) + + def get_combine(self) -> HeavenStem: + """ + 天干五合(甲己合,乙庚合,丙辛合,丁壬合,戊癸合) + :return: 天干 + """ + return self.next(5) + + def combine(self, target: HeavenStem) -> Element: + """ + 合化(甲己合化土 乙庚合化金 丙辛合化水 丁壬合化木 戊癸合化火) + :param target: 天干 + :return: 能合化则返回五行属性,不能合化则返回None + """ + return Element(self.get_index() + 2) if self.get_combine() == target else None + + +class HideHeavenStem(AbstractCulture): + """藏干(即人元,司令取天干,分野取天干的五行)""" + + def __init__(self, heaven_stem: Union[HeavenStem, str, int], hide_heaven_stem_type: HideHeavenStemType): + if isinstance(heaven_stem, int) or isinstance(heaven_stem, str): + self._heaven_stem = HeavenStem(heaven_stem) + else: + self._heaven_stem = heaven_stem + self._type = hide_heaven_stem_type + + def get_name(self) -> str: + return self._heaven_stem.get_name() + + def get_heaven_stem(self) -> HeavenStem: + """ + 天干 + :return: 天干 + """ + return self._heaven_stem + + def get_type(self) -> HideHeavenStemType: + """ + 藏干类型 + :return: 藏干类型 + """ + return self._type + + +class HideHeavenStemDay(AbstractCultureDay): + """人元司令分野(地支藏干+天索引)""" + + def __init__(self, hide_heaven_stem: HideHeavenStem, day_index: int): + super().__init__(hide_heaven_stem, day_index) + + def get_hide_heaven_stem(self) -> HideHeavenStem: + """ + :return: 藏干 + """ + return self.get_culture() + + def get_name(self) -> str: + heaven_stem: HeavenStem = self.get_hide_heaven_stem().get_heaven_stem() + return f'{heaven_stem.get_name()}{heaven_stem.get_element().get_name()}' + + +class SixtyCycle(LoopTyme): + """六十甲子(六十干支周)""" + _NAMES: List[str] = ['甲子', '乙丑', '丙寅', '丁卯', '戊辰', '己巳', '庚午', '辛未', '壬申', '癸酉', '甲戌', '乙亥', '丙子', '丁丑', '戊寅', '己卯', '庚辰', '辛巳', '壬午', '癸未', '甲申', '乙酉', '丙戌', '丁亥', '戊子', '己丑', '庚寅', '辛卯', '壬辰', '癸巳', '甲午', '乙未', '丙申', '丁酉', '戊戌', '己亥', '庚子', '辛丑', '壬寅', '癸卯', '甲辰', '乙巳', '丙午', '丁未', '戊申', '己酉', '庚戌', '辛亥', '壬子', '癸丑', '甲寅', '乙卯', '丙辰', '丁巳', '戊午', '己未', '庚申', '辛酉', '壬戌', '癸亥'] + """名称""" + + def __init__(self, index_or_name: Union[int, str]): + super().__init__(self._NAMES, index_or_name) + + @classmethod + def from_name(cls, name: str) -> SixtyCycle: + return cls(name) + + @classmethod + def from_index(cls, index: int) -> SixtyCycle: + return cls(index) + + def next(self, n: int) -> SixtyCycle: + return SixtyCycle(self.next_index(n)) + + def get_heaven_stem(self) -> HeavenStem: + """ + 天干 + :return: 天干 + """ + return HeavenStem(self.get_index() % 10) + + def get_earth_branch(self) -> EarthBranch: + """ + 地支 + :return: 地支 + """ + return EarthBranch(self.get_index() % 12) + + def get_sound(self) -> Sound: + """ + 纳音 + :return: 纳音 + """ + return Sound(self.get_index() // 2) + + def get_peng_zu(self) -> PengZu: + """ + 彭祖百忌 + :return: 彭祖百忌 + """ + return PengZu(self) + + def get_ten(self) -> Ten: + """ + 旬 + :return: 旬 + """ + return Ten((self.get_heaven_stem().get_index() - self.get_earth_branch().get_index()) // 2) + + def get_extra_earth_branches(self) -> List[EarthBranch]: + """ + 旬空(空亡),因地支比天干多2个,旬空则为每一轮干支一一配对后多出来的2个地支 + :return: 旬空(空亡) + """ + earth_branch: EarthBranch = EarthBranch(10 + self.get_earth_branch().get_index() - self.get_heaven_stem().get_index()) + return [earth_branch, earth_branch.next(1)] + + +class SixtyCycleYear(AbstractTyme): + """ + 干支年 + """ + + def __init__(self, year: int): + if year < -1 or year > 9999: + raise ValueError(f'illegal sixty cycle year: {year}') + self._year = year + + @classmethod + def from_year(cls, year: int) -> SixtyCycleYear: + return cls(year) + + def get_year(self) -> int: + """ + 年 + :return: 干支年数字,范围为-1到9999 + """ + return self._year + + def get_name(self) -> str: + """ + :return: {六十甲子}年 + """ + return f'{self.get_sixty_cycle().get_name()}年' + + def next(self, n: int) -> SixtyCycleYear: + return SixtyCycleYear(self._year + n) + + def get_sixty_cycle(self) -> SixtyCycle: + """ + 干支 + :return: 干支 SixtyCycle + """ + return SixtyCycle(self._year - 4) + + def get_twenty(self) -> Twenty: + """ + 运 + :return: 运 Twenty + """ + return Twenty(floor((self._year - 1864) / 20)) + + def get_nine_star(self) -> NineStar: + """ + 九星 + :return: 九星 NineStar + """ + return NineStar(63 + self.get_twenty().get_sixty().get_index() * 3 - self.get_sixty_cycle().get_index()) + + def get_jupiter_direction(self) -> Direction: + """ + 太岁方位 + :return: 方位 Direction + """ + return Direction([0, 7, 7, 2, 3, 3, 8, 1, 1, 6, 0, 0][self.get_sixty_cycle().get_earth_branch().get_index()]) + + def get_first_month(self) -> SixtyCycleMonth: + """ + 首月(依据五虎遁和正月起寅的规律) + :return: 干支月 + """ + return SixtyCycleMonth(self, SixtyCycle.from_index(self._year * 12 - 46)) + + def get_months(self) -> List[SixtyCycleMonth]: + """ + 干支月列表 + :return: 干支月列表 + """ + l: List[SixtyCycleMonth] = [] + m: SixtyCycleMonth = self.get_first_month() + l.append(m) + for i in range(1, 12): + l.append(m.next(i)) + return l + + +class SixtyCycleMonth(AbstractTyme): + """干支月""" + + def __init__(self, year: SixtyCycleYear, month: SixtyCycle): + """ + :param year: 干支年 + :param month: 干支月 + """ + self._year = year + self._month = month + + @classmethod + def from_index(cls, year: int, index: int) -> SixtyCycleMonth: + return SixtyCycleYear.from_year(year).get_first_month().next(index) + + def get_sixty_cycle_year(self) -> SixtyCycleYear: + """ + 干支年 + :return: 干支年 + """ + return self._year + + def get_year(self) -> SixtyCycle: + """ + 年柱 + :return: 干支 + """ + return self._year.get_sixty_cycle() + + def get_sixty_cycle(self) -> SixtyCycle: + """ + 干支 + :return: 干支 + """ + return self._month + + def get_index_in_year(self) -> int: + """ + 位于当年的索引(0-11),寅月为0,依次类推 + :return: 数字,范围0到11,寅月为0,依次类推 + """ + return self._month.get_earth_branch().next(-2).get_index() + + def get_name(self) -> str: + """ + 名称 + :return: 名称 + """ + return f'{self._month}月' + + def __str__(self) -> str: + return f'{self._year}{self.get_name()}' + + def next(self, n: int) -> SixtyCycleMonth: + return SixtyCycleMonth(SixtyCycleYear.from_year((self._year.get_year()*12 + self.get_index_in_year() + n) // 12), self._month.next(n)) + + def get_first_day(self) -> SixtyCycleDay: + from tyme4py.solar import SolarTerm + return SixtyCycleDay.from_solar_day(SolarTerm.from_index(self._year.get_year(), 3+self.get_index_in_year()*2).get_solar_day()) + + def get_days(self) -> List[SixtyCycleDay]: + """ + 本月的干支日列表 + :return: 支日列表 + """ + l: List[SixtyCycleDay] = [] + d: SixtyCycleDay = self.get_first_day() + while d.get_sixty_cycle_month() == self: + l.append(d) + d = d.next(1) + return l + + def get_nine_star(self) -> NineStar: + """ + :return: 九星 NineStar + """ + index = self._month.get_earth_branch().get_index() + if index < 2: + index += 3 + return NineStar(27 - self.get_year().get_earth_branch().get_index() % 3 * 3 - index) + + def get_jupiter_direction(self) -> Direction: + """ + 太岁方位 + :return: 方位 Direction + """ + n: int = [7, -1, 1, 3][self._month.get_earth_branch().next(-2).get_index() % 4] + return self._month.get_heaven_stem().get_direction() if n == -1 else Direction(n) + + +class SixtyCycleDay(AbstractTyme): + """干支日""" + + def __init__(self, solar_day: SolarDay, month: SixtyCycleMonth, day: SixtyCycle): + """ + :param solar_day: 公历年 + :param month: 干支月 + :param day: 日柱 + """ + self._solar_day = solar_day + self._month = month + self._day = day + + @classmethod + def from_solar_day(cls, solar_day: SolarDay) -> SixtyCycleDay: + from tyme4py.solar import SolarTerm, SolarDay + term: SolarTerm = solar_day.get_term() + index: int = term.get_index() + offset: int = -1 + if index < 3: + if index == 0: + offset = -2 + else: + offset = (index - 3) // 2 + return cls(solar_day, SixtyCycleYear.from_year(term.get_year()).get_first_month().next(offset), SixtyCycle.from_index(solar_day.subtract(SolarDay.from_ymd(2000, 1, 7)))) + + def get_solar_day(self) -> SolarDay: + """ + :return: 公历日 + """ + return self._solar_day + + def get_sixty_cycle_month(self) -> SixtyCycleMonth: + """ + :return: 干支月 + """ + return self._month + + def get_year(self) -> SixtyCycle: + """ + 年柱 + :return: 干支 + """ + return self._month.get_year() + + def get_month(self) -> SixtyCycle: + """ + 月柱 + :return: 干支 + """ + return self._month.get_sixty_cycle() + + def get_sixty_cycle(self) -> SixtyCycle: + """ + 干支 + :return: 干支 + """ + return self._day + + def get_name(self) -> str: + return f'{self._day}日' + + def __str__(self) -> str: + return f'{self._month}{self.get_name()}' + + def next(self, n: int) -> SixtyCycleDay: + return SixtyCycleDay.from_solar_day(self._solar_day.next(n)) + + def get_duty(self) -> Duty: + """ + 建除十二值神 + :return: 建除十二值神 Duty + """ + return Duty(self._day.get_earth_branch().get_index() - self.get_month().get_earth_branch().get_index()) + + def get_twelve_star(self) -> TwelveStar: + """ + 黄道黑道十二神 + :return: 黄道黑道十二神 TwelveStar + """ + return TwelveStar(self._day.get_earth_branch().get_index() + (8 - self.get_month().get_earth_branch().get_index() % 6) * 2) + + def get_nine_star(self) -> NineStar: + """ + 九星 + :return: 九星 NineStar + """ + return self._solar_day.get_nine_star() + + def get_jupiter_direction(self) -> Direction: + """ + 太岁方位 + :return: 方位 Direction + """ + index: int = self._day.get_index() + from tyme4py.culture import Element + return Element(index // 12).get_direction() if index % 12 < 6 else self._month.get_sixty_cycle_year().get_jupiter_direction() + + def get_fetus_day(self) -> FetusDay: + """ + 逐日胎神 + :return:逐日胎神 FetusDay + """ + return FetusDay.from_sixty_cycle_day(self) + + def get_twenty_eight_star(self) -> TwentyEightStar: + """ + 二十八宿 + :return: 二十八宿 TwentyEightStar + """ + from tyme4py.culture.star.twentyeight import TwentyEightStar + return TwentyEightStar(10 + 8 * self._solar_day.get_week().get_index()).next(-7 * self._day.get_earth_branch().get_index()) + + def get_gods(self) -> List[God]: + """ + 神煞列表(吉神宜趋,凶神宜忌) + :return: 神煞列表 + """ + return God.get_day_gods(self.get_month(), self._day) + + def get_recommends(self) -> List[Taboo]: + """ + 今日 宜 + :return: 宜忌列表 + """ + return Taboo.get_day_recommends(self.get_month(), self._day) + + def get_avoids(self) -> List[Taboo]: + """ + 今日 忌 + :return: 宜忌列表 + """ + return Taboo.get_day_avoids(self.get_month(), self._day) + + def get_hours(self) -> List[SixtyCycleHour]: + """ + 当天的干支时辰列表 + :return: 干支时辰列表 + """ + from tyme4py.solar import SolarDay, SolarTime + l: List[SixtyCycleHour] = [] + d: SolarDay = self._solar_day.next(-1) + t: SolarTime = SolarTime.from_ymd_hms(d.get_year(), d.get_month(), d.get_day(), 23, 0, 0) + h: SixtyCycleHour = SixtyCycleHour.from_solar_time(t) + l.append(h) + for i in range(0, 11): + h = h.next(7200) + l.append(h) + return l + + def get_three_pillars(self) -> ThreePillars: + return ThreePillars(self.get_year(), self.get_month(), self.get_sixty_cycle()) + + +class SixtyCycleHour(AbstractTyme): + """干支时辰""" + + def __init__(self, solar_time: SolarTime): + from tyme4py.solar import SolarTerm, SolarTime + from tyme4py.lunar import LunarYear, LunarMonth, LunarDay, LunarHour + solar_year: int = solar_time.get_year() + spring_solar_time: SolarTime = SolarTerm.from_index(solar_year, 3).get_julian_day().get_solar_time() + lunar_hour: LunarHour = solar_time.get_lunar_hour() + lunar_day: LunarDay = lunar_hour.get_lunar_day() + lunar_year: LunarYear = lunar_day.get_lunar_month().get_lunar_year() + if lunar_year.get_year() == solar_year: + if solar_time.is_before(spring_solar_time): + lunar_year = lunar_year.next(-1) + elif lunar_year.get_year() < solar_year: + if not solar_time.is_before(spring_solar_time): + lunar_year = lunar_year.next(1) + + term: SolarTerm = solar_time.get_term() + index: int = term.get_index() - 3 + if index < 0 and term.get_julian_day().get_solar_time().is_after(SolarTerm.from_index(solar_year, 3).get_julian_day().get_solar_time()): + index += 24 + d: SixtyCycle = lunar_day.get_sixty_cycle() + if solar_time.get_hour() == 23: + d = d.next(1) + y: SixtyCycleYear = SixtyCycleYear.from_year(lunar_year.get_year()) + m: LunarMonth = LunarMonth.from_ym(solar_year, 1) + + self._solar_time = solar_time + self._day = SixtyCycleDay(solar_time.get_solar_day(), SixtyCycleMonth(y, m.get_sixty_cycle().next(int(floor(index * 0.5)))), d) + self._hour = lunar_hour.get_sixty_cycle() + + @classmethod + def from_solar_time(cls, solar_time: SolarTime) -> SixtyCycleHour: + return cls(solar_time) + + def get_year(self) -> SixtyCycle: + """ + 年柱 + :return: 干支 + """ + return self._day.get_year() + + def get_month(self) -> SixtyCycle: + """ + 月柱 + :return: 干支 + """ + return self._day.get_month() + + def get_day(self) -> SixtyCycle: + """ + 日柱 + :return: 干支 + """ + return self._day.get_sixty_cycle() + + def get_sixty_cycle(self) -> SixtyCycle: + """ + 干支 + :return: 干支 + """ + return self._hour + + def get_sixty_cycle_day(self) -> SixtyCycleDay: + """ + 干支日 + :return: 干支日 + """ + return self._day + + def get_solar_time(self) -> SolarTime: + """ + 公历时刻 + :return: 公历时刻 + """ + return self._solar_time + + def get_name(self) -> str: + return f'{self._hour}时' + + def __str__(self) -> str: + return f'{self._day}{self.get_name()}' + + def get_index_in_day(self) -> int: + """ + 位于当天的索引 + :return: 位于当天的索引 + """ + h: int = self._solar_time.get_hour() + if h == 23: + return 0 + return (h + 1) // 2 + + def next(self, n: int) -> SixtyCycleHour: + return SixtyCycleHour.from_solar_time(self._solar_time.next(n)) + + def get_twelve_star(self) -> TwelveStar: + """ + 黄道黑道十二神 + :return: 黄道黑道十二神 TwelveStar + """ + return TwelveStar(self._hour.get_earth_branch().get_index() + (8 - self.get_day().get_earth_branch().get_index() % 6) * 2) + + def get_nine_star(self) -> NineStar: + """ + 九星(时家紫白星歌诀:三元时白最为佳,冬至阳生顺莫差,孟日七宫仲一白,季日四绿发萌芽,每把时辰起甲子,本时星耀照光华,时星移入中宫去,顺飞八方逐细查。夏至阴生逆回首,孟归三碧季加六,仲在九宫时起甲,依然掌中逆轮跨。) + :return: 九星 NineStar + """ + from tyme4py.solar import SolarTerm, SolarDay + solar: SolarDay = self._solar_time.get_solar_day() + dong_zhi: SolarTerm = SolarTerm(solar.get_year(), 0) + earth_branch_index: int = self.get_index_in_day() % 12 + index: int = 8 - 3 * (self.get_day().get_earth_branch().get_index() % 3) + if (not solar.is_before(dong_zhi.get_julian_day().get_solar_day())) and solar.is_before(dong_zhi.next(12).get_julian_day().get_solar_day()): + index = 8 + earth_branch_index - index + else: + index -= earth_branch_index + return NineStar(index) + + def get_eight_char(self) -> EightChar: + """ + 八字 + :return: 八字 + """ + return EightChar(self.get_year(), self.get_month(), self.get_day(), self._hour) + + def get_recommends(self) -> List[Taboo]: + """ + 时辰 宜 + :return: 宜忌列表 + """ + return Taboo.get_hour_recommends(self.get_day(), self._hour) + + def get_avoids(self) -> List[Taboo]: + """ + 时辰 忌 + :return: 宜忌列表 + """ + return Taboo.get_hour_avoids(self.get_day(), self._hour) diff --git a/vendor/tyme4py/solar/__init__.py b/vendor/tyme4py/solar/__init__.py new file mode 100644 index 0000000..8afea11 --- /dev/null +++ b/vendor/tyme4py/solar/__init__.py @@ -0,0 +1,918 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from math import floor, ceil +from typing import TYPE_CHECKING, Union, List + +from tyme4py import LoopTyme, AbstractCultureDay +from tyme4py.culture import Week, Constellation, PhaseDay, Phase +from tyme4py.culture.dog import DogDay, Dog +from tyme4py.culture.nine import NineDay, Nine +from tyme4py.culture.phenology import PhenologyDay, Phenology +from tyme4py.culture.plumrain import PlumRainDay, PlumRain +from tyme4py.culture.star.nine import NineStar +from tyme4py.enums import HideHeavenStemType +from tyme4py.event import Event +from tyme4py.unit import YearUnit, MonthUnit, WeekUnit, DayUnit, SecondUnit +from tyme4py.util import ShouXingUtil +from tyme4py.jd import JulianDay +from tyme4py.festival import SolarFestival +from tyme4py.holiday import LegalHoliday + +if TYPE_CHECKING: + from tyme4py.lunar import LunarDay, LunarMonth, LunarHour + from tyme4py.sixtycycle import HideHeavenStemDay, SixtyCycleDay, SixtyCycleHour + from tyme4py.rabbyung import RabByungYear, RabByungDay + from tyme4py.hijri import HijriDay + + +class SolarTerm(LoopTyme): + """节气""" + NAMES: List[str] = ['冬至', '小寒', '大寒', '立春', '雨水', '惊蛰', '春分', '清明', '谷雨', '立夏', '小满', '芒种', '夏至', '小暑', '大暑', '立秋', '处暑', '白露', '秋分', '寒露', '霜降', '立冬', '小雪', '大雪'] + """名称""" + + def __init__(self, year: int, index_or_name: Union[int, str]): + super().__init__(self.NAMES, index_or_name) + y = year + if isinstance(index_or_name, int): + size = self.NAMES.__len__() + y = (year * size + index_or_name) // size + jd = floor((y - 2000) * 365.2422 + 180) + # 355对应2000.12冬至,计算粗略估计值 + w = floor((jd - 355 + 183) / 365.2422) * 365.2422 + 355 + if ShouXingUtil.calc_qi(w) > jd: + w -= 365.2422 + self._year = y + self._cursory_julian_day = ShouXingUtil.calc_qi(w + 15.2184 * self.get_index()) + + @classmethod + def from_index(cls, year: int, index: int) -> SolarTerm: + return cls(year, index) + + @classmethod + def from_name(cls, year: int, name: str) -> SolarTerm: + return cls(year, name) + + def next(self, n: int) -> SolarTerm: + size = self.get_size() + i = self.get_index() + n + return SolarTerm((self._year * size + i) // size, self._index_of_by(i)) + + def is_jie(self) -> bool: + """是否节令""" + return self._index % 2 == 1 + + def is_qi(self) -> bool: + """是否气令""" + return self._index % 2 == 0 + + def get_julian_day(self) -> JulianDay: + """ + 儒略日(精确到秒) + :return : 儒略日 + """ + return JulianDay.from_julian_day(ShouXingUtil.qi_accurate2(self._cursory_julian_day) + JulianDay.J2000) + + def get_solar_day(self) -> SolarDay: + """ + 公历日(用于日历) + @return: 公历日 + """ + return JulianDay.from_julian_day(self._cursory_julian_day + JulianDay.J2000).get_solar_day() + + def get_year(self) -> int: + return self._year + + def get_cursory_julian_day(self) -> float: + """ + 儒略日(用于日历,只精确到日中午12:00) + @return: 儒略日 + """ + return self._cursory_julian_day + + +class SolarTermDay(AbstractCultureDay): + """节气第几天""" + + def __init__(self, solar_term: SolarTerm, day_index: int): + super().__init__(solar_term, day_index) + + def get_solar_term(self) -> SolarTerm: + """ + :return: 节气 + """ + return self.get_culture() + + +class SolarYear(YearUnit): + """公历年""" + + def __init__(self, year: int): + SolarYear.validate(year) + super().__init__(year) + + @staticmethod + def validate(year: int) -> None: + if year < 1 or year > 9999: + raise ValueError(f'illegal solar year: {year}') + + @classmethod + def from_year(cls, year: int) -> SolarYear: + return cls(year) + + def get_day_count(self) -> int: + if self._year == 1582: + return 355 + return 366 if self.is_leap() else 365 + + def is_leap(self) -> bool: + if self._year < 1600: + return self._year % 4 == 0 + return (self._year % 4 == 0 and self._year % 100 != 0) or (self._year % 400 == 0) + + def get_name(self) -> str: + return f"{self._year}年" + + def next(self, n: int) -> SolarYear: + return SolarYear.from_year(self._year + n) + + def get_months(self) -> List[SolarMonth]: + return [SolarMonth.from_ym(self._year, month) for month in range(1, 13)] + + def get_seasons(self) -> List[SolarSeason]: + return [SolarSeason.from_index(self._year, i) for i in range(4)] + + def get_half_years(self) -> List[SolarHalfYear]: + return [SolarHalfYear.from_index(self._year, i) for i in range(2)] + + def get_rab_byung_year(self) -> RabByungYear: + from tyme4py.rabbyung import RabByungYear + return RabByungYear.from_year(self._year) + + +class SolarHalfYear(YearUnit): + """公历半年""" + NAMES: List[str] = ['上半年', '下半年'] + + @staticmethod + def validate(year: int, index: int) -> None: + if index < 0 or index > 1: + raise ValueError(f'illegal solar half year index: {index}') + SolarYear.validate(year) + + def __init__(self, year: int, index: int): + SolarHalfYear.validate(year, index) + super().__init__(year) + self._index = index + + @classmethod + def from_index(cls, year: int, index: int) -> SolarHalfYear: + return cls(year, index) + + def get_solar_year(self) -> SolarYear: + return SolarYear.from_year(self._year) + + def get_index(self) -> int: + return self._index + + def get_name(self) -> str: + return self.NAMES[self._index] + + def __str__(self) -> str: + return f'{self.get_solar_year()}{self.get_name()}' + + def next(self, n: int) -> SolarHalfYear: + i = self._index + n + return SolarHalfYear.from_index((self.get_year() * 2 + i) // 2, self.index_of(i, 2)) + + def get_months(self) -> List[SolarMonth]: + y = self.get_year() + return [SolarMonth.from_ym(y, self._index * 6 + i) for i in range(1, 7)] + + def get_seasons(self) -> List[SolarSeason]: + y = self.get_year() + return [SolarSeason.from_index(y, self._index * 2 + i) for i in range(2)] + + +class SolarSeason(YearUnit): + """公历季度""" + NAMES: List[str] = ['一季度', '二季度', '三季度', '四季度'] + + @staticmethod + def validate(year: int, index: int) -> None: + if index < 0 or index > 3: + raise ValueError(f'illegal solar season index: {index}') + SolarYear.validate(year) + + def __init__(self, year: int, index: int): + SolarSeason.validate(year, index) + super().__init__(year) + self._index = index + + @classmethod + def from_index(cls, year: int, index: int) -> SolarSeason: + return cls(year, index) + + def get_solar_year(self) -> SolarYear: + return SolarYear.from_year(self._year) + + def get_index(self) -> int: + return self._index + + def get_name(self) -> str: + return self.NAMES[self._index] + + def __str__(self) -> str: + return f'{self.get_solar_year()}{self.get_name()}' + + def next(self, n: int) -> SolarSeason: + i = self._index + n + return SolarSeason.from_index((self.get_year() * 4 + i) // 4, self.index_of(i, 4)) + + def get_months(self) -> List[SolarMonth]: + y = self.get_year() + return [SolarMonth.from_ym(y, self._index * 3 + i) for i in range(1, 4)] + + +class SolarMonth(MonthUnit): + """公历月""" + NAMES: List[str] = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'] + _DAYS: List[int] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] + """每月天数""" + + @staticmethod + def validate(year: int, month: int) -> None: + if month < 1 or month > 12: + raise ValueError(f'illegal solar month: {month}') + SolarYear.validate(year) + + def __init__(self, year: int, month: int): + """ + :param year: 年 + :param month: 月 + """ + SolarMonth.validate(year, month) + super().__init__(year, month) + + @classmethod + def from_ym(cls, year: int, month: int) -> SolarMonth: + return cls(year, month) + + def get_solar_year(self) -> SolarYear: + """ + :return: 公历年 + """ + return SolarYear.from_year(self._year) + + def get_day_count(self) -> int: + """ + 当月的总天数 + :return: 天数(1582年10月只有21天) + """ + if 1582 == self._year and 10 == self._month: + return 21 + d: int = self._DAYS[self.get_index_in_year()] + # 公历闰年2月多一天 + if 2 == self._month and self.get_solar_year().is_leap(): + d += 1 + return d + + def get_index_in_year(self) -> int: + """ + 位于当年的月索引 + :return: 位于当年的索引(0-11) + """ + return self._month - 1 + + def get_season(self) -> SolarSeason: + """ + :return: 公历季度 SolarSeason + """ + return SolarSeason(self._year, int(self.get_index_in_year() / 3)) + + def get_week_count(self, start: int) -> int: + """ + 当月有几周 + :param start:起始星期,1234560分别代表星期一至星期天 + :return:周数 + """ + return ceil((self.index_of(SolarDay(self._year, self._month, 1).get_week().get_index() - start, 7) + self.get_day_count()) / 7) + + def get_name(self) -> str: + return self.NAMES[self.get_index_in_year()] + + def __str__(self) -> str: + return f'{self.get_solar_year()}{self.get_name()}' + + def next(self, n: int) -> SolarMonth: + i: int = self._month - 1 + n + return SolarMonth((self._year * 12 + i) // 12, self.index_of(i, 12) + 1) + + def get_weeks(self, start: int) -> List[SolarWeek]: + """ + 本月的公历周列表 + :param start: 星期几作为一周的开始,1234560分别代表星期一至星期天 + :return: 周列表 + """ + l: List[SolarWeek] = [] + for i in range(0, self.get_week_count(start)): + l.append(SolarWeek(self._year, self._month, i, start)) + return l + + def get_days(self) -> List[SolarDay]: + """ + 本月的公历日列表 + :return: 公历日 SolarDay 的列表,从1日开始 + """ + l: List[SolarDay] = [] + for i in range(1, self.get_day_count()): + l.append(SolarDay(self._year, self._month, i)) + return l + + def get_first_day(self) -> SolarDay: + """ + 本月第一天 + :return: 公历日 SolarDay + """ + return SolarDay.from_ymd(self._year, self._month, 1) + + +class SolarWeek(WeekUnit): + """公历周""" + + @staticmethod + def validate(year: int, month: int, index: int, start: int) -> None: + WeekUnit.validate(year, month, index, start) + m: SolarMonth = SolarMonth(year, month) + if index >= m.get_week_count(start): + raise ValueError(f'illegal solar week index: {index} in month: {m}') + + def __init__(self, year: int, month: int, index: int, start: int): + """ + :param year: 年 + :param month: 月 + :param index: 索引,0-5 + :param start: 起始星期,1234560分别代表星期一至星期天 + """ + SolarWeek.validate(year, month, index, start) + super().__init__(year, month, index, start) + + @classmethod + def from_ym(cls, year: int, month: int, index: int, start: int) -> SolarWeek: + return cls(year, month, index, start) + + def get_solar_month(self) -> SolarMonth: + """ + :return: 公历月 + """ + return SolarMonth.from_ym(self._year, self._month) + + def get_index_in_year(self) -> int: + """ + 位于当年的索引 + :return: 索引 注意:索引值是从0开始,即0代表第一周 + """ + i: int = 0 + # 本周第1天 + first_day: SolarDay = self.get_first_day() + # 今年第1周 + w: SolarWeek = SolarWeek(self._year, 1, 0, self._start) + while not w.get_first_day() == first_day: + w = w.next(1) + i += 1 + return i + + def get_name(self) -> str: + return self.NAMES[self._index] + + def __str__(self) -> str: + return f'{self.get_solar_month()}{self.get_name()}' + + def next(self, n: int) -> SolarWeek: + d: int = self._index + n + m: SolarMonth = self.get_solar_month() + if n > 0: + week_count: int = m.get_week_count(self._start) + while d >= week_count: + d -= week_count + m = m.next(1) + if m.get_first_day().get_week().get_index() != self._start: + d += 1 + week_count = m.get_week_count(self._start) + elif n < 0: + while d < 0: + if m.get_first_day().get_week().get_index() != self._start: + d -= 1 + m = m.next(-1) + d += m.get_week_count(self._start) + return SolarWeek(m.get_year(), m.get_month(), d, self._start) + + def get_first_day(self) -> SolarDay: + """ + 本周第1天 + :return: 公历日 + """ + first_day: SolarDay = SolarDay(self._year, self._month, 1) + return first_day.next(self._index * 7 - self.index_of(first_day.get_week().get_index() - self._start, 7)) + + def get_days(self) -> List[SolarDay]: + """ + 本周公历日列表 + :return: 公历日列表 + """ + l: List[SolarDay] = [] + d: SolarDay = self.get_first_day() + l.append(d) + for i in range(1, 7): + l.append(d.next(i)) + return l + + def __eq__(self, o: SolarWeek) -> bool: + return o and o.get_first_day() == self.get_first_day() + + +class SolarDay(DayUnit): + """ + 公历日 + """ + NAMES: List[str] = ['1日', '2日', '3日', '4日', '5日', '6日', '7日', '8日', '9日', '10日', '11日', '12日', '13日', '14日', '15日', '16日', '17日', '18日', '19日', '20日', '21日', '22日', '23日', '24日', '25日', '26日', '27日', '28日', '29日', '30日', '31日'] + + @staticmethod + def validate(year: int, month: int, day: int) -> None: + if day < 1: + raise ValueError(f'illegal solar day: {year}-{month}-{day}') + if 1582 == year and 10 == month: + if (4 < day < 15) or day > 31: + raise ValueError(f'illegal solar day: {year}-{month}-{day}') + elif day > SolarMonth.from_ym(year, month).get_day_count(): + raise ValueError(f'illegal solar day: {year}-{month}-{day}') + + def __init__(self, year: int, month: int, day: int): + SolarDay.validate(year, month, day) + super().__init__(year, month, day) + + @classmethod + def from_ymd(cls, year: int, month: int, day: int) -> SolarDay: + return cls(year, month, day) + + def get_solar_month(self) -> SolarMonth: + """ + :return: 公历月 + """ + return SolarMonth.from_ym(self._year, self._month) + + def get_week(self) -> Week: + """ + :return: 星期 + """ + return self.get_julian_day().get_week() + + def get_constellation(self) -> Constellation: + """ + :return: 星座 Constellation + """ + m: int = self._month - 1 + offset: int = 1 if self._day > [19, 18, 20, 19, 20, 21, 22, 22, 22, 23, 22, 21][m] else 0 + return Constellation.from_index(9 + m + offset) + + def get_name(self) -> str: + return self.NAMES[self._day - 1] + + def __str__(self) -> str: + return f'{self.get_solar_month()}{self.get_name()}' + + def next(self, n: int) -> SolarDay: + return self.get_julian_day().next(n).get_solar_day() + + def is_before(self, target: SolarDay) -> bool: + """ + 是否在指定公历日之前 + :param target: 公历日 + :return: true/false + """ + y: int = target.get_year() + if self._year != y: + return self._year < y + m: int = target.get_month() + return self._month < m if self._month != m else self._day < target.get_day() + + def is_after(self, target: SolarDay) -> bool: + """ + 是否在指定公历日之后 + :param target: 公历日 + :return: true/false + """ + y: int = target.get_year() + if self._year != y: + return self._year > y + m: int = target.get_month() + return self._month > m if self._month != m else self._day > target.get_day() + + def get_term(self) -> SolarTerm: + """ + :return: 当天所在的节气 SolarTerm + """ + return self.get_term_day().get_solar_term() + + def get_term_day(self) -> SolarTermDay: + """ + :return: 节气第几天 + """ + y: int = self._year + i: int = self._month * 2 + if i == 24: + y += 1 + i = 0 + term: SolarTerm = SolarTerm(y, i + 1) + day: SolarDay = term.get_solar_day() + while self.is_before(day): + term = term.next(-1) + day = term.get_solar_day() + return SolarTermDay(term, self.subtract(day)) + + def get_solar_week(self, start: int) -> SolarWeek: + """ + 公历周 + :param start: 起始星期,1234560分别代表星期一至星期天 + :return: 公历周 + """ + return SolarWeek(self._year, self._month, ceil((self._day + SolarDay(self._year, self._month, 1).get_week().next(-start).get_index()) / 7.0) - 1, start) + + def get_phenology_day(self) -> PhenologyDay: + """ + 当天所在的七十二候 + :return: 七十二候 PhenologyDay + """ + d: SolarTermDay = self.get_term_day() + day_index: int = d.get_day_index() + index: int = day_index // 5 + if index > 2: + index = 2 + term: SolarTerm = d.get_solar_term() + return PhenologyDay(Phenology(term.get_year(), term.get_index() * 3 + index), day_index - index * 5) + + def get_phenology(self) -> Phenology: + """ + 当天所在的候 + :return: 候 Phenology + """ + return self.get_phenology_day().get_phenology() + + def get_dog_day(self) -> Union[DogDay, None]: + """ + 当天所在的三伏天 + :return: 三伏天 DogDay + """ + # 初伏,夏至后第3个庚日 + d0: SolarDay = Event.builder().term_heaven_stem(12, 6, 20).build().get_solar_day(self._year) + # 中伏,夏至后第4个庚日 + d1: SolarDay = Event.builder().term_heaven_stem(12, 6, 30).build().get_solar_day(self._year) + # 末伏,立秋后第1个庚日 + d2: SolarDay = Event.builder().term_heaven_stem(15, 6, 0).build().get_solar_day(self._year) + if self.is_before(d0) or self.is_after(d2.next(9)): + return None + if not self.is_before(d2): + return DogDay(Dog.from_index(2), self.subtract(d2)) + return DogDay(Dog.from_index(0), self.subtract(d0)) if self.is_before(d1) else DogDay(Dog.from_index(1), self.subtract(d1)) + + def get_plum_rain_day(self) -> Union[PlumRainDay, None]: + """ + 当天所在的梅雨天(芒种后的第1个丙日入梅,小暑后的第1个未日出梅) + :return: 梅雨天 + """ + # 入梅,芒种后第1个丙日 + start: SolarDay = Event.builder().term_heaven_stem(11, 2, 0).build().get_solar_day(self._year) + # 出梅,小暑后第1个未日 + end: SolarDay = Event.builder().term_earth_branch(13, 7, 0).build().get_solar_day(self._year) + if self.is_before(start) or self.is_after(end): + return None + return PlumRainDay(PlumRain(1), 0) if self == end else PlumRainDay(PlumRain(0), self.subtract(start)) + + def get_hide_heaven_stem_day(self) -> HideHeavenStemDay: + """ + :return: 人元司令分野 + """ + from tyme4py.sixtycycle import HideHeavenStemDay, HideHeavenStem + day_counts: List[int] = [3, 5, 7, 9, 10, 30] + term: SolarTerm = self.get_term() + if term.is_qi(): + term = term.next(-1) + day_index: int = self.subtract(term.get_solar_day()) + start_index: int = (term.get_index() - 1) * 3 + data: str = '93705542220504xx1513904541632524533533105544806564xx7573304542018584xx95'[start_index: start_index + 6] + days: int = 0 + heaven_stem_index: int = 0 + type_index: int = 0 + while type_index < 3: + i: int = type_index * 2 + d: str = data[i: i + 1] + count: int = 0 + if d != 'x': + heaven_stem_index = int(d, 10) + count = day_counts[int(data[i + 1: i + 2], 10)] + days += count + + if day_index <= days: + day_index -= days - count + break + + type_index += 1 + + hide_type: HideHeavenStemType + if type_index == 0: + hide_type = HideHeavenStemType.RESIDUAL + elif type_index == 1: + hide_type = HideHeavenStemType.MIDDLE + else: + hide_type = HideHeavenStemType.MAIN + return HideHeavenStemDay(HideHeavenStem(heaven_stem_index, hide_type), day_index) + + def get_nine_day(self) -> Union[NineDay, None]: + """ + 当天所在的数九天 + :return: 数九天 NineDay + """ + start: SolarDay = SolarTerm(self._year + 1, 0).get_solar_day() + if self.is_before(start): + start = SolarTerm(self._year, 0).get_solar_day() + + end: SolarDay = start.next(81) + if self.is_before(start) or (not self.is_before(end)): + return None + + days: int = self.subtract(start) + return NineDay(Nine(int(days / 9)), days % 9) + + def get_index_in_year(self) -> int: + """ + 位于当年的索引 + :return: 索引 + """ + return self.subtract(SolarDay(self._year, 1, 1)) + + def subtract(self, target: SolarDay) -> int: + """ + 公历日期相减,获得相差天数 + :param target: 公历 + :return: 两个公历日之间相差的天数 + """ + return int(self.get_julian_day().subtract(target.get_julian_day())) + + def get_julian_day(self) -> JulianDay: + """ + 公历日转儒略日 + :return: 儒略日 + """ + return JulianDay.from_ymd_hms(self._year, self._month, self._day, 0, 0, 0) + + def get_lunar_day(self) -> LunarDay: + """ + :return: 农历日 + """ + from tyme4py.lunar import LunarMonth, LunarDay + m: LunarMonth = LunarMonth.from_ym(self._year, self._month) + days: int = self.subtract(m.get_first_julian_day().get_solar_day()) + while days < 0: + m = m.next(-1) + days += m.get_day_count() + return LunarDay(m.get_year(), m.get_month_with_leap(), days + 1) + + def get_sixty_cycle_day(self) -> SixtyCycleDay: + from tyme4py.sixtycycle import SixtyCycleDay + return SixtyCycleDay.from_solar_day(self) + + def get_rab_byung_day(self) -> RabByungDay: + from tyme4py.rabbyung import RabByungDay + return RabByungDay.from_solar_day(self) + + def get_legal_holiday(self) -> Union[LegalHoliday, None]: + """ + 法定假日,如果当天不是法定假日,返回None + :return: 法定假日 + """ + return LegalHoliday.from_ymd(self._year, self._month, self._day) + + def get_festival(self) -> Union[SolarFestival, None]: + """ + 公历现代节日,如果当天不是公历现代节日,返回None + :return: 公历现代节日 + """ + return SolarFestival.from_ymd(self._year, self._month, self._day) + + def get_phase_day(self) -> PhaseDay: + """ + 月相第几天 + :return: 月相第几天 + """ + month = self.get_lunar_day().get_lunar_month().next(1) + p = Phase.from_index(month.get_year(), month.get_month_with_leap(), 0) + d = p.get_solar_day() + while d.is_after(self): + p = p.next(-1) + d = p.get_solar_day() + return PhaseDay(p, self.subtract(d)) + + def get_phase(self) -> Phase: + """ + 月相 + :return: 月相 Phase + """ + return self.get_phase_day().get_phase() + + def get_nine_star(self) -> NineStar: + """ + :return: 九星 NineStar + """ + y: int = self.get_year() + winter_solstice: SolarDay = SolarTerm.from_index(y, 0).get_solar_day() + summer_solstice: SolarDay = SolarTerm.from_index(y, 12).get_solar_day() + next_winter_solstice: SolarDay = SolarTerm.from_index(y + 1, 0).get_solar_day() + w: SolarDay = winter_solstice.next(winter_solstice.get_lunar_day().get_sixty_cycle().steps_close_to(0)) + s: SolarDay = summer_solstice.next(summer_solstice.get_lunar_day().get_sixty_cycle().steps_close_to(0)) + n: SolarDay = next_winter_solstice.next(next_winter_solstice.get_lunar_day().get_sixty_cycle().steps_close_to(0)) + if self.is_before(w): + return NineStar.from_index(w.subtract(self) - 1) + if self.is_before(s): + return NineStar.from_index(self.subtract(w)) + return NineStar.from_index(n.subtract(self) - 1 if self.is_before(n) else self.subtract(n)) + + def get_hijri_day(self) -> HijriDay: + """ + :return: 回历 HijriDay + """ + d: int = self.subtract(SolarDay(622, 7, 16)) + z = d // 10631 + d -= z * 10631 + y = int(floor((d + 0.5) / 354.366)) + d -= int(floor(y * 354.366 + 0.5)) + m = int(floor((d + 0.11) / 29.51)) + d -= int(floor(m * 29.5 + 0.5)) + from tyme4py.hijri import HijriDay + return HijriDay(z * 30 + y + 1, m + 1, d + 1) + + +class SolarTime(SecondUnit): + + @staticmethod + def validate(year: int, month: int, day: int, hour: int, minute: int, second: int) -> None: + SecondUnit.validate(year, month, day, hour, minute, second) + SolarDay.validate(year, month, day) + + def __init__(self, year: int, month: int, day: int, hour: int, minute: int, second: int): + SolarTime.validate(year, month, day, hour, minute, second) + super().__init__(year, month, day, hour, minute, second) + + @classmethod + def from_ymd_hms(cls, year: int, month: int, day: int, hour: int, minute: int, second: int) -> SolarTime: + """ + :param year: 年 + :param month: 月 + :param day: 日 + :param hour: 时 + :param minute: 分 + :param second: 秒 + :return: 公历时刻 + """ + return cls(year, month, day, hour, minute, second) + + def get_solar_day(self) -> SolarDay: + """ + :return: 公历日 + """ + return SolarDay.from_ymd(self._year, self._month, self._day) + + def get_name(self) -> str: + return f'{self._hour:02d}:{self._minute:02d}:{self._second:02d}' + + def __str__(self) -> str: + return f'{self.get_solar_day()} {self.get_name()}' + + def next(self, n: int) -> SolarTime: + """ + 推移 + :param n: 推移秒数 + :return: 公历时刻 + """ + if n == 0: + return SolarTime(self._year, self._month, self._day, self._hour, self._minute, self._second) + ts: int = self._second + n + tm: int = self._minute + floor(ts / 60) + ts %= 60 + if ts < 0: + ts += 60 + tm -= 1 + th: int = self._hour + int(tm / 60) + tm %= 60 + if tm < 0: + tm += 60 + th -= 1 + td: int = int(th / 24) + th %= 24 + if th < 0: + th += 24 + td -= 1 + d: SolarDay = self.get_solar_day().next(td) + return SolarTime(d.get_year(), d.get_month(), d.get_day(), th, tm, ts) + + def is_before(self, target: SolarTime) -> bool: + """ + 是否在指定公历时刻之前 + :param target: 公历时刻 + :return: true/false + """ + a_day: SolarDay = self.get_solar_day() + b_day: SolarDay = target.get_solar_day() + if a_day != b_day: + return a_day.is_before(b_day) + h: int = target.get_hour() + if self._hour != h: + return self._hour < h + m: int = target.get_minute() + return self._minute < m if self._minute != m else self._second < target.get_second() + + def is_after(self, target: SolarTime) -> bool: + """ + 是否在指定公历时刻之后 + :param target: 公历时刻 + :return: true/false + """ + a_day: SolarDay = self.get_solar_day() + b_day: SolarDay = target.get_solar_day() + if a_day != b_day: + return a_day.is_after(b_day) + h: int = target.get_hour() + if self._hour != h: + return self._hour > h + m: int = target.get_minute() + return self._minute > m if self._minute != m else self._second > target.get_second() + + def get_term(self) -> SolarTerm: + """ + 当时所在的节气 + :return: 节气 SolarTerm + """ + term: SolarTerm = self.get_solar_day().get_term() + if self.is_before(term.get_julian_day().get_solar_time()): + term = term.next(-1) + return term + + def get_phenology(self) -> Phenology: + """ + 当时所在的候 + :return: 候 Phenology + """ + p: Phenology = self.get_solar_day().get_phenology() + if self.is_before(p.get_julian_day().get_solar_time()): + p = p.next(-1) + return p + + def get_julian_day(self) -> JulianDay: + """ + 公历时刻转儒略日 + :return: 儒略日 + """ + return JulianDay.from_ymd_hms(self._year, self._month, self._day, self._hour, self._minute, self._second) + + def subtract(self, target: SolarTime) -> int: + """ + 公历时刻相减,获得相差秒数 + :param target: 公历时刻 + :return: 秒数 + """ + days: int = self.get_solar_day().subtract(target.get_solar_day()) + cs: int = self._hour * 3600 + self._minute * 60 + self._second + ts: int = target.get_hour() * 3600 + target.get_minute() * 60 + target.get_second() + seconds: int = cs - ts + if seconds < 0: + seconds += 86400 + days -= 1 + seconds += days * 86400 + return seconds + + def get_lunar_hour(self) -> LunarHour: + """ + 农历时辰 + :return: 农历时辰 + """ + from tyme4py.lunar import LunarDay, LunarHour + d: LunarDay = self.get_solar_day().get_lunar_day() + return LunarHour(d.get_year(), d.get_month(), d.get_day(), self._hour, self._minute, self._second) + + def get_sixty_cycle_hour(self) -> SixtyCycleHour: + """ + 干支时辰 + :return: 干支时辰 + """ + from tyme4py.sixtycycle import SixtyCycleHour + return SixtyCycleHour.from_solar_time(self) + + def get_phase(self) -> Phase: + """ + 月相 + :return: 月相 Phase + """ + month = self.get_lunar_hour().get_lunar_day().get_lunar_month().next(1) + p = Phase.from_index(month.get_year(), month.get_month_with_leap(), 0) + while p.get_solar_time().is_after(self): + p = p.next(-1) + return p diff --git a/vendor/tyme4py/unit/__init__.py b/vendor/tyme4py/unit/__init__.py new file mode 100644 index 0000000..37f375f --- /dev/null +++ b/vendor/tyme4py/unit/__init__.py @@ -0,0 +1,92 @@ +# -*- coding:utf-8 -*- +from __future__ import annotations + +from abc import ABC +from typing import List + +from tyme4py import AbstractTyme + + +class YearUnit(AbstractTyme, ABC): + """年""" + + def __init__(self, year: int): + self._year = year + + def get_year(self) -> int: + return self._year + + +class MonthUnit(YearUnit, ABC): + """月""" + + def __init__(self, year: int, month: int): + super().__init__(year) + self._month = month + + def get_month(self) -> int: + return self._month + + +class DayUnit(MonthUnit, ABC): + """日""" + + def __init__(self, year: int, month: int, day: int): + super().__init__(year, month) + self._day = day + + def get_day(self) -> int: + return self._day + + +class SecondUnit(DayUnit, ABC): + """秒""" + + def __init__(self, year: int, month: int, day: int, hour: int, minute: int, second: int): + super().__init__(year, month, day) + self._hour = hour + self._minute = minute + self._second = second + + def get_hour(self) -> int: + return self._hour + + def get_minute(self) -> int: + return self._minute + + def get_second(self) -> int: + return self._second + + @staticmethod + def validate(year: int, month: int, day: int, hour: int, minute: int, second: int) -> None: + if hour < 0 or hour > 23: + raise ValueError(f'illegal hour: {hour}') + if minute < 0 or minute > 59: + raise ValueError(f'illegal minute: {minute}') + if second < 0 or second > 59: + raise ValueError(f'illegal second: {second}') + + +class WeekUnit(MonthUnit, ABC): + """周""" + + NAMES: List[str] = ['第一周', '第二周', '第三周', '第四周', '第五周', '第六周'] + """名称""" + + def __init__(self, year: int, month: int, index: int, start: int): + super().__init__(year, month) + self._index = index + self._start = start + + def get_index(self) -> int: + return self._index + + def get_start(self) -> int: + return self._start + + @staticmethod + def validate(year: int, month: int, index: int, start: int) -> None: + if index < 0 or index > 5: + raise ValueError(f'illegal week index: {index}') + if start < 0 or start > 6: + raise ValueError(f'illegal week start: {start}') diff --git a/vendor/tyme4py/util/__init__.py b/vendor/tyme4py/util/__init__.py new file mode 100644 index 0000000..5be7c7c --- /dev/null +++ b/vendor/tyme4py/util/__init__.py @@ -0,0 +1,842 @@ +# -*- coding:utf-8 -*- +from math import floor, cos, sin + + +class ShouXingUtil: + # 2000年儒略日数(2000-1-1 12:00:00 UTC) + J2000 = 2451545 + PI: float = 3.141592653589793 + PI_2: float = 2 * PI + ONE_THIRD: float = 1.0 / 3 + # 1天对应的秒数 + SECOND_PER_DAY: int = 86400 + # 1弧度对应的角秒 + SECOND_PER_RAD: float = 648000 / PI + # 中精度章动计算表 + __NUT_B = ( + 2.1824, -33.75705, 36e-6, -1720, 920, + 3.5069, 1256.66393, 11e-6, -132, 57, + 1.3375, 16799.4182, -51e-6, -23, 10, + 4.3649, -67.5141, 72e-6, 21, -9, + 0.04, -628.302, 0, -14, 0, + 2.36, 8328.691, 0, 7, 0, + 3.46, 1884.966, 0, -5, 2, + 5.44, 16833.175, 0, -4, 2, + 3.69, 25128.110, 0, -3, 0, + 3.55, 628.362, 0, 2, 0 + ) + # TD - UT1 计算表 + __DT_AT = ( + -4000, 108371.7, -13036.80, 392.000, 0.0000, + -500, 17201.0, -627.82, 16.170, -0.3413, + -150, 12200.6, -346.41, 5.403, -0.1593, + 150, 9113.8, -328.13, -1.647, 0.0377, + 500, 5707.5, -391.41, 0.915, 0.3145, + 900, 2203.4, -283.45, 13.034, -0.1778, + 1300, 490.1, -57.35, 2.085, -0.0072, + 1600, 120.0, -9.81, -1.532, 0.1403, + 1700, 10.2, -0.91, 0.510, -0.0370, + 1800, 13.4, -0.72, 0.202, -0.0193, + 1830, 7.8, -1.81, 0.416, -0.0247, + 1860, 8.3, -0.13, -0.406, 0.0292, + 1880, -5.4, 0.32, -0.183, 0.0173, + 1900, -2.3, 2.06, 0.169, -0.0135, + 1920, 21.2, 1.69, -0.304, 0.0167, + 1940, 24.2, 1.22, -0.064, 0.0031, + 1960, 33.2, 0.51, 0.231, -0.0109, + 1980, 51.0, 1.29, -0.026, 0.0032, + 2000, 63.87, 0.1, 0, 0, + 2005, 64.7, 0.21, 0, 0, + 2012, 66.8, 0.22, 0, 0, + 2016, 68.1024, 0.5456, -0.0542, -0.001172, + 2020, 69.3612, 0.0422, -0.0502, 0.006216, + 2024, 69.1752, -0.0335, -0.0048, 0.000811, + 2028, 69.0206, -0.0275, 0.0055, -0.000014, + 2032, 68.9981, 0.0163, 0.0054, 0.000006, + 2036, 69.1498, 0.0599, 0.0053, 0.000026, + 2040, 69.4751, 0.1035, 0.0051, 0.000046, + 2044, 69.9737, 0.1469, 0.0050, 0.000066, + 2048, 70.6451, 0.1903, 0.0049, 0.000085, + 2050, 71.0457 + ) + __XL0 = ( + 10000000000, + 20, 578, 920, 1100, 1124, 1136, 1148, 1217, 1226, 1229, 1229, 1229, 1229, 1937, 2363, 2618, 2633, 2660, 2666, + 17534704567, 0.00000000000, 0.00000000000, 334165646, 4.669256804, 6283.075849991, 3489428, 4.6261024, + 12566.1517000, 349706, 2.744118, 5753.384885, 341757, 2.828866, 3.523118, 313590, 3.627670, 77713.771468, + 267622, 4.418084, 7860.419392, 234269, 6.135162, 3930.209696, 132429, 0.742464, 11506.769770, 127317, 2.037097, + 529.690965, 119917, 1.109629, 1577.343542, 99025, 5.23268, 5884.92685, 90186, 2.04505, 26.29832, 85722, 3.50849, + 398.14900, 77979, 1.17883, 5223.69392, 75314, 2.53339, 5507.55324, 50526, 4.58293, 18849.22755, 49238, 4.20507, + 775.52261, 35666, 2.91954, 0.06731, 31709, 5.84902, 11790.62909, 28413, 1.89869, 796.29801, 27104, 0.31489, + 10977.07880, 24281, 0.34481, 5486.77784, 20616, 4.80647, 2544.31442, 20539, 1.86948, 5573.14280, 20226, 2.45768, + 6069.77675, 15552, 0.83306, 213.29910, 13221, 3.41118, 2942.46342, 12618, 1.08303, 20.77540, 11513, 0.64545, + 0.98032, 10285, 0.63600, 4694.00295, 10190, 0.97569, 15720.83878, 10172, 4.26680, 7.11355, 9921, 6.2099, + 2146.1654, 9761, 0.6810, 155.4204, 8580, 5.9832, 161000.6857, 8513, 1.2987, 6275.9623, 8471, 3.6708, 71430.6956, + 7964, 1.8079, 17260.1547, 7876, 3.0370, 12036.4607, 7465, 1.7551, 5088.6288, 7387, 3.5032, 3154.6871, 7355, + 4.6793, 801.8209, 6963, 0.8330, 9437.7629, 6245, 3.9776, 8827.3903, 6115, 1.8184, 7084.8968, 5696, 2.7843, + 6286.5990, 5612, 4.3869, 14143.4952, 5558, 3.4701, 6279.5527, 5199, 0.1891, 12139.5535, 5161, 1.3328, 1748.0164, + 5115, 0.2831, 5856.4777, 4900, 0.4874, 1194.4470, 4104, 5.3682, 8429.2413, 4094, 2.3985, 19651.0485, 3920, + 6.1683, 10447.3878, 3677, 6.0413, 10213.2855, 3660, 2.5696, 1059.3819, 3595, 1.7088, 2352.8662, 3557, 1.7760, + 6812.7668, 3329, 0.5931, 17789.8456, 3041, 0.4429, 83996.8473, 3005, 2.7398, 1349.8674, 2535, 3.1647, 4690.4798, + 2474, 0.2148, 3.5904, 2366, 0.4847, 8031.0923, 2357, 2.0653, 3340.6124, 2282, 5.2220, 4705.7323, 2189, 5.5559, + 553.5694, 2142, 1.4256, 16730.4637, 2109, 4.1483, 951.7184, 2030, 0.3713, 283.8593, 1992, 5.2221, 12168.0027, + 1986, 5.7747, 6309.3742, 1912, 3.8222, 23581.2582, 1889, 5.3863, 149854.4001, 1790, 2.2149, 13367.9726, 1748, + 4.5605, 135.0651, 1622, 5.9884, 11769.8537, 1508, 4.1957, 6256.7775, 1442, 4.1932, 242.7286, 1435, 3.7236, + 38.0277, 1397, 4.4014, 6681.2249, 1362, 1.8893, 7632.9433, 1250, 1.1305, 5.5229, 1205, 2.6223, 955.5997, 1200, + 1.0035, 632.7837, 1129, 0.1774, 4164.3120, 1083, 0.3273, 103.0928, 1052, 0.9387, 11926.2544, 1050, 5.3591, + 1592.5960, 1033, 6.1998, 6438.4962, 1001, 6.0291, 5746.2713, 980, 0.999, 11371.705, 980, 5.244, 27511.468, 938, + 2.624, 5760.498, 923, 0.483, 522.577, 922, 4.571, 4292.331, 905, 5.337, 6386.169, 862, 4.165, 7058.598, 841, + 3.299, 7234.794, 836, 4.539, 25132.303, 813, 6.112, 4732.031, 812, 6.271, 426.598, 801, 5.821, 28.449, 787, + 0.996, 5643.179, 776, 2.957, 23013.540, 769, 3.121, 7238.676, 758, 3.974, 11499.656, 735, 4.386, 316.392, 731, + 0.607, 11513.883, 719, 3.998, 74.782, 706, 0.323, 263.084, 676, 5.911, 90955.552, 663, 3.665, 17298.182, 653, + 5.791, 18073.705, 630, 4.717, 6836.645, 615, 1.458, 233141.314, 612, 1.075, 19804.827, 596, 3.321, 6283.009, + 596, 2.876, 6283.143, 555, 2.452, 12352.853, 541, 5.392, 419.485, 531, 0.382, 31441.678, 519, 4.065, 6208.294, + 513, 2.361, 10973.556, 494, 5.737, 9917.697, 450, 3.272, 11015.106, 449, 3.653, 206.186, 447, 2.064, 7079.374, + 435, 4.423, 5216.580, 421, 1.906, 245.832, 413, 0.921, 3738.761, 402, 0.840, 20.355, 387, 1.826, 11856.219, 379, + 2.344, 3.881, 374, 2.954, 3128.389, 370, 5.031, 536.805, 365, 1.018, 16200.773, 365, 1.083, 88860.057, 352, + 5.978, 3894.182, 352, 2.056, 244287.600, 351, 3.713, 6290.189, 340, 1.106, 14712.317, 339, 0.978, 8635.942, 339, + 3.202, 5120.601, 333, 0.837, 6496.375, 325, 3.479, 6133.513, 316, 5.089, 21228.392, 316, 1.328, 10873.986, 309, + 3.646, 10.637, 303, 1.802, 35371.887, 296, 3.397, 9225.539, 288, 6.026, 154717.610, 281, 2.585, 14314.168, 262, + 3.856, 266.607, 262, 2.579, 22483.849, 257, 1.561, 23543.231, 255, 3.949, 1990.745, 251, 3.744, 10575.407, 240, + 1.161, 10984.192, 238, 0.106, 7.046, 236, 4.272, 6040.347, 234, 3.577, 10969.965, 211, 3.714, 65147.620, 210, + 0.754, 13521.751, 207, 4.228, 5650.292, 202, 0.814, 170.673, 201, 4.629, 6037.244, 200, 0.381, 6172.870, 199, + 3.933, 6206.810, 199, 5.197, 6262.300, 197, 1.046, 18209.330, 195, 1.070, 5230.807, 195, 4.869, 36.028, 194, + 4.313, 6244.943, 192, 1.229, 709.933, 192, 5.595, 6282.096, 192, 0.602, 6284.056, 189, 3.744, 23.878, 188, + 1.904, 15.252, 188, 0.867, 22003.915, 182, 3.681, 15110.466, 181, 0.491, 1.484, 179, 3.222, 39302.097, 179, + 1.259, 12559.038, + 62833196674749, 0.000000000000, 0.000000000000, 20605886, 2.67823456, 6283.07584999, 430343, 2.635127, + 12566.151700, 42526, 1.59047, 3.52312, 11926, 5.79557, 26.29832, 10898, 2.96618, 1577.34354, 9348, 2.5921, + 18849.2275, 7212, 1.1385, 529.6910, 6777, 1.8747, 398.1490, 6733, 4.4092, 5507.5532, 5903, 2.8880, 5223.6939, + 5598, 2.1747, 155.4204, 4541, 0.3980, 796.2980, 3637, 0.4662, 775.5226, 2896, 2.6471, 7.1135, 2084, 5.3414, + 0.9803, 1910, 1.8463, 5486.7778, 1851, 4.9686, 213.2991, 1729, 2.9912, 6275.9623, 1623, 0.0322, 2544.3144, 1583, + 1.4305, 2146.1654, 1462, 1.2053, 10977.0788, 1246, 2.8343, 1748.0164, 1188, 3.2580, 5088.6288, 1181, 5.2738, + 1194.4470, 1151, 2.0750, 4694.0030, 1064, 0.7661, 553.5694, 997, 1.303, 6286.599, 972, 4.239, 1349.867, 945, + 2.700, 242.729, 858, 5.645, 951.718, 758, 5.301, 2352.866, 639, 2.650, 9437.763, 610, 4.666, 4690.480, 583, + 1.766, 1059.382, 531, 0.909, 3154.687, 522, 5.661, 71430.696, 520, 1.854, 801.821, 504, 1.425, 6438.496, 433, + 0.241, 6812.767, 426, 0.774, 10447.388, 413, 5.240, 7084.897, 374, 2.001, 8031.092, 356, 2.429, 14143.495, 350, + 4.800, 6279.553, 337, 0.888, 12036.461, 337, 3.862, 1592.596, 325, 3.400, 7632.943, 322, 0.616, 8429.241, 318, + 3.188, 4705.732, 297, 6.070, 4292.331, 295, 1.431, 5746.271, 290, 2.325, 20.355, 275, 0.935, 5760.498, 270, + 4.804, 7234.794, 253, 6.223, 6836.645, 228, 5.003, 17789.846, 225, 5.672, 11499.656, 215, 5.202, 11513.883, 208, + 3.955, 10213.286, 208, 2.268, 522.577, 206, 2.224, 5856.478, 206, 2.550, 25132.303, 203, 0.910, 6256.778, 189, + 0.532, 3340.612, 188, 4.735, 83996.847, 179, 1.474, 4164.312, 178, 3.025, 5.523, 177, 3.026, 5753.385, 159, + 4.637, 3.286, 157, 6.124, 5216.580, 155, 3.077, 6681.225, 154, 4.200, 13367.973, 143, 1.191, 3894.182, 138, + 3.093, 135.065, 136, 4.245, 426.598, 134, 5.765, 6040.347, 128, 3.085, 5643.179, 127, 2.092, 6290.189, 125, + 3.077, 11926.254, 125, 3.445, 536.805, 114, 3.244, 12168.003, 112, 2.318, 16730.464, 111, 3.901, 11506.770, 111, + 5.320, 23.878, 105, 3.750, 7860.419, 103, 2.447, 1990.745, 96, 0.82, 3.88, 96, 4.08, 6127.66, 91, 5.42, 206.19, + 91, 0.42, 7079.37, 88, 5.17, 11790.63, 81, 0.34, 9917.70, 80, 3.89, 10973.56, 78, 2.40, 1589.07, 78, 2.58, + 11371.70, 77, 3.98, 955.60, 77, 3.36, 36.03, 76, 1.30, 103.09, 75, 5.18, 10969.97, 75, 4.96, 6496.37, 73, 5.21, + 38.03, 72, 2.65, 6309.37, 70, 5.61, 3738.76, 69, 2.60, 3496.03, 69, 0.39, 15.25, 69, 2.78, 20.78, 65, 1.13, + 7058.60, 64, 4.28, 28.45, 61, 5.63, 10984.19, 60, 0.73, 419.48, 60, 5.28, 10575.41, 58, 5.55, 17298.18, 58, + 3.19, 4732.03, + 5291887, 0.0000000, 0.0000000, 871984, 1.072097, 6283.075850, 30913, 0.86729, 12566.15170, 2734, 0.0530, 3.5231, + 1633, 5.1883, 26.2983, 1575, 3.6846, 155.4204, 954, 0.757, 18849.228, 894, 2.057, 77713.771, 695, 0.827, + 775.523, 506, 4.663, 1577.344, 406, 1.031, 7.114, 381, 3.441, 5573.143, 346, 5.141, 796.298, 317, 6.053, + 5507.553, 302, 1.192, 242.729, 289, 6.117, 529.691, 271, 0.306, 398.149, 254, 2.280, 553.569, 237, 4.381, + 5223.694, 208, 3.754, 0.980, 168, 0.902, 951.718, 153, 5.759, 1349.867, 145, 4.364, 1748.016, 134, 3.721, + 1194.447, 125, 2.948, 6438.496, 122, 2.973, 2146.165, 110, 1.271, 161000.686, 104, 0.604, 3154.687, 100, 5.986, + 6286.599, 92, 4.80, 5088.63, 89, 5.23, 7084.90, 83, 3.31, 213.30, 76, 3.42, 5486.78, 71, 6.19, 4690.48, 68, + 3.43, 4694.00, 65, 1.60, 2544.31, 64, 1.98, 801.82, 61, 2.48, 10977.08, 50, 1.44, 6836.65, 49, 2.34, 1592.60, + 46, 1.31, 4292.33, 46, 3.81, 149854.40, 43, 0.04, 7234.79, 40, 4.94, 7632.94, 39, 1.57, 71430.70, 38, 3.17, + 6309.37, 35, 0.99, 6040.35, 35, 0.67, 1059.38, 31, 3.18, 2352.87, 31, 3.55, 8031.09, 30, 1.92, 10447.39, 30, + 2.52, 6127.66, 28, 4.42, 9437.76, 28, 2.71, 3894.18, 27, 0.67, 25132.30, 26, 5.27, 6812.77, 25, 0.55, 6279.55, + 23, 1.38, 4705.73, 22, 0.64, 6256.78, 20, 6.07, 640.88, + 28923, 5.84384, 6283.07585, 3496, 0.0000, 0.0000, 1682, 5.4877, 12566.1517, 296, 5.196, 155.420, 129, 4.722, + 3.523, 71, 5.30, 18849.23, 64, 5.97, 242.73, 40, 3.79, 553.57, + 11408, 3.14159, 0.00000, 772, 4.134, 6283.076, 77, 3.84, 12566.15, 42, 0.42, 155.42, + 88, 3.14, 0.00, 17, 2.77, 6283.08, 5, 2.01, 155.42, 3, 2.21, 12566.15, + 27962, 3.19870, 84334.66158, 10164, 5.42249, 5507.55324, 8045, 3.8801, 5223.6939, 4381, 3.7044, 2352.8662, 3193, + 4.0003, 1577.3435, 2272, 3.9847, 1047.7473, 1814, 4.9837, 6283.0758, 1639, 3.5646, 5856.4777, 1444, 3.7028, + 9437.7629, 1430, 3.4112, 10213.2855, 1125, 4.8282, 14143.4952, 1090, 2.0857, 6812.7668, 1037, 4.0566, + 71092.8814, 971, 3.473, 4694.003, 915, 1.142, 6620.890, 878, 4.440, 5753.385, 837, 4.993, 7084.897, 770, 5.554, + 167621.576, 719, 3.602, 529.691, 692, 4.326, 6275.962, 558, 4.410, 7860.419, 529, 2.484, 4705.732, 521, 6.250, + 18073.705, + 903, 3.897, 5507.553, 618, 1.730, 5223.694, 380, 5.244, 2352.866, + 166, 1.627, 84334.662, + 10001398880, 0.00000000000, 0.00000000000, 167069963, 3.098463508, 6283.075849991, 1395602, 3.0552461, + 12566.1517000, 308372, 5.198467, 77713.771468, 162846, 1.173877, 5753.384885, 157557, 2.846852, 7860.419392, + 92480, 5.45292, 11506.76977, 54244, 4.56409, 3930.20970, 47211, 3.66100, 5884.92685, 34598, 0.96369, 5507.55324, + 32878, 5.89984, 5223.69392, 30678, 0.29867, 5573.14280, 24319, 4.27350, 11790.62909, 21183, 5.84715, 1577.34354, + 18575, 5.02194, 10977.07880, 17484, 3.01194, 18849.22755, 10984, 5.05511, 5486.77784, 9832, 0.8868, 6069.7768, + 8650, 5.6896, 15720.8388, 8583, 1.2708, 161000.6857, 6490, 0.2725, 17260.1547, 6292, 0.9218, 529.6910, 5706, + 2.0137, 83996.8473, 5574, 5.2416, 71430.6956, 4938, 3.2450, 2544.3144, 4696, 2.5781, 775.5226, 4466, 5.5372, + 9437.7629, 4252, 6.0111, 6275.9623, 3897, 5.3607, 4694.0030, 3825, 2.3926, 8827.3903, 3749, 0.8295, 19651.0485, + 3696, 4.9011, 12139.5535, 3566, 1.6747, 12036.4607, 3454, 1.8427, 2942.4634, 3319, 0.2437, 7084.8968, 3192, + 0.1837, 5088.6288, 3185, 1.7778, 398.1490, 2846, 1.2134, 6286.5990, 2779, 1.8993, 6279.5527, 2628, 4.5890, + 10447.3878, 2460, 3.7866, 8429.2413, 2393, 4.9960, 5856.4777, 2359, 0.2687, 796.2980, 2329, 2.8078, 14143.4952, + 2210, 1.9500, 3154.6871, 2035, 4.6527, 2146.1654, 1951, 5.3823, 2352.8662, 1883, 0.6731, 149854.4001, 1833, + 2.2535, 23581.2582, 1796, 0.1987, 6812.7668, 1731, 6.1520, 16730.4637, 1717, 4.4332, 10213.2855, 1619, 5.2316, + 17789.8456, 1381, 5.1896, 8031.0923, 1364, 3.6852, 4705.7323, 1314, 0.6529, 13367.9726, 1041, 4.3329, + 11769.8537, 1017, 1.5939, 4690.4798, 998, 4.201, 6309.374, 966, 3.676, 27511.468, 874, 6.064, 1748.016, 779, + 3.674, 12168.003, 771, 0.312, 7632.943, 756, 2.626, 6256.778, 746, 5.648, 11926.254, 693, 2.924, 6681.225, 680, + 1.423, 23013.540, 674, 0.563, 3340.612, 663, 5.661, 11371.705, 659, 3.136, 801.821, 648, 2.650, 19804.827, 615, + 3.029, 233141.314, 612, 5.134, 1194.447, 563, 4.341, 90955.552, 552, 2.091, 17298.182, 534, 5.100, 31441.678, + 531, 2.407, 11499.656, 523, 4.624, 6438.496, 513, 5.324, 11513.883, 477, 0.256, 11856.219, 461, 1.722, 7234.794, + 458, 3.766, 6386.169, 458, 4.466, 5746.271, 423, 1.055, 5760.498, 422, 1.557, 7238.676, 415, 2.599, 7058.598, + 401, 3.030, 1059.382, 397, 1.201, 1349.867, 379, 4.907, 4164.312, 360, 5.707, 5643.179, 352, 3.626, 244287.600, + 348, 0.761, 10973.556, 342, 3.001, 4292.331, 336, 4.546, 4732.031, 334, 3.138, 6836.645, 324, 4.164, 9917.697, + 316, 1.691, 11015.106, 307, 0.238, 35371.887, 298, 1.306, 6283.143, 298, 1.750, 6283.009, 293, 5.738, 16200.773, + 286, 5.928, 14712.317, 281, 3.515, 21228.392, 280, 5.663, 8635.942, 277, 0.513, 26.298, 268, 4.207, 18073.705, + 266, 0.900, 12352.853, 260, 2.962, 25132.303, 255, 2.477, 6208.294, 242, 2.800, 709.933, 231, 1.054, 22483.849, + 229, 1.070, 14314.168, 216, 1.314, 154717.610, 215, 6.038, 10873.986, 200, 0.561, 7079.374, 198, 2.614, 951.718, + 197, 4.369, 167283.762, 186, 2.861, 5216.580, 183, 1.660, 39302.097, 183, 5.912, 3738.761, 175, 2.145, 6290.189, + 173, 2.168, 10575.407, 171, 3.702, 1592.596, 171, 1.343, 3128.389, 164, 5.550, 6496.375, 164, 5.856, 10984.192, + 161, 1.998, 10969.965, 161, 1.909, 6133.513, 157, 4.955, 25158.602, 154, 6.216, 23543.231, 153, 5.357, + 13521.751, 150, 5.770, 18209.330, 150, 5.439, 155.420, 139, 1.778, 9225.539, 139, 1.626, 5120.601, 128, 2.460, + 13916.019, 123, 0.717, 143571.324, 122, 2.654, 88860.057, 121, 4.414, 3894.182, 121, 1.192, 3.523, 120, 4.030, + 553.569, 119, 1.513, 17654.781, 117, 3.117, 14945.316, 113, 2.698, 6040.347, 110, 3.085, 43232.307, 109, 0.998, + 955.600, 108, 2.939, 17256.632, 107, 5.285, 65147.620, 103, 0.139, 11712.955, 103, 5.850, 213.299, 102, 3.046, + 6037.244, 101, 2.842, 8662.240, 100, 3.626, 6262.300, 98, 2.36, 6206.81, 98, 5.11, 6172.87, 98, 2.00, 15110.47, + 97, 2.67, 5650.29, 97, 2.75, 6244.94, 96, 4.02, 6282.10, 96, 5.31, 6284.06, 92, 0.10, 29088.81, 85, 3.26, + 20426.57, 84, 2.60, 28766.92, 81, 3.58, 10177.26, 80, 5.81, 5230.81, 78, 2.53, 16496.36, 77, 4.06, 6127.66, 73, + 0.04, 5481.25, 72, 5.96, 12559.04, 72, 5.92, 4136.91, 71, 5.49, 22003.91, 70, 3.41, 7.11, 69, 0.62, 11403.68, + 69, 3.90, 1589.07, 69, 1.96, 12416.59, 69, 4.51, 426.60, 67, 1.61, 11087.29, 66, 4.50, 47162.52, 66, 5.08, + 283.86, 66, 4.32, 16858.48, 65, 1.04, 6062.66, 64, 1.59, 18319.54, 63, 5.70, 45892.73, 63, 4.60, 66567.49, 63, + 3.82, 13517.87, 62, 2.62, 11190.38, 61, 1.54, 33019.02, 60, 5.58, 10344.30, 60, 5.38, 316428.23, 60, 5.78, + 632.78, 59, 6.12, 9623.69, 57, 0.16, 17267.27, 57, 3.86, 6076.89, 57, 1.98, 7668.64, 56, 4.78, 20199.09, 55, + 4.56, 18875.53, 55, 3.51, 17253.04, 54, 3.07, 226858.24, 54, 4.83, 18422.63, 53, 5.02, 12132.44, 52, 3.63, + 5333.90, 52, 0.97, 155427.54, 51, 3.36, 20597.24, 50, 0.99, 11609.86, 50, 2.21, 1990.75, 48, 1.62, 12146.67, 48, + 1.17, 12569.67, 47, 4.62, 5436.99, 47, 1.81, 12562.63, 47, 0.59, 21954.16, 47, 0.76, 7342.46, 46, 0.27, 4590.91, + 46, 3.77, 156137.48, 45, 5.66, 10454.50, 44, 5.84, 3496.03, 43, 0.24, 17996.03, 41, 5.93, 51092.73, 41, 4.21, + 12592.45, 40, 5.14, 1551.05, 40, 5.28, 15671.08, 39, 3.69, 18052.93, 39, 4.94, 24356.78, 38, 2.72, 11933.37, 38, + 5.23, 7477.52, 38, 4.99, 9779.11, 37, 3.70, 9388.01, 37, 4.44, 4535.06, 36, 2.16, 28237.23, 36, 2.54, 242.73, + 36, 0.22, 5429.88, 35, 6.15, 19800.95, 35, 2.92, 36949.23, 34, 5.63, 2379.16, 34, 5.73, 16460.33, 34, 5.11, + 5849.36, 33, 6.19, 6268.85, + 10301861, 1.10748970, 6283.07584999, 172124, 1.064423, 12566.151700, 70222, 3.14159, 0.00000, 3235, 1.0217, + 18849.2275, 3080, 2.8435, 5507.5532, 2497, 1.3191, 5223.6939, 1849, 1.4243, 1577.3435, 1008, 5.9138, 10977.0788, + 865, 1.420, 6275.962, 863, 0.271, 5486.778, 507, 1.686, 5088.629, 499, 6.014, 6286.599, 467, 5.987, 529.691, + 440, 0.518, 4694.003, 410, 1.084, 9437.763, 387, 4.750, 2544.314, 375, 5.071, 796.298, 352, 0.023, 83996.847, + 344, 0.949, 71430.696, 341, 5.412, 775.523, 322, 6.156, 2146.165, 286, 5.484, 10447.388, 284, 3.420, 2352.866, + 255, 6.132, 6438.496, 252, 0.243, 398.149, 243, 3.092, 4690.480, 225, 3.689, 7084.897, 220, 4.952, 6812.767, + 219, 0.420, 8031.092, 209, 1.282, 1748.016, 193, 5.314, 8429.241, 185, 1.820, 7632.943, 175, 3.229, 6279.553, + 173, 1.537, 4705.732, 158, 4.097, 11499.656, 158, 5.539, 3154.687, 150, 3.633, 11513.883, 148, 3.222, 7234.794, + 147, 3.653, 1194.447, 144, 0.817, 14143.495, 135, 6.151, 5746.271, 134, 4.644, 6836.645, 128, 2.693, 1349.867, + 123, 5.650, 5760.498, 118, 2.577, 13367.973, 113, 3.357, 17789.846, 110, 4.497, 4292.331, 108, 5.828, 12036.461, + 102, 5.621, 6256.778, 99, 1.14, 1059.38, 98, 0.66, 5856.48, 93, 2.32, 10213.29, 92, 0.77, 16730.46, 88, 1.50, + 11926.25, 86, 1.42, 5753.38, 85, 0.66, 155.42, 81, 1.64, 6681.22, 80, 4.11, 951.72, 66, 4.55, 5216.58, 65, 0.98, + 25132.30, 64, 4.19, 6040.35, 64, 0.52, 6290.19, 63, 1.51, 5643.18, 59, 6.18, 4164.31, 57, 2.30, 10973.56, 55, + 2.32, 11506.77, 55, 2.20, 1592.60, 55, 5.27, 3340.61, 54, 5.54, 553.57, 53, 5.04, 9917.70, 53, 0.92, 11371.70, + 52, 3.98, 17298.18, 52, 3.60, 10969.97, 49, 5.91, 3894.18, 49, 2.51, 6127.66, 48, 1.67, 12168.00, 46, 0.31, + 801.82, 42, 3.70, 10575.41, 42, 4.05, 10984.19, 40, 2.17, 7860.42, 40, 4.17, 26.30, 38, 5.82, 7058.60, 37, 3.39, + 6496.37, 36, 1.08, 6309.37, 36, 5.34, 7079.37, 34, 3.62, 11790.63, 32, 0.32, 16200.77, 31, 4.24, 3738.76, 29, + 4.55, 11856.22, 29, 1.26, 8635.94, 27, 3.45, 5884.93, 26, 5.08, 10177.26, 26, 5.38, 21228.39, 24, 2.26, + 11712.96, 24, 1.05, 242.73, 24, 5.59, 6069.78, 23, 3.63, 6284.06, 23, 1.64, 4732.03, 22, 3.46, 213.30, 21, 1.05, + 3496.03, 21, 3.92, 13916.02, 21, 4.01, 5230.81, 20, 5.16, 12352.85, 20, 0.69, 1990.75, 19, 2.73, 6062.66, 19, + 5.01, 11015.11, 18, 6.04, 6283.01, 18, 2.85, 7238.68, 18, 5.60, 6283.14, 18, 5.16, 17253.04, 18, 2.54, 14314.17, + 17, 1.58, 7.11, 17, 0.98, 3930.21, 17, 4.75, 17267.27, 16, 2.19, 6076.89, 16, 2.19, 18073.70, 16, 6.12, 3.52, + 16, 4.61, 9623.69, 16, 3.40, 16496.36, 15, 0.19, 9779.11, 15, 5.30, 13517.87, 15, 4.26, 3128.39, 15, 0.81, + 709.93, 14, 0.50, 25158.60, 14, 4.38, 4136.91, 13, 0.98, 65147.62, 13, 3.31, 154717.61, 13, 2.11, 1589.07, 13, + 1.92, 22483.85, 12, 6.03, 9225.54, 12, 1.53, 12559.04, 12, 5.82, 6282.10, 12, 5.61, 5642.20, 12, 2.38, + 167283.76, 12, 0.39, 12132.44, 12, 3.98, 4686.89, 12, 5.81, 12569.67, 12, 0.56, 5849.36, 11, 0.45, 6172.87, 11, + 5.80, 16858.48, 11, 6.22, 12146.67, 11, 2.27, 5429.88, + 435939, 5.784551, 6283.075850, 12363, 5.57935, 12566.15170, 1234, 3.1416, 0.0000, 879, 3.628, 77713.771, 569, + 1.870, 5573.143, 330, 5.470, 18849.228, 147, 4.480, 5507.553, 110, 2.842, 161000.686, 101, 2.815, 5223.694, 85, + 3.11, 1577.34, 65, 5.47, 775.52, 61, 1.38, 6438.50, 50, 4.42, 6286.60, 47, 3.66, 7084.90, 46, 5.39, 149854.40, + 42, 0.90, 10977.08, 40, 3.20, 5088.63, 35, 1.81, 5486.78, 32, 5.35, 3154.69, 30, 3.52, 796.30, 29, 4.62, + 4690.48, 28, 1.84, 4694.00, 27, 3.14, 71430.70, 27, 6.17, 6836.65, 26, 1.42, 2146.17, 25, 2.81, 1748.02, 24, + 2.18, 155.42, 23, 4.76, 7234.79, 21, 3.38, 7632.94, 21, 0.22, 4705.73, 20, 4.22, 1349.87, 20, 2.01, 1194.45, 20, + 4.58, 529.69, 19, 1.59, 6309.37, 18, 5.70, 6040.35, 18, 6.03, 4292.33, 17, 2.90, 9437.76, 17, 2.00, 8031.09, 17, + 5.78, 83996.85, 16, 0.05, 2544.31, 15, 0.95, 6127.66, 14, 0.36, 10447.39, 14, 1.48, 2352.87, 13, 0.77, 553.57, + 13, 5.48, 951.72, 13, 5.27, 6279.55, 13, 3.76, 6812.77, 11, 5.41, 6256.78, 10, 0.68, 1592.60, 10, 4.95, 398.15, + 10, 1.15, 3894.18, 10, 5.20, 244287.60, 10, 1.94, 11856.22, 9, 5.39, 25132.30, 8, 6.18, 1059.38, 8, 0.69, + 8429.24, 8, 5.85, 242.73, 7, 5.26, 14143.50, 7, 0.52, 801.82, 6, 2.24, 8635.94, 6, 4.00, 13367.97, 6, 2.77, + 90955.55, 6, 5.17, 7058.60, 5, 1.46, 233141.31, 5, 4.13, 7860.42, 5, 3.91, 26.30, 5, 3.89, 12036.46, 5, 5.58, + 6290.19, 5, 5.54, 1990.75, 5, 0.83, 11506.77, 5, 6.22, 6681.22, 4, 5.26, 10575.41, 4, 1.91, 7477.52, 4, 0.43, + 10213.29, 4, 1.09, 709.93, 4, 5.09, 11015.11, 4, 4.22, 88860.06, 4, 3.57, 7079.37, 4, 1.98, 6284.06, 4, 3.93, + 10973.56, 4, 6.18, 9917.70, 4, 0.36, 10177.26, 4, 2.75, 3738.76, 4, 3.33, 5643.18, 4, 5.36, 25158.60, + 14459, 4.27319, 6283.07585, 673, 3.917, 12566.152, 77, 0.00, 0.00, 25, 3.73, 18849.23, 4, 2.80, 6286.60, + 386, 2.564, 6283.076, 31, 2.27, 12566.15, 5, 3.44, 5573.14, 2, 2.05, 18849.23, 1, 2.06, 77713.77, 1, 4.41, + 161000.69, 1, 3.82, 149854.40, 1, 4.08, 6127.66, 1, 5.26, 6438.50, + 9, 1.22, 6283.08, 1, 0.66, 12566.15 + ) + __XL1 = ( + (22639.586, 0.78475822, 8328.691424623, 1.5229241, 25.0719, -0.123598, 4586.438, 0.1873974, 7214.06286536, + -2.184756, -18.860, 0.08280, 2369.914, 2.5429520, 15542.75428998, -0.661832, 6.212, -0.04080, 769.026, + 3.140313, 16657.38284925, 3.04585, 50.144, -0.2472, 666.418, 1.527671, 628.30195521, -0.02664, 0.062, -0.0054, + 411.596, 4.826607, 16866.9323150, -1.28012, -1.07, -0.0059, 211.656, 4.115028, -1114.6285593, -3.70768, -43.93, + 0.2064, 205.436, 0.230523, 6585.7609101, -2.15812, -18.92, 0.0882, 191.956, 4.898507, 23871.4457146, 0.86109, + 31.28, -0.164, 164.729, 2.586078, 14914.4523348, -0.6352, 6.15, -0.035, 147.321, 5.45530, -7700.3894694, + -1.5496, -25.01, 0.118, 124.988, 0.48608, 7771.3771450, -0.3309, 3.11, -0.020, 109.380, 3.88323, 8956.9933798, + 1.4963, 25.13, -0.129, 55.177, 5.57033, -1324.1780250, 0.6183, 7.3, -0.035, 45.100, 0.89898, 25195.623740, + 0.2428, 24.0, -0.129, 39.533, 3.81213, -8538.240890, 2.8030, 26.1, -0.118, 38.430, 4.30115, 22756.817155, + -2.8466, -12.6, 0.042, 36.124, 5.49587, 24986.074274, 4.5688, 75.2, -0.371, 30.773, 1.94559, 14428.125731, + -4.3695, -37.7, 0.166, 28.397, 3.28586, 7842.364821, -2.2114, -18.8, 0.077, 24.358, 5.64142, 16171.056245, + -0.6885, 6.3, -0.046, 18.585, 4.41371, -557.314280, -1.8538, -22.0, 0.10, 17.954, 3.58454, 8399.679100, + -0.3576, 3.2, -0.03, 14.530, 4.9416, 23243.143759, 0.888, 31.2, -0.16, 14.380, 0.9709, 32200.137139, 2.384, + 56.4, -0.29, 14.251, 5.7641, -2.301200, 1.523, 25.1, -0.12, 13.899, 0.3735, 31085.508580, -1.324, 12.4, -0.08, + 13.194, 1.7595, -9443.319984, -5.231, -69.0, 0.33, 9.679, 3.0997, -16029.080894, -3.072, -50.1, 0.24, 9.366, + 0.3016, 24080.995180, -3.465, -19.9, 0.08, 8.606, 4.1582, -1742.930514, -3.681, -44.0, 0.21, 8.453, 2.8416, + 16100.068570, 1.192, 28.2, -0.14, 8.050, 2.6292, 14286.150380, -0.609, 6.1, -0.03, 7.630, 6.2388, 17285.684804, + 3.019, 50.2, -0.25, 7.447, 1.4845, 1256.603910, -0.053, 0.1, -0.01, 7.371, 0.2736, 5957.458955, -2.131, -19.0, + 0.09, 7.063, 5.6715, 33.757047, -0.308, -3.6, 0.02, 6.383, 4.7843, 7004.513400, 2.141, 32.4, -0.16, 5.742, + 2.6572, 32409.686605, -1.942, 5, -0.05, 4.374, 4.3443, 22128.51520, -2.820, -13, 0.05, 3.998, 3.2545, + 33524.31516, 1.766, 49, -0.25, 3.210, 2.2443, 14985.44001, -2.516, -16, 0.06, 2.915, 1.7138, 24499.74767, + 0.834, 31, -0.17, 2.732, 1.9887, 13799.82378, -4.343, -38, 0.17, 2.568, 5.4122, -7072.08751, -1.576, -25, 0.11, + 2.521, 3.2427, 8470.66678, -2.238, -19, 0.07, 2.489, 4.0719, -486.32660, -3.734, -44, 0.20, 2.146, 5.6135, + -1952.47998, 0.645, 7, -0.03, 1.978, 2.7291, 39414.20000, 0.199, 37, -0.21, 1.934, 1.5682, 33314.76570, 6.092, + 100, -0.5, 1.871, 0.4166, 30457.20662, -1.297, 12, -0.1, 1.753, 2.0582, -8886.00570, -3.38, -47, 0.2, 1.437, + 2.386, -695.87607, 0.59, 7, 0, 1.373, 3.026, -209.54947, 4.33, 51, -0.2, 1.262, 5.940, 16728.37052, 1.17, 28, + -0.1, 1.224, 6.172, 6656.74859, -4.04, -41, 0.2, 1.187, 5.873, 6099.43431, -5.89, -63, 0.3, 1.177, 1.014, + 31571.83518, 2.41, 56, -0.3, 1.162, 3.840, 9585.29534, 1.47, 25, -0.1, 1.143, 5.639, 8364.73984, -2.18, -19, + 0.1, 1.078, 1.229, 70.98768, -1.88, -22, 0.1, 1.059, 3.326, 40528.82856, 3.91, 81, -0.4, 0.990, 5.013, + 40738.37803, -0.42, 30, -0.2, 0.948, 5.687, -17772.01141, -6.75, -94, 0.5, 0.876, 0.298, -0.35232, 0, 0, 0, + 0.822, 2.994, 393.02097, 0, 0, 0, 0.788, 1.836, 8326.39022, 3.05, 50, -0.2, 0.752, 4.985, 22614.84180, 0.91, + 31, -0.2, 0.740, 2.875, 8330.99262, 0, 0, 0, 0.669, 0.744, -24357.77232, -4.60, -75, 0.4, 0.644, 1.314, + 8393.12577, -2.18, -19, 0.1, 0.639, 5.888, 575.33849, 0, 0, 0, 0.635, 1.116, 23385.11911, -2.87, -13, 0, 0.584, + 5.197, 24428.75999, 2.71, 53, -0.3, 0.583, 3.513, -9095.55517, 0.95, 4, 0, 0.572, 6.059, 29970.88002, -5.03, + -32, 0.1, 0.565, 2.960, 0.32863, 1.52, 25, -0.1, 0.561, 4.001, -17981.56087, -2.43, -43, 0.2, 0.557, 0.529, + 7143.07519, -0.30, 3, 0, 0.546, 2.311, 25614.37623, 4.54, 75, -0.4, 0.536, 4.229, 15752.30376, -4.99, -45, 0.2, + 0.493, 3.316, -8294.9344, -1.83, -29, 0.1, 0.491, 1.744, 8362.4485, 1.21, 21, -0.1, 0.478, 1.803, -10071.6219, + -5.20, -69, 0.3, 0.454, 0.857, 15333.2048, 3.66, 57, -0.3, 0.445, 2.071, 8311.7707, -2.18, -19, 0.1, 0.426, + 0.345, 23452.6932, -3.44, -20, 0.1, 0.420, 4.941, 33733.8646, -2.56, -2, 0, 0.413, 1.642, 17495.2343, -1.31, + -1, 0, 0.404, 1.458, 23314.1314, -0.99, 9, -0.1, 0.395, 2.132, 38299.5714, -3.51, -6, 0, 0.382, 2.700, + 31781.3846, -1.92, 5, 0, 0.375, 4.827, 6376.2114, 2.17, 32, -0.2, 0.361, 3.867, 16833.1753, -0.97, 3, 0, 0.358, + 5.044, 15056.4277, -4.40, -38, 0.2, 0.350, 5.157, -8257.7037, -3.40, -47, 0.2, 0.344, 4.233, 157.7344, 0, 0, 0, + 0.340, 2.672, 13657.8484, -0.58, 6, 0, 0.329, 5.610, 41853.0066, 3.29, 74, -0.4, 0.325, 5.895, -39.8149, 0, 0, + 0, 0.309, 4.387, 21500.2132, -2.79, -13, 0.1, 0.302, 1.278, 786.0419, 0, 0, 0, 0.302, 5.341, -24567.3218, + -0.27, -24, 0.1, 0.301, 1.045, 5889.8848, -1.57, -12, 0, 0.294, 4.201, -2371.2325, -3.65, -44, 0.2, 0.293, + 3.704, 21642.1886, -6.55, -57, 0.2, 0.290, 4.069, 32828.4391, 2.36, 56, -0.3, 0.289, 3.472, 31713.8105, -1.35, + 12, -0.1, 0.285, 5.407, -33.7814, 0.31, 4, 0, 0.283, 5.998, -16.9207, -3.71, -44, 0.2, 0.283, 2.772, + 38785.8980, 0.23, 37, -0.2, 0.274, 5.343, 15613.7420, -2.54, -16, 0.1, 0.263, 3.997, 25823.9257, 0.22, 24, + -0.1, 0.254, 0.600, 24638.3095, -1.61, 2, 0, 0.253, 1.344, 6447.1991, 0.29, 10, -0.1, 0.250, 0.887, 141.9754, + -3.76, -44, 0.2, 0.247, 0.317, 5329.1570, -2.10, -19, 0.1, 0.245, 0.141, 36.0484, -3.71, -44, 0.2, 0.231, + 2.287, 14357.1381, -2.49, -16, 0.1, 0.227, 5.158, 2.6298, 0, 0, 0, 0.219, 5.085, 47742.8914, 1.72, 63, -0.3, + 0.211, 2.145, 6638.7244, -2.18, -19, 0.1, 0.201, 4.415, 39623.7495, -4.13, -14, 0, 0.194, 2.091, 588.4927, 0, + 0, 0, 0.193, 3.057, -15400.7789, -3.10, -50, 0, 0.186, 5.598, 16799.3582, -0.72, 6, 0, 0.185, 3.886, 1150.6770, + 0, 0, 0, 0.183, 1.619, 7178.0144, 1.52, 25, 0, 0.181, 2.635, 8328.3391, 1.52, 25, 0, 0.181, 2.077, 8329.0437, + 1.52, 25, 0, 0.179, 3.215, -9652.8694, -0.90, -18, 0, 0.176, 1.716, -8815.0180, -5.26, -69, 0, 0.175, 5.673, + 550.7553, 0, 0, 0, 0.170, 2.060, 31295.0580, -5.6, -39, 0, 0.167, 1.239, 7211.7617, -0.7, 6, 0, 0.165, 4.499, + 14967.4158, -0.7, 6, 0, 0.164, 3.595, 15540.4531, 0.9, 31, 0, 0.164, 4.237, 522.3694, 0, 0, 0, 0.163, 4.633, + 15545.0555, -2.2, -19, 0, 0.161, 0.478, 6428.0209, -2.2, -19, 0, 0.158, 2.03, 13171.5218, -4.3, -38, 0, 0.157, + 2.28, 7216.3641, -3.7, -44, 0, 0.154, 5.65, 7935.6705, 1.5, 25, 0, 0.152, 0.46, 29828.9047, -1.3, 12, 0, 0.151, + 1.19, -0.7113, 0, 0, 0, 0.150, 1.42, 23942.4334, -1.0, 9, 0, 0.144, 2.75, 7753.3529, 1.5, 25, 0, 0.137, 2.08, + 7213.7105, -2.2, -19, 0, 0.137, 1.44, 7214.4152, -2.2, -19, 0, 0.136, 4.46, -1185.6162, -1.8, -22, 0, 0.136, + 3.03, 8000.1048, -2.2, -19, 0, 0.134, 2.83, 14756.7124, -0.7, 6, 0, 0.131, 5.05, 6821.0419, -2.2, -19, 0, + 0.128, 5.99, -17214.6971, -4.9, -72, 0, 0.127, 5.35, 8721.7124, 1.5, 25, 0, 0.126, 4.49, 46628.2629, -2.0, 19, + 0, 0.125, 5.94, 7149.6285, 1.5, 25, 0, 0.124, 1.09, 49067.0695, 1.1, 55, 0, 0.121, 2.88, 15471.7666, 1.2, 28, + 0, 0.111, 3.92, 41643.4571, 7.6, 125, -1, 0.110, 1.96, 8904.0299, 1.5, 25, 0, 0.106, 3.30, -18.0489, -2.2, -19, + 0, 0.105, 2.30, -4.9310, 1.5, 25, 0, 0.104, 2.22, -6.5590, -1.9, -22, 0, 0.101, 1.44, 1884.9059, -0.1, 0, 0, + 0.100, 5.92, 5471.1324, -5.9, -63, 0, 0.099, 1.12, 15149.7333, -0.7, 6, 0, 0.096, 4.73, 15508.9972, -0.4, 10, + 0, 0.095, 5.18, 7230.9835, 1.5, 25, 0, 0.093, 3.37, 39900.5266, 3.9, 81, 0, 0.092, 2.01, 25057.0619, 2.7, 53, + 0, 0.092, 1.21, -79.6298, 0, 0, 0, 0.092, 1.65, -26310.2523, -4.0, -68, 0, 0.091, 1.01, 42062.5561, -1.0, 23, + 0, 0.090, 6.10, 29342.5781, -5.0, -32, 0, 0.090, 4.43, 15542.4020, -0.7, 6, 0, 0.090, 3.80, 15543.1066, -0.7, + 6, 0, 0.089, 4.15, 6063.3859, -2.2, -19, 0, 0.086, 4.03, 52.9691, 0, 0, 0, 0.085, 0.49, 47952.4409, -2.6, 11, + 0, 0.085, 1.60, 7632.8154, 2.1, 32, 0, 0.084, 0.22, 14392.0773, -0.7, 6, 0, 0.083, 6.22, 6028.4466, -4.0, -41, + 0, 0.083, 0.63, -7909.9389, 2.8, 26, 0, 0.083, 5.20, -77.5523, 0, 0, 0, 0.082, 2.74, 8786.1467, -2.2, -19, 0, + 0.080, 2.43, 9166.5428, -2.8, -26, 0, 0.080, 3.70, -25405.1732, 4.1, 27, 0, 0.078, 5.68, 48857.5200, 5.4, 106, + -1, 0.077, 1.85, 8315.5735, -2.2, -19, 0, 0.075, 5.46, -18191.1103, 1.9, 8, 0, 0.075, 1.41, -16238.6304, 1.3, + 1, 0, 0.074, 5.06, 40110.0761, -0.4, 30, 0, 0.072, 2.10, 64.4343, -3.7, -44, 0, 0.071, 2.17, 37671.2695, -3.5, + -6, 0, 0.069, 1.71, 16693.4313, -0.7, 6, 0, 0.069, 3.33, -26100.7028, -8.3, -119, 1, 0.068, 1.09, 8329.4028, + 1.5, 25, 0, 0.068, 3.62, 8327.9801, 1.5, 25, 0, 0.068, 2.41, 16833.1509, -1.0, 3, 0, 0.067, 3.40, 24709.2971, + -3.5, -20, 0, 0.067, 1.65, 8346.7156, -0.3, 3, 0, 0.066, 2.61, 22547.2677, 1.5, 39, 0, 0.066, 3.50, 15576.5113, + -1.0, 3, 0, 0.065, 5.76, 33037.9886, -2.0, 5, 0, 0.065, 4.58, 8322.1325, -0.3, 3, 0, 0.065, 6.20, 17913.9868, + 3.0, 50, 0, 0.065, 1.50, 22685.8295, -1.0, 9, 0, 0.065, 2.37, 7180.3058, -1.9, -15, 0, 0.064, 1.06, 30943.5332, + 2.4, 56, 0, 0.064, 1.89, 8288.8765, 1.5, 25, 0, 0.064, 4.70, 6.0335, 0.3, 4, 0, 0.063, 2.83, 8368.5063, 1.5, + 25, 0, 0.063, 5.66, -2580.7819, 0.7, 7, 0, 0.062, 3.78, 7056.3285, -2.2, -19, 0, 0.061, 1.49, 8294.9100, 1.8, + 29, 0, 0.061, 0.12, -10281.1714, -0.9, -18, 0, 0.061, 3.06, -8362.4729, -1.2, -21, 0, 0.061, 4.43, 8170.9571, + 1.5, 25, 0, 0.059, 5.78, -13.1179, -3.7, -44, 0, 0.059, 5.97, 6625.5702, -2.2, -19, 0, 0.058, 5.01, -0.5080, + -0.3, 0, 0, 0.058, 2.73, 7161.0938, -2.2, -19, 0, 0.057, 0.19, 7214.0629, -2.2, -19, 0, 0.057, 4.00, + 22199.5029, -4.7, -35, 0, 0.057, 5.38, 8119.1420, 5.8, 76, 0, 0.056, 1.07, 7542.6495, 1.5, 25, 0, 0.056, 0.28, + 8486.4258, 1.5, 25, 0, 0.054, 4.19, 16655.0816, 4.6, 75, 0, 0.053, 0.72, 7267.0320, -2.2, -19, 0, 0.053, 3.12, + 12.6192, 0.6, 7, 0, 0.052, 2.99, -32896.013, -1.8, -49, 0, 0.052, 3.46, 1097.708, 0, 0, 0, 0.051, 5.37, + -6443.786, -1.6, -25, 0, 0.051, 1.35, 7789.401, -2.2, -19, 0, 0.051, 5.83, 40042.502, 0.2, 38, 0, 0.051, 3.63, + 9114.733, 1.5, 25, 0, 0.050, 1.51, 8504.484, -2.5, -22, 0, 0.050, 5.23, 16659.684, 1.5, 25, 0, 0.050, 1.15, + 7247.820, -2.5, -23, 0, 0.047, 0.25, -1290.421, 0.3, 0, 0, 0.047, 4.67, -32686.464, -6.1, -100, 0, 0.047, 3.49, + 548.678, 0, 0, 0, 0.047, 2.37, 6663.308, -2.2, -19, 0, 0.046, 0.98, 1572.084, 0, 0, 0, 0.046, 2.04, 14954.262, + -0.7, 6, 0, 0.046, 3.72, 6691.693, -2.2, -19, 0, 0.045, 6.19, -235.287, 0, 0, 0, 0.044, 2.96, 32967.001, -0.1, + 27, 0, 0.044, 3.82, -1671.943, -5.6, -66, 0, 0.043, 5.82, 1179.063, 0, 0, 0, 0.043, 0.07, 34152.617, 1.7, 49, + 0, 0.043, 3.71, 6514.773, -0.3, 0, 0, 0.043, 5.62, 15.732, -2.5, -23, 0, 0.043, 5.80, 8351.233, -2.2, -19, 0, + 0.042, 0.27, 7740.199, 1.5, 25, 0, 0.042, 6.14, 15385.020, -0.7, 6, 0, 0.042, 6.13, 7285.051, -4.1, -41, 0, + 0.041, 1.27, 32757.451, 4.2, 78, 0, 0.041, 4.46, 8275.722, 1.5, 25, 0, 0.040, 0.23, 8381.661, 1.5, 25, 0, + 0.040, 5.87, -766.864, 2.5, 29, 0, 0.040, 1.66, 254.431, 0, 0, 0, 0.040, 0.40, 9027.981, -0.4, 0, 0, 0.040, + 2.96, 7777.936, 1.5, 25, 0, 0.039, 4.67, 33943.068, 6.1, 100, 0, 0.039, 3.52, 8326.062, 1.5, 25, 0, 0.039, + 3.75, 21013.887, -6.5, -57, 0, 0.039, 5.60, 606.978, 0, 0, 0, 0.039, 1.19, 8331.321, 1.5, 25, 0, 0.039, 2.84, + 7211.433, -2.2, -19, 0, 0.038, 0.67, 7216.693, -2.2, -19, 0, 0.038, 6.22, 25161.867, 0.6, 28, 0, 0.038, 4.40, + 7806.322, 1.5, 25, 0, 0.038, 4.16, 9179.168, -2.2, -19, 0, 0.037, 4.73, 14991.999, -0.7, 6, 0, 0.036, 0.35, + 67.514, -0.6, -7, 0, 0.036, 3.70, 25266.611, -1.6, 0, 0, 0.036, 5.39, 16328.796, -0.7, 6, 0, 0.035, 1.44, + 7174.248, -2.2, -19, 0, 0.035, 5.00, 15684.730, -4.4, -38, 0, 0.035, 0.39, -15.419, -2.2, -19, 0, 0.035, 6.07, + 15020.385, -0.7, 6, 0, 0.034, 6.01, 7371.797, -2.2, -19, 0, 0.034, 0.96, -16623.626, -3.4, -54, 0, 0.033, 6.24, + 9479.368, 1.5, 25, 0, 0.033, 3.21, 23661.896, 5.2, 82, 0, 0.033, 4.06, 8311.418, -2.2, -19, 0, 0.033, 2.40, + 1965.105, 0, 0, 0, 0.033, 5.17, 15489.785, -0.7, 6, 0, 0.033, 5.03, 21986.540, 0.9, 31, 0, 0.033, 4.10, + 16691.140, 2.7, 46, 0, 0.033, 5.13, 47114.589, 1.7, 63, 0, 0.033, 4.45, 8917.184, 1.5, 25, 0, 0.033, 4.23, + 2.078, 0, 0, 0, 0.032, 2.33, 75.251, 1.5, 25, 0, 0.032, 2.10, 7253.878, -2.2, -19, 0, 0.032, 3.11, -0.224, 1.5, + 25, 0, 0.032, 4.43, 16640.462, -0.7, 6, 0, 0.032, 5.68, 8328.363, 0, 0, 0, 0.031, 5.32, 8329.020, 3.0, 50, 0, + 0.031, 3.70, 16118.093, -0.7, 6, 0, 0.030, 3.67, 16721.817, -0.7, 6, 0, 0.030, 5.27, -1881.492, -1.2, -15, 0, + 0.030, 5.72, 8157.839, -2.2, -19, 0, 0.029, 5.73, -18400.313, -6.7, -94, 0, 0.029, 2.76, 16.000, -2.2, -19, 0, + 0.029, 1.75, 8879.447, 1.5, 25, 0, 0.029, 0.32, 8851.061, 1.5, 25, 0, 0.029, 0.90, 14704.903, 3.7, 57, 0, + 0.028, 2.90, 15595.723, -0.7, 6, 0, 0.028, 5.88, 16864.631, 0.2, 24, 0, 0.028, 0.63, 16869.234, -2.8, -26, 0, + 0.028, 4.04, -18609.863, -2.4, -43, 0, 0.027, 5.83, 6727.736, -5.9, -63, 0, 0.027, 6.12, 418.752, 4.3, 51, 0, + 0.027, 0.14, 41157.131, 3.9, 81, 0, 0.026, 3.80, 15.542, 0, 0, 0, 0.026, 1.68, 50181.698, 4.8, 99, -1, 0.026, + 0.32, 315.469, 0, 0, 0, 0.025, 5.67, 19.188, 0.3, 0, 0, 0.025, 3.16, 62.133, -2.2, -19, 0, 0.025, 3.76, + 15502.939, -0.7, 6, 0, 0.025, 4.53, 45999.961, -2.0, 19, 0, 0.024, 3.21, 837.851, -4.4, -51, 0, 0.024, 2.82, + 38157.596, 0.3, 37, 0, 0.024, 5.21, 15540.124, -0.7, 6, 0, 0.024, 0.26, 14218.576, 0, 13, 0, 0.024, 3.01, + 15545.384, -0.7, 6, 0, 0.024, 1.16, -17424.247, -0.6, -21, 0, 0.023, 2.34, -67.574, 0.6, 7, 0, 0.023, 2.44, + 18.024, -1.9, -22, 0, 0.023, 3.70, 469.400, 0, 0, 0, 0.023, 0.72, 7136.511, -2.2, -19, 0, 0.023, 4.50, + 15582.569, -0.7, 6, 0, 0.023, 2.80, -16586.395, -4.9, -72, 0, 0.023, 1.51, 80.182, 0, 0, 0, 0.023, 1.09, + 5261.583, -1.5, -12, 0, 0.023, 0.56, 54956.954, -0.5, 44, 0, 0.023, 4.01, 8550.860, -2.2, -19, 0, 0.023, 4.46, + 38995.448, -4.1, -14, 0, 0.023, 3.82, 2358.126, 0, 0, 0, 0.022, 3.77, 32271.125, 0.5, 34, 0, 0.022, 0.82, + 15935.775, -0.7, 6, 0, 0.022, 1.07, 24013.421, -2.9, -13, 0, 0.022, 0.40, 8940.078, -2.2, -19, 0, 0.022, 2.06, + 15700.489, -0.7, 6, 0, 0.022, 4.27, 15124.002, -5.0, -45, 0, 0.021, 1.16, 56071.583, 3.2, 88, 0, 0.021, 5.58, + 9572.189, -2.2, -19, 0, 0.020, 1.70, -17.273, -3.7, -44, 0, 0.020, 3.05, 214.617, 0, 0, 0, 0.020, 4.41, + 8391.048, -2.2, -19, 0, 0.020, 5.95, 23869.145, 2.4, 56, 0, 0.020, 0.42, 40947.927, -4.7, -21, 0, 0.019, 1.39, + 5818.897, 0.3, 10, 0, 0.019, 0.71, 23873.747, -0.7, 6, 0, 0.019, 2.81, 7291.615, -2.2, -19, 0, 0.019, 5.09, + 8428.018, -2.2, -19, 0, 0.019, 4.14, 6518.187, -1.6, -12, 0, 0.019, 3.85, 21.330, 0, 0, 0, 0.018, 0.66, + 14445.046, -0.7, 6, 0, 0.018, 1.65, 0.966, -4.0, -48, 0, 0.018, 5.64, -17143.709, -6.8, -94, 0, 0.018, 6.01, + 7736.432, -2.2, -19, 0, 0.018, 2.74, 31153.083, -1.9, 5, 0, 0.018, 4.58, 6116.355, -2.2, -19, 0, 0.018, 2.28, + 46.401, 0.3, 0, 0, 0.018, 3.80, 10213.597, 1.4, 25, 0, 0.018, 2.84, 56281.132, -1.1, 36, 0, 0.018, 3.53, + 8249.062, 1.5, 25, 0, 0.017, 4.43, 20871.911, -3, -13, 0, 0.017, 4.44, 627.596, 0, 0, 0, 0.017, 1.85, 628.308, + 0, 0, 0, 0.017, 1.19, 8408.321, 2, 25, 0, 0.017, 1.95, 7214.056, -2, -19, 0, 0.017, 1.57, 7214.070, -2, -19, 0, + 0.017, 1.65, 13870.811, -6, -60, 0, 0.017, 0.30, 22.542, -4, -44, 0, 0.017, 2.62, -119.445, 0, 0, 0, 0.016, + 4.87, 5747.909, 2, 32, 0, 0.016, 4.45, 14339.108, -1, 6, 0, 0.016, 1.83, 41366.680, 0, 30, 0, 0.016, 4.53, + 16309.618, -3, -23, 0, 0.016, 2.54, 15542.754, -1, 6, 0, 0.016, 6.05, 1203.646, 0, 0, 0, 0.015, 5.2, 2751.147, + 0, 0, 0, 0.015, 1.8, -10699.924, -5, -69, 0, 0.015, 0.4, 22824.391, -3, -20, 0, 0.015, 2.1, 30666.756, -6, -39, + 0, 0.015, 2.1, 6010.417, -2, -19, 0, 0.015, 0.7, -23729.470, -5, -75, 0, 0.015, 1.4, 14363.691, -1, 6, 0, + 0.015, 5.8, 16900.689, -2, 0, 0, 0.015, 5.2, 23800.458, 3, 53, 0, 0.015, 5.3, 6035.000, -2, -19, 0, 0.015, 1.2, + 8251.139, 2, 25, 0, 0.015, 3.6, -8.860, 0, 0, 0, 0.015, 0.8, 882.739, 0, 0, 0, 0.015, 3.0, 1021.329, 0, 0, 0, + 0.015, 0.6, 23296.107, 1, 31, 0, 0.014, 5.4, 7227.181, 2, 25, 0, 0.014, 0.1, 7213.352, -2, -19, 0, 0.014, 4.0, + 15506.706, 3, 50, 0, 0.014, 3.4, 7214.774, -2, -19, 0, 0.014, 4.6, 6665.385, -2, -19, 0, 0.014, 0.1, -8.636, + -2, -22, 0, 0.014, 3.1, 15465.202, -1, 6, 0, 0.014, 4.9, 508.863, 0, 0, 0, 0.014, 3.5, 8406.244, 2, 25, 0, + 0.014, 1.3, 13313.497, -8, -82, 0, 0.014, 2.8, 49276.619, -3, 0, 0, 0.014, 0.1, 30528.194, -3, -10, 0, 0.013, + 1.7, 25128.050, 1, 31, 0, 0.013, 2.9, 14128.405, -1, 6, 0, 0.013, 3.4, 57395.761, 3, 80, 0, 0.013, 2.7, + 13029.546, -1, 6, 0, 0.013, 3.9, 7802.556, -2, -19, 0, 0.013, 1.6, 8258.802, -2, -19, 0, 0.013, 2.2, 8417.709, + -2, -19, 0, 0.013, 0.7, 9965.210, -2, -19, 0, 0.013, 3.4, 50391.247, 0, 48, 0, 0.013, 3.0, 7134.433, -2, -19, + 0, 0.013, 2.9, 30599.182, -5, -31, 0, 0.013, 3.6, -9723.857, 1, 0, 0, 0.013, 4.8, 7607.084, -2, -19, 0, 0.012, + 0.8, 23837.689, 1, 35, 0, 0.012, 3.6, 4.409, -4, -44, 0, 0.012, 5.0, 16657.031, 3, 50, 0, 0.012, 4.4, + 16657.735, 3, 50, 0, 0.012, 1.1, 15578.803, -4, -38, 0, 0.012, 6.0, -11.490, 0, 0, 0, 0.012, 1.9, 8164.398, 0, + 0, 0, 0.012, 2.4, 31852.372, -4, -17, 0, 0.012, 2.4, 6607.085, -2, -19, 0, 0.012, 4.2, 8359.870, 0, 0, 0, + 0.012, 0.5, 5799.713, -2, -19, 0, 0.012, 2.7, 7220.622, 0, 0, 0, 0.012, 4.3, -139.720, 0, 0, 0, 0.012, 2.3, + 13728.836, -2, -16, 0, 0.011, 3.6, 14912.146, 1, 31, 0, 0.011, 4.7, 14916.748, -2, -19, 0), + (1.67680, 4.66926, 628.301955, -0.0266, 0.1, -0.005, 0.51642, 3.3721, 6585.760910, -2.158, -18.9, 0.09, 0.41383, + 5.7277, 14914.452335, -0.635, 6.2, -0.04, 0.37115, 3.9695, 7700.389469, 1.550, 25.0, -0.12, 0.27560, 0.7416, + 8956.993380, 1.496, 25.1, -0.13, 0.24599, 4.2253, -2.301200, 1.523, 25.1, -0.12, 0.07118, 0.1443, 7842.36482, + -2.211, -19, 0.08, 0.06128, 2.4998, 16171.05625, -0.688, 6, 0, 0.04516, 0.443, 8399.67910, -0.36, 3, 0, + 0.04048, 5.771, 14286.15038, -0.61, 6, 0, 0.03747, 4.626, 1256.60391, -0.05, 0, 0, 0.03707, 3.415, 5957.45895, + -2.13, -19, 0.1, 0.03649, 1.800, 23243.14376, 0.89, 31, -0.2, 0.02438, 0.042, 16029.08089, 3.07, 50, -0.2, + 0.02165, 1.017, -1742.93051, -3.68, -44, 0.2, 0.01923, 3.097, 17285.68480, 3.02, 50, -0.3, 0.01692, 1.280, + 0.3286, 1.52, 25, -0.1, 0.01361, 0.298, 8326.3902, 3.05, 50, -0.2, 0.01293, 4.013, 7072.0875, 1.58, 25, -0.1, + 0.01276, 4.413, 8330.9926, 0, 0, 0, 0.01270, 0.101, 8470.6668, -2.24, -19, 0.1, 0.01097, 1.203, 22128.5152, + -2.82, -13, 0, 0.01088, 2.545, 15542.7543, -0.66, 6, 0, 0.00835, 0.190, 7214.0629, -2.18, -19, 0.1, 0.00734, + 4.855, 24499.7477, 0.83, 31, -0.2, 0.00686, 5.130, 13799.8238, -4.34, -38, 0.2, 0.00631, 0.930, -486.3266, + -3.73, -44, 0, 0.00585, 0.699, 9585.2953, 1.5, 25, 0, 0.00566, 4.073, 8328.3391, 1.5, 25, 0, 0.00566, 0.638, + 8329.0437, 1.5, 25, 0, 0.00539, 2.472, -1952.4800, 0.6, 7, 0, 0.00509, 2.88, -0.7113, 0, 0, 0, 0.00469, 3.56, + 30457.2066, -1.3, 12, 0, 0.00387, 0.78, -0.3523, 0, 0, 0, 0.00378, 1.84, 22614.8418, 0.9, 31, 0, 0.00362, 5.53, + -695.8761, 0.6, 7, 0, 0.00317, 2.80, 16728.3705, 1.2, 28, 0, 0.00303, 6.07, 157.7344, 0, 0, 0, 0.00300, 2.53, + 33.7570, -0.3, -4, 0, 0.00295, 4.16, 31571.8352, 2.4, 56, 0, 0.00289, 5.98, 7211.7617, -0.7, 6, 0, 0.00285, + 2.06, 15540.4531, 0.9, 31, 0, 0.00283, 2.65, 2.6298, 0, 0, 0, 0.00282, 6.17, 15545.0555, -2.2, -19, 0, 0.00278, + 1.23, -39.8149, 0, 0, 0, 0.00272, 3.82, 7216.3641, -3.7, -44, 0, 0.00270, 4.37, 70.9877, -1.9, -22, 0, 0.00256, + 5.81, 13657.8484, -0.6, 6, 0, 0.00244, 5.64, -0.2237, 1.5, 25, 0, 0.00240, 2.96, 8311.7707, -2.2, -19, 0, + 0.00239, 0.87, -33.7814, 0.3, 4, 0, 0.00216, 2.31, 15.9995, -2.2, -19, 0, 0.00186, 3.46, 5329.1570, -2.1, -19, + 0, 0.00169, 2.40, 24357.772, 4.6, 75, 0, 0.00161, 5.80, 8329.403, 1.5, 25, 0, 0.00161, 5.20, 8327.980, 1.5, 25, + 0, 0.00160, 4.26, 23385.119, -2.9, -13, 0, 0.00156, 1.26, 550.755, 0, 0, 0, 0.00155, 1.25, 21500.213, -2.8, + -13, 0, 0.00152, 0.60, -16.921, -3.7, -44, 0, 0.00150, 2.71, -79.630, 0, 0, 0, 0.00150, 5.29, 15.542, 0, 0, 0, + 0.00148, 1.06, -2371.232, -3.7, -44, 0, 0.00141, 0.77, 8328.691, 1.5, 25, 0, 0.00141, 3.67, 7143.075, -0.3, 0, + 0, 0.00138, 5.45, 25614.376, 4.5, 75, 0, 0.00129, 4.90, 23871.446, 0.9, 31, 0, 0.00126, 4.03, 141.975, -3.8, + -44, 0, 0.00124, 6.01, 522.369, 0, 0, 0, 0.00120, 4.94, -10071.622, -5.2, -69, 0, 0.00118, 5.07, -15.419, -2.2, + -19, 0, 0.00107, 3.49, 23452.693, -3.4, -20, 0, 0.00104, 4.78, 17495.234, -1.3, 0, 0, 0.00103, 1.44, -18.049, + -2.2, -19, 0, 0.00102, 5.63, 15542.402, -0.7, 6, 0, 0.00102, 2.59, 15543.107, -0.7, 6, 0, 0.00100, 4.11, + -6.559, -1.9, -22, 0, 0.00097, 0.08, 15400.779, 3.1, 50, 0, 0.00096, 5.84, 31781.385, -1.9, 5, 0, 0.00094, + 1.08, 8328.363, 0, 0, 0, 0.00094, 2.46, 16799.358, -0.7, 6, 0, 0.00094, 1.69, 6376.211, 2.2, 32, 0, 0.00093, + 3.64, 8329.020, 3.0, 50, 0, 0.00093, 2.65, 16655.082, 4.6, 75, 0, 0.00090, 1.90, 15056.428, -4.4, -38, 0, + 0.00089, 1.59, 52.969, 0, 0, 0, 0.00088, 2.02, -8257.704, -3.4, -47, 0, 0.00088, 3.02, 7213.711, -2.2, -19, 0, + 0.00087, 0.50, 7214.415, -2.2, -19, 0, 0.00087, 0.49, 16659.684, 1.5, 25, 0, 0.00082, 5.64, -4.931, 1.5, 25, 0, + 0.00079, 5.17, 13171.522, -4.3, -38, 0, 0.00076, 3.60, 29828.905, -1.3, 12, 0, 0.00076, 4.08, 24567.322, 0.3, + 24, 0, 0.00076, 4.58, 1884.906, -0.1, 0, 0, 0.00073, 0.33, 31713.811, -1.4, 12, 0, 0.00073, 0.93, 32828.439, + 2.4, 56, 0, 0.00071, 5.91, 38785.898, 0.2, 37, 0, 0.00069, 2.20, 15613.742, -2.5, -16, 0, 0.00066, 3.87, + 15.732, -2.5, -23, 0, 0.00066, 0.86, 25823.926, 0.2, 24, 0, 0.00065, 2.52, 8170.957, 1.5, 25, 0, 0.00063, 0.18, + 8322.132, -0.3, 0, 0, 0.00060, 5.84, 8326.062, 1.5, 25, 0, 0.00060, 5.15, 8331.321, 1.5, 25, 0, 0.00060, 2.18, + 8486.426, 1.5, 25, 0, 0.00058, 2.30, -1.731, -4, -44, 0, 0.00058, 5.43, 14357.138, -2, -16, 0, 0.00057, 3.09, + 8294.910, 2, 29, 0, 0.00057, 4.67, -8362.473, -1, -21, 0, 0.00056, 4.15, 16833.151, -1, 0, 0, 0.00054, 1.93, + 7056.329, -2, -19, 0, 0.00054, 5.27, 8315.574, -2, -19, 0, 0.00052, 5.6, 8311.418, -2, -19, 0, 0.00052, 2.7, + -77.552, 0, 0, 0, 0.00051, 4.3, 7230.984, 2, 25, 0, 0.00050, 0.4, -0.508, 0, 0, 0, 0.00049, 5.4, 7211.433, -2, + -19, 0, 0.00049, 4.4, 7216.693, -2, -19, 0, 0.00049, 4.3, 16864.631, 0, 24, 0, 0.00049, 2.2, 16869.234, -3, + -26, 0, 0.00047, 6.1, 627.596, 0, 0, 0, 0.00047, 5.0, 12.619, 1, 7, 0, 0.00045, 4.9, -8815.018, -5, -69, 0, + 0.00044, 1.6, 62.133, -2, -19, 0, 0.00042, 2.9, -13.118, -4, -44, 0, 0.00042, 4.1, -119.445, 0, 0, 0, 0.00041, + 4.3, 22756.817, -3, -13, 0, 0.00041, 3.6, 8288.877, 2, 25, 0, 0.00040, 0.5, 6663.308, -2, -19, 0, 0.00040, 1.1, + 8368.506, 2, 25, 0, 0.00039, 4.1, 6443.786, 2, 25, 0, 0.00039, 3.1, 16657.383, 3, 50, 0, 0.00038, 0.1, + 16657.031, 3, 50, 0, 0.00038, 3.0, 16657.735, 3, 50, 0, 0.00038, 4.6, 23942.433, -1, 9, 0, 0.00037, 4.3, + 15385.020, -1, 6, 0, 0.00037, 5.0, 548.678, 0, 0, 0, 0.00036, 1.8, 7213.352, -2, -19, 0, 0.00036, 1.7, + 7214.774, -2, -19, 0, 0.00035, 1.1, 7777.936, 2, 25, 0, 0.00035, 1.6, -8.860, 0, 0, 0, 0.00035, 4.4, 23869.145, + 2, 56, 0, 0.00035, 2.0, 6691.693, -2, -19, 0, 0.00034, 1.3, -1185.616, -2, -22, 0, 0.00034, 2.2, 23873.747, -1, + 6, 0, 0.00033, 2.0, -235.287, 0, 0, 0, 0.00033, 3.1, 17913.987, 3, 50, 0, 0.00033, 1.0, 8351.233, -2, -19, 0), + (0.004870, 4.6693, 628.30196, -0.027, 0, -0.01, 0.002280, 2.6746, -2.30120, 1.523, 25, -0.12, 0.001500, 3.372, + 6585.76091, -2.16, -19, 0.1, 0.001200, 5.728, 14914.45233, -0.64, 6, 0, 0.001080, 3.969, 7700.38947, 1.55, 25, + -0.1, 0.000800, 0.742, 8956.99338, 1.50, 25, -0.1, 0.000254, 6.002, 0.3286, 1.52, 25, -0.1, 0.000210, 0.144, + 7842.3648, -2.21, -19, 0, 0.000180, 2.500, 16171.0562, -0.7, 6, 0, 0.000130, 0.44, 8399.6791, -0.4, 3, 0, + 0.000126, 5.03, 8326.3902, 3.0, 50, 0, 0.000120, 5.77, 14286.1504, -0.6, 6, 0, 0.000118, 5.96, 8330.9926, 0, 0, + 0, 0.000110, 1.80, 23243.1438, 0.9, 31, 0, 0.000110, 3.42, 5957.4590, -2.1, -19, 0, 0.000110, 4.63, 1256.6039, + -0.1, 0, 0, 0.000099, 4.70, -0.7113, 0, 0, 0, 0.000070, 0.04, 16029.0809, 3.1, 50, 0, 0.000070, 5.14, + 8328.3391, 1.5, 25, 0, 0.000070, 5.85, 8329.0437, 1.5, 25, 0, 0.000060, 1.02, -1742.9305, -3.7, -44, 0, + 0.000060, 3.10, 17285.6848, 3.0, 50, 0, 0.000054, 5.69, -0.352, 0, 0, 0, 0.000043, 0.52, 15.542, 0, 0, 0, + 0.000041, 2.03, 2.630, 0, 0, 0, 0.000040, 0.10, 8470.667, -2.2, -19, 0, 0.000040, 4.01, 7072.088, 1.6, 25, 0, + 0.000036, 2.93, -8.860, -0.3, 0, 0, 0.000030, 1.20, 22128.515, -2.8, -13, 0, 0.000030, 2.54, 15542.754, -0.7, + 6, 0, 0.000027, 4.43, 7211.762, -0.7, 6, 0, 0.000026, 0.51, 15540.453, 0.9, 31, 0, 0.000026, 1.44, 15545.055, + -2.2, -19, 0, 0.000025, 5.37, 7216.364, -3.7, -44, 0), + (0.00001200, 1.041, -2.3012, 1.52, 25, -0.1, 0.00000170, 0.31, -0.711, 0, 0, 0) + ) + __QI_KB = ( + 1640650.479938, 15.21842500, # -221-11-09 h=0.01709 古历·秦汉 + 1642476.703182, 15.21874996, # -216-11-09 h=0.01557 古历·秦汉 + 1683430.515601, 15.218750011, # -104-12-25 h=0.01560 汉书·律历志(太初历)平气平朔 回归年=365.25000 + 1752157.640664, 15.218749978, # 85-02-23 h=0.01559 后汉书·律历志(四分历) 回归年=365.25000 + 1807675.003759, 15.218620279, # 237-02-22 h=0.00010 晋书·律历志(景初历) 回归年=365.24689 + 1883627.765182, 15.218612292, # 445-02-03 h=0.00026 宋书·律历志(何承天元嘉历) 回归年=365.24670 + 1907369.128100, 15.218449176, # 510-02-03 h=0.00027 宋书·律历志(祖冲之大明历) 回归年=365.24278 + 1936603.140413, 15.218425000, # 590-02-17 h=0.00149 随书·律历志(开皇历) 回归年=365.24220 + 1939145.524180, 15.218466998, # 597-02-03 h=0.00121 随书·律历志(大业历) 回归年=365.24321 + 1947180.798300, 15.218524844, # 619-02-03 h=0.00052 新唐书·历志(戊寅元历)平气定朔 回归年=365.24460 + 1964362.041824, 15.218533526, # 666-02-17 h=0.00059 新唐书·历志(麟德历) 回归年=365.24480 + 1987372.340971, 15.218513908, # 729-02-16 h=0.00096 新唐书·历志(大衍历,至德历) 回归年=365.24433 + 1999653.819126, 15.218530782, # 762-10-03 h=0.00093 新唐书·历志(五纪历) 回归年=365.24474 + 2007445.469786, 15.218535181, # 784-02-01 h=0.00059 新唐书·历志(正元历,观象历) 回归年=365.24484 + 2021324.917146, 15.218526248, # 822-02-01 h=0.00022 新唐书·历志(宣明历) 回归年=365.24463 + 2047257.232342, 15.218519654, # 893-01-31 h=0.00015 新唐书·历志(崇玄历) 回归年=365.24447 + 2070282.898213, 15.218425000, # 956-02-16 h=0.00149 旧五代·历志(钦天历) 回归年=365.24220 + 2073204.872850, 15.218515221, # 964-02-16 h=0.00166 宋史·律历志(应天历) 回归年=365.24437 + 2080144.500926, 15.218530782, # 983-02-16 h=0.00093 宋史·律历志(乾元历) 回归年=365.24474 + 2086703.688963, 15.218523776, # 1001-01-31 h=0.00067 宋史·律历志(仪天历,崇天历) 回归年=365.24457 + 2110033.182763, 15.218425000, # 1064-12-15 h=0.00669 宋史·律历志(明天历) 回归年=365.24220 + 2111190.300888, 15.218425000, # 1068-02-15 h=0.00149 宋史·律历志(崇天历) 回归年=365.24220 + 2113731.271005, 15.218515671, # 1075-01-30 h=0.00038 李锐补修(奉元历) 回归年=365.24438 + 2120670.840263, 15.218425000, # 1094-01-30 h=0.00149 宋史·律历志 回归年=365.24220 + 2123973.309063, 15.218425000, # 1103-02-14 h=0.00669 李锐补修(占天历) 回归年=365.24220 + 2125068.997336, 15.218477932, # 1106-02-14 h=0.00056 宋史·律历志(纪元历) 回归年=365.24347 + 2136026.312633, 15.218472436, # 1136-02-14 h=0.00088 宋史·律历志(统元历,乾道历,淳熙历) 回归年=365.24334 + 2156099.495538, 15.218425000, # 1191-01-29 h=0.00149 宋史·律历志(会元历) 回归年=365.24220 + 2159021.324663, 15.218425000, # 1199-01-29 h=0.00149 宋史·律历志(统天历) 回归年=365.24220 + 2162308.575254, 15.218461742, # 1208-01-30 h=0.00146 宋史·律历志(开禧历) 回归年=365.24308 + 2178485.706538, 15.218425000, # 1252-05-15 h=0.04606 淳祐历 回归年=365.24220 + 2178759.662849, 15.218445786, # 1253-02-13 h=0.00231 会天历 回归年=365.24270 + 2185334.020800, 15.218425000, # 1271-02-13 h=0.00520 宋史·律历志(成天历) 回归年=365.24220 + 2187525.481425, 15.218425000, # 1277-02-12 h=0.00520 本天历 回归年=365.24220 + 2188621.191481, 15.218437494, # 1280-02-13 h=0.00015 元史·历志(郭守敬授时历) 回归年=365.24250 + 2322147.76 # 1645-09-21 + ) + # 1645-09-23开始7567个节气修正表 + __QB = '' + __SHUO_KB = ( + 1457698.231017, 29.53067166, 1546082.512234, 29.53085106, 1640640.735300, 29.53060000, 1642472.151543, + 29.53085439, + 1683430.509300, 29.53086148, 1752148.041079, 29.53085097, 1807665.420323, 29.53059851, 1883618.114100, + 29.53060000, + 1907360.704700, 29.53060000, 1936596.224900, 29.53060000, 1939135.675300, 29.53060000, 1947168.00) + # 619-01-21开始16598个朔日修正表 d0=1947168 + __SB = '' + + @staticmethod + def __decode(s: str) -> str: + o = '0000000000' + o2 = o + o + s = s.replace('J', '00') + s = s.replace('I', '000') + s = s.replace('H', '0000') + s = s.replace('G', '00000') + s = s.replace('t', '02') + s = s.replace('s', '002') + s = s.replace('r', '0002') + s = s.replace('q', '00002') + s = s.replace('p', '000002') + s = s.replace('o', '0000002') + s = s.replace('n', '00000002') + s = s.replace('m', '000000002') + s = s.replace('l', '0000000002') + s = s.replace('k', '01') + s = s.replace('j', '0101') + s = s.replace('i', '001') + s = s.replace('h', '001001') + s = s.replace('g', '0001') + s = s.replace('f', '00001') + s = s.replace('e', '000001') + s = s.replace('d', '0000001') + s = s.replace('c', '00000001') + s = s.replace('b', '000000001') + s = s.replace('a', '0000000001') + s = s.replace('A', o2 + o2 + o2) + s = s.replace('B', o2 + o2 + o) + s = s.replace('C', o2 + o2) + s = s.replace('D', o2 + o) + s = s.replace('E', o2) + s = s.replace('F', o) + return s + + @staticmethod + def nutation_lon2(t: float) -> float: + a: float = -1.742 * t + t2: float = t * t + dl: float = 0 + for i in range(0, ShouXingUtil.__NUT_B.__len__(), 5): + dl += (ShouXingUtil.__NUT_B[i + 3] + a) * sin( + ShouXingUtil.__NUT_B[i] + ShouXingUtil.__NUT_B[i + 1] * t + ShouXingUtil.__NUT_B[i + 2] * t2) + a = 0 + return dl / 100 / ShouXingUtil.SECOND_PER_RAD + + @staticmethod + def e_lon(t: float, n: int) -> float: + t /= 10 + v: float = 0 + tn: float = 1 + pn: int = 1 + m0: float = ShouXingUtil.__XL0[pn + 1] - ShouXingUtil.__XL0[pn] + for i in range(0, 6): + n1 = int(ShouXingUtil.__XL0[pn + i]) + n2 = int(ShouXingUtil.__XL0[pn + 1 + i]) + n0 = n2 - n1 + if n0 == 0: + continue + if n < 0: + m = n2 + else: + m = int((3 * n * n0 / m0 + 0.5) + n1) + if i != 0: + m += 3 + if m > n2: + m = n2 + c = 0 + for j in range(n1, m, 3): + c += ShouXingUtil.__XL0[j] * cos(ShouXingUtil.__XL0[j + 1] + t * ShouXingUtil.__XL0[j + 2]) + v += c * tn + tn *= t + v /= ShouXingUtil.__XL0[0] + t2 = t * t + t3 = t2 * t + return v + (-0.0728 - 2.7702 * t - 1.1019 * t2 - 0.0996 * t3) / ShouXingUtil.SECOND_PER_RAD + + @staticmethod + def m_lon(t: float, n: int) -> float: + ob = ShouXingUtil.__XL1 + obl = len(ob[0]) + tn = 1 + v = 0 + t2 = t * t + t3 = t2 * t + t4 = t3 * t + t5 = t4 * t + tx = t - 10 + v += (3.81034409 + 8399.684730072 * t - 3.319e-05 * t2 + 3.11e-08 * t3 - 2.033e-10 * t4) * ShouXingUtil.SECOND_PER_RAD + v += 5028.792262 * t + 1.1124406 * t2 + 0.00007699 * t3 - 0.000023479 * t4 - 0.0000000178 * t5 + if tx > 0: + v += -0.866 + 1.43 * tx + 0.054 * tx * tx + t2 /= 1e4 + t3 /= 1e8 + t4 /= 1e8 + + n *= 6 + if n < 0: + n = obl + for i in range(len(ob)): + f = ob[i] + size = len(f) + m = int(n * size / obl + 0.5) + if i > 0: + m += 6 + if m >= size: + m = size + c = 0 + for j in range(0, m, 6): + c += f[j] * cos(f[j + 1] + t * f[j + 2] + t2 * f[j + 3] + t3 * f[j + 4] + t4 * f[j + 5]) + v += c * tn + tn *= t + return v / ShouXingUtil.SECOND_PER_RAD + + @staticmethod + def gxc_sun_lon(t: float) -> float: + return -20.49552 * (1 + (0.016708634 - 0.000042037 * t - 0.0000001267 * t * t) * cos(-0.043126 + 628.301955 * t - 0.000002732 * t * t)) / ShouXingUtil.SECOND_PER_RAD + + @staticmethod + def ev(t: float) -> float: + f = 628.307585 * t + return 628.332 + 21 * sin(1.527 + f) + 0.44 * sin(1.48 + f * 2) + 0.129 * sin(5.82 + f) * t + 0.00055 * sin(4.21 + f) * t * t + + @staticmethod + def mv(t: float) -> float: + v = 8399.71 - 914 * sin(0.7848 + 8328.691425 * t + 0.0001523 * t * t) + return v - (179 * sin(2.543 + 15542.7543 * t) + 160 * sin(0.1874 + 7214.0629 * t) + 62 * sin(3.14 + 16657.3828 * t) + 34 * sin(4.827 + 16866.9323 * t) + 22 * sin(4.9 + 23871.4457 * t) + 12 * sin(2.59 + 14914.4523 * t) + 7 * sin(0.23 + 6585.7609 * t) + 5 * sin(0.9 + 25195.624 * t) + 5 * sin(2.32 - 7700.3895 * t) + 5 * sin(3.88 + 8956.9934 * t) + 5 * sin(0.49 + 7771.3771 * t)) + + @staticmethod + def sa_lon(t: float, n: int) -> float: + return ShouXingUtil.e_lon(t, n) + ShouXingUtil.nutation_lon2(t) + ShouXingUtil.gxc_sun_lon(t) + ShouXingUtil.PI + + @staticmethod + def dt_ext(y: float, jsd: int) -> float: + dy = (y - 1820) * 1.0 / 100 + return - 20 + jsd * dy * dy + + @staticmethod + def dt_calc(y: float) -> float: + size = len(ShouXingUtil.__DT_AT) + y0 = ShouXingUtil.__DT_AT[size - 2] + t0 = ShouXingUtil.__DT_AT[size - 1] + if y >= y0: + jsd: int = 31 + if y > y0 + 100: + return ShouXingUtil.dt_ext(y, jsd) + v = ShouXingUtil.dt_ext(y, jsd) + dv = ShouXingUtil.dt_ext(y0, jsd) - t0 + return v - dv * (y0 + 100 - y) / 100 + i = 0 + for i in range(0, size, 5): + if y < ShouXingUtil.__DT_AT[i + 5]: + break + t1 = (y - ShouXingUtil.__DT_AT[i]) / (ShouXingUtil.__DT_AT[i + 5] - ShouXingUtil.__DT_AT[i]) * 10 + t2 = t1 * t1 + t3 = t2 * t1 + return ShouXingUtil.__DT_AT[i + 1] + ShouXingUtil.__DT_AT[i + 2] * t1 + ShouXingUtil.__DT_AT[i + 3] * t2 + ShouXingUtil.__DT_AT[i + 4] * t3 + + @staticmethod + def dt_t(t: float) -> float: + return ShouXingUtil.dt_calc(t / 365.2425 + 2000) / ShouXingUtil.SECOND_PER_DAY + + @staticmethod + def sa_lon_t(w: float) -> float: + v = 628.3319653318 + t = (w - 1.75347 - ShouXingUtil.PI) / v + v = ShouXingUtil.ev(t) + t += (w - ShouXingUtil.sa_lon(t, 10)) / v + v = ShouXingUtil.ev(t) + return t + (w - ShouXingUtil.sa_lon(t, -1)) / v + + @staticmethod + def msa_lon(t: float, mn: int, sn: int) -> float: + return ShouXingUtil.m_lon(t, mn) + (-3.4E-6) - (ShouXingUtil.e_lon(t, sn) + ShouXingUtil.gxc_sun_lon(t) + ShouXingUtil.PI) + + @staticmethod + def msa_lon_t(w: float) -> float: + v = 7771.37714500204 + t = (w + 1.08472) / v + t += (w - ShouXingUtil.msa_lon(t, 3, 3)) / v + v = ShouXingUtil.mv(t) - ShouXingUtil.ev(t) + t += (w - ShouXingUtil.msa_lon(t, 20, 10)) / v + return t + (w - ShouXingUtil.msa_lon(t, -1, 60)) / v + + @staticmethod + def sa_lon_t2(w: float) -> float: + v = 628.3319653318 + t = (w - 1.75347 - ShouXingUtil.PI) / v + t -= (0.000005297 * t * t + 0.0334166 * cos(4.669257 + 628.307585 * t) + 0.0002061 * cos(2.67823 + 628.307585 * t) * t) / v + return t + (w - ShouXingUtil.e_lon(t, 8) - ShouXingUtil.PI + (20.5 + 17.2 * sin(2.1824 - 33.75705 * t)) / ShouXingUtil.SECOND_PER_RAD) / v + + @staticmethod + def msa_lon_t2(w: float) -> float: + v = 7771.37714500204 + t = (w + 1.08472) / v + t2 = t * t + t -= (-0.00003309 * t2 + 0.10976 * cos(0.784758 + 8328.6914246 * t + 0.000152292 * t2) + 0.02224 * cos(0.18740 + 7214.0628654 * t - 0.00021848 * t2) - 0.03342 * cos(4.669257 + 628.307585 * t)) / v + t2 = t * t + n = ShouXingUtil.m_lon(t, 20) - (4.8950632 + 628.3319653318 * t + 0.000005297 * t2 + 0.0334166 * cos(4.669257 + 628.307585 * t) + 0.0002061 * cos(2.67823 + 628.307585 * t) * t + 0.000349 * cos(4.6261 + 1256.61517 * t) - 20.5 / ShouXingUtil.SECOND_PER_RAD) + return t + (w - n) / (7771.38 - 914 * sin(0.7848 + 8328.691425 * t + 0.0001523 * t2) - 179 * sin(2.543 + 15542.7543 * t) - 160 * sin(0.1874 + 7214.0629 * t)) + + @staticmethod + def qi_high(w: float) -> float: + t = ShouXingUtil.sa_lon_t2(w) * 36525 + t = t - ShouXingUtil.dt_t(t) + ShouXingUtil.ONE_THIRD + v = ((t + 0.5) % 1) * ShouXingUtil.SECOND_PER_DAY + if v < 1200 or v > ShouXingUtil.SECOND_PER_DAY - 1200: + t = ShouXingUtil.sa_lon_t(w) * 36525 - ShouXingUtil.dt_t(t) + ShouXingUtil.ONE_THIRD + return t + + @staticmethod + def qi_low(w: float) -> float: + v = 628.3319653318 + t = (w - 4.895062166) / v + t -= (53 * t * t + 334116 * cos(4.67 + 628.307585 * t) + 2061 * cos(2.678 + 628.3076 * t) * t) / v / 10000000 + n = 48950621.66 + 6283319653.318 * t + 53 * t * t + 334166 * cos(4.669257 + 628.307585 * t) + 3489 * cos(4.6261 + 1256.61517 * t) + 2060.6 * cos(2.67823 + 628.307585 * t) * t - 994 - 834 * sin(2.1824 - 33.75705 * t) + t -= (n / 10000000 - w) / 628.332 + (32 * (t + 1.8) * (t + 1.8) - 20) / ShouXingUtil.SECOND_PER_DAY / 36525 + return t * 36525 + ShouXingUtil.ONE_THIRD + + @staticmethod + def shuo_high(w: float) -> float: + t = ShouXingUtil.msa_lon_t2(w) * 36525 + t = t - ShouXingUtil.dt_t(t) + ShouXingUtil.ONE_THIRD + v = ((t + 0.5) % 1) * ShouXingUtil.SECOND_PER_DAY + if v < 1800 or v > ShouXingUtil.SECOND_PER_DAY - 1800: + t = ShouXingUtil.msa_lon_t(w) * 36525 - ShouXingUtil.dt_t(t) + ShouXingUtil.ONE_THIRD + return t + + @staticmethod + def shuo_low(w: float) -> float: + v = 7771.37714500204 + t = (w + 1.08472) / v + t -= (-0.0000331 * t * t + 0.10976 * cos(0.785 + 8328.6914 * t) + 0.02224 * cos(0.187 + 7214.0629 * t) - 0.03342 * cos(4.669 + 628.3076 * t)) / v + (32 * (t + 1.8) * (t + 1.8) - 20) / ShouXingUtil.SECOND_PER_DAY / 36525 + return t * 36525 + ShouXingUtil.ONE_THIRD + + @staticmethod + def calc_shuo(jd: float) -> int: + if len(ShouXingUtil.__SB) < 1: + ShouXingUtil.__SB = ShouXingUtil.__decode('EqoFscDcrFpmEsF2DfFideFelFpFfFfFiaipqti1ksttikptikqckstekqttgkqttgkqteksttikptikq2fjstgjqttjkqttgkqtekstfkptikq2tijstgjiFkirFsAeACoFsiDaDiADc1AFbBfgdfikijFifegF1FhaikgFag1E2btaieeibggiffdeigFfqDfaiBkF1kEaikhkigeidhhdiegcFfakF1ggkidbiaedksaFffckekidhhdhdikcikiakicjF1deedFhFccgicdekgiFbiaikcfi1kbFibefgEgFdcFkFeFkdcfkF1kfkcickEiFkDacFiEfbiaejcFfffkhkdgkaiei1ehigikhdFikfckF1dhhdikcfgjikhfjicjicgiehdikcikggcifgiejF1jkieFhegikggcikFegiegkfjebhigikggcikdgkaFkijcfkcikfkcifikiggkaeeigefkcdfcfkhkdgkegieidhijcFfakhfgeidieidiegikhfkfckfcjbdehdikggikgkfkicjicjF1dbidikFiggcifgiejkiegkigcdiegfggcikdbgfgefjF1kfegikggcikdgFkeeijcfkcikfkekcikdgkabhkFikaffcfkhkdgkegbiaekfkiakicjhfgqdq2fkiakgkfkhfkfcjiekgFebicggbedF1jikejbbbiakgbgkacgiejkijjgigfiakggfggcibFifjefjF1kfekdgjcibFeFkijcfkfhkfkeaieigekgbhkfikidfcjeaibgekgdkiffiffkiakF1jhbakgdki1dj1ikfkicjicjieeFkgdkicggkighdF1jfgkgfgbdkicggfggkidFkiekgijkeigfiskiggfaidheigF1jekijcikickiggkidhhdbgcfkFikikhkigeidieFikggikhkffaffijhidhhakgdkhkijF1kiakF1kfheakgdkifiggkigicjiejkieedikgdfcggkigieeiejfgkgkigbgikicggkiaideeijkefjeijikhkiggkiaidheigcikaikffikijgkiahi1hhdikgjfifaakekighie1hiaikggikhkffakicjhiahaikggikhkijF1kfejfeFhidikggiffiggkigicjiekgieeigikggiffiggkidheigkgfjkeigiegikifiggkidhedeijcfkFikikhkiggkidhh1ehigcikaffkhkiggkidhh1hhigikekfiFkFikcidhh1hitcikggikhkfkicjicghiediaikggikhkijbjfejfeFhaikggifikiggkigiejkikgkgieeigikggiffiggkigieeigekijcijikggifikiggkideedeijkefkfckikhkiggkidhh1ehijcikaffkhkiggkidhh1hhigikhkikFikfckcidhh1hiaikgjikhfjicjicgiehdikcikggifikigiejfejkieFhegikggifikiggfghigkfjeijkhigikggifikiggkigieeijcijcikfksikifikiggkidehdeijcfdckikhkiggkhghh1ehijikifffffkhsFngErD1pAfBoDd1BlEtFqA2AqoEpDqElAEsEeB2BmADlDkqBtC1FnEpDqnEmFsFsAFnllBbFmDsDiCtDmAB2BmtCgpEplCpAEiBiEoFqFtEqsDcCnFtADnFlEgdkEgmEtEsCtDmADqFtAFrAtEcCqAE1BoFqC1F1DrFtBmFtAC2ACnFaoCgADcADcCcFfoFtDlAFgmFqBq2bpEoAEmkqnEeCtAE1bAEqgDfFfCrgEcBrACfAAABqAAB1AAClEnFeCtCgAADqDoBmtAAACbFiAAADsEtBqAB2FsDqpFqEmFsCeDtFlCeDtoEpClEqAAFrAFoCgFmFsFqEnAEcCqFeCtFtEnAEeFtAAEkFnErAABbFkADnAAeCtFeAfBoAEpFtAABtFqAApDcCGJ') + size = len(ShouXingUtil.__SHUO_KB) + d = 0 + pc = 14 + i = 0 + jd += ShouXingUtil.J2000 + f1 = ShouXingUtil.__SHUO_KB[0] - pc + f2 = ShouXingUtil.__SHUO_KB[size - 1] - pc + f3 = 2436935 + if jd < f1 or jd >= f3: + d = floor(ShouXingUtil.shuo_high(floor((jd + pc - 2451551) / 29.5306) * ShouXingUtil.PI * 2) + 0.5) + elif f1 <= jd < f2: + for i in range(0, size, 2): + if jd + pc < ShouXingUtil.__SHUO_KB[i + 2]: + break + d = ShouXingUtil.__SHUO_KB[i] + ShouXingUtil.__SHUO_KB[i + 1] * floor((jd + pc - ShouXingUtil.__SHUO_KB[i]) / ShouXingUtil.__SHUO_KB[i + 1]) + d = floor(d + 0.5) + if d == 1683460: + d += 1 + d -= ShouXingUtil.J2000 + elif f2 <= jd < f3: + d = floor(ShouXingUtil.shuo_low(floor((jd + pc - 2451551) / 29.5306) * ShouXingUtil.PI * 2) + 0.5) + index = floor((jd - f2) / 29.5306) + n = ShouXingUtil.__SB[index:index + 1] + if '1' == n: + d += 1 + elif '2' == n: + d -= 1 + return d + + @staticmethod + def calc_qi(jd: float) -> int: + if len(ShouXingUtil.__QB) < 1: + ShouXingUtil.__QB = ShouXingUtil.__decode('FrcFs22AFsckF2tsDtFqEtF1posFdFgiFseFtmelpsEfhkF2anmelpFlF1ikrotcnEqEq2FfqmcDsrFor22FgFrcgDscFs22FgEeFtE2sfFs22sCoEsaF2tsD1FpeE2eFsssEciFsFnmelpFcFhkF2tcnEqEpFgkrotcnEqrEtFermcDsrE222FgBmcmr22DaEfnaF222sD1FpeForeF2tssEfiFpEoeFssD1iFstEqFppDgFstcnEqEpFg11FscnEqrAoAF2ClAEsDmDtCtBaDlAFbAEpAAAAAD2FgBiBqoBbnBaBoAAAAAAAEgDqAdBqAFrBaBoACdAAf1AACgAAAeBbCamDgEifAE2AABa1C1BgFdiAAACoCeE1ADiEifDaAEqAAFe1AcFbcAAAAAF1iFaAAACpACmFmAAAAAAAACrDaAAADG0') + size = len(ShouXingUtil.__QI_KB) + d = 0 + pc = 7 + i = 0 + jd += ShouXingUtil.J2000 + f1 = ShouXingUtil.__QI_KB[0] - pc + f2 = ShouXingUtil.__QI_KB[size - 1] - pc + f3 = 2436935 + if jd < f1 or jd >= f3: + # 2451259是1999.3.21,太阳视黄经为0,春分 定气计算 + d = floor(ShouXingUtil.qi_high(floor((jd + pc - 2451259) / 365.2422 * 24) * ShouXingUtil.PI / 12) + 0.5) + elif f1 <= jd < f2: + for i in range(0, size, 2): + if jd + pc < ShouXingUtil.__QI_KB[i + 2]: + break + d = ShouXingUtil.__QI_KB[i] + ShouXingUtil.__QI_KB[i + 1] * floor((jd + pc - ShouXingUtil.__QI_KB[i]) / ShouXingUtil.__QI_KB[i + 1]) + d = floor(d + 0.5) + if d == 1683460: + d += 1 + d -= ShouXingUtil.J2000 + elif f2 <= jd < f3: + d = floor(ShouXingUtil.qi_low(floor((jd + pc - 2451259) / 365.2422 * 24) * ShouXingUtil.PI / 12) + 0.5) + # 找定气修正值 + index = floor((jd - f2) / 365.2422 * 24) + n = ShouXingUtil.__QB[index:index + 1] + if '1' == n: + d += 1 + elif '2' == n: + d -= 1 + return d + + @staticmethod + def qi_accurate(w: float) -> float: + t = ShouXingUtil.sa_lon_t(w) * 36525 + return t - ShouXingUtil.dt_t(t) + ShouXingUtil.ONE_THIRD + + @staticmethod + def qi_accurate2(jd: float) -> float: + d: float = ShouXingUtil.PI / 12 + w: float = floor((jd + 293) / 365.2422 * 24) * d + a: float = ShouXingUtil.qi_accurate(w) + if a - jd > 5: + return ShouXingUtil.qi_accurate(w - d) + if a - jd < -5: + return ShouXingUtil.qi_accurate(w + d) + return a diff --git a/vendor/tzdata.LICENSE b/vendor/tzdata.LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/vendor/tzdata.LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/tzdata/__init__.py b/vendor/tzdata/__init__.py new file mode 100644 index 0000000..5e7af5e --- /dev/null +++ b/vendor/tzdata/__init__.py @@ -0,0 +1,6 @@ +# IANA versions like 2020a are not valid PEP 440 identifiers; the recommended +# way to translate the version is to use YYYY.n where `n` is a 0-based index. +__version__ = "2026.5" + +# This exposes the original IANA version number. +IANA_VERSION = "2026e" diff --git a/vendor/tzdata/zoneinfo/Africa/Abidjan b/vendor/tzdata/zoneinfo/Africa/Abidjan new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Abidjan differ diff --git a/vendor/tzdata/zoneinfo/Africa/Accra b/vendor/tzdata/zoneinfo/Africa/Accra new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Accra differ diff --git a/vendor/tzdata/zoneinfo/Africa/Addis_Ababa b/vendor/tzdata/zoneinfo/Africa/Addis_Ababa new file mode 100644 index 0000000..5f4ebcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Addis_Ababa differ diff --git a/vendor/tzdata/zoneinfo/Africa/Algiers b/vendor/tzdata/zoneinfo/Africa/Algiers new file mode 100644 index 0000000..56a4dd2 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Algiers differ diff --git a/vendor/tzdata/zoneinfo/Africa/Asmara b/vendor/tzdata/zoneinfo/Africa/Asmara new file mode 100644 index 0000000..5f4ebcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Asmara differ diff --git a/vendor/tzdata/zoneinfo/Africa/Asmera b/vendor/tzdata/zoneinfo/Africa/Asmera new file mode 100644 index 0000000..5f4ebcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Asmera differ diff --git a/vendor/tzdata/zoneinfo/Africa/Bamako b/vendor/tzdata/zoneinfo/Africa/Bamako new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Bamako differ diff --git a/vendor/tzdata/zoneinfo/Africa/Bangui b/vendor/tzdata/zoneinfo/Africa/Bangui new file mode 100644 index 0000000..3d7a71b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Bangui differ diff --git a/vendor/tzdata/zoneinfo/Africa/Banjul b/vendor/tzdata/zoneinfo/Africa/Banjul new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Banjul differ diff --git a/vendor/tzdata/zoneinfo/Africa/Bissau b/vendor/tzdata/zoneinfo/Africa/Bissau new file mode 100644 index 0000000..0da1d1e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Bissau differ diff --git a/vendor/tzdata/zoneinfo/Africa/Blantyre b/vendor/tzdata/zoneinfo/Africa/Blantyre new file mode 100644 index 0000000..581bb0e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Blantyre differ diff --git a/vendor/tzdata/zoneinfo/Africa/Brazzaville b/vendor/tzdata/zoneinfo/Africa/Brazzaville new file mode 100644 index 0000000..3d7a71b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Brazzaville differ diff --git a/vendor/tzdata/zoneinfo/Africa/Bujumbura b/vendor/tzdata/zoneinfo/Africa/Bujumbura new file mode 100644 index 0000000..581bb0e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Bujumbura differ diff --git a/vendor/tzdata/zoneinfo/Africa/Cairo b/vendor/tzdata/zoneinfo/Africa/Cairo new file mode 100644 index 0000000..1e6d48d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Cairo differ diff --git a/vendor/tzdata/zoneinfo/Africa/Casablanca b/vendor/tzdata/zoneinfo/Africa/Casablanca new file mode 100644 index 0000000..fb2f5cc Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Casablanca differ diff --git a/vendor/tzdata/zoneinfo/Africa/Ceuta b/vendor/tzdata/zoneinfo/Africa/Ceuta new file mode 100644 index 0000000..a461dce Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Ceuta differ diff --git a/vendor/tzdata/zoneinfo/Africa/Conakry b/vendor/tzdata/zoneinfo/Africa/Conakry new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Conakry differ diff --git a/vendor/tzdata/zoneinfo/Africa/Dakar b/vendor/tzdata/zoneinfo/Africa/Dakar new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Dakar differ diff --git a/vendor/tzdata/zoneinfo/Africa/Dar_es_Salaam b/vendor/tzdata/zoneinfo/Africa/Dar_es_Salaam new file mode 100644 index 0000000..5f4ebcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Dar_es_Salaam differ diff --git a/vendor/tzdata/zoneinfo/Africa/Djibouti b/vendor/tzdata/zoneinfo/Africa/Djibouti new file mode 100644 index 0000000..5f4ebcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Djibouti differ diff --git a/vendor/tzdata/zoneinfo/Africa/Douala b/vendor/tzdata/zoneinfo/Africa/Douala new file mode 100644 index 0000000..3d7a71b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Douala differ diff --git a/vendor/tzdata/zoneinfo/Africa/El_Aaiun b/vendor/tzdata/zoneinfo/Africa/El_Aaiun new file mode 100644 index 0000000..46286b9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/El_Aaiun differ diff --git a/vendor/tzdata/zoneinfo/Africa/Freetown b/vendor/tzdata/zoneinfo/Africa/Freetown new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Freetown differ diff --git a/vendor/tzdata/zoneinfo/Africa/Gaborone b/vendor/tzdata/zoneinfo/Africa/Gaborone new file mode 100644 index 0000000..581bb0e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Gaborone differ diff --git a/vendor/tzdata/zoneinfo/Africa/Harare b/vendor/tzdata/zoneinfo/Africa/Harare new file mode 100644 index 0000000..581bb0e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Harare differ diff --git a/vendor/tzdata/zoneinfo/Africa/Johannesburg b/vendor/tzdata/zoneinfo/Africa/Johannesburg new file mode 100644 index 0000000..bada063 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Johannesburg differ diff --git a/vendor/tzdata/zoneinfo/Africa/Juba b/vendor/tzdata/zoneinfo/Africa/Juba new file mode 100644 index 0000000..0aba9ff Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Juba differ diff --git a/vendor/tzdata/zoneinfo/Africa/Kampala b/vendor/tzdata/zoneinfo/Africa/Kampala new file mode 100644 index 0000000..5f4ebcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Kampala differ diff --git a/vendor/tzdata/zoneinfo/Africa/Khartoum b/vendor/tzdata/zoneinfo/Africa/Khartoum new file mode 100644 index 0000000..3f8e44b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Khartoum differ diff --git a/vendor/tzdata/zoneinfo/Africa/Kigali b/vendor/tzdata/zoneinfo/Africa/Kigali new file mode 100644 index 0000000..581bb0e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Kigali differ diff --git a/vendor/tzdata/zoneinfo/Africa/Kinshasa b/vendor/tzdata/zoneinfo/Africa/Kinshasa new file mode 100644 index 0000000..3d7a71b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Kinshasa differ diff --git a/vendor/tzdata/zoneinfo/Africa/Lagos b/vendor/tzdata/zoneinfo/Africa/Lagos new file mode 100644 index 0000000..3d7a71b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Lagos differ diff --git a/vendor/tzdata/zoneinfo/Africa/Libreville b/vendor/tzdata/zoneinfo/Africa/Libreville new file mode 100644 index 0000000..3d7a71b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Libreville differ diff --git a/vendor/tzdata/zoneinfo/Africa/Lome b/vendor/tzdata/zoneinfo/Africa/Lome new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Lome differ diff --git a/vendor/tzdata/zoneinfo/Africa/Luanda b/vendor/tzdata/zoneinfo/Africa/Luanda new file mode 100644 index 0000000..3d7a71b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Luanda differ diff --git a/vendor/tzdata/zoneinfo/Africa/Lubumbashi b/vendor/tzdata/zoneinfo/Africa/Lubumbashi new file mode 100644 index 0000000..581bb0e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Lubumbashi differ diff --git a/vendor/tzdata/zoneinfo/Africa/Lusaka b/vendor/tzdata/zoneinfo/Africa/Lusaka new file mode 100644 index 0000000..581bb0e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Lusaka differ diff --git a/vendor/tzdata/zoneinfo/Africa/Malabo b/vendor/tzdata/zoneinfo/Africa/Malabo new file mode 100644 index 0000000..3d7a71b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Malabo differ diff --git a/vendor/tzdata/zoneinfo/Africa/Maputo b/vendor/tzdata/zoneinfo/Africa/Maputo new file mode 100644 index 0000000..581bb0e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Maputo differ diff --git a/vendor/tzdata/zoneinfo/Africa/Maseru b/vendor/tzdata/zoneinfo/Africa/Maseru new file mode 100644 index 0000000..bada063 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Maseru differ diff --git a/vendor/tzdata/zoneinfo/Africa/Mbabane b/vendor/tzdata/zoneinfo/Africa/Mbabane new file mode 100644 index 0000000..bada063 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Mbabane differ diff --git a/vendor/tzdata/zoneinfo/Africa/Mogadishu b/vendor/tzdata/zoneinfo/Africa/Mogadishu new file mode 100644 index 0000000..5f4ebcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Mogadishu differ diff --git a/vendor/tzdata/zoneinfo/Africa/Monrovia b/vendor/tzdata/zoneinfo/Africa/Monrovia new file mode 100644 index 0000000..8377809 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Monrovia differ diff --git a/vendor/tzdata/zoneinfo/Africa/Nairobi b/vendor/tzdata/zoneinfo/Africa/Nairobi new file mode 100644 index 0000000..5f4ebcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Nairobi differ diff --git a/vendor/tzdata/zoneinfo/Africa/Ndjamena b/vendor/tzdata/zoneinfo/Africa/Ndjamena new file mode 100644 index 0000000..ecbc096 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Ndjamena differ diff --git a/vendor/tzdata/zoneinfo/Africa/Niamey b/vendor/tzdata/zoneinfo/Africa/Niamey new file mode 100644 index 0000000..3d7a71b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Niamey differ diff --git a/vendor/tzdata/zoneinfo/Africa/Nouakchott b/vendor/tzdata/zoneinfo/Africa/Nouakchott new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Nouakchott differ diff --git a/vendor/tzdata/zoneinfo/Africa/Ouagadougou b/vendor/tzdata/zoneinfo/Africa/Ouagadougou new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Ouagadougou differ diff --git a/vendor/tzdata/zoneinfo/Africa/Porto-Novo b/vendor/tzdata/zoneinfo/Africa/Porto-Novo new file mode 100644 index 0000000..3d7a71b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Porto-Novo differ diff --git a/vendor/tzdata/zoneinfo/Africa/Sao_Tome b/vendor/tzdata/zoneinfo/Africa/Sao_Tome new file mode 100644 index 0000000..425ad3f Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Sao_Tome differ diff --git a/vendor/tzdata/zoneinfo/Africa/Timbuktu b/vendor/tzdata/zoneinfo/Africa/Timbuktu new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Timbuktu differ diff --git a/vendor/tzdata/zoneinfo/Africa/Tripoli b/vendor/tzdata/zoneinfo/Africa/Tripoli new file mode 100644 index 0000000..e0c8997 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Tripoli differ diff --git a/vendor/tzdata/zoneinfo/Africa/Tunis b/vendor/tzdata/zoneinfo/Africa/Tunis new file mode 100644 index 0000000..ca324cb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Tunis differ diff --git a/vendor/tzdata/zoneinfo/Africa/Windhoek b/vendor/tzdata/zoneinfo/Africa/Windhoek new file mode 100644 index 0000000..0edc52b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Africa/Windhoek differ diff --git a/vendor/tzdata/zoneinfo/Africa/__init__.py b/vendor/tzdata/zoneinfo/Africa/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/America/Adak b/vendor/tzdata/zoneinfo/America/Adak new file mode 100644 index 0000000..b1497bd Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Adak differ diff --git a/vendor/tzdata/zoneinfo/America/Anchorage b/vendor/tzdata/zoneinfo/America/Anchorage new file mode 100644 index 0000000..cdf0572 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Anchorage differ diff --git a/vendor/tzdata/zoneinfo/America/Anguilla b/vendor/tzdata/zoneinfo/America/Anguilla new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Anguilla differ diff --git a/vendor/tzdata/zoneinfo/America/Antigua b/vendor/tzdata/zoneinfo/America/Antigua new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Antigua differ diff --git a/vendor/tzdata/zoneinfo/America/Araguaina b/vendor/tzdata/zoneinfo/America/Araguaina new file mode 100644 index 0000000..f66c9f7 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Araguaina differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/Buenos_Aires b/vendor/tzdata/zoneinfo/America/Argentina/Buenos_Aires new file mode 100644 index 0000000..d6f999b Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/Buenos_Aires differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/Catamarca b/vendor/tzdata/zoneinfo/America/Argentina/Catamarca new file mode 100644 index 0000000..1dcc8d8 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/Catamarca differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/ComodRivadavia b/vendor/tzdata/zoneinfo/America/Argentina/ComodRivadavia new file mode 100644 index 0000000..1dcc8d8 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/ComodRivadavia differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/Cordoba b/vendor/tzdata/zoneinfo/America/Argentina/Cordoba new file mode 100644 index 0000000..35a52e5 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/Cordoba differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/Jujuy b/vendor/tzdata/zoneinfo/America/Argentina/Jujuy new file mode 100644 index 0000000..b275f27 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/Jujuy differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/La_Rioja b/vendor/tzdata/zoneinfo/America/Argentina/La_Rioja new file mode 100644 index 0000000..23fca12 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/La_Rioja differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/Mendoza b/vendor/tzdata/zoneinfo/America/Argentina/Mendoza new file mode 100644 index 0000000..691c569 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/Mendoza differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/Rio_Gallegos b/vendor/tzdata/zoneinfo/America/Argentina/Rio_Gallegos new file mode 100644 index 0000000..991d1fa Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/Rio_Gallegos differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/Salta b/vendor/tzdata/zoneinfo/America/Argentina/Salta new file mode 100644 index 0000000..58863e0 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/Salta differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/San_Juan b/vendor/tzdata/zoneinfo/America/Argentina/San_Juan new file mode 100644 index 0000000..7eba33c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/San_Juan differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/San_Luis b/vendor/tzdata/zoneinfo/America/Argentina/San_Luis new file mode 100644 index 0000000..0a81cbd Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/San_Luis differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/Tucuman b/vendor/tzdata/zoneinfo/America/Argentina/Tucuman new file mode 100644 index 0000000..10556d5 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/Tucuman differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/Ushuaia b/vendor/tzdata/zoneinfo/America/Argentina/Ushuaia new file mode 100644 index 0000000..e031750 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Argentina/Ushuaia differ diff --git a/vendor/tzdata/zoneinfo/America/Argentina/__init__.py b/vendor/tzdata/zoneinfo/America/Argentina/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/America/Aruba b/vendor/tzdata/zoneinfo/America/Aruba new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Aruba differ diff --git a/vendor/tzdata/zoneinfo/America/Asuncion b/vendor/tzdata/zoneinfo/America/Asuncion new file mode 100644 index 0000000..f056047 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Asuncion differ diff --git a/vendor/tzdata/zoneinfo/America/Atikokan b/vendor/tzdata/zoneinfo/America/Atikokan new file mode 100644 index 0000000..9154643 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Atikokan differ diff --git a/vendor/tzdata/zoneinfo/America/Atka b/vendor/tzdata/zoneinfo/America/Atka new file mode 100644 index 0000000..b1497bd Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Atka differ diff --git a/vendor/tzdata/zoneinfo/America/Bahia b/vendor/tzdata/zoneinfo/America/Bahia new file mode 100644 index 0000000..7969e30 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Bahia differ diff --git a/vendor/tzdata/zoneinfo/America/Bahia_Banderas b/vendor/tzdata/zoneinfo/America/Bahia_Banderas new file mode 100644 index 0000000..882400b Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Bahia_Banderas differ diff --git a/vendor/tzdata/zoneinfo/America/Barbados b/vendor/tzdata/zoneinfo/America/Barbados new file mode 100644 index 0000000..720c986 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Barbados differ diff --git a/vendor/tzdata/zoneinfo/America/Belem b/vendor/tzdata/zoneinfo/America/Belem new file mode 100644 index 0000000..e0d7653 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Belem differ diff --git a/vendor/tzdata/zoneinfo/America/Belize b/vendor/tzdata/zoneinfo/America/Belize new file mode 100644 index 0000000..bfc19f4 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Belize differ diff --git a/vendor/tzdata/zoneinfo/America/Blanc-Sablon b/vendor/tzdata/zoneinfo/America/Blanc-Sablon new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Blanc-Sablon differ diff --git a/vendor/tzdata/zoneinfo/America/Boa_Vista b/vendor/tzdata/zoneinfo/America/Boa_Vista new file mode 100644 index 0000000..fca9720 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Boa_Vista differ diff --git a/vendor/tzdata/zoneinfo/America/Bogota b/vendor/tzdata/zoneinfo/America/Bogota new file mode 100644 index 0000000..8b37a3d Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Bogota differ diff --git a/vendor/tzdata/zoneinfo/America/Boise b/vendor/tzdata/zoneinfo/America/Boise new file mode 100644 index 0000000..72fec9e Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Boise differ diff --git a/vendor/tzdata/zoneinfo/America/Buenos_Aires b/vendor/tzdata/zoneinfo/America/Buenos_Aires new file mode 100644 index 0000000..d6f999b Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Buenos_Aires differ diff --git a/vendor/tzdata/zoneinfo/America/Cambridge_Bay b/vendor/tzdata/zoneinfo/America/Cambridge_Bay new file mode 100644 index 0000000..1092f4b Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Cambridge_Bay differ diff --git a/vendor/tzdata/zoneinfo/America/Campo_Grande b/vendor/tzdata/zoneinfo/America/Campo_Grande new file mode 100644 index 0000000..6855e4e Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Campo_Grande differ diff --git a/vendor/tzdata/zoneinfo/America/Cancun b/vendor/tzdata/zoneinfo/America/Cancun new file mode 100644 index 0000000..3110cdf Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Cancun differ diff --git a/vendor/tzdata/zoneinfo/America/Caracas b/vendor/tzdata/zoneinfo/America/Caracas new file mode 100644 index 0000000..8dbe6ff Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Caracas differ diff --git a/vendor/tzdata/zoneinfo/America/Catamarca b/vendor/tzdata/zoneinfo/America/Catamarca new file mode 100644 index 0000000..1dcc8d8 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Catamarca differ diff --git a/vendor/tzdata/zoneinfo/America/Cayenne b/vendor/tzdata/zoneinfo/America/Cayenne new file mode 100644 index 0000000..cd49f05 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Cayenne differ diff --git a/vendor/tzdata/zoneinfo/America/Cayman b/vendor/tzdata/zoneinfo/America/Cayman new file mode 100644 index 0000000..9154643 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Cayman differ diff --git a/vendor/tzdata/zoneinfo/America/Chicago b/vendor/tzdata/zoneinfo/America/Chicago new file mode 100644 index 0000000..b016880 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Chicago differ diff --git a/vendor/tzdata/zoneinfo/America/Chihuahua b/vendor/tzdata/zoneinfo/America/Chihuahua new file mode 100644 index 0000000..f65bb1c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Chihuahua differ diff --git a/vendor/tzdata/zoneinfo/America/Ciudad_Juarez b/vendor/tzdata/zoneinfo/America/Ciudad_Juarez new file mode 100644 index 0000000..5f865ea Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Ciudad_Juarez differ diff --git a/vendor/tzdata/zoneinfo/America/Coral_Harbour b/vendor/tzdata/zoneinfo/America/Coral_Harbour new file mode 100644 index 0000000..9154643 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Coral_Harbour differ diff --git a/vendor/tzdata/zoneinfo/America/Cordoba b/vendor/tzdata/zoneinfo/America/Cordoba new file mode 100644 index 0000000..35a52e5 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Cordoba differ diff --git a/vendor/tzdata/zoneinfo/America/Costa_Rica b/vendor/tzdata/zoneinfo/America/Costa_Rica new file mode 100644 index 0000000..08f0128 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Costa_Rica differ diff --git a/vendor/tzdata/zoneinfo/America/Coyhaique b/vendor/tzdata/zoneinfo/America/Coyhaique new file mode 100644 index 0000000..26354e8 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Coyhaique differ diff --git a/vendor/tzdata/zoneinfo/America/Creston b/vendor/tzdata/zoneinfo/America/Creston new file mode 100644 index 0000000..c2bd2f9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Creston differ diff --git a/vendor/tzdata/zoneinfo/America/Cuiaba b/vendor/tzdata/zoneinfo/America/Cuiaba new file mode 100644 index 0000000..c09a875 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Cuiaba differ diff --git a/vendor/tzdata/zoneinfo/America/Curacao b/vendor/tzdata/zoneinfo/America/Curacao new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Curacao differ diff --git a/vendor/tzdata/zoneinfo/America/Danmarkshavn b/vendor/tzdata/zoneinfo/America/Danmarkshavn new file mode 100644 index 0000000..8718efc Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Danmarkshavn differ diff --git a/vendor/tzdata/zoneinfo/America/Dawson b/vendor/tzdata/zoneinfo/America/Dawson new file mode 100644 index 0000000..07e4c5f Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Dawson differ diff --git a/vendor/tzdata/zoneinfo/America/Dawson_Creek b/vendor/tzdata/zoneinfo/America/Dawson_Creek new file mode 100644 index 0000000..761d1d9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Dawson_Creek differ diff --git a/vendor/tzdata/zoneinfo/America/Denver b/vendor/tzdata/zoneinfo/America/Denver new file mode 100644 index 0000000..09e54e5 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Denver differ diff --git a/vendor/tzdata/zoneinfo/America/Detroit b/vendor/tzdata/zoneinfo/America/Detroit new file mode 100644 index 0000000..6eb3ac4 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Detroit differ diff --git a/vendor/tzdata/zoneinfo/America/Dominica b/vendor/tzdata/zoneinfo/America/Dominica new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Dominica differ diff --git a/vendor/tzdata/zoneinfo/America/Edmonton b/vendor/tzdata/zoneinfo/America/Edmonton new file mode 100644 index 0000000..379e365 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Edmonton differ diff --git a/vendor/tzdata/zoneinfo/America/Eirunepe b/vendor/tzdata/zoneinfo/America/Eirunepe new file mode 100644 index 0000000..7da4b98 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Eirunepe differ diff --git a/vendor/tzdata/zoneinfo/America/El_Salvador b/vendor/tzdata/zoneinfo/America/El_Salvador new file mode 100644 index 0000000..4348411 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/El_Salvador differ diff --git a/vendor/tzdata/zoneinfo/America/Ensenada b/vendor/tzdata/zoneinfo/America/Ensenada new file mode 100644 index 0000000..0d8c993 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Ensenada differ diff --git a/vendor/tzdata/zoneinfo/America/Fort_Nelson b/vendor/tzdata/zoneinfo/America/Fort_Nelson new file mode 100644 index 0000000..2a49c6c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Fort_Nelson differ diff --git a/vendor/tzdata/zoneinfo/America/Fort_Wayne b/vendor/tzdata/zoneinfo/America/Fort_Wayne new file mode 100644 index 0000000..6b08d15 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Fort_Wayne differ diff --git a/vendor/tzdata/zoneinfo/America/Fortaleza b/vendor/tzdata/zoneinfo/America/Fortaleza new file mode 100644 index 0000000..092e40d Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Fortaleza differ diff --git a/vendor/tzdata/zoneinfo/America/Glace_Bay b/vendor/tzdata/zoneinfo/America/Glace_Bay new file mode 100644 index 0000000..f85eb34 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Glace_Bay differ diff --git a/vendor/tzdata/zoneinfo/America/Godthab b/vendor/tzdata/zoneinfo/America/Godthab new file mode 100644 index 0000000..310774e Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Godthab differ diff --git a/vendor/tzdata/zoneinfo/America/Goose_Bay b/vendor/tzdata/zoneinfo/America/Goose_Bay new file mode 100644 index 0000000..e2cc3ee Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Goose_Bay differ diff --git a/vendor/tzdata/zoneinfo/America/Grand_Turk b/vendor/tzdata/zoneinfo/America/Grand_Turk new file mode 100644 index 0000000..9d90e74 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Grand_Turk differ diff --git a/vendor/tzdata/zoneinfo/America/Grenada b/vendor/tzdata/zoneinfo/America/Grenada new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Grenada differ diff --git a/vendor/tzdata/zoneinfo/America/Guadeloupe b/vendor/tzdata/zoneinfo/America/Guadeloupe new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Guadeloupe differ diff --git a/vendor/tzdata/zoneinfo/America/Guatemala b/vendor/tzdata/zoneinfo/America/Guatemala new file mode 100644 index 0000000..8aa8e58 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Guatemala differ diff --git a/vendor/tzdata/zoneinfo/America/Guayaquil b/vendor/tzdata/zoneinfo/America/Guayaquil new file mode 100644 index 0000000..381ae6c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Guayaquil differ diff --git a/vendor/tzdata/zoneinfo/America/Guyana b/vendor/tzdata/zoneinfo/America/Guyana new file mode 100644 index 0000000..bcc6688 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Guyana differ diff --git a/vendor/tzdata/zoneinfo/America/Halifax b/vendor/tzdata/zoneinfo/America/Halifax new file mode 100644 index 0000000..9fa850a Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Halifax differ diff --git a/vendor/tzdata/zoneinfo/America/Havana b/vendor/tzdata/zoneinfo/America/Havana new file mode 100644 index 0000000..e06629d Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Havana differ diff --git a/vendor/tzdata/zoneinfo/America/Hermosillo b/vendor/tzdata/zoneinfo/America/Hermosillo new file mode 100644 index 0000000..ba7b147 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Hermosillo differ diff --git a/vendor/tzdata/zoneinfo/America/Indiana/Indianapolis b/vendor/tzdata/zoneinfo/America/Indiana/Indianapolis new file mode 100644 index 0000000..6b08d15 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Indiana/Indianapolis differ diff --git a/vendor/tzdata/zoneinfo/America/Indiana/Knox b/vendor/tzdata/zoneinfo/America/Indiana/Knox new file mode 100644 index 0000000..b187d5f Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Indiana/Knox differ diff --git a/vendor/tzdata/zoneinfo/America/Indiana/Marengo b/vendor/tzdata/zoneinfo/America/Indiana/Marengo new file mode 100644 index 0000000..a730fe6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Indiana/Marengo differ diff --git a/vendor/tzdata/zoneinfo/America/Indiana/Petersburg b/vendor/tzdata/zoneinfo/America/Indiana/Petersburg new file mode 100644 index 0000000..341a023 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Indiana/Petersburg differ diff --git a/vendor/tzdata/zoneinfo/America/Indiana/Tell_City b/vendor/tzdata/zoneinfo/America/Indiana/Tell_City new file mode 100644 index 0000000..76e1f62 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Indiana/Tell_City differ diff --git a/vendor/tzdata/zoneinfo/America/Indiana/Vevay b/vendor/tzdata/zoneinfo/America/Indiana/Vevay new file mode 100644 index 0000000..f2acf6c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Indiana/Vevay differ diff --git a/vendor/tzdata/zoneinfo/America/Indiana/Vincennes b/vendor/tzdata/zoneinfo/America/Indiana/Vincennes new file mode 100644 index 0000000..c255f89 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Indiana/Vincennes differ diff --git a/vendor/tzdata/zoneinfo/America/Indiana/Winamac b/vendor/tzdata/zoneinfo/America/Indiana/Winamac new file mode 100644 index 0000000..679d321 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Indiana/Winamac differ diff --git a/vendor/tzdata/zoneinfo/America/Indiana/__init__.py b/vendor/tzdata/zoneinfo/America/Indiana/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/America/Indianapolis b/vendor/tzdata/zoneinfo/America/Indianapolis new file mode 100644 index 0000000..6b08d15 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Indianapolis differ diff --git a/vendor/tzdata/zoneinfo/America/Inuvik b/vendor/tzdata/zoneinfo/America/Inuvik new file mode 100644 index 0000000..20b2ad1 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Inuvik differ diff --git a/vendor/tzdata/zoneinfo/America/Iqaluit b/vendor/tzdata/zoneinfo/America/Iqaluit new file mode 100644 index 0000000..95e055c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Iqaluit differ diff --git a/vendor/tzdata/zoneinfo/America/Jamaica b/vendor/tzdata/zoneinfo/America/Jamaica new file mode 100644 index 0000000..be6b1b6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Jamaica differ diff --git a/vendor/tzdata/zoneinfo/America/Jujuy b/vendor/tzdata/zoneinfo/America/Jujuy new file mode 100644 index 0000000..b275f27 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Jujuy differ diff --git a/vendor/tzdata/zoneinfo/America/Juneau b/vendor/tzdata/zoneinfo/America/Juneau new file mode 100644 index 0000000..e347b36 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Juneau differ diff --git a/vendor/tzdata/zoneinfo/America/Kentucky/Louisville b/vendor/tzdata/zoneinfo/America/Kentucky/Louisville new file mode 100644 index 0000000..f2136d6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Kentucky/Louisville differ diff --git a/vendor/tzdata/zoneinfo/America/Kentucky/Monticello b/vendor/tzdata/zoneinfo/America/Kentucky/Monticello new file mode 100644 index 0000000..d9f54a1 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Kentucky/Monticello differ diff --git a/vendor/tzdata/zoneinfo/America/Kentucky/__init__.py b/vendor/tzdata/zoneinfo/America/Kentucky/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/America/Knox_IN b/vendor/tzdata/zoneinfo/America/Knox_IN new file mode 100644 index 0000000..b187d5f Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Knox_IN differ diff --git a/vendor/tzdata/zoneinfo/America/Kralendijk b/vendor/tzdata/zoneinfo/America/Kralendijk new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Kralendijk differ diff --git a/vendor/tzdata/zoneinfo/America/La_Paz b/vendor/tzdata/zoneinfo/America/La_Paz new file mode 100644 index 0000000..68ddaae Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/La_Paz differ diff --git a/vendor/tzdata/zoneinfo/America/Lima b/vendor/tzdata/zoneinfo/America/Lima new file mode 100644 index 0000000..b643c55 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Lima differ diff --git a/vendor/tzdata/zoneinfo/America/Los_Angeles b/vendor/tzdata/zoneinfo/America/Los_Angeles new file mode 100644 index 0000000..aaf0778 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Los_Angeles differ diff --git a/vendor/tzdata/zoneinfo/America/Louisville b/vendor/tzdata/zoneinfo/America/Louisville new file mode 100644 index 0000000..f2136d6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Louisville differ diff --git a/vendor/tzdata/zoneinfo/America/Lower_Princes b/vendor/tzdata/zoneinfo/America/Lower_Princes new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Lower_Princes differ diff --git a/vendor/tzdata/zoneinfo/America/Maceio b/vendor/tzdata/zoneinfo/America/Maceio new file mode 100644 index 0000000..dbb8d57 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Maceio differ diff --git a/vendor/tzdata/zoneinfo/America/Managua b/vendor/tzdata/zoneinfo/America/Managua new file mode 100644 index 0000000..86ef76b Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Managua differ diff --git a/vendor/tzdata/zoneinfo/America/Manaus b/vendor/tzdata/zoneinfo/America/Manaus new file mode 100644 index 0000000..59c952e Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Manaus differ diff --git a/vendor/tzdata/zoneinfo/America/Marigot b/vendor/tzdata/zoneinfo/America/Marigot new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Marigot differ diff --git a/vendor/tzdata/zoneinfo/America/Martinique b/vendor/tzdata/zoneinfo/America/Martinique new file mode 100644 index 0000000..25c0232 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Martinique differ diff --git a/vendor/tzdata/zoneinfo/America/Matamoros b/vendor/tzdata/zoneinfo/America/Matamoros new file mode 100644 index 0000000..993ac47 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Matamoros differ diff --git a/vendor/tzdata/zoneinfo/America/Mazatlan b/vendor/tzdata/zoneinfo/America/Mazatlan new file mode 100644 index 0000000..5aa6039 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Mazatlan differ diff --git a/vendor/tzdata/zoneinfo/America/Mendoza b/vendor/tzdata/zoneinfo/America/Mendoza new file mode 100644 index 0000000..691c569 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Mendoza differ diff --git a/vendor/tzdata/zoneinfo/America/Menominee b/vendor/tzdata/zoneinfo/America/Menominee new file mode 100644 index 0000000..28d2c56 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Menominee differ diff --git a/vendor/tzdata/zoneinfo/America/Merida b/vendor/tzdata/zoneinfo/America/Merida new file mode 100644 index 0000000..e5c7d8c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Merida differ diff --git a/vendor/tzdata/zoneinfo/America/Metlakatla b/vendor/tzdata/zoneinfo/America/Metlakatla new file mode 100644 index 0000000..71b0eab Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Metlakatla differ diff --git a/vendor/tzdata/zoneinfo/America/Mexico_City b/vendor/tzdata/zoneinfo/America/Mexico_City new file mode 100644 index 0000000..1811234 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Mexico_City differ diff --git a/vendor/tzdata/zoneinfo/America/Miquelon b/vendor/tzdata/zoneinfo/America/Miquelon new file mode 100644 index 0000000..ba95cb0 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Miquelon differ diff --git a/vendor/tzdata/zoneinfo/America/Moncton b/vendor/tzdata/zoneinfo/America/Moncton new file mode 100644 index 0000000..020e33d Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Moncton differ diff --git a/vendor/tzdata/zoneinfo/America/Monterrey b/vendor/tzdata/zoneinfo/America/Monterrey new file mode 100644 index 0000000..c1e0546 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Monterrey differ diff --git a/vendor/tzdata/zoneinfo/America/Montevideo b/vendor/tzdata/zoneinfo/America/Montevideo new file mode 100644 index 0000000..4b2fb3e Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Montevideo differ diff --git a/vendor/tzdata/zoneinfo/America/Montreal b/vendor/tzdata/zoneinfo/America/Montreal new file mode 100644 index 0000000..668e70d Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Montreal differ diff --git a/vendor/tzdata/zoneinfo/America/Montserrat b/vendor/tzdata/zoneinfo/America/Montserrat new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Montserrat differ diff --git a/vendor/tzdata/zoneinfo/America/Nassau b/vendor/tzdata/zoneinfo/America/Nassau new file mode 100644 index 0000000..668e70d Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Nassau differ diff --git a/vendor/tzdata/zoneinfo/America/New_York b/vendor/tzdata/zoneinfo/America/New_York new file mode 100644 index 0000000..2b6c2ee Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/New_York differ diff --git a/vendor/tzdata/zoneinfo/America/Nipigon b/vendor/tzdata/zoneinfo/America/Nipigon new file mode 100644 index 0000000..668e70d Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Nipigon differ diff --git a/vendor/tzdata/zoneinfo/America/Nome b/vendor/tzdata/zoneinfo/America/Nome new file mode 100644 index 0000000..23ead1c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Nome differ diff --git a/vendor/tzdata/zoneinfo/America/Noronha b/vendor/tzdata/zoneinfo/America/Noronha new file mode 100644 index 0000000..9e74745 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Noronha differ diff --git a/vendor/tzdata/zoneinfo/America/North_Dakota/Beulah b/vendor/tzdata/zoneinfo/America/North_Dakota/Beulah new file mode 100644 index 0000000..becf438 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/North_Dakota/Beulah differ diff --git a/vendor/tzdata/zoneinfo/America/North_Dakota/Center b/vendor/tzdata/zoneinfo/America/North_Dakota/Center new file mode 100644 index 0000000..d03bda0 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/North_Dakota/Center differ diff --git a/vendor/tzdata/zoneinfo/America/North_Dakota/New_Salem b/vendor/tzdata/zoneinfo/America/North_Dakota/New_Salem new file mode 100644 index 0000000..ecefc15 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/North_Dakota/New_Salem differ diff --git a/vendor/tzdata/zoneinfo/America/North_Dakota/__init__.py b/vendor/tzdata/zoneinfo/America/North_Dakota/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/America/Nuuk b/vendor/tzdata/zoneinfo/America/Nuuk new file mode 100644 index 0000000..310774e Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Nuuk differ diff --git a/vendor/tzdata/zoneinfo/America/Ojinaga b/vendor/tzdata/zoneinfo/America/Ojinaga new file mode 100644 index 0000000..1dd08b1 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Ojinaga differ diff --git a/vendor/tzdata/zoneinfo/America/Panama b/vendor/tzdata/zoneinfo/America/Panama new file mode 100644 index 0000000..9154643 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Panama differ diff --git a/vendor/tzdata/zoneinfo/America/Pangnirtung b/vendor/tzdata/zoneinfo/America/Pangnirtung new file mode 100644 index 0000000..95e055c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Pangnirtung differ diff --git a/vendor/tzdata/zoneinfo/America/Paramaribo b/vendor/tzdata/zoneinfo/America/Paramaribo new file mode 100644 index 0000000..24f925a Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Paramaribo differ diff --git a/vendor/tzdata/zoneinfo/America/Phoenix b/vendor/tzdata/zoneinfo/America/Phoenix new file mode 100644 index 0000000..c2bd2f9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Phoenix differ diff --git a/vendor/tzdata/zoneinfo/America/Port-au-Prince b/vendor/tzdata/zoneinfo/America/Port-au-Prince new file mode 100644 index 0000000..3e75731 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Port-au-Prince differ diff --git a/vendor/tzdata/zoneinfo/America/Port_of_Spain b/vendor/tzdata/zoneinfo/America/Port_of_Spain new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Port_of_Spain differ diff --git a/vendor/tzdata/zoneinfo/America/Porto_Acre b/vendor/tzdata/zoneinfo/America/Porto_Acre new file mode 100644 index 0000000..fb5185c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Porto_Acre differ diff --git a/vendor/tzdata/zoneinfo/America/Porto_Velho b/vendor/tzdata/zoneinfo/America/Porto_Velho new file mode 100644 index 0000000..7f8047d Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Porto_Velho differ diff --git a/vendor/tzdata/zoneinfo/America/Puerto_Rico b/vendor/tzdata/zoneinfo/America/Puerto_Rico new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Puerto_Rico differ diff --git a/vendor/tzdata/zoneinfo/America/Punta_Arenas b/vendor/tzdata/zoneinfo/America/Punta_Arenas new file mode 100644 index 0000000..aa839ea Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Punta_Arenas differ diff --git a/vendor/tzdata/zoneinfo/America/Rainy_River b/vendor/tzdata/zoneinfo/America/Rainy_River new file mode 100644 index 0000000..0ca1509 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Rainy_River differ diff --git a/vendor/tzdata/zoneinfo/America/Rankin_Inlet b/vendor/tzdata/zoneinfo/America/Rankin_Inlet new file mode 100644 index 0000000..6d1d90d Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Rankin_Inlet differ diff --git a/vendor/tzdata/zoneinfo/America/Recife b/vendor/tzdata/zoneinfo/America/Recife new file mode 100644 index 0000000..305abcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Recife differ diff --git a/vendor/tzdata/zoneinfo/America/Regina b/vendor/tzdata/zoneinfo/America/Regina new file mode 100644 index 0000000..a3f8217 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Regina differ diff --git a/vendor/tzdata/zoneinfo/America/Resolute b/vendor/tzdata/zoneinfo/America/Resolute new file mode 100644 index 0000000..97eb8a9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Resolute differ diff --git a/vendor/tzdata/zoneinfo/America/Rio_Branco b/vendor/tzdata/zoneinfo/America/Rio_Branco new file mode 100644 index 0000000..fb5185c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Rio_Branco differ diff --git a/vendor/tzdata/zoneinfo/America/Rosario b/vendor/tzdata/zoneinfo/America/Rosario new file mode 100644 index 0000000..35a52e5 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Rosario differ diff --git a/vendor/tzdata/zoneinfo/America/Santa_Isabel b/vendor/tzdata/zoneinfo/America/Santa_Isabel new file mode 100644 index 0000000..0d8c993 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Santa_Isabel differ diff --git a/vendor/tzdata/zoneinfo/America/Santarem b/vendor/tzdata/zoneinfo/America/Santarem new file mode 100644 index 0000000..f81d144 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Santarem differ diff --git a/vendor/tzdata/zoneinfo/America/Santiago b/vendor/tzdata/zoneinfo/America/Santiago new file mode 100644 index 0000000..d3fc9b8 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Santiago differ diff --git a/vendor/tzdata/zoneinfo/America/Santo_Domingo b/vendor/tzdata/zoneinfo/America/Santo_Domingo new file mode 100644 index 0000000..3e07850 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Santo_Domingo differ diff --git a/vendor/tzdata/zoneinfo/America/Sao_Paulo b/vendor/tzdata/zoneinfo/America/Sao_Paulo new file mode 100644 index 0000000..a16da2c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Sao_Paulo differ diff --git a/vendor/tzdata/zoneinfo/America/Scoresbysund b/vendor/tzdata/zoneinfo/America/Scoresbysund new file mode 100644 index 0000000..fc1b11c Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Scoresbysund differ diff --git a/vendor/tzdata/zoneinfo/America/Shiprock b/vendor/tzdata/zoneinfo/America/Shiprock new file mode 100644 index 0000000..09e54e5 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Shiprock differ diff --git a/vendor/tzdata/zoneinfo/America/Sitka b/vendor/tzdata/zoneinfo/America/Sitka new file mode 100644 index 0000000..36681ed Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Sitka differ diff --git a/vendor/tzdata/zoneinfo/America/St_Barthelemy b/vendor/tzdata/zoneinfo/America/St_Barthelemy new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/St_Barthelemy differ diff --git a/vendor/tzdata/zoneinfo/America/St_Johns b/vendor/tzdata/zoneinfo/America/St_Johns new file mode 100644 index 0000000..94d790b Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/St_Johns differ diff --git a/vendor/tzdata/zoneinfo/America/St_Kitts b/vendor/tzdata/zoneinfo/America/St_Kitts new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/St_Kitts differ diff --git a/vendor/tzdata/zoneinfo/America/St_Lucia b/vendor/tzdata/zoneinfo/America/St_Lucia new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/St_Lucia differ diff --git a/vendor/tzdata/zoneinfo/America/St_Thomas b/vendor/tzdata/zoneinfo/America/St_Thomas new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/St_Thomas differ diff --git a/vendor/tzdata/zoneinfo/America/St_Vincent b/vendor/tzdata/zoneinfo/America/St_Vincent new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/St_Vincent differ diff --git a/vendor/tzdata/zoneinfo/America/Swift_Current b/vendor/tzdata/zoneinfo/America/Swift_Current new file mode 100644 index 0000000..bdbb494 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Swift_Current differ diff --git a/vendor/tzdata/zoneinfo/America/Tegucigalpa b/vendor/tzdata/zoneinfo/America/Tegucigalpa new file mode 100644 index 0000000..38036a3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Tegucigalpa differ diff --git a/vendor/tzdata/zoneinfo/America/Thule b/vendor/tzdata/zoneinfo/America/Thule new file mode 100644 index 0000000..f38dc56 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Thule differ diff --git a/vendor/tzdata/zoneinfo/America/Thunder_Bay b/vendor/tzdata/zoneinfo/America/Thunder_Bay new file mode 100644 index 0000000..668e70d Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Thunder_Bay differ diff --git a/vendor/tzdata/zoneinfo/America/Tijuana b/vendor/tzdata/zoneinfo/America/Tijuana new file mode 100644 index 0000000..0d8c993 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Tijuana differ diff --git a/vendor/tzdata/zoneinfo/America/Toronto b/vendor/tzdata/zoneinfo/America/Toronto new file mode 100644 index 0000000..668e70d Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Toronto differ diff --git a/vendor/tzdata/zoneinfo/America/Tortola b/vendor/tzdata/zoneinfo/America/Tortola new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Tortola differ diff --git a/vendor/tzdata/zoneinfo/America/Vancouver b/vendor/tzdata/zoneinfo/America/Vancouver new file mode 100644 index 0000000..1ab2eaf Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Vancouver differ diff --git a/vendor/tzdata/zoneinfo/America/Virgin b/vendor/tzdata/zoneinfo/America/Virgin new file mode 100644 index 0000000..47b4dc3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Virgin differ diff --git a/vendor/tzdata/zoneinfo/America/Whitehorse b/vendor/tzdata/zoneinfo/America/Whitehorse new file mode 100644 index 0000000..40baa9a Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Whitehorse differ diff --git a/vendor/tzdata/zoneinfo/America/Winnipeg b/vendor/tzdata/zoneinfo/America/Winnipeg new file mode 100644 index 0000000..0ca1509 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Winnipeg differ diff --git a/vendor/tzdata/zoneinfo/America/Yakutat b/vendor/tzdata/zoneinfo/America/Yakutat new file mode 100644 index 0000000..773feba Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Yakutat differ diff --git a/vendor/tzdata/zoneinfo/America/Yellowknife b/vendor/tzdata/zoneinfo/America/Yellowknife new file mode 100644 index 0000000..379e365 Binary files /dev/null and b/vendor/tzdata/zoneinfo/America/Yellowknife differ diff --git a/vendor/tzdata/zoneinfo/America/__init__.py b/vendor/tzdata/zoneinfo/America/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/Antarctica/Casey b/vendor/tzdata/zoneinfo/Antarctica/Casey new file mode 100644 index 0000000..84f1c61 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Antarctica/Casey differ diff --git a/vendor/tzdata/zoneinfo/Antarctica/Davis b/vendor/tzdata/zoneinfo/Antarctica/Davis new file mode 100644 index 0000000..3ec3222 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Antarctica/Davis differ diff --git a/vendor/tzdata/zoneinfo/Antarctica/DumontDUrville b/vendor/tzdata/zoneinfo/Antarctica/DumontDUrville new file mode 100644 index 0000000..5d8fc3a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Antarctica/DumontDUrville differ diff --git a/vendor/tzdata/zoneinfo/Antarctica/Macquarie b/vendor/tzdata/zoneinfo/Antarctica/Macquarie new file mode 100644 index 0000000..99a8e60 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Antarctica/Macquarie differ diff --git a/vendor/tzdata/zoneinfo/Antarctica/Mawson b/vendor/tzdata/zoneinfo/Antarctica/Mawson new file mode 100644 index 0000000..05e4c6c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Antarctica/Mawson differ diff --git a/vendor/tzdata/zoneinfo/Antarctica/McMurdo b/vendor/tzdata/zoneinfo/Antarctica/McMurdo new file mode 100644 index 0000000..afb3929 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Antarctica/McMurdo differ diff --git a/vendor/tzdata/zoneinfo/Antarctica/Palmer b/vendor/tzdata/zoneinfo/Antarctica/Palmer new file mode 100644 index 0000000..32c1941 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Antarctica/Palmer differ diff --git a/vendor/tzdata/zoneinfo/Antarctica/Rothera b/vendor/tzdata/zoneinfo/Antarctica/Rothera new file mode 100644 index 0000000..ea49c00 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Antarctica/Rothera differ diff --git a/vendor/tzdata/zoneinfo/Antarctica/South_Pole b/vendor/tzdata/zoneinfo/Antarctica/South_Pole new file mode 100644 index 0000000..afb3929 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Antarctica/South_Pole differ diff --git a/vendor/tzdata/zoneinfo/Antarctica/Syowa b/vendor/tzdata/zoneinfo/Antarctica/Syowa new file mode 100644 index 0000000..01c47cc Binary files /dev/null and b/vendor/tzdata/zoneinfo/Antarctica/Syowa differ diff --git a/vendor/tzdata/zoneinfo/Antarctica/Troll b/vendor/tzdata/zoneinfo/Antarctica/Troll new file mode 100644 index 0000000..2359c44 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Antarctica/Troll differ diff --git a/vendor/tzdata/zoneinfo/Antarctica/Vostok b/vendor/tzdata/zoneinfo/Antarctica/Vostok new file mode 100644 index 0000000..4ce8f74 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Antarctica/Vostok differ diff --git a/vendor/tzdata/zoneinfo/Antarctica/__init__.py b/vendor/tzdata/zoneinfo/Antarctica/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/Arctic/Longyearbyen b/vendor/tzdata/zoneinfo/Arctic/Longyearbyen new file mode 100644 index 0000000..465546b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Arctic/Longyearbyen differ diff --git a/vendor/tzdata/zoneinfo/Arctic/__init__.py b/vendor/tzdata/zoneinfo/Arctic/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/Asia/Aden b/vendor/tzdata/zoneinfo/Asia/Aden new file mode 100644 index 0000000..01c47cc Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Aden differ diff --git a/vendor/tzdata/zoneinfo/Asia/Almaty b/vendor/tzdata/zoneinfo/Asia/Almaty new file mode 100644 index 0000000..02f047d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Almaty differ diff --git a/vendor/tzdata/zoneinfo/Asia/Amman b/vendor/tzdata/zoneinfo/Asia/Amman new file mode 100644 index 0000000..a3f9dff Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Amman differ diff --git a/vendor/tzdata/zoneinfo/Asia/Anadyr b/vendor/tzdata/zoneinfo/Asia/Anadyr new file mode 100644 index 0000000..551884d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Anadyr differ diff --git a/vendor/tzdata/zoneinfo/Asia/Aqtau b/vendor/tzdata/zoneinfo/Asia/Aqtau new file mode 100644 index 0000000..3a40d11 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Aqtau differ diff --git a/vendor/tzdata/zoneinfo/Asia/Aqtobe b/vendor/tzdata/zoneinfo/Asia/Aqtobe new file mode 100644 index 0000000..62c5840 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Aqtobe differ diff --git a/vendor/tzdata/zoneinfo/Asia/Ashgabat b/vendor/tzdata/zoneinfo/Asia/Ashgabat new file mode 100644 index 0000000..8482167 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Ashgabat differ diff --git a/vendor/tzdata/zoneinfo/Asia/Ashkhabad b/vendor/tzdata/zoneinfo/Asia/Ashkhabad new file mode 100644 index 0000000..8482167 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Ashkhabad differ diff --git a/vendor/tzdata/zoneinfo/Asia/Atyrau b/vendor/tzdata/zoneinfo/Asia/Atyrau new file mode 100644 index 0000000..cb2c82f Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Atyrau differ diff --git a/vendor/tzdata/zoneinfo/Asia/Baghdad b/vendor/tzdata/zoneinfo/Asia/Baghdad new file mode 100644 index 0000000..a3ce975 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Baghdad differ diff --git a/vendor/tzdata/zoneinfo/Asia/Bahrain b/vendor/tzdata/zoneinfo/Asia/Bahrain new file mode 100644 index 0000000..7409d74 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Bahrain differ diff --git a/vendor/tzdata/zoneinfo/Asia/Baku b/vendor/tzdata/zoneinfo/Asia/Baku new file mode 100644 index 0000000..96203d7 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Baku differ diff --git a/vendor/tzdata/zoneinfo/Asia/Bangkok b/vendor/tzdata/zoneinfo/Asia/Bangkok new file mode 100644 index 0000000..ed687d2 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Bangkok differ diff --git a/vendor/tzdata/zoneinfo/Asia/Barnaul b/vendor/tzdata/zoneinfo/Asia/Barnaul new file mode 100644 index 0000000..ff976dd Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Barnaul differ diff --git a/vendor/tzdata/zoneinfo/Asia/Beirut b/vendor/tzdata/zoneinfo/Asia/Beirut new file mode 100644 index 0000000..55dce57 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Beirut differ diff --git a/vendor/tzdata/zoneinfo/Asia/Bishkek b/vendor/tzdata/zoneinfo/Asia/Bishkek new file mode 100644 index 0000000..fe7832c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Bishkek differ diff --git a/vendor/tzdata/zoneinfo/Asia/Brunei b/vendor/tzdata/zoneinfo/Asia/Brunei new file mode 100644 index 0000000..59bc6e4 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Brunei differ diff --git a/vendor/tzdata/zoneinfo/Asia/Calcutta b/vendor/tzdata/zoneinfo/Asia/Calcutta new file mode 100644 index 0000000..00bc80a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Calcutta differ diff --git a/vendor/tzdata/zoneinfo/Asia/Chita b/vendor/tzdata/zoneinfo/Asia/Chita new file mode 100644 index 0000000..9d49cd3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Chita differ diff --git a/vendor/tzdata/zoneinfo/Asia/Choibalsan b/vendor/tzdata/zoneinfo/Asia/Choibalsan new file mode 100644 index 0000000..6f5d3a1 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Choibalsan differ diff --git a/vendor/tzdata/zoneinfo/Asia/Chongqing b/vendor/tzdata/zoneinfo/Asia/Chongqing new file mode 100644 index 0000000..d6b6698 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Chongqing differ diff --git a/vendor/tzdata/zoneinfo/Asia/Chungking b/vendor/tzdata/zoneinfo/Asia/Chungking new file mode 100644 index 0000000..d6b6698 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Chungking differ diff --git a/vendor/tzdata/zoneinfo/Asia/Colombo b/vendor/tzdata/zoneinfo/Asia/Colombo new file mode 100644 index 0000000..3eeb1b7 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Colombo differ diff --git a/vendor/tzdata/zoneinfo/Asia/Dacca b/vendor/tzdata/zoneinfo/Asia/Dacca new file mode 100644 index 0000000..2813680 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Dacca differ diff --git a/vendor/tzdata/zoneinfo/Asia/Damascus b/vendor/tzdata/zoneinfo/Asia/Damascus new file mode 100644 index 0000000..bd1624d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Damascus differ diff --git a/vendor/tzdata/zoneinfo/Asia/Dhaka b/vendor/tzdata/zoneinfo/Asia/Dhaka new file mode 100644 index 0000000..2813680 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Dhaka differ diff --git a/vendor/tzdata/zoneinfo/Asia/Dili b/vendor/tzdata/zoneinfo/Asia/Dili new file mode 100644 index 0000000..22e705c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Dili differ diff --git a/vendor/tzdata/zoneinfo/Asia/Dubai b/vendor/tzdata/zoneinfo/Asia/Dubai new file mode 100644 index 0000000..58d75bc Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Dubai differ diff --git a/vendor/tzdata/zoneinfo/Asia/Dushanbe b/vendor/tzdata/zoneinfo/Asia/Dushanbe new file mode 100644 index 0000000..d83fb07 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Dushanbe differ diff --git a/vendor/tzdata/zoneinfo/Asia/Famagusta b/vendor/tzdata/zoneinfo/Asia/Famagusta new file mode 100644 index 0000000..cc44179 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Famagusta differ diff --git a/vendor/tzdata/zoneinfo/Asia/Gaza b/vendor/tzdata/zoneinfo/Asia/Gaza new file mode 100644 index 0000000..0d79662 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Gaza differ diff --git a/vendor/tzdata/zoneinfo/Asia/Harbin b/vendor/tzdata/zoneinfo/Asia/Harbin new file mode 100644 index 0000000..d6b6698 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Harbin differ diff --git a/vendor/tzdata/zoneinfo/Asia/Hebron b/vendor/tzdata/zoneinfo/Asia/Hebron new file mode 100644 index 0000000..53a3c14 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Hebron differ diff --git a/vendor/tzdata/zoneinfo/Asia/Ho_Chi_Minh b/vendor/tzdata/zoneinfo/Asia/Ho_Chi_Minh new file mode 100644 index 0000000..294796a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Ho_Chi_Minh differ diff --git a/vendor/tzdata/zoneinfo/Asia/Hong_Kong b/vendor/tzdata/zoneinfo/Asia/Hong_Kong new file mode 100644 index 0000000..c80e364 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Hong_Kong differ diff --git a/vendor/tzdata/zoneinfo/Asia/Hovd b/vendor/tzdata/zoneinfo/Asia/Hovd new file mode 100644 index 0000000..6e08a26 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Hovd differ diff --git a/vendor/tzdata/zoneinfo/Asia/Irkutsk b/vendor/tzdata/zoneinfo/Asia/Irkutsk new file mode 100644 index 0000000..550e2a0 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Irkutsk differ diff --git a/vendor/tzdata/zoneinfo/Asia/Istanbul b/vendor/tzdata/zoneinfo/Asia/Istanbul new file mode 100644 index 0000000..c891866 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Istanbul differ diff --git a/vendor/tzdata/zoneinfo/Asia/Jakarta b/vendor/tzdata/zoneinfo/Asia/Jakarta new file mode 100644 index 0000000..c9752d2 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Jakarta differ diff --git a/vendor/tzdata/zoneinfo/Asia/Jayapura b/vendor/tzdata/zoneinfo/Asia/Jayapura new file mode 100644 index 0000000..7c22f53 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Jayapura differ diff --git a/vendor/tzdata/zoneinfo/Asia/Jerusalem b/vendor/tzdata/zoneinfo/Asia/Jerusalem new file mode 100644 index 0000000..4c49bbf Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Jerusalem differ diff --git a/vendor/tzdata/zoneinfo/Asia/Kabul b/vendor/tzdata/zoneinfo/Asia/Kabul new file mode 100644 index 0000000..660ce4c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Kabul differ diff --git a/vendor/tzdata/zoneinfo/Asia/Kamchatka b/vendor/tzdata/zoneinfo/Asia/Kamchatka new file mode 100644 index 0000000..c651554 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Kamchatka differ diff --git a/vendor/tzdata/zoneinfo/Asia/Karachi b/vendor/tzdata/zoneinfo/Asia/Karachi new file mode 100644 index 0000000..e56d5af Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Karachi differ diff --git a/vendor/tzdata/zoneinfo/Asia/Kashgar b/vendor/tzdata/zoneinfo/Asia/Kashgar new file mode 100644 index 0000000..69ff7f6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Kashgar differ diff --git a/vendor/tzdata/zoneinfo/Asia/Kathmandu b/vendor/tzdata/zoneinfo/Asia/Kathmandu new file mode 100644 index 0000000..3a0d330 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Kathmandu differ diff --git a/vendor/tzdata/zoneinfo/Asia/Katmandu b/vendor/tzdata/zoneinfo/Asia/Katmandu new file mode 100644 index 0000000..3a0d330 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Katmandu differ diff --git a/vendor/tzdata/zoneinfo/Asia/Khandyga b/vendor/tzdata/zoneinfo/Asia/Khandyga new file mode 100644 index 0000000..aeb7332 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Khandyga differ diff --git a/vendor/tzdata/zoneinfo/Asia/Kolkata b/vendor/tzdata/zoneinfo/Asia/Kolkata new file mode 100644 index 0000000..00bc80a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Kolkata differ diff --git a/vendor/tzdata/zoneinfo/Asia/Krasnoyarsk b/vendor/tzdata/zoneinfo/Asia/Krasnoyarsk new file mode 100644 index 0000000..e0d4fcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Krasnoyarsk differ diff --git a/vendor/tzdata/zoneinfo/Asia/Kuala_Lumpur b/vendor/tzdata/zoneinfo/Asia/Kuala_Lumpur new file mode 100644 index 0000000..dbbdea3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Kuala_Lumpur differ diff --git a/vendor/tzdata/zoneinfo/Asia/Kuching b/vendor/tzdata/zoneinfo/Asia/Kuching new file mode 100644 index 0000000..59bc6e4 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Kuching differ diff --git a/vendor/tzdata/zoneinfo/Asia/Kuwait b/vendor/tzdata/zoneinfo/Asia/Kuwait new file mode 100644 index 0000000..01c47cc Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Kuwait differ diff --git a/vendor/tzdata/zoneinfo/Asia/Macao b/vendor/tzdata/zoneinfo/Asia/Macao new file mode 100644 index 0000000..c22f75e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Macao differ diff --git a/vendor/tzdata/zoneinfo/Asia/Macau b/vendor/tzdata/zoneinfo/Asia/Macau new file mode 100644 index 0000000..c22f75e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Macau differ diff --git a/vendor/tzdata/zoneinfo/Asia/Magadan b/vendor/tzdata/zoneinfo/Asia/Magadan new file mode 100644 index 0000000..16bac84 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Magadan differ diff --git a/vendor/tzdata/zoneinfo/Asia/Makassar b/vendor/tzdata/zoneinfo/Asia/Makassar new file mode 100644 index 0000000..5990010 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Makassar differ diff --git a/vendor/tzdata/zoneinfo/Asia/Manila b/vendor/tzdata/zoneinfo/Asia/Manila new file mode 100644 index 0000000..145bb6f Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Manila differ diff --git a/vendor/tzdata/zoneinfo/Asia/Muscat b/vendor/tzdata/zoneinfo/Asia/Muscat new file mode 100644 index 0000000..58d75bc Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Muscat differ diff --git a/vendor/tzdata/zoneinfo/Asia/Nicosia b/vendor/tzdata/zoneinfo/Asia/Nicosia new file mode 100644 index 0000000..390347f Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Nicosia differ diff --git a/vendor/tzdata/zoneinfo/Asia/Novokuznetsk b/vendor/tzdata/zoneinfo/Asia/Novokuznetsk new file mode 100644 index 0000000..9378d50 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Novokuznetsk differ diff --git a/vendor/tzdata/zoneinfo/Asia/Novosibirsk b/vendor/tzdata/zoneinfo/Asia/Novosibirsk new file mode 100644 index 0000000..65a9fa2 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Novosibirsk differ diff --git a/vendor/tzdata/zoneinfo/Asia/Omsk b/vendor/tzdata/zoneinfo/Asia/Omsk new file mode 100644 index 0000000..dc0ed42 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Omsk differ diff --git a/vendor/tzdata/zoneinfo/Asia/Oral b/vendor/tzdata/zoneinfo/Asia/Oral new file mode 100644 index 0000000..25a63ec Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Oral differ diff --git a/vendor/tzdata/zoneinfo/Asia/Phnom_Penh b/vendor/tzdata/zoneinfo/Asia/Phnom_Penh new file mode 100644 index 0000000..ed687d2 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Phnom_Penh differ diff --git a/vendor/tzdata/zoneinfo/Asia/Pontianak b/vendor/tzdata/zoneinfo/Asia/Pontianak new file mode 100644 index 0000000..285bed2 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Pontianak differ diff --git a/vendor/tzdata/zoneinfo/Asia/Pyongyang b/vendor/tzdata/zoneinfo/Asia/Pyongyang new file mode 100644 index 0000000..57240cf Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Pyongyang differ diff --git a/vendor/tzdata/zoneinfo/Asia/Qatar b/vendor/tzdata/zoneinfo/Asia/Qatar new file mode 100644 index 0000000..7409d74 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Qatar differ diff --git a/vendor/tzdata/zoneinfo/Asia/Qostanay b/vendor/tzdata/zoneinfo/Asia/Qostanay new file mode 100644 index 0000000..109fe41 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Qostanay differ diff --git a/vendor/tzdata/zoneinfo/Asia/Qyzylorda b/vendor/tzdata/zoneinfo/Asia/Qyzylorda new file mode 100644 index 0000000..fe4d6c6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Qyzylorda differ diff --git a/vendor/tzdata/zoneinfo/Asia/Rangoon b/vendor/tzdata/zoneinfo/Asia/Rangoon new file mode 100644 index 0000000..14b2ad0 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Rangoon differ diff --git a/vendor/tzdata/zoneinfo/Asia/Riyadh b/vendor/tzdata/zoneinfo/Asia/Riyadh new file mode 100644 index 0000000..01c47cc Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Riyadh differ diff --git a/vendor/tzdata/zoneinfo/Asia/Saigon b/vendor/tzdata/zoneinfo/Asia/Saigon new file mode 100644 index 0000000..294796a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Saigon differ diff --git a/vendor/tzdata/zoneinfo/Asia/Sakhalin b/vendor/tzdata/zoneinfo/Asia/Sakhalin new file mode 100644 index 0000000..69f0faa Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Sakhalin differ diff --git a/vendor/tzdata/zoneinfo/Asia/Samarkand b/vendor/tzdata/zoneinfo/Asia/Samarkand new file mode 100644 index 0000000..c43e27c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Samarkand differ diff --git a/vendor/tzdata/zoneinfo/Asia/Seoul b/vendor/tzdata/zoneinfo/Asia/Seoul new file mode 100644 index 0000000..1755147 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Seoul differ diff --git a/vendor/tzdata/zoneinfo/Asia/Shanghai b/vendor/tzdata/zoneinfo/Asia/Shanghai new file mode 100644 index 0000000..d6b6698 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Shanghai differ diff --git a/vendor/tzdata/zoneinfo/Asia/Singapore b/vendor/tzdata/zoneinfo/Asia/Singapore new file mode 100644 index 0000000..dbbdea3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Singapore differ diff --git a/vendor/tzdata/zoneinfo/Asia/Srednekolymsk b/vendor/tzdata/zoneinfo/Asia/Srednekolymsk new file mode 100644 index 0000000..7fdee5c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Srednekolymsk differ diff --git a/vendor/tzdata/zoneinfo/Asia/Taipei b/vendor/tzdata/zoneinfo/Asia/Taipei new file mode 100644 index 0000000..35d89d0 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Taipei differ diff --git a/vendor/tzdata/zoneinfo/Asia/Tashkent b/vendor/tzdata/zoneinfo/Asia/Tashkent new file mode 100644 index 0000000..65ee428 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Tashkent differ diff --git a/vendor/tzdata/zoneinfo/Asia/Tbilisi b/vendor/tzdata/zoneinfo/Asia/Tbilisi new file mode 100644 index 0000000..247caa6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Tbilisi differ diff --git a/vendor/tzdata/zoneinfo/Asia/Tehran b/vendor/tzdata/zoneinfo/Asia/Tehran new file mode 100644 index 0000000..2a46cf7 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Tehran differ diff --git a/vendor/tzdata/zoneinfo/Asia/Tel_Aviv b/vendor/tzdata/zoneinfo/Asia/Tel_Aviv new file mode 100644 index 0000000..4c49bbf Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Tel_Aviv differ diff --git a/vendor/tzdata/zoneinfo/Asia/Thimbu b/vendor/tzdata/zoneinfo/Asia/Thimbu new file mode 100644 index 0000000..0edc72c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Thimbu differ diff --git a/vendor/tzdata/zoneinfo/Asia/Thimphu b/vendor/tzdata/zoneinfo/Asia/Thimphu new file mode 100644 index 0000000..0edc72c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Thimphu differ diff --git a/vendor/tzdata/zoneinfo/Asia/Tokyo b/vendor/tzdata/zoneinfo/Asia/Tokyo new file mode 100644 index 0000000..1aa066c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Tokyo differ diff --git a/vendor/tzdata/zoneinfo/Asia/Tomsk b/vendor/tzdata/zoneinfo/Asia/Tomsk new file mode 100644 index 0000000..c3c307d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Tomsk differ diff --git a/vendor/tzdata/zoneinfo/Asia/Ujung_Pandang b/vendor/tzdata/zoneinfo/Asia/Ujung_Pandang new file mode 100644 index 0000000..5990010 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Ujung_Pandang differ diff --git a/vendor/tzdata/zoneinfo/Asia/Ulaanbaatar b/vendor/tzdata/zoneinfo/Asia/Ulaanbaatar new file mode 100644 index 0000000..6f5d3a1 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Ulaanbaatar differ diff --git a/vendor/tzdata/zoneinfo/Asia/Ulan_Bator b/vendor/tzdata/zoneinfo/Asia/Ulan_Bator new file mode 100644 index 0000000..6f5d3a1 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Ulan_Bator differ diff --git a/vendor/tzdata/zoneinfo/Asia/Urumqi b/vendor/tzdata/zoneinfo/Asia/Urumqi new file mode 100644 index 0000000..69ff7f6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Urumqi differ diff --git a/vendor/tzdata/zoneinfo/Asia/Ust-Nera b/vendor/tzdata/zoneinfo/Asia/Ust-Nera new file mode 100644 index 0000000..c39331e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Ust-Nera differ diff --git a/vendor/tzdata/zoneinfo/Asia/Vientiane b/vendor/tzdata/zoneinfo/Asia/Vientiane new file mode 100644 index 0000000..ed687d2 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Vientiane differ diff --git a/vendor/tzdata/zoneinfo/Asia/Vladivostok b/vendor/tzdata/zoneinfo/Asia/Vladivostok new file mode 100644 index 0000000..72a3d4e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Vladivostok differ diff --git a/vendor/tzdata/zoneinfo/Asia/Yakutsk b/vendor/tzdata/zoneinfo/Asia/Yakutsk new file mode 100644 index 0000000..336f932 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Yakutsk differ diff --git a/vendor/tzdata/zoneinfo/Asia/Yangon b/vendor/tzdata/zoneinfo/Asia/Yangon new file mode 100644 index 0000000..14b2ad0 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Yangon differ diff --git a/vendor/tzdata/zoneinfo/Asia/Yekaterinburg b/vendor/tzdata/zoneinfo/Asia/Yekaterinburg new file mode 100644 index 0000000..a3bf7f2 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Yekaterinburg differ diff --git a/vendor/tzdata/zoneinfo/Asia/Yerevan b/vendor/tzdata/zoneinfo/Asia/Yerevan new file mode 100644 index 0000000..6dd927c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Asia/Yerevan differ diff --git a/vendor/tzdata/zoneinfo/Asia/__init__.py b/vendor/tzdata/zoneinfo/Asia/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/Atlantic/Azores b/vendor/tzdata/zoneinfo/Atlantic/Azores new file mode 100644 index 0000000..cda1c1d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Atlantic/Azores differ diff --git a/vendor/tzdata/zoneinfo/Atlantic/Bermuda b/vendor/tzdata/zoneinfo/Atlantic/Bermuda new file mode 100644 index 0000000..abc75ea Binary files /dev/null and b/vendor/tzdata/zoneinfo/Atlantic/Bermuda differ diff --git a/vendor/tzdata/zoneinfo/Atlantic/Canary b/vendor/tzdata/zoneinfo/Atlantic/Canary new file mode 100644 index 0000000..5ab3243 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Atlantic/Canary differ diff --git a/vendor/tzdata/zoneinfo/Atlantic/Cape_Verde b/vendor/tzdata/zoneinfo/Atlantic/Cape_Verde new file mode 100644 index 0000000..8f7de1c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Atlantic/Cape_Verde differ diff --git a/vendor/tzdata/zoneinfo/Atlantic/Faeroe b/vendor/tzdata/zoneinfo/Atlantic/Faeroe new file mode 100644 index 0000000..9558bf7 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Atlantic/Faeroe differ diff --git a/vendor/tzdata/zoneinfo/Atlantic/Faroe b/vendor/tzdata/zoneinfo/Atlantic/Faroe new file mode 100644 index 0000000..9558bf7 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Atlantic/Faroe differ diff --git a/vendor/tzdata/zoneinfo/Atlantic/Jan_Mayen b/vendor/tzdata/zoneinfo/Atlantic/Jan_Mayen new file mode 100644 index 0000000..465546b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Atlantic/Jan_Mayen differ diff --git a/vendor/tzdata/zoneinfo/Atlantic/Madeira b/vendor/tzdata/zoneinfo/Atlantic/Madeira new file mode 100644 index 0000000..21e8457 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Atlantic/Madeira differ diff --git a/vendor/tzdata/zoneinfo/Atlantic/Reykjavik b/vendor/tzdata/zoneinfo/Atlantic/Reykjavik new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Atlantic/Reykjavik differ diff --git a/vendor/tzdata/zoneinfo/Atlantic/South_Georgia b/vendor/tzdata/zoneinfo/Atlantic/South_Georgia new file mode 100644 index 0000000..7fa5f46 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Atlantic/South_Georgia differ diff --git a/vendor/tzdata/zoneinfo/Atlantic/St_Helena b/vendor/tzdata/zoneinfo/Atlantic/St_Helena new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Atlantic/St_Helena differ diff --git a/vendor/tzdata/zoneinfo/Atlantic/Stanley b/vendor/tzdata/zoneinfo/Atlantic/Stanley new file mode 100644 index 0000000..1a4c8ea Binary files /dev/null and b/vendor/tzdata/zoneinfo/Atlantic/Stanley differ diff --git a/vendor/tzdata/zoneinfo/Atlantic/__init__.py b/vendor/tzdata/zoneinfo/Atlantic/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/Australia/ACT b/vendor/tzdata/zoneinfo/Australia/ACT new file mode 100644 index 0000000..1975a3a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/ACT differ diff --git a/vendor/tzdata/zoneinfo/Australia/Adelaide b/vendor/tzdata/zoneinfo/Australia/Adelaide new file mode 100644 index 0000000..3bfbbc5 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Adelaide differ diff --git a/vendor/tzdata/zoneinfo/Australia/Brisbane b/vendor/tzdata/zoneinfo/Australia/Brisbane new file mode 100644 index 0000000..dc9a980 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Brisbane differ diff --git a/vendor/tzdata/zoneinfo/Australia/Broken_Hill b/vendor/tzdata/zoneinfo/Australia/Broken_Hill new file mode 100644 index 0000000..947b509 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Broken_Hill differ diff --git a/vendor/tzdata/zoneinfo/Australia/Canberra b/vendor/tzdata/zoneinfo/Australia/Canberra new file mode 100644 index 0000000..1975a3a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Canberra differ diff --git a/vendor/tzdata/zoneinfo/Australia/Currie b/vendor/tzdata/zoneinfo/Australia/Currie new file mode 100644 index 0000000..dc2ef55 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Currie differ diff --git a/vendor/tzdata/zoneinfo/Australia/Darwin b/vendor/tzdata/zoneinfo/Australia/Darwin new file mode 100644 index 0000000..a6a6730 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Darwin differ diff --git a/vendor/tzdata/zoneinfo/Australia/Eucla b/vendor/tzdata/zoneinfo/Australia/Eucla new file mode 100644 index 0000000..9080f5c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Eucla differ diff --git a/vendor/tzdata/zoneinfo/Australia/Hobart b/vendor/tzdata/zoneinfo/Australia/Hobart new file mode 100644 index 0000000..dc2ef55 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Hobart differ diff --git a/vendor/tzdata/zoneinfo/Australia/LHI b/vendor/tzdata/zoneinfo/Australia/LHI new file mode 100644 index 0000000..4d4ec8c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/LHI differ diff --git a/vendor/tzdata/zoneinfo/Australia/Lindeman b/vendor/tzdata/zoneinfo/Australia/Lindeman new file mode 100644 index 0000000..131d77b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Lindeman differ diff --git a/vendor/tzdata/zoneinfo/Australia/Lord_Howe b/vendor/tzdata/zoneinfo/Australia/Lord_Howe new file mode 100644 index 0000000..4d4ec8c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Lord_Howe differ diff --git a/vendor/tzdata/zoneinfo/Australia/Melbourne b/vendor/tzdata/zoneinfo/Australia/Melbourne new file mode 100644 index 0000000..d3f195a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Melbourne differ diff --git a/vendor/tzdata/zoneinfo/Australia/NSW b/vendor/tzdata/zoneinfo/Australia/NSW new file mode 100644 index 0000000..1975a3a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/NSW differ diff --git a/vendor/tzdata/zoneinfo/Australia/North b/vendor/tzdata/zoneinfo/Australia/North new file mode 100644 index 0000000..a6a6730 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/North differ diff --git a/vendor/tzdata/zoneinfo/Australia/Perth b/vendor/tzdata/zoneinfo/Australia/Perth new file mode 100644 index 0000000..4f77182 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Perth differ diff --git a/vendor/tzdata/zoneinfo/Australia/Queensland b/vendor/tzdata/zoneinfo/Australia/Queensland new file mode 100644 index 0000000..dc9a980 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Queensland differ diff --git a/vendor/tzdata/zoneinfo/Australia/South b/vendor/tzdata/zoneinfo/Australia/South new file mode 100644 index 0000000..3bfbbc5 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/South differ diff --git a/vendor/tzdata/zoneinfo/Australia/Sydney b/vendor/tzdata/zoneinfo/Australia/Sydney new file mode 100644 index 0000000..1975a3a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Sydney differ diff --git a/vendor/tzdata/zoneinfo/Australia/Tasmania b/vendor/tzdata/zoneinfo/Australia/Tasmania new file mode 100644 index 0000000..dc2ef55 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Tasmania differ diff --git a/vendor/tzdata/zoneinfo/Australia/Victoria b/vendor/tzdata/zoneinfo/Australia/Victoria new file mode 100644 index 0000000..d3f195a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Victoria differ diff --git a/vendor/tzdata/zoneinfo/Australia/West b/vendor/tzdata/zoneinfo/Australia/West new file mode 100644 index 0000000..4f77182 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/West differ diff --git a/vendor/tzdata/zoneinfo/Australia/Yancowinna b/vendor/tzdata/zoneinfo/Australia/Yancowinna new file mode 100644 index 0000000..947b509 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Australia/Yancowinna differ diff --git a/vendor/tzdata/zoneinfo/Australia/__init__.py b/vendor/tzdata/zoneinfo/Australia/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/Brazil/Acre b/vendor/tzdata/zoneinfo/Brazil/Acre new file mode 100644 index 0000000..fb5185c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Brazil/Acre differ diff --git a/vendor/tzdata/zoneinfo/Brazil/DeNoronha b/vendor/tzdata/zoneinfo/Brazil/DeNoronha new file mode 100644 index 0000000..9e74745 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Brazil/DeNoronha differ diff --git a/vendor/tzdata/zoneinfo/Brazil/East b/vendor/tzdata/zoneinfo/Brazil/East new file mode 100644 index 0000000..a16da2c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Brazil/East differ diff --git a/vendor/tzdata/zoneinfo/Brazil/West b/vendor/tzdata/zoneinfo/Brazil/West new file mode 100644 index 0000000..59c952e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Brazil/West differ diff --git a/vendor/tzdata/zoneinfo/Brazil/__init__.py b/vendor/tzdata/zoneinfo/Brazil/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/CET b/vendor/tzdata/zoneinfo/CET new file mode 100644 index 0000000..3197327 Binary files /dev/null and b/vendor/tzdata/zoneinfo/CET differ diff --git a/vendor/tzdata/zoneinfo/CST6CDT b/vendor/tzdata/zoneinfo/CST6CDT new file mode 100644 index 0000000..cc2cb27 Binary files /dev/null and b/vendor/tzdata/zoneinfo/CST6CDT differ diff --git a/vendor/tzdata/zoneinfo/Canada/Atlantic b/vendor/tzdata/zoneinfo/Canada/Atlantic new file mode 100644 index 0000000..9fa850a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Canada/Atlantic differ diff --git a/vendor/tzdata/zoneinfo/Canada/Central b/vendor/tzdata/zoneinfo/Canada/Central new file mode 100644 index 0000000..0ca1509 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Canada/Central differ diff --git a/vendor/tzdata/zoneinfo/Canada/Eastern b/vendor/tzdata/zoneinfo/Canada/Eastern new file mode 100644 index 0000000..668e70d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Canada/Eastern differ diff --git a/vendor/tzdata/zoneinfo/Canada/Mountain b/vendor/tzdata/zoneinfo/Canada/Mountain new file mode 100644 index 0000000..379e365 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Canada/Mountain differ diff --git a/vendor/tzdata/zoneinfo/Canada/Newfoundland b/vendor/tzdata/zoneinfo/Canada/Newfoundland new file mode 100644 index 0000000..94d790b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Canada/Newfoundland differ diff --git a/vendor/tzdata/zoneinfo/Canada/Pacific b/vendor/tzdata/zoneinfo/Canada/Pacific new file mode 100644 index 0000000..1ab2eaf Binary files /dev/null and b/vendor/tzdata/zoneinfo/Canada/Pacific differ diff --git a/vendor/tzdata/zoneinfo/Canada/Saskatchewan b/vendor/tzdata/zoneinfo/Canada/Saskatchewan new file mode 100644 index 0000000..a3f8217 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Canada/Saskatchewan differ diff --git a/vendor/tzdata/zoneinfo/Canada/Yukon b/vendor/tzdata/zoneinfo/Canada/Yukon new file mode 100644 index 0000000..40baa9a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Canada/Yukon differ diff --git a/vendor/tzdata/zoneinfo/Canada/__init__.py b/vendor/tzdata/zoneinfo/Canada/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/Chile/Continental b/vendor/tzdata/zoneinfo/Chile/Continental new file mode 100644 index 0000000..d3fc9b8 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Chile/Continental differ diff --git a/vendor/tzdata/zoneinfo/Chile/EasterIsland b/vendor/tzdata/zoneinfo/Chile/EasterIsland new file mode 100644 index 0000000..54dff00 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Chile/EasterIsland differ diff --git a/vendor/tzdata/zoneinfo/Chile/__init__.py b/vendor/tzdata/zoneinfo/Chile/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/Cuba b/vendor/tzdata/zoneinfo/Cuba new file mode 100644 index 0000000..e06629d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Cuba differ diff --git a/vendor/tzdata/zoneinfo/EET b/vendor/tzdata/zoneinfo/EET new file mode 100644 index 0000000..231bf9c Binary files /dev/null and b/vendor/tzdata/zoneinfo/EET differ diff --git a/vendor/tzdata/zoneinfo/EST b/vendor/tzdata/zoneinfo/EST new file mode 100644 index 0000000..9154643 Binary files /dev/null and b/vendor/tzdata/zoneinfo/EST differ diff --git a/vendor/tzdata/zoneinfo/EST5EDT b/vendor/tzdata/zoneinfo/EST5EDT new file mode 100644 index 0000000..cc944f0 Binary files /dev/null and b/vendor/tzdata/zoneinfo/EST5EDT differ diff --git a/vendor/tzdata/zoneinfo/Egypt b/vendor/tzdata/zoneinfo/Egypt new file mode 100644 index 0000000..1e6d48d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Egypt differ diff --git a/vendor/tzdata/zoneinfo/Eire b/vendor/tzdata/zoneinfo/Eire new file mode 100644 index 0000000..df91cd5 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Eire differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT b/vendor/tzdata/zoneinfo/Etc/GMT new file mode 100644 index 0000000..157573b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+0 b/vendor/tzdata/zoneinfo/Etc/GMT+0 new file mode 100644 index 0000000..157573b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+0 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+1 b/vendor/tzdata/zoneinfo/Etc/GMT+1 new file mode 100644 index 0000000..98d5dcf Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+1 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+10 b/vendor/tzdata/zoneinfo/Etc/GMT+10 new file mode 100644 index 0000000..ecb287e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+10 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+11 b/vendor/tzdata/zoneinfo/Etc/GMT+11 new file mode 100644 index 0000000..e941412 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+11 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+12 b/vendor/tzdata/zoneinfo/Etc/GMT+12 new file mode 100644 index 0000000..9c95bd0 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+12 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+2 b/vendor/tzdata/zoneinfo/Etc/GMT+2 new file mode 100644 index 0000000..6d5ce3d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+2 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+3 b/vendor/tzdata/zoneinfo/Etc/GMT+3 new file mode 100644 index 0000000..5ef7be7 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+3 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+4 b/vendor/tzdata/zoneinfo/Etc/GMT+4 new file mode 100644 index 0000000..75f1621 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+4 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+5 b/vendor/tzdata/zoneinfo/Etc/GMT+5 new file mode 100644 index 0000000..589990a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+5 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+6 b/vendor/tzdata/zoneinfo/Etc/GMT+6 new file mode 100644 index 0000000..fcb60ca Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+6 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+7 b/vendor/tzdata/zoneinfo/Etc/GMT+7 new file mode 100644 index 0000000..c0427a4 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+7 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+8 b/vendor/tzdata/zoneinfo/Etc/GMT+8 new file mode 100644 index 0000000..9bdc228 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+8 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT+9 b/vendor/tzdata/zoneinfo/Etc/GMT+9 new file mode 100644 index 0000000..ca7a81f Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT+9 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-0 b/vendor/tzdata/zoneinfo/Etc/GMT-0 new file mode 100644 index 0000000..157573b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-0 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-1 b/vendor/tzdata/zoneinfo/Etc/GMT-1 new file mode 100644 index 0000000..cb45601 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-1 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-10 b/vendor/tzdata/zoneinfo/Etc/GMT-10 new file mode 100644 index 0000000..11d988e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-10 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-11 b/vendor/tzdata/zoneinfo/Etc/GMT-11 new file mode 100644 index 0000000..f4c5d5c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-11 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-12 b/vendor/tzdata/zoneinfo/Etc/GMT-12 new file mode 100644 index 0000000..cd397b0 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-12 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-13 b/vendor/tzdata/zoneinfo/Etc/GMT-13 new file mode 100644 index 0000000..8fad7c6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-13 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-14 b/vendor/tzdata/zoneinfo/Etc/GMT-14 new file mode 100644 index 0000000..a595e60 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-14 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-2 b/vendor/tzdata/zoneinfo/Etc/GMT-2 new file mode 100644 index 0000000..97b44a9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-2 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-3 b/vendor/tzdata/zoneinfo/Etc/GMT-3 new file mode 100644 index 0000000..4eb17ff Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-3 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-4 b/vendor/tzdata/zoneinfo/Etc/GMT-4 new file mode 100644 index 0000000..13aef80 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-4 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-5 b/vendor/tzdata/zoneinfo/Etc/GMT-5 new file mode 100644 index 0000000..83a2816 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-5 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-6 b/vendor/tzdata/zoneinfo/Etc/GMT-6 new file mode 100644 index 0000000..79a983e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-6 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-7 b/vendor/tzdata/zoneinfo/Etc/GMT-7 new file mode 100644 index 0000000..e136690 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-7 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-8 b/vendor/tzdata/zoneinfo/Etc/GMT-8 new file mode 100644 index 0000000..bc70fe4 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-8 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT-9 b/vendor/tzdata/zoneinfo/Etc/GMT-9 new file mode 100644 index 0000000..d18cedd Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT-9 differ diff --git a/vendor/tzdata/zoneinfo/Etc/GMT0 b/vendor/tzdata/zoneinfo/Etc/GMT0 new file mode 100644 index 0000000..157573b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/GMT0 differ diff --git a/vendor/tzdata/zoneinfo/Etc/Greenwich b/vendor/tzdata/zoneinfo/Etc/Greenwich new file mode 100644 index 0000000..157573b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/Greenwich differ diff --git a/vendor/tzdata/zoneinfo/Etc/UCT b/vendor/tzdata/zoneinfo/Etc/UCT new file mode 100644 index 0000000..00841a6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/UCT differ diff --git a/vendor/tzdata/zoneinfo/Etc/UTC b/vendor/tzdata/zoneinfo/Etc/UTC new file mode 100644 index 0000000..00841a6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/UTC differ diff --git a/vendor/tzdata/zoneinfo/Etc/Universal b/vendor/tzdata/zoneinfo/Etc/Universal new file mode 100644 index 0000000..00841a6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/Universal differ diff --git a/vendor/tzdata/zoneinfo/Etc/Zulu b/vendor/tzdata/zoneinfo/Etc/Zulu new file mode 100644 index 0000000..00841a6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Etc/Zulu differ diff --git a/vendor/tzdata/zoneinfo/Etc/__init__.py b/vendor/tzdata/zoneinfo/Etc/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/Europe/Amsterdam b/vendor/tzdata/zoneinfo/Europe/Amsterdam new file mode 100644 index 0000000..3197327 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Amsterdam differ diff --git a/vendor/tzdata/zoneinfo/Europe/Andorra b/vendor/tzdata/zoneinfo/Europe/Andorra new file mode 100644 index 0000000..38685d4 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Andorra differ diff --git a/vendor/tzdata/zoneinfo/Europe/Astrakhan b/vendor/tzdata/zoneinfo/Europe/Astrakhan new file mode 100644 index 0000000..aff8d82 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Astrakhan differ diff --git a/vendor/tzdata/zoneinfo/Europe/Athens b/vendor/tzdata/zoneinfo/Europe/Athens new file mode 100644 index 0000000..231bf9c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Athens differ diff --git a/vendor/tzdata/zoneinfo/Europe/Belfast b/vendor/tzdata/zoneinfo/Europe/Belfast new file mode 100644 index 0000000..b9e95d9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Belfast differ diff --git a/vendor/tzdata/zoneinfo/Europe/Belgrade b/vendor/tzdata/zoneinfo/Europe/Belgrade new file mode 100644 index 0000000..a1bf928 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Belgrade differ diff --git a/vendor/tzdata/zoneinfo/Europe/Berlin b/vendor/tzdata/zoneinfo/Europe/Berlin new file mode 100644 index 0000000..465546b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Berlin differ diff --git a/vendor/tzdata/zoneinfo/Europe/Bratislava b/vendor/tzdata/zoneinfo/Europe/Bratislava new file mode 100644 index 0000000..fb7c145 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Bratislava differ diff --git a/vendor/tzdata/zoneinfo/Europe/Brussels b/vendor/tzdata/zoneinfo/Europe/Brussels new file mode 100644 index 0000000..3197327 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Brussels differ diff --git a/vendor/tzdata/zoneinfo/Europe/Bucharest b/vendor/tzdata/zoneinfo/Europe/Bucharest new file mode 100644 index 0000000..c4a391e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Bucharest differ diff --git a/vendor/tzdata/zoneinfo/Europe/Budapest b/vendor/tzdata/zoneinfo/Europe/Budapest new file mode 100644 index 0000000..940be46 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Budapest differ diff --git a/vendor/tzdata/zoneinfo/Europe/Busingen b/vendor/tzdata/zoneinfo/Europe/Busingen new file mode 100644 index 0000000..388df29 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Busingen differ diff --git a/vendor/tzdata/zoneinfo/Europe/Chisinau b/vendor/tzdata/zoneinfo/Europe/Chisinau new file mode 100644 index 0000000..a60bddd Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Chisinau differ diff --git a/vendor/tzdata/zoneinfo/Europe/Copenhagen b/vendor/tzdata/zoneinfo/Europe/Copenhagen new file mode 100644 index 0000000..465546b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Copenhagen differ diff --git a/vendor/tzdata/zoneinfo/Europe/Dublin b/vendor/tzdata/zoneinfo/Europe/Dublin new file mode 100644 index 0000000..df91cd5 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Dublin differ diff --git a/vendor/tzdata/zoneinfo/Europe/Gibraltar b/vendor/tzdata/zoneinfo/Europe/Gibraltar new file mode 100644 index 0000000..017bb2e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Gibraltar differ diff --git a/vendor/tzdata/zoneinfo/Europe/Guernsey b/vendor/tzdata/zoneinfo/Europe/Guernsey new file mode 100644 index 0000000..b9e95d9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Guernsey differ diff --git a/vendor/tzdata/zoneinfo/Europe/Helsinki b/vendor/tzdata/zoneinfo/Europe/Helsinki new file mode 100644 index 0000000..ff5e565 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Helsinki differ diff --git a/vendor/tzdata/zoneinfo/Europe/Isle_of_Man b/vendor/tzdata/zoneinfo/Europe/Isle_of_Man new file mode 100644 index 0000000..b9e95d9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Isle_of_Man differ diff --git a/vendor/tzdata/zoneinfo/Europe/Istanbul b/vendor/tzdata/zoneinfo/Europe/Istanbul new file mode 100644 index 0000000..c891866 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Istanbul differ diff --git a/vendor/tzdata/zoneinfo/Europe/Jersey b/vendor/tzdata/zoneinfo/Europe/Jersey new file mode 100644 index 0000000..b9e95d9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Jersey differ diff --git a/vendor/tzdata/zoneinfo/Europe/Kaliningrad b/vendor/tzdata/zoneinfo/Europe/Kaliningrad new file mode 100644 index 0000000..0ec4756 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Kaliningrad differ diff --git a/vendor/tzdata/zoneinfo/Europe/Kiev b/vendor/tzdata/zoneinfo/Europe/Kiev new file mode 100644 index 0000000..753a6c8 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Kiev differ diff --git a/vendor/tzdata/zoneinfo/Europe/Kirov b/vendor/tzdata/zoneinfo/Europe/Kirov new file mode 100644 index 0000000..bfac561 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Kirov differ diff --git a/vendor/tzdata/zoneinfo/Europe/Kyiv b/vendor/tzdata/zoneinfo/Europe/Kyiv new file mode 100644 index 0000000..753a6c8 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Kyiv differ diff --git a/vendor/tzdata/zoneinfo/Europe/Lisbon b/vendor/tzdata/zoneinfo/Europe/Lisbon new file mode 100644 index 0000000..7e9aae7 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Lisbon differ diff --git a/vendor/tzdata/zoneinfo/Europe/Ljubljana b/vendor/tzdata/zoneinfo/Europe/Ljubljana new file mode 100644 index 0000000..a1bf928 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Ljubljana differ diff --git a/vendor/tzdata/zoneinfo/Europe/London b/vendor/tzdata/zoneinfo/Europe/London new file mode 100644 index 0000000..b9e95d9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/London differ diff --git a/vendor/tzdata/zoneinfo/Europe/Luxembourg b/vendor/tzdata/zoneinfo/Europe/Luxembourg new file mode 100644 index 0000000..3197327 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Luxembourg differ diff --git a/vendor/tzdata/zoneinfo/Europe/Madrid b/vendor/tzdata/zoneinfo/Europe/Madrid new file mode 100644 index 0000000..60bdf4d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Madrid differ diff --git a/vendor/tzdata/zoneinfo/Europe/Malta b/vendor/tzdata/zoneinfo/Europe/Malta new file mode 100644 index 0000000..27539c2 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Malta differ diff --git a/vendor/tzdata/zoneinfo/Europe/Mariehamn b/vendor/tzdata/zoneinfo/Europe/Mariehamn new file mode 100644 index 0000000..ff5e565 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Mariehamn differ diff --git a/vendor/tzdata/zoneinfo/Europe/Minsk b/vendor/tzdata/zoneinfo/Europe/Minsk new file mode 100644 index 0000000..30d3a67 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Minsk differ diff --git a/vendor/tzdata/zoneinfo/Europe/Monaco b/vendor/tzdata/zoneinfo/Europe/Monaco new file mode 100644 index 0000000..00a2726 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Monaco differ diff --git a/vendor/tzdata/zoneinfo/Europe/Moscow b/vendor/tzdata/zoneinfo/Europe/Moscow new file mode 100644 index 0000000..5e6b6de Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Moscow differ diff --git a/vendor/tzdata/zoneinfo/Europe/Nicosia b/vendor/tzdata/zoneinfo/Europe/Nicosia new file mode 100644 index 0000000..390347f Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Nicosia differ diff --git a/vendor/tzdata/zoneinfo/Europe/Oslo b/vendor/tzdata/zoneinfo/Europe/Oslo new file mode 100644 index 0000000..465546b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Oslo differ diff --git a/vendor/tzdata/zoneinfo/Europe/Paris b/vendor/tzdata/zoneinfo/Europe/Paris new file mode 100644 index 0000000..00a2726 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Paris differ diff --git a/vendor/tzdata/zoneinfo/Europe/Podgorica b/vendor/tzdata/zoneinfo/Europe/Podgorica new file mode 100644 index 0000000..a1bf928 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Podgorica differ diff --git a/vendor/tzdata/zoneinfo/Europe/Prague b/vendor/tzdata/zoneinfo/Europe/Prague new file mode 100644 index 0000000..fb7c145 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Prague differ diff --git a/vendor/tzdata/zoneinfo/Europe/Riga b/vendor/tzdata/zoneinfo/Europe/Riga new file mode 100644 index 0000000..d99170b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Riga differ diff --git a/vendor/tzdata/zoneinfo/Europe/Rome b/vendor/tzdata/zoneinfo/Europe/Rome new file mode 100644 index 0000000..639ca3b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Rome differ diff --git a/vendor/tzdata/zoneinfo/Europe/Samara b/vendor/tzdata/zoneinfo/Europe/Samara new file mode 100644 index 0000000..8d0c26e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Samara differ diff --git a/vendor/tzdata/zoneinfo/Europe/San_Marino b/vendor/tzdata/zoneinfo/Europe/San_Marino new file mode 100644 index 0000000..639ca3b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/San_Marino differ diff --git a/vendor/tzdata/zoneinfo/Europe/Sarajevo b/vendor/tzdata/zoneinfo/Europe/Sarajevo new file mode 100644 index 0000000..a1bf928 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Sarajevo differ diff --git a/vendor/tzdata/zoneinfo/Europe/Saratov b/vendor/tzdata/zoneinfo/Europe/Saratov new file mode 100644 index 0000000..2684d8f Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Saratov differ diff --git a/vendor/tzdata/zoneinfo/Europe/Simferopol b/vendor/tzdata/zoneinfo/Europe/Simferopol new file mode 100644 index 0000000..298b832 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Simferopol differ diff --git a/vendor/tzdata/zoneinfo/Europe/Skopje b/vendor/tzdata/zoneinfo/Europe/Skopje new file mode 100644 index 0000000..a1bf928 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Skopje differ diff --git a/vendor/tzdata/zoneinfo/Europe/Sofia b/vendor/tzdata/zoneinfo/Europe/Sofia new file mode 100644 index 0000000..8945068 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Sofia differ diff --git a/vendor/tzdata/zoneinfo/Europe/Stockholm b/vendor/tzdata/zoneinfo/Europe/Stockholm new file mode 100644 index 0000000..465546b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Stockholm differ diff --git a/vendor/tzdata/zoneinfo/Europe/Tallinn b/vendor/tzdata/zoneinfo/Europe/Tallinn new file mode 100644 index 0000000..fbebdc6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Tallinn differ diff --git a/vendor/tzdata/zoneinfo/Europe/Tirane b/vendor/tzdata/zoneinfo/Europe/Tirane new file mode 100644 index 0000000..743a733 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Tirane differ diff --git a/vendor/tzdata/zoneinfo/Europe/Tiraspol b/vendor/tzdata/zoneinfo/Europe/Tiraspol new file mode 100644 index 0000000..a60bddd Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Tiraspol differ diff --git a/vendor/tzdata/zoneinfo/Europe/Ulyanovsk b/vendor/tzdata/zoneinfo/Europe/Ulyanovsk new file mode 100644 index 0000000..bb842cb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Ulyanovsk differ diff --git a/vendor/tzdata/zoneinfo/Europe/Uzhgorod b/vendor/tzdata/zoneinfo/Europe/Uzhgorod new file mode 100644 index 0000000..753a6c8 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Uzhgorod differ diff --git a/vendor/tzdata/zoneinfo/Europe/Vaduz b/vendor/tzdata/zoneinfo/Europe/Vaduz new file mode 100644 index 0000000..388df29 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Vaduz differ diff --git a/vendor/tzdata/zoneinfo/Europe/Vatican b/vendor/tzdata/zoneinfo/Europe/Vatican new file mode 100644 index 0000000..639ca3b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Vatican differ diff --git a/vendor/tzdata/zoneinfo/Europe/Vienna b/vendor/tzdata/zoneinfo/Europe/Vienna new file mode 100644 index 0000000..75339e9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Vienna differ diff --git a/vendor/tzdata/zoneinfo/Europe/Vilnius b/vendor/tzdata/zoneinfo/Europe/Vilnius new file mode 100644 index 0000000..43c3d7f Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Vilnius differ diff --git a/vendor/tzdata/zoneinfo/Europe/Volgograd b/vendor/tzdata/zoneinfo/Europe/Volgograd new file mode 100644 index 0000000..0715d58 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Volgograd differ diff --git a/vendor/tzdata/zoneinfo/Europe/Warsaw b/vendor/tzdata/zoneinfo/Europe/Warsaw new file mode 100644 index 0000000..efe1a40 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Warsaw differ diff --git a/vendor/tzdata/zoneinfo/Europe/Zagreb b/vendor/tzdata/zoneinfo/Europe/Zagreb new file mode 100644 index 0000000..a1bf928 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Zagreb differ diff --git a/vendor/tzdata/zoneinfo/Europe/Zaporozhye b/vendor/tzdata/zoneinfo/Europe/Zaporozhye new file mode 100644 index 0000000..753a6c8 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Zaporozhye differ diff --git a/vendor/tzdata/zoneinfo/Europe/Zurich b/vendor/tzdata/zoneinfo/Europe/Zurich new file mode 100644 index 0000000..388df29 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Europe/Zurich differ diff --git a/vendor/tzdata/zoneinfo/Europe/__init__.py b/vendor/tzdata/zoneinfo/Europe/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/Factory b/vendor/tzdata/zoneinfo/Factory new file mode 100644 index 0000000..b4dd773 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Factory differ diff --git a/vendor/tzdata/zoneinfo/GB b/vendor/tzdata/zoneinfo/GB new file mode 100644 index 0000000..b9e95d9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/GB differ diff --git a/vendor/tzdata/zoneinfo/GB-Eire b/vendor/tzdata/zoneinfo/GB-Eire new file mode 100644 index 0000000..b9e95d9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/GB-Eire differ diff --git a/vendor/tzdata/zoneinfo/GMT b/vendor/tzdata/zoneinfo/GMT new file mode 100644 index 0000000..157573b Binary files /dev/null and b/vendor/tzdata/zoneinfo/GMT differ diff --git a/vendor/tzdata/zoneinfo/GMT+0 b/vendor/tzdata/zoneinfo/GMT+0 new file mode 100644 index 0000000..157573b Binary files /dev/null and b/vendor/tzdata/zoneinfo/GMT+0 differ diff --git a/vendor/tzdata/zoneinfo/GMT-0 b/vendor/tzdata/zoneinfo/GMT-0 new file mode 100644 index 0000000..157573b Binary files /dev/null and b/vendor/tzdata/zoneinfo/GMT-0 differ diff --git a/vendor/tzdata/zoneinfo/GMT0 b/vendor/tzdata/zoneinfo/GMT0 new file mode 100644 index 0000000..157573b Binary files /dev/null and b/vendor/tzdata/zoneinfo/GMT0 differ diff --git a/vendor/tzdata/zoneinfo/Greenwich b/vendor/tzdata/zoneinfo/Greenwich new file mode 100644 index 0000000..157573b Binary files /dev/null and b/vendor/tzdata/zoneinfo/Greenwich differ diff --git a/vendor/tzdata/zoneinfo/HST b/vendor/tzdata/zoneinfo/HST new file mode 100644 index 0000000..40e3d49 Binary files /dev/null and b/vendor/tzdata/zoneinfo/HST differ diff --git a/vendor/tzdata/zoneinfo/Hongkong b/vendor/tzdata/zoneinfo/Hongkong new file mode 100644 index 0000000..c80e364 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Hongkong differ diff --git a/vendor/tzdata/zoneinfo/Iceland b/vendor/tzdata/zoneinfo/Iceland new file mode 100644 index 0000000..8906e88 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Iceland differ diff --git a/vendor/tzdata/zoneinfo/Indian/Antananarivo b/vendor/tzdata/zoneinfo/Indian/Antananarivo new file mode 100644 index 0000000..5f4ebcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Indian/Antananarivo differ diff --git a/vendor/tzdata/zoneinfo/Indian/Chagos b/vendor/tzdata/zoneinfo/Indian/Chagos new file mode 100644 index 0000000..8b8ce22 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Indian/Chagos differ diff --git a/vendor/tzdata/zoneinfo/Indian/Christmas b/vendor/tzdata/zoneinfo/Indian/Christmas new file mode 100644 index 0000000..ed687d2 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Indian/Christmas differ diff --git a/vendor/tzdata/zoneinfo/Indian/Cocos b/vendor/tzdata/zoneinfo/Indian/Cocos new file mode 100644 index 0000000..14b2ad0 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Indian/Cocos differ diff --git a/vendor/tzdata/zoneinfo/Indian/Comoro b/vendor/tzdata/zoneinfo/Indian/Comoro new file mode 100644 index 0000000..5f4ebcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Indian/Comoro differ diff --git a/vendor/tzdata/zoneinfo/Indian/Kerguelen b/vendor/tzdata/zoneinfo/Indian/Kerguelen new file mode 100644 index 0000000..58a82e4 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Indian/Kerguelen differ diff --git a/vendor/tzdata/zoneinfo/Indian/Mahe b/vendor/tzdata/zoneinfo/Indian/Mahe new file mode 100644 index 0000000..58d75bc Binary files /dev/null and b/vendor/tzdata/zoneinfo/Indian/Mahe differ diff --git a/vendor/tzdata/zoneinfo/Indian/Maldives b/vendor/tzdata/zoneinfo/Indian/Maldives new file mode 100644 index 0000000..58a82e4 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Indian/Maldives differ diff --git a/vendor/tzdata/zoneinfo/Indian/Mauritius b/vendor/tzdata/zoneinfo/Indian/Mauritius new file mode 100644 index 0000000..7c11134 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Indian/Mauritius differ diff --git a/vendor/tzdata/zoneinfo/Indian/Mayotte b/vendor/tzdata/zoneinfo/Indian/Mayotte new file mode 100644 index 0000000..5f4ebcb Binary files /dev/null and b/vendor/tzdata/zoneinfo/Indian/Mayotte differ diff --git a/vendor/tzdata/zoneinfo/Indian/Reunion b/vendor/tzdata/zoneinfo/Indian/Reunion new file mode 100644 index 0000000..58d75bc Binary files /dev/null and b/vendor/tzdata/zoneinfo/Indian/Reunion differ diff --git a/vendor/tzdata/zoneinfo/Indian/__init__.py b/vendor/tzdata/zoneinfo/Indian/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/Iran b/vendor/tzdata/zoneinfo/Iran new file mode 100644 index 0000000..2a46cf7 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Iran differ diff --git a/vendor/tzdata/zoneinfo/Israel b/vendor/tzdata/zoneinfo/Israel new file mode 100644 index 0000000..4c49bbf Binary files /dev/null and b/vendor/tzdata/zoneinfo/Israel differ diff --git a/vendor/tzdata/zoneinfo/Jamaica b/vendor/tzdata/zoneinfo/Jamaica new file mode 100644 index 0000000..be6b1b6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Jamaica differ diff --git a/vendor/tzdata/zoneinfo/Japan b/vendor/tzdata/zoneinfo/Japan new file mode 100644 index 0000000..1aa066c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Japan differ diff --git a/vendor/tzdata/zoneinfo/Kwajalein b/vendor/tzdata/zoneinfo/Kwajalein new file mode 100644 index 0000000..9416d52 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Kwajalein differ diff --git a/vendor/tzdata/zoneinfo/Libya b/vendor/tzdata/zoneinfo/Libya new file mode 100644 index 0000000..e0c8997 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Libya differ diff --git a/vendor/tzdata/zoneinfo/MET b/vendor/tzdata/zoneinfo/MET new file mode 100644 index 0000000..3197327 Binary files /dev/null and b/vendor/tzdata/zoneinfo/MET differ diff --git a/vendor/tzdata/zoneinfo/MST b/vendor/tzdata/zoneinfo/MST new file mode 100644 index 0000000..c2bd2f9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/MST differ diff --git a/vendor/tzdata/zoneinfo/MST7MDT b/vendor/tzdata/zoneinfo/MST7MDT new file mode 100644 index 0000000..f155fa9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/MST7MDT differ diff --git a/vendor/tzdata/zoneinfo/Mexico/BajaNorte b/vendor/tzdata/zoneinfo/Mexico/BajaNorte new file mode 100644 index 0000000..0d8c993 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Mexico/BajaNorte differ diff --git a/vendor/tzdata/zoneinfo/Mexico/BajaSur b/vendor/tzdata/zoneinfo/Mexico/BajaSur new file mode 100644 index 0000000..5aa6039 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Mexico/BajaSur differ diff --git a/vendor/tzdata/zoneinfo/Mexico/General b/vendor/tzdata/zoneinfo/Mexico/General new file mode 100644 index 0000000..1811234 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Mexico/General differ diff --git a/vendor/tzdata/zoneinfo/Mexico/__init__.py b/vendor/tzdata/zoneinfo/Mexico/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/NZ b/vendor/tzdata/zoneinfo/NZ new file mode 100644 index 0000000..afb3929 Binary files /dev/null and b/vendor/tzdata/zoneinfo/NZ differ diff --git a/vendor/tzdata/zoneinfo/NZ-CHAT b/vendor/tzdata/zoneinfo/NZ-CHAT new file mode 100644 index 0000000..f06065e Binary files /dev/null and b/vendor/tzdata/zoneinfo/NZ-CHAT differ diff --git a/vendor/tzdata/zoneinfo/Navajo b/vendor/tzdata/zoneinfo/Navajo new file mode 100644 index 0000000..09e54e5 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Navajo differ diff --git a/vendor/tzdata/zoneinfo/PRC b/vendor/tzdata/zoneinfo/PRC new file mode 100644 index 0000000..d6b6698 Binary files /dev/null and b/vendor/tzdata/zoneinfo/PRC differ diff --git a/vendor/tzdata/zoneinfo/PST8PDT b/vendor/tzdata/zoneinfo/PST8PDT new file mode 100644 index 0000000..6a27aeb Binary files /dev/null and b/vendor/tzdata/zoneinfo/PST8PDT differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Apia b/vendor/tzdata/zoneinfo/Pacific/Apia new file mode 100644 index 0000000..a6b835a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Apia differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Auckland b/vendor/tzdata/zoneinfo/Pacific/Auckland new file mode 100644 index 0000000..afb3929 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Auckland differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Bougainville b/vendor/tzdata/zoneinfo/Pacific/Bougainville new file mode 100644 index 0000000..7c66709 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Bougainville differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Chatham b/vendor/tzdata/zoneinfo/Pacific/Chatham new file mode 100644 index 0000000..f06065e Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Chatham differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Chuuk b/vendor/tzdata/zoneinfo/Pacific/Chuuk new file mode 100644 index 0000000..5d8fc3a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Chuuk differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Easter b/vendor/tzdata/zoneinfo/Pacific/Easter new file mode 100644 index 0000000..54dff00 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Easter differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Efate b/vendor/tzdata/zoneinfo/Pacific/Efate new file mode 100644 index 0000000..bf7471d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Efate differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Enderbury b/vendor/tzdata/zoneinfo/Pacific/Enderbury new file mode 100644 index 0000000..2b6a060 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Enderbury differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Fakaofo b/vendor/tzdata/zoneinfo/Pacific/Fakaofo new file mode 100644 index 0000000..b7b3021 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Fakaofo differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Fiji b/vendor/tzdata/zoneinfo/Pacific/Fiji new file mode 100644 index 0000000..610b850 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Fiji differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Funafuti b/vendor/tzdata/zoneinfo/Pacific/Funafuti new file mode 100644 index 0000000..6bc2168 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Funafuti differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Galapagos b/vendor/tzdata/zoneinfo/Pacific/Galapagos new file mode 100644 index 0000000..a9403ec Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Galapagos differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Gambier b/vendor/tzdata/zoneinfo/Pacific/Gambier new file mode 100644 index 0000000..ddfc34f Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Gambier differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Guadalcanal b/vendor/tzdata/zoneinfo/Pacific/Guadalcanal new file mode 100644 index 0000000..720c679 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Guadalcanal differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Guam b/vendor/tzdata/zoneinfo/Pacific/Guam new file mode 100644 index 0000000..bf9a2d9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Guam differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Honolulu b/vendor/tzdata/zoneinfo/Pacific/Honolulu new file mode 100644 index 0000000..40e3d49 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Honolulu differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Johnston b/vendor/tzdata/zoneinfo/Pacific/Johnston new file mode 100644 index 0000000..40e3d49 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Johnston differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Kanton b/vendor/tzdata/zoneinfo/Pacific/Kanton new file mode 100644 index 0000000..2b6a060 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Kanton differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Kiritimati b/vendor/tzdata/zoneinfo/Pacific/Kiritimati new file mode 100644 index 0000000..2f676d3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Kiritimati differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Kosrae b/vendor/tzdata/zoneinfo/Pacific/Kosrae new file mode 100644 index 0000000..f5d5824 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Kosrae differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Kwajalein b/vendor/tzdata/zoneinfo/Pacific/Kwajalein new file mode 100644 index 0000000..9416d52 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Kwajalein differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Majuro b/vendor/tzdata/zoneinfo/Pacific/Majuro new file mode 100644 index 0000000..6bc2168 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Majuro differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Marquesas b/vendor/tzdata/zoneinfo/Pacific/Marquesas new file mode 100644 index 0000000..6ea24b7 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Marquesas differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Midway b/vendor/tzdata/zoneinfo/Pacific/Midway new file mode 100644 index 0000000..001289c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Midway differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Nauru b/vendor/tzdata/zoneinfo/Pacific/Nauru new file mode 100644 index 0000000..ae13aac Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Nauru differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Niue b/vendor/tzdata/zoneinfo/Pacific/Niue new file mode 100644 index 0000000..be874e2 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Niue differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Norfolk b/vendor/tzdata/zoneinfo/Pacific/Norfolk new file mode 100644 index 0000000..0c0bdbd Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Norfolk differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Noumea b/vendor/tzdata/zoneinfo/Pacific/Noumea new file mode 100644 index 0000000..824f814 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Noumea differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Pago_Pago b/vendor/tzdata/zoneinfo/Pacific/Pago_Pago new file mode 100644 index 0000000..001289c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Pago_Pago differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Palau b/vendor/tzdata/zoneinfo/Pacific/Palau new file mode 100644 index 0000000..bc8eb7a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Palau differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Pitcairn b/vendor/tzdata/zoneinfo/Pacific/Pitcairn new file mode 100644 index 0000000..8a4ba4d Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Pitcairn differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Pohnpei b/vendor/tzdata/zoneinfo/Pacific/Pohnpei new file mode 100644 index 0000000..720c679 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Pohnpei differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Ponape b/vendor/tzdata/zoneinfo/Pacific/Ponape new file mode 100644 index 0000000..720c679 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Ponape differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Port_Moresby b/vendor/tzdata/zoneinfo/Pacific/Port_Moresby new file mode 100644 index 0000000..5d8fc3a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Port_Moresby differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Rarotonga b/vendor/tzdata/zoneinfo/Pacific/Rarotonga new file mode 100644 index 0000000..7220bda Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Rarotonga differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Saipan b/vendor/tzdata/zoneinfo/Pacific/Saipan new file mode 100644 index 0000000..bf9a2d9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Saipan differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Samoa b/vendor/tzdata/zoneinfo/Pacific/Samoa new file mode 100644 index 0000000..001289c Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Samoa differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Tahiti b/vendor/tzdata/zoneinfo/Pacific/Tahiti new file mode 100644 index 0000000..50a064f Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Tahiti differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Tarawa b/vendor/tzdata/zoneinfo/Pacific/Tarawa new file mode 100644 index 0000000..6bc2168 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Tarawa differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Tongatapu b/vendor/tzdata/zoneinfo/Pacific/Tongatapu new file mode 100644 index 0000000..f28c840 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Tongatapu differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Truk b/vendor/tzdata/zoneinfo/Pacific/Truk new file mode 100644 index 0000000..5d8fc3a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Truk differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Wake b/vendor/tzdata/zoneinfo/Pacific/Wake new file mode 100644 index 0000000..6bc2168 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Wake differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Wallis b/vendor/tzdata/zoneinfo/Pacific/Wallis new file mode 100644 index 0000000..6bc2168 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Wallis differ diff --git a/vendor/tzdata/zoneinfo/Pacific/Yap b/vendor/tzdata/zoneinfo/Pacific/Yap new file mode 100644 index 0000000..5d8fc3a Binary files /dev/null and b/vendor/tzdata/zoneinfo/Pacific/Yap differ diff --git a/vendor/tzdata/zoneinfo/Pacific/__init__.py b/vendor/tzdata/zoneinfo/Pacific/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/Poland b/vendor/tzdata/zoneinfo/Poland new file mode 100644 index 0000000..efe1a40 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Poland differ diff --git a/vendor/tzdata/zoneinfo/Portugal b/vendor/tzdata/zoneinfo/Portugal new file mode 100644 index 0000000..7e9aae7 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Portugal differ diff --git a/vendor/tzdata/zoneinfo/ROC b/vendor/tzdata/zoneinfo/ROC new file mode 100644 index 0000000..35d89d0 Binary files /dev/null and b/vendor/tzdata/zoneinfo/ROC differ diff --git a/vendor/tzdata/zoneinfo/ROK b/vendor/tzdata/zoneinfo/ROK new file mode 100644 index 0000000..1755147 Binary files /dev/null and b/vendor/tzdata/zoneinfo/ROK differ diff --git a/vendor/tzdata/zoneinfo/Singapore b/vendor/tzdata/zoneinfo/Singapore new file mode 100644 index 0000000..dbbdea3 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Singapore differ diff --git a/vendor/tzdata/zoneinfo/Turkey b/vendor/tzdata/zoneinfo/Turkey new file mode 100644 index 0000000..c891866 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Turkey differ diff --git a/vendor/tzdata/zoneinfo/UCT b/vendor/tzdata/zoneinfo/UCT new file mode 100644 index 0000000..00841a6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/UCT differ diff --git a/vendor/tzdata/zoneinfo/US/Alaska b/vendor/tzdata/zoneinfo/US/Alaska new file mode 100644 index 0000000..cdf0572 Binary files /dev/null and b/vendor/tzdata/zoneinfo/US/Alaska differ diff --git a/vendor/tzdata/zoneinfo/US/Aleutian b/vendor/tzdata/zoneinfo/US/Aleutian new file mode 100644 index 0000000..b1497bd Binary files /dev/null and b/vendor/tzdata/zoneinfo/US/Aleutian differ diff --git a/vendor/tzdata/zoneinfo/US/Arizona b/vendor/tzdata/zoneinfo/US/Arizona new file mode 100644 index 0000000..c2bd2f9 Binary files /dev/null and b/vendor/tzdata/zoneinfo/US/Arizona differ diff --git a/vendor/tzdata/zoneinfo/US/Central b/vendor/tzdata/zoneinfo/US/Central new file mode 100644 index 0000000..b016880 Binary files /dev/null and b/vendor/tzdata/zoneinfo/US/Central differ diff --git a/vendor/tzdata/zoneinfo/US/East-Indiana b/vendor/tzdata/zoneinfo/US/East-Indiana new file mode 100644 index 0000000..6b08d15 Binary files /dev/null and b/vendor/tzdata/zoneinfo/US/East-Indiana differ diff --git a/vendor/tzdata/zoneinfo/US/Eastern b/vendor/tzdata/zoneinfo/US/Eastern new file mode 100644 index 0000000..2b6c2ee Binary files /dev/null and b/vendor/tzdata/zoneinfo/US/Eastern differ diff --git a/vendor/tzdata/zoneinfo/US/Hawaii b/vendor/tzdata/zoneinfo/US/Hawaii new file mode 100644 index 0000000..40e3d49 Binary files /dev/null and b/vendor/tzdata/zoneinfo/US/Hawaii differ diff --git a/vendor/tzdata/zoneinfo/US/Indiana-Starke b/vendor/tzdata/zoneinfo/US/Indiana-Starke new file mode 100644 index 0000000..b187d5f Binary files /dev/null and b/vendor/tzdata/zoneinfo/US/Indiana-Starke differ diff --git a/vendor/tzdata/zoneinfo/US/Michigan b/vendor/tzdata/zoneinfo/US/Michigan new file mode 100644 index 0000000..6eb3ac4 Binary files /dev/null and b/vendor/tzdata/zoneinfo/US/Michigan differ diff --git a/vendor/tzdata/zoneinfo/US/Mountain b/vendor/tzdata/zoneinfo/US/Mountain new file mode 100644 index 0000000..09e54e5 Binary files /dev/null and b/vendor/tzdata/zoneinfo/US/Mountain differ diff --git a/vendor/tzdata/zoneinfo/US/Pacific b/vendor/tzdata/zoneinfo/US/Pacific new file mode 100644 index 0000000..aaf0778 Binary files /dev/null and b/vendor/tzdata/zoneinfo/US/Pacific differ diff --git a/vendor/tzdata/zoneinfo/US/Samoa b/vendor/tzdata/zoneinfo/US/Samoa new file mode 100644 index 0000000..001289c Binary files /dev/null and b/vendor/tzdata/zoneinfo/US/Samoa differ diff --git a/vendor/tzdata/zoneinfo/US/__init__.py b/vendor/tzdata/zoneinfo/US/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/UTC b/vendor/tzdata/zoneinfo/UTC new file mode 100644 index 0000000..00841a6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/UTC differ diff --git a/vendor/tzdata/zoneinfo/Universal b/vendor/tzdata/zoneinfo/Universal new file mode 100644 index 0000000..00841a6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Universal differ diff --git a/vendor/tzdata/zoneinfo/W-SU b/vendor/tzdata/zoneinfo/W-SU new file mode 100644 index 0000000..5e6b6de Binary files /dev/null and b/vendor/tzdata/zoneinfo/W-SU differ diff --git a/vendor/tzdata/zoneinfo/WET b/vendor/tzdata/zoneinfo/WET new file mode 100644 index 0000000..7e9aae7 Binary files /dev/null and b/vendor/tzdata/zoneinfo/WET differ diff --git a/vendor/tzdata/zoneinfo/Zulu b/vendor/tzdata/zoneinfo/Zulu new file mode 100644 index 0000000..00841a6 Binary files /dev/null and b/vendor/tzdata/zoneinfo/Zulu differ diff --git a/vendor/tzdata/zoneinfo/__init__.py b/vendor/tzdata/zoneinfo/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vendor/tzdata/zoneinfo/iso3166.tab b/vendor/tzdata/zoneinfo/iso3166.tab new file mode 100644 index 0000000..4ae3523 --- /dev/null +++ b/vendor/tzdata/zoneinfo/iso3166.tab @@ -0,0 +1,279 @@ +# ISO 3166 alpha-2 country codes +# +# This file is in the public domain, so clarified as of +# 2009-05-17 by Arthur David Olson. +# +# From Paul Eggert (2025-07-01): +# This file contains a table of two-letter country codes. Columns are +# separated by a single tab. Lines beginning with ‘#’ are comments. +# All text uses UTF-8 encoding. The columns of the table are as follows: +# +# 1. ISO 3166-1 alpha-2 country code, current as of +# ISO/TC 46 N1127 (2024-02-29). See: ISO/TC 46 Documents +# https://www.iso.org/committee/48750.html?view=documents +# 2. The usual English name for the coded region. This sometimes +# departs from ISO-listed names, sometimes so that sorted subsets +# of names are useful (e.g., “Samoa (American)” and “Samoa +# (western)” rather than “American Samoa” and “Samoa”), +# sometimes to avoid confusion among non-experts (e.g., +# “Czech Republic” and “Turkey” rather than “Czechia” and “Türkiye”), +# and sometimes to omit needless detail or churn (e.g., “Netherlands” +# rather than “Netherlands (the)” or “Netherlands (Kingdom of the)”). +# +# The table is sorted by country code. +# +# This table is intended as an aid for users, to help them select time +# zone data appropriate for their practical needs. It is not intended +# to take or endorse any position on legal or territorial claims. +# +#country- +#code name of country, territory, area, or subdivision +AD Andorra +AE United Arab Emirates +AF Afghanistan +AG Antigua & Barbuda +AI Anguilla +AL Albania +AM Armenia +AO Angola +AQ Antarctica +AR Argentina +AS Samoa (American) +AT Austria +AU Australia +AW Aruba +AX Åland Islands +AZ Azerbaijan +BA Bosnia & Herzegovina +BB Barbados +BD Bangladesh +BE Belgium +BF Burkina Faso +BG Bulgaria +BH Bahrain +BI Burundi +BJ Benin +BL St Barthelemy +BM Bermuda +BN Brunei +BO Bolivia +BQ Caribbean NL +BR Brazil +BS Bahamas +BT Bhutan +BV Bouvet Island +BW Botswana +BY Belarus +BZ Belize +CA Canada +CC Cocos (Keeling) Islands +CD Congo (Dem. Rep.) +CF Central African Rep. +CG Congo (Rep.) +CH Switzerland +CI Côte d’Ivoire +CK Cook Islands +CL Chile +CM Cameroon +CN China +CO Colombia +CR Costa Rica +CU Cuba +CV Cape Verde +CW Curaçao +CX Christmas Island +CY Cyprus +CZ Czech Republic +DE Germany +DJ Djibouti +DK Denmark +DM Dominica +DO Dominican Republic +DZ Algeria +EC Ecuador +EE Estonia +EG Egypt +EH Western Sahara +ER Eritrea +ES Spain +ET Ethiopia +FI Finland +FJ Fiji +FK Falkland Islands +FM Micronesia +FO Faroe Islands +FR France +GA Gabon +GB Britain (UK) +GD Grenada +GE Georgia +GF French Guiana +GG Guernsey +GH Ghana +GI Gibraltar +GL Greenland +GM Gambia +GN Guinea +GP Guadeloupe +GQ Equatorial Guinea +GR Greece +GS South Georgia & the South Sandwich Islands +GT Guatemala +GU Guam +GW Guinea-Bissau +GY Guyana +HK Hong Kong +HM Heard Island & McDonald Islands +HN Honduras +HR Croatia +HT Haiti +HU Hungary +ID Indonesia +IE Ireland +IL Israel +IM Isle of Man +IN India +IO British Indian Ocean Territory +IQ Iraq +IR Iran +IS Iceland +IT Italy +JE Jersey +JM Jamaica +JO Jordan +JP Japan +KE Kenya +KG Kyrgyzstan +KH Cambodia +KI Kiribati +KM Comoros +KN St Kitts & Nevis +KP Korea (North) +KR Korea (South) +KW Kuwait +KY Cayman Islands +KZ Kazakhstan +LA Laos +LB Lebanon +LC St Lucia +LI Liechtenstein +LK Sri Lanka +LR Liberia +LS Lesotho +LT Lithuania +LU Luxembourg +LV Latvia +LY Libya +MA Morocco +MC Monaco +MD Moldova +ME Montenegro +MF St Martin (French) +MG Madagascar +MH Marshall Islands +MK North Macedonia +ML Mali +MM Myanmar (Burma) +MN Mongolia +MO Macau +MP Northern Mariana Islands +MQ Martinique +MR Mauritania +MS Montserrat +MT Malta +MU Mauritius +MV Maldives +MW Malawi +MX Mexico +MY Malaysia +MZ Mozambique +NA Namibia +NC New Caledonia +NE Niger +NF Norfolk Island +NG Nigeria +NI Nicaragua +NL Netherlands +NO Norway +NP Nepal +NR Nauru +NU Niue +NZ New Zealand +OM Oman +PA Panama +PE Peru +PF French Polynesia +PG Papua New Guinea +PH Philippines +PK Pakistan +PL Poland +PM St Pierre & Miquelon +PN Pitcairn +PR Puerto Rico +PS Palestine +PT Portugal +PW Palau +PY Paraguay +QA Qatar +RE Réunion +RO Romania +RS Serbia +RU Russia +RW Rwanda +SA Saudi Arabia +SB Solomon Islands +SC Seychelles +SD Sudan +SE Sweden +SG Singapore +SH St Helena +SI Slovenia +SJ Svalbard & Jan Mayen +SK Slovakia +SL Sierra Leone +SM San Marino +SN Senegal +SO Somalia +SR Suriname +SS South Sudan +ST Sao Tome & Principe +SV El Salvador +SX St Maarten (Dutch) +SY Syria +SZ Eswatini (Swaziland) +TC Turks & Caicos Is +TD Chad +TF French S. Terr. +TG Togo +TH Thailand +TJ Tajikistan +TK Tokelau +TL East Timor +TM Turkmenistan +TN Tunisia +TO Tonga +TR Turkey +TT Trinidad & Tobago +TV Tuvalu +TW Taiwan +TZ Tanzania +UA Ukraine +UG Uganda +UM US minor outlying islands +US United States +UY Uruguay +UZ Uzbekistan +VA Vatican City +VC St Vincent +VE Venezuela +VG Virgin Islands (UK) +VI Virgin Islands (US) +VN Vietnam +VU Vanuatu +WF Wallis & Futuna +WS Samoa (western) +YE Yemen +YT Mayotte +ZA South Africa +ZM Zambia +ZW Zimbabwe diff --git a/vendor/tzdata/zoneinfo/leapseconds b/vendor/tzdata/zoneinfo/leapseconds new file mode 100644 index 0000000..1fc7b8e --- /dev/null +++ b/vendor/tzdata/zoneinfo/leapseconds @@ -0,0 +1,86 @@ +# Allowance for leap seconds added to each time zone file. + +# This file is in the public domain. + +# This file is generated automatically from the data in the public-domain +# NIST/IERS format leap-seconds.list file, which can be copied from +# +# or via a less-secure protocol and with different comments and +# less volatile last-modified and expiration timestamps, from +# . +# For more about leap-seconds.list, please see +# The NTP Timescale and Leap Seconds +# . + +# The rules for leap seconds are specified in Annex 1 (Time scales) of: +# Standard-frequency and time-signal emissions. +# International Telecommunication Union - Radiocommunication Sector +# (ITU-R) Recommendation TF.460-6 (02/2002) +# . +# The International Earth Rotation and Reference Systems Service (IERS) +# periodically uses leap seconds to keep UTC to within 0.9 s of UT1 +# (a proxy for Earth's angle in space as measured by astronomers) +# and publishes leap second data in a copyrighted file +# . +# See: Levine J. Coordinated Universal Time and the leap second. +# URSI Radio Sci Bull. 2016;89(4):30-6. doi:10.23919/URSIRSB.2016.7909995 +# . + +# There were no leap seconds before 1972, as no official mechanism +# accounted for the discrepancy between atomic time (TAI) and the earth's +# rotation. The first ("1 Jan 1972") data line in leap-seconds.list +# does not denote a leap second; it denotes the start of the current definition +# of UTC. + +# All leap-seconds are Stationary (S) at the given UTC time. +# The correction (+ or -) is made at the given time, so in the unlikely +# event of a negative leap second, a line would look like this: +# Leap YEAR MON DAY 23:59:59 - S +# Typical lines look like this: +# Leap YEAR MON DAY 23:59:60 + S +Leap 1972 Jun 30 23:59:60 + S +Leap 1972 Dec 31 23:59:60 + S +Leap 1973 Dec 31 23:59:60 + S +Leap 1974 Dec 31 23:59:60 + S +Leap 1975 Dec 31 23:59:60 + S +Leap 1976 Dec 31 23:59:60 + S +Leap 1977 Dec 31 23:59:60 + S +Leap 1978 Dec 31 23:59:60 + S +Leap 1979 Dec 31 23:59:60 + S +Leap 1981 Jun 30 23:59:60 + S +Leap 1982 Jun 30 23:59:60 + S +Leap 1983 Jun 30 23:59:60 + S +Leap 1985 Jun 30 23:59:60 + S +Leap 1987 Dec 31 23:59:60 + S +Leap 1989 Dec 31 23:59:60 + S +Leap 1990 Dec 31 23:59:60 + S +Leap 1992 Jun 30 23:59:60 + S +Leap 1993 Jun 30 23:59:60 + S +Leap 1994 Jun 30 23:59:60 + S +Leap 1995 Dec 31 23:59:60 + S +Leap 1997 Jun 30 23:59:60 + S +Leap 1998 Dec 31 23:59:60 + S +Leap 2005 Dec 31 23:59:60 + S +Leap 2008 Dec 31 23:59:60 + S +Leap 2012 Jun 30 23:59:60 + S +Leap 2015 Jun 30 23:59:60 + S +Leap 2016 Dec 31 23:59:60 + S + +# UTC timestamp when this leap second list expires. +# Any additional leap seconds will come after this. +# This Expires line is commented out for now, +# so that pre-2020a zic implementations do not reject this file. +#Expires 2027 Jun 28 00:00:00 + +# Here are POSIX timestamps for the data in this file. +# "#updated" gives the last time the leap seconds data changed +# or, if this file was derived from the IERS leap-seconds.list, +# the last time that file changed in any way. +# "#expires" gives the first time this file might be wrong; +# if this file was derived from the IERS leap-seconds.list, +# this is typically a bit less than one year after "updated". +#updated 1783323897 (2026-07-06 07:44:57 UTC) +#expires 1814140800 (2027-06-28 00:00:00 UTC) + +# Updated through IERS Bulletin C (https://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat) +# File expires on 28 June 2027 diff --git a/vendor/tzdata/zoneinfo/tzdata.zi b/vendor/tzdata/zoneinfo/tzdata.zi new file mode 100644 index 0000000..7ac5fe7 --- /dev/null +++ b/vendor/tzdata/zoneinfo/tzdata.zi @@ -0,0 +1,4199 @@ +# version 2026e +# redo posix_only +# This zic input file is in the public domain. +R d 1916 o - Jun 14 23s 1 S +R d 1916 1919 - O Su>=1 23s 0 - +R d 1917 o - Mar 24 23s 1 S +R d 1918 o - Mar 9 23s 1 S +R d 1919 o - Mar 1 23s 1 S +R d 1920 o - F 14 23s 1 S +R d 1920 o - O 23 23s 0 - +R d 1921 o - Mar 14 23s 1 S +R d 1921 o - Jun 21 23s 0 - +R d 1939 o - S 11 23s 1 S +R d 1939 o - N 19 1 0 - +R d 1944 1945 - Ap M>=1 2 1 S +R d 1944 o - O 8 2 0 - +R d 1945 o - S 16 1 0 - +R d 1971 o - Ap 25 23s 1 S +R d 1971 o - S 26 23s 0 - +R d 1977 o - May 6 0 1 S +R d 1977 o - O 21 0 0 - +R d 1978 o - Mar 24 1 1 S +R d 1978 o - S 22 3 0 - +R d 1980 o - Ap 25 0 1 S +R d 1980 o - O 31 2 0 - +R K 1940 o - Jul 15 0 1 S +R K 1940 o - O 1 0 0 - +R K 1941 o - Ap 15 0 1 S +R K 1941 o - S 16 0 0 - +R K 1942 1944 - Ap 1 0 1 S +R K 1942 o - O 27 0 0 - +R K 1943 1945 - N 1 0 0 - +R K 1945 o - Ap 16 0 1 S +R K 1957 o - May 10 0 1 S +R K 1957 1958 - O 1 0 0 - +R K 1958 o - May 1 0 1 S +R K 1959 1981 - May 1 1 1 S +R K 1959 1965 - S 30 3 0 - +R K 1966 1994 - O 1 3 0 - +R K 1982 o - Jul 25 1 1 S +R K 1983 o - Jul 12 1 1 S +R K 1984 1988 - May 1 1 1 S +R K 1989 o - May 6 1 1 S +R K 1990 1994 - May 1 1 1 S +R K 1995 2010 - Ap lastF 0s 1 S +R K 1995 2005 - S lastTh 24 0 - +R K 2006 o - S 21 24 0 - +R K 2007 o - S Th>=1 24 0 - +R K 2008 o - Au lastTh 24 0 - +R K 2009 o - Au 20 24 0 - +R K 2010 o - Au 10 24 0 - +R K 2010 o - S 9 24 1 S +R K 2010 o - S lastTh 24 0 - +R K 2014 o - May 15 24 1 S +R K 2014 o - Jun 26 24 0 - +R K 2014 o - Jul 31 24 1 S +R K 2014 o - S lastTh 24 0 - +R K 2023 ma - Ap lastF 0 1 S +R K 2023 ma - O lastTh 24 0 - +R L 1951 o - O 14 2 1 S +R L 1952 o - Ja 1 0 0 - +R L 1953 o - O 9 2 1 S +R L 1954 o - Ja 1 0 0 - +R L 1955 o - S 30 0 1 S +R L 1956 o - Ja 1 0 0 - +R L 1982 1984 - Ap 1 0 1 S +R L 1982 1985 - O 1 0 0 - +R L 1985 o - Ap 6 0 1 S +R L 1986 o - Ap 4 0 1 S +R L 1986 o - O 3 0 0 - +R L 1987 1989 - Ap 1 0 1 S +R L 1987 1989 - O 1 0 0 - +R L 1997 o - Ap 4 0 1 S +R L 1997 o - O 4 0 0 - +R L 2013 o - Mar lastF 1 1 S +R L 2013 o - O lastF 2 0 - +R MU 1982 o - O 10 0 1 - +R MU 1983 o - Mar 21 0 0 - +R MU 2008 o - O lastSu 2 1 - +R MU 2009 o - Mar lastSu 2 0 - +R M 1939 o - S 12 0 1 - +R M 1939 o - N 19 0 0 - +R M 1940 o - F 25 0 1 - +R M 1945 o - N 18 0 0 - +R M 1950 o - Jun 11 0 1 - +R M 1950 o - O 29 0 0 - +R M 1967 o - Jun 3 12 1 - +R M 1967 o - O 1 0 0 - +R M 1974 o - Jun 24 0 1 - +R M 1974 o - S 1 0 0 - +R M 1976 1977 - May 1 0 1 - +R M 1976 o - Au 1 0 0 - +R M 1977 o - S 28 0 0 - +R M 1978 o - Jun 1 0 1 - +R M 1978 o - Au 4 0 0 - +R M 2008 o - Jun 1 0 1 - +R M 2008 o - S 1 0 0 - +R M 2009 o - Jun 1 0 1 - +R M 2009 o - Au 21 0 0 - +R M 2010 o - May 2 0 1 - +R M 2010 o - Au 8 0 0 - +R M 2011 o - Ap 3 0 1 - +R M 2011 o - Jul 31 0 0 - +R M 2012 2013 - Ap lastSu 2 1 - +R M 2012 o - Jul 20 3 0 - +R M 2012 o - Au 20 2 1 - +R M 2012 o - S 30 3 0 - +R M 2013 o - Jul 7 3 0 - +R M 2013 o - Au 10 2 1 - +R M 2013 2018 - O lastSu 3 0 - +R M 2014 2018 - Mar lastSu 2 1 - +R M 2014 o - Jun 28 3 0 - +R M 2014 o - Au 2 2 1 - +R M 2015 o - Jun 14 3 0 - +R M 2015 o - Jul 19 2 1 - +R M 2016 o - Jun 5 3 0 - +R M 2016 o - Jul 10 2 1 - +R M 2017 o - May 21 3 0 - +R M 2017 o - Jul 2 2 1 - +R M 2018 o - May 13 3 0 - +R M 2018 o - Jun 17 2 1 - +R M 2019 o - May 5 3 -1 - +R M 2019 o - Jun 9 2 0 - +R M 2020 o - Ap 19 3 -1 - +R M 2020 o - May 31 2 0 - +R M 2021 o - Ap 11 3 -1 - +R M 2021 o - May 16 2 0 - +R M 2022 o - Mar 27 3 -1 - +R M 2022 o - May 8 2 0 - +R M 2023 o - Mar 19 3 -1 - +R M 2023 o - Ap 23 2 0 - +R M 2024 o - Mar 10 3 -1 - +R M 2024 o - Ap 14 2 0 - +R M 2025 o - F 23 3 -1 - +R M 2025 o - Ap 6 2 0 - +R M 2026 o - F 15 3 -1 - +R M 2026 o - Mar 22 2 0 - +R NA 1994 o - Mar 21 0 -1 WAT +R NA 1994 2017 - S Su>=1 2 0 CAT +R NA 1995 2017 - Ap Su>=1 2 -1 WAT +R SA 1942 1943 - S Su>=15 2 1 - +R SA 1943 1944 - Mar Su>=15 2 0 - +R SD 1970 o - May 1 0 1 S +R SD 1970 1985 - O 15 0 0 - +R SD 1971 o - Ap 30 0 1 S +R SD 1972 1985 - Ap lastSu 0 1 S +R n 1939 o - Ap 15 23s 1 S +R n 1939 o - N 18 23s 0 - +R n 1940 o - F 25 23s 1 S +R n 1941 o - O 6 0 0 - +R n 1942 o - Mar 9 0 1 S +R n 1942 o - N 2 3 0 - +R n 1943 o - Mar 29 2 1 S +R n 1943 o - Ap 17 2 0 - +R n 1943 o - Ap 25 2 1 S +R n 1943 o - O 4 2 0 - +R n 1944 1945 - Ap M>=1 2 1 S +R n 1944 o - O 8 0 0 - +R n 1945 o - S 16 0 0 - +R n 1977 o - Ap 30 0s 1 S +R n 1977 o - S 24 0s 0 - +R n 1978 o - May 1 0s 1 S +R n 1978 o - O 1 0s 0 - +R n 1988 o - Jun 1 0s 1 S +R n 1988 1990 - S lastSu 0s 0 - +R n 1989 o - Mar 26 0s 1 S +R n 1990 o - May 1 0s 1 S +R n 2005 o - May 1 0s 1 S +R n 2005 o - S 30 1s 0 - +R n 2006 2008 - Mar lastSu 2s 1 S +R n 2006 2008 - O lastSu 2s 0 - +R Tr 2005 ma - Mar lastSu 1u 2 +02 +R Tr 2004 ma - O lastSu 1u 0 +00 +R AM 2011 o - Mar lastSu 2s 1 - +R AM 2011 o - O lastSu 2s 0 - +R AZ 1997 2015 - Mar lastSu 4 1 - +R AZ 1997 2015 - O lastSu 5 0 - +R BD 2009 o - Jun 19 23 1 - +R BD 2009 o - D 31 24 0 - +R Sh 1919 o - Ap 12 24 1 D +R Sh 1919 o - S 30 24 0 S +R Sh 1940 o - Jun 1 0 1 D +R Sh 1940 o - O 12 24 0 S +R Sh 1941 o - Mar 15 0 1 D +R Sh 1941 o - N 1 24 0 S +R Sh 1942 o - Ja 31 0 1 D +R Sh 1945 o - S 1 24 0 S +R Sh 1946 o - May 15 0 1 D +R Sh 1946 o - S 30 24 0 S +R Sh 1947 o - Ap 15 0 1 D +R Sh 1947 o - O 31 24 0 S +R Sh 1948 1949 - May 1 0 1 D +R Sh 1948 1949 - S 30 24 0 S +R CN 1986 o - May 4 2 1 D +R CN 1986 1991 - S Su>=11 2 0 S +R CN 1987 1991 - Ap Su>=11 2 1 D +R HK 1946 o - Ap 21 0 1 S +R HK 1946 o - D 1 3:30s 0 - +R HK 1947 o - Ap 13 3:30s 1 S +R HK 1947 o - N 30 3:30s 0 - +R HK 1948 o - May 2 3:30s 1 S +R HK 1948 1952 - O Su>=28 3:30s 0 - +R HK 1949 1953 - Ap Su>=1 3:30 1 S +R HK 1953 1964 - O Su>=31 3:30 0 - +R HK 1954 1964 - Mar Su>=18 3:30 1 S +R HK 1965 1976 - Ap Su>=16 3:30 1 S +R HK 1965 1976 - O Su>=16 3:30 0 - +R HK 1973 o - D 30 3:30 1 S +R HK 1979 o - May 13 3:30 1 S +R HK 1979 o - O 21 3:30 0 - +R f 1946 o - May 15 0 1 D +R f 1946 o - O 1 0 0 S +R f 1947 o - Ap 15 0 1 D +R f 1947 o - N 1 0 0 S +R f 1948 1951 - May 1 0 1 D +R f 1948 1951 - O 1 0 0 S +R f 1952 o - Mar 1 0 1 D +R f 1952 1954 - N 1 0 0 S +R f 1953 1959 - Ap 1 0 1 D +R f 1955 1961 - O 1 0 0 S +R f 1960 1961 - Jun 1 0 1 D +R f 1974 1975 - Ap 1 0 1 D +R f 1974 1975 - O 1 0 0 S +R f 1979 o - Jul 1 0 1 D +R f 1979 o - O 1 0 0 S +R _ 1942 1943 - Ap 30 23 1 - +R _ 1942 o - N 17 23 0 - +R _ 1943 o - S 30 23 0 S +R _ 1946 o - Ap 30 23s 1 D +R _ 1946 o - S 30 23s 0 S +R _ 1947 o - Ap 19 23s 1 D +R _ 1947 o - N 30 23s 0 S +R _ 1948 o - May 2 23s 1 D +R _ 1948 o - O 31 23s 0 S +R _ 1949 1950 - Ap Sa>=1 23s 1 D +R _ 1949 1950 - O lastSa 23s 0 S +R _ 1951 o - Mar 31 23s 1 D +R _ 1951 o - O 28 23s 0 S +R _ 1952 1953 - Ap Sa>=1 23s 1 D +R _ 1952 o - N 1 23s 0 S +R _ 1953 1954 - O lastSa 23s 0 S +R _ 1954 1956 - Mar Sa>=17 23s 1 D +R _ 1955 o - N 5 23s 0 S +R _ 1956 1964 - N Su>=1 3:30 0 S +R _ 1957 1964 - Mar Su>=18 3:30 1 D +R _ 1965 1973 - Ap Su>=16 3:30 1 D +R _ 1965 1966 - O Su>=16 2:30 0 S +R _ 1967 1976 - O Su>=16 3:30 0 S +R _ 1973 o - D 30 3:30 1 D +R _ 1975 1976 - Ap Su>=16 3:30 1 D +R _ 1979 o - May 13 3:30 1 D +R _ 1979 o - O Su>=16 3:30 0 S +R CY 1975 o - Ap 13 0 1 S +R CY 1975 o - O 12 0 0 - +R CY 1976 o - May 15 0 1 S +R CY 1976 o - O 11 0 0 - +R CY 1977 1980 - Ap Su>=1 0 1 S +R CY 1977 o - S 25 0 0 - +R CY 1978 o - O 2 0 0 - +R CY 1979 1997 - S lastSu 0 0 - +R CY 1981 1998 - Mar lastSu 0 1 S +R i 1910 o - Ja 1 0 0 - +R i 1977 o - Mar 21 23 1 - +R i 1977 o - O 20 24 0 - +R i 1978 o - Mar 24 24 1 - +R i 1978 o - Au 5 1 0 - +R i 1979 o - May 26 0 1 - +R i 1979 o - S 18 24 0 - +R i 1980 o - Mar 20 24 1 - +R i 1980 o - S 22 24 0 - +R i 1991 o - May 2 24 1 - +R i 1992 1995 - Mar 21 24 1 - +R i 1991 1995 - S 21 24 0 - +R i 1996 o - Mar 20 24 1 - +R i 1996 o - S 20 24 0 - +R i 1997 1999 - Mar 21 24 1 - +R i 1997 1999 - S 21 24 0 - +R i 2000 o - Mar 20 24 1 - +R i 2000 o - S 20 24 0 - +R i 2001 2003 - Mar 21 24 1 - +R i 2001 2003 - S 21 24 0 - +R i 2004 o - Mar 20 24 1 - +R i 2004 o - S 20 24 0 - +R i 2005 o - Mar 21 24 1 - +R i 2005 o - S 21 24 0 - +R i 2008 o - Mar 20 24 1 - +R i 2008 o - S 20 24 0 - +R i 2009 2011 - Mar 21 24 1 - +R i 2009 2011 - S 21 24 0 - +R i 2012 o - Mar 20 24 1 - +R i 2012 o - S 20 24 0 - +R i 2013 2015 - Mar 21 24 1 - +R i 2013 2015 - S 21 24 0 - +R i 2016 o - Mar 20 24 1 - +R i 2016 o - S 20 24 0 - +R i 2017 2019 - Mar 21 24 1 - +R i 2017 2019 - S 21 24 0 - +R i 2020 o - Mar 20 24 1 - +R i 2020 o - S 20 24 0 - +R i 2021 2022 - Mar 21 24 1 - +R i 2021 2022 - S 21 24 0 - +R IQ 1982 o - May 1 0 1 - +R IQ 1982 1984 - O 1 0 0 - +R IQ 1983 o - Mar 31 0 1 - +R IQ 1984 1985 - Ap 1 0 1 - +R IQ 1985 1990 - S lastSu 1s 0 - +R IQ 1986 1990 - Mar lastSu 1s 1 - +R IQ 1991 2007 - Ap 1 3s 1 - +R IQ 1991 2007 - O 1 3s 0 - +R Z 1940 o - May 31 24u 1 D +R Z 1940 o - S 30 24u 0 S +R Z 1940 o - N 16 24u 1 D +R Z 1942 1946 - O 31 24u 0 S +R Z 1943 1944 - Mar 31 24u 1 D +R Z 1945 1946 - Ap 15 24u 1 D +R Z 1948 o - May 22 24u 2 DD +R Z 1948 o - Au 31 24u 1 D +R Z 1948 1949 - O 31 24u 0 S +R Z 1949 o - Ap 30 24u 1 D +R Z 1950 o - Ap 15 24u 1 D +R Z 1950 o - S 14 24u 0 S +R Z 1951 o - Mar 31 24u 1 D +R Z 1951 o - N 10 24u 0 S +R Z 1952 o - Ap 19 24u 1 D +R Z 1952 o - O 18 24u 0 S +R Z 1953 o - Ap 11 24u 1 D +R Z 1953 o - S 12 24u 0 S +R Z 1954 o - Jun 12 24u 1 D +R Z 1954 o - S 11 24u 0 S +R Z 1955 o - Jun 11 24u 1 D +R Z 1955 o - S 10 24u 0 S +R Z 1956 o - Jun 2 24u 1 D +R Z 1956 o - S 29 24u 0 S +R Z 1957 o - Ap 27 24u 1 D +R Z 1957 o - S 21 24u 0 S +R Z 1974 o - Jul 6 24 1 D +R Z 1974 o - O 12 24 0 S +R Z 1975 o - Ap 19 24 1 D +R Z 1975 o - Au 30 24 0 S +R Z 1980 o - Au 2 24s 1 D +R Z 1980 o - S 13 24s 0 S +R Z 1984 o - May 5 24s 1 D +R Z 1984 o - Au 25 24s 0 S +R Z 1985 o - Ap 13 24 1 D +R Z 1985 o - Au 31 24 0 S +R Z 1986 o - May 17 24 1 D +R Z 1986 o - S 6 24 0 S +R Z 1987 o - Ap 14 24 1 D +R Z 1987 o - S 12 24 0 S +R Z 1988 o - Ap 9 24 1 D +R Z 1988 o - S 3 24 0 S +R Z 1989 o - Ap 29 24 1 D +R Z 1989 o - S 2 24 0 S +R Z 1990 o - Mar 24 24 1 D +R Z 1990 o - Au 25 24 0 S +R Z 1991 o - Mar 23 24 1 D +R Z 1991 o - Au 31 24 0 S +R Z 1992 o - Mar 28 24 1 D +R Z 1992 o - S 5 24 0 S +R Z 1993 o - Ap 2 0 1 D +R Z 1993 o - S 5 0 0 S +R Z 1994 o - Ap 1 0 1 D +R Z 1994 o - Au 28 0 0 S +R Z 1995 o - Mar 31 0 1 D +R Z 1995 o - S 3 0 0 S +R Z 1996 o - Mar 14 24 1 D +R Z 1996 o - S 15 24 0 S +R Z 1997 o - Mar 20 24 1 D +R Z 1997 o - S 13 24 0 S +R Z 1998 o - Mar 20 0 1 D +R Z 1998 o - S 6 0 0 S +R Z 1999 o - Ap 2 2 1 D +R Z 1999 o - S 3 2 0 S +R Z 2000 o - Ap 14 2 1 D +R Z 2000 o - O 6 1 0 S +R Z 2001 o - Ap 9 1 1 D +R Z 2001 o - S 24 1 0 S +R Z 2002 o - Mar 29 1 1 D +R Z 2002 o - O 7 1 0 S +R Z 2003 o - Mar 28 1 1 D +R Z 2003 o - O 3 1 0 S +R Z 2004 o - Ap 7 1 1 D +R Z 2004 o - S 22 1 0 S +R Z 2005 2012 - Ap F<=1 2 1 D +R Z 2005 o - O 9 2 0 S +R Z 2006 o - O 1 2 0 S +R Z 2007 o - S 16 2 0 S +R Z 2008 o - O 5 2 0 S +R Z 2009 o - S 27 2 0 S +R Z 2010 o - S 12 2 0 S +R Z 2011 o - O 2 2 0 S +R Z 2012 o - S 23 2 0 S +R Z 2013 ma - Mar F>=23 2 1 D +R Z 2013 ma - O lastSu 2 0 S +R JP 1948 o - May Sa>=1 24 1 D +R JP 1948 1951 - S Sa>=8 25 0 S +R JP 1949 o - Ap Sa>=1 24 1 D +R JP 1950 1951 - May Sa>=1 24 1 D +R J 1973 o - Jun 6 0 1 S +R J 1973 1975 - O 1 0 0 - +R J 1974 1977 - May 1 0 1 S +R J 1976 o - N 1 0 0 - +R J 1977 o - O 1 0 0 - +R J 1978 o - Ap 30 0 1 S +R J 1978 o - S 30 0 0 - +R J 1985 o - Ap 1 0 1 S +R J 1985 o - O 1 0 0 - +R J 1986 1988 - Ap F>=1 0 1 S +R J 1986 1990 - O F>=1 0 0 - +R J 1989 o - May 8 0 1 S +R J 1990 o - Ap 27 0 1 S +R J 1991 o - Ap 17 0 1 S +R J 1991 o - S 27 0 0 - +R J 1992 o - Ap 10 0 1 S +R J 1992 1993 - O F>=1 0 0 - +R J 1993 1998 - Ap F>=1 0 1 S +R J 1994 o - S F>=15 0 0 - +R J 1995 1998 - S F>=15 0s 0 - +R J 1999 o - Jul 1 0s 1 S +R J 1999 2002 - S lastF 0s 0 - +R J 2000 2001 - Mar lastTh 0s 1 S +R J 2002 2012 - Mar lastTh 24 1 S +R J 2003 o - O 24 0s 0 - +R J 2004 o - O 15 0s 0 - +R J 2005 o - S lastF 0s 0 - +R J 2006 2011 - O lastF 0s 0 - +R J 2013 o - D 20 0 0 - +R J 2014 2021 - Mar lastTh 24 1 S +R J 2014 2022 - O lastF 0s 0 - +R J 2022 o - F lastTh 24 1 S +R KG 1992 1996 - Ap Su>=7 0s 1 - +R KG 1992 1996 - S lastSu 0 0 - +R KG 1997 2005 - Mar lastSu 2:30 1 - +R KG 1997 2004 - O lastSu 2:30 0 - +R KR 1948 o - Jun 1 0 1 D +R KR 1948 o - S 12 24 0 S +R KR 1949 o - Ap 3 0 1 D +R KR 1949 1951 - S Sa>=7 24 0 S +R KR 1950 o - Ap 1 0 1 D +R KR 1951 o - May 6 0 1 D +R KR 1955 o - May 5 0 1 D +R KR 1955 o - S 8 24 0 S +R KR 1956 o - May 20 0 1 D +R KR 1956 o - S 29 24 0 S +R KR 1957 1960 - May Su>=1 0 1 D +R KR 1957 1960 - S Sa>=17 24 0 S +R KR 1987 1988 - May Su>=8 2 1 D +R KR 1987 1988 - O Su>=8 3 0 S +R l 1920 o - Mar 28 0 1 S +R l 1920 o - O 25 0 0 - +R l 1921 o - Ap 3 0 1 S +R l 1921 o - O 3 0 0 - +R l 1922 o - Mar 26 0 1 S +R l 1922 o - O 8 0 0 - +R l 1923 o - Ap 22 0 1 S +R l 1923 o - S 16 0 0 - +R l 1957 1961 - May 1 0 1 S +R l 1957 1961 - O 1 0 0 - +R l 1972 o - Jun 22 0 1 S +R l 1972 1977 - O 1 0 0 - +R l 1973 1977 - May 1 0 1 S +R l 1978 o - Ap 30 0 1 S +R l 1978 o - S 30 0 0 - +R l 1984 1987 - May 1 0 1 S +R l 1984 1991 - O 16 0 0 - +R l 1988 o - Jun 1 0 1 S +R l 1989 o - May 10 0 1 S +R l 1990 1992 - May 1 0 1 S +R l 1992 o - O 4 0 0 - +R l 1993 ma - Mar lastSu 0 1 S +R l 1993 1998 - S lastSu 0 0 - +R l 1999 ma - O lastSu 0 0 - +R NB 1935 1941 - S 14 0 0:20 - +R NB 1935 1941 - D 14 0 0 - +R X 1983 1984 - Ap 1 0 1 - +R X 1983 o - O 1 0 0 - +R X 1985 1998 - Mar lastSu 0 1 - +R X 1984 1998 - S lastSu 0 0 - +R X 2001 o - Ap lastSa 2 1 - +R X 2001 2006 - S lastSa 2 0 - +R X 2002 2006 - Mar lastSa 2 1 - +R X 2015 2016 - Mar lastSa 2 1 - +R X 2015 2016 - S lastSa 0 0 - +R PK 2002 o - Ap Su>=2 0 1 S +R PK 2002 o - O Su>=2 0 0 - +R PK 2008 o - Jun 1 0 1 S +R PK 2008 2009 - N 1 0 0 - +R PK 2009 o - Ap 15 0 1 S +R P 1999 2005 - Ap F>=15 0 1 S +R P 1999 2003 - O F>=15 0 0 - +R P 2004 o - O 1 1 0 - +R P 2005 o - O 4 2 0 - +R P 2006 2007 - Ap 1 0 1 S +R P 2006 o - S 22 0 0 - +R P 2007 o - S 13 2 0 - +R P 2008 2009 - Mar lastF 0 1 S +R P 2008 o - S 1 0 0 - +R P 2009 o - S 4 1 0 - +R P 2010 o - Mar 26 0 1 S +R P 2010 o - Au 11 0 0 - +R P 2011 o - Ap 1 0:1 1 S +R P 2011 o - Au 1 0 0 - +R P 2011 o - Au 30 0 1 S +R P 2011 o - S 30 0 0 - +R P 2012 2014 - Mar lastTh 24 1 S +R P 2012 o - S 21 1 0 - +R P 2013 o - S 27 0 0 - +R P 2014 o - O 24 0 0 - +R P 2015 o - Mar 28 0 1 S +R P 2015 o - O 23 1 0 - +R P 2016 2018 - Mar Sa<=30 1 1 S +R P 2016 2018 - O Sa<=30 1 0 - +R P 2019 o - Mar 29 0 1 S +R P 2019 o - O Sa<=30 0 0 - +R P 2020 2021 - Mar Sa<=30 0 1 S +R P 2020 o - O 24 1 0 - +R P 2021 o - O 29 1 0 - +R P 2022 o - Mar 27 0 1 S +R P 2022 2035 - O Sa<=30 2 0 - +R P 2023 o - Ap 29 2 1 S +R P 2024 o - Ap 20 2 1 S +R P 2025 o - Ap 12 2 1 S +R P 2026 2054 - Mar Sa<=30 2 1 S +R P 2036 o - O 18 2 0 - +R P 2037 o - O 10 2 0 - +R P 2038 o - S 25 2 0 - +R P 2039 o - S 17 2 0 - +R P 2040 o - S 1 2 0 - +R P 2040 o - O 20 2 1 S +R P 2040 2067 - O Sa<=30 2 0 - +R P 2041 o - Au 24 2 0 - +R P 2041 o - O 5 2 1 S +R P 2042 o - Au 16 2 0 - +R P 2042 o - S 27 2 1 S +R P 2043 o - Au 1 2 0 - +R P 2043 o - S 19 2 1 S +R P 2044 o - Jul 23 2 0 - +R P 2044 o - S 3 2 1 S +R P 2045 o - Jul 15 2 0 - +R P 2045 o - Au 26 2 1 S +R P 2046 o - Jun 30 2 0 - +R P 2046 o - Au 18 2 1 S +R P 2047 o - Jun 22 2 0 - +R P 2047 o - Au 3 2 1 S +R P 2048 o - Jun 6 2 0 - +R P 2048 o - Jul 25 2 1 S +R P 2049 o - May 29 2 0 - +R P 2049 o - Jul 10 2 1 S +R P 2050 o - May 21 2 0 - +R P 2050 o - Jul 2 2 1 S +R P 2051 o - May 6 2 0 - +R P 2051 o - Jun 24 2 1 S +R P 2052 o - Ap 27 2 0 - +R P 2052 o - Jun 8 2 1 S +R P 2053 o - Ap 12 2 0 - +R P 2053 o - May 31 2 1 S +R P 2054 o - Ap 4 2 0 - +R P 2054 o - May 23 2 1 S +R P 2055 o - May 8 2 1 S +R P 2056 o - Ap 29 2 1 S +R P 2057 o - Ap 14 2 1 S +R P 2058 o - Ap 6 2 1 S +R P 2059 ma - Mar Sa<=30 2 1 S +R P 2068 o - O 20 2 0 - +R P 2069 o - O 12 2 0 - +R P 2070 o - O 4 2 0 - +R P 2071 o - S 19 2 0 - +R P 2072 o - S 10 2 0 - +R P 2072 o - O 22 2 1 S +R P 2072 ma - O Sa<=30 2 0 - +R P 2073 o - S 2 2 0 - +R P 2073 o - O 14 2 1 S +R P 2074 o - Au 18 2 0 - +R P 2074 o - O 6 2 1 S +R P 2075 o - Au 10 2 0 - +R P 2075 o - S 21 2 1 S +R P 2076 o - Jul 25 2 0 - +R P 2076 o - S 12 2 1 S +R P 2077 o - Jul 17 2 0 - +R P 2077 o - S 4 2 1 S +R P 2078 o - Jul 9 2 0 - +R P 2078 o - Au 20 2 1 S +R P 2079 o - Jun 24 2 0 - +R P 2079 o - Au 12 2 1 S +R P 2080 o - Jun 15 2 0 - +R P 2080 o - Jul 27 2 1 S +R P 2081 o - Jun 7 2 0 - +R P 2081 o - Jul 19 2 1 S +R P 2082 o - May 23 2 0 - +R P 2082 o - Jul 11 2 1 S +R P 2083 o - May 15 2 0 - +R P 2083 o - Jun 26 2 1 S +R P 2084 o - Ap 29 2 0 - +R P 2084 o - Jun 17 2 1 S +R P 2085 o - Ap 21 2 0 - +R P 2085 o - Jun 9 2 1 S +R P 2086 o - Ap 13 2 0 - +R P 2086 o - May 25 2 1 S +R PH 1936 o - O 31 24 1 D +R PH 1937 o - Ja 15 24 0 S +R PH 1941 o - D 15 24 1 D +R PH 1945 o - N 30 24 0 S +R PH 1954 o - Ap 11 24 1 D +R PH 1954 o - Jun 4 24 0 S +R PH 1977 o - Mar 27 24 1 D +R PH 1977 o - S 21 24 0 S +R PH 1990 o - May 21 0 1 D +R PH 1990 o - Jul 28 24 0 S +R S 1920 1923 - Ap Su>=15 2 1 S +R S 1920 1923 - O Su>=1 2 0 - +R S 1962 o - Ap 29 2 1 S +R S 1962 o - O 1 2 0 - +R S 1963 1965 - May 1 2 1 S +R S 1963 o - S 30 2 0 - +R S 1964 o - O 1 2 0 - +R S 1965 o - S 30 2 0 - +R S 1966 o - Ap 24 2 1 S +R S 1966 1976 - O 1 2 0 - +R S 1967 1978 - May 1 2 1 S +R S 1977 1978 - S 1 2 0 - +R S 1983 1984 - Ap 9 2 1 S +R S 1983 1984 - O 1 2 0 - +R S 1986 o - F 16 2 1 S +R S 1986 o - O 9 2 0 - +R S 1987 o - Mar 1 2 1 S +R S 1987 1988 - O 31 2 0 - +R S 1988 o - Mar 15 2 1 S +R S 1989 o - Mar 31 2 1 S +R S 1989 o - O 1 2 0 - +R S 1990 o - Ap 1 2 1 S +R S 1990 o - S 30 2 0 - +R S 1991 o - Ap 1 0 1 S +R S 1991 1992 - O 1 0 0 - +R S 1992 o - Ap 8 0 1 S +R S 1993 o - Mar 26 0 1 S +R S 1993 o - S 25 0 0 - +R S 1994 1996 - Ap 1 0 1 S +R S 1994 2005 - O 1 0 0 - +R S 1997 1998 - Mar lastM 0 1 S +R S 1999 2006 - Ap 1 0 1 S +R S 2006 o - S 22 0 0 - +R S 2007 o - Mar lastF 0 1 S +R S 2007 o - N F>=1 0 0 - +R S 2008 o - Ap F>=1 0 1 S +R S 2008 o - N 1 0 0 - +R S 2009 o - Mar lastF 0 1 S +R S 2010 2011 - Ap F>=1 0 1 S +R S 2012 2022 - Mar lastF 0 1 S +R S 2009 2022 - O lastF 0 0 - +R AU 1917 o - Ja 1 2s 1 D +R AU 1917 o - Mar lastSu 2s 0 S +R AU 1942 o - Ja 1 2s 1 D +R AU 1942 o - Mar lastSu 2s 0 S +R AU 1942 o - S 27 2s 1 D +R AU 1943 1944 - Mar lastSu 2s 0 S +R AU 1943 o - O 3 2s 1 D +R AW 1974 o - O lastSu 2s 1 D +R AW 1975 o - Mar Su>=1 2s 0 S +R AW 1983 o - O lastSu 2s 1 D +R AW 1984 o - Mar Su>=1 2s 0 S +R AW 1991 o - N 17 2s 1 D +R AW 1992 o - Mar Su>=1 2s 0 S +R AW 2006 o - D 3 2s 1 D +R AW 2007 2009 - Mar lastSu 2s 0 S +R AW 2007 2008 - O lastSu 2s 1 D +R AQ 1971 o - O lastSu 2s 1 D +R AQ 1972 o - F lastSu 2s 0 S +R AQ 1989 1991 - O lastSu 2s 1 D +R AQ 1990 1992 - Mar Su>=1 2s 0 S +R Ho 1992 1993 - O lastSu 2s 1 D +R Ho 1993 1994 - Mar Su>=1 2s 0 S +R AS 1971 1985 - O lastSu 2s 1 D +R AS 1986 o - O 19 2s 1 D +R AS 1987 2007 - O lastSu 2s 1 D +R AS 1972 o - F 27 2s 0 S +R AS 1973 1985 - Mar Su>=1 2s 0 S +R AS 1986 1990 - Mar Su>=15 2s 0 S +R AS 1991 o - Mar 3 2s 0 S +R AS 1992 o - Mar 22 2s 0 S +R AS 1993 o - Mar 7 2s 0 S +R AS 1994 o - Mar 20 2s 0 S +R AS 1995 2005 - Mar lastSu 2s 0 S +R AS 2006 o - Ap 2 2s 0 S +R AS 2007 o - Mar lastSu 2s 0 S +R AS 2008 ma - Ap Su>=1 2s 0 S +R AS 2008 ma - O Su>=1 2s 1 D +R AT 1916 o - O Su>=1 2s 1 D +R AT 1917 o - Mar lastSu 2s 0 S +R AT 1917 1918 - O Su>=22 2s 1 D +R AT 1918 1919 - Mar Su>=1 2s 0 S +R AT 1967 o - O Su>=1 2s 1 D +R AT 1968 o - Mar Su>=29 2s 0 S +R AT 1968 1985 - O lastSu 2s 1 D +R AT 1969 1971 - Mar Su>=8 2s 0 S +R AT 1972 o - F lastSu 2s 0 S +R AT 1973 1981 - Mar Su>=1 2s 0 S +R AT 1982 1983 - Mar lastSu 2s 0 S +R AT 1984 1986 - Mar Su>=1 2s 0 S +R AT 1986 o - O Su>=15 2s 1 D +R AT 1987 1990 - Mar Su>=15 2s 0 S +R AT 1987 o - O Su>=22 2s 1 D +R AT 1988 1990 - O lastSu 2s 1 D +R AT 1991 1999 - O Su>=1 2s 1 D +R AT 1991 2005 - Mar lastSu 2s 0 S +R AT 2000 o - Au lastSu 2s 1 D +R AT 2001 ma - O Su>=1 2s 1 D +R AT 2006 o - Ap Su>=1 2s 0 S +R AT 2007 o - Mar lastSu 2s 0 S +R AT 2008 ma - Ap Su>=1 2s 0 S +R AV 1971 1985 - O lastSu 2s 1 D +R AV 1972 o - F lastSu 2s 0 S +R AV 1973 1985 - Mar Su>=1 2s 0 S +R AV 1986 1990 - Mar Su>=15 2s 0 S +R AV 1986 1987 - O Su>=15 2s 1 D +R AV 1988 1999 - O lastSu 2s 1 D +R AV 1991 1994 - Mar Su>=1 2s 0 S +R AV 1995 2005 - Mar lastSu 2s 0 S +R AV 2000 o - Au lastSu 2s 1 D +R AV 2001 2007 - O lastSu 2s 1 D +R AV 2006 o - Ap Su>=1 2s 0 S +R AV 2007 o - Mar lastSu 2s 0 S +R AV 2008 ma - Ap Su>=1 2s 0 S +R AV 2008 ma - O Su>=1 2s 1 D +R AN 1971 1985 - O lastSu 2s 1 D +R AN 1972 o - F 27 2s 0 S +R AN 1973 1981 - Mar Su>=1 2s 0 S +R AN 1982 o - Ap Su>=1 2s 0 S +R AN 1983 1985 - Mar Su>=1 2s 0 S +R AN 1986 1989 - Mar Su>=15 2s 0 S +R AN 1986 o - O 19 2s 1 D +R AN 1987 1999 - O lastSu 2s 1 D +R AN 1990 1995 - Mar Su>=1 2s 0 S +R AN 1996 2005 - Mar lastSu 2s 0 S +R AN 2000 o - Au lastSu 2s 1 D +R AN 2001 2007 - O lastSu 2s 1 D +R AN 2006 o - Ap Su>=1 2s 0 S +R AN 2007 o - Mar lastSu 2s 0 S +R AN 2008 ma - Ap Su>=1 2s 0 S +R AN 2008 ma - O Su>=1 2s 1 D +R LH 1981 1984 - O lastSu 2 1 - +R LH 1982 1985 - Mar Su>=1 2 0 - +R LH 1985 o - O lastSu 2 0:30 - +R LH 1986 1989 - Mar Su>=15 2 0 - +R LH 1986 o - O 19 2 0:30 - +R LH 1987 1999 - O lastSu 2 0:30 - +R LH 1990 1995 - Mar Su>=1 2 0 - +R LH 1996 2005 - Mar lastSu 2 0 - +R LH 2000 o - Au lastSu 2 0:30 - +R LH 2001 2007 - O lastSu 2 0:30 - +R LH 2006 o - Ap Su>=1 2 0 - +R LH 2007 o - Mar lastSu 2 0 - +R LH 2008 ma - Ap Su>=1 2 0 - +R LH 2008 ma - O Su>=1 2 0:30 - +R FJ 1998 1999 - N Su>=1 2 1 - +R FJ 1999 2000 - F lastSu 3 0 - +R FJ 2009 o - N 29 2 1 - +R FJ 2010 o - Mar lastSu 3 0 - +R FJ 2010 2013 - O Su>=21 2 1 - +R FJ 2011 o - Mar Su>=1 3 0 - +R FJ 2012 2013 - Ja Su>=18 3 0 - +R FJ 2014 o - Ja Su>=18 2 0 - +R FJ 2014 2018 - N Su>=1 2 1 - +R FJ 2015 2021 - Ja Su>=12 3 0 - +R FJ 2019 o - N Su>=8 2 1 - +R FJ 2020 o - D 20 2 1 - +R Gu 1959 o - Jun 27 2 1 D +R Gu 1961 o - Ja 29 2 0 S +R Gu 1967 o - S 1 2 1 D +R Gu 1969 o - Ja 26 0:1 0 S +R Gu 1969 o - Jun 22 2 1 D +R Gu 1969 o - Au 31 2 0 S +R Gu 1970 1971 - Ap lastSu 2 1 D +R Gu 1970 1971 - S Su>=1 2 0 S +R Gu 1973 o - D 16 2 1 D +R Gu 1974 o - F 24 2 0 S +R Gu 1976 o - May 26 2 1 D +R Gu 1976 o - Au 22 2:1 0 S +R Gu 1977 o - Ap 24 2 1 D +R Gu 1977 o - Au 28 2 0 S +R NC 1977 1978 - D Su>=1 0 1 - +R NC 1978 1979 - F 27 0 0 - +R NC 1996 o - D 1 2s 1 - +R NC 1997 o - Mar 2 2s 0 - +R NZ 1927 o - N 6 2 1 S +R NZ 1928 o - Mar 4 2 0 M +R NZ 1928 1933 - O Su>=8 2 0:30 S +R NZ 1929 1933 - Mar Su>=15 2 0 M +R NZ 1934 1940 - Ap lastSu 2 0 M +R NZ 1934 1940 - S lastSu 2 0:30 S +R NZ 1946 o - Ja 1 0 0 S +R NZ 1974 o - N Su>=1 2s 1 D +R k 1974 o - N Su>=1 2:45s 1 - +R NZ 1975 o - F lastSu 2s 0 S +R k 1975 o - F lastSu 2:45s 0 - +R NZ 1975 1988 - O lastSu 2s 1 D +R k 1975 1988 - O lastSu 2:45s 1 - +R NZ 1976 1989 - Mar Su>=1 2s 0 S +R k 1976 1989 - Mar Su>=1 2:45s 0 - +R NZ 1989 o - O Su>=8 2s 1 D +R k 1989 o - O Su>=8 2:45s 1 - +R NZ 1990 2006 - O Su>=1 2s 1 D +R k 1990 2006 - O Su>=1 2:45s 1 - +R NZ 1990 2007 - Mar Su>=15 2s 0 S +R k 1990 2007 - Mar Su>=15 2:45s 0 - +R NZ 2007 ma - S lastSu 2s 1 D +R k 2007 ma - S lastSu 2:45s 1 - +R NZ 2008 ma - Ap Su>=1 2s 0 S +R k 2008 ma - Ap Su>=1 2:45s 0 - +R CK 1978 o - N 12 0 0:30 - +R CK 1979 1991 - Mar Su>=1 0 0 - +R CK 1979 1990 - O lastSu 0 0:30 - +R WS 2010 o - S lastSu 0 1 - +R WS 2011 o - Ap Sa>=1 4 0 - +R WS 2011 o - S lastSa 3 1 - +R WS 2012 2021 - Ap Su>=1 4 0 - +R WS 2012 2020 - S lastSu 3 1 - +R TO 1999 o - O 7 2s 1 - +R TO 2000 o - Mar 19 2s 0 - +R TO 2000 2001 - N Su>=1 2 1 - +R TO 2001 2002 - Ja lastSu 2 0 - +R TO 2016 o - N Su>=1 2 1 - +R TO 2017 o - Ja Su>=15 3 0 - +R VU 1973 o - D 22 12u 1 - +R VU 1974 o - Mar 30 12u 0 - +R VU 1983 1991 - S Sa>=22 24 1 - +R VU 1984 1991 - Mar Sa>=22 24 0 - +R VU 1992 1993 - Ja Sa>=22 24 0 - +R VU 1992 o - O Sa>=22 24 1 - +R G 1916 o - May 21 2s 1 BST +R G 1916 o - O 1 2s 0 GMT +R G 1917 o - Ap 8 2s 1 BST +R G 1917 o - S 17 2s 0 GMT +R G 1918 o - Mar 24 2s 1 BST +R G 1918 o - S 30 2s 0 GMT +R G 1919 o - Mar 30 2s 1 BST +R G 1919 o - S 29 2s 0 GMT +R G 1920 o - Mar 28 2s 1 BST +R G 1920 o - O 25 2s 0 GMT +R G 1921 o - Ap 3 2s 1 BST +R G 1921 o - O 3 2s 0 GMT +R G 1922 o - Mar 26 2s 1 BST +R G 1922 o - O 8 2s 0 GMT +R G 1923 o - Ap Su>=16 2s 1 BST +R G 1923 1924 - S Su>=16 2s 0 GMT +R G 1924 o - Ap Su>=9 2s 1 BST +R G 1925 1926 - Ap Su>=16 2s 1 BST +R G 1925 1938 - O Su>=2 2s 0 GMT +R G 1927 o - Ap Su>=9 2s 1 BST +R G 1928 1929 - Ap Su>=16 2s 1 BST +R G 1930 o - Ap Su>=9 2s 1 BST +R G 1931 1932 - Ap Su>=16 2s 1 BST +R G 1933 o - Ap Su>=9 2s 1 BST +R G 1934 o - Ap Su>=16 2s 1 BST +R G 1935 o - Ap Su>=9 2s 1 BST +R G 1936 1937 - Ap Su>=16 2s 1 BST +R G 1938 o - Ap Su>=9 2s 1 BST +R G 1939 o - Ap Su>=16 2s 1 BST +R G 1939 o - N Su>=16 2s 0 GMT +R G 1940 o - F Su>=23 2s 1 BST +R G 1941 o - May Su>=2 1s 2 BDST +R G 1941 1943 - Au Su>=9 1s 1 BST +R G 1942 1944 - Ap Su>=2 1s 2 BDST +R G 1944 o - S Su>=16 1s 1 BST +R G 1945 o - Ap M>=2 1s 2 BDST +R G 1945 o - Jul Su>=9 1s 1 BST +R G 1945 1946 - O Su>=2 2s 0 GMT +R G 1946 o - Ap Su>=9 2s 1 BST +R G 1947 o - Mar 16 2s 1 BST +R G 1947 o - Ap 13 1s 2 BDST +R G 1947 o - Au 10 1s 1 BST +R G 1947 o - N 2 2s 0 GMT +R G 1948 o - Mar 14 2s 1 BST +R G 1948 o - O 31 2s 0 GMT +R G 1949 o - Ap 3 2s 1 BST +R G 1949 o - O 30 2s 0 GMT +R G 1950 1952 - Ap Su>=14 2s 1 BST +R G 1950 1952 - O Su>=21 2s 0 GMT +R G 1953 o - Ap Su>=16 2s 1 BST +R G 1953 1960 - O Su>=2 2s 0 GMT +R G 1954 o - Ap Su>=9 2s 1 BST +R G 1955 1956 - Ap Su>=16 2s 1 BST +R G 1957 o - Ap Su>=9 2s 1 BST +R G 1958 1959 - Ap Su>=16 2s 1 BST +R G 1960 o - Ap Su>=9 2s 1 BST +R G 1961 1963 - Mar lastSu 2s 1 BST +R G 1961 1968 - O Su>=23 2s 0 GMT +R G 1964 1967 - Mar Su>=19 2s 1 BST +R G 1968 o - F 18 2s 1 BST +R G 1972 1980 - Mar Su>=16 2s 1 BST +R G 1972 1980 - O Su>=23 2s 0 GMT +R G 1981 1995 - Mar lastSu 1u 1 BST +R G 1981 1989 - O Su>=23 1u 0 GMT +R G 1990 1995 - O Su>=22 1u 0 GMT +R IE 1971 o - O 31 2u -1 - +R IE 1972 1980 - Mar Su>=16 2u 0 - +R IE 1972 1980 - O Su>=23 2u -1 - +R IE 1981 ma - Mar lastSu 1u 0 - +R IE 1981 1989 - O Su>=23 1u -1 - +R IE 1990 1995 - O Su>=22 1u -1 - +R IE 1996 ma - O lastSu 1u -1 - +R E 1977 1980 - Ap Su>=1 1u 1 S +R E 1977 o - S lastSu 1u 0 - +R E 1978 o - O 1 1u 0 - +R E 1979 1995 - S lastSu 1u 0 - +R E 1981 ma - Mar lastSu 1u 1 S +R E 1996 ma - O lastSu 1u 0 - +R W- 1977 1980 - Ap Su>=1 1s 1 S +R W- 1977 o - S lastSu 1s 0 - +R W- 1978 o - O 1 1s 0 - +R W- 1979 1995 - S lastSu 1s 0 - +R W- 1981 ma - Mar lastSu 1s 1 S +R W- 1996 ma - O lastSu 1s 0 - +R c 1916 o - Ap 30 23 1 S +R c 1916 o - O 1 1 0 - +R c 1917 1918 - Ap M>=15 2s 1 S +R c 1917 1918 - S M>=15 2s 0 - +R c 1940 o - Ap 1 2s 1 S +R c 1942 o - N 2 2s 0 - +R c 1943 o - Mar 29 2s 1 S +R c 1943 o - O 4 2s 0 - +R c 1944 1945 - Ap M>=1 2s 1 S +R c 1944 o - O 2 2s 0 - +R c 1945 o - S 16 2s 0 - +R c 1977 1980 - Ap Su>=1 2s 1 S +R c 1977 o - S lastSu 2s 0 - +R c 1978 o - O 1 2s 0 - +R c 1979 1995 - S lastSu 2s 0 - +R c 1981 ma - Mar lastSu 2s 1 S +R c 1996 ma - O lastSu 2s 0 - +R e 1977 1980 - Ap Su>=1 0 1 S +R e 1977 o - S lastSu 0 0 - +R e 1978 o - O 1 0 0 - +R e 1979 1995 - S lastSu 0 0 - +R e 1981 ma - Mar lastSu 0 1 S +R e 1996 ma - O lastSu 0 0 - +R R 1917 o - Jul 1 23 1 MST +R R 1917 o - D 28 0 0 MMT +R R 1918 o - May 31 22 2 MDST +R R 1918 o - S 16 1 1 MST +R R 1919 o - May 31 23 2 MDST +R R 1919 o - Jul 1 0u 1 MSD +R R 1919 o - Au 16 0 0 MSK +R R 1921 o - F 14 23 1 MSD +R R 1921 o - Mar 20 23 2 +05 +R R 1921 o - S 1 0 1 MSD +R R 1921 o - O 1 0 0 - +R R 1981 1984 - Ap 1 0 1 S +R R 1981 1983 - O 1 0 0 - +R R 1984 1995 - S lastSu 2s 0 - +R R 1985 2010 - Mar lastSu 2s 1 S +R R 1996 2010 - O lastSu 2s 0 - +R q 1940 o - Jun 16 0 1 S +R q 1942 o - N 2 3 0 - +R q 1943 o - Mar 29 2 1 S +R q 1943 o - Ap 10 3 0 - +R q 1974 o - May 4 0 1 S +R q 1974 o - O 2 0 0 - +R q 1975 o - May 1 0 1 S +R q 1975 o - O 2 0 0 - +R q 1976 o - May 2 0 1 S +R q 1976 o - O 3 0 0 - +R q 1977 o - May 8 0 1 S +R q 1977 o - O 2 0 0 - +R q 1978 o - May 6 0 1 S +R q 1978 o - O 1 0 0 - +R q 1979 o - May 5 0 1 S +R q 1979 o - S 30 0 0 - +R q 1980 o - May 3 0 1 S +R q 1980 o - O 4 0 0 - +R q 1981 o - Ap 26 0 1 S +R q 1981 o - S 27 0 0 - +R q 1982 o - May 2 0 1 S +R q 1982 o - O 3 0 0 - +R q 1983 o - Ap 18 0 1 S +R q 1983 o - O 1 0 0 - +R q 1984 o - Ap 1 0 1 S +R a 1920 o - Ap 5 2s 1 S +R a 1920 o - S 13 2s 0 - +R a 1946 o - Ap 14 2s 1 S +R a 1946 o - O 7 2s 0 - +R a 1947 1948 - O Su>=1 2s 0 - +R a 1947 o - Ap 6 2s 1 S +R a 1948 o - Ap 18 2s 1 S +R a 1980 o - Ap 6 0 1 S +R a 1980 o - S 28 0 0 - +R b 1918 o - Mar 9 0s 1 S +R b 1918 1919 - O Sa>=1 23s 0 - +R b 1919 o - Mar 1 23s 1 S +R b 1920 o - F 14 23s 1 S +R b 1920 o - O 23 23s 0 - +R b 1921 o - Mar 14 23s 1 S +R b 1921 o - O 25 23s 0 - +R b 1922 o - Mar 25 23s 1 S +R b 1922 1927 - O Sa>=1 23s 0 - +R b 1923 o - Ap 21 23s 1 S +R b 1924 o - Mar 29 23s 1 S +R b 1925 o - Ap 4 23s 1 S +R b 1926 o - Ap 17 23s 1 S +R b 1927 o - Ap 9 23s 1 S +R b 1928 o - Ap 14 23s 1 S +R b 1928 1938 - O Su>=2 2s 0 - +R b 1929 o - Ap 21 2s 1 S +R b 1930 o - Ap 13 2s 1 S +R b 1931 o - Ap 19 2s 1 S +R b 1932 o - Ap 3 2s 1 S +R b 1933 o - Mar 26 2s 1 S +R b 1934 o - Ap 8 2s 1 S +R b 1935 o - Mar 31 2s 1 S +R b 1936 o - Ap 19 2s 1 S +R b 1937 o - Ap 4 2s 1 S +R b 1938 o - Mar 27 2s 1 S +R b 1939 o - Ap 16 2s 1 S +R b 1939 o - N 19 2s 0 - +R b 1940 o - F 25 2s 1 S +R b 1944 o - S 17 2s 0 - +R b 1945 o - Ap 2 2s 1 S +R b 1945 o - S 16 2s 0 - +R b 1946 o - May 19 2s 1 S +R b 1946 o - O 7 2s 0 - +R BG 1979 o - Mar 31 23 1 S +R BG 1979 o - O 1 1 0 - +R BG 1980 1982 - Ap Sa>=1 23 1 S +R BG 1980 o - S 29 1 0 - +R BG 1981 o - S 27 2 0 - +R CZ 1945 o - Ap M>=1 2s 1 S +R CZ 1945 o - O 1 2s 0 - +R CZ 1946 o - May 6 2s 1 S +R CZ 1946 1949 - O Su>=1 2s 0 - +R CZ 1947 1948 - Ap Su>=15 2s 1 S +R CZ 1949 o - Ap 9 2s 1 S +R Th 1991 1992 - Mar lastSu 2 1 D +R Th 1991 1992 - S lastSu 2 0 S +R Th 1993 2006 - Ap Su>=1 2 1 D +R Th 1993 2006 - O lastSu 2 0 S +R Th 2007 ma - Mar Su>=8 2 1 D +R Th 2007 ma - N Su>=1 2 0 S +R FI 1942 o - Ap 2 24 1 S +R FI 1942 o - O 4 1 0 - +R FI 1981 1982 - Mar lastSu 2 1 S +R FI 1981 1982 - S lastSu 3 0 - +R F 1916 o - Jun 14 23s 1 S +R F 1916 1919 - O Su>=1 23s 0 - +R F 1917 o - Mar 24 23s 1 S +R F 1918 o - Mar 9 23s 1 S +R F 1919 o - Mar 1 23s 1 S +R F 1920 o - F 14 23s 1 S +R F 1920 o - O 23 23s 0 - +R F 1921 o - Mar 14 23s 1 S +R F 1921 o - O 25 23s 0 - +R F 1922 o - Mar 25 23s 1 S +R F 1922 1938 - O Sa>=1 23s 0 - +R F 1923 o - May 26 23s 1 S +R F 1924 o - Mar 29 23s 1 S +R F 1925 o - Ap 4 23s 1 S +R F 1926 o - Ap 17 23s 1 S +R F 1927 o - Ap 9 23s 1 S +R F 1928 o - Ap 14 23s 1 S +R F 1929 o - Ap 20 23s 1 S +R F 1930 o - Ap 12 23s 1 S +R F 1931 o - Ap 18 23s 1 S +R F 1932 o - Ap 2 23s 1 S +R F 1933 o - Mar 25 23s 1 S +R F 1934 o - Ap 7 23s 1 S +R F 1935 o - Mar 30 23s 1 S +R F 1936 o - Ap 18 23s 1 S +R F 1937 o - Ap 3 23s 1 S +R F 1938 o - Mar 26 23s 1 S +R F 1939 o - Ap 15 23s 1 S +R F 1939 o - N 18 23s 0 - +R F 1940 o - F 25 2 1 S +R F 1941 o - May 5 0 2 M +R F 1941 o - O 6 0 1 S +R F 1942 o - Mar 9 0 2 M +R F 1942 o - N 2 3 1 S +R F 1943 o - Mar 29 2 2 M +R F 1943 o - O 4 3 1 S +R F 1944 o - Ap 3 2 2 M +R F 1944 o - O 8 1 1 S +R F 1945 o - Ap 2 2 2 M +R F 1945 o - S 16 3 0 - +R F 1976 o - Mar 28 1 1 S +R F 1976 o - S 26 1 0 - +R DE 1946 o - Ap 14 2s 1 S +R DE 1946 o - O 7 2s 0 - +R DE 1947 1949 - O Su>=1 2s 0 - +R DE 1947 o - Ap 6 3s 1 S +R DE 1947 o - May 11 2s 2 M +R DE 1947 o - Jun 29 3 1 S +R DE 1948 o - Ap 18 2s 1 S +R DE 1949 o - Ap 10 2s 1 S +R So 1945 o - May 24 2 2 M +R So 1945 o - S 24 3 1 S +R So 1945 o - N 18 2s 0 - +R g 1932 o - Jul 7 0 1 S +R g 1932 o - S 1 0 0 - +R g 1941 o - Ap 7 0 1 S +R g 1942 o - N 2 3 0 - +R g 1943 o - Mar 30 0 1 S +R g 1943 o - O 4 0 0 - +R g 1952 o - Jul 1 0 1 S +R g 1952 o - N 2 0 0 - +R g 1975 o - Ap 12 0s 1 S +R g 1975 o - N 26 0s 0 - +R g 1976 o - Ap 11 2s 1 S +R g 1976 o - O 10 2s 0 - +R g 1977 1978 - Ap Su>=1 2s 1 S +R g 1977 o - S 26 2s 0 - +R g 1978 o - S 24 4 0 - +R g 1979 o - Ap 1 9 1 S +R g 1979 o - S 29 2 0 - +R g 1980 o - Ap 1 0 1 S +R g 1980 o - S 28 0 0 - +R h 1918 1919 - Ap 15 2 1 S +R h 1918 1920 - S M>=15 3 0 - +R h 1920 o - Ap 5 2 1 S +R h 1945 o - May 1 23 1 S +R h 1945 o - N 1 1 0 - +R h 1946 o - Mar 31 2s 1 S +R h 1946 o - O 7 2 0 - +R h 1947 1949 - Ap Su>=4 2s 1 S +R h 1947 1949 - O Su>=1 2s 0 - +R h 1954 o - May 23 0 1 S +R h 1954 o - O 3 0 0 - +R h 1955 o - May 22 2 1 S +R h 1955 o - O 2 3 0 - +R h 1956 1957 - Jun Su>=1 2 1 S +R h 1956 1957 - S lastSu 3 0 - +R h 1980 o - Ap 6 0 1 S +R h 1980 o - S 28 1 0 - +R h 1981 1983 - Mar lastSu 0 1 S +R h 1981 1983 - S lastSu 1 0 - +R I 1916 o - Jun 3 24 1 S +R I 1916 1917 - S 30 24 0 - +R I 1917 o - Mar 31 24 1 S +R I 1918 o - Mar 9 24 1 S +R I 1918 o - O 6 24 0 - +R I 1919 o - Mar 1 24 1 S +R I 1919 o - O 4 24 0 - +R I 1920 o - Mar 20 24 1 S +R I 1920 o - S 18 24 0 - +R I 1940 o - Jun 14 24 1 S +R I 1942 o - N 2 2s 0 - +R I 1943 o - Mar 29 2s 1 S +R I 1943 o - O 4 2s 0 - +R I 1944 o - Ap 2 2s 1 S +R I 1944 o - S 17 2s 0 - +R I 1945 o - Ap 2 2 1 S +R I 1945 o - S 15 1 0 - +R I 1946 o - Mar 17 2s 1 S +R I 1946 o - O 6 2s 0 - +R I 1947 o - Mar 16 0s 1 S +R I 1947 o - O 5 0s 0 - +R I 1948 o - F 29 2s 1 S +R I 1948 o - O 3 2s 0 - +R I 1966 1968 - May Su>=22 0s 1 S +R I 1966 o - S 24 24 0 - +R I 1967 1969 - S Su>=22 0s 0 - +R I 1969 o - Jun 1 0s 1 S +R I 1970 o - May 31 0s 1 S +R I 1970 o - S lastSu 0s 0 - +R I 1971 1972 - May Su>=22 0s 1 S +R I 1971 o - S lastSu 0s 0 - +R I 1972 o - O 1 0s 0 - +R I 1973 o - Jun 3 0s 1 S +R I 1973 1974 - S lastSu 0s 0 - +R I 1974 o - May 26 0s 1 S +R I 1975 o - Jun 1 0s 1 S +R I 1975 1977 - S lastSu 0s 0 - +R I 1976 o - May 30 0s 1 S +R I 1977 1979 - May Su>=22 0s 1 S +R I 1978 o - O 1 0s 0 - +R I 1979 o - S 30 0s 0 - +R LV 1989 1996 - Mar lastSu 2s 1 S +R LV 1989 1996 - S lastSu 2s 0 - +R MT 1973 o - Mar 31 0s 1 S +R MT 1973 o - S 29 0s 0 - +R MT 1974 o - Ap 21 0s 1 S +R MT 1974 o - S 16 0s 0 - +R MT 1975 1979 - Ap Su>=15 2 1 S +R MT 1975 1980 - S Su>=15 2 0 - +R MT 1980 o - Mar 31 2 1 S +R MD 1997 2021 - Mar lastSu 2 1 S +R MD 1997 2021 - O lastSu 3 0 - +R O 1918 1919 - S 16 2s 0 - +R O 1919 o - Ap 15 2s 1 S +R O 1944 o - Ap 3 2s 1 S +R O 1944 o - O 4 2 0 - +R O 1945 o - Ap 29 0 1 S +R O 1945 o - N 1 0 0 - +R O 1946 o - Ap 14 0s 1 S +R O 1946 o - O 7 2s 0 - +R O 1947 o - May 4 2s 1 S +R O 1947 1949 - O Su>=1 2s 0 - +R O 1948 o - Ap 18 2s 1 S +R O 1949 o - Ap 10 2s 1 S +R O 1957 o - Jun 2 1s 1 S +R O 1957 1958 - S lastSu 1s 0 - +R O 1958 o - Mar 30 1s 1 S +R O 1959 o - May 31 1s 1 S +R O 1959 1961 - O Su>=1 1s 0 - +R O 1960 o - Ap 3 1s 1 S +R O 1961 1964 - May lastSu 1s 1 S +R O 1962 1964 - S lastSu 1s 0 - +R p 1916 o - Jun 17 23 1 S +R p 1916 o - N 1 1 0 - +R p 1917 1921 - Mar 1 0 1 S +R p 1917 1921 - O 14 24 0 - +R p 1924 o - Ap 16 23s 1 S +R p 1924 o - O 4 23s 0 - +R p 1926 o - Ap 17 23s 1 S +R p 1926 1929 - O Sa>=1 23s 0 - +R p 1927 o - Ap 9 23s 1 S +R p 1928 o - Ap 14 23s 1 S +R p 1929 o - Ap 20 23s 1 S +R p 1931 o - Ap 18 23s 1 S +R p 1931 1932 - O Sa>=1 23s 0 - +R p 1932 o - Ap 2 23s 1 S +R p 1934 o - Ap 7 23s 1 S +R p 1934 1938 - O Sa>=1 23s 0 - +R p 1935 o - Mar 30 23s 1 S +R p 1936 o - Ap 18 23s 1 S +R p 1937 o - Ap 3 23s 1 S +R p 1938 o - Mar 26 23s 1 S +R p 1939 o - Ap 15 23s 1 S +R p 1939 o - N 18 23s 0 - +R p 1940 o - F 24 23s 1 S +R p 1940 o - O 7 23s 0 - +R p 1941 o - Ap 5 23s 1 S +R p 1941 o - O 5 23s 0 - +R p 1942 1945 - Mar Sa>=8 23s 1 S +R p 1942 o - Ap 25 22s 2 M +R p 1942 o - Au 15 22s 1 S +R p 1942 1945 - O Sa>=24 23s 0 - +R p 1943 o - Ap 17 22s 2 M +R p 1943 1945 - Au Sa>=25 22s 1 S +R p 1944 1945 - Ap Sa>=21 22s 2 M +R p 1946 o - Ap Sa>=1 23s 1 S +R p 1946 o - O Sa>=1 23s 0 - +R p 1947 1966 - Ap Su>=1 2s 1 S +R p 1947 1965 - O Su>=1 2s 0 - +R p 1976 o - S lastSu 1 0 - +R p 1977 o - Mar lastSu 0s 1 S +R p 1977 o - S lastSu 0s 0 - +R p 1978 1980 - Ap Su>=1 1s 1 S +R p 1978 o - O 1 1s 0 - +R p 1979 1980 - S lastSu 1s 0 - +R p 1981 1986 - Mar lastSu 0s 1 S +R p 1981 1985 - S lastSu 0s 0 - +R z 1932 o - May 21 0s 1 S +R z 1932 1939 - O Su>=1 0s 0 - +R z 1933 1939 - Ap Su>=2 0s 1 S +R z 1979 o - May 27 0 1 S +R z 1979 o - S lastSu 0 0 - +R z 1980 o - Ap 5 23 1 S +R z 1980 o - S lastSu 1 0 - +R z 1991 1993 - Mar lastSu 0s 1 S +R z 1991 1993 - S lastSu 0s 0 - +R s 1918 o - Ap 15 23 1 S +R s 1918 1919 - O 6 24s 0 - +R s 1919 o - Ap 6 23 1 S +R s 1924 o - Ap 16 23 1 S +R s 1924 o - O 4 24s 0 - +R s 1926 o - Ap 17 23 1 S +R s 1926 1929 - O Sa>=1 24s 0 - +R s 1927 o - Ap 9 23 1 S +R s 1928 o - Ap 15 0 1 S +R s 1929 o - Ap 20 23 1 S +R s 1937 o - Jun 16 23 1 S +R s 1937 o - O 2 24s 0 - +R s 1938 o - Ap 2 23 1 S +R s 1938 o - Ap 30 23 2 M +R s 1938 o - O 2 24 1 S +R s 1939 o - O 7 24s 0 - +R s 1942 o - May 2 23 1 S +R s 1942 o - S 1 1 0 - +R s 1943 1946 - Ap Sa>=13 23 1 S +R s 1943 1944 - O Su>=1 1 0 - +R s 1945 1946 - S lastSu 1 0 - +R s 1949 o - Ap 30 23 1 S +R s 1949 o - O 2 1 0 - +R s 1974 1975 - Ap Sa>=12 23 1 S +R s 1974 1975 - O Su>=1 1 0 - +R s 1976 o - Mar 27 23 1 S +R s 1976 1977 - S lastSu 1 0 - +R s 1977 o - Ap 2 23 1 S +R s 1978 o - Ap 2 2s 1 S +R s 1978 o - O 1 2s 0 - +R Sp 1967 o - Jun 3 12 1 S +R Sp 1967 o - O 1 0 0 - +R Sp 1974 o - Jun 24 0 1 S +R Sp 1974 o - S 1 0 0 - +R Sp 1976 1977 - May 1 0 1 S +R Sp 1976 o - Au 1 0 0 - +R Sp 1977 o - S 28 0 0 - +R Sp 1978 o - Jun 1 0 1 S +R Sp 1978 o - Au 4 0 0 - +R CH 1941 1942 - May M>=1 1 1 S +R CH 1941 1942 - O M>=1 2 0 - +R T 1916 o - May 1 0 1 S +R T 1916 o - O 1 0 0 - +R T 1920 o - Mar 28 0 1 S +R T 1920 o - O 25 0 0 - +R T 1921 o - Ap 3 0 1 S +R T 1921 o - O 3 0 0 - +R T 1922 o - Mar 26 0 1 S +R T 1922 o - O 8 0 0 - +R T 1924 o - May 13 0 1 S +R T 1924 1925 - O 1 0 0 - +R T 1925 o - May 1 0 1 S +R T 1940 o - Jul 1 0 1 S +R T 1940 o - O 6 0 0 - +R T 1940 o - D 1 0 1 S +R T 1941 o - S 21 0 0 - +R T 1942 o - Ap 1 0 1 S +R T 1945 o - O 8 0 0 - +R T 1946 o - Jun 1 0 1 S +R T 1946 o - O 1 0 0 - +R T 1947 1948 - Ap Su>=16 0 1 S +R T 1947 1951 - O Su>=2 0 0 - +R T 1949 o - Ap 10 0 1 S +R T 1950 o - Ap 16 0 1 S +R T 1951 o - Ap 22 0 1 S +R T 1962 o - Jul 15 0 1 S +R T 1963 o - O 30 0 0 - +R T 1964 o - May 15 0 1 S +R T 1964 o - O 1 0 0 - +R T 1973 o - Jun 3 1 1 S +R T 1973 1976 - O Su>=31 2 0 - +R T 1974 o - Mar 31 2 1 S +R T 1975 o - Mar 22 2 1 S +R T 1976 o - Mar 21 2 1 S +R T 1977 1978 - Ap Su>=1 2 1 S +R T 1977 1978 - O Su>=15 2 0 - +R T 1978 o - Jun 29 0 0 - +R T 1983 o - Jul 31 2 1 S +R T 1983 o - O 2 2 0 - +R T 1985 o - Ap 20 1s 1 S +R T 1985 o - S 28 1s 0 - +R T 1986 1993 - Mar lastSu 1s 1 S +R T 1986 1995 - S lastSu 1s 0 - +R T 1994 o - Mar 20 1s 1 S +R T 1995 2006 - Mar lastSu 1s 1 S +R T 1996 2006 - O lastSu 1s 0 - +R u 1918 1919 - Mar lastSu 2 1 D +R u 1918 1919 - O lastSu 2 0 S +R u 1942 o - F 9 2 1 W +R u 1945 o - Au 14 23u 1 P +R u 1945 o - S 30 2 0 S +R u 1967 2006 - O lastSu 2 0 S +R u 1967 1973 - Ap lastSu 2 1 D +R u 1974 o - Ja 6 2 1 D +R u 1975 o - F lastSu 2 1 D +R u 1976 1986 - Ap lastSu 2 1 D +R u 1987 2006 - Ap Su>=1 2 1 D +R u 2007 ma - Mar Su>=8 2 1 D +R u 2007 ma - N Su>=1 2 0 S +R NY 1920 o - Mar lastSu 2 1 D +R NY 1920 o - O lastSu 2 0 S +R NY 1921 1966 - Ap lastSu 2 1 D +R NY 1921 1954 - S lastSu 2 0 S +R NY 1955 1966 - O lastSu 2 0 S +R Ch 1920 o - Jun 13 2 1 D +R Ch 1920 1921 - O lastSu 2 0 S +R Ch 1921 o - Mar lastSu 2 1 D +R Ch 1922 1966 - Ap lastSu 2 1 D +R Ch 1922 1954 - S lastSu 2 0 S +R Ch 1955 1966 - O lastSu 2 0 S +R De 1920 1921 - Mar lastSu 2 1 D +R De 1920 o - O lastSu 2 0 S +R De 1921 o - May 22 2 0 S +R De 1965 1966 - Ap lastSu 2 1 D +R De 1965 1966 - O lastSu 2 0 S +R CA 1948 o - Mar 14 2:1 1 D +R CA 1949 o - Ja 1 2 0 S +R CA 1950 1966 - Ap lastSu 1 1 D +R CA 1950 1961 - S lastSu 2 0 S +R CA 1962 1966 - O lastSu 2 0 S +R In 1941 o - Jun 22 2 1 D +R In 1941 1954 - S lastSu 2 0 S +R In 1946 1954 - Ap lastSu 2 1 D +R Ma 1951 o - Ap lastSu 2 1 D +R Ma 1951 o - S lastSu 2 0 S +R Ma 1954 1960 - Ap lastSu 2 1 D +R Ma 1954 1960 - S lastSu 2 0 S +R V 1946 o - Ap lastSu 2 1 D +R V 1946 o - S lastSu 2 0 S +R V 1953 1954 - Ap lastSu 2 1 D +R V 1953 1959 - S lastSu 2 0 S +R V 1955 o - May 1 0 1 D +R V 1956 1963 - Ap lastSu 2 1 D +R V 1960 o - O lastSu 2 0 S +R V 1961 o - S lastSu 2 0 S +R V 1962 1963 - O lastSu 2 0 S +R Pe 1955 o - May 1 0 1 D +R Pe 1955 1960 - S lastSu 2 0 S +R Pe 1956 1963 - Ap lastSu 2 1 D +R Pe 1961 1963 - O lastSu 2 0 S +R Pi 1955 o - May 1 0 1 D +R Pi 1955 1960 - S lastSu 2 0 S +R Pi 1956 1964 - Ap lastSu 2 1 D +R Pi 1961 1964 - O lastSu 2 0 S +R St 1947 1961 - Ap lastSu 2 1 D +R St 1947 1954 - S lastSu 2 0 S +R St 1955 1956 - O lastSu 2 0 S +R St 1957 1958 - S lastSu 2 0 S +R St 1959 1961 - O lastSu 2 0 S +R Pu 1946 1960 - Ap lastSu 2 1 D +R Pu 1946 1954 - S lastSu 2 0 S +R Pu 1955 1956 - O lastSu 2 0 S +R Pu 1957 1960 - S lastSu 2 0 S +R v 1921 o - May 1 2 1 D +R v 1921 o - S 1 2 0 S +R v 1941 o - Ap lastSu 2 1 D +R v 1941 o - S lastSu 2 0 S +R v 1946 o - Ap lastSu 0:1 1 D +R v 1946 o - Jun 2 2 0 S +R v 1950 1961 - Ap lastSu 2 1 D +R v 1950 1955 - S lastSu 2 0 S +R v 1956 1961 - O lastSu 2 0 S +R Dt 1948 o - Ap lastSu 2 1 D +R Dt 1948 o - S lastSu 2 0 S +R Me 1946 o - Ap lastSu 2 1 D +R Me 1946 o - S lastSu 2 0 S +R Me 1966 o - Ap lastSu 2 1 D +R Me 1966 o - O lastSu 2 0 S +R C 1918 o - Ap 14 2 1 D +R C 1918 o - O 27 2 0 S +R C 1942 o - F 9 2 1 W +R C 1945 o - Au 14 23u 1 P +R C 1945 o - S 30 2 0 S +R C 1974 1986 - Ap lastSu 2 1 D +R C 1974 2006 - O lastSu 2 0 S +R C 1987 2006 - Ap Su>=1 2 1 D +R C 2007 ma - Mar Su>=8 2 1 D +R C 2007 ma - N Su>=1 2 0 S +R j 1917 o - Ap 8 2 1 D +R j 1917 o - S 17 2 0 S +R j 1919 o - May 5 23 1 D +R j 1919 o - Au 12 23 0 S +R j 1920 1935 - May Su>=1 23 1 D +R j 1920 1935 - O lastSu 23 0 S +R j 1936 1941 - May M>=9 0 1 D +R j 1936 1941 - O M>=2 0 0 S +R j 1946 1950 - May Su>=8 2 1 D +R j 1946 1950 - O Su>=2 2 0 S +R j 1951 1986 - Ap lastSu 2 1 D +R j 1951 1959 - S lastSu 2 0 S +R j 1960 1986 - O lastSu 2 0 S +R j 1987 o - Ap Su>=1 0:1 1 D +R j 1987 2006 - O lastSu 0:1 0 S +R j 1988 o - Ap Su>=1 0:1 2 DD +R j 1989 2006 - Ap Su>=1 0:1 1 D +R j 2007 2011 - Mar Su>=8 0:1 1 D +R j 2007 2010 - N Su>=1 0:1 0 S +R H 1916 o - Ap 1 0 1 D +R H 1916 o - O 1 0 0 S +R H 1920 o - May 9 0 1 D +R H 1920 o - Au 29 0 0 S +R H 1921 o - May 6 0 1 D +R H 1921 1922 - S 5 0 0 S +R H 1922 o - Ap 30 0 1 D +R H 1923 1925 - May Su>=1 0 1 D +R H 1923 o - S 4 0 0 S +R H 1924 o - S 15 0 0 S +R H 1925 o - S 28 0 0 S +R H 1926 o - May 16 0 1 D +R H 1926 o - S 13 0 0 S +R H 1927 o - May 1 0 1 D +R H 1927 o - S 26 0 0 S +R H 1928 1931 - May Su>=8 0 1 D +R H 1928 o - S 9 0 0 S +R H 1929 o - S 3 0 0 S +R H 1930 o - S 15 0 0 S +R H 1931 1932 - S M>=24 0 0 S +R H 1932 o - May 1 0 1 D +R H 1933 o - Ap 30 0 1 D +R H 1933 o - O 2 0 0 S +R H 1934 o - May 20 0 1 D +R H 1934 o - S 16 0 0 S +R H 1935 o - Jun 2 0 1 D +R H 1935 o - S 30 0 0 S +R H 1936 o - Jun 1 0 1 D +R H 1936 o - S 14 0 0 S +R H 1937 1938 - May Su>=1 0 1 D +R H 1937 1941 - S M>=24 0 0 S +R H 1939 o - May 28 0 1 D +R H 1940 1941 - May Su>=1 0 1 D +R H 1946 1949 - Ap lastSu 2 1 D +R H 1946 1949 - S lastSu 2 0 S +R H 1951 1954 - Ap lastSu 2 1 D +R H 1951 1954 - S lastSu 2 0 S +R H 1956 1959 - Ap lastSu 2 1 D +R H 1956 1959 - S lastSu 2 0 S +R H 1962 1973 - Ap lastSu 2 1 D +R H 1962 1973 - O lastSu 2 0 S +R o 1933 1935 - Jun Su>=8 1 1 D +R o 1933 1935 - S Su>=8 1 0 S +R o 1936 1938 - Jun Su>=1 1 1 D +R o 1936 1938 - S Su>=1 1 0 S +R o 1939 o - May 27 1 1 D +R o 1939 1941 - S Sa>=21 1 0 S +R o 1940 o - May 19 1 1 D +R o 1941 o - May 4 1 1 D +R o 1946 1972 - Ap lastSu 2 1 D +R o 1946 1956 - S lastSu 2 0 S +R o 1957 1972 - O lastSu 2 0 S +R o 1993 2006 - Ap Su>=1 0:1 1 D +R o 1993 2006 - O lastSu 0:1 0 S +R t 1919 o - Mar 30 23:30 1 D +R t 1919 o - O 26 0 0 S +R t 1920 o - May 2 2 1 D +R t 1920 o - S 26 0 0 S +R t 1921 o - May 15 2 1 D +R t 1921 o - S 15 2 0 S +R t 1922 1923 - May Su>=8 2 1 D +R t 1922 1926 - S Su>=15 2 0 S +R t 1924 1927 - May Su>=1 2 1 D +R t 1927 1937 - S Su>=25 2 0 S +R t 1928 1937 - Ap Su>=25 2 1 D +R t 1938 1940 - Ap lastSu 2 1 D +R t 1938 1939 - S lastSu 2 0 S +R t 1945 1948 - S lastSu 2 0 S +R t 1946 1973 - Ap lastSu 2 1 D +R t 1949 1950 - N lastSu 2 0 S +R t 1951 1956 - S lastSu 2 0 S +R t 1957 1973 - O lastSu 2 0 S +R W 1916 o - Ap 23 0 1 D +R W 1916 o - S 17 0 0 S +R W 1918 o - Ap 14 2 1 D +R W 1918 o - O 27 2 0 S +R W 1937 o - May 16 2 1 D +R W 1937 o - S 26 2 0 S +R W 1942 o - F 9 2 1 W +R W 1945 o - Au 14 23u 1 P +R W 1945 o - S lastSu 2 0 S +R W 1946 o - May 12 2 1 D +R W 1946 o - O 13 2 0 S +R W 1947 1949 - Ap lastSu 2 1 D +R W 1947 1949 - S lastSu 2 0 S +R W 1950 o - May 1 2 1 D +R W 1950 o - S 30 2 0 S +R W 1951 1960 - Ap lastSu 2 1 D +R W 1951 1958 - S lastSu 2 0 S +R W 1959 o - O lastSu 2 0 S +R W 1960 o - S lastSu 2 0 S +R W 1963 o - Ap lastSu 2 1 D +R W 1963 o - S 22 2 0 S +R W 1966 1986 - Ap lastSu 2s 1 D +R W 1966 2005 - O lastSu 2s 0 S +R W 1987 2005 - Ap Su>=1 2s 1 D +R r 1918 o - Ap 14 2 1 D +R r 1918 o - O 27 2 0 S +R r 1930 1934 - May Su>=1 0 1 D +R r 1930 1934 - O Su>=1 0 0 S +R r 1937 1941 - Ap Su>=8 0 1 D +R r 1937 o - O Su>=8 0 0 S +R r 1938 o - O Su>=1 0 0 S +R r 1939 1941 - O Su>=8 0 0 S +R r 1942 o - F 9 2 1 W +R r 1945 o - Au 14 23u 1 P +R r 1945 o - S lastSu 2 0 S +R r 1946 o - Ap Su>=8 2 1 D +R r 1946 o - O Su>=8 2 0 S +R r 1947 1957 - Ap lastSu 2 1 D +R r 1947 1957 - S lastSu 2 0 S +R r 1959 o - Ap lastSu 2 1 D +R r 1959 o - O lastSu 2 0 S +R Sw 1957 o - Ap lastSu 2 1 D +R Sw 1957 o - O lastSu 2 0 S +R Sw 1959 1961 - Ap lastSu 2 1 D +R Sw 1959 o - O lastSu 2 0 S +R Sw 1960 1961 - S lastSu 2 0 S +R Ed 1918 1919 - Ap Su>=8 2 1 D +R Ed 1918 o - O 27 2 0 S +R Ed 1919 o - May 27 2 0 S +R Ed 1920 1923 - Ap lastSu 2 1 D +R Ed 1920 o - O lastSu 2 0 S +R Ed 1921 1923 - S lastSu 2 0 S +R Ed 1942 o - F 9 2 1 W +R Ed 1945 o - Au 14 23u 1 P +R Ed 1945 o - S lastSu 2 0 S +R Ed 1947 o - Ap lastSu 2 1 D +R Ed 1947 o - S lastSu 2 0 S +R Ed 1972 1986 - Ap lastSu 2 1 D +R Ed 1972 2006 - O lastSu 2 0 S +R Va 1918 o - Ap 14 2 1 D +R Va 1918 o - O 27 2 0 S +R Va 1942 o - F 9 2 1 W +R Va 1945 o - Au 14 23u 1 P +R Va 1945 o - S 30 2 0 S +R Va 1946 1986 - Ap lastSu 2 1 D +R Va 1946 o - S 29 2 0 S +R Va 1947 1961 - S lastSu 2 0 S +R Va 1962 2006 - O lastSu 2 0 S +R Y 1918 o - Ap 14 2 1 D +R Y 1918 o - O 27 2 0 S +R Y 1919 o - May 25 2 1 D +R Y 1919 o - N 1 0 0 S +R Y 1942 o - F 9 2 1 W +R Y 1945 o - Au 14 23u 1 P +R Y 1945 o - S 30 2 0 S +R Y 1972 1986 - Ap lastSu 2 1 D +R Y 1972 2006 - O lastSu 2 0 S +R Y 1987 2006 - Ap Su>=1 2 1 D +R Yu 1965 o - Ap lastSu 0 2 DD +R Yu 1965 o - O lastSu 2 0 S +R m 1931 o - Ap 30 0 1 D +R m 1931 o - O 1 0 0 S +R m 1939 o - F 5 0 1 D +R m 1939 o - Jun 25 0 0 S +R m 1940 o - D 9 0 1 D +R m 1941 o - Ap 1 0 0 S +R m 1943 o - D 16 0 1 W +R m 1944 o - May 1 0 0 S +R m 1950 o - F 12 0 1 D +R m 1950 o - Jul 30 0 0 S +R m 1996 2000 - Ap Su>=1 2 1 D +R m 1996 2000 - O lastSu 2 0 S +R m 2001 o - May Su>=1 2 1 D +R m 2001 o - S lastSu 2 0 S +R m 2002 2022 - Ap Su>=1 2 1 D +R m 2002 2022 - O lastSu 2 0 S +R BB 1942 o - Ap 19 5u 1 D +R BB 1942 o - Au 31 6u 0 S +R BB 1943 o - May 2 5u 1 D +R BB 1943 o - S 5 6u 0 S +R BB 1944 o - Ap 10 5u 0:30 - +R BB 1944 o - S 10 6u 0 S +R BB 1977 o - Jun 12 2 1 D +R BB 1977 1978 - O Su>=1 2 0 S +R BB 1978 1980 - Ap Su>=15 2 1 D +R BB 1979 o - S 30 2 0 S +R BB 1980 o - S 25 2 0 S +R BZ 1918 1941 - O Sa>=1 24 0:30 -0530 +R BZ 1919 1942 - F Sa>=8 24 0 CST +R BZ 1942 o - Jun 27 24 1 CWT +R BZ 1945 o - Au 14 23u 1 CPT +R BZ 1945 o - D 15 24 0 CST +R BZ 1947 1967 - O Sa>=1 24 0:30 -0530 +R BZ 1948 1968 - F Sa>=8 24 0 CST +R BZ 1973 o - D 5 0 1 CDT +R BZ 1974 o - F 9 0 0 CST +R BZ 1982 o - D 18 0 1 CDT +R BZ 1983 o - F 12 0 0 CST +R Be 1917 o - Ap 5 24 1 - +R Be 1917 o - S 30 24 0 - +R Be 1918 o - Ap 13 24 1 - +R Be 1918 o - S 15 24 0 S +R Be 1942 o - Ja 11 2 1 D +R Be 1942 o - O 18 2 0 S +R Be 1943 o - Mar 21 2 1 D +R Be 1943 o - O 31 2 0 S +R Be 1944 1945 - Mar Su>=8 2 1 D +R Be 1944 1945 - N Su>=1 2 0 S +R Be 1947 o - May Su>=15 2 1 D +R Be 1947 o - S Su>=8 2 0 S +R Be 1948 1952 - May Su>=22 2 1 D +R Be 1948 1952 - S Su>=1 2 0 S +R Be 1956 o - May Su>=22 2 1 D +R Be 1956 o - O lastSu 2 0 S +R CR 1979 1980 - F lastSu 0 1 D +R CR 1979 1980 - Jun Su>=1 0 0 S +R CR 1991 1992 - Ja Sa>=15 0 1 D +R CR 1991 o - Jul 1 0 0 S +R CR 1992 o - Mar 15 0 0 S +R Q 1928 o - Jun 10 0 1 D +R Q 1928 o - O 10 0 0 S +R Q 1940 1942 - Jun Su>=1 0 1 D +R Q 1940 1942 - S Su>=1 0 0 S +R Q 1945 1946 - Jun Su>=1 0 1 D +R Q 1945 1946 - S Su>=1 0 0 S +R Q 1965 o - Jun 1 0 1 D +R Q 1965 o - S 30 0 0 S +R Q 1966 o - May 29 0 1 D +R Q 1966 o - O 2 0 0 S +R Q 1967 o - Ap 8 0 1 D +R Q 1967 1968 - S Su>=8 0 0 S +R Q 1968 o - Ap 14 0 1 D +R Q 1969 1977 - Ap lastSu 0 1 D +R Q 1969 1971 - O lastSu 0 0 S +R Q 1972 1974 - O 8 0 0 S +R Q 1975 1977 - O lastSu 0 0 S +R Q 1978 o - May 7 0 1 D +R Q 1978 1990 - O Su>=8 0 0 S +R Q 1979 1980 - Mar Su>=15 0 1 D +R Q 1981 1985 - May Su>=5 0 1 D +R Q 1986 1989 - Mar Su>=14 0 1 D +R Q 1990 1997 - Ap Su>=1 0 1 D +R Q 1991 1995 - O Su>=8 0s 0 S +R Q 1996 o - O 6 0s 0 S +R Q 1997 o - O 12 0s 0 S +R Q 1998 1999 - Mar lastSu 0s 1 D +R Q 1998 2003 - O lastSu 0s 0 S +R Q 2000 2003 - Ap Su>=1 0s 1 D +R Q 2004 o - Mar lastSu 0s 1 D +R Q 2006 2010 - O lastSu 0s 0 S +R Q 2007 o - Mar Su>=8 0s 1 D +R Q 2008 o - Mar Su>=15 0s 1 D +R Q 2009 2010 - Mar Su>=8 0s 1 D +R Q 2011 o - Mar Su>=15 0s 1 D +R Q 2011 o - N 13 0s 0 S +R Q 2012 o - Ap 1 0s 1 D +R Q 2012 ma - N Su>=1 0s 0 S +R Q 2013 ma - Mar Su>=8 0s 1 D +R DO 1966 o - O 30 0 1 EDT +R DO 1967 o - F 28 0 0 EST +R DO 1969 1973 - O lastSu 0 0:30 -0430 +R DO 1970 o - F 21 0 0 EST +R DO 1971 o - Ja 20 0 0 EST +R DO 1972 1974 - Ja 21 0 0 EST +R SV 1987 1988 - May Su>=1 0 1 D +R SV 1987 1988 - S lastSu 0 0 S +R GT 1973 o - N 25 0 1 D +R GT 1974 o - F 24 0 0 S +R GT 1983 o - May 21 0 1 D +R GT 1983 o - S 22 0 0 S +R GT 1991 o - Mar 23 0 1 D +R GT 1991 o - S 7 0 0 S +R GT 2006 o - Ap 30 0 1 D +R GT 2006 o - O 1 0 0 S +R HT 1983 o - May 8 0 1 D +R HT 1984 1987 - Ap lastSu 0 1 D +R HT 1983 1987 - O lastSu 0 0 S +R HT 1988 1997 - Ap Su>=1 1s 1 D +R HT 1988 1997 - O lastSu 1s 0 S +R HT 2005 2006 - Ap Su>=1 0 1 D +R HT 2005 2006 - O lastSu 0 0 S +R HT 2012 2015 - Mar Su>=8 2 1 D +R HT 2012 2015 - N Su>=1 2 0 S +R HT 2017 ma - Mar Su>=8 2 1 D +R HT 2017 ma - N Su>=1 2 0 S +R HN 1987 1988 - May Su>=1 0 1 D +R HN 1987 1988 - S lastSu 0 0 S +R HN 2006 o - May Su>=1 0 1 D +R HN 2006 o - Au M>=1 0 0 S +R NI 1979 1980 - Mar Su>=16 0 1 D +R NI 1979 1980 - Jun M>=23 0 0 S +R NI 2005 o - Ap 10 0 1 D +R NI 2005 o - O Su>=1 0 0 S +R NI 2006 o - Ap 30 2 1 D +R NI 2006 o - O Su>=1 1 0 S +R A 1930 o - D 1 0 1 - +R A 1931 o - Ap 1 0 0 - +R A 1931 o - O 15 0 1 - +R A 1932 1940 - Mar 1 0 0 - +R A 1932 1939 - N 1 0 1 - +R A 1940 o - Jul 1 0 1 - +R A 1941 o - Jun 15 0 0 - +R A 1941 o - O 15 0 1 - +R A 1943 o - Au 1 0 0 - +R A 1943 o - O 15 0 1 - +R A 1946 o - Mar 1 0 0 - +R A 1946 o - O 1 0 1 - +R A 1963 o - O 1 0 0 - +R A 1963 o - D 15 0 1 - +R A 1964 1966 - Mar 1 0 0 - +R A 1964 1966 - O 15 0 1 - +R A 1967 o - Ap 2 0 0 - +R A 1967 1968 - O Su>=1 0 1 - +R A 1968 1969 - Ap Su>=1 0 0 - +R A 1974 o - Ja 23 0 1 - +R A 1974 o - May 1 0 0 - +R A 1988 o - D 1 0 1 - +R A 1989 1993 - Mar Su>=1 0 0 - +R A 1989 1992 - O Su>=15 0 1 - +R A 1999 o - O Su>=1 0 1 - +R A 2000 o - Mar 3 0 0 - +R A 2007 o - D 30 0 1 - +R A 2008 2009 - Mar Su>=15 0 0 - +R A 2008 o - O Su>=15 0 1 - +R Sa 2008 2009 - Mar Su>=8 0 0 - +R Sa 2007 2008 - O Su>=8 0 1 - +R B 1931 o - O 3 11 1 - +R B 1932 1933 - Ap 1 0 0 - +R B 1932 o - O 3 0 1 - +R B 1949 1952 - D 1 0 1 - +R B 1950 o - Ap 16 1 0 - +R B 1951 1952 - Ap 1 0 0 - +R B 1953 o - Mar 1 0 0 - +R B 1963 o - D 9 0 1 - +R B 1964 o - Mar 1 0 0 - +R B 1965 o - Ja 31 0 1 - +R B 1965 o - Mar 31 0 0 - +R B 1965 o - D 1 0 1 - +R B 1966 1968 - Mar 1 0 0 - +R B 1966 1967 - N 1 0 1 - +R B 1985 o - N 2 0 1 - +R B 1986 o - Mar 15 0 0 - +R B 1986 o - O 25 0 1 - +R B 1987 o - F 14 0 0 - +R B 1987 o - O 25 0 1 - +R B 1988 o - F 7 0 0 - +R B 1988 o - O 16 0 1 - +R B 1989 o - Ja 29 0 0 - +R B 1989 o - O 15 0 1 - +R B 1990 o - F 11 0 0 - +R B 1990 o - O 21 0 1 - +R B 1991 o - F 17 0 0 - +R B 1991 o - O 20 0 1 - +R B 1992 o - F 9 0 0 - +R B 1992 o - O 25 0 1 - +R B 1993 o - Ja 31 0 0 - +R B 1993 1995 - O Su>=11 0 1 - +R B 1994 1995 - F Su>=15 0 0 - +R B 1996 o - F 11 0 0 - +R B 1996 o - O 6 0 1 - +R B 1997 o - F 16 0 0 - +R B 1997 o - O 6 0 1 - +R B 1998 o - Mar 1 0 0 - +R B 1998 o - O 11 0 1 - +R B 1999 o - F 21 0 0 - +R B 1999 o - O 3 0 1 - +R B 2000 o - F 27 0 0 - +R B 2000 2001 - O Su>=8 0 1 - +R B 2001 2006 - F Su>=15 0 0 - +R B 2002 o - N 3 0 1 - +R B 2003 o - O 19 0 1 - +R B 2004 o - N 2 0 1 - +R B 2005 o - O 16 0 1 - +R B 2006 o - N 5 0 1 - +R B 2007 o - F 25 0 0 - +R B 2007 o - O Su>=8 0 1 - +R B 2008 2017 - O Su>=15 0 1 - +R B 2008 2011 - F Su>=15 0 0 - +R B 2012 o - F Su>=22 0 0 - +R B 2013 2014 - F Su>=15 0 0 - +R B 2015 o - F Su>=22 0 0 - +R B 2016 2019 - F Su>=15 0 0 - +R B 2018 o - N Su>=1 0 1 - +R x 1927 1931 - S 1 0 1 - +R x 1928 1932 - Ap 1 0 0 - +R x 1968 o - N 3 4u 1 - +R x 1969 o - Mar 30 3u 0 - +R x 1969 o - N 23 4u 1 - +R x 1970 o - Mar 29 3u 0 - +R x 1971 o - Mar 14 3u 0 - +R x 1970 1972 - O Su>=9 4u 1 - +R x 1972 1986 - Mar Su>=9 3u 0 - +R x 1973 o - S 30 4u 1 - +R x 1974 1987 - O Su>=9 4u 1 - +R x 1987 o - Ap 12 3u 0 - +R x 1988 1990 - Mar Su>=9 3u 0 - +R x 1988 1989 - O Su>=9 4u 1 - +R x 1990 o - S 16 4u 1 - +R x 1991 1996 - Mar Su>=9 3u 0 - +R x 1991 1997 - O Su>=9 4u 1 - +R x 1997 o - Mar 30 3u 0 - +R x 1998 o - Mar Su>=9 3u 0 - +R x 1998 o - S 27 4u 1 - +R x 1999 o - Ap 4 3u 0 - +R x 1999 2010 - O Su>=9 4u 1 - +R x 2000 2007 - Mar Su>=9 3u 0 - +R x 2008 o - Mar 30 3u 0 - +R x 2009 o - Mar Su>=9 3u 0 - +R x 2010 o - Ap Su>=1 3u 0 - +R x 2011 o - May Su>=2 3u 0 - +R x 2011 o - Au Su>=16 4u 1 - +R x 2012 2014 - Ap Su>=23 3u 0 - +R x 2012 2014 - S Su>=2 4u 1 - +R x 2016 2018 - May Su>=9 3u 0 - +R x 2016 2018 - Au Su>=9 4u 1 - +R x 2019 ma - Ap Su>=2 3u 0 - +R x 2019 2021 - S Su>=2 4u 1 - +R x 2022 o - S Su>=9 4u 1 - +R x 2023 ma - S Su>=2 4u 1 - +R CO 1992 o - May 2 0 1 - +R CO 1993 o - F 6 24 0 - +R EC 1992 o - N 28 0 1 - +R EC 1993 o - F 5 0 0 - +R FK 1937 1938 - S lastSu 0 1 - +R FK 1938 1942 - Mar Su>=19 0 0 - +R FK 1939 o - O 1 0 1 - +R FK 1940 1942 - S lastSu 0 1 - +R FK 1943 o - Ja 1 0 0 - +R FK 1983 o - S lastSu 0 1 - +R FK 1984 1985 - Ap lastSu 0 0 - +R FK 1984 o - S 16 0 1 - +R FK 1985 2000 - S Su>=9 0 1 - +R FK 1986 2000 - Ap Su>=16 0 0 - +R FK 2001 2010 - Ap Su>=15 2 0 - +R FK 2001 2010 - S Su>=1 2 1 - +R y 1975 1988 - O 1 0 1 - +R y 1975 1978 - Mar 1 0 0 - +R y 1979 1991 - Ap 1 0 0 - +R y 1989 o - O 22 0 1 - +R y 1990 o - O 1 0 1 - +R y 1991 o - O 6 0 1 - +R y 1992 o - Mar 1 0 0 - +R y 1992 o - O 5 0 1 - +R y 1993 o - Mar 31 0 0 - +R y 1993 1995 - O 1 0 1 - +R y 1994 1995 - F lastSu 0 0 - +R y 1996 o - Mar 1 0 0 - +R y 1996 2001 - O Su>=1 0 1 - +R y 1997 o - F lastSu 0 0 - +R y 1998 2001 - Mar Su>=1 0 0 - +R y 2002 2004 - Ap Su>=1 0 0 - +R y 2002 2003 - S Su>=1 0 1 - +R y 2004 2009 - O Su>=15 0 1 - +R y 2005 2009 - Mar Su>=8 0 0 - +R y 2010 2024 - O Su>=1 0 1 - +R y 2010 2012 - Ap Su>=8 0 0 - +R y 2013 2024 - Mar Su>=22 0 0 - +R PE 1938 o - Ja 1 0 1 - +R PE 1938 o - Ap 1 0 0 - +R PE 1938 1939 - S lastSu 0 1 - +R PE 1939 1940 - Mar Su>=24 0 0 - +R PE 1986 1987 - Ja 1 0 1 - +R PE 1986 1987 - Ap 1 0 0 - +R PE 1990 o - Ja 1 0 1 - +R PE 1990 o - Ap 1 0 0 - +R PE 1994 o - Ja 1 0 1 - +R PE 1994 o - Ap 1 0 0 - +R U 1923 1925 - O 1 0 0:30 - +R U 1924 1926 - Ap 1 0 0 - +R U 1933 1938 - O lastSu 0 0:30 - +R U 1934 1941 - Mar lastSa 24 0 - +R U 1939 o - O 1 0 0:30 - +R U 1940 o - O 27 0 0:30 - +R U 1941 o - Au 1 0 0:30 - +R U 1942 o - D 14 0 0:30 - +R U 1943 o - Mar 14 0 0 - +R U 1959 o - May 24 0 0:30 - +R U 1959 o - N 15 0 0 - +R U 1960 o - Ja 17 0 1 - +R U 1960 o - Mar 6 0 0 - +R U 1965 o - Ap 4 0 1 - +R U 1965 o - S 26 0 0 - +R U 1968 o - May 27 0 0:30 - +R U 1968 o - D 1 0 0 - +R U 1970 o - Ap 25 0 1 - +R U 1970 o - Jun 14 0 0 - +R U 1972 o - Ap 23 0 1 - +R U 1972 o - Jul 16 0 0 - +R U 1974 o - Ja 13 0 1:30 - +R U 1974 o - Mar 10 0 0:30 - +R U 1974 o - S 1 0 0 - +R U 1974 o - D 22 0 1 - +R U 1975 o - Mar 30 0 0 - +R U 1976 o - D 19 0 1 - +R U 1977 o - Mar 6 0 0 - +R U 1977 o - D 4 0 1 - +R U 1978 1979 - Mar Su>=1 0 0 - +R U 1978 o - D 17 0 1 - +R U 1979 o - Ap 29 0 1 - +R U 1980 o - Mar 16 0 0 - +R U 1987 o - D 14 0 1 - +R U 1988 o - F 28 0 0 - +R U 1988 o - D 11 0 1 - +R U 1989 o - Mar 5 0 0 - +R U 1989 o - O 29 0 1 - +R U 1990 o - F 25 0 0 - +R U 1990 1991 - O Su>=21 0 1 - +R U 1991 1992 - Mar Su>=1 0 0 - +R U 1992 o - O 18 0 1 - +R U 1993 o - F 28 0 0 - +R U 2004 o - S 19 0 1 - +R U 2005 o - Mar 27 2 0 - +R U 2005 o - O 9 2 1 - +R U 2006 2015 - Mar Su>=8 2 0 - +R U 2006 2014 - O Su>=1 2 1 - +R US 1918 1919 - Mar lastSu 2 1 D +R US 1918 1919 - O lastSu 2 0 S +R US 1942 o - F 9 2 1 D +R US 1945 o - Au 14 23u 1 D +R US 1945 o - S 30 2 0 S +R US 1967 2006 - O lastSu 2 0 S +R US 1967 1973 - Ap lastSu 2 1 D +R US 1974 o - Ja 6 2 1 D +R US 1975 o - F lastSu 2 1 D +R US 1976 1986 - Ap lastSu 2 1 D +R US 1987 2006 - Ap Su>=1 2 1 D +R US 2007 ma - Mar Su>=8 2 1 D +R US 2007 ma - N Su>=1 2 0 S +Z Africa/Abidjan -0:16:8 - LMT 1912 +0 - GMT +Z Africa/Algiers 0:12:12 - LMT 1891 Mar 16 +0:9:21 - PMT 1911 Mar 11 +0 d WE%sT 1940 F 25 2 +1 d CE%sT 1946 O 7 +0 - WET 1956 Ja 29 +1 - CET 1963 Ap 14 +0 d WE%sT 1977 O 21 +1 d CE%sT 1979 O 26 +0 d WE%sT 1981 May +1 - CET +Z Africa/Bissau -1:2:20 - LMT 1912 Ja 1 1u +-1 - %z 1975 +0 - GMT +Z Africa/Cairo 2:5:9 - LMT 1900 O +2 K EE%sT +Z Africa/Casablanca -0:30:20 - LMT 1913 O 26 +0 M %z 1984 Mar 16 +1 - %z 1986 +0 M %z 2018 O 28 3 +1 M %z 2026 S 20 2 +0 - %z +Z Africa/Ceuta -0:21:16 - LMT 1901 Ja 1 0u +0 - WET 1918 May 6 23 +0 1 WEST 1918 O 7 23 +0 - WET 1924 +0 s WE%sT 1929 +0 - WET 1967 +0 Sp WE%sT 1984 Mar 16 +1 - CET 1986 +1 E CE%sT +Z Africa/El_Aaiun -0:52:48 - LMT 1934 +-1 - %z 1976 Ap 14 +0 M %z 2018 O 28 3 +1 M %z 2026 S 20 2 +0 - %z +Z Africa/Johannesburg 1:52 - LMT 1892 F 8 +1:30 - SAST 1903 Mar +2 SA SAST +Z Africa/Juba 2:6:28 - LMT 1931 +2 SD CA%sT 2000 Ja 15 12 +3 - EAT 2021 F +2 - CAT +Z Africa/Khartoum 2:10:8 - LMT 1931 +2 SD CA%sT 2000 Ja 15 12 +3 - EAT 2017 N +2 - CAT +Z Africa/Lagos 0:13:35 - LMT 1905 Jul +0 - GMT 1908 Jul +0:13:35 - LMT 1914 +0:30 - %z 1919 S +1 - WAT +Z Africa/Maputo 2:10:18 - LMT 1909 +2 - CAT +Z Africa/Monrovia -0:43:8 - LMT 1882 +-0:43:8 - MMT 1919 Mar +-0:44:30 - MMT 1972 Ja 7 +0 - GMT +Z Africa/Nairobi 2:27:16 - LMT 1908 May +2:30 - %z 1928 Jun 30 24 +3 - EAT 1930 Ja 4 24 +2:30 - %z 1936 D 31 24 +2:45 - %z 1942 Jul 31 24 +3 - EAT +Z Africa/Ndjamena 1:0:12 - LMT 1912 +1 - WAT 1979 O 14 +1 1 WAST 1980 Mar 8 +1 - WAT +Z Africa/Sao_Tome 0:26:56 - LMT 1884 +-0:36:45 - LMT 1912 Ja 1 0u +0 - GMT 2018 Ja 1 1 +1 - WAT 2019 Ja 1 2 +0 - GMT +Z Africa/Tripoli 0:52:44 - LMT 1920 +1 L CE%sT 1959 +2 - EET 1982 +1 L CE%sT 1990 May 4 +2 - EET 1996 S 30 +1 L CE%sT 1997 O 4 +2 - EET 2012 N 10 2 +1 L CE%sT 2013 O 25 2 +2 - EET +Z Africa/Tunis 0:40:44 - LMT 1881 May 12 +0:9:21 - PMT 1911 Mar 11 +1 n CE%sT +Z Africa/Windhoek 1:8:24 - LMT 1892 F 8 +1:30 - %z 1903 Mar +2 - SAST 1942 S 20 2 +2 1 SAST 1943 Mar 21 2 +2 - SAST 1990 Mar 21 +2 NA %s +Z America/Adak 12:13:22 - LMT 1867 O 19 0:31:13u +-11:46:38 - LMT 1900 Au 20 12 +-11 - NST 1942 +-11 u N%sT 1946 +-11 - NST 1967 Ap +-11 - BST 1969 +-11 u B%sT 1983 O 30 2 +-10 u AH%sT 1983 N 30 +-10 u H%sT +Z America/Anchorage 14:0:24 - LMT 1867 O 19 0:31:13u +-9:59:36 - LMT 1900 Au 20 12 +-10 - AST 1942 +-10 u A%sT 1967 Ap +-10 - AHST 1969 +-10 u AH%sT 1983 O 30 2 +-9 u Y%sT 1983 N 30 +-9 u AK%sT +Z America/Araguaina -3:12:48 - LMT 1914 +-3 B %z 1990 S 17 +-3 - %z 1995 S 14 +-3 B %z 2003 S 24 +-3 - %z 2012 O 21 +-3 B %z 2013 S +-3 - %z +Z America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - %z 1930 D +-4 A %z 1969 O 5 +-3 A %z 1999 O 3 +-4 A %z 2000 Mar 3 +-3 A %z +Z America/Argentina/Catamarca -4:23:8 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - %z 1930 D +-4 A %z 1969 O 5 +-3 A %z 1991 Mar 3 +-4 - %z 1991 O 20 +-3 A %z 1999 O 3 +-4 A %z 2000 Mar 3 +-3 - %z 2004 Jun +-4 - %z 2004 Jun 20 +-3 A %z 2008 O 18 +-3 - %z +Z America/Argentina/Cordoba -4:16:48 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - %z 1930 D +-4 A %z 1969 O 5 +-3 A %z 1991 Mar 3 +-4 - %z 1991 O 20 +-3 A %z 1999 O 3 +-4 A %z 2000 Mar 3 +-3 A %z +Z America/Argentina/Jujuy -4:21:12 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - %z 1930 D +-4 A %z 1969 O 5 +-3 A %z 1990 Mar 4 +-4 - %z 1990 O 28 +-4 1 %z 1991 Mar 17 +-4 - %z 1991 O 6 +-3 1 %z 1992 +-3 A %z 1999 O 3 +-4 A %z 2000 Mar 3 +-3 A %z 2008 O 18 +-3 - %z +Z America/Argentina/La_Rioja -4:27:24 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - %z 1930 D +-4 A %z 1969 O 5 +-3 A %z 1991 Mar +-4 - %z 1991 May 7 +-3 A %z 1999 O 3 +-4 A %z 2000 Mar 3 +-3 - %z 2004 Jun +-4 - %z 2004 Jun 20 +-3 A %z 2008 O 18 +-3 - %z +Z America/Argentina/Mendoza -4:35:16 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - %z 1930 D +-4 A %z 1969 O 5 +-3 A %z 1990 Mar 4 +-4 - %z 1990 O 15 +-4 1 %z 1991 Mar +-4 - %z 1991 O 15 +-4 1 %z 1992 Mar +-4 - %z 1992 O 18 +-3 A %z 1999 O 3 +-4 A %z 2000 Mar 3 +-3 - %z 2004 May 23 +-4 - %z 2004 S 26 +-3 A %z 2008 O 18 +-3 - %z +Z America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - %z 1930 D +-4 A %z 1969 O 5 +-3 A %z 1999 O 3 +-4 A %z 2000 Mar 3 +-3 - %z 2004 Jun +-4 - %z 2004 Jun 20 +-3 A %z 2008 O 18 +-3 - %z +Z America/Argentina/Salta -4:21:40 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - %z 1930 D +-4 A %z 1969 O 5 +-3 A %z 1991 Mar 3 +-4 - %z 1991 O 20 +-3 A %z 1999 O 3 +-4 A %z 2000 Mar 3 +-3 A %z 2008 O 18 +-3 - %z +Z America/Argentina/San_Juan -4:34:4 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - %z 1930 D +-4 A %z 1969 O 5 +-3 A %z 1991 Mar +-4 - %z 1991 May 7 +-3 A %z 1999 O 3 +-4 A %z 2000 Mar 3 +-3 - %z 2004 May 31 +-4 - %z 2004 Jul 25 +-3 A %z 2008 O 18 +-3 - %z +Z America/Argentina/San_Luis -4:25:24 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - %z 1930 D +-4 A %z 1969 O 5 +-3 A %z 1990 +-3 1 %z 1990 Mar 14 +-4 - %z 1990 O 15 +-4 1 %z 1991 Mar +-4 - %z 1991 Jun +-3 - %z 1999 O 3 +-4 1 %z 2000 Mar 3 +-3 - %z 2004 May 31 +-4 - %z 2004 Jul 25 +-3 A %z 2008 Ja 21 +-4 Sa %z 2009 O 11 +-3 - %z +Z America/Argentina/Tucuman -4:20:52 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - %z 1930 D +-4 A %z 1969 O 5 +-3 A %z 1991 Mar 3 +-4 - %z 1991 O 20 +-3 A %z 1999 O 3 +-4 A %z 2000 Mar 3 +-3 - %z 2004 Jun +-4 - %z 2004 Jun 13 +-3 A %z +Z America/Argentina/Ushuaia -4:33:12 - LMT 1894 O 31 +-4:16:48 - CMT 1920 May +-4 - %z 1930 D +-4 A %z 1969 O 5 +-3 A %z 1999 O 3 +-4 A %z 2000 Mar 3 +-3 - %z 2004 May 30 +-4 - %z 2004 Jun 20 +-3 A %z 2008 O 18 +-3 - %z +Z America/Asuncion -3:50:40 - LMT 1890 +-3:50:40 - AMT 1931 O 10 +-4 - %z 1972 O +-3 - %z 1974 Ap +-4 y %z 2024 O 15 +-3 - %z +Z America/Bahia -2:34:4 - LMT 1914 +-3 B %z 2003 S 24 +-3 - %z 2011 O 16 +-3 B %z 2012 O 21 +-3 - %z +Z America/Bahia_Banderas -7:1 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1942 Ap 24 +-7 - MST 1970 +-7 m M%sT 2010 Ap 4 2 +-6 m C%sT +Z America/Barbados -3:58:29 - LMT 1911 Au 28 +-4 BB A%sT 1944 +-4 BB AST/-0330 1945 +-4 BB A%sT +Z America/Belem -3:13:56 - LMT 1914 +-3 B %z 1988 S 12 +-3 - %z +Z America/Belize -5:52:48 - LMT 1912 Ap +-6 BZ %s +Z America/Boa_Vista -4:2:40 - LMT 1914 +-4 B %z 1988 S 12 +-4 - %z 1999 S 30 +-4 B %z 2000 O 15 +-4 - %z +Z America/Bogota -4:56:16 - LMT 1884 Mar 13 +-4:56:16 - BMT 1914 N 23 +-5 CO %z +Z America/Boise -7:44:49 - LMT 1883 N 18 20u +-8 u P%sT 1923 May 13 2 +-7 u M%sT 1974 +-7 - MST 1974 F 3 2 +-7 u M%sT +Z America/Cambridge_Bay 0 - -00 1920 +-7 Y M%sT 1999 O 31 2 +-6 C C%sT 2000 O 29 2 +-5 - EST 2000 N 5 +-6 - CST 2001 Ap 1 3 +-7 C M%sT +Z America/Campo_Grande -3:38:28 - LMT 1914 +-4 B %z +Z America/Cancun -5:47:4 - LMT 1922 Ja 1 6u +-6 - CST 1981 D 26 2 +-5 - EST 1983 Ja 4 +-6 m C%sT 1997 O 26 2 +-5 m E%sT 1998 Au 2 2 +-6 m C%sT 2015 F 1 2 +-5 - EST +Z America/Caracas -4:27:44 - LMT 1890 +-4:27:40 - CMT 1912 F 12 +-4:30 - %z 1965 +-4 - %z 2007 D 9 3 +-4:30 - %z 2016 May 1 2:30 +-4 - %z +Z America/Cayenne -3:29:20 - LMT 1911 Jul +-4 - %z 1967 O +-3 - %z +Z America/Chicago -5:50:36 - LMT 1883 N 18 18u +-6 u C%sT 1920 +-6 Ch C%sT 1936 Mar 1 2 +-5 - EST 1936 N 15 2 +-6 Ch C%sT 1942 +-6 u C%sT 1946 +-6 Ch C%sT 1967 +-6 u C%sT +Z America/Chihuahua -7:4:20 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1996 +-6 m C%sT 1998 +-6 - CST 1998 Ap Su>=1 3 +-7 m M%sT 2022 O 30 2 +-6 - CST +Z America/Ciudad_Juarez -7:5:56 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1996 +-6 m C%sT 1998 +-6 - CST 1998 Ap Su>=1 3 +-7 m M%sT 2010 +-7 u M%sT 2022 O 30 2 +-6 - CST 2022 N 30 +-7 u M%sT +Z America/Costa_Rica -5:36:13 - LMT 1890 +-5:36:13 - SJMT 1921 Ja 15 +-6 CR C%sT +Z America/Coyhaique -4:48:16 - LMT 1890 +-4:42:45 - SMT 1910 Ja 10 +-5 - %z 1916 Jul +-4:42:45 - SMT 1918 S 10 +-4 - %z 1919 Jul +-4:42:45 - SMT 1927 S +-5 x %z 1932 S +-4 - %z 1942 Jun +-5 - %z 1942 Au +-4 - %z 1946 Au 28 24 +-5 1 %z 1947 Mar 31 24 +-5 - %z 1947 May 21 23 +-4 x %z 2025 Mar 20 +-3 - %z +Z America/Cuiaba -3:44:20 - LMT 1914 +-4 B %z 2003 S 24 +-4 - %z 2004 O +-4 B %z +Z America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28 +-3 - %z 1980 Ap 6 2 +-3 E %z 1996 +0 - GMT +Z America/Dawson -9:17:40 - LMT 1900 Au 20 +-9 Y Y%sT 1965 +-9 Yu Y%sT 1973 O 28 +-8 - PST 1980 +-8 C P%sT 2020 N +-7 - MST +Z America/Dawson_Creek -8:0:56 - LMT 1884 +-8 C P%sT 1947 +-8 Va P%sT 1972 Au 30 2 +-7 - MST +Z America/Denver -6:59:56 - LMT 1883 N 18 19u +-7 u M%sT 1920 +-7 De M%sT 1942 +-7 u M%sT 1946 +-7 De M%sT 1967 +-7 u M%sT +Z America/Detroit -5:32:11 - LMT 1905 +-6 - CST 1915 May 15 2 +-5 - EST 1942 +-5 u E%sT 1946 +-5 Dt E%sT 1967 Jun 14 0:1 +-5 u E%sT 1969 +-5 - EST 1973 +-5 u E%sT 1975 +-5 - EST 1975 Ap 27 2 +-5 u E%sT +Z America/Edmonton -7:33:52 - LMT 1906 S +-7 Ed M%sT 1987 +-7 C M%sT 2026 Jun 18 +-7 C MDT 2026 N 1 2 +-6 - CST +Z America/Eirunepe -4:39:28 - LMT 1914 +-5 B %z 1988 S 12 +-5 - %z 1993 S 28 +-5 B %z 1994 S 22 +-5 - %z 2008 Jun 24 +-4 - %z 2013 N 10 +-5 - %z +Z America/El_Salvador -5:56:48 - LMT 1921 +-6 SV C%sT +Z America/Fort_Nelson -8:10:47 - LMT 1884 +-8 Va P%sT 1946 +-8 - PST 1947 +-8 Va P%sT 1987 +-8 C P%sT 2015 Mar 8 2 +-7 - MST +Z America/Fortaleza -2:34 - LMT 1914 +-3 B %z 1990 S 17 +-3 - %z 1999 S 30 +-3 B %z 2000 O 22 +-3 - %z 2001 S 13 +-3 B %z 2002 O +-3 - %z +Z America/Glace_Bay -3:59:48 - LMT 1902 Jun 15 +-4 C A%sT 1953 +-4 H A%sT 1954 +-4 - AST 1972 +-4 H A%sT 1974 +-4 C A%sT +Z America/Goose_Bay -4:1:40 - LMT 1884 +-3:30:52 - NST 1918 +-3:30:52 C N%sT 1919 +-3:30:52 - NST 1935 Mar 30 +-3:30 - NST 1936 +-3:30 j N%sT 1942 May 11 +-3:30 C N%sT 1946 +-3:30 j N%sT 1966 Mar 15 2 +-4 j A%sT 2011 N +-4 C A%sT +Z America/Grand_Turk -4:44:32 - LMT 1890 +-5:7:10 - KMT 1912 F +-5 - EST 1979 +-5 u E%sT 2015 Mar 8 2 +-4 - AST 2018 Mar 11 3 +-5 u E%sT +Z America/Guatemala -6:2:4 - LMT 1918 O 5 +-6 GT C%sT +Z America/Guayaquil -5:19:20 - LMT 1890 +-5:14 - QMT 1931 +-5 EC %z +Z America/Guyana -3:52:39 - LMT 1911 Au +-4 - %z 1915 Mar +-3:45 - %z 1975 Au +-3 - %z 1992 Mar 29 1 +-4 - %z +Z America/Halifax -4:14:24 - LMT 1902 Jun 15 +-4 H A%sT 1918 +-4 C A%sT 1919 +-4 H A%sT 1942 F 9 2s +-4 C A%sT 1946 +-4 H A%sT 1974 +-4 C A%sT +Z America/Havana -5:29:28 - LMT 1890 +-5:29:36 - HMT 1925 Jul 19 12 +-5 Q C%sT +Z America/Hermosillo -7:23:52 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1942 Ap 24 +-7 - MST 1996 +-7 m M%sT 1999 +-7 - MST +Z America/Indiana/Indianapolis -5:44:38 - LMT 1883 N 18 18u +-6 u C%sT 1920 +-6 In C%sT 1942 +-6 u C%sT 1946 +-6 In C%sT 1955 Ap 24 2 +-5 - EST 1957 S 29 2 +-6 - CST 1958 Ap 27 2 +-5 - EST 1969 +-5 u E%sT 1971 +-5 - EST 2006 +-5 u E%sT +Z America/Indiana/Knox -5:46:30 - LMT 1883 N 18 18u +-6 u C%sT 1947 +-6 St C%sT 1962 Ap 29 2 +-5 - EST 1963 O 27 2 +-6 u C%sT 1991 O 27 2 +-5 - EST 2006 Ap 2 2 +-6 u C%sT +Z America/Indiana/Marengo -5:45:23 - LMT 1883 N 18 18u +-6 u C%sT 1951 +-6 Ma C%sT 1961 Ap 30 2 +-5 - EST 1969 +-5 u E%sT 1974 Ja 6 2 +-6 1 CDT 1974 O 27 2 +-5 u E%sT 1976 +-5 - EST 2006 +-5 u E%sT +Z America/Indiana/Petersburg -5:49:7 - LMT 1883 N 18 18u +-6 u C%sT 1955 +-6 Pi C%sT 1965 Ap 25 2 +-5 - EST 1966 O 30 2 +-6 u C%sT 1977 O 30 2 +-5 - EST 2006 Ap 2 2 +-6 u C%sT 2007 N 4 2 +-5 u E%sT +Z America/Indiana/Tell_City -5:47:3 - LMT 1883 N 18 18u +-6 u C%sT 1946 +-6 Pe C%sT 1964 Ap 26 2 +-5 - EST 1967 O 29 2 +-6 u C%sT 1969 Ap 27 2 +-5 u E%sT 1971 +-5 - EST 2006 Ap 2 2 +-6 u C%sT +Z America/Indiana/Vevay -5:40:16 - LMT 1883 N 18 18u +-6 u C%sT 1954 Ap 25 2 +-5 - EST 1969 +-5 u E%sT 1973 +-5 - EST 2006 +-5 u E%sT +Z America/Indiana/Vincennes -5:50:7 - LMT 1883 N 18 18u +-6 u C%sT 1946 +-6 V C%sT 1964 Ap 26 2 +-5 - EST 1969 +-5 u E%sT 1971 +-5 - EST 2006 Ap 2 2 +-6 u C%sT 2007 N 4 2 +-5 u E%sT +Z America/Indiana/Winamac -5:46:25 - LMT 1883 N 18 18u +-6 u C%sT 1946 +-6 Pu C%sT 1961 Ap 30 2 +-5 - EST 1969 +-5 u E%sT 1971 +-5 - EST 2006 Ap 2 2 +-6 u C%sT 2007 Mar 11 2 +-5 u E%sT +Z America/Inuvik 0 - -00 1953 +-8 Y P%sT 1979 Ap lastSu 2 +-7 Y M%sT 1980 +-7 C M%sT 2026 Au 21 +-7 C MDT 2026 N 1 2 +-6 - CST +Z America/Iqaluit 0 - -00 1942 Au +-5 Y E%sT 1999 O 31 2 +-6 C C%sT 2000 O 29 2 +-5 C E%sT +Z America/Jamaica -5:7:10 - LMT 1890 +-5:7:10 - KMT 1912 F +-5 - EST 1974 +-5 u E%sT 1984 +-5 - EST +Z America/Juneau 15:2:19 - LMT 1867 O 19 0:31:13u +-8:57:41 - LMT 1900 Au 20 12 +-8 - PST 1942 +-8 u P%sT 1946 +-8 - PST 1969 +-8 u P%sT 1980 Ap 27 2 +-9 u Y%sT 1980 O 26 2 +-8 u P%sT 1983 O 30 2 +-9 u Y%sT 1983 N 30 +-9 u AK%sT +Z America/Kentucky/Louisville -5:43:2 - LMT 1883 N 18 18u +-6 u C%sT 1921 +-6 v C%sT 1942 +-6 u C%sT 1946 +-6 v C%sT 1961 Jul 23 2 +-5 - EST 1968 +-5 u E%sT 1974 Ja 6 2 +-6 1 CDT 1974 O 27 2 +-5 u E%sT +Z America/Kentucky/Monticello -5:39:24 - LMT 1883 N 18 18u +-6 u C%sT 1946 +-6 - CST 1968 +-6 u C%sT 2000 O 29 2 +-5 u E%sT +Z America/La_Paz -4:32:36 - LMT 1890 +-4:32:36 - CMT 1931 O 15 +-4:32:36 1 BST 1932 Mar 21 +-4 - %z +Z America/Lima -5:8:12 - LMT 1890 +-5:8:36 - LMT 1908 Jul 28 +-5 PE %z +Z America/Los_Angeles -7:52:58 - LMT 1883 N 18 20u +-8 u P%sT 1946 +-8 CA P%sT 1967 +-8 u P%sT +Z America/Maceio -2:22:52 - LMT 1914 +-3 B %z 1990 S 17 +-3 - %z 1995 O 13 +-3 B %z 1996 S 4 +-3 - %z 1999 S 30 +-3 B %z 2000 O 22 +-3 - %z 2001 S 13 +-3 B %z 2002 O +-3 - %z +Z America/Managua -5:45:8 - LMT 1890 +-5:45:12 - MMT 1934 Jun 23 +-6 - CST 1973 May +-5 - EST 1975 F 16 +-6 NI C%sT 1992 Ja 1 4 +-5 - EST 1992 S 24 +-6 - CST 1993 +-5 - EST 1997 +-6 NI C%sT +Z America/Manaus -4:0:4 - LMT 1914 +-4 B %z 1988 S 12 +-4 - %z 1993 S 28 +-4 B %z 1994 S 22 +-4 - %z +Z America/Martinique -4:4:20 - LMT 1890 +-4:4:20 - FFMT 1911 May +-4 - AST 1980 Ap 6 +-4 1 ADT 1980 S 28 +-4 - AST +Z America/Matamoros -6:30 - LMT 1922 Ja 1 6u +-6 - CST 1988 +-6 u C%sT 1989 +-6 m C%sT 2010 +-6 u C%sT +Z America/Mazatlan -7:5:40 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1942 Ap 24 +-7 - MST 1970 +-7 m M%sT +Z America/Menominee -5:50:27 - LMT 1885 S 18 12 +-6 u C%sT 1946 +-6 Me C%sT 1969 Ap 27 2 +-5 - EST 1973 Ap 29 2 +-6 u C%sT +Z America/Merida -5:58:28 - LMT 1922 Ja 1 6u +-6 - CST 1981 D 26 2 +-5 - EST 1982 N 2 2 +-6 m C%sT +Z America/Metlakatla 15:13:42 - LMT 1867 O 19 0:31:13u +-8:46:18 - LMT 1900 Au 20 12 +-8 - PST 1942 +-8 u P%sT 1946 +-8 - PST 1969 +-8 u P%sT 1983 O 30 2 +-8 - PST 2015 N 1 2 +-9 u AK%sT 2018 N 4 2 +-8 - PST 2019 Ja 20 2 +-9 u AK%sT +Z America/Mexico_City -6:36:36 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 m C%sT 2001 S 30 2 +-6 - CST 2002 F 20 +-6 m C%sT +Z America/Miquelon -3:44:40 - LMT 1911 Jun 15 +-4 - AST 1980 May +-3 - %z 1987 +-3 C %z +Z America/Moncton -4:19:8 - LMT 1883 D 9 +-5 - EST 1902 Jun 15 +-4 C A%sT 1933 +-4 o A%sT 1942 +-4 C A%sT 1946 +-4 o A%sT 1973 +-4 C A%sT 1993 +-4 o A%sT 2007 +-4 C A%sT +Z America/Monterrey -6:41:16 - LMT 1922 Ja 1 6u +-7 - MST 1927 Jun 10 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1988 +-6 u C%sT 1989 +-6 m C%sT +Z America/Montevideo -3:44:51 - LMT 1908 Jun 10 +-3:44:51 - MMT 1920 May +-4 - %z 1923 O +-3:30 U %z 1942 D 14 +-3 U %z 1960 +-3 U %z 1968 +-3 U %z 1970 +-3 U %z 1974 +-3 U %z 1974 Mar 10 +-3 U %z 1974 D 22 +-3 U %z +Z America/New_York -4:56:2 - LMT 1883 N 18 17u +-5 u E%sT 1920 +-5 NY E%sT 1942 +-5 u E%sT 1946 +-5 NY E%sT 1967 +-5 u E%sT +Z America/Nome 12:58:22 - LMT 1867 O 19 0:31:13u +-11:1:38 - LMT 1900 Au 20 12 +-11 - NST 1942 +-11 u N%sT 1946 +-11 - NST 1967 Ap +-11 - BST 1969 +-11 u B%sT 1983 O 30 2 +-9 u Y%sT 1983 N 30 +-9 u AK%sT +Z America/Noronha -2:9:40 - LMT 1914 +-2 B %z 1990 S 17 +-2 - %z 1999 S 30 +-2 B %z 2000 O 15 +-2 - %z 2001 S 13 +-2 B %z 2002 O +-2 - %z +Z America/North_Dakota/Beulah -6:47:7 - LMT 1883 N 18 19u +-7 u M%sT 2010 N 7 2 +-6 u C%sT +Z America/North_Dakota/Center -6:45:12 - LMT 1883 N 18 19u +-7 u M%sT 1992 O 25 2 +-6 u C%sT +Z America/North_Dakota/New_Salem -6:45:39 - LMT 1883 N 18 19u +-7 u M%sT 2003 O 26 2 +-6 u C%sT +Z America/Nuuk -3:26:56 - LMT 1916 Jul 28 +-3 - %z 1980 Ap 6 2 +-3 E %z 2023 Mar 26 1u +-2 - %z 2023 O 29 1u +-2 E %z +Z America/Ojinaga -6:57:40 - LMT 1922 Ja 1 7u +-7 - MST 1927 Jun 10 +-6 - CST 1930 N 15 +-7 m M%sT 1932 Ap +-6 - CST 1996 +-6 m C%sT 1998 +-6 - CST 1998 Ap Su>=1 3 +-7 m M%sT 2010 +-7 u M%sT 2022 O 30 2 +-6 - CST 2022 N 30 +-6 u C%sT +Z America/Panama -5:18:8 - LMT 1890 +-5:19:36 - CMT 1908 Ap 22 +-5 - EST +Z America/Paramaribo -3:40:40 - LMT 1911 +-3:40:52 - PMT 1935 +-3:40:36 - PMT 1945 O +-3:30 - %z 1984 O +-3 - %z +Z America/Phoenix -7:28:18 - LMT 1883 N 18 19u +-7 u M%sT 1944 Ja 1 0:1 +-7 - MST 1944 Ap 1 0:1 +-7 u M%sT 1944 O 1 0:1 +-7 - MST 1967 +-7 u M%sT 1968 Mar 21 +-7 - MST +Z America/Port-au-Prince -4:49:20 - LMT 1890 +-4:49 - PPMT 1917 Ja 24 12 +-5 HT E%sT +Z America/Porto_Velho -4:15:36 - LMT 1914 +-4 B %z 1988 S 12 +-4 - %z +Z America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12 +-4 - AST 1942 May 3 +-4 u A%sT 1946 +-4 - AST +Z America/Punta_Arenas -4:43:40 - LMT 1890 +-4:42:45 - SMT 1910 Ja 10 +-5 - %z 1916 Jul +-4:42:45 - SMT 1918 S 10 +-4 - %z 1919 Jul +-4:42:45 - SMT 1927 S +-5 x %z 1932 S +-4 - %z 1942 Jun +-5 - %z 1942 Au +-4 - %z 1946 Au 28 24 +-5 1 %z 1947 Mar 31 24 +-5 - %z 1947 May 21 23 +-4 x %z 2016 D 4 +-3 - %z +Z America/Rankin_Inlet 0 - -00 1957 +-6 Y C%sT 2000 O 29 2 +-5 - EST 2001 Ap 1 3 +-6 C C%sT +Z America/Recife -2:19:36 - LMT 1914 +-3 B %z 1990 S 17 +-3 - %z 1999 S 30 +-3 B %z 2000 O 15 +-3 - %z 2001 S 13 +-3 B %z 2002 O +-3 - %z +Z America/Regina -6:58:36 - LMT 1905 S +-7 r M%sT 1960 Ap lastSu 2 +-6 - CST +Z America/Resolute 0 - -00 1947 Au 31 +-6 Y C%sT 2000 O 29 2 +-5 - EST 2001 Ap 1 3 +-6 C C%sT 2006 O 29 2 +-5 - EST 2007 Mar 11 3 +-6 C C%sT +Z America/Rio_Branco -4:31:12 - LMT 1914 +-5 B %z 1988 S 12 +-5 - %z 2008 Jun 24 +-4 - %z 2013 N 10 +-5 - %z +Z America/Santarem -3:38:48 - LMT 1914 +-4 B %z 1988 S 12 +-4 - %z 2008 Jun 24 +-3 - %z +Z America/Santiago -4:42:45 - LMT 1890 +-4:42:45 - SMT 1910 Ja 10 +-5 - %z 1916 Jul +-4:42:45 - SMT 1918 S 10 +-4 - %z 1919 Jul +-4:42:45 - SMT 1927 S +-5 x %z 1932 S +-4 - %z 1942 Jun +-5 - %z 1942 Au +-4 - %z 1946 Jul 14 24 +-4 1 %z 1946 Au 28 24 +-5 1 %z 1947 Mar 31 24 +-5 - %z 1947 May 21 23 +-4 x %z +Z America/Santo_Domingo -4:39:36 - LMT 1890 +-4:40 - SDMT 1933 Ap 1 12 +-5 DO %s 1974 O 27 +-4 - AST 2000 O 29 2 +-5 u E%sT 2000 D 3 1 +-4 - AST +Z America/Sao_Paulo -3:6:28 - LMT 1914 +-3 B %z 1963 O 23 +-3 1 %z 1964 +-3 B %z +Z America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 +-2 - %z 1980 Ap 6 2 +-2 c %z 1981 Mar 29 +-1 E %z 2024 Mar 31 +-2 E %z +Z America/Sitka 14:58:47 - LMT 1867 O 19 0:31:13u +-9:1:13 - LMT 1900 Au 20 12 +-8 - PST 1942 +-8 u P%sT 1946 +-8 - PST 1969 +-8 u P%sT 1983 O 30 2 +-9 u Y%sT 1983 N 30 +-9 u AK%sT +Z America/St_Johns -3:30:52 - LMT 1884 +-3:30:52 j N%sT 1918 +-3:30:52 C N%sT 1919 +-3:30:52 j N%sT 1935 Mar 30 +-3:30 j N%sT 1942 May 11 +-3:30 C N%sT 1946 +-3:30 j N%sT 2011 N +-3:30 C N%sT +Z America/Swift_Current -7:11:20 - LMT 1905 S +-7 C M%sT 1946 Ap lastSu 2 +-7 r M%sT 1950 +-7 Sw M%sT 1972 Ap lastSu 2 +-6 - CST +Z America/Tegucigalpa -5:48:52 - LMT 1921 Ap +-6 HN C%sT +Z America/Thule -4:35:8 - LMT 1916 Jul 28 +-4 Th A%sT +Z America/Tijuana -7:48:4 - LMT 1922 Ja 1 7u +-7 - MST 1924 +-8 - PST 1927 Jun 10 +-7 - MST 1930 N 15 +-8 - PST 1931 Ap +-8 1 PDT 1931 S 30 +-8 - PST 1942 Ap 24 +-8 1 PWT 1945 Au 14 23u +-8 1 PPT 1945 N 15 +-8 - PST 1948 Ap 5 +-8 1 PDT 1949 Ja 14 +-8 - PST 1950 May +-8 1 PDT 1950 S 24 +-8 - PST 1951 Ap 29 2 +-8 1 PDT 1951 S 30 2 +-8 - PST 1952 Ap 27 2 +-8 1 PDT 1952 S 28 2 +-8 CA P%sT 1967 +-8 u P%sT 1996 +-8 m P%sT 2001 +-8 u P%sT 2002 F 20 +-8 m P%sT 2010 +-8 u P%sT +Z America/Toronto -5:17:32 - LMT 1895 +-5 C E%sT 1919 +-5 t E%sT 1942 F 9 2s +-5 C E%sT 1946 +-5 t E%sT 1974 +-5 C E%sT +Z America/Vancouver -8:12:28 - LMT 1884 +-8 Va P%sT 1987 +-8 C P%sT 2026 Mar 9 +-8 C PDT 2026 N 1 2 +-7 - MST +Z America/Whitehorse -9:0:12 - LMT 1900 Au 20 +-9 Y Y%sT 1965 +-9 Yu Y%sT 1966 F 27 +-8 - PST 1980 +-8 C P%sT 2020 N +-7 - MST +Z America/Winnipeg -6:28:36 - LMT 1887 Jul 16 +-6 W C%sT 2006 +-6 C C%sT 2026 O 31 +-6 C CDT 2026 N 1 2 +-5 - EST +Z America/Yakutat 14:41:5 - LMT 1867 O 19 0:31:13u +-9:18:55 - LMT 1900 Au 20 12 +-9 - YST 1942 +-9 u Y%sT 1946 +-9 - YST 1969 +-9 u Y%sT 1983 N 30 +-9 u AK%sT +Z Antarctica/Casey 0 - -00 1969 +8 - %z 2009 O 18 2 +11 - %z 2010 Mar 5 2 +8 - %z 2011 O 28 2 +11 - %z 2012 F 21 17u +8 - %z 2016 O 22 +11 - %z 2018 Mar 11 4 +8 - %z 2018 O 7 4 +11 - %z 2019 Mar 17 3 +8 - %z 2019 O 4 3 +11 - %z 2020 Mar 8 3 +8 - %z 2020 O 4 0:1 +11 - %z 2021 Mar 14 +8 - %z 2021 O 3 0:1 +11 - %z 2022 Mar 13 +8 - %z 2022 O 2 0:1 +11 - %z 2023 Mar 9 3 +8 - %z +Z Antarctica/Davis 0 - -00 1957 Ja 13 +7 - %z 1964 N +0 - -00 1969 F +7 - %z 2009 O 18 2 +5 - %z 2010 Mar 10 20u +7 - %z 2011 O 28 2 +5 - %z 2012 F 21 20u +7 - %z +Z Antarctica/Macquarie 0 - -00 1899 N +10 - AEST 1916 O 1 2 +10 1 AEDT 1917 F +10 AU AE%sT 1919 Ap 1 0s +0 - -00 1948 Mar 25 +10 AU AE%sT 1967 +10 AT AE%sT 2010 +10 1 AEDT 2011 +10 AT AE%sT +Z Antarctica/Mawson 0 - -00 1954 F 13 +6 - %z 2009 O 18 2 +5 - %z +Z Antarctica/Palmer 0 - -00 1965 +-4 A %z 1969 O 5 +-3 A %z 1982 May +-4 x %z 2016 D 4 +-3 - %z +Z Antarctica/Rothera 0 - -00 1976 D +-3 - %z +Z Antarctica/Troll 0 - -00 2005 F 12 +0 Tr %s +Z Antarctica/Vostok 0 - -00 1957 D 16 +7 - %z 1994 F +0 - -00 1994 N +7 - %z 2023 D 18 2 +5 - %z +Z Asia/Almaty 5:7:48 - LMT 1924 May 2 +5 - %z 1930 Jun 21 +6 R %z 1991 Mar 31 2s +5 R %z 1992 Ja 19 2s +6 R %z 2004 O 31 2s +6 - %z 2024 Mar +5 - %z +Z Asia/Amman 2:23:44 - LMT 1931 +2 J EE%sT 2022 O 28 0s +3 - %z +Z Asia/Anadyr 11:49:56 - LMT 1924 May 2 +12 - %z 1930 Jun 21 +13 R %z 1982 Ap 1 0s +12 R %z 1991 Mar 31 2s +11 R %z 1992 Ja 19 2s +12 R %z 2010 Mar 28 2s +11 R %z 2011 Mar 27 2s +12 - %z +Z Asia/Aqtau 3:21:4 - LMT 1924 May 2 +4 - %z 1930 Jun 21 +5 - %z 1981 O +6 - %z 1982 Ap +5 R %z 1991 Mar 31 2s +4 R %z 1992 Ja 19 2s +5 R %z 1994 S 25 2s +4 R %z 2004 O 31 2s +5 - %z +Z Asia/Aqtobe 3:48:40 - LMT 1924 May 2 +4 - %z 1930 Jun 21 +5 - %z 1981 Ap +5 1 %z 1981 O +6 - %z 1982 Ap +5 R %z 1991 Mar 31 2s +4 R %z 1992 Ja 19 2s +5 R %z 2004 O 31 2s +5 - %z +Z Asia/Ashgabat 3:53:32 - LMT 1924 May 2 +4 - %z 1930 Jun 21 +5 R %z 1991 Mar 31 2 +4 R %z 1992 Ja 19 2 +5 - %z +Z Asia/Atyrau 3:27:44 - LMT 1924 May 2 +3 - %z 1930 Jun 21 +5 - %z 1981 O +6 - %z 1982 Ap +5 R %z 1991 Mar 31 2s +4 R %z 1992 Ja 19 2s +5 R %z 1999 Mar 28 2s +4 R %z 2004 O 31 2s +5 - %z +Z Asia/Baghdad 2:57:40 - LMT 1890 +2:57:36 - BMT 1918 +3 - %z 1982 May +3 IQ %z +Z Asia/Baku 3:19:24 - LMT 1924 May 2 +3 - %z 1957 Mar +4 R %z 1991 Mar 31 2s +3 R %z 1992 S lastSu 2s +4 - %z 1996 +4 E %z 1997 +4 AZ %z +Z Asia/Bangkok 6:42:4 - LMT 1880 +6:42:4 - BMT 1920 Ap +7 - %z +Z Asia/Barnaul 5:35 - LMT 1919 D 10 +6 - %z 1930 Jun 21 +7 R %z 1991 Mar 31 2s +6 R %z 1992 Ja 19 2s +7 R %z 1995 May 28 +6 R %z 2011 Mar 27 2s +7 - %z 2014 O 26 2s +6 - %z 2016 Mar 27 2s +7 - %z +Z Asia/Beirut 2:22 - LMT 1880 +2 l EE%sT +Z Asia/Bishkek 4:58:24 - LMT 1924 May 2 +5 - %z 1930 Jun 21 +6 R %z 1991 Mar 31 2s +5 R %z 1991 Au 31 2 +5 KG %z 2005 Au 12 +6 - %z +Z Asia/Chita 7:33:52 - LMT 1919 D 15 +8 - %z 1930 Jun 21 +9 R %z 1991 Mar 31 2s +8 R %z 1992 Ja 19 2s +9 R %z 2011 Mar 27 2s +10 - %z 2014 O 26 2s +8 - %z 2016 Mar 27 2 +9 - %z +Z Asia/Colombo 5:19:24 - LMT 1880 +5:19:32 - MMT 1906 +5:30 - %z 1942 Ja 5 +5:30 0:30 %z 1942 S +5:30 1 %z 1945 O 16 2 +5:30 - %z 1996 May 25 +6:30 - %z 1996 O 26 0:30 +6 - %z 2006 Ap 15 0:30 +5:30 - %z +Z Asia/Damascus 2:25:12 - LMT 1920 +2 S EE%sT 2022 O 28 +3 - %z +Z Asia/Dhaka 6:1:40 - LMT 1890 +5:53:20 - HMT 1941 O +6:30 - %z 1942 May 15 +5:30 - %z 1942 S +6:30 - %z 1951 S 30 +6 - %z 2009 +6 BD %z +Z Asia/Dili 8:22:20 - LMT 1911 D 31 16u +8 - %z 1942 F 21 23 +9 - %z 1976 May 3 +8 - %z 2000 S 17 +9 - %z +Z Asia/Dubai 3:41:12 - LMT 1920 +4 - %z +Z Asia/Dushanbe 4:35:12 - LMT 1924 May 2 +5 - %z 1930 Jun 21 +6 R %z 1991 Mar 31 2s +5 1 %z 1991 S 9 2s +5 - %z +Z Asia/Famagusta 2:15:48 - LMT 1921 N 14 +2 CY EE%sT 1998 S +2 E EE%sT 2016 S 8 +3 - %z 2017 O 29 1u +2 E EE%sT +Z Asia/Gaza 2:17:52 - LMT 1900 O +2 Z EET/EEST 1948 May 15 +2 K EE%sT 1967 Jun 5 +2 Z I%sT 1996 +2 J EE%sT 1999 +2 P EE%sT 2008 Au 29 +2 - EET 2008 S +2 P EE%sT 2010 +2 - EET 2010 Mar 27 0:1 +2 P EE%sT 2011 Au +2 - EET 2012 +2 P EE%sT +Z Asia/Hebron 2:20:23 - LMT 1900 O +2 Z EET/EEST 1948 May 15 +2 K EE%sT 1967 Jun 5 +2 Z I%sT 1996 +2 J EE%sT 1999 +2 P EE%sT +Z Asia/Ho_Chi_Minh 7:6:30 - LMT 1906 Jul +7:6:30 - PLMT 1911 May +7 - %z 1942 D 31 23 +8 - %z 1945 Mar 14 23 +9 - %z 1945 S 1 24 +7 - %z 1947 Ap +8 - %z 1955 Jul 1 1 +7 - %z 1959 D 31 23 +8 - %z 1975 Jun 13 +7 - %z +Z Asia/Hong_Kong 7:36:42 - LMT 1904 O 29 17u +8 - HKT 1941 Jun 15 3 +8 1 HKST 1941 O 1 4 +8 0:30 HKWT 1941 D 25 +9 - JST 1945 N 18 2 +8 HK HK%sT +Z Asia/Hovd 6:6:36 - LMT 1905 Au +6 - %z 1978 +7 X %z +Z Asia/Irkutsk 6:57:5 - LMT 1880 +6:57:5 - IMT 1920 Ja 25 +7 - %z 1930 Jun 21 +8 R %z 1991 Mar 31 2s +7 R %z 1992 Ja 19 2s +8 R %z 2011 Mar 27 2s +9 - %z 2014 O 26 2s +8 - %z +Z Asia/Jakarta 7:7:12 - LMT 1867 Au 10 +7:7:12 - BMT 1923 D 31 16:40u +7:20 - %z 1932 N +7:30 - %z 1942 Mar 23 +9 - %z 1945 S 23 +7:30 - %z 1948 May +8 - %z 1950 May +7:30 - %z 1964 +7 - WIB +Z Asia/Jayapura 9:22:48 - LMT 1932 N +9 - %z 1944 S +9:30 - %z 1964 +9 - WIT +Z Asia/Jerusalem 2:20:54 - LMT 1880 +2:20:40 - JMT 1918 +2 Z I%sT +Z Asia/Kabul 4:36:48 - LMT 1890 +4 - %z 1945 +4:30 - %z +Z Asia/Kamchatka 10:34:36 - LMT 1922 N 10 +11 - %z 1930 Jun 21 +12 R %z 1991 Mar 31 2s +11 R %z 1992 Ja 19 2s +12 R %z 2010 Mar 28 2s +11 R %z 2011 Mar 27 2s +12 - %z +Z Asia/Karachi 4:28:12 - LMT 1907 +5:30 - %z 1942 S +5:30 1 %z 1945 O 15 +5:30 - %z 1951 S 30 +5 - %z 1971 Mar 26 +5 PK PK%sT +Z Asia/Kathmandu 5:41:16 - LMT 1920 +5:30 - %z 1986 +5:45 - %z +Z Asia/Khandyga 9:2:13 - LMT 1919 D 15 +8 - %z 1930 Jun 21 +9 R %z 1991 Mar 31 2s +8 R %z 1992 Ja 19 2s +9 R %z 2004 +10 R %z 2011 Mar 27 2s +11 - %z 2011 S 13 0s +10 - %z 2014 O 26 2s +9 - %z +Z Asia/Kolkata 5:53:28 - LMT 1854 Jun 28 +5:53:20 - HMT 1870 +5:21:10 - MMT 1906 +5:30 - IST 1941 O +5:30 1 %z 1942 May 15 +5:30 - IST 1942 S +5:30 1 %z 1945 O 15 +5:30 - IST +Z Asia/Krasnoyarsk 6:11:26 - LMT 1920 Ja 6 +6 - %z 1930 Jun 21 +7 R %z 1991 Mar 31 2s +6 R %z 1992 Ja 19 2s +7 R %z 2011 Mar 27 2s +8 - %z 2014 O 26 2s +7 - %z +Z Asia/Kuching 7:21:20 - LMT 1926 Mar +7:30 - %z 1933 +8 NB %z 1942 F 16 +9 - %z 1945 S 12 +8 - %z +Z Asia/Macau 7:34:10 - LMT 1904 O 30 +8 - CST 1941 D 21 23 +9 _ %z 1945 S 30 24 +8 _ C%sT +Z Asia/Magadan 10:3:12 - LMT 1924 May 2 +10 - %z 1930 Jun 21 +11 R %z 1991 Mar 31 2s +10 R %z 1992 Ja 19 2s +11 R %z 2011 Mar 27 2s +12 - %z 2014 O 26 2s +10 - %z 2016 Ap 24 2s +11 - %z +Z Asia/Makassar 7:57:36 - LMT 1920 +7:57:36 - MMT 1932 N +8 - %z 1942 F 9 +9 - %z 1945 S 23 +8 - WITA +Z Asia/Manila -15:56:8 - LMT 1844 D 31 +8:3:52 - LMT 1899 S 6 4u +8 PH P%sT 1942 F 11 24 +9 - JST 1945 Mar 4 +8 PH P%sT +Z Asia/Nicosia 2:13:28 - LMT 1921 N 14 +2 CY EE%sT 1998 S +2 E EE%sT +Z Asia/Novokuznetsk 5:48:48 - LMT 1924 May +6 - %z 1930 Jun 21 +7 R %z 1991 Mar 31 2s +6 R %z 1992 Ja 19 2s +7 R %z 2010 Mar 28 2s +6 R %z 2011 Mar 27 2s +7 - %z +Z Asia/Novosibirsk 5:31:40 - LMT 1919 D 14 6 +6 - %z 1930 Jun 21 +7 R %z 1991 Mar 31 2s +6 R %z 1992 Ja 19 2s +7 R %z 1993 May 23 +6 R %z 2011 Mar 27 2s +7 - %z 2014 O 26 2s +6 - %z 2016 Jul 24 2s +7 - %z +Z Asia/Omsk 4:53:30 - LMT 1919 N 14 +5 - %z 1930 Jun 21 +6 R %z 1991 Mar 31 2s +5 R %z 1992 Ja 19 2s +6 R %z 2011 Mar 27 2s +7 - %z 2014 O 26 2s +6 - %z +Z Asia/Oral 3:25:24 - LMT 1924 May 2 +3 - %z 1930 Jun 21 +5 - %z 1981 Ap +5 1 %z 1981 O +6 - %z 1982 Ap +5 R %z 1989 Mar 26 2s +4 R %z 1992 Ja 19 2s +5 R %z 1992 Mar 29 2s +4 R %z 2004 O 31 2s +5 - %z +Z Asia/Pontianak 7:17:20 - LMT 1908 May +7:17:20 - PMT 1932 N +7:30 - %z 1942 Ja 29 +9 - %z 1945 S 23 +7:30 - %z 1948 May +8 - %z 1950 May +7:30 - %z 1964 +8 - WITA 1988 +7 - WIB +Z Asia/Pyongyang 8:23 - LMT 1908 Ap +8:30 - KST 1912 +9 - JST 1945 Au 24 +9 - KST 2015 Au 15 +8:30 - KST 2018 May 4 23:30 +9 - KST +Z Asia/Qatar 3:26:8 - LMT 1920 +4 - %z 1972 Jun +3 - %z +Z Asia/Qostanay 4:14:28 - LMT 1924 May 2 +4 - %z 1930 Jun 21 +5 - %z 1981 Ap +5 1 %z 1981 O +6 - %z 1982 Ap +5 R %z 1991 Mar 31 2s +4 R %z 1992 Ja 19 2s +5 R %z 2004 O 31 2s +6 - %z 2024 Mar +5 - %z +Z Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 +4 - %z 1930 Jun 21 +5 - %z 1981 Ap +5 1 %z 1981 O +6 - %z 1982 Ap +5 R %z 1991 Mar 31 2s +4 R %z 1991 S 29 2s +5 R %z 1992 Ja 19 2s +6 R %z 1992 Mar 29 2s +5 R %z 2004 O 31 2s +6 - %z 2018 D 21 +5 - %z +Z Asia/Riyadh 3:6:52 - LMT 1947 Mar 14 +3 - %z +Z Asia/Sakhalin 9:30:48 - LMT 1905 Au 23 +9 - %z 1945 Au 25 +11 R %z 1991 Mar 31 2s +10 R %z 1992 Ja 19 2s +11 R %z 1997 Mar lastSu 2s +10 R %z 2011 Mar 27 2s +11 - %z 2014 O 26 2s +10 - %z 2016 Mar 27 2s +11 - %z +Z Asia/Samarkand 4:27:53 - LMT 1924 May 2 +4 - %z 1930 Jun 21 +5 - %z 1981 Ap +5 1 %z 1981 O +6 - %z 1982 Ap +5 R %z 1992 +5 - %z +Z Asia/Seoul 8:27:52 - LMT 1908 Ap +8:30 - KST 1912 +9 - JST 1945 S 8 +9 KR K%sT 1954 Mar 21 +8:30 KR K%sT 1961 Au 10 +9 KR K%sT +Z Asia/Shanghai 8:5:43 - LMT 1901 +8 Sh C%sT 1949 May 28 +8 CN C%sT +Z Asia/Singapore 6:55:25 - LMT 1901 +6:55:25 - SMT 1905 Jun +7 - %z 1933 +7 0:20 %z 1936 +7:20 - %z 1941 S +7:30 - %z 1942 F 16 +9 - %z 1945 S 12 +7:30 - %z 1981 D 31 16u +8 - %z +Z Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 +10 - %z 1930 Jun 21 +11 R %z 1991 Mar 31 2s +10 R %z 1992 Ja 19 2s +11 R %z 2011 Mar 27 2s +12 - %z 2014 O 26 2s +11 - %z +Z Asia/Taipei 8:6 - LMT 1896 +8 - CST 1937 O +9 - JST 1945 S 21 1 +8 f C%sT +Z Asia/Tashkent 4:37:11 - LMT 1924 May 2 +5 - %z 1930 Jun 21 +6 R %z 1991 Mar 31 2 +5 R %z 1992 +5 - %z +Z Asia/Tbilisi 2:59:11 - LMT 1880 +2:59:11 - TBMT 1924 May 2 +3 - %z 1957 Mar +4 R %z 1991 Mar 31 2s +3 R %z 1992 +3 e %z 1994 S lastSu +4 e %z 1996 O lastSu +4 1 %z 1997 Mar lastSu +4 e %z 2004 Jun 27 +3 R %z 2005 Mar lastSu 2 +4 - %z +Z Asia/Tehran 3:25:44 - LMT 1916 +3:25:44 - TMT 1935 Jun 13 +3:30 i %z 1977 O 20 24 +4 i %z 1978 N 10 24 +3:30 i %z +Z Asia/Thimphu 5:58:36 - LMT 1947 Au 15 +5:30 - %z 1987 O +6 - %z +Z Asia/Tokyo 9:18:59 - LMT 1887 D 31 15u +9 JP J%sT +Z Asia/Tomsk 5:39:51 - LMT 1919 D 22 +6 - %z 1930 Jun 21 +7 R %z 1991 Mar 31 2s +6 R %z 1992 Ja 19 2s +7 R %z 2002 May 1 3 +6 R %z 2011 Mar 27 2s +7 - %z 2014 O 26 2s +6 - %z 2016 May 29 2s +7 - %z +Z Asia/Ulaanbaatar 7:7:32 - LMT 1905 Au +7 - %z 1978 +8 X %z +Z Asia/Urumqi 5:50:20 - LMT 1928 +6 - %z +Z Asia/Ust-Nera 9:32:54 - LMT 1919 D 15 +8 - %z 1930 Jun 21 +9 R %z 1981 Ap +11 R %z 1991 Mar 31 2s +10 R %z 1992 Ja 19 2s +11 R %z 2011 Mar 27 2s +12 - %z 2011 S 13 0s +11 - %z 2014 O 26 2s +10 - %z +Z Asia/Vladivostok 8:47:31 - LMT 1922 N 15 +9 - %z 1930 Jun 21 +10 R %z 1991 Mar 31 2s +9 R %z 1992 Ja 19 2s +10 R %z 2011 Mar 27 2s +11 - %z 2014 O 26 2s +10 - %z +Z Asia/Yakutsk 8:38:58 - LMT 1919 D 15 +8 - %z 1930 Jun 21 +9 R %z 1991 Mar 31 2s +8 R %z 1992 Ja 19 2s +9 R %z 2011 Mar 27 2s +10 - %z 2014 O 26 2s +9 - %z +Z Asia/Yangon 6:24:47 - LMT 1880 +6:24:47 - RMT 1920 +6:30 - %z 1942 May +9 - %z 1945 May 3 +6:30 - %z +Z Asia/Yekaterinburg 4:2:33 - LMT 1916 Jul 3 +3:45:5 - PMT 1919 Jul 15 4 +4 - %z 1930 Jun 21 +5 R %z 1991 Mar 31 2s +4 R %z 1992 Ja 19 2s +5 R %z 2011 Mar 27 2s +6 - %z 2014 O 26 2s +5 - %z +Z Asia/Yerevan 2:58 - LMT 1924 May 2 +3 - %z 1957 Mar +4 R %z 1991 Mar 31 2s +3 R %z 1995 S 24 2s +4 - %z 1997 +4 R %z 2011 +4 AM %z +Z Atlantic/Azores -1:42:40 - LMT 1884 +-1:54:32 - HMT 1912 Ja 1 2u +-2 p %z 1966 O 2 2s +-1 - %z 1982 Mar 28 0s +-1 p %z 1986 +-1 E %z 1992 D 27 1s +0 E WE%sT 1993 Jun 17 1u +-1 E %z +Z Atlantic/Bermuda -4:19:18 - LMT 1890 +-4:19:18 Be BMT/BST 1930 Ja 1 2 +-4 Be A%sT 1974 Ap 28 2 +-4 C A%sT 1976 +-4 u A%sT +Z Atlantic/Canary -1:1:36 - LMT 1922 Mar +-1 - %z 1946 S 30 1 +0 - WET 1980 Ap 6 0s +0 1 WEST 1980 S 28 1u +0 E WE%sT +Z Atlantic/Cape_Verde -1:34:4 - LMT 1912 Ja 1 2u +-2 - %z 1942 S +-2 1 %z 1945 O 15 +-2 - %z 1975 N 25 2 +-1 - %z +Z Atlantic/Faroe -0:27:4 - LMT 1908 Ja 11 +0 - WET 1981 +0 E WE%sT +Z Atlantic/Madeira -1:7:36 - LMT 1884 +-1:7:36 - FMT 1912 Ja 1 1u +-1 p %z 1966 O 2 2s +0 - WET 1982 Ap 4 +0 p WE%sT 1986 Jul 31 +0 E WE%sT +Z Atlantic/South_Georgia -2:26:8 - LMT 1890 +-2 - %z +Z Atlantic/Stanley -3:51:24 - LMT 1890 +-3:51:24 - SMT 1912 Mar 12 +-4 FK %z 1983 May +-3 FK %z 1985 S 15 +-4 FK %z 2010 S 5 2 +-3 - %z +Z Australia/Adelaide 9:14:20 - LMT 1895 F +9 - ACST 1899 May +9:30 AU AC%sT 1971 +9:30 AS AC%sT +Z Australia/Brisbane 10:12:8 - LMT 1895 +10 AU AE%sT 1971 +10 AQ AE%sT +Z Australia/Broken_Hill 9:25:48 - LMT 1895 F +10 - AEST 1896 Au 23 +9 - ACST 1899 May +9:30 AU AC%sT 1971 +9:30 AN AC%sT 2000 +9:30 AS AC%sT +Z Australia/Darwin 8:43:20 - LMT 1895 F +9 - ACST 1899 May +9:30 AU AC%sT +Z Australia/Eucla 8:35:28 - LMT 1895 D +8:45 AU %z 1943 Jul +8:45 AW %z +Z Australia/Hobart 9:49:16 - LMT 1895 S +10 AT AE%sT 1919 O 24 +10 AU AE%sT 1967 +10 AT AE%sT +Z Australia/Lindeman 9:55:56 - LMT 1895 +10 AU AE%sT 1971 +10 AQ AE%sT 1992 Jul +10 Ho AE%sT +Z Australia/Lord_Howe 10:36:20 - LMT 1895 F +10 - AEST 1981 Mar +10:30 LH %z 1985 Jul +10:30 LH %z +Z Australia/Melbourne 9:39:52 - LMT 1895 F +10 AU AE%sT 1971 +10 AV AE%sT +Z Australia/Perth 7:43:24 - LMT 1895 D +8 AU AW%sT 1943 Jul +8 AW AW%sT +Z Australia/Sydney 10:4:52 - LMT 1895 F +10 AU AE%sT 1971 +10 AN AE%sT +Z CST6CDT -6 US C%sT +Z EST5EDT -5 US E%sT +Z Etc/GMT 0 - GMT +Z Etc/GMT+1 -1 - %z +Z Etc/GMT+10 -10 - %z +Z Etc/GMT+11 -11 - %z +Z Etc/GMT+12 -12 - %z +Z Etc/GMT+2 -2 - %z +Z Etc/GMT+3 -3 - %z +Z Etc/GMT+4 -4 - %z +Z Etc/GMT+5 -5 - %z +Z Etc/GMT+6 -6 - %z +Z Etc/GMT+7 -7 - %z +Z Etc/GMT+8 -8 - %z +Z Etc/GMT+9 -9 - %z +Z Etc/GMT-1 1 - %z +Z Etc/GMT-10 10 - %z +Z Etc/GMT-11 11 - %z +Z Etc/GMT-12 12 - %z +Z Etc/GMT-13 13 - %z +Z Etc/GMT-14 14 - %z +Z Etc/GMT-2 2 - %z +Z Etc/GMT-3 3 - %z +Z Etc/GMT-4 4 - %z +Z Etc/GMT-5 5 - %z +Z Etc/GMT-6 6 - %z +Z Etc/GMT-7 7 - %z +Z Etc/GMT-8 8 - %z +Z Etc/GMT-9 9 - %z +Z Etc/UTC 0 - UTC +Z Europe/Andorra 0:6:4 - LMT 1901 +0 - WET 1946 S 30 +1 - CET 1985 Mar 31 2 +1 E CE%sT +Z Europe/Astrakhan 3:12:12 - LMT 1924 May +3 - %z 1930 Jun 21 +4 R %z 1989 Mar 26 2s +3 R %z 1991 Mar 31 2s +4 - %z 1992 Mar 29 2s +3 R %z 2011 Mar 27 2s +4 - %z 2014 O 26 2s +3 - %z 2016 Mar 27 2s +4 - %z +Z Europe/Athens 1:34:52 - LMT 1895 S 14 +1:34:52 - AMT 1916 Jul 28 0:1 +2 g EE%sT 1941 Ap 30 +1 g CE%sT 1944 Ap 4 +2 g EE%sT 1981 +2 E EE%sT +Z Europe/Belgrade 1:22 - LMT 1884 +1 - CET 1941 Ap 18 23 +1 c CE%sT 1945 +1 - CET 1945 May 8 2s +1 1 CEST 1945 S 16 2s +1 - CET 1982 N 27 +1 E CE%sT +Z Europe/Berlin 0:53:28 - LMT 1893 Ap +1 c CE%sT 1945 May 24 2 +1 So CE%sT 1946 +1 DE CE%sT 1980 +1 E CE%sT +Z Europe/Brussels 0:17:30 - LMT 1880 +0:17:30 - BMT 1892 May 1 0:17:30 +0 - WET 1914 N 8 +1 - CET 1916 May +1 c CE%sT 1918 N 11 11u +0 b WE%sT 1940 May 20 2s +1 c CE%sT 1944 S 3 +1 b CE%sT 1977 +1 E CE%sT +Z Europe/Bucharest 1:44:24 - LMT 1891 O +1:44:24 - BMT 1931 Jul 24 +2 z EE%sT 1981 Mar 29 2s +2 c EE%sT 1991 +2 z EE%sT 1994 +2 e EE%sT 1997 +2 E EE%sT +Z Europe/Budapest 1:16:20 - LMT 1890 N +1 c CE%sT 1918 +1 h CE%sT 1941 Ap 7 23 +1 c CE%sT 1945 +1 h CE%sT 1984 +1 E CE%sT +Z Europe/Chisinau 1:55:20 - LMT 1880 +1:55 - CMT 1918 F 15 +1:44:24 - BMT 1931 Jul 24 +2 z EE%sT 1940 Au 15 +2 1 EEST 1941 Jul 17 +1 c CE%sT 1944 Au 24 +3 R MSK/MSD 1990 May 6 2 +2 R EE%sT 1992 +2 e EE%sT 1997 +2 MD EE%sT 2022 +2 E EE%sT +Z Europe/Dublin -0:25:21 - LMT 1880 Au 2 +-0:25:21 - DMT 1916 May 21 2s +-0:25:21 1 IST 1916 O 1 2s +0 G %s 1921 D 6 +0 G GMT/IST 1925 S Su>=16 2s +0 - GMT 1926 +0 G GMT/IST 1940 F 25 2s +0 1 IST 1946 O 6 2s +0 - GMT 1947 Mar 16 2s +0 1 IST 1947 N 2 2s +0 - GMT 1948 Ap 18 2s +0 G GMT/IST 1968 O 27 +1 IE IST/GMT +Z Europe/Gibraltar -0:21:24 - LMT 1880 Au 2 +0 G %s 1957 Ap 14 2 +1 - CET 1982 +1 E CE%sT +Z Europe/Helsinki 1:39:49 - LMT 1878 May 31 +1:39:49 - HMT 1921 May +2 FI EE%sT 1983 +2 E EE%sT +Z Europe/Istanbul 1:55:52 - LMT 1880 +1:56:56 - IMT 1910 O +2 T EE%sT 1978 Jun 29 +3 T %z 1984 N 1 2 +2 T EE%sT 2007 +2 E EE%sT 2011 Mar 27 1u +2 - EET 2011 Mar 28 1u +2 E EE%sT 2014 Mar 30 1u +2 - EET 2014 Mar 31 1u +2 E EE%sT 2015 O 25 1u +2 1 EEST 2015 N 8 1u +2 E EE%sT 2016 S 7 +3 - %z +Z Europe/Kaliningrad 1:22 - LMT 1893 Ap +1 c CE%sT 1945 Ap 10 +2 O EE%sT 1946 Ap 7 +3 R MSK/MSD 1989 Mar 26 2s +2 R EE%sT 2011 Mar 27 2s +3 - %z 2014 O 26 2s +2 - EET +Z Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0u +3 - %z 1930 Jun 21 +4 R %z 1989 Mar 26 2s +3 R MSK/MSD 1991 Mar 31 2s +4 - %z 1992 Mar 29 2s +3 R MSK/MSD 2011 Mar 27 2s +4 - MSK 2014 O 26 2s +3 - MSK +Z Europe/Kyiv 2:2:4 - LMT 1880 +2:2:4 - KMT 1924 May 2 +2 - EET 1930 Jun 21 +3 - MSK 1941 S 20 +1 c CE%sT 1943 N 6 +3 R MSK/MSD 1990 Jul 1 2 +2 1 EEST 1991 S 29 3 +2 c EE%sT 1996 May 13 +2 E EE%sT +Z Europe/Lisbon -0:36:45 - LMT 1884 +-0:36:45 - LMT 1912 Ja 1 0u +0 p WE%sT 1966 O 2 2s +1 - CET 1976 S 26 1 +0 p WE%sT 1986 +0 E WE%sT 1992 S 27 1u +1 E CE%sT 1996 Mar 31 1u +0 E WE%sT +Z Europe/London -0:1:15 - LMT 1847 D +0 G %s 1968 O 27 +1 - BST 1971 O 31 2u +0 G %s 1996 +0 E GMT/BST +Z Europe/Madrid -0:14:44 - LMT 1901 Ja 1 0u +0 s WE%sT 1940 Mar 16 23 +1 s CE%sT 1979 +1 E CE%sT +Z Europe/Malta 0:58:4 - LMT 1893 N 2 +1 I CE%sT 1973 Mar 31 +1 MT CE%sT 1981 +1 E CE%sT +Z Europe/Minsk 1:50:16 - LMT 1880 +1:50 - MMT 1924 May 2 +2 - EET 1930 Jun 21 +3 - MSK 1941 Jun 28 +1 c CE%sT 1944 Jul 3 +3 R MSK/MSD 1990 +3 - MSK 1991 Mar 31 2s +2 R EE%sT 2011 Mar 27 2s +3 - %z +Z Europe/Moscow 2:30:17 - LMT 1880 +2:30:17 - MMT 1916 Jul 3 +2:31:19 R %s 1919 Jul 1 0u +3 R %s 1921 O +3 R MSK/MSD 1922 O +2 - EET 1930 Jun 21 +3 R MSK/MSD 1991 Mar 31 2s +2 R EE%sT 1992 Ja 19 2s +3 R MSK/MSD 2011 Mar 27 2s +4 - MSK 2014 O 26 2s +3 - MSK +Z Europe/Paris 0:9:21 - LMT 1891 Mar 16 +0:9:21 - PMT 1911 Mar 11 +0 F WE%sT 1940 Jun 14 23 +1 c CE%sT 1944 Au 25 +0 F WE%sT 1945 S 16 3 +1 F CE%sT 1977 +1 E CE%sT +Z Europe/Prague 0:57:44 - LMT 1850 +0:57:44 - PMT 1891 O +1 c CE%sT 1945 May 9 +1 CZ CE%sT 1946 D 1 3 +1 -1 GMT 1947 F 23 2 +1 CZ CE%sT 1979 +1 E CE%sT +Z Europe/Riga 1:36:34 - LMT 1880 +1:36:34 - RMT 1918 Ap 15 2 +1:36:34 1 LST 1918 S 16 3 +1:36:34 - RMT 1919 Ap 1 2 +1:36:34 1 LST 1919 May 22 3 +1:36:34 - RMT 1926 May 11 +2 - EET 1940 Au 5 +3 - MSK 1941 Jul +1 c CE%sT 1944 O 13 +3 R MSK/MSD 1989 Mar lastSu 2s +2 1 EEST 1989 S lastSu 2s +2 LV EE%sT 1997 Ja 21 +2 E EE%sT 2000 F 29 +2 - EET 2001 Ja 2 +2 E EE%sT +Z Europe/Rome 0:49:56 - LMT 1866 D 12 +0:49:56 - RMT 1893 O 31 23u +1 I CE%sT 1943 S 10 +1 c CE%sT 1944 Jun 4 +1 I CE%sT 1980 +1 E CE%sT +Z Europe/Samara 3:20:20 - LMT 1919 Jul 1 0u +3 - %z 1930 Jun 21 +4 - %z 1935 Ja 27 +4 R %z 1989 Mar 26 2s +3 R %z 1991 Mar 31 2s +2 R %z 1991 S 29 2s +3 - %z 1991 O 20 3 +4 R %z 2010 Mar 28 2s +3 R %z 2011 Mar 27 2s +4 - %z +Z Europe/Saratov 3:4:18 - LMT 1919 Jul 1 0u +3 - %z 1930 Jun 21 +4 R %z 1988 Mar 27 2s +3 R %z 1991 Mar 31 2s +4 - %z 1992 Mar 29 2s +3 R %z 2011 Mar 27 2s +4 - %z 2014 O 26 2s +3 - %z 2016 D 4 2s +4 - %z +Z Europe/Simferopol 2:16:24 - LMT 1880 +2:16 - SMT 1924 May 2 +2 - EET 1930 Jun 21 +3 - MSK 1941 N +1 c CE%sT 1944 Ap 13 +3 R MSK/MSD 1990 +3 - MSK 1990 Jul 1 2 +2 - EET 1992 Mar 20 +2 c EE%sT 1994 May +3 c MSK/MSD 1996 Mar 31 0s +3 1 MSD 1996 O 27 3s +3 - MSK 1997 Mar lastSu 1u +2 E EE%sT 2014 Mar 30 2 +4 - MSK 2014 O 26 2s +3 - MSK +Z Europe/Sofia 1:33:16 - LMT 1880 +1:56:56 - IMT 1894 N 30 +2 - EET 1942 N 2 3 +1 c CE%sT 1945 +1 - CET 1945 Ap 2 3 +2 - EET 1979 Mar 31 23 +2 BG EE%sT 1982 S 26 3 +2 c EE%sT 1991 +2 e EE%sT 1997 +2 E EE%sT +Z Europe/Tallinn 1:39 - LMT 1880 +1:39 - TMT 1918 F +1 c CE%sT 1919 Jul +1:39 - TMT 1921 May +2 - EET 1940 Au 6 +3 - MSK 1941 S 15 +1 c CE%sT 1944 S 22 +3 R MSK/MSD 1989 Mar 26 2s +2 1 EEST 1989 S 24 2s +2 c EE%sT 1998 S 22 +2 E EE%sT 1999 O 31 4 +2 - EET 2002 F 21 +2 E EE%sT +Z Europe/Tirane 1:19:20 - LMT 1914 +1 - CET 1940 Jun 16 +1 q CE%sT 1984 Jul +1 E CE%sT +Z Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0u +3 - %z 1930 Jun 21 +4 R %z 1989 Mar 26 2s +3 R %z 1991 Mar 31 2s +2 R %z 1992 Ja 19 2s +3 R %z 2011 Mar 27 2s +4 - %z 2014 O 26 2s +3 - %z 2016 Mar 27 2s +4 - %z +Z Europe/Vienna 1:5:21 - LMT 1893 Ap +1 c CE%sT 1920 +1 a CE%sT 1940 Ap 1 2s +1 c CE%sT 1945 Ap 2 2s +1 1 CEST 1945 Ap 12 2s +1 - CET 1946 +1 a CE%sT 1981 +1 E CE%sT +Z Europe/Vilnius 1:41:16 - LMT 1880 +1:24 - WMT 1917 +1:35:36 - KMT 1919 O 10 +1 - CET 1920 Jul 12 +2 - EET 1920 O 9 +1 - CET 1940 Au 3 +3 - MSK 1941 Jun 24 +1 c CE%sT 1944 Au +3 R MSK/MSD 1989 Mar 26 2s +2 R EE%sT 1991 S 29 2s +2 c EE%sT 1998 +2 - EET 1998 Mar 29 1u +1 E CE%sT 1999 O 31 1u +2 - EET 2003 +2 E EE%sT +Z Europe/Volgograd 2:57:40 - LMT 1920 Ja 3 +3 - %z 1930 Jun 21 +4 - %z 1961 N 11 +4 R %z 1988 Mar 27 2s +3 R MSK/MSD 1991 Mar 31 2s +4 - %z 1992 Mar 29 2s +3 R MSK/MSD 2011 Mar 27 2s +4 - MSK 2014 O 26 2s +3 - MSK 2018 O 28 2s +4 - %z 2020 D 27 2s +3 - MSK +Z Europe/Warsaw 1:24 - LMT 1880 +1:24 - WMT 1915 Au 5 +1 c CE%sT 1918 S 16 3 +2 O EE%sT 1922 Jun +1 O CE%sT 1940 Jun 23 2 +1 c CE%sT 1944 O +1 O CE%sT 1977 +1 W- CE%sT 1988 +1 E CE%sT +Z Europe/Zurich 0:34:8 - LMT 1853 Jul 16 +0:29:46 - BMT 1894 Jun +1 CH CE%sT 1981 +1 E CE%sT +Z Factory 0 - -00 +Z Indian/Chagos 4:49:40 - LMT 1907 +5 - %z 1996 +6 - %z +Z Indian/Maldives 4:54 - LMT 1880 +4:54 - MMT 1960 +5 - %z +Z Indian/Mauritius 3:50 - LMT 1907 +4 MU %z +Z MST7MDT -7 US M%sT +Z PST8PDT -8 US P%sT +Z Pacific/Apia 12:33:4 - LMT 1892 Jul 5 +-11:26:56 - LMT 1911 +-11:30 - %z 1950 +-11 WS %z 2011 D 29 24 +13 WS %z +Z Pacific/Auckland 11:39:4 - LMT 1868 N 2 +11:30 NZ NZ%sT 1946 +12 NZ NZ%sT +Z Pacific/Bougainville 10:22:16 - LMT 1880 +9:48:32 - PMMT 1895 +10 - %z 1942 Jul +9 - %z 1945 Au 21 +10 - %z 2014 D 28 2 +11 - %z +Z Pacific/Chatham 12:13:48 - LMT 1868 N 2 +12:15 - %z 1946 +12:45 k %z +Z Pacific/Easter -7:17:28 - LMT 1890 +-7:17:28 - EMT 1932 S +-7 x %z 1982 Mar 14 3u +-6 x %z +Z Pacific/Efate 11:13:16 - LMT 1912 Ja 13 +11 VU %z +Z Pacific/Fakaofo -11:24:56 - LMT 1901 +-11 - %z 2011 D 30 +13 - %z +Z Pacific/Fiji 11:55:44 - LMT 1915 O 26 +12 FJ %z +Z Pacific/Galapagos -5:58:24 - LMT 1931 +-5 - %z 1986 +-6 EC %z +Z Pacific/Gambier -8:59:48 - LMT 1912 O +-9 - %z +Z Pacific/Guadalcanal 10:39:48 - LMT 1912 O +11 - %z +Z Pacific/Guam -14:21 - LMT 1844 D 31 +9:39 - LMT 1901 +10 - GST 1941 D 10 +9 - %z 1944 Jul 31 +10 Gu G%sT 2000 D 23 +10 - ChST +Z Pacific/Honolulu -10:31:26 - LMT 1896 Ja 13 12 +-10:30 - HST 1933 Ap 30 2 +-10:30 1 HDT 1933 May 21 12 +-10:30 u H%sT 1947 Jun 8 2 +-10 - HST +Z Pacific/Kanton 0 - -00 1937 Au 31 +-12 - %z 1979 O +-11 - %z 1994 D 31 +13 - %z +Z Pacific/Kiritimati -10:29:20 - LMT 1901 +-10:40 - %z 1979 O +-10 - %z 1994 D 31 +14 - %z +Z Pacific/Kosrae -13:8:4 - LMT 1844 D 31 +10:51:56 - LMT 1901 +11 - %z 1914 O +9 - %z 1919 F +11 - %z 1937 +10 - %z 1941 Ap +9 - %z 1945 Au +11 - %z 1969 O +12 - %z 1999 +11 - %z +Z Pacific/Kwajalein 11:9:20 - LMT 1901 +11 - %z 1937 +10 - %z 1941 Ap +9 - %z 1944 F 6 +11 - %z 1969 O +-12 - %z 1993 Au 20 24 +12 - %z +Z Pacific/Marquesas -9:18 - LMT 1912 O +-9:30 - %z +Z Pacific/Nauru 11:7:40 - LMT 1921 Ja 15 +11:30 - %z 1942 Au 29 +9 - %z 1945 S 8 +11:30 - %z 1979 F 10 2 +12 - %z +Z Pacific/Niue -11:19:40 - LMT 1952 O 16 +-11:20 - %z 1964 Jul +-11 - %z +Z Pacific/Norfolk 11:11:52 - LMT 1901 +11:12 - %z 1951 +11:30 - %z 1974 O 27 2s +11:30 1 %z 1975 Mar 2 2s +11:30 - %z 2015 O 4 2s +11 - %z 2019 Jul +11 AN %z +Z Pacific/Noumea 11:5:48 - LMT 1912 Ja 13 +11 NC %z +Z Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5 +-11:22:48 - LMT 1911 +-11 - SST +Z Pacific/Palau -15:2:4 - LMT 1844 D 31 +8:57:56 - LMT 1901 +9 - %z +Z Pacific/Pitcairn -8:40:20 - LMT 1901 +-8:30 - %z 1998 Ap 27 +-8 - %z +Z Pacific/Port_Moresby 9:48:40 - LMT 1880 +9:48:32 - PMMT 1895 +10 - %z +Z Pacific/Rarotonga 13:20:56 - LMT 1899 D 26 +-10:39:4 - LMT 1952 O 16 +-10:30 - %z 1978 N 12 +-10 CK %z +Z Pacific/Tahiti -9:58:16 - LMT 1912 O +-10 - %z +Z Pacific/Tarawa 11:32:4 - LMT 1901 +12 - %z +Z Pacific/Tongatapu 12:19:12 - LMT 1945 S 10 +12:20 - %z 1961 +13 - %z 1999 +13 TO %z +L Etc/GMT GMT +L Australia/Sydney Australia/ACT +L Australia/Lord_Howe Australia/LHI +L Australia/Sydney Australia/NSW +L Australia/Darwin Australia/North +L Australia/Brisbane Australia/Queensland +L Australia/Adelaide Australia/South +L Australia/Hobart Australia/Tasmania +L Australia/Melbourne Australia/Victoria +L Australia/Perth Australia/West +L Australia/Broken_Hill Australia/Yancowinna +L America/Rio_Branco Brazil/Acre +L America/Noronha Brazil/DeNoronha +L America/Sao_Paulo Brazil/East +L America/Manaus Brazil/West +L Europe/Brussels CET +L America/Halifax Canada/Atlantic +L America/Winnipeg Canada/Central +L America/Toronto Canada/Eastern +L America/Edmonton Canada/Mountain +L America/St_Johns Canada/Newfoundland +L America/Vancouver Canada/Pacific +L America/Regina Canada/Saskatchewan +L America/Whitehorse Canada/Yukon +L America/Santiago Chile/Continental +L Pacific/Easter Chile/EasterIsland +L America/Havana Cuba +L Europe/Athens EET +L America/Panama EST +L Africa/Cairo Egypt +L Europe/Dublin Eire +L Etc/GMT Etc/GMT+0 +L Etc/GMT Etc/GMT-0 +L Etc/GMT Etc/GMT0 +L Etc/GMT Etc/Greenwich +L Etc/UTC Etc/UCT +L Etc/UTC Etc/Universal +L Etc/UTC Etc/Zulu +L Europe/London GB +L Europe/London GB-Eire +L Etc/GMT GMT+0 +L Etc/GMT GMT-0 +L Etc/GMT GMT0 +L Etc/GMT Greenwich +L Asia/Hong_Kong Hongkong +L Africa/Abidjan Iceland +L Asia/Tehran Iran +L Asia/Jerusalem Israel +L America/Jamaica Jamaica +L Asia/Tokyo Japan +L Pacific/Kwajalein Kwajalein +L Africa/Tripoli Libya +L Europe/Brussels MET +L America/Phoenix MST +L America/Tijuana Mexico/BajaNorte +L America/Mazatlan Mexico/BajaSur +L America/Mexico_City Mexico/General +L Pacific/Auckland NZ +L Pacific/Chatham NZ-CHAT +L America/Denver Navajo +L Asia/Shanghai PRC +L Europe/Warsaw Poland +L Europe/Lisbon Portugal +L Asia/Taipei ROC +L Asia/Seoul ROK +L Asia/Singapore Singapore +L Europe/Istanbul Turkey +L Etc/UTC UCT +L America/Anchorage US/Alaska +L America/Adak US/Aleutian +L America/Phoenix US/Arizona +L America/Chicago US/Central +L America/Indiana/Indianapolis US/East-Indiana +L America/New_York US/Eastern +L Pacific/Honolulu US/Hawaii +L America/Indiana/Knox US/Indiana-Starke +L America/Detroit US/Michigan +L America/Denver US/Mountain +L America/Los_Angeles US/Pacific +L Pacific/Pago_Pago US/Samoa +L Etc/UTC UTC +L Etc/UTC Universal +L Europe/Moscow W-SU +L Etc/UTC Zulu +L America/Argentina/Buenos_Aires America/Buenos_Aires +L America/Argentina/Catamarca America/Catamarca +L America/Argentina/Cordoba America/Cordoba +L America/Indiana/Indianapolis America/Indianapolis +L America/Argentina/Jujuy America/Jujuy +L America/Indiana/Knox America/Knox_IN +L America/Kentucky/Louisville America/Louisville +L America/Argentina/Mendoza America/Mendoza +L America/Puerto_Rico America/Virgin +L Pacific/Pago_Pago Pacific/Samoa +L Africa/Abidjan Africa/Accra +L Africa/Nairobi Africa/Addis_Ababa +L Africa/Nairobi Africa/Asmara +L Africa/Abidjan Africa/Bamako +L Africa/Lagos Africa/Bangui +L Africa/Abidjan Africa/Banjul +L Africa/Maputo Africa/Blantyre +L Africa/Lagos Africa/Brazzaville +L Africa/Maputo Africa/Bujumbura +L Africa/Abidjan Africa/Conakry +L Africa/Abidjan Africa/Dakar +L Africa/Nairobi Africa/Dar_es_Salaam +L Africa/Nairobi Africa/Djibouti +L Africa/Lagos Africa/Douala +L Africa/Abidjan Africa/Freetown +L Africa/Maputo Africa/Gaborone +L Africa/Maputo Africa/Harare +L Africa/Nairobi Africa/Kampala +L Africa/Maputo Africa/Kigali +L Africa/Lagos Africa/Kinshasa +L Africa/Lagos Africa/Libreville +L Africa/Abidjan Africa/Lome +L Africa/Lagos Africa/Luanda +L Africa/Maputo Africa/Lubumbashi +L Africa/Maputo Africa/Lusaka +L Africa/Lagos Africa/Malabo +L Africa/Johannesburg Africa/Maseru +L Africa/Johannesburg Africa/Mbabane +L Africa/Nairobi Africa/Mogadishu +L Africa/Lagos Africa/Niamey +L Africa/Abidjan Africa/Nouakchott +L Africa/Abidjan Africa/Ouagadougou +L Africa/Lagos Africa/Porto-Novo +L America/Puerto_Rico America/Anguilla +L America/Puerto_Rico America/Antigua +L America/Puerto_Rico America/Aruba +L America/Panama America/Atikokan +L America/Puerto_Rico America/Blanc-Sablon +L America/Panama America/Cayman +L America/Phoenix America/Creston +L America/Puerto_Rico America/Curacao +L America/Puerto_Rico America/Dominica +L America/Puerto_Rico America/Grenada +L America/Puerto_Rico America/Guadeloupe +L America/Puerto_Rico America/Kralendijk +L America/Puerto_Rico America/Lower_Princes +L America/Puerto_Rico America/Marigot +L America/Puerto_Rico America/Montserrat +L America/Toronto America/Nassau +L America/Puerto_Rico America/Port_of_Spain +L America/Puerto_Rico America/St_Barthelemy +L America/Puerto_Rico America/St_Kitts +L America/Puerto_Rico America/St_Lucia +L America/Puerto_Rico America/St_Thomas +L America/Puerto_Rico America/St_Vincent +L America/Puerto_Rico America/Tortola +L Pacific/Port_Moresby Antarctica/DumontDUrville +L Pacific/Auckland Antarctica/McMurdo +L Asia/Riyadh Antarctica/Syowa +L Europe/Berlin Arctic/Longyearbyen +L Asia/Riyadh Asia/Aden +L Asia/Qatar Asia/Bahrain +L Asia/Kuching Asia/Brunei +L Asia/Singapore Asia/Kuala_Lumpur +L Asia/Riyadh Asia/Kuwait +L Asia/Dubai Asia/Muscat +L Asia/Bangkok Asia/Phnom_Penh +L Asia/Bangkok Asia/Vientiane +L Africa/Abidjan Atlantic/Reykjavik +L Africa/Abidjan Atlantic/St_Helena +L Europe/Brussels Europe/Amsterdam +L Europe/Prague Europe/Bratislava +L Europe/Zurich Europe/Busingen +L Europe/Berlin Europe/Copenhagen +L Europe/London Europe/Guernsey +L Europe/London Europe/Isle_of_Man +L Europe/London Europe/Jersey +L Europe/Belgrade Europe/Ljubljana +L Europe/Brussels Europe/Luxembourg +L Europe/Helsinki Europe/Mariehamn +L Europe/Paris Europe/Monaco +L Europe/Berlin Europe/Oslo +L Europe/Belgrade Europe/Podgorica +L Europe/Rome Europe/San_Marino +L Europe/Belgrade Europe/Sarajevo +L Europe/Belgrade Europe/Skopje +L Europe/Berlin Europe/Stockholm +L Europe/Zurich Europe/Vaduz +L Europe/Rome Europe/Vatican +L Europe/Belgrade Europe/Zagreb +L Africa/Nairobi Indian/Antananarivo +L Asia/Bangkok Indian/Christmas +L Asia/Yangon Indian/Cocos +L Africa/Nairobi Indian/Comoro +L Indian/Maldives Indian/Kerguelen +L Asia/Dubai Indian/Mahe +L Africa/Nairobi Indian/Mayotte +L Asia/Dubai Indian/Reunion +L Pacific/Port_Moresby Pacific/Chuuk +L Pacific/Tarawa Pacific/Funafuti +L Pacific/Tarawa Pacific/Majuro +L Pacific/Pago_Pago Pacific/Midway +L Pacific/Guadalcanal Pacific/Pohnpei +L Pacific/Guam Pacific/Saipan +L Pacific/Tarawa Pacific/Wake +L Pacific/Tarawa Pacific/Wallis +L Africa/Abidjan Africa/Timbuktu +L America/Argentina/Catamarca America/Argentina/ComodRivadavia +L America/Adak America/Atka +L America/Panama America/Coral_Harbour +L America/Tijuana America/Ensenada +L America/Indiana/Indianapolis America/Fort_Wayne +L America/Toronto America/Montreal +L America/Toronto America/Nipigon +L America/Iqaluit America/Pangnirtung +L America/Rio_Branco America/Porto_Acre +L America/Winnipeg America/Rainy_River +L America/Argentina/Cordoba America/Rosario +L America/Tijuana America/Santa_Isabel +L America/Denver America/Shiprock +L America/Toronto America/Thunder_Bay +L America/Edmonton America/Yellowknife +L Pacific/Auckland Antarctica/South_Pole +L Asia/Ulaanbaatar Asia/Choibalsan +L Asia/Shanghai Asia/Chongqing +L Asia/Shanghai Asia/Harbin +L Asia/Urumqi Asia/Kashgar +L Asia/Jerusalem Asia/Tel_Aviv +L Europe/Berlin Atlantic/Jan_Mayen +L Australia/Sydney Australia/Canberra +L Australia/Hobart Australia/Currie +L Europe/London Europe/Belfast +L Europe/Chisinau Europe/Tiraspol +L Europe/Kyiv Europe/Uzhgorod +L Europe/Kyiv Europe/Zaporozhye +L Pacific/Kanton Pacific/Enderbury +L Pacific/Honolulu Pacific/Johnston +L Pacific/Port_Moresby Pacific/Yap +L Europe/Lisbon WET +L Africa/Nairobi Africa/Asmera +L America/Nuuk America/Godthab +L Asia/Ashgabat Asia/Ashkhabad +L Asia/Kolkata Asia/Calcutta +L Asia/Shanghai Asia/Chungking +L Asia/Dhaka Asia/Dacca +L Europe/Istanbul Asia/Istanbul +L Asia/Kathmandu Asia/Katmandu +L Asia/Macau Asia/Macao +L Asia/Yangon Asia/Rangoon +L Asia/Ho_Chi_Minh Asia/Saigon +L Asia/Thimphu Asia/Thimbu +L Asia/Makassar Asia/Ujung_Pandang +L Asia/Ulaanbaatar Asia/Ulan_Bator +L Atlantic/Faroe Atlantic/Faeroe +L Europe/Kyiv Europe/Kiev +L Asia/Nicosia Europe/Nicosia +L Pacific/Honolulu HST +L Pacific/Guadalcanal Pacific/Ponape +L Pacific/Port_Moresby Pacific/Truk diff --git a/vendor/tzdata/zoneinfo/zone.tab b/vendor/tzdata/zoneinfo/zone.tab new file mode 100644 index 0000000..7455c05 --- /dev/null +++ b/vendor/tzdata/zoneinfo/zone.tab @@ -0,0 +1,448 @@ +# tzdb timezone descriptions (deprecated version) +# +# This file is in the public domain, so clarified as of +# 2009-05-17 by Arthur David Olson. +# +# From Paul Eggert (2021-09-20): +# This file is intended as a backward-compatibility aid for older programs. +# New programs should use zone1970.tab. This file is like zone1970.tab (see +# zone1970.tab's comments), but with the following additional restrictions: +# +# 1. This file contains only ASCII characters. +# 2. The first data column contains exactly one country code. +# +# Because of (2), each row stands for an area that is the intersection +# of a region identified by a country code and of a timezone where civil +# clocks have agreed since 1970; this is a narrower definition than +# that of zone1970.tab. +# +# Unlike zone1970.tab, a row's third column can be a Link from +# 'backward' instead of a Zone. +# +# This table is intended as an aid for users, to help them select timezones +# appropriate for their practical needs. It is not intended to take or +# endorse any position on legal or territorial claims. +# +#country- +#code coordinates TZ comments +AD +4230+00131 Europe/Andorra +AE +2518+05518 Asia/Dubai +AF +3431+06912 Asia/Kabul +AG +1703-06148 America/Antigua +AI +1812-06304 America/Anguilla +AL +4120+01950 Europe/Tirane +AM +4011+04430 Asia/Yerevan +AO -0848+01314 Africa/Luanda +AQ -7750+16636 Antarctica/McMurdo New Zealand time - McMurdo, South Pole +AQ -6617+11031 Antarctica/Casey Casey +AQ -6835+07758 Antarctica/Davis Davis +AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville +AQ -6736+06253 Antarctica/Mawson Mawson +AQ -6448-06406 Antarctica/Palmer Palmer +AQ -6734-06808 Antarctica/Rothera Rothera +AQ -690022+0393524 Antarctica/Syowa Syowa +AQ -720041+0023206 Antarctica/Troll Troll +AQ -7824+10654 Antarctica/Vostok Vostok +AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF) +AR -3124-06411 America/Argentina/Cordoba Argentina (most areas: CB, CC, CN, ER, FM, MN, SE, SF) +AR -2447-06525 America/Argentina/Salta Salta (SA, LP, NQ, RN) +AR -2411-06518 America/Argentina/Jujuy Jujuy (JY) +AR -2649-06513 America/Argentina/Tucuman Tucuman (TM) +AR -2828-06547 America/Argentina/Catamarca Catamarca (CT), Chubut (CH) +AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR) +AR -3132-06831 America/Argentina/San_Juan San Juan (SJ) +AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ) +AR -3319-06621 America/Argentina/San_Luis San Luis (SL) +AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC) +AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF) +AS -1416-17042 Pacific/Pago_Pago +AT +4813+01620 Europe/Vienna +AU -3133+15905 Australia/Lord_Howe Lord Howe Island +AU -5430+15857 Antarctica/Macquarie Macquarie Island +AU -4253+14719 Australia/Hobart Tasmania +AU -3749+14458 Australia/Melbourne Victoria +AU -3352+15113 Australia/Sydney New South Wales (most areas) +AU -3157+14127 Australia/Broken_Hill New South Wales (Yancowinna) +AU -2728+15302 Australia/Brisbane Queensland (most areas) +AU -2016+14900 Australia/Lindeman Queensland (Whitsunday Islands) +AU -3455+13835 Australia/Adelaide South Australia +AU -1228+13050 Australia/Darwin Northern Territory +AU -3157+11551 Australia/Perth Western Australia (most areas) +AU -3143+12852 Australia/Eucla Western Australia (Eucla) +AW +1230-06958 America/Aruba +AX +6006+01957 Europe/Mariehamn +AZ +4023+04951 Asia/Baku +BA +4352+01825 Europe/Sarajevo +BB +1306-05937 America/Barbados +BD +2343+09025 Asia/Dhaka +BE +5050+00420 Europe/Brussels +BF +1222-00131 Africa/Ouagadougou +BG +4241+02319 Europe/Sofia +BH +2623+05035 Asia/Bahrain +BI -0323+02922 Africa/Bujumbura +BJ +0629+00237 Africa/Porto-Novo +BL +1753-06251 America/St_Barthelemy +BM +3217-06446 Atlantic/Bermuda +BN +0456+11455 Asia/Brunei +BO -1630-06809 America/La_Paz +BQ +120903-0681636 America/Kralendijk +BR -0351-03225 America/Noronha Atlantic islands +BR -0127-04829 America/Belem Para (east), Amapa +BR -0343-03830 America/Fortaleza Brazil (northeast: MA, PI, CE, RN, PB) +BR -0803-03454 America/Recife Pernambuco +BR -0712-04812 America/Araguaina Tocantins +BR -0940-03543 America/Maceio Alagoas, Sergipe +BR -1259-03831 America/Bahia Bahia +BR -2332-04637 America/Sao_Paulo Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS) +BR -2027-05437 America/Campo_Grande Mato Grosso do Sul +BR -1535-05605 America/Cuiaba Mato Grosso +BR -0226-05452 America/Santarem Para (west) +BR -0846-06354 America/Porto_Velho Rondonia +BR +0249-06040 America/Boa_Vista Roraima +BR -0308-06001 America/Manaus Amazonas (east) +BR -0640-06952 America/Eirunepe Amazonas (west) +BR -0958-06748 America/Rio_Branco Acre +BS +2505-07721 America/Nassau +BT +2728+08939 Asia/Thimphu +BW -2439+02555 Africa/Gaborone +BY +5354+02734 Europe/Minsk +BZ +1730-08812 America/Belize +CA +4734-05243 America/St_Johns Newfoundland, Labrador (SE) +CA +4439-06336 America/Halifax Atlantic - NS (most areas), PE +CA +4612-05957 America/Glace_Bay Atlantic - NS (Cape Breton) +CA +4606-06447 America/Moncton Atlantic - New Brunswick +CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas) +CA +5125-05707 America/Blanc-Sablon AST - QC (Lower North Shore) +CA +4339-07923 America/Toronto Eastern - ON & QC (most areas) +CA +6344-06828 America/Iqaluit Eastern - NU (most areas) +CA +484531-0913718 America/Atikokan EST - ON (Atikokan), NU (Coral H) +CA +4953-09709 America/Winnipeg EST - Manitoba, ON (northwest) +CA +744144-0944945 America/Resolute Central - NU (Resolute) +CA +624900-0920459 America/Rankin_Inlet Central - NU (central) +CA +5024-10439 America/Regina CST - SK (most areas) +CA +5017-10750 America/Swift_Current CST - SK (midwest) +CA +5333-11328 America/Edmonton CST - AB, BC(E), NT(E), SK(W) +CA +690650-1050310 America/Cambridge_Bay Mountain - NU (west) +CA +682059-1334300 America/Inuvik CST - NT (west) +CA +4916-12307 America/Vancouver MST - BC (most areas) +CA +4906-11631 America/Creston MST - BC (Creston) +CA +5546-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John) +CA +5848-12242 America/Fort_Nelson MST - BC (Ft Nelson) +CA +6043-13503 America/Whitehorse MST - Yukon (east) +CA +6404-13925 America/Dawson MST - Yukon (west) +CC -1210+09655 Indian/Cocos +CD -0418+01518 Africa/Kinshasa Dem. Rep. of Congo (west) +CD -1140+02728 Africa/Lubumbashi Dem. Rep. of Congo (east) +CF +0422+01835 Africa/Bangui +CG -0416+01517 Africa/Brazzaville +CH +4723+00832 Europe/Zurich +CI +0519-00402 Africa/Abidjan +CK -2114-15946 Pacific/Rarotonga +CL -3327-07040 America/Santiago most of Chile +CL -4534-07204 America/Coyhaique Aysen Region +CL -5309-07055 America/Punta_Arenas Magallanes Region +CL -2709-10926 Pacific/Easter Easter Island +CM +0403+00942 Africa/Douala +CN +3114+12128 Asia/Shanghai Beijing Time +CN +4348+08735 Asia/Urumqi Xinjiang Time +CO +0436-07405 America/Bogota +CR +0956-08405 America/Costa_Rica +CU +2308-08222 America/Havana +CV +1455-02331 Atlantic/Cape_Verde +CW +1211-06900 America/Curacao +CX -1025+10543 Indian/Christmas +CY +3510+03322 Asia/Nicosia most of Cyprus +CY +3507+03357 Asia/Famagusta Northern Cyprus +CZ +5005+01426 Europe/Prague +DE +5230+01322 Europe/Berlin most of Germany +DE +4742+00841 Europe/Busingen Busingen +DJ +1136+04309 Africa/Djibouti +DK +5540+01235 Europe/Copenhagen +DM +1518-06124 America/Dominica +DO +1828-06954 America/Santo_Domingo +DZ +3647+00303 Africa/Algiers +EC -0210-07950 America/Guayaquil Ecuador (mainland) +EC -0054-08936 Pacific/Galapagos Galapagos Islands +EE +5925+02445 Europe/Tallinn +EG +3003+03115 Africa/Cairo +EH +2709-01312 Africa/El_Aaiun +ER +1520+03853 Africa/Asmara +ES +4024-00341 Europe/Madrid Spain (mainland) +ES +3553-00519 Africa/Ceuta Ceuta, Melilla +ES +2806-01524 Atlantic/Canary Canary Islands +ET +0902+03842 Africa/Addis_Ababa +FI +6010+02458 Europe/Helsinki +FJ -1808+17825 Pacific/Fiji +FK -5142-05751 Atlantic/Stanley +FM +0725+15147 Pacific/Chuuk Chuuk/Truk, Yap +FM +0658+15813 Pacific/Pohnpei Pohnpei/Ponape +FM +0519+16259 Pacific/Kosrae Kosrae +FO +6201-00646 Atlantic/Faroe +FR +4852+00220 Europe/Paris +GA +0023+00927 Africa/Libreville +GB +513030-0000731 Europe/London +GD +1203-06145 America/Grenada +GE +4143+04449 Asia/Tbilisi +GF +0456-05220 America/Cayenne +GG +492717-0023210 Europe/Guernsey +GH +0533-00013 Africa/Accra +GI +3608-00521 Europe/Gibraltar +GL +6411-05144 America/Nuuk most of Greenland +GL +7646-01840 America/Danmarkshavn National Park (east coast) +GL +7029-02158 America/Scoresbysund Scoresbysund/Ittoqqortoormiit +GL +7634-06847 America/Thule Thule/Pituffik +GM +1328-01639 Africa/Banjul +GN +0931-01343 Africa/Conakry +GP +1614-06132 America/Guadeloupe +GQ +0345+00847 Africa/Malabo +GR +3758+02343 Europe/Athens +GS -5416-03632 Atlantic/South_Georgia +GT +1438-09031 America/Guatemala +GU +1328+14445 Pacific/Guam +GW +1151-01535 Africa/Bissau +GY +0648-05810 America/Guyana +HK +2217+11409 Asia/Hong_Kong +HN +1406-08713 America/Tegucigalpa +HR +4548+01558 Europe/Zagreb +HT +1832-07220 America/Port-au-Prince +HU +4730+01905 Europe/Budapest +ID -0610+10648 Asia/Jakarta Java, Sumatra +ID -0002+10920 Asia/Pontianak Borneo (west, central) +ID -0507+11924 Asia/Makassar Borneo (east, south), Sulawesi/Celebes, Bali, Nusa Tengarra, Timor (west) +ID -0232+14042 Asia/Jayapura New Guinea (West Papua / Irian Jaya), Malukus/Moluccas +IE +5320-00615 Europe/Dublin +IL +314650+0351326 Asia/Jerusalem +IM +5409-00428 Europe/Isle_of_Man +IN +2232+08822 Asia/Kolkata +IO -0720+07225 Indian/Chagos +IQ +3321+04425 Asia/Baghdad +IR +3540+05126 Asia/Tehran +IS +6409-02151 Atlantic/Reykjavik +IT +4154+01229 Europe/Rome +JE +491101-0020624 Europe/Jersey +JM +175805-0764736 America/Jamaica +JO +3157+03556 Asia/Amman +JP +353916+1394441 Asia/Tokyo +KE -0117+03649 Africa/Nairobi +KG +4254+07436 Asia/Bishkek +KH +1133+10455 Asia/Phnom_Penh +KI +0125+17300 Pacific/Tarawa Gilbert Islands +KI -0247-17143 Pacific/Kanton Phoenix Islands +KI +0152-15720 Pacific/Kiritimati Line Islands +KM -1141+04316 Indian/Comoro +KN +1718-06243 America/St_Kitts +KP +3901+12545 Asia/Pyongyang +KR +3733+12658 Asia/Seoul +KW +2920+04759 Asia/Kuwait +KY +1918-08123 America/Cayman +KZ +4315+07657 Asia/Almaty most of Kazakhstan +KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda +KZ +5312+06337 Asia/Qostanay Qostanay/Kostanay/Kustanay +KZ +5017+05710 Asia/Aqtobe Aqtobe/Aktobe +KZ +4431+05016 Asia/Aqtau Mangghystau/Mankistau +KZ +4707+05156 Asia/Atyrau Atyrau/Atirau/Gur'yev +KZ +5113+05121 Asia/Oral West Kazakhstan +LA +1758+10236 Asia/Vientiane +LB +3353+03530 Asia/Beirut +LC +1401-06100 America/St_Lucia +LI +4709+00931 Europe/Vaduz +LK +0656+07951 Asia/Colombo +LR +0618-01047 Africa/Monrovia +LS -2928+02730 Africa/Maseru +LT +5441+02519 Europe/Vilnius +LU +4936+00609 Europe/Luxembourg +LV +5657+02406 Europe/Riga +LY +3254+01311 Africa/Tripoli +MA +3339-00735 Africa/Casablanca +MC +4342+00723 Europe/Monaco +MD +4700+02850 Europe/Chisinau +ME +4226+01916 Europe/Podgorica +MF +1804-06305 America/Marigot +MG -1855+04731 Indian/Antananarivo +MH +0709+17112 Pacific/Majuro most of Marshall Islands +MH +0905+16720 Pacific/Kwajalein Kwajalein +MK +4159+02126 Europe/Skopje +ML +1239-00800 Africa/Bamako +MM +1647+09610 Asia/Yangon +MN +4755+10653 Asia/Ulaanbaatar most of Mongolia +MN +4801+09139 Asia/Hovd Bayan-Olgii, Hovd, Uvs +MO +221150+1133230 Asia/Macau +MP +1512+14545 Pacific/Saipan +MQ +1436-06105 America/Martinique +MR +1806-01557 Africa/Nouakchott +MS +1643-06213 America/Montserrat +MT +3554+01431 Europe/Malta +MU -2010+05730 Indian/Mauritius +MV +0410+07330 Indian/Maldives +MW -1547+03500 Africa/Blantyre +MX +1924-09909 America/Mexico_City Central Mexico +MX +2105-08646 America/Cancun Quintana Roo +MX +2058-08937 America/Merida Campeche, Yucatan +MX +2540-10019 America/Monterrey Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas) +MX +2550-09730 America/Matamoros Coahuila, Nuevo Leon, Tamaulipas (US border) +MX +2838-10605 America/Chihuahua Chihuahua (most areas) +MX +3144-10629 America/Ciudad_Juarez Chihuahua (US border - west) +MX +2934-10425 America/Ojinaga Chihuahua (US border - east) +MX +2313-10625 America/Mazatlan Baja California Sur, Nayarit (most areas), Sinaloa +MX +2048-10515 America/Bahia_Banderas Bahia de Banderas +MX +2904-11058 America/Hermosillo Sonora +MX +3232-11701 America/Tijuana Baja California +MY +0310+10142 Asia/Kuala_Lumpur Malaysia (peninsula) +MY +0133+11020 Asia/Kuching Sabah, Sarawak +MZ -2558+03235 Africa/Maputo +NA -2234+01706 Africa/Windhoek +NC -2216+16627 Pacific/Noumea +NE +1331+00207 Africa/Niamey +NF -2903+16758 Pacific/Norfolk +NG +0627+00324 Africa/Lagos +NI +1209-08617 America/Managua +NL +5222+00454 Europe/Amsterdam +NO +5955+01045 Europe/Oslo +NP +2743+08519 Asia/Kathmandu +NR -0031+16655 Pacific/Nauru +NU -1901-16955 Pacific/Niue +NZ -3652+17446 Pacific/Auckland most of New Zealand +NZ -4357-17633 Pacific/Chatham Chatham Islands +OM +2336+05835 Asia/Muscat +PA +0858-07932 America/Panama +PE -1203-07703 America/Lima +PF -1732-14934 Pacific/Tahiti Society Islands +PF -0900-13930 Pacific/Marquesas Marquesas Islands +PF -2308-13457 Pacific/Gambier Gambier Islands +PG -0930+14710 Pacific/Port_Moresby most of Papua New Guinea +PG -0613+15534 Pacific/Bougainville Bougainville +PH +143512+1205804 Asia/Manila +PK +2452+06703 Asia/Karachi +PL +5215+02100 Europe/Warsaw +PM +4703-05620 America/Miquelon +PN -2504-13005 Pacific/Pitcairn +PR +182806-0660622 America/Puerto_Rico +PS +3130+03428 Asia/Gaza Gaza Strip +PS +313200+0350542 Asia/Hebron West Bank +PT +3843-00908 Europe/Lisbon Portugal (mainland) +PT +3238-01654 Atlantic/Madeira Madeira Islands +PT +3744-02540 Atlantic/Azores Azores +PW +0720+13429 Pacific/Palau +PY -2516-05740 America/Asuncion +QA +2517+05132 Asia/Qatar +RE -2052+05528 Indian/Reunion +RO +4426+02606 Europe/Bucharest +RS +4450+02030 Europe/Belgrade +RU +5443+02030 Europe/Kaliningrad MSK-01 - Kaliningrad +RU +554521+0373704 Europe/Moscow MSK+00 - Moscow area +# The obsolescent zone.tab format cannot represent Europe/Simferopol well. +# Put it in RU section and list as UA. See "territorial claims" above. +# Programs should use zone1970.tab instead; see above. +UA +4457+03406 Europe/Simferopol Crimea +RU +5836+04939 Europe/Kirov MSK+00 - Kirov +RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd +RU +4621+04803 Europe/Astrakhan MSK+01 - Astrakhan +RU +5134+04602 Europe/Saratov MSK+01 - Saratov +RU +5420+04824 Europe/Ulyanovsk MSK+01 - Ulyanovsk +RU +5312+05009 Europe/Samara MSK+01 - Samara, Udmurtia +RU +5651+06036 Asia/Yekaterinburg MSK+02 - Urals +RU +5500+07324 Asia/Omsk MSK+03 - Omsk +RU +5502+08255 Asia/Novosibirsk MSK+04 - Novosibirsk +RU +5322+08345 Asia/Barnaul MSK+04 - Altai +RU +5630+08458 Asia/Tomsk MSK+04 - Tomsk +RU +5345+08707 Asia/Novokuznetsk MSK+04 - Kemerovo +RU +5601+09250 Asia/Krasnoyarsk MSK+04 - Krasnoyarsk area +RU +5216+10420 Asia/Irkutsk MSK+05 - Irkutsk, Buryatia +RU +5203+11328 Asia/Chita MSK+06 - Zabaykalsky +RU +6200+12940 Asia/Yakutsk MSK+06 - Lena River +RU +623923+1353314 Asia/Khandyga MSK+06 - Tomponsky, Ust-Maysky +RU +4310+13156 Asia/Vladivostok MSK+07 - Amur River +RU +643337+1431336 Asia/Ust-Nera MSK+07 - Oymyakonsky +RU +5934+15048 Asia/Magadan MSK+08 - Magadan +RU +4658+14242 Asia/Sakhalin MSK+08 - Sakhalin Island +RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E), N Kuril Is +RU +5301+15839 Asia/Kamchatka MSK+09 - Kamchatka +RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea +RW -0157+03004 Africa/Kigali +SA +2438+04643 Asia/Riyadh +SB -0932+16012 Pacific/Guadalcanal +SC -0440+05528 Indian/Mahe +SD +1536+03232 Africa/Khartoum +SE +5920+01803 Europe/Stockholm +SG +0117+10351 Asia/Singapore +SH -1555-00542 Atlantic/St_Helena +SI +4603+01431 Europe/Ljubljana +SJ +7800+01600 Arctic/Longyearbyen +SK +4809+01707 Europe/Bratislava +SL +0830-01315 Africa/Freetown +SM +4355+01228 Europe/San_Marino +SN +1440-01726 Africa/Dakar +SO +0204+04522 Africa/Mogadishu +SR +0550-05510 America/Paramaribo +SS +0451+03137 Africa/Juba +ST +0020+00644 Africa/Sao_Tome +SV +1342-08912 America/El_Salvador +SX +180305-0630250 America/Lower_Princes +SY +3330+03618 Asia/Damascus +SZ -2618+03106 Africa/Mbabane +TC +2128-07108 America/Grand_Turk +TD +1207+01503 Africa/Ndjamena +TF -492110+0701303 Indian/Kerguelen +TG +0608+00113 Africa/Lome +TH +1345+10031 Asia/Bangkok +TJ +3835+06848 Asia/Dushanbe +TK -0922-17114 Pacific/Fakaofo +TL -0833+12535 Asia/Dili +TM +3757+05823 Asia/Ashgabat +TN +3648+01011 Africa/Tunis +TO -210800-1751200 Pacific/Tongatapu +TR +4101+02858 Europe/Istanbul +TT +1039-06131 America/Port_of_Spain +TV -0831+17913 Pacific/Funafuti +TW +2503+12130 Asia/Taipei +TZ -0648+03917 Africa/Dar_es_Salaam +UA +5026+03031 Europe/Kyiv most of Ukraine +UG +0019+03225 Africa/Kampala +UM +2813-17722 Pacific/Midway Midway Islands +UM +1917+16637 Pacific/Wake Wake Island +US +404251-0740023 America/New_York Eastern (most areas) +US +421953-0830245 America/Detroit Eastern - MI (most areas) +US +381515-0854534 America/Kentucky/Louisville Eastern - KY (Louisville area) +US +364947-0845057 America/Kentucky/Monticello Eastern - KY (Wayne) +US +394606-0860929 America/Indiana/Indianapolis Eastern - IN (most areas) +US +384038-0873143 America/Indiana/Vincennes Eastern - IN (Da, Du, K, Mn) +US +410305-0863611 America/Indiana/Winamac Eastern - IN (Pulaski) +US +382232-0862041 America/Indiana/Marengo Eastern - IN (Crawford) +US +382931-0871643 America/Indiana/Petersburg Eastern - IN (Pike) +US +384452-0850402 America/Indiana/Vevay Eastern - IN (Switzerland) +US +415100-0873900 America/Chicago Central (most areas) +US +375711-0864541 America/Indiana/Tell_City Central - IN (Perry) +US +411745-0863730 America/Indiana/Knox Central - IN (Starke) +US +450628-0873651 America/Menominee Central - MI (Wisconsin border) +US +470659-1011757 America/North_Dakota/Center Central - ND (Oliver) +US +465042-1012439 America/North_Dakota/New_Salem Central - ND (Morton rural) +US +471551-1014640 America/North_Dakota/Beulah Central - ND (Mercer) +US +394421-1045903 America/Denver Mountain (most areas) +US +433649-1161209 America/Boise Mountain - ID (south), OR (east) +US +332654-1120424 America/Phoenix MST - AZ (except Navajo) +US +340308-1181434 America/Los_Angeles Pacific +US +611305-1495401 America/Anchorage Alaska (most areas) +US +581807-1342511 America/Juneau Alaska - Juneau area +US +571035-1351807 America/Sitka Alaska - Sitka area +US +550737-1313435 America/Metlakatla Alaska - Annette Island +US +593249-1394338 America/Yakutat Alaska - Yakutat +US +643004-1652423 America/Nome Alaska (west) +US +515248-1763929 America/Adak Alaska - western Aleutians +US +211825-1575130 Pacific/Honolulu Hawaii +UY -345433-0561245 America/Montevideo +UZ +3940+06648 Asia/Samarkand Uzbekistan (west) +UZ +4120+06918 Asia/Tashkent Uzbekistan (east) +VA +415408+0122711 Europe/Vatican +VC +1309-06114 America/St_Vincent +VE +1030-06656 America/Caracas +VG +1827-06437 America/Tortola +VI +1821-06456 America/St_Thomas +VN +1045+10640 Asia/Ho_Chi_Minh +VU -1740+16825 Pacific/Efate +WF -1318-17610 Pacific/Wallis +WS -1350-17144 Pacific/Apia +YE +1245+04512 Asia/Aden +YT -1247+04514 Indian/Mayotte +ZA -2615+02800 Africa/Johannesburg +ZM -1525+02817 Africa/Lusaka +ZW -1750+03103 Africa/Harare diff --git a/vendor/tzdata/zoneinfo/zone1970.tab b/vendor/tzdata/zoneinfo/zone1970.tab new file mode 100644 index 0000000..1aed9b5 --- /dev/null +++ b/vendor/tzdata/zoneinfo/zone1970.tab @@ -0,0 +1,375 @@ +# tzdb timezone descriptions +# +# This file is in the public domain. +# +# From Paul Eggert (2025-05-15): +# This file contains a table where each row stands for a timezone where +# civil timestamps have agreed since 1970. Columns are separated by +# a single tab. Lines beginning with ‘#’ are comments. All text uses +# UTF-8 encoding. The columns of the table are as follows: +# +# 1. The countries that overlap the timezone, as a comma-separated list +# of ISO 3166 2-character country codes. +# 2. Latitude and longitude of the timezone’s principal location +# in ISO 6709 sign-degrees-minutes-seconds format, +# either ±DDMM±DDDMM or ±DDMMSS±DDDMMSS, +# first latitude (+ is north), then longitude (+ is east). +# 3. Timezone name used in value of TZ environment variable. +# Please see the theory.html file for how these names are chosen. +# If multiple timezones overlap a country, each has a row in the +# table, with each column 1 containing the country code. +# 4. Comments; present if and only if countries have multiple timezones, +# and useful only for those countries. For example, the comments +# for the row with countries CH,DE,LI and name Europe/Zurich +# are useful only for DE, since CH and LI have no other timezones. +# +# If a timezone covers multiple countries, the most-populous city is used, +# and that country is listed first in column 1; any other countries +# are listed alphabetically by country code. The table is sorted +# first by country code, then (if possible) by an order within the +# country that (1) makes some geographical sense, and (2) puts the +# most populous timezones first, where that does not contradict (1). +# +# This table is intended as an aid for users, to help them select timezones +# appropriate for their practical needs. It is not intended to take or +# endorse any position on legal or territorial claims. +# +#country- +#codes coordinates TZ comments +AD +4230+00131 Europe/Andorra +AE,OM,RE,SC,TF +2518+05518 Asia/Dubai Crozet +AF +3431+06912 Asia/Kabul +AL +4120+01950 Europe/Tirane +AM +4011+04430 Asia/Yerevan +AQ -6617+11031 Antarctica/Casey Casey +AQ -6835+07758 Antarctica/Davis Davis +AQ -6736+06253 Antarctica/Mawson Mawson +AQ -6448-06406 Antarctica/Palmer Palmer +AQ -6734-06808 Antarctica/Rothera Rothera +AQ -720041+0023206 Antarctica/Troll Troll +AQ -7824+10654 Antarctica/Vostok Vostok +AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF) +AR -3124-06411 America/Argentina/Cordoba most areas: CB, CC, CN, ER, FM, MN, SE, SF +AR -2447-06525 America/Argentina/Salta Salta (SA, LP, NQ, RN) +AR -2411-06518 America/Argentina/Jujuy Jujuy (JY) +AR -2649-06513 America/Argentina/Tucuman Tucumán (TM) +AR -2828-06547 America/Argentina/Catamarca Catamarca (CT), Chubut (CH) +AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR) +AR -3132-06831 America/Argentina/San_Juan San Juan (SJ) +AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ) +AR -3319-06621 America/Argentina/San_Luis San Luis (SL) +AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC) +AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF) +AS,UM -1416-17042 Pacific/Pago_Pago Midway +AT +4813+01620 Europe/Vienna +AU -3133+15905 Australia/Lord_Howe Lord Howe Island +AU -5430+15857 Antarctica/Macquarie Macquarie Island +AU -4253+14719 Australia/Hobart Tasmania +AU -3749+14458 Australia/Melbourne Victoria +AU -3352+15113 Australia/Sydney New South Wales (most areas) +AU -3157+14127 Australia/Broken_Hill New South Wales (Yancowinna) +AU -2728+15302 Australia/Brisbane Queensland (most areas) +AU -2016+14900 Australia/Lindeman Queensland (Whitsunday Islands) +AU -3455+13835 Australia/Adelaide South Australia +AU -1228+13050 Australia/Darwin Northern Territory +AU -3157+11551 Australia/Perth Western Australia (most areas) +AU -3143+12852 Australia/Eucla Western Australia (Eucla) +AZ +4023+04951 Asia/Baku +BB +1306-05937 America/Barbados +BD +2343+09025 Asia/Dhaka +BE,LU,NL +5050+00420 Europe/Brussels +BG +4241+02319 Europe/Sofia +BM +3217-06446 Atlantic/Bermuda +BO -1630-06809 America/La_Paz +BR -0351-03225 America/Noronha Atlantic islands +BR -0127-04829 America/Belem Pará (east), Amapá +BR -0343-03830 America/Fortaleza Brazil (northeast: MA, PI, CE, RN, PB) +BR -0803-03454 America/Recife Pernambuco +BR -0712-04812 America/Araguaina Tocantins +BR -0940-03543 America/Maceio Alagoas, Sergipe +BR -1259-03831 America/Bahia Bahia +BR -2332-04637 America/Sao_Paulo Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS) +BR -2027-05437 America/Campo_Grande Mato Grosso do Sul +BR -1535-05605 America/Cuiaba Mato Grosso +BR -0226-05452 America/Santarem Pará (west) +BR -0846-06354 America/Porto_Velho Rondônia +BR +0249-06040 America/Boa_Vista Roraima +BR -0308-06001 America/Manaus Amazonas (east) +BR -0640-06952 America/Eirunepe Amazonas (west) +BR -0958-06748 America/Rio_Branco Acre +BT +2728+08939 Asia/Thimphu +BY +5354+02734 Europe/Minsk +BZ +1730-08812 America/Belize +CA +4734-05243 America/St_Johns Newfoundland, Labrador (SE) +CA +4439-06336 America/Halifax Atlantic - NS (most areas), PE +CA +4612-05957 America/Glace_Bay Atlantic - NS (Cape Breton) +CA +4606-06447 America/Moncton Atlantic - New Brunswick +CA +5320-06025 America/Goose_Bay Atlantic - Labrador (most areas) +CA,BS +4339-07923 America/Toronto Eastern - ON & QC (most areas) +CA +6344-06828 America/Iqaluit Eastern - NU (most areas) +CA +4953-09709 America/Winnipeg EST - Manitoba, ON (northwest) +CA +744144-0944945 America/Resolute Central - NU (Resolute) +CA +624900-0920459 America/Rankin_Inlet Central - NU (central) +CA +5024-10439 America/Regina CST - SK (most areas) +CA +5017-10750 America/Swift_Current CST - SK (midwest) +CA +5333-11328 America/Edmonton CST - AB, BC(E), NT(E), SK(W) +CA +690650-1050310 America/Cambridge_Bay Mountain - NU (west) +CA +682059-1334300 America/Inuvik CST - NT (west) +CA +4916-12307 America/Vancouver MST - BC (most areas) +CA +5546-12014 America/Dawson_Creek MST - BC (Dawson Cr, Ft St John) +CA +5848-12242 America/Fort_Nelson MST - BC (Ft Nelson) +CA +6043-13503 America/Whitehorse MST - Yukon (east) +CA +6404-13925 America/Dawson MST - Yukon (west) +CH,DE,LI +4723+00832 Europe/Zurich Büsingen +CI,BF,GH,GM,GN,IS,ML,MR,SH,SL,SN,TG +0519-00402 Africa/Abidjan +CK -2114-15946 Pacific/Rarotonga +CL -3327-07040 America/Santiago most of Chile +CL -4534-07204 America/Coyhaique Aysén Region +CL -5309-07055 America/Punta_Arenas Magallanes Region +CL -2709-10926 Pacific/Easter Easter Island +CN +3114+12128 Asia/Shanghai Beijing Time +CN +4348+08735 Asia/Urumqi Xinjiang Time +CO +0436-07405 America/Bogota +CR +0956-08405 America/Costa_Rica +CU +2308-08222 America/Havana +CV +1455-02331 Atlantic/Cape_Verde +CY +3510+03322 Asia/Nicosia most of Cyprus +CY +3507+03357 Asia/Famagusta Northern Cyprus +CZ,SK +5005+01426 Europe/Prague +DE,DK,NO,SE,SJ +5230+01322 Europe/Berlin most of Germany +DO +1828-06954 America/Santo_Domingo +DZ +3647+00303 Africa/Algiers +EC -0210-07950 America/Guayaquil Ecuador (mainland) +EC -0054-08936 Pacific/Galapagos Galápagos Islands +EE +5925+02445 Europe/Tallinn +EG +3003+03115 Africa/Cairo +EH +2709-01312 Africa/El_Aaiun +ES +4024-00341 Europe/Madrid Spain (mainland) +ES +3553-00519 Africa/Ceuta Ceuta, Melilla +ES +2806-01524 Atlantic/Canary Canary Islands +FI,AX +6010+02458 Europe/Helsinki +FJ -1808+17825 Pacific/Fiji +FK -5142-05751 Atlantic/Stanley +FM +0519+16259 Pacific/Kosrae Kosrae +FO +6201-00646 Atlantic/Faroe +FR,MC +4852+00220 Europe/Paris +GB,GG,IM,JE +513030-0000731 Europe/London +GE +4143+04449 Asia/Tbilisi +GF +0456-05220 America/Cayenne +GI +3608-00521 Europe/Gibraltar +GL +6411-05144 America/Nuuk most of Greenland +GL +7646-01840 America/Danmarkshavn National Park (east coast) +GL +7029-02158 America/Scoresbysund Scoresbysund/Ittoqqortoormiit +GL +7634-06847 America/Thule Thule/Pituffik +GR +3758+02343 Europe/Athens +GS -5416-03632 Atlantic/South_Georgia +GT +1438-09031 America/Guatemala +GU,MP +1328+14445 Pacific/Guam +GW +1151-01535 Africa/Bissau +GY +0648-05810 America/Guyana +HK +2217+11409 Asia/Hong_Kong +HN +1406-08713 America/Tegucigalpa +HT +1832-07220 America/Port-au-Prince +HU +4730+01905 Europe/Budapest +ID -0610+10648 Asia/Jakarta Java, Sumatra +ID -0002+10920 Asia/Pontianak Borneo (west, central) +ID -0507+11924 Asia/Makassar Borneo (east, south), Sulawesi/Celebes, Bali, Nusa Tengarra, Timor (west) +ID -0232+14042 Asia/Jayapura New Guinea (West Papua / Irian Jaya), Malukus/Moluccas +IE +5320-00615 Europe/Dublin +IL +314650+0351326 Asia/Jerusalem +IN +2232+08822 Asia/Kolkata +IO -0720+07225 Indian/Chagos +IQ +3321+04425 Asia/Baghdad +IR +3540+05126 Asia/Tehran +IT,SM,VA +4154+01229 Europe/Rome +JM +175805-0764736 America/Jamaica +JO +3157+03556 Asia/Amman +JP,AU +353916+1394441 Asia/Tokyo Eyre Bird Observatory +KE,DJ,ER,ET,KM,MG,SO,TZ,UG,YT -0117+03649 Africa/Nairobi +KG +4254+07436 Asia/Bishkek +KI,MH,TV,UM,WF +0125+17300 Pacific/Tarawa Gilberts, Marshalls, Wake +KI -0247-17143 Pacific/Kanton Phoenix Islands +KI +0152-15720 Pacific/Kiritimati Line Islands +KP +3901+12545 Asia/Pyongyang +KR +3733+12658 Asia/Seoul +KZ +4315+07657 Asia/Almaty most of Kazakhstan +KZ +4448+06528 Asia/Qyzylorda Qyzylorda/Kyzylorda/Kzyl-Orda +KZ +5312+06337 Asia/Qostanay Qostanay/Kostanay/Kustanay +KZ +5017+05710 Asia/Aqtobe Aqtöbe/Aktobe +KZ +4431+05016 Asia/Aqtau Mangghystaū/Mankistau +KZ +4707+05156 Asia/Atyrau Atyraū/Atirau/Gur’yev +KZ +5113+05121 Asia/Oral West Kazakhstan +LB +3353+03530 Asia/Beirut +LK +0656+07951 Asia/Colombo +LR +0618-01047 Africa/Monrovia +LT +5441+02519 Europe/Vilnius +LV +5657+02406 Europe/Riga +LY +3254+01311 Africa/Tripoli +MA +3339-00735 Africa/Casablanca +MD +4700+02850 Europe/Chisinau +MH +0905+16720 Pacific/Kwajalein Kwajalein +MM,CC +1647+09610 Asia/Yangon +MN +4755+10653 Asia/Ulaanbaatar most of Mongolia +MN +4801+09139 Asia/Hovd Bayan-Ölgii, Hovd, Uvs +MO +221150+1133230 Asia/Macau +MQ +1436-06105 America/Martinique +MT +3554+01431 Europe/Malta +MU -2010+05730 Indian/Mauritius +MV,TF +0410+07330 Indian/Maldives Kerguelen, St Paul I, Amsterdam I +MX +1924-09909 America/Mexico_City Central Mexico +MX +2105-08646 America/Cancun Quintana Roo +MX +2058-08937 America/Merida Campeche, Yucatán +MX +2540-10019 America/Monterrey Durango; Coahuila, Nuevo León, Tamaulipas (most areas) +MX +2550-09730 America/Matamoros Coahuila, Nuevo León, Tamaulipas (US border) +MX +2838-10605 America/Chihuahua Chihuahua (most areas) +MX +3144-10629 America/Ciudad_Juarez Chihuahua (US border - west) +MX +2934-10425 America/Ojinaga Chihuahua (US border - east) +MX +2313-10625 America/Mazatlan Baja California Sur, Nayarit (most areas), Sinaloa +MX +2048-10515 America/Bahia_Banderas Bahía de Banderas +MX +2904-11058 America/Hermosillo Sonora +MX +3232-11701 America/Tijuana Baja California +MY,BN +0133+11020 Asia/Kuching Sabah, Sarawak +MZ,BI,BW,CD,MW,RW,ZM,ZW -2558+03235 Africa/Maputo Central Africa Time +NA -2234+01706 Africa/Windhoek +NC -2216+16627 Pacific/Noumea +NF -2903+16758 Pacific/Norfolk +NG,AO,BJ,CD,CF,CG,CM,GA,GQ,NE +0627+00324 Africa/Lagos West Africa Time +NI +1209-08617 America/Managua +NP +2743+08519 Asia/Kathmandu +NR -0031+16655 Pacific/Nauru +NU -1901-16955 Pacific/Niue +NZ,AQ -3652+17446 Pacific/Auckland New Zealand time +NZ -4357-17633 Pacific/Chatham Chatham Islands +PA,CA,KY +0858-07932 America/Panama EST - ON (Atikokan), NU (Coral H) +PE -1203-07703 America/Lima +PF -1732-14934 Pacific/Tahiti Society Islands +PF -0900-13930 Pacific/Marquesas Marquesas Islands +PF -2308-13457 Pacific/Gambier Gambier Islands +PG,AQ,FM -0930+14710 Pacific/Port_Moresby Papua New Guinea (most areas), Chuuk, Yap, Dumont d’Urville +PG -0613+15534 Pacific/Bougainville Bougainville +PH +143512+1205804 Asia/Manila +PK +2452+06703 Asia/Karachi +PL +5215+02100 Europe/Warsaw +PM +4703-05620 America/Miquelon +PN -2504-13005 Pacific/Pitcairn +PR,AG,CA,AI,AW,BL,BQ,CW,DM,GD,GP,KN,LC,MF,MS,SX,TT,VC,VG,VI +182806-0660622 America/Puerto_Rico AST - QC (Lower North Shore) +PS +3130+03428 Asia/Gaza Gaza Strip +PS +313200+0350542 Asia/Hebron West Bank +PT +3843-00908 Europe/Lisbon Portugal (mainland) +PT +3238-01654 Atlantic/Madeira Madeira Islands +PT +3744-02540 Atlantic/Azores Azores +PW +0720+13429 Pacific/Palau +PY -2516-05740 America/Asuncion +QA,BH +2517+05132 Asia/Qatar +RO +4426+02606 Europe/Bucharest +RS,BA,HR,ME,MK,SI +4450+02030 Europe/Belgrade +RU +5443+02030 Europe/Kaliningrad MSK-01 - Kaliningrad +RU +554521+0373704 Europe/Moscow MSK+00 - Moscow area +# Mention RU and UA alphabetically. See “territorial claims” above. +RU,UA +4457+03406 Europe/Simferopol Crimea +RU +5836+04939 Europe/Kirov MSK+00 - Kirov +RU +4844+04425 Europe/Volgograd MSK+00 - Volgograd +RU +4621+04803 Europe/Astrakhan MSK+01 - Astrakhan +RU +5134+04602 Europe/Saratov MSK+01 - Saratov +RU +5420+04824 Europe/Ulyanovsk MSK+01 - Ulyanovsk +RU +5312+05009 Europe/Samara MSK+01 - Samara, Udmurtia +RU +5651+06036 Asia/Yekaterinburg MSK+02 - Urals +RU +5500+07324 Asia/Omsk MSK+03 - Omsk +RU +5502+08255 Asia/Novosibirsk MSK+04 - Novosibirsk +RU +5322+08345 Asia/Barnaul MSK+04 - Altai +RU +5630+08458 Asia/Tomsk MSK+04 - Tomsk +RU +5345+08707 Asia/Novokuznetsk MSK+04 - Kemerovo +RU +5601+09250 Asia/Krasnoyarsk MSK+04 - Krasnoyarsk area +RU +5216+10420 Asia/Irkutsk MSK+05 - Irkutsk, Buryatia +RU +5203+11328 Asia/Chita MSK+06 - Zabaykalsky +RU +6200+12940 Asia/Yakutsk MSK+06 - Lena River +RU +623923+1353314 Asia/Khandyga MSK+06 - Tomponsky, Ust-Maysky +RU +4310+13156 Asia/Vladivostok MSK+07 - Amur River +RU +643337+1431336 Asia/Ust-Nera MSK+07 - Oymyakonsky +RU +5934+15048 Asia/Magadan MSK+08 - Magadan +RU +4658+14242 Asia/Sakhalin MSK+08 - Sakhalin Island +RU +6728+15343 Asia/Srednekolymsk MSK+08 - Sakha (E), N Kuril Is +RU +5301+15839 Asia/Kamchatka MSK+09 - Kamchatka +RU +6445+17729 Asia/Anadyr MSK+09 - Bering Sea +SA,AQ,KW,YE +2438+04643 Asia/Riyadh Syowa +SB,FM -0932+16012 Pacific/Guadalcanal Pohnpei +SD +1536+03232 Africa/Khartoum +SG,AQ,MY +0117+10351 Asia/Singapore peninsular Malaysia, Concordia +SR +0550-05510 America/Paramaribo +SS +0451+03137 Africa/Juba +ST +0020+00644 Africa/Sao_Tome +SV +1342-08912 America/El_Salvador +SY +3330+03618 Asia/Damascus +TC +2128-07108 America/Grand_Turk +TD +1207+01503 Africa/Ndjamena +TH,CX,KH,LA,VN +1345+10031 Asia/Bangkok north Vietnam +TJ +3835+06848 Asia/Dushanbe +TK -0922-17114 Pacific/Fakaofo +TL -0833+12535 Asia/Dili +TM +3757+05823 Asia/Ashgabat +TN +3648+01011 Africa/Tunis +TO -210800-1751200 Pacific/Tongatapu +TR +4101+02858 Europe/Istanbul +TW +2503+12130 Asia/Taipei +UA +5026+03031 Europe/Kyiv most of Ukraine +US +404251-0740023 America/New_York Eastern (most areas) +US +421953-0830245 America/Detroit Eastern - MI (most areas) +US +381515-0854534 America/Kentucky/Louisville Eastern - KY (Louisville area) +US +364947-0845057 America/Kentucky/Monticello Eastern - KY (Wayne) +US +394606-0860929 America/Indiana/Indianapolis Eastern - IN (most areas) +US +384038-0873143 America/Indiana/Vincennes Eastern - IN (Da, Du, K, Mn) +US +410305-0863611 America/Indiana/Winamac Eastern - IN (Pulaski) +US +382232-0862041 America/Indiana/Marengo Eastern - IN (Crawford) +US +382931-0871643 America/Indiana/Petersburg Eastern - IN (Pike) +US +384452-0850402 America/Indiana/Vevay Eastern - IN (Switzerland) +US +415100-0873900 America/Chicago Central (most areas) +US +375711-0864541 America/Indiana/Tell_City Central - IN (Perry) +US +411745-0863730 America/Indiana/Knox Central - IN (Starke) +US +450628-0873651 America/Menominee Central - MI (Wisconsin border) +US +470659-1011757 America/North_Dakota/Center Central - ND (Oliver) +US +465042-1012439 America/North_Dakota/New_Salem Central - ND (Morton rural) +US +471551-1014640 America/North_Dakota/Beulah Central - ND (Mercer) +US +394421-1045903 America/Denver Mountain (most areas) +US +433649-1161209 America/Boise Mountain - ID (south), OR (east) +US,CA +332654-1120424 America/Phoenix MST - AZ (most areas), Creston BC +US +340308-1181434 America/Los_Angeles Pacific +US +611305-1495401 America/Anchorage Alaska (most areas) +US +581807-1342511 America/Juneau Alaska - Juneau area +US +571035-1351807 America/Sitka Alaska - Sitka area +US +550737-1313435 America/Metlakatla Alaska - Annette Island +US +593249-1394338 America/Yakutat Alaska - Yakutat +US +643004-1652423 America/Nome Alaska (west) +US +515248-1763929 America/Adak Alaska - western Aleutians +US +211825-1575130 Pacific/Honolulu Hawaii +UY -345433-0561245 America/Montevideo +UZ +3940+06648 Asia/Samarkand Uzbekistan (west) +UZ +4120+06918 Asia/Tashkent Uzbekistan (east) +VE +1030-06656 America/Caracas +VN +1045+10640 Asia/Ho_Chi_Minh south Vietnam +VU -1740+16825 Pacific/Efate +WS -1350-17144 Pacific/Apia +ZA,LS,SZ -2615+02800 Africa/Johannesburg +# +# The next section contains experimental tab-separated comments for +# use by user agents like tzselect that identify continents and oceans. +# +# For example, the comment ‘#@AQAntarctica/’ means the country code +# AQ is in the continent Antarctica regardless of the Zone name, +# so Pacific/Auckland should be listed under Antarctica as well as +# under the Pacific because its line’s country codes include AQ. +# +# If more than one country code is affected each is listed separated +# by commas, e.g., ‘#@IS,SHAtlantic/’. If a country code is in +# more than one continent or ocean, each is listed separated by +# commas, e.g., the second column of ‘#@CY,TRAsia/,Europe/’. +# +# These experimental comments are present only for country codes where +# the continent or ocean is not already obvious from the Zone name. +# For example, there is no such comment for RU since it already +# corresponds to Zone names starting with both ‘Europe/’ and ‘Asia/’. +# +#@AQ Antarctica/ +#@IS,SH Atlantic/ +#@CY,TR Asia/,Europe/ +#@SJ Arctic/ +#@CC,CX,KM,MG,YT Indian/ diff --git a/vendor/tzdata/zoneinfo/zonenow.tab b/vendor/tzdata/zoneinfo/zonenow.tab new file mode 100644 index 0000000..bd3a278 --- /dev/null +++ b/vendor/tzdata/zoneinfo/zonenow.tab @@ -0,0 +1,302 @@ +# tzdb timezone descriptions, for users who do not care about old timestamps +# +# This file is in the public domain. +# +# From Paul Eggert (2023-12-18): +# This file contains a table where each row stands for a timezone +# where civil timestamps are predicted to agree from now on. +# This file is like zone1970.tab (see zone1970.tab’s comments), +# but with the following changes: +# +# 1. Each timezone corresponds to a set of clocks that are planned +# to agree from now on. This is a larger set of clocks than in +# zone1970.tab, where each timezone’s clocks must agree from 1970 on. +# 2. The first column is irrelevant and ignored. +# 3. The table is sorted in a different way: +# first by standard time UTC offset; +# then, if DST is used, by daylight saving UTC offset; +# then by time zone abbreviation. +# 4. Every timezone has a nonempty comments column, with wording +# distinguishing the timezone only from other timezones with the +# same UTC offset at some point during the year. +# +# The format of this table is experimental, and may change in future versions. +# +# This table is intended as an aid for users, to help them select timezones +# appropriate for their practical needs. It is not intended to take or +# endorse any position on legal or territorial claims. +# +#XX coordinates TZ comments +# +# -11 - SST +XX -1416-17042 Pacific/Pago_Pago Midway; Samoa (SST) +# +# -11 +XX -1901-16955 Pacific/Niue Niue +# +# -10 - HST +XX +211825-1575130 Pacific/Honolulu Hawaii (HST) +# +# -10 +XX -1732-14934 Pacific/Tahiti Tahiti; Cook Islands +# +# -10/-09 - HST / HDT (North America DST) +XX +515248-1763929 America/Adak western Aleutians in Alaska (HST/HDT) +# +# -09:30 +XX -0900-13930 Pacific/Marquesas Marquesas +# +# -09 +XX -2308-13457 Pacific/Gambier Gambier +# +# -09/-08 - AKST/AKDT (North America DST) +XX +611305-1495401 America/Anchorage most of Alaska (AKST/AKDT) +# +# -08 +XX -2504-13005 Pacific/Pitcairn Pitcairn +# +# -08/-07 - PST/PDT (North America DST) +XX +340308-1181434 America/Los_Angeles Pacific (PST/PDT) - US; Mexico near US border +# +# -08/-07 - PST/PDT (North America DST) until 2026-11-01 02:00; then MST +XX +4916-12307 America/Vancouver Mountain Standard (MST) - British Columbia (most areas) +# +# -07 - MST +XX +332654-1120424 America/Phoenix Mountain Standard (MST) - Arizona; western Mexico; Yukon +# +# -07/-06 - MST/MDT (North America DST) +XX +394421-1045903 America/Denver Mountain (MST/MDT) - US; Mexico near US border; western Nunavut +# +# -07/-06 - MST/MDT (North America DST) until 2026-11-01 02:00; then CST +XX +5333-11328 America/Edmonton Central Standard (CST) - Alberta, NWT, and some neighbors +# +# -06 +XX -0054-08936 Pacific/Galapagos Galápagos +# +# -06 - CST +XX +1924-09909 America/Mexico_City Central Standard (CST) - Saskatchewan; central Mexico; Central America +# +# -06/-05 (Chile DST) +XX -2709-10926 Pacific/Easter Easter Island +# +# -06/-05 - CST/CDT (North America DST) +XX +415100-0873900 America/Chicago Central (CST/CDT) - US; Mexico near US border; central Nunavut +# +# -06/-05 - CST/CDT (North America DST) until 2026-11-01 02:00; then EST +XX +4953-09709 America/Winnipeg Eastern Standard (EST) - Manitoba, northwestern Ontario +# +# -05 +XX -1203-07703 America/Lima eastern South America +# +# -05 - EST +XX +175805-0764736 America/Jamaica Eastern Standard (EST) - Caymans; Jamaica; eastern Mexico; Panama +# +# -05/-04 - CST/CDT (Cuba DST) +XX +2308-08222 America/Havana Cuba +# +# -05/-04 - EST/EDT (North America DST) +XX +404251-0740023 America/New_York Eastern (EST/EDT) - US & Canada +# +# -04 +XX +1030-06656 America/Caracas western South America +# +# -04 - AST +XX +1828-06954 America/Santo_Domingo Atlantic Standard (AST) - eastern Caribbean +# +# -04/-03 (Chile DST) +XX -3327-07040 America/Santiago most of Chile +# +# -04/-03 - AST/ADT (North America DST) +XX +4439-06336 America/Halifax Atlantic (AST/ADT) - Canada; Bermuda +# +# -03:30/-02:30 - NST/NDT (North America DST) +XX +4734-05243 America/St_Johns Newfoundland (NST/NDT) +# +# -03 +XX -2332-04637 America/Sao_Paulo eastern and southern South America +# +# -03/-02 (North America DST) +XX +4703-05620 America/Miquelon St Pierre & Miquelon +# +# -02 +XX -0351-03225 America/Noronha Fernando de Noronha; South Georgia +# +# -02/-01 (EU DST) +XX +6411-05144 America/Nuuk most of Greenland +# +# -01 +XX +1455-02331 Atlantic/Cape_Verde Cape Verde +# +# -01/+00 (EU DST) +XX +3744-02540 Atlantic/Azores Azores +# +# +00 - GMT +XX +0519-00402 Africa/Abidjan far western Africa; Iceland (GMT) +# +# +00/+01 - GMT/BST (EU DST) +XX +513030-0000731 Europe/London United Kingdom (GMT/BST) +# +# +00/+01 - WET/WEST (EU DST) +XX +3843-00908 Europe/Lisbon western Europe (WET/WEST) +# +# +00/+02 - Troll DST +XX -720041+0023206 Antarctica/Troll Troll Station in Antarctica +# +# +01 - CET +XX +3647+00303 Africa/Algiers Algeria, Tunisia (CET) +# +# +01 - WAT +XX +0627+00324 Africa/Lagos western Africa (WAT) +# +# +01/+00 - IST/GMT (EU DST in reverse) +XX +5320-00615 Europe/Dublin Ireland (IST/GMT) +# +# +01/+00 - (Morocco DST) +XX +3339-00735 Africa/Casablanca Morocco +# +# +01/+02 - CET/CEST (EU DST) +XX +4852+00220 Europe/Paris central Europe (CET/CEST) +# +# +02 - CAT +XX -2558+03235 Africa/Maputo central Africa (CAT) +# +# +02 - EET +XX +3254+01311 Africa/Tripoli Libya; Kaliningrad (EET) +# +# +02 - SAST +XX -2615+02800 Africa/Johannesburg southern Africa (SAST) +# +# +02/+03 - EET/EEST (EU DST) +XX +3758+02343 Europe/Athens eastern Europe (EET/EEST) +# +# +02/+03 - EET/EEST (Egypt DST) +XX +3003+03115 Africa/Cairo Egypt +# +# +02/+03 - EET/EEST (Lebanon DST) +XX +3353+03530 Asia/Beirut Lebanon +# +# +02/+03 - EET/EEST (Palestine DST) +XX +3130+03428 Asia/Gaza Palestine +# +# +02/+03 - IST/IDT (Israel DST) +XX +314650+0351326 Asia/Jerusalem Israel +# +# +03 +XX +4101+02858 Europe/Istanbul Near East; Belarus +# +# +03 - EAT +XX -0117+03649 Africa/Nairobi eastern Africa (EAT) +# +# +03 - MSK +XX +554521+0373704 Europe/Moscow Moscow (MSK) +# +# +03:30 +XX +3540+05126 Asia/Tehran Iran +# +# +04 +XX +2518+05518 Asia/Dubai Russia; Caucasus; Persian Gulf; Seychelles; Réunion +# +# +04:30 +XX +3431+06912 Asia/Kabul Afghanistan +# +# +05 +XX +4120+06918 Asia/Tashkent Russia; Kazakhstan; Tajikistan; Turkmenistan; Uzbekistan; Maldives +# +# +05 - PKT +XX +2452+06703 Asia/Karachi Pakistan (PKT) +# +# +05:30 +XX +0656+07951 Asia/Colombo Sri Lanka +# +# +05:30 - IST +XX +2232+08822 Asia/Kolkata India (IST) +# +# +05:45 +XX +2743+08519 Asia/Kathmandu Nepal +# +# +06 +XX +2343+09025 Asia/Dhaka Russia; Kyrgyzstan; Bhutan; Bangladesh; Chagos +# +# +06:30 +XX +1647+09610 Asia/Yangon Myanmar; Cocos +# +# +07 +XX +1345+10031 Asia/Bangkok Russia; Indochina; Christmas Island +# +# +07 - WIB +XX -0610+10648 Asia/Jakarta Indonesia (WIB) +# +# +08 +XX +0117+10351 Asia/Singapore Russia; Brunei; Malaysia; Singapore; Concordia +# +# +08 - AWST +XX -3157+11551 Australia/Perth Western Australia (AWST) +# +# +08 - CST +XX +3114+12128 Asia/Shanghai China (CST) +# +# +08 - HKT +XX +2217+11409 Asia/Hong_Kong Hong Kong (HKT) +# +# +08 - PHT +XX +143512+1205804 Asia/Manila Philippines (PHT) +# +# +08 - WITA +XX -0507+11924 Asia/Makassar Indonesia (WITA) +# +# +08:45 +XX -3143+12852 Australia/Eucla Eucla +# +# +09 +XX +5203+11328 Asia/Chita Russia; Palau; East Timor +# +# +09 - JST +XX +353916+1394441 Asia/Tokyo Japan (JST); Eyre Bird Observatory +# +# +09 - KST +XX +3733+12658 Asia/Seoul Korea (KST) +# +# +09 - WIT +XX -0232+14042 Asia/Jayapura Indonesia (WIT) +# +# +09:30 - ACST +XX -1228+13050 Australia/Darwin Northern Territory (ACST) +# +# +09:30/+10:30 - ACST/ACDT (Australia DST) +XX -3455+13835 Australia/Adelaide South Australia (ACST/ACDT) +# +# +10 +XX +4310+13156 Asia/Vladivostok Russia; Yap; Chuuk; Papua New Guinea; Dumont d’Urville +# +# +10 - AEST +XX -2728+15302 Australia/Brisbane Queensland (AEST) +# +# +10 - ChST +XX +1328+14445 Pacific/Guam Mariana Islands (ChST) +# +# +10/+11 - AEST/AEDT (Australia DST) +XX -3352+15113 Australia/Sydney southeast Australia (AEST/AEDT) +# +# +10:30/+11 +XX -3133+15905 Australia/Lord_Howe Lord Howe Island +# +# +11 +XX -0613+15534 Pacific/Bougainville Russia; Kosrae; Bougainville; Solomons +# +# +11/+12 (Australia DST) +XX -2903+16758 Pacific/Norfolk Norfolk Island +# +# +12 +XX +5301+15839 Asia/Kamchatka Russia; Tuvalu; Fiji; etc. +# +# +12/+13 (New Zealand DST) +XX -3652+17446 Pacific/Auckland New Zealand (NZST/NZDT) +# +# +12:45/+13:45 (Chatham DST) +XX -4357-17633 Pacific/Chatham Chatham Islands +# +# +13 +XX -210800-1751200 Pacific/Tongatapu Kanton; Tokelau; Samoa (western); Tonga +# +# +14 +XX +0152-15720 Pacific/Kiritimati Kiritimati diff --git a/vendor/tzdata/zones b/vendor/tzdata/zones new file mode 100644 index 0000000..aa0f556 --- /dev/null +++ b/vendor/tzdata/zones @@ -0,0 +1,598 @@ +Africa/Abidjan +Africa/Algiers +Africa/Bissau +Africa/Cairo +Africa/Casablanca +Africa/Ceuta +Africa/El_Aaiun +Africa/Johannesburg +Africa/Juba +Africa/Khartoum +Africa/Lagos +Africa/Maputo +Africa/Monrovia +Africa/Nairobi +Africa/Ndjamena +Africa/Sao_Tome +Africa/Tripoli +Africa/Tunis +Africa/Windhoek +America/Adak +America/Anchorage +America/Araguaina +America/Argentina/Buenos_Aires +America/Argentina/Catamarca +America/Argentina/Cordoba +America/Argentina/Jujuy +America/Argentina/La_Rioja +America/Argentina/Mendoza +America/Argentina/Rio_Gallegos +America/Argentina/Salta +America/Argentina/San_Juan +America/Argentina/San_Luis +America/Argentina/Tucuman +America/Argentina/Ushuaia +America/Asuncion +America/Bahia +America/Bahia_Banderas +America/Barbados +America/Belem +America/Belize +America/Boa_Vista +America/Bogota +America/Boise +America/Cambridge_Bay +America/Campo_Grande +America/Cancun +America/Caracas +America/Cayenne +America/Chicago +America/Chihuahua +America/Ciudad_Juarez +America/Costa_Rica +America/Coyhaique +America/Cuiaba +America/Danmarkshavn +America/Dawson +America/Dawson_Creek +America/Denver +America/Detroit +America/Edmonton +America/Eirunepe +America/El_Salvador +America/Fort_Nelson +America/Fortaleza +America/Glace_Bay +America/Goose_Bay +America/Grand_Turk +America/Guatemala +America/Guayaquil +America/Guyana +America/Halifax +America/Havana +America/Hermosillo +America/Indiana/Indianapolis +America/Indiana/Knox +America/Indiana/Marengo +America/Indiana/Petersburg +America/Indiana/Tell_City +America/Indiana/Vevay +America/Indiana/Vincennes +America/Indiana/Winamac +America/Inuvik +America/Iqaluit +America/Jamaica +America/Juneau +America/Kentucky/Louisville +America/Kentucky/Monticello +America/La_Paz +America/Lima +America/Los_Angeles +America/Maceio +America/Managua +America/Manaus +America/Martinique +America/Matamoros +America/Mazatlan +America/Menominee +America/Merida +America/Metlakatla +America/Mexico_City +America/Miquelon +America/Moncton +America/Monterrey +America/Montevideo +America/New_York +America/Nome +America/Noronha +America/North_Dakota/Beulah +America/North_Dakota/Center +America/North_Dakota/New_Salem +America/Nuuk +America/Ojinaga +America/Panama +America/Paramaribo +America/Phoenix +America/Port-au-Prince +America/Porto_Velho +America/Puerto_Rico +America/Punta_Arenas +America/Rankin_Inlet +America/Recife +America/Regina +America/Resolute +America/Rio_Branco +America/Santarem +America/Santiago +America/Santo_Domingo +America/Sao_Paulo +America/Scoresbysund +America/Sitka +America/St_Johns +America/Swift_Current +America/Tegucigalpa +America/Thule +America/Tijuana +America/Toronto +America/Vancouver +America/Whitehorse +America/Winnipeg +America/Yakutat +Antarctica/Casey +Antarctica/Davis +Antarctica/Macquarie +Antarctica/Mawson +Antarctica/Palmer +Antarctica/Rothera +Antarctica/Troll +Antarctica/Vostok +Asia/Almaty +Asia/Amman +Asia/Anadyr +Asia/Aqtau +Asia/Aqtobe +Asia/Ashgabat +Asia/Atyrau +Asia/Baghdad +Asia/Baku +Asia/Bangkok +Asia/Barnaul +Asia/Beirut +Asia/Bishkek +Asia/Chita +Asia/Colombo +Asia/Damascus +Asia/Dhaka +Asia/Dili +Asia/Dubai +Asia/Dushanbe +Asia/Famagusta +Asia/Gaza +Asia/Hebron +Asia/Ho_Chi_Minh +Asia/Hong_Kong +Asia/Hovd +Asia/Irkutsk +Asia/Jakarta +Asia/Jayapura +Asia/Jerusalem +Asia/Kabul +Asia/Kamchatka +Asia/Karachi +Asia/Kathmandu +Asia/Khandyga +Asia/Kolkata +Asia/Krasnoyarsk +Asia/Kuching +Asia/Macau +Asia/Magadan +Asia/Makassar +Asia/Manila +Asia/Nicosia +Asia/Novokuznetsk +Asia/Novosibirsk +Asia/Omsk +Asia/Oral +Asia/Pontianak +Asia/Pyongyang +Asia/Qatar +Asia/Qostanay +Asia/Qyzylorda +Asia/Riyadh +Asia/Sakhalin +Asia/Samarkand +Asia/Seoul +Asia/Shanghai +Asia/Singapore +Asia/Srednekolymsk +Asia/Taipei +Asia/Tashkent +Asia/Tbilisi +Asia/Tehran +Asia/Thimphu +Asia/Tokyo +Asia/Tomsk +Asia/Ulaanbaatar +Asia/Urumqi +Asia/Ust-Nera +Asia/Vladivostok +Asia/Yakutsk +Asia/Yangon +Asia/Yekaterinburg +Asia/Yerevan +Atlantic/Azores +Atlantic/Bermuda +Atlantic/Canary +Atlantic/Cape_Verde +Atlantic/Faroe +Atlantic/Madeira +Atlantic/South_Georgia +Atlantic/Stanley +Australia/Adelaide +Australia/Brisbane +Australia/Broken_Hill +Australia/Darwin +Australia/Eucla +Australia/Hobart +Australia/Lindeman +Australia/Lord_Howe +Australia/Melbourne +Australia/Perth +Australia/Sydney +CST6CDT +EST5EDT +Etc/GMT +Etc/GMT+1 +Etc/GMT+10 +Etc/GMT+11 +Etc/GMT+12 +Etc/GMT+2 +Etc/GMT+3 +Etc/GMT+4 +Etc/GMT+5 +Etc/GMT+6 +Etc/GMT+7 +Etc/GMT+8 +Etc/GMT+9 +Etc/GMT-1 +Etc/GMT-10 +Etc/GMT-11 +Etc/GMT-12 +Etc/GMT-13 +Etc/GMT-14 +Etc/GMT-2 +Etc/GMT-3 +Etc/GMT-4 +Etc/GMT-5 +Etc/GMT-6 +Etc/GMT-7 +Etc/GMT-8 +Etc/GMT-9 +Etc/UTC +Europe/Andorra +Europe/Astrakhan +Europe/Athens +Europe/Belgrade +Europe/Berlin +Europe/Brussels +Europe/Bucharest +Europe/Budapest +Europe/Chisinau +Europe/Dublin +Europe/Gibraltar +Europe/Helsinki +Europe/Istanbul +Europe/Kaliningrad +Europe/Kirov +Europe/Kyiv +Europe/Lisbon +Europe/London +Europe/Madrid +Europe/Malta +Europe/Minsk +Europe/Moscow +Europe/Paris +Europe/Prague +Europe/Riga +Europe/Rome +Europe/Samara +Europe/Saratov +Europe/Simferopol +Europe/Sofia +Europe/Tallinn +Europe/Tirane +Europe/Ulyanovsk +Europe/Vienna +Europe/Vilnius +Europe/Volgograd +Europe/Warsaw +Europe/Zurich +Factory +Indian/Chagos +Indian/Maldives +Indian/Mauritius +MST7MDT +PST8PDT +Pacific/Apia +Pacific/Auckland +Pacific/Bougainville +Pacific/Chatham +Pacific/Easter +Pacific/Efate +Pacific/Fakaofo +Pacific/Fiji +Pacific/Galapagos +Pacific/Gambier +Pacific/Guadalcanal +Pacific/Guam +Pacific/Honolulu +Pacific/Kanton +Pacific/Kiritimati +Pacific/Kosrae +Pacific/Kwajalein +Pacific/Marquesas +Pacific/Nauru +Pacific/Niue +Pacific/Norfolk +Pacific/Noumea +Pacific/Pago_Pago +Pacific/Palau +Pacific/Pitcairn +Pacific/Port_Moresby +Pacific/Rarotonga +Pacific/Tahiti +Pacific/Tarawa +Pacific/Tongatapu +GMT +Australia/ACT +Australia/LHI +Australia/NSW +Australia/North +Australia/Queensland +Australia/South +Australia/Tasmania +Australia/Victoria +Australia/West +Australia/Yancowinna +Brazil/Acre +Brazil/DeNoronha +Brazil/East +Brazil/West +CET +Canada/Atlantic +Canada/Central +Canada/Eastern +Canada/Mountain +Canada/Newfoundland +Canada/Pacific +Canada/Saskatchewan +Canada/Yukon +Chile/Continental +Chile/EasterIsland +Cuba +EET +EST +Egypt +Eire +Etc/GMT+0 +Etc/GMT-0 +Etc/GMT0 +Etc/Greenwich +Etc/UCT +Etc/Universal +Etc/Zulu +GB +GB-Eire +GMT+0 +GMT-0 +GMT0 +Greenwich +Hongkong +Iceland +Iran +Israel +Jamaica +Japan +Kwajalein +Libya +MET +MST +Mexico/BajaNorte +Mexico/BajaSur +Mexico/General +NZ +NZ-CHAT +Navajo +PRC +Poland +Portugal +ROC +ROK +Singapore +Turkey +UCT +US/Alaska +US/Aleutian +US/Arizona +US/Central +US/East-Indiana +US/Eastern +US/Hawaii +US/Indiana-Starke +US/Michigan +US/Mountain +US/Pacific +US/Samoa +UTC +Universal +W-SU +Zulu +America/Buenos_Aires +America/Catamarca +America/Cordoba +America/Indianapolis +America/Jujuy +America/Knox_IN +America/Louisville +America/Mendoza +America/Virgin +Pacific/Samoa +Africa/Accra +Africa/Addis_Ababa +Africa/Asmara +Africa/Bamako +Africa/Bangui +Africa/Banjul +Africa/Blantyre +Africa/Brazzaville +Africa/Bujumbura +Africa/Conakry +Africa/Dakar +Africa/Dar_es_Salaam +Africa/Djibouti +Africa/Douala +Africa/Freetown +Africa/Gaborone +Africa/Harare +Africa/Kampala +Africa/Kigali +Africa/Kinshasa +Africa/Libreville +Africa/Lome +Africa/Luanda +Africa/Lubumbashi +Africa/Lusaka +Africa/Malabo +Africa/Maseru +Africa/Mbabane +Africa/Mogadishu +Africa/Niamey +Africa/Nouakchott +Africa/Ouagadougou +Africa/Porto-Novo +America/Anguilla +America/Antigua +America/Aruba +America/Atikokan +America/Blanc-Sablon +America/Cayman +America/Creston +America/Curacao +America/Dominica +America/Grenada +America/Guadeloupe +America/Kralendijk +America/Lower_Princes +America/Marigot +America/Montserrat +America/Nassau +America/Port_of_Spain +America/St_Barthelemy +America/St_Kitts +America/St_Lucia +America/St_Thomas +America/St_Vincent +America/Tortola +Antarctica/DumontDUrville +Antarctica/McMurdo +Antarctica/Syowa +Arctic/Longyearbyen +Asia/Aden +Asia/Bahrain +Asia/Brunei +Asia/Kuala_Lumpur +Asia/Kuwait +Asia/Muscat +Asia/Phnom_Penh +Asia/Vientiane +Atlantic/Reykjavik +Atlantic/St_Helena +Europe/Amsterdam +Europe/Bratislava +Europe/Busingen +Europe/Copenhagen +Europe/Guernsey +Europe/Isle_of_Man +Europe/Jersey +Europe/Ljubljana +Europe/Luxembourg +Europe/Mariehamn +Europe/Monaco +Europe/Oslo +Europe/Podgorica +Europe/San_Marino +Europe/Sarajevo +Europe/Skopje +Europe/Stockholm +Europe/Vaduz +Europe/Vatican +Europe/Zagreb +Indian/Antananarivo +Indian/Christmas +Indian/Cocos +Indian/Comoro +Indian/Kerguelen +Indian/Mahe +Indian/Mayotte +Indian/Reunion +Pacific/Chuuk +Pacific/Funafuti +Pacific/Majuro +Pacific/Midway +Pacific/Pohnpei +Pacific/Saipan +Pacific/Wake +Pacific/Wallis +Africa/Timbuktu +America/Argentina/ComodRivadavia +America/Atka +America/Coral_Harbour +America/Ensenada +America/Fort_Wayne +America/Montreal +America/Nipigon +America/Pangnirtung +America/Porto_Acre +America/Rainy_River +America/Rosario +America/Santa_Isabel +America/Shiprock +America/Thunder_Bay +America/Yellowknife +Antarctica/South_Pole +Asia/Choibalsan +Asia/Chongqing +Asia/Harbin +Asia/Kashgar +Asia/Tel_Aviv +Atlantic/Jan_Mayen +Australia/Canberra +Australia/Currie +Europe/Belfast +Europe/Tiraspol +Europe/Uzhgorod +Europe/Zaporozhye +Pacific/Enderbury +Pacific/Johnston +Pacific/Yap +WET +Africa/Asmera +America/Godthab +Asia/Ashkhabad +Asia/Calcutta +Asia/Chungking +Asia/Dacca +Asia/Istanbul +Asia/Katmandu +Asia/Macao +Asia/Rangoon +Asia/Saigon +Asia/Thimbu +Asia/Ujung_Pandang +Asia/Ulan_Bator +Atlantic/Faeroe +Europe/Kiev +Europe/Nicosia +HST +Pacific/Ponape +Pacific/Truk