mingpan 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +72 -44
  2. package/dist/core/qimen/FlyingRule.d.ts +60 -0
  3. package/dist/core/qimen/FlyingRule.d.ts.map +1 -0
  4. package/dist/core/qimen/FlyingRule.js +94 -0
  5. package/dist/core/qimen/FlyingRule.js.map +1 -0
  6. package/dist/core/qimen/GongMapping.d.ts +29 -0
  7. package/dist/core/qimen/GongMapping.d.ts.map +1 -0
  8. package/dist/core/qimen/GongMapping.js +83 -0
  9. package/dist/core/qimen/GongMapping.js.map +1 -0
  10. package/dist/core/qimen/RotatingRule.d.ts +76 -0
  11. package/dist/core/qimen/RotatingRule.d.ts.map +1 -0
  12. package/dist/core/qimen/RotatingRule.js +126 -0
  13. package/dist/core/qimen/RotatingRule.js.map +1 -0
  14. package/dist/core/qimen/YinYangDunCalculator.d.ts +28 -0
  15. package/dist/core/qimen/YinYangDunCalculator.d.ts.map +1 -0
  16. package/dist/core/qimen/YinYangDunCalculator.js +79 -0
  17. package/dist/core/qimen/YinYangDunCalculator.js.map +1 -0
  18. package/dist/core/qimen/index.d.ts +10 -0
  19. package/dist/core/qimen/index.d.ts.map +1 -0
  20. package/dist/core/qimen/index.js +58 -0
  21. package/dist/core/qimen/index.js.map +1 -0
  22. package/dist/core/qimen/types.d.ts +19 -0
  23. package/dist/core/qimen/types.d.ts.map +1 -0
  24. package/dist/core/qimen/types.js +7 -0
  25. package/dist/core/qimen/types.js.map +1 -0
  26. package/dist/index.js +269 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/output/qimenTextRenderer.d.ts +40 -0
  29. package/dist/output/qimenTextRenderer.d.ts.map +1 -0
  30. package/dist/output/qimenTextRenderer.js +363 -0
  31. package/dist/output/qimenTextRenderer.js.map +1 -0
  32. package/dist/services/qimen/QimenService.d.ts +93 -0
  33. package/dist/services/qimen/QimenService.d.ts.map +1 -0
  34. package/dist/services/qimen/QimenService.js +427 -0
  35. package/dist/services/qimen/QimenService.js.map +1 -0
  36. package/dist/services/qimen/calculators/BaMenCalculator.d.ts +53 -0
  37. package/dist/services/qimen/calculators/BaMenCalculator.d.ts.map +1 -0
  38. package/dist/services/qimen/calculators/BaMenCalculator.js +105 -0
  39. package/dist/services/qimen/calculators/BaMenCalculator.js.map +1 -0
  40. package/dist/services/qimen/calculators/BaShenCalculator.d.ts +34 -0
  41. package/dist/services/qimen/calculators/BaShenCalculator.d.ts.map +1 -0
  42. package/dist/services/qimen/calculators/BaShenCalculator.js +57 -0
  43. package/dist/services/qimen/calculators/BaShenCalculator.js.map +1 -0
  44. package/dist/services/qimen/calculators/GeJuCalculator.d.ts +141 -0
  45. package/dist/services/qimen/calculators/GeJuCalculator.d.ts.map +1 -0
  46. package/dist/services/qimen/calculators/GeJuCalculator.js +711 -0
  47. package/dist/services/qimen/calculators/GeJuCalculator.js.map +1 -0
  48. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts +56 -0
  49. package/dist/services/qimen/calculators/JiuGongCalculator.d.ts.map +1 -0
  50. package/dist/services/qimen/calculators/JiuGongCalculator.js +98 -0
  51. package/dist/services/qimen/calculators/JiuGongCalculator.js.map +1 -0
  52. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts +54 -0
  53. package/dist/services/qimen/calculators/JiuXingCalculator.d.ts.map +1 -0
  54. package/dist/services/qimen/calculators/JiuXingCalculator.js +117 -0
  55. package/dist/services/qimen/calculators/JiuXingCalculator.js.map +1 -0
  56. package/dist/services/qimen/calculators/JuShuCalculator.d.ts +57 -0
  57. package/dist/services/qimen/calculators/JuShuCalculator.d.ts.map +1 -0
  58. package/dist/services/qimen/calculators/JuShuCalculator.js +115 -0
  59. package/dist/services/qimen/calculators/JuShuCalculator.js.map +1 -0
  60. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts +117 -0
  61. package/dist/services/qimen/calculators/PanTypeCalculator.d.ts.map +1 -0
  62. package/dist/services/qimen/calculators/PanTypeCalculator.js +237 -0
  63. package/dist/services/qimen/calculators/PanTypeCalculator.js.map +1 -0
  64. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts +50 -0
  65. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts.map +1 -0
  66. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js +86 -0
  67. package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js.map +1 -0
  68. package/dist/services/qimen/calculators/ShenShaCalculator.d.ts +80 -0
  69. package/dist/services/qimen/calculators/ShenShaCalculator.d.ts.map +1 -0
  70. package/dist/services/qimen/calculators/ShenShaCalculator.js +300 -0
  71. package/dist/services/qimen/calculators/ShenShaCalculator.js.map +1 -0
  72. package/dist/services/qimen/calculators/YongShenCalculator.d.ts +78 -0
  73. package/dist/services/qimen/calculators/YongShenCalculator.d.ts.map +1 -0
  74. package/dist/services/qimen/calculators/YongShenCalculator.js +497 -0
  75. package/dist/services/qimen/calculators/YongShenCalculator.js.map +1 -0
  76. package/dist/services/qimen/calculators/ZeRiCalculator.d.ts +78 -0
  77. package/dist/services/qimen/calculators/ZeRiCalculator.d.ts.map +1 -0
  78. package/dist/services/qimen/calculators/ZeRiCalculator.js +431 -0
  79. package/dist/services/qimen/calculators/ZeRiCalculator.js.map +1 -0
  80. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts +118 -0
  81. package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts.map +1 -0
  82. package/dist/services/qimen/calculators/ZhuanPanCalculator.js +260 -0
  83. package/dist/services/qimen/calculators/ZhuanPanCalculator.js.map +1 -0
  84. package/dist/services/qimen/data/constants.d.ts +105 -0
  85. package/dist/services/qimen/data/constants.d.ts.map +1 -0
  86. package/dist/services/qimen/data/constants.js +295 -0
  87. package/dist/services/qimen/data/constants.js.map +1 -0
  88. package/dist/services/qimen/data/shensha-rules.d.ts +177 -0
  89. package/dist/services/qimen/data/shensha-rules.d.ts.map +1 -0
  90. package/dist/services/qimen/data/shensha-rules.js +397 -0
  91. package/dist/services/qimen/data/shensha-rules.js.map +1 -0
  92. package/dist/services/qimen/data/yongshen-rules.d.ts +115 -0
  93. package/dist/services/qimen/data/yongshen-rules.d.ts.map +1 -0
  94. package/dist/services/qimen/data/yongshen-rules.js +365 -0
  95. package/dist/services/qimen/data/yongshen-rules.js.map +1 -0
  96. package/dist/services/qimen/index.d.ts +20 -0
  97. package/dist/services/qimen/index.d.ts.map +1 -0
  98. package/dist/services/qimen/index.js +43 -0
  99. package/dist/services/qimen/index.js.map +1 -0
  100. package/dist/services/qimen/types.d.ts +390 -0
  101. package/dist/services/qimen/types.d.ts.map +1 -0
  102. package/dist/services/qimen/types.js +20 -0
  103. package/dist/services/qimen/types.js.map +1 -0
  104. package/dist/services/qimen/utils/gongUtils.d.ts +80 -0
  105. package/dist/services/qimen/utils/gongUtils.d.ts.map +1 -0
  106. package/dist/services/qimen/utils/gongUtils.js +164 -0
  107. package/dist/services/qimen/utils/gongUtils.js.map +1 -0
  108. package/package.json +1 -1
@@ -0,0 +1,300 @@
1
+ "use strict";
2
+ /**
3
+ * 神煞计算器
4
+ *
5
+ * 负责计算奇门盘中的各类神煞
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ShenShaCalculator = void 0;
9
+ const shensha_rules_1 = require("../data/shensha-rules");
10
+ const gongUtils_1 = require("../utils/gongUtils");
11
+ // ============= 神煞计算器 =============
12
+ class ShenShaCalculator {
13
+ /**
14
+ * 计算所有神煞
15
+ *
16
+ * @param result 奇门盘结果
17
+ * @returns 神煞信息列表
18
+ */
19
+ static calculateAll(result) {
20
+ const siZhu = result.timeInfo.siZhu;
21
+ const yearGanZhi = siZhu.yearGanZhi;
22
+ const monthGanZhi = siZhu.monthGanZhi;
23
+ const context = {
24
+ result,
25
+ yearZhi: yearGanZhi.charAt(1),
26
+ monthZhi: monthGanZhi.charAt(1),
27
+ dayGan: siZhu.dayGan,
28
+ dayZhi: siZhu.dayZhi,
29
+ };
30
+ const shenShaList = [];
31
+ // 计算各类神煞
32
+ shenShaList.push(...this.calcTianYiGuiRen(context));
33
+ shenShaList.push(...this.calcYiMa(context));
34
+ shenShaList.push(...this.calcHuaGai(context));
35
+ shenShaList.push(...this.calcYueDe(context));
36
+ shenShaList.push(...this.calcLuShen(context));
37
+ shenShaList.push(...this.calcTaoHua(context));
38
+ shenShaList.push(...this.calcTianYi(context));
39
+ shenShaList.push(...this.calcTaiSui(context));
40
+ shenShaList.push(...this.calcYangRen(context));
41
+ shenShaList.push(...this.calcDingMa(context));
42
+ return shenShaList;
43
+ }
44
+ /**
45
+ * 将神煞分配到各宫
46
+ *
47
+ * @param shenShaList 神煞列表
48
+ * @returns 按宫位分组的神煞
49
+ */
50
+ static distributeToGongs(shenShaList) {
51
+ const gongShenSha = {
52
+ 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: [], 8: [], 9: [],
53
+ };
54
+ for (const ss of shenShaList) {
55
+ gongShenSha[ss.gong].push(ss);
56
+ }
57
+ return gongShenSha;
58
+ }
59
+ // ============= 各神煞计算方法 =============
60
+ /**
61
+ * 计算天乙贵人
62
+ */
63
+ static calcTianYiGuiRen(context) {
64
+ const result = [];
65
+ const guiRenZhi = shensha_rules_1.TIANYI_GUIREN[context.dayGan];
66
+ if (guiRenZhi) {
67
+ for (const zhi of guiRenZhi) {
68
+ const gong = shensha_rules_1.DIZHI_TO_GONG[zhi];
69
+ if (gong) {
70
+ result.push({
71
+ name: shensha_rules_1.TIANYI_DEF.name,
72
+ type: shensha_rules_1.TIANYI_DEF.type,
73
+ gong,
74
+ description: `${shensha_rules_1.TIANYI_DEF.description}(${zhi}位)`,
75
+ });
76
+ }
77
+ }
78
+ }
79
+ return result;
80
+ }
81
+ /**
82
+ * 计算驿马
83
+ */
84
+ static calcYiMa(context) {
85
+ const maZhi = shensha_rules_1.YIMA[context.dayZhi];
86
+ if (!maZhi)
87
+ return [];
88
+ const gong = shensha_rules_1.DIZHI_TO_GONG[maZhi];
89
+ if (!gong)
90
+ return [];
91
+ return [{
92
+ name: shensha_rules_1.RIMA_DEF.name, // 使用"日马"更准确
93
+ type: shensha_rules_1.YIMA_DEF.type,
94
+ gong,
95
+ description: `${shensha_rules_1.YIMA_DEF.description}(${maZhi}位)`,
96
+ }];
97
+ }
98
+ /**
99
+ * 计算华盖
100
+ */
101
+ static calcHuaGai(context) {
102
+ const result = [];
103
+ // 按年支查
104
+ const yearHuaGai = shensha_rules_1.HUAGAI[context.yearZhi];
105
+ if (yearHuaGai) {
106
+ const gong = shensha_rules_1.DIZHI_TO_GONG[yearHuaGai];
107
+ if (gong) {
108
+ result.push({
109
+ name: shensha_rules_1.HUAGAI_DEF.name,
110
+ type: shensha_rules_1.HUAGAI_DEF.type,
111
+ gong,
112
+ description: `年华盖(${yearHuaGai}位)`,
113
+ });
114
+ }
115
+ }
116
+ // 按日支查(如果不同于年支)
117
+ if (context.dayZhi !== context.yearZhi) {
118
+ const dayHuaGai = shensha_rules_1.HUAGAI[context.dayZhi];
119
+ if (dayHuaGai && dayHuaGai !== yearHuaGai) {
120
+ const gong = shensha_rules_1.DIZHI_TO_GONG[dayHuaGai];
121
+ if (gong) {
122
+ result.push({
123
+ name: shensha_rules_1.HUAGAI_DEF.name,
124
+ type: shensha_rules_1.HUAGAI_DEF.type,
125
+ gong,
126
+ description: `日华盖(${dayHuaGai}位)`,
127
+ });
128
+ }
129
+ }
130
+ }
131
+ return result;
132
+ }
133
+ /**
134
+ * 计算月德
135
+ */
136
+ static calcYueDe(context) {
137
+ const yueDeGan = shensha_rules_1.YUEDE[context.monthZhi];
138
+ if (!yueDeGan)
139
+ return [];
140
+ // 找月德天干在地盘的落宫
141
+ const gong = (0, gongUtils_1.findGanGong)(context.result, yueDeGan);
142
+ if (!gong)
143
+ return [];
144
+ return [{
145
+ name: shensha_rules_1.YUEDE_DEF.name,
146
+ type: shensha_rules_1.YUEDE_DEF.type,
147
+ gong,
148
+ description: shensha_rules_1.YUEDE_DEF.description,
149
+ }];
150
+ }
151
+ /**
152
+ * 计算禄神
153
+ */
154
+ static calcLuShen(context) {
155
+ const luZhi = shensha_rules_1.LUSHEN[context.dayGan];
156
+ if (!luZhi)
157
+ return [];
158
+ const gong = shensha_rules_1.DIZHI_TO_GONG[luZhi];
159
+ if (!gong)
160
+ return [];
161
+ return [{
162
+ name: shensha_rules_1.LUSHEN_DEF.name,
163
+ type: shensha_rules_1.LUSHEN_DEF.type,
164
+ gong,
165
+ description: `${shensha_rules_1.LUSHEN_DEF.description}(${luZhi}位)`,
166
+ }];
167
+ }
168
+ /**
169
+ * 计算桃花(咸池)
170
+ */
171
+ static calcTaoHua(context) {
172
+ const taoHuaZhi = shensha_rules_1.TAOHUA[context.dayZhi];
173
+ if (!taoHuaZhi)
174
+ return [];
175
+ const gong = shensha_rules_1.DIZHI_TO_GONG[taoHuaZhi];
176
+ if (!gong)
177
+ return [];
178
+ return [{
179
+ name: shensha_rules_1.TAOHUA_DEF.name,
180
+ type: shensha_rules_1.TAOHUA_DEF.type,
181
+ gong,
182
+ description: `${shensha_rules_1.TAOHUA_DEF.description}(${taoHuaZhi}位)`,
183
+ }];
184
+ }
185
+ /**
186
+ * 计算天医
187
+ */
188
+ static calcTianYi(context) {
189
+ const tianYiZhi = shensha_rules_1.TIANYI_YIZHI[context.monthZhi];
190
+ if (!tianYiZhi)
191
+ return [];
192
+ const gong = shensha_rules_1.DIZHI_TO_GONG[tianYiZhi];
193
+ if (!gong)
194
+ return [];
195
+ return [{
196
+ name: '天医',
197
+ type: shensha_rules_1.TIANYI_SHEN_DEF.type,
198
+ gong,
199
+ description: `${shensha_rules_1.TIANYI_SHEN_DEF.description}(${tianYiZhi}位)`,
200
+ }];
201
+ }
202
+ /**
203
+ * 计算太岁
204
+ */
205
+ static calcTaiSui(context) {
206
+ const gong = shensha_rules_1.DIZHI_TO_GONG[context.yearZhi];
207
+ if (!gong)
208
+ return [];
209
+ return [{
210
+ name: shensha_rules_1.TAISUI_DEF.name,
211
+ type: shensha_rules_1.TAISUI_DEF.type,
212
+ gong,
213
+ description: `${shensha_rules_1.TAISUI_DEF.description}(${context.yearZhi}年)`,
214
+ }];
215
+ }
216
+ /**
217
+ * 计算羊刃
218
+ */
219
+ static calcYangRen(context) {
220
+ const yangRenZhi = shensha_rules_1.YANGREN[context.dayGan];
221
+ if (!yangRenZhi)
222
+ return [];
223
+ const gong = shensha_rules_1.DIZHI_TO_GONG[yangRenZhi];
224
+ if (!gong)
225
+ return [];
226
+ return [{
227
+ name: shensha_rules_1.YANGREN_DEF.name,
228
+ type: shensha_rules_1.YANGREN_DEF.type,
229
+ gong,
230
+ description: `${shensha_rules_1.YANGREN_DEF.description}(${yangRenZhi}位)`,
231
+ }];
232
+ }
233
+ /**
234
+ * 计算丁马
235
+ *
236
+ * 丁奇落宫即为丁马
237
+ */
238
+ static calcDingMa(context) {
239
+ const gong = (0, gongUtils_1.findGanGong)(context.result, '丁');
240
+ if (!gong)
241
+ return [];
242
+ return [{
243
+ name: shensha_rules_1.DINGMA_DEF.name,
244
+ type: shensha_rules_1.DINGMA_DEF.type,
245
+ gong,
246
+ description: shensha_rules_1.DINGMA_DEF.description,
247
+ }];
248
+ }
249
+ /**
250
+ * 计算神煞总评分
251
+ *
252
+ * @param shenShaList 神煞列表
253
+ * @returns 总评分
254
+ */
255
+ static calcTotalScore(shenShaList) {
256
+ const WEIGHTS = {
257
+ '天乙贵人': 15,
258
+ '禄神': 10,
259
+ '天德': 10,
260
+ '月德': 8,
261
+ '天医': 8,
262
+ '丁马': 5,
263
+ '羊刃': -10,
264
+ '驿马': 3,
265
+ '日马': 3,
266
+ '华盖': 0,
267
+ '桃花': 0,
268
+ '太岁': -5,
269
+ };
270
+ let score = 0;
271
+ for (const ss of shenShaList) {
272
+ score += WEIGHTS[ss.name] || 0;
273
+ }
274
+ return score;
275
+ }
276
+ /**
277
+ * 按吉凶类型分组神煞
278
+ */
279
+ static groupByType(shenShaList) {
280
+ const ji = [];
281
+ const xiong = [];
282
+ const zhongxing = [];
283
+ for (const ss of shenShaList) {
284
+ switch (ss.type) {
285
+ case '吉':
286
+ ji.push(ss);
287
+ break;
288
+ case '凶':
289
+ xiong.push(ss);
290
+ break;
291
+ case '中性':
292
+ zhongxing.push(ss);
293
+ break;
294
+ }
295
+ }
296
+ return { ji, xiong, zhongxing };
297
+ }
298
+ }
299
+ exports.ShenShaCalculator = ShenShaCalculator;
300
+ //# sourceMappingURL=ShenShaCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShenShaCalculator.js","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/ShenShaCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * 用神计算器
3
+ *
4
+ * 负责根据事类选取用神并分析用神状态
5
+ */
6
+ import type { ShiLei, YongShenInfo, QimenResult, TianGan } from '../types';
7
+ export declare class YongShenCalculator {
8
+ /**
9
+ * 分析用神
10
+ *
11
+ * @param result 奇门盘结果
12
+ * @param shiLei 事类
13
+ * @param nianGan 可选年干(用于年命分析)
14
+ * @returns 用神分析信息
15
+ */
16
+ static analyze(result: QimenResult, shiLei: ShiLei, nianGan?: TianGan): YongShenInfo;
17
+ /**
18
+ * 解析用神项列表
19
+ */
20
+ private static resolveYongShenItems;
21
+ /**
22
+ * 解析单个用神规则
23
+ */
24
+ private static resolveYongShenRule;
25
+ /**
26
+ * 分析用神项列表
27
+ */
28
+ private static analyzeYongShenItems;
29
+ /**
30
+ * 分析单个用神
31
+ */
32
+ private static analyzeYongShenItem;
33
+ /**
34
+ * 主客分析
35
+ */
36
+ private static analyzeZhuKe;
37
+ /**
38
+ * 年命分析
39
+ */
40
+ private static analyzeNianMing;
41
+ /**
42
+ * 找马星落宫
43
+ */
44
+ private static findMaXingGong;
45
+ /**
46
+ * 获取宫位旺相休囚死状态
47
+ */
48
+ private static getGongWangXiang;
49
+ /**
50
+ * 检测入墓
51
+ */
52
+ private static checkRuMu;
53
+ /**
54
+ * 检测击刑
55
+ */
56
+ private static checkJiXing;
57
+ /**
58
+ * 计算与日干关系
59
+ */
60
+ private static calcDayGanRelation;
61
+ /**
62
+ * 获取格局影响
63
+ */
64
+ private static getGeJuEffects;
65
+ /**
66
+ * 计算用神评分
67
+ */
68
+ private static calcYongShenScore;
69
+ /**
70
+ * 计算主客关系
71
+ */
72
+ private static calcZhuKeRelation;
73
+ /**
74
+ * 生成主客分析结论
75
+ */
76
+ private static generateZhuKeSummary;
77
+ }
78
+ //# sourceMappingURL=YongShenCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YongShenCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/YongShenCalculator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,MAAM,EAGN,YAAY,EAKZ,WAAW,EAEX,OAAO,EAGR,MAAM,UAAU,CAAC;AAyClB,qBAAa,kBAAkB;IAC7B;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CACZ,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,GAChB,YAAY;IA6Cf;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAgBnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAqIlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAOnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA6ClC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAyB3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAmB9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAgB7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAM/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAqCxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAM1B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAsCjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAY7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAwChC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAYhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;CA6CpC"}