dsh-metaphysics 0.59.0 → 0.59.1
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.
- package/CHANGELOG.md +97 -5
- package/README.md +15 -0
- package/client.almanac.js +56 -53
- package/client.bazi.js +112 -109
- package/client.chenggu.js +56 -53
- package/client.convert.js +55 -52
- package/client.daliuren.js +119 -116
- package/client.fengshui.js +61 -58
- package/client.hepan.js +110 -107
- package/client.js +322 -290
- package/client.liuyao.js +119 -116
- package/client.mbti.js +57 -54
- package/client.name.js +69 -66
- package/client.numerology.js +64 -61
- package/client.qimen.js +119 -116
- package/client.star.js +57 -54
- package/client.tarot.js +118 -115
- package/client.trend.js +107 -104
- package/client.xiaoliuren.js +65 -62
- package/client.zeri.js +57 -54
- package/client.ziwei.js +112 -109
- package/engine/bazi.js +800 -740
- package/engine/diff.js +3 -0
- package/engine/geju.js +548 -547
- package/engine/index.js +69 -6
- package/engine/interpret.js +4 -1
- package/engine/limits.js +5 -0
- package/engine/plain-summary.js +604 -0
- package/engine/rectify.js +2 -1
- package/engine/trend.js +3 -0
- package/index.js +5 -0
- package/package.json +11 -3
- package//345/221/275/347/220/206/346/216/222/347/233/230.html +2168 -1316
package/client.hepan.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
window.__ModuleLoader__.load({id:"dsh-metaphysics",chunk:"client.hepan.js",factory(
|
|
2
|
-
`);const
|
|
3
|
-
`)}const g=(r,t,d,n,h,k)=>({key:r,title:t,short:d,read:y=>{const b=y[r]!==void 0?y[r]:y.schools&&y.schools[r];return k[b]?b:n},alt:y=>y===h?n:h,label:y=>k[y]||y}),ue={bazi:[{key:"lateZi",title:"晚子时:23:00 后是否换日",short:"晚子时",read:r=>r.lateZi!==!1,alt:r=>!r,label:r=>r?"换日":"不换日"},{key:"trueSolar",title:"真太阳时:是否按出生地经度修正",short:"真太阳时",read:r=>r.trueSolar!==!1,alt:r=>!r,label:r=>r?"修正":"不修正"}],ziwei:[{key:"leapMonth",title:"闰月归月:按日切分 / 整月归次月",short:"闰月归月",read:r=>r.leapMonth==="next"||r.leapMonth==="prev"?r.leapMonth:"split",alt:r=>r==="split"?"next":"split",label:r=>({split:"按日切分",next:"整月归次月",prev:"整月归本月"})[r]||r},{key:"trueSolar",title:"真太阳时:是否按出生地经度修正",short:"真太阳时",read:r=>r.trueSolar!==!1,alt:r=>!r,label:r=>r?"修正":"不修正"},g("brightnessSchool","亮度表:默认 / QS 七档","亮度表","default","QS",{default:"默认",QS:"QS(七档)",XD1:"XD1(七档)",ZZ:"ZZ(五档)",XD2:"XD2(五档)"}),g("gengYearSihua","庚干四化:阳武阴同 / 同科阴忌","庚干四化","GYWYT","GYWTY",{GYWYT:"阳武阴同",GYWTY:"同科阴忌",GYWFT:"府科同忌",GYWFX:"府科相忌",GYWTX:"同科相忌"}),g("tianmaSchool","天马:按年支 / 按生月","天马","year-branch","month-branch",{"year-branch":"年支","month-branch":"生月"}),g("tiankongSchool","天空:不排 / 年支顺行","天空","off","normal",{off:"不排",normal:"年支顺行","shun-jia-shi":"加生时"}),g("jiekongSchool","截空旬空:不排 / 正副双星","截空旬空","off","double",{off:"不排",single:"单星",double:"正副双星",zhanyan:"占验派"}),g("kuiyueSchool","魁钺:qs1 / qs2","魁钺","qs1","qs2",{qs1:"qs1",qs2:"qs2","zhong-yiming":"中一鸣",network:"网络"}),g("tianshiTianshang","天伤天使:常规 / 中州互换","天伤天使","normal","zhongzhou",{normal:"常规",zhongzhou:"中州(阴男阳女互换)"}),g("changshengSchool","长生:阴阳顺逆 / 火土起寅","长生","yin-yang-shun-ni","huo-tu",{"yin-yang-shun-ni":"阴阳顺逆","shui-tu":"水二","huo-tu":"火土(土五局起寅)"}),g("lateZishi","晚子时:归当日 / 归次日","晚子时","current-day","next-day",{"current-day":"归当日","next-day":"归次日","all-current":"全归当日","day-cur-time-next":"日归当日·时归次日"}),g("shenzhuSchool","身主:子午皆火星 / 子铃午火","身主","common","verse",{common:"子午皆火星",verse:"子铃午火(安身主诀逐字)"})],qimen:[{key:"juMethod",title:"取局流派:拆补 / 超神接气 / 置闰",short:"取局流派",read:r=>["chaibu","chaoshen","zhirun"].includes(r.juMethod)?r.juMethod:"chaibu",alt:r=>r==="chaibu"?"zhirun":"chaibu",label:r=>({chaibu:"拆补法",chaoshen:"超神接气",zhirun:"置闰法"})[r]||r},{key:"lateZiHourMode",title:"晚子时:23:00 后归当日 / 次日",short:"晚子时归日",read:r=>r.lateZiHourMode==="next-day"?"next-day":"same-day",alt:r=>r==="next-day"?"same-day":"next-day",label:r=>r==="next-day"?"归次日":"归当日"}]},I={bazi:[{path:"pillars.day.ganzhi",label:"日柱"},{path:"pillars.hour.ganzhi",label:"时柱"},{path:"strength.level",label:"旺衰"},{path:"frame.primaryName",label:"格局"},{path:"frame.yongshen.favor",label:"喜用"},{path:"dayun.jiao.at",label:"起运"}],ziwei:[{path:"soul.ganzhi",label:"命宫"},{path:"body.branch",label:"身宫支"},{path:"bureau.name",label:"五行局"},{path:"bodyMaster",label:"身主"},{path:"daxianList.0.ages",label:"起大限"}],qimen:[{path:"siZhu.day",label:"日柱"},{path:"ju",label:"局数"},{path:"zhiFu.star",label:"值符"},{path:"zhiShi.gate",label:"值使"}]};function D(r,t){let d=r;for(const n of String(t).split(".")){if(d==null)return;d=d[n]}return d}function p(r){return r==null?"—":Array.isArray(r)?r.join("、"):typeof r=="object"?"—":String(r)}function T(r,t,d){return(I[r]||[]).map(h=>{const k=p(D(t,h.path)),y=p(D(d,h.path));return{key:h.path,label:h.label,current:k,alt:y,changed:k!==y}})}return{diffObjects:be,labelOf:B,categoryOf:u,rootOf:z,sortDiffs:_,summarize:E,formatValue:M,renderDiff:x,CALIBER_SWITCHES:ue,CALIBER_VIEWS:I,viewCell:p,viewRows:T}})(),K.fingerprint=(function(){const H="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function q(P){return JSON.stringify(be(P))}function be(P){if(P===null)return null;const B=typeof P;if(B==="string")return typeof P.normalize=="function"?P.normalize("NFC"):P;if(B==="number")return Number.isFinite(P)?Object.is(P,-0)?0:P:null;if(B==="boolean")return P;if(Array.isArray(P))return P.map(be);if(B==="object"){const u={};for(const z of Object.keys(P).sort()){const _=P[z];_===void 0||typeof _=="function"||typeof _=="symbol"||(u[z]=be(_))}return u}return null}function se(P){const B=String(P);let u=2166136261,z=2654435769;for(let M=0;M<B.length;M+=1){const x=B.charCodeAt(M);for(const g of[x&255,x>>>8])u=Math.imul(u^g,16777619),z=Math.imul(z^g,2246822507)}let _=(u>>>0)*8+(z>>>29),E="";for(let M=0;M<7;M+=1)E=H[_%32]+E,_=Math.floor(_/32);return E}function fe(P={}){const B=String(P.system||""),u=String(P.version||"dev"),z=P.seed===void 0||P.seed===null||P.seed===""?null:Number(P.seed),_=P.asOf?String(P.asOf):null,E=P.params&&typeof P.params=="object"?P.params:{},M=q({system:B,params:E,seed:z,asOf:_}),x=q({base:M,version:u});return{id:`LY-${se(x)}`,baseId:`LY-${se(M)}`,version:u,system:B,payload:M}}return{canonicalJson:q,shortHash:se,fingerprintOf:fe}})(),K.validate=(function(){const{fail:H}=K.fail||{},q=1600,be=2400;function se(z){return z%4===0&&z%100!==0||z%400===0}function fe(z,_){return _===2?se(z)?29:28:[31,28,31,30,31,30,31,31,30,31,30,31][_-1]||0}const P=z=>typeof z=="string"?`「${z}」`:String(z),B="引擎只接受解析好的公历字段 { year, month, day, hour?, minute? };字符串请先交给宿主层的 parseDateTime 解析";function u(z,_=""){const E=_?`${_} 的`:"";if(!z||typeof z!="object"||Array.isArray(z)){const ue=z===null?"null":Array.isArray(z)?"数组":typeof z;throw H("E_INPUT",`${E}入参必须是对象(收到 ${ue});${B}`)}const M=z.hour===void 0?0:z.hour,x=z.minute===void 0?0:z.minute;for(const[ue,I]of[["year",z.year],["month",z.month],["day",z.day],["hour",M],["minute",x]])if(!Number.isInteger(I))throw H("E_INPUT",`${E}${ue} 必须是整数(收到 ${P(I)});${B}`);if(z.year<q||z.year>be)throw H("E_INPUT",`${E}year 超出支持范围 ${q}–${be}(收到 ${z.year});更早的年份时区与历法口径不可靠`);if(z.month<1||z.month>12)throw H("E_INPUT",`${E}month 超出范围 1–12(收到 ${z.month})`);const g=fe(z.year,z.month);if(z.day<1||z.day>g)throw H("E_INPUT",`${E}日期不存在:${z.year}-${z.month}-${z.day}(${z.year} 年 ${z.month} 月只有 ${g} 天)`);if(M<0||M>23)throw H("E_INPUT",`${E}hour 超出范围 0–23(收到 ${M})`);if(x<0||x>59)throw H("E_INPUT",`${E}minute 超出范围 0–59(收到 ${x})`);return z}return{MIN_YEAR:q,MAX_YEAR:be,isLeapYear:se,daysInMonth:fe,assertCivil:u}})(),K.lru=(function(){function H({max:q=64,ttlMs:be=0,name:se="lru",now:fe=()=>Date.now()}={}){const P=new Map,B={name:se,hits:0,misses:0,evictions:0,expirations:0},u=z=>be>0&&fe()-z.at>be;return{name:se,max:q,ttlMs:be,get(z){const _=P.get(z);if(!_||u(_)){_&&(P.delete(z),B.expirations+=1),B.misses+=1;return}return P.delete(z),P.set(z,_),B.hits+=1,_.value},set(z,_){for(P.has(z)&&P.delete(z),P.set(z,{value:_,at:fe()});P.size>q;)P.delete(P.keys().next().value),B.evictions+=1;return _},has(z){const _=P.get(z);return _?u(_)?(P.delete(z),B.expirations+=1,!1):!0:!1},delete(z){return P.delete(z)},clear(){P.clear()},get size(){return P.size},stats(){const z=B.hits+B.misses;return{name:se,size:P.size,max:q,hits:B.hits,misses:B.misses,evictions:B.evictions,expirations:B.expirations,hitRate:z?B.hits/z:0}}}}return{createLru:H}})(),K.nayin=(function(){const H=["海中金","炉中火","大林木","路旁土","剑锋金","山头火","涧下水","城头土","白蜡金","杨柳木","泉中水","屋上土","霹雳火","松柏木","长流水","沙中金","山下火","平地木","壁上土","金箔金","覆灯火","天河水","大驿土","钗钏金","桑柘木","大溪水","沙中土","天上火","石榴木","大海水"];function q(be){const se=(Number(be)%60+60)%60,fe=H[Math.floor(se/2)];return{name:fe,element:fe[2]}}return{NAYIN_NAMES:H,nayinOf:q}})(),K.sanhe=(function(){const H=[{branches:["申","子","辰"],element:"水"},{branches:["亥","卯","未"],element:"木"},{branches:["寅","午","戌"],element:"火"},{branches:["巳","酉","丑"],element:"金"}],q=Object.fromEntries(H.map(fe=>[fe.branches.join(""),fe.element])),be=Object.fromEntries(H.flatMap(fe=>fe.branches.map(P=>[P,fe.element])));function se(fe){return H.find(P=>P.branches.includes(fe))||null}return{SANHE_GROUPS:H,SANHE:q,SANHE_ELEMENT:be,sanheGroupOf:se}})(),K["vsop-earth"]=(function(){const H=[[1.75347045673,0,0],[.03341656453,4.66925680415,6283.0758499914],[.00034894275,4.62610242189,12566.1516999828],[3417572e-11,2.82886579754,3.523118349],[3497056e-11,2.74411783405,5753.3848848968],[3135899e-11,3.62767041756,77713.7714681205],[2676218e-11,4.41808345438,7860.4193924392],[2342691e-11,6.13516214446,3930.2096962196],[1273165e-11,2.03709657878,529.6909650946],[1324294e-11,.74246341673,11506.7697697936],[901854e-11,2.04505446477,26.2983197998],[1199167e-11,1.10962946234,1577.3435424478],[857223e-11,3.50849152283,398.1490034082],[779786e-11,1.17882681962,5223.6939198022],[99025e-10,5.23268072088,5884.9268465832],[753141e-11,2.53339052847,5507.5532386674],[505267e-11,4.58292599973,18849.2275499742],[492392e-11,4.20505711826,775.522611324],[356672e-11,2.91954114478,.0673103028],[284125e-11,1.89869240932,796.2980068164],[242879e-11,.34481445893,5486.777843175],[317087e-11,5.84901948512,11790.6290886588],[271112e-11,.31486255375,10977.078804699],[206217e-11,4.80646631478,2544.3144198834],[205478e-11,1.86953770281,5573.1428014331],[202318e-11,2.45767790232,6069.7767545534],[126225e-11,1.08295459501,20.7753954924],[155516e-11,.83306084617,213.299095438],[115132e-11,.64544911683,.9803210682],[102851e-11,.63599845579,4694.0029547076],[101724e-11,4.2667980198,7.1135470008],[99206e-11,6.20992926918,2146.1654164752],[132212e-11,3.41118292683,2942.4634232916],[97607e-11,.68101342359,155.4203994342],[85128e-11,1.29870764804,6275.9623029906],[74651e-11,1.755089133,5088.6288397668],[101895e-11,.97569280312,15720.8387848784],[84711e-11,3.67080093031,71430.69561812909],[73547e-11,4.67926633877,801.8209311238],[73874e-11,3.50319414955,3154.6870848956],[78757e-11,3.03697458703,12036.4607348882],[79637e-11,1.80791287082,17260.1546546904],[85803e-11,5.9832263126,161000.6857376741],[56963e-11,2.78430458592,6286.5989683404],[61148e-11,1.81839892984,7084.8967811152],[69627e-11,.83297621398,9437.762934887],[56116e-11,4.38694865354,14143.4952424306],[62449e-11,3.97763912806,8827.3902698748],[51145e-11,.28306832879,5856.4776591154],[55577e-11,3.47006059924,6279.5527316424],[41036e-11,5.36817592855,8429.2412664666],[51605e-11,1.33282739866,1748.016413067],[51992e-11,.18914947184,12139.5535091068],[49e-8,.48735014197,1194.4470102246],[392e-9,6.16833020996,10447.3878396044],[3557e-10,1.775968892,6812.766815086],[3677e-10,6.04133863162,10213.285546211],[36596e-11,2.56957481827,1059.3819301892],[33296e-11,.59310278598,17789.845619785],[35954e-11,1.70875808777,2352.8661537718],[40938e-11,2.39850938714,19651.048481098],[30047e-11,2.73975124088,1349.8674096588],[30412e-11,.44294464169,83996.84731811189],[23663e-11,.48473622521,8031.0922630584],[23574e-11,2.06528133162,3340.6124266998],[21089e-11,4.14825468851,951.7184062506],[24738e-11,.21484762138,3.5904286518],[25352e-11,3.16470891653,4690.4798363586],[22823e-11,5.22195230819,4705.7323075436],[21419e-11,1.42563910473,16730.4636895958],[21891e-11,5.55594302779,553.5694028424],[203e-9,.37133792946,283.8593188652]],q=[[6283.0758499914,0,0],[.00206058863,2.67823455808,6283.0758499914],[4303419e-11,2.63512233481,12566.1516999828],[425264e-11,1.59046982018,3.523118349],[109017e-11,2.96631010675,1577.3435424478],[93479e-11,2.59211109542,18849.2275499742],[119305e-11,5.79555765566,26.2983197998],[72121e-11,1.13840581212,529.6909650946],[67784e-11,1.87453300345,398.1490034082],[6735e-10,4.40932832004,5507.5532386674],[59045e-11,2.88815790631,5223.6939198022],[55976e-11,2.17471740035,155.4203994342],[45411e-11,.39799502896,796.2980068164],[36298e-11,.46875437227,775.522611324],[28962e-11,2.64732254645,7.1135470008],[20844e-11,5.34138275149,.9803210682]],be=[[8721859e-11,1.07253635559,6283.0758499914],[99099e-10,3.14159265359,0],[294833e-11,.43717350256,12566.1516999828],[27338e-11,.05295636147,3.523118349],[16333e-11,5.18820215724,26.2983197998],[15745e-11,3.68504712183,155.4203994342],[9425e-11,.29667114694,18849.2275499742],[8938e-11,2.05706319592,77713.7714681205],[694e-10,.82691541038,775.522611324],[5061e-11,4.6624323168,1577.3435424478]],se=[[289058e-11,5.84173149732,6283.0758499914],[20712e-11,6.0498393902,12566.1516999828],[2962e-11,5.1956057957,155.4203994342],[2527e-11,3.14159265359,0],[1288e-11,4.7219761197,3.523118349]],fe=[[7714e-11,4.14117321449,6283.0758499914],[1016e-11,3.27573644241,12566.1516999828]];function P(B){let u=0;for(const[_,E,M]of H)u+=_*Math.cos(E+M*B);let z=1;for(const _ of[q,be,se,fe]){z*=B;for(const[E,M,x]of _)u+=E*z*Math.cos(M+x*B)}return u}return{earthL:P}})(),K.calendar=(function(){const{earthL:H}=K["vsop-earth"]||{},{createLru:q}=K.lru||{},be=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],se=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],fe=["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"];function P(Y){return(285+15*Y)%360}function B(Y,U,j){const f=Math.floor((14-U)/12),w=Y+4800-f,ne=U+12*f-3;return j+Math.floor((153*ne+2)/5)+365*w+Math.floor(w/4)-Math.floor(w/100)+Math.floor(w/400)-32045}function u(Y){const U=Y+32044,j=Math.floor((4*U+3)/146097),f=U-Math.floor(146097*j/4),w=Math.floor((4*f+3)/1461),ne=f-Math.floor(1461*w/4),te=Math.floor((5*ne+2)/153);return{year:100*j+w-4800+Math.floor(te/10),month:te+3-12*Math.floor(te/10),day:ne-Math.floor((153*te+2)/5)+1}}function z(Y,U){for(let j=0;j<60;j++)if(j%10===Y&&j%12===U)return j;return-1}function _(Y){const U=(Y%60+60)%60;return{index:U,stem:be[U%10],branch:se[U%12],name:be[U%10]+se[U%12]}}function E(Y){return((Y+49)%60+60)%60}function M(Y){const U=Y-2451545,j=U/36525,f=U/365250;let w=H(f)*180/Math.PI+180;w=(w%360+360)%360;const ne=(5029.0966*j+1.11113*j*j-6e-6*j*j*j)/3600;w+=ne,w-=.09033/3600;const te=(125.04452-1934.136261*j)*Math.PI/180,$e=(280.4665+36000.7698*j)*Math.PI/180,Re=(218.3165+481267.8813*j)*Math.PI/180,Ge=(-17.2*Math.sin(te)-1.32*Math.sin(2*$e)-.23*Math.sin(2*Re)+.21*Math.sin(2*te))/3600;w+=Ge;const ln=(357.52911+35999.05029*j-1537e-7*j*j)*Math.PI/180,jn=.016708634-42037e-9*j-1267e-10*j*j,Sn=1.000001018*(1-jn*jn)/(1+jn*Math.cos(ln+(1.914602-.004817*j)*(Math.PI/180)*Math.sin(ln)));return w-=20.4898/3600/(Sn||1),(w%360+360)%360}function x(Y){const U=[[1900,-2.8],[1920,21.2],[1940,24.3],[1950,29.1],[1960,33.2],[1970,40.2],[1980,50.5],[1990,56.9],[2e3,63.8],[2010,66.1],[2020,69.4],[2030,72],[2050,80],[2100,110]];if(Y<=U[0][0])return U[0][1];for(let j=1;j<U.length;j++)if(Y<=U[j][0]){const[f,w]=U[j-1],[ne,te]=U[j];return w+(te-w)*(Y-f)/(ne-f)}return U[U.length-1][1]}const g=8/24,ue=7.7611/24,I=2425612+4/24;function D(Y){return Y<I?ue:g}const p=q({max:4096,name:"termInstant"}),T=1e-5,r=new Map,t=365.2422;function d(Y,U){const j=P(U),f=B(Y,1,5)-.5+U*15.2184,w=r.get(U);let ne=w!==void 0?w+t:f;Math.abs(ne-f)>20&&(ne=f);for(let $e=0;$e<12;$e++){let Re=j-M(ne);if(Re=((Re+180)%360+360)%360-180,ne+=Re/.98564736,Math.abs(Re)<T)break}r.set(U,ne);const te=ne-x(Y)/86400;return te+D(te)}function n(Y,U){const j=Y*24+U,f=p.get(j);if(f!==void 0)return f;const w=d(Y,U);return p.set(j,w),w}function h(Y){const U=Math.floor(Y+.5),j=Y+.5-U,f=Math.round(j*1440),{year:w,month:ne,day:te}=u(U);return{year:w,month:ne,day:te,hour:Math.floor(f/60)%24,minute:f%60}}function k({year:Y,month:U,day:j,hour:f=0,minute:w=0}){return B(Y,U,j)-.5+(f*60+w)/1440}function y(Y,U,j){const f=B(Y,U,j)-B(Y,1,1)+1,w=2*Math.PI*(f-81)/364;return 9.87*Math.sin(2*w)-7.53*Math.cos(w)-1.5*Math.sin(w)}const b=q({max:8,name:"termWindow"}),O=q({max:32,name:"termYear"}),ie=Array.from({length:24},(Y,U)=>U),de=ie.filter(Y=>Y%2===0);function ze(Y,U){const j=U?`${Y}|jie`:`${Y}|all`,f=O.get(j);if(f)return f;if(U){const ne=O.get(`${Y}|all`);if(ne){const te=ne.filter($e=>$e.index%2===0);return O.set(j,te),te}}const w=[];for(const ne of U?de:ie)w.push({year:Y,index:ne,name:fe[ne],jd:n(Y,ne)});return w.sort((ne,te)=>ne.jd-te.jd),O.set(j,w),w}function Ae(Y,U={}){const j=U.jieOnly===!0,f=j?`${Y}|jie`:Y,w=b.get(f);if(w)return w;const ne=[...ze(Y-1,j),...ze(Y,j),...ze(Y+1,j)];return ne.sort((te,$e)=>te.jd-$e.jd),b.set(f,ne),ne}function we(Y){if(typeof Y!="string"||Y.length<2)return[];const U=be.indexOf(Y[0]),j=se.indexOf(Y[1]);if(U<0||j<0)return[];const f=z(U,j);if(f<0)return[];const w=Math.floor(f/10)*10;return[se[(w+10)%12],se[(w+11)%12]]}function en(Y,U){let j=null;for(const f of Y)if(f.index%2===0)if(f.jd<=U)j=f;else break;return j}function Pe(Y,U){for(const j of Y)if(j.index%2===0&&j.jd>U)return j;return null}function bn(Y){const U=h(Y),j=f=>String(f).padStart(2,"0");return`${U.year}-${j(U.month)}-${j(U.day)} ${j(U.hour)}:${j(U.minute)}`}function rn(){return[p.stats(),O.stats(),b.stats()]}return{STEMS:be,BRANCHES:se,TERM_NAMES:fe,termLongitude:P,toJDN:B,fromJDN:u,sexagenaryIndex:z,ganzhiName:_,dayGanzhiIndex:E,sunLongitude:M,deltaTSeconds:x,OFFSET_MODERN:g,OFFSET_BEIJING_LOCAL:ue,CUTOVER_JD:I,localOffsetFor:D,termInstantJd:n,jdToParts:h,partsToJd:k,equationOfTime:y,termWindow:Ae,xunKongOf:we,previousJie:en,nextJie:Pe,formatJd:bn,cacheMetrics:rn}})(),K.lunar=(function(){const{toJDN:H,jdToParts:q,termInstantJd:be,deltaTSeconds:se,localOffsetFor:fe,OFFSET_MODERN:P}=K.calendar||{},B=29.530588861,u=245155009766e-5,z=Math.PI/180;function _(D){const p=D/1236.85,T=u+B*D+15437e-8*p*p-15e-8*p*p*p+73e-11*p*p*p*p,r=1-.002516*p-74e-7*p*p,t=(2.5534+29.1053567*D-14e-7*p*p-11e-8*p*p*p)*z,d=(201.5643+385.81693528*D+.0107582*p*p+1238e-8*p*p*p-58e-9*p*p*p*p)*z,n=(160.7108+390.67050284*D-.0016118*p*p-227e-8*p*p*p+11e-9*p*p*p*p)*z,h=(124.7746-1.56375588*D+.0020672*p*p+215e-8*p*p*p)*z,k=-.4072*Math.sin(d)+.17241*r*Math.sin(t)+.01608*Math.sin(2*d)+.01039*Math.sin(2*n)+.00739*r*Math.sin(d-t)-.00514*r*Math.sin(d+t)+.00208*r*r*Math.sin(2*t)-.00111*Math.sin(d-2*n)-57e-5*Math.sin(d+2*n)+56e-5*r*Math.sin(2*d+t)-42e-5*Math.sin(3*d)+42e-5*r*Math.sin(t+2*n)+38e-5*r*Math.sin(t-2*n)-24e-5*r*Math.sin(2*d-t)-17e-5*Math.sin(h)-7e-5*Math.sin(d+2*t)+4e-5*Math.sin(2*d-2*n)+4e-5*Math.sin(3*t)+3e-5*Math.sin(d+t-2*n)+3e-5*Math.sin(2*d+2*n)-3e-5*Math.sin(d+t+2*n)+3e-5*Math.sin(d-t+2*n)-2e-5*Math.sin(d-t-2*n)-2e-5*Math.sin(3*d+t)+2e-5*Math.sin(4*d),y=T+k-se(2e3+p*100)/86400;return y+fe(y)}function E(D){return Math.floor(D+.5)}function M(D){const p=D-P;return p+fe(p)}function x(D){return Math.round((D+.5-u)/B)}function g(D,p,T){for(let r=D-1;r<=D+1;r++)for(let t=1;t<24;t+=2){const d=M(be(r,t)),n=E(d);if(n>=p&&n<T)return{index:t,jd:d}}return null}function ue(D,p,T){const r=H(D,p,T),t=E(M(be(D,23))),d=r<t?D-1:D,n=E(M(be(d,23)));let h=x(n);for(;E(_(h))>n;)h--;for(;E(_(h+1))<=n;)h++;const k=E(M(be(d+1,23)));let y=h;for(;E(_(y+1))<=k;)y++;const b=y-h;let O=-1;if(b===13)for(let Ae=1;Ae<=b;Ae++){const we=E(_(h+Ae-1)),en=E(_(h+Ae));if(!g(d,we,en)){O=Ae;break}}let ie=11,de=!1,ze=E(_(h));for(let Ae=1;Ae<=15;Ae++){const we=E(_(h+Ae-1)),en=E(_(h+Ae)),Pe=g(d,we,en),bn=Ae===O;if(r>=we&&r<en){const rn=q(_(h+Ae-1)),Y=bn?(ie+10)%12+1:ie;return{year:d,lunarYear:de?d+1:d,month:Y,day:r-we+1,isLeap:bn,monthStart:`${rn.year}-${String(rn.month).padStart(2,"0")}-${String(rn.day).padStart(2,"0")}`,hasZhongQi:!!Pe}}bn||(ie=ie%12+1,ie===1&&(de=!0)),ze=en}throw new Error(`农历换算失败:${D}-${p}-${T}`)}function I(D,p,T){return H(D,p,T)}return{SYNODIC:B,newMoonJd:_,dayNumberOf:E,solarToLunar:ue,monthStartJd:I}})(),K.geo=(function(){const H=`
|
|
1
|
+
window.__ModuleLoader__.load({id:"dsh-metaphysics",chunk:"client.hepan.js",factory(ot){const V={};return V.fail=(function(){return{fail:(A,Se)=>{const se=new Error(Se);return se.code=A,se}}})(),V.diff=(function(){const Y=new Set(["summary","interpret","castAt","asOf","precision","disclaimer","note","trueSolarText","civilText","offsetMinutes","input","jd","juMethod","juMethodNote","lateZiHourMode","leapPolicy","schools","bodyMasterSchool","bodyMasterNote","handle","handleError","revision","brief","briefError"]),A=s=>s!==null&&typeof s=="object";function Se(s,t,d="",n=[]){if(s===t)return n;if(!A(s)||!A(t))return n.push({path:d||"(root)",from:s,to:t}),n;const m=new Set([...Object.keys(s),...Object.keys(t)]);for(const S of m){if(Y.has(S))continue;const p=d?`${d}.${S}`:S,j=s[S],_=t[S];A(j)&&A(_)?Se(j,_,p,n):JSON.stringify(j)!==JSON.stringify(_)&&n.push({path:p,from:j,to:_})}return n}const se=[[/^pillars\.year\.ganzhi$/,"年柱"],[/^pillars\.month\.ganzhi$/,"月柱"],[/^pillars\.day\.ganzhi$/,"日柱"],[/^pillars\.hour\.ganzhi$/,"时柱"],[/^pillars\.\w+\.hidden/,"藏干"],[/^pillars\.\w+\.stemTenGod$/,"十神"],[/^pillars\.\w+\.kongwang/,"空亡"],[/^pillars\.\w+\.dishi$|^pillars\.\w+\.zizuo$/,"十二长生"],[/^pillars\.\w+\.nayin$/,"纳音"],[/^dayMaster\./,"日主"],[/^palaces\.(taiyuan|minggong|shengong)\./,"命身宫"],[/^palaces\.\d+\.(palace|branch|stem|ganzhi)$/,"宫位"],[/^palaces\.\d+\.stars\.\d+\.(name|brightness|type)$/,"星曜"],[/^palaces\.\d+\.shensha\./,"神煞"],[/^palaces\.\d+\.(daxian|xiaoxian)\./,"大限"],[/^palaces\.\d+\.sanfang\./,"三方四正"],[/^palaces\.\d+\./,"宫位"],[/^palaces\./,"命身宫"],[/^soul\./,"命宫"],[/^body\./,"身宫"],[/^doujun\./,"流年斗君"],[/^siZhu\.year$/,"年柱"],[/^siZhu\.month$/,"月柱"],[/^siZhu\.day$/,"日柱"],[/^siZhu\.time$/,"时柱"],[/^ju$|^juNumber$/,"局数"],[/^yuan$/,"三元"],[/^dun$/,"阴阳遁"],[/^daxian(List)?\./,"大限"],[/^fly(Chains|Composite)?\./,"飞星"],[/^pattern/,"格局"],[/^schools\./,"流派回显"],[/^dayun\.jiao\./,"起运"],[/^dayun\.toNextJieDays$/,"起运时间"],[/^dayun\.list\.(\d+)\.ganzhi$/,"大运干支"],[/^dayun\.startAge\./,"起运时间"],[/^dayun\./,"大运评分"],[/^liunian\./,"流年"],[/^jieqi\./,"节气边界"],[/^solarTime\./,"真太阳时"],[/^dayGanZhi$/,"日辰"],[/^hourZhi$/,"时支"],[/^yueJiang\./,"月将"],[/^xunKong$/,"旬空"],[/^lines\.(\d+)\./,"爻"],[/^shensha\./,"神煞"],[/^frame\./,"格局用神"],[/^strength\./,"旺衰"],[/^wuxing\./,"五行计数"],[/^relations\./,"干支关系"],[/^input\./,"输入回显"]],me=[[/^pillars\./,"四柱"],[/^shensha\./,"神煞"],[/^dayun\./,"大运"],[/^liunian\./,"流年"],[/^frame\./,"格局用神"],[/^strength\./,"旺衰"],[/^wuxing\./,"五行计数"],[/^dayMaster\./,"日主"],[/^relations\./,"干支关系"],[/^palaces\.(taiyuan|minggong|shengong)\./,"命身宫"],[/^palaces\.\d+\./,"宫位"],[/^palaces\./,"命身宫"],[/^soul\.|^body\.|^doujun\./,"命身宫"],[/^siZhu\./,"四柱"],[/^ju$|^juNumber$|^yuan$|^dun$/,"局数"],[/^daxian/,"大限"],[/^fly/,"飞星"],[/^pattern/,"格局"],[/^jieqi\./,"节气"],[/^solarTime\./,"真太阳时"],[/^input\./,"输入回显"],[/^lines\./,"爻"]],B=[[/^pillars\.(year|month|day|hour)\.ganzhi$/,"柱"],[/^palaces\.(minggong|shengong)\.ganzhi$/,"命身宫"],[/^soul\.ganzhi$/,"命宫"],[/^body\.branch$/,"身宫"],[/^siZhu\.(year|month|day|time)$/,"柱"],[/^dayun\.jiao\.at$/,"起运"],[/^dayGanZhi$/,"日辰"],[/^hourZhi$/,"时支"],[/^ju$|^juNumber$|^juName$/,"局数"],[/^dun$/,"阴阳遁"],[/^lines\.\d+\.(ganzhi|yinYang|name)$/,"爻"],[/^yueJiang\.(name|zhi)$/,"月将"]];function U(s){for(const[t,d]of se)if(t.test(s))return d;return c(s)||s}function c(s){for(const[t,d]of me)if(t.test(s))return d;return""}function q(s){for(const[t,d]of B)if(t.test(s))return d;return""}function P(s){return[...s].sort((t,d)=>t.path.localeCompare(d.path,"zh-Hans-CN",{numeric:!0}))}function N(s){if(!s.length)return"本盘不受此口径影响:所有字段一致。";const t=s.filter(S=>q(S.path)),d=[...new Set(s.map(S=>c(S.path)).filter(Boolean))],n=t.length?`根因 ${t.length} 处:`+t.slice(0,4).map(S=>`${U(S.path)} ${L(S.from)}→${L(S.to)}`).join("、")+(t.length>4?" 等":""):"无单一根因",m=d.length?`;连带影响 ${d.slice(0,6).join("、")}${d.length>6?" 等":""} ${d.length} 类,共 ${s.length} 处`:`;共 ${s.length} 处`;return n+m+"。"}const L=s=>s===void 0?"—":s===null?"null":typeof s=="string"?s:Array.isArray(s)?s.join("")||"[]":typeof s=="object"?JSON.stringify(s):String(s);function z(s,{title:t="",limit:d=12}={}){const n=[];if(t&&n.push(`【${t}】`),n.push(N(s)),!s.length)return n.join(`
|
|
2
|
+
`);const m=P(s.filter(p=>q(p.path))),S=P(s.filter(p=>!q(p.path)));if(m.length){n.push(""),n.push(" 根因(口径直接改动):");for(const p of m)n.push(` ${U(p.path).padEnd(6)} ${L(p.from)} → ${L(p.to)}`)}if(S.length){n.push(""),n.push(` 连带变化(${S.length} 处,展示前 ${Math.min(d,S.length)} 处):`);for(const p of S.slice(0,d))n.push(` ${U(p.path).padEnd(6)} ${L(p.from)} → ${L(p.to)}`);if(S.length>d){const p={};for(const j of S.slice(d)){const _=c(j.path)||"其他";p[_]=(p[_]||0)+1}n.push(" 其余:"+Object.entries(p).map(([j,_])=>`${j} ${_} 处`).join("、"))}}return n.join(`
|
|
3
|
+
`)}const g=(s,t,d,n,m,S)=>({key:s,title:t,short:d,read:p=>{const j=p[s]!==void 0?p[s]:p.schools&&p.schools[s];return S[j]?j:n},alt:p=>p===m?n:m,label:p=>S[p]||p}),$e={bazi:[{key:"lateZi",title:"晚子时:23:00 后是否换日",short:"晚子时",read:s=>s.lateZi!==!1,alt:s=>!s,label:s=>s?"换日":"不换日"},{key:"trueSolar",title:"真太阳时:是否按出生地经度修正",short:"真太阳时",read:s=>s.trueSolar!==!1,alt:s=>!s,label:s=>s?"修正":"不修正"}],ziwei:[{key:"leapMonth",title:"闰月归月:按日切分 / 整月归次月",short:"闰月归月",read:s=>s.leapMonth==="next"||s.leapMonth==="prev"?s.leapMonth:"split",alt:s=>s==="split"?"next":"split",label:s=>({split:"按日切分",next:"整月归次月",prev:"整月归本月"})[s]||s},{key:"trueSolar",title:"真太阳时:是否按出生地经度修正",short:"真太阳时",read:s=>s.trueSolar!==!1,alt:s=>!s,label:s=>s?"修正":"不修正"},g("brightnessSchool","亮度表:默认 / QS 七档","亮度表","default","QS",{default:"默认",QS:"QS(七档)",XD1:"XD1(七档)",ZZ:"ZZ(五档)",XD2:"XD2(五档)"}),g("gengYearSihua","庚干四化:阳武阴同 / 同科阴忌","庚干四化","GYWYT","GYWTY",{GYWYT:"阳武阴同",GYWTY:"同科阴忌",GYWFT:"府科同忌",GYWFX:"府科相忌",GYWTX:"同科相忌"}),g("tianmaSchool","天马:按年支 / 按生月","天马","year-branch","month-branch",{"year-branch":"年支","month-branch":"生月"}),g("tiankongSchool","天空:不排 / 年支顺行","天空","off","normal",{off:"不排",normal:"年支顺行","shun-jia-shi":"加生时"}),g("jiekongSchool","截空旬空:不排 / 正副双星","截空旬空","off","double",{off:"不排",single:"单星",double:"正副双星",zhanyan:"占验派"}),g("kuiyueSchool","魁钺:qs1 / qs2","魁钺","qs1","qs2",{qs1:"qs1",qs2:"qs2","zhong-yiming":"中一鸣",network:"网络"}),g("tianshiTianshang","天伤天使:常规 / 中州互换","天伤天使","normal","zhongzhou",{normal:"常规",zhongzhou:"中州(阴男阳女互换)"}),g("changshengSchool","长生:阴阳顺逆 / 火土起寅","长生","yin-yang-shun-ni","huo-tu",{"yin-yang-shun-ni":"阴阳顺逆","shui-tu":"水二","huo-tu":"火土(土五局起寅)"}),g("lateZishi","晚子时:归当日 / 归次日","晚子时","current-day","next-day",{"current-day":"归当日","next-day":"归次日","all-current":"全归当日","day-cur-time-next":"日归当日·时归次日"}),g("shenzhuSchool","身主:子午皆火星 / 子铃午火","身主","common","verse",{common:"子午皆火星",verse:"子铃午火(安身主诀逐字)"})],qimen:[{key:"juMethod",title:"取局流派:拆补 / 超神接气 / 置闰",short:"取局流派",read:s=>["chaibu","chaoshen","zhirun"].includes(s.juMethod)?s.juMethod:"chaibu",alt:s=>s==="chaibu"?"zhirun":"chaibu",label:s=>({chaibu:"拆补法",chaoshen:"超神接气",zhirun:"置闰法"})[s]||s},{key:"lateZiHourMode",title:"晚子时:23:00 后归当日 / 次日",short:"晚子时归日",read:s=>s.lateZiHourMode==="next-day"?"next-day":"same-day",alt:s=>s==="next-day"?"same-day":"next-day",label:s=>s==="next-day"?"归次日":"归当日"}]},G={bazi:[{path:"pillars.day.ganzhi",label:"日柱"},{path:"pillars.hour.ganzhi",label:"时柱"},{path:"strength.level",label:"旺衰"},{path:"frame.primaryName",label:"格局"},{path:"frame.yongshen.favor",label:"喜用"},{path:"dayun.jiao.at",label:"起运"}],ziwei:[{path:"soul.ganzhi",label:"命宫"},{path:"body.branch",label:"身宫支"},{path:"bureau.name",label:"五行局"},{path:"bodyMaster",label:"身主"},{path:"daxianList.0.ages",label:"起大限"}],qimen:[{path:"siZhu.day",label:"日柱"},{path:"ju",label:"局数"},{path:"zhiFu.star",label:"值符"},{path:"zhiShi.gate",label:"值使"}]};function J(s,t){let d=s;for(const n of String(t).split(".")){if(d==null)return;d=d[n]}return d}function k(s){return s==null?"—":Array.isArray(s)?s.join("、"):typeof s=="object"?"—":String(s)}function T(s,t,d){return(G[s]||[]).map(m=>{const S=k(J(t,m.path)),p=k(J(d,m.path));return{key:m.path,label:m.label,current:S,alt:p,changed:S!==p}})}return{diffObjects:Se,labelOf:U,categoryOf:c,rootOf:q,sortDiffs:P,summarize:N,formatValue:L,renderDiff:z,CALIBER_SWITCHES:$e,CALIBER_VIEWS:G,viewCell:k,viewRows:T}})(),V.fingerprint=(function(){const Y="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function A(B){return JSON.stringify(Se(B))}function Se(B){if(B===null)return null;const U=typeof B;if(U==="string")return typeof B.normalize=="function"?B.normalize("NFC"):B;if(U==="number")return Number.isFinite(B)?Object.is(B,-0)?0:B:null;if(U==="boolean")return B;if(Array.isArray(B))return B.map(Se);if(U==="object"){const c={};for(const q of Object.keys(B).sort()){const P=B[q];P===void 0||typeof P=="function"||typeof P=="symbol"||(c[q]=Se(P))}return c}return null}function se(B){const U=String(B);let c=2166136261,q=2654435769;for(let L=0;L<U.length;L+=1){const z=U.charCodeAt(L);for(const g of[z&255,z>>>8])c=Math.imul(c^g,16777619),q=Math.imul(q^g,2246822507)}let P=(c>>>0)*8+(q>>>29),N="";for(let L=0;L<7;L+=1)N=Y[P%32]+N,P=Math.floor(P/32);return N}function me(B={}){const U=String(B.system||""),c=String(B.version||"dev"),q=B.seed===void 0||B.seed===null||B.seed===""?null:Number(B.seed),P=B.asOf?String(B.asOf):null,N=B.params&&typeof B.params=="object"?B.params:{},L=A({system:U,params:N,seed:q,asOf:P}),z=A({base:L,version:c});return{id:`LY-${se(z)}`,baseId:`LY-${se(L)}`,version:c,system:U,payload:L}}return{canonicalJson:A,shortHash:se,fingerprintOf:me}})(),V.validate=(function(){const{fail:Y}=V.fail||{},A=1600,Se=2400;function se(q){return q%4===0&&q%100!==0||q%400===0}function me(q,P){return P===2?se(q)?29:28:[31,28,31,30,31,30,31,31,30,31,30,31][P-1]||0}const B=q=>typeof q=="string"?`「${q}」`:String(q),U="引擎只接受解析好的公历字段 { year, month, day, hour?, minute? };字符串请先交给宿主层的 parseDateTime 解析";function c(q,P=""){const N=P?`${P} 的`:"";if(!q||typeof q!="object"||Array.isArray(q)){const $e=q===null?"null":Array.isArray(q)?"数组":typeof q;throw Y("E_INPUT",`${N}入参必须是对象(收到 ${$e});${U}`)}const L=q.hour===void 0?0:q.hour,z=q.minute===void 0?0:q.minute;for(const[$e,G]of[["year",q.year],["month",q.month],["day",q.day],["hour",L],["minute",z]])if(!Number.isInteger(G))throw Y("E_INPUT",`${N}${$e} 必须是整数(收到 ${B(G)});${U}`);if(q.year<A||q.year>Se)throw Y("E_INPUT",`${N}year 超出支持范围 ${A}–${Se}(收到 ${q.year});更早的年份时区与历法口径不可靠`);if(q.month<1||q.month>12)throw Y("E_INPUT",`${N}month 超出范围 1–12(收到 ${q.month})`);const g=me(q.year,q.month);if(q.day<1||q.day>g)throw Y("E_INPUT",`${N}日期不存在:${q.year}-${q.month}-${q.day}(${q.year} 年 ${q.month} 月只有 ${g} 天)`);if(L<0||L>23)throw Y("E_INPUT",`${N}hour 超出范围 0–23(收到 ${L})`);if(z<0||z>59)throw Y("E_INPUT",`${N}minute 超出范围 0–59(收到 ${z})`);return q}return{MIN_YEAR:A,MAX_YEAR:Se,isLeapYear:se,daysInMonth:me,assertCivil:c}})(),V.lru=(function(){function Y({max:A=64,ttlMs:Se=0,name:se="lru",now:me=()=>Date.now()}={}){const B=new Map,U={name:se,hits:0,misses:0,evictions:0,expirations:0},c=q=>Se>0&&me()-q.at>Se;return{name:se,max:A,ttlMs:Se,get(q){const P=B.get(q);if(!P||c(P)){P&&(B.delete(q),U.expirations+=1),U.misses+=1;return}return B.delete(q),B.set(q,P),U.hits+=1,P.value},set(q,P){for(B.has(q)&&B.delete(q),B.set(q,{value:P,at:me()});B.size>A;)B.delete(B.keys().next().value),U.evictions+=1;return P},has(q){const P=B.get(q);return P?c(P)?(B.delete(q),U.expirations+=1,!1):!0:!1},delete(q){return B.delete(q)},clear(){B.clear()},get size(){return B.size},stats(){const q=U.hits+U.misses;return{name:se,size:B.size,max:A,hits:U.hits,misses:U.misses,evictions:U.evictions,expirations:U.expirations,hitRate:q?U.hits/q:0}}}}return{createLru:Y}})(),V.nayin=(function(){const Y=["海中金","炉中火","大林木","路旁土","剑锋金","山头火","涧下水","城头土","白蜡金","杨柳木","泉中水","屋上土","霹雳火","松柏木","长流水","沙中金","山下火","平地木","壁上土","金箔金","覆灯火","天河水","大驿土","钗钏金","桑柘木","大溪水","沙中土","天上火","石榴木","大海水"];function A(Se){const se=(Number(Se)%60+60)%60,me=Y[Math.floor(se/2)];return{name:me,element:me[2]}}return{NAYIN_NAMES:Y,nayinOf:A}})(),V.sanhe=(function(){const Y=[{branches:["申","子","辰"],element:"水"},{branches:["亥","卯","未"],element:"木"},{branches:["寅","午","戌"],element:"火"},{branches:["巳","酉","丑"],element:"金"}],A=Object.fromEntries(Y.map(me=>[me.branches.join(""),me.element])),Se=Object.fromEntries(Y.flatMap(me=>me.branches.map(B=>[B,me.element])));function se(me){return Y.find(B=>B.branches.includes(me))||null}return{SANHE_GROUPS:Y,SANHE:A,SANHE_ELEMENT:Se,sanheGroupOf:se}})(),V["vsop-earth"]=(function(){const Y=[[1.75347045673,0,0],[.03341656453,4.66925680415,6283.0758499914],[.00034894275,4.62610242189,12566.1516999828],[3417572e-11,2.82886579754,3.523118349],[3497056e-11,2.74411783405,5753.3848848968],[3135899e-11,3.62767041756,77713.7714681205],[2676218e-11,4.41808345438,7860.4193924392],[2342691e-11,6.13516214446,3930.2096962196],[1273165e-11,2.03709657878,529.6909650946],[1324294e-11,.74246341673,11506.7697697936],[901854e-11,2.04505446477,26.2983197998],[1199167e-11,1.10962946234,1577.3435424478],[857223e-11,3.50849152283,398.1490034082],[779786e-11,1.17882681962,5223.6939198022],[99025e-10,5.23268072088,5884.9268465832],[753141e-11,2.53339052847,5507.5532386674],[505267e-11,4.58292599973,18849.2275499742],[492392e-11,4.20505711826,775.522611324],[356672e-11,2.91954114478,.0673103028],[284125e-11,1.89869240932,796.2980068164],[242879e-11,.34481445893,5486.777843175],[317087e-11,5.84901948512,11790.6290886588],[271112e-11,.31486255375,10977.078804699],[206217e-11,4.80646631478,2544.3144198834],[205478e-11,1.86953770281,5573.1428014331],[202318e-11,2.45767790232,6069.7767545534],[126225e-11,1.08295459501,20.7753954924],[155516e-11,.83306084617,213.299095438],[115132e-11,.64544911683,.9803210682],[102851e-11,.63599845579,4694.0029547076],[101724e-11,4.2667980198,7.1135470008],[99206e-11,6.20992926918,2146.1654164752],[132212e-11,3.41118292683,2942.4634232916],[97607e-11,.68101342359,155.4203994342],[85128e-11,1.29870764804,6275.9623029906],[74651e-11,1.755089133,5088.6288397668],[101895e-11,.97569280312,15720.8387848784],[84711e-11,3.67080093031,71430.69561812909],[73547e-11,4.67926633877,801.8209311238],[73874e-11,3.50319414955,3154.6870848956],[78757e-11,3.03697458703,12036.4607348882],[79637e-11,1.80791287082,17260.1546546904],[85803e-11,5.9832263126,161000.6857376741],[56963e-11,2.78430458592,6286.5989683404],[61148e-11,1.81839892984,7084.8967811152],[69627e-11,.83297621398,9437.762934887],[56116e-11,4.38694865354,14143.4952424306],[62449e-11,3.97763912806,8827.3902698748],[51145e-11,.28306832879,5856.4776591154],[55577e-11,3.47006059924,6279.5527316424],[41036e-11,5.36817592855,8429.2412664666],[51605e-11,1.33282739866,1748.016413067],[51992e-11,.18914947184,12139.5535091068],[49e-8,.48735014197,1194.4470102246],[392e-9,6.16833020996,10447.3878396044],[3557e-10,1.775968892,6812.766815086],[3677e-10,6.04133863162,10213.285546211],[36596e-11,2.56957481827,1059.3819301892],[33296e-11,.59310278598,17789.845619785],[35954e-11,1.70875808777,2352.8661537718],[40938e-11,2.39850938714,19651.048481098],[30047e-11,2.73975124088,1349.8674096588],[30412e-11,.44294464169,83996.84731811189],[23663e-11,.48473622521,8031.0922630584],[23574e-11,2.06528133162,3340.6124266998],[21089e-11,4.14825468851,951.7184062506],[24738e-11,.21484762138,3.5904286518],[25352e-11,3.16470891653,4690.4798363586],[22823e-11,5.22195230819,4705.7323075436],[21419e-11,1.42563910473,16730.4636895958],[21891e-11,5.55594302779,553.5694028424],[203e-9,.37133792946,283.8593188652]],A=[[6283.0758499914,0,0],[.00206058863,2.67823455808,6283.0758499914],[4303419e-11,2.63512233481,12566.1516999828],[425264e-11,1.59046982018,3.523118349],[109017e-11,2.96631010675,1577.3435424478],[93479e-11,2.59211109542,18849.2275499742],[119305e-11,5.79555765566,26.2983197998],[72121e-11,1.13840581212,529.6909650946],[67784e-11,1.87453300345,398.1490034082],[6735e-10,4.40932832004,5507.5532386674],[59045e-11,2.88815790631,5223.6939198022],[55976e-11,2.17471740035,155.4203994342],[45411e-11,.39799502896,796.2980068164],[36298e-11,.46875437227,775.522611324],[28962e-11,2.64732254645,7.1135470008],[20844e-11,5.34138275149,.9803210682]],Se=[[8721859e-11,1.07253635559,6283.0758499914],[99099e-10,3.14159265359,0],[294833e-11,.43717350256,12566.1516999828],[27338e-11,.05295636147,3.523118349],[16333e-11,5.18820215724,26.2983197998],[15745e-11,3.68504712183,155.4203994342],[9425e-11,.29667114694,18849.2275499742],[8938e-11,2.05706319592,77713.7714681205],[694e-10,.82691541038,775.522611324],[5061e-11,4.6624323168,1577.3435424478]],se=[[289058e-11,5.84173149732,6283.0758499914],[20712e-11,6.0498393902,12566.1516999828],[2962e-11,5.1956057957,155.4203994342],[2527e-11,3.14159265359,0],[1288e-11,4.7219761197,3.523118349]],me=[[7714e-11,4.14117321449,6283.0758499914],[1016e-11,3.27573644241,12566.1516999828]];function B(U){let c=0;for(const[P,N,L]of Y)c+=P*Math.cos(N+L*U);let q=1;for(const P of[A,Se,se,me]){q*=U;for(const[N,L,z]of P)c+=N*q*Math.cos(L+z*U)}return c}return{earthL:B}})(),V.calendar=(function(){const{earthL:Y}=V["vsop-earth"]||{},{createLru:A}=V.lru||{},Se=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],se=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],me=["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"];function B(E){return(285+15*E)%360}function U(E,R,w){const f=Math.floor((14-R)/12),b=E+4800-f,F=R+12*f-3;return w+Math.floor((153*F+2)/5)+365*b+Math.floor(b/4)-Math.floor(b/100)+Math.floor(b/400)-32045}function c(E){const R=E+32044,w=Math.floor((4*R+3)/146097),f=R-Math.floor(146097*w/4),b=Math.floor((4*f+3)/1461),F=f-Math.floor(1461*b/4),C=Math.floor((5*F+2)/153);return{year:100*w+b-4800+Math.floor(C/10),month:C+3-12*Math.floor(C/10),day:F-Math.floor((153*C+2)/5)+1}}function q(E,R){for(let w=0;w<60;w++)if(w%10===E&&w%12===R)return w;return-1}function P(E){const R=(E%60+60)%60;return{index:R,stem:Se[R%10],branch:se[R%12],name:Se[R%10]+se[R%12]}}function N(E){return((E+49)%60+60)%60}function L(E){const R=E-2451545,w=R/36525,f=R/365250;let b=Y(f)*180/Math.PI+180;b=(b%360+360)%360;const F=(5029.0966*w+1.11113*w*w-6e-6*w*w*w)/3600;b+=F,b-=.09033/3600;const C=(125.04452-1934.136261*w)*Math.PI/180,ee=(280.4665+36000.7698*w)*Math.PI/180,Ne=(218.3165+481267.8813*w)*Math.PI/180,Me=(-17.2*Math.sin(C)-1.32*Math.sin(2*ee)-.23*Math.sin(2*Ne)+.21*Math.sin(2*C))/3600;b+=Me;const an=(357.52911+35999.05029*w-1537e-7*w*w)*Math.PI/180,Te=.016708634-42037e-9*w-1267e-10*w*w,dn=1.000001018*(1-Te*Te)/(1+Te*Math.cos(an+(1.914602-.004817*w)*(Math.PI/180)*Math.sin(an)));return b-=20.4898/3600/(dn||1),(b%360+360)%360}function z(E){const R=[[1900,-2.8],[1920,21.2],[1940,24.3],[1950,29.1],[1960,33.2],[1970,40.2],[1980,50.5],[1990,56.9],[2e3,63.8],[2010,66.1],[2020,69.4],[2030,72],[2050,80],[2100,110]];if(E<=R[0][0])return R[0][1];for(let w=1;w<R.length;w++)if(E<=R[w][0]){const[f,b]=R[w-1],[F,C]=R[w];return b+(C-b)*(E-f)/(F-f)}return R[R.length-1][1]}const g=8/24,$e=7.7611/24,G=2425612+4/24;function J(E){return E<G?$e:g}const k=A({max:4096,name:"termInstant"}),T=1e-5,s=new Map,t=365.2422;function d(E,R){const w=B(R),f=U(E,1,5)-.5+R*15.2184,b=s.get(R);let F=b!==void 0?b+t:f;Math.abs(F-f)>20&&(F=f);for(let ee=0;ee<12;ee++){let Ne=w-L(F);if(Ne=((Ne+180)%360+360)%360-180,F+=Ne/.98564736,Math.abs(Ne)<T)break}s.set(R,F);const C=F-z(E)/86400;return C+J(C)}function n(E,R){const w=E*24+R,f=k.get(w);if(f!==void 0)return f;const b=d(E,R);return k.set(w,b),b}function m(E){const R=Math.floor(E+.5),w=E+.5-R,f=Math.round(w*1440),{year:b,month:F,day:C}=c(R);return{year:b,month:F,day:C,hour:Math.floor(f/60)%24,minute:f%60}}function S({year:E,month:R,day:w,hour:f=0,minute:b=0}){return U(E,R,w)-.5+(f*60+b)/1440}function p(E,R,w){const f=U(E,R,w)-U(E,1,1)+1,b=2*Math.PI*(f-81)/364;return 9.87*Math.sin(2*b)-7.53*Math.cos(b)-1.5*Math.sin(b)}const j=A({max:8,name:"termWindow"}),_=A({max:32,name:"termYear"}),ce=Array.from({length:24},(E,R)=>R),be=ce.filter(E=>E%2===0);function Ae(E,R){const w=R?`${E}|jie`:`${E}|all`,f=_.get(w);if(f)return f;if(R){const F=_.get(`${E}|all`);if(F){const C=F.filter(ee=>ee.index%2===0);return _.set(w,C),C}}const b=[];for(const F of R?be:ce)b.push({year:E,index:F,name:me[F],jd:n(E,F)});return b.sort((F,C)=>F.jd-C.jd),_.set(w,b),b}function h(E,R={}){const w=R.jieOnly===!0,f=w?`${E}|jie`:E,b=j.get(f);if(b)return b;const F=[...Ae(E-1,w),...Ae(E,w),...Ae(E+1,w)];return F.sort((C,ee)=>C.jd-ee.jd),j.set(f,F),F}function v(E){if(typeof E!="string"||E.length<2)return[];const R=Se.indexOf(E[0]),w=se.indexOf(E[1]);if(R<0||w<0)return[];const f=q(R,w);if(f<0)return[];const b=Math.floor(f/10)*10;return[se[(b+10)%12],se[(b+11)%12]]}function le(E,R){let w=null;for(const f of E)if(f.index%2===0)if(f.jd<=R)w=f;else break;return w}function ae(E,R){for(const w of E)if(w.index%2===0&&w.jd>R)return w;return null}function je(E){const R=m(E),w=f=>String(f).padStart(2,"0");return`${R.year}-${w(R.month)}-${w(R.day)} ${w(R.hour)}:${w(R.minute)}`}function ge(){return[k.stats(),_.stats(),j.stats()]}return{STEMS:Se,BRANCHES:se,TERM_NAMES:me,termLongitude:B,toJDN:U,fromJDN:c,sexagenaryIndex:q,ganzhiName:P,dayGanzhiIndex:N,sunLongitude:L,deltaTSeconds:z,OFFSET_MODERN:g,OFFSET_BEIJING_LOCAL:$e,CUTOVER_JD:G,localOffsetFor:J,termInstantJd:n,jdToParts:m,partsToJd:S,equationOfTime:p,termWindow:h,xunKongOf:v,previousJie:le,nextJie:ae,formatJd:je,cacheMetrics:ge}})(),V.lunar=(function(){const{toJDN:Y,jdToParts:A,termInstantJd:Se,deltaTSeconds:se,localOffsetFor:me,OFFSET_MODERN:B}=V.calendar||{},U=29.530588861,c=245155009766e-5,q=Math.PI/180;function P(J){const k=J/1236.85,T=c+U*J+15437e-8*k*k-15e-8*k*k*k+73e-11*k*k*k*k,s=1-.002516*k-74e-7*k*k,t=(2.5534+29.1053567*J-14e-7*k*k-11e-8*k*k*k)*q,d=(201.5643+385.81693528*J+.0107582*k*k+1238e-8*k*k*k-58e-9*k*k*k*k)*q,n=(160.7108+390.67050284*J-.0016118*k*k-227e-8*k*k*k+11e-9*k*k*k*k)*q,m=(124.7746-1.56375588*J+.0020672*k*k+215e-8*k*k*k)*q,S=-.4072*Math.sin(d)+.17241*s*Math.sin(t)+.01608*Math.sin(2*d)+.01039*Math.sin(2*n)+.00739*s*Math.sin(d-t)-.00514*s*Math.sin(d+t)+.00208*s*s*Math.sin(2*t)-.00111*Math.sin(d-2*n)-57e-5*Math.sin(d+2*n)+56e-5*s*Math.sin(2*d+t)-42e-5*Math.sin(3*d)+42e-5*s*Math.sin(t+2*n)+38e-5*s*Math.sin(t-2*n)-24e-5*s*Math.sin(2*d-t)-17e-5*Math.sin(m)-7e-5*Math.sin(d+2*t)+4e-5*Math.sin(2*d-2*n)+4e-5*Math.sin(3*t)+3e-5*Math.sin(d+t-2*n)+3e-5*Math.sin(2*d+2*n)-3e-5*Math.sin(d+t+2*n)+3e-5*Math.sin(d-t+2*n)-2e-5*Math.sin(d-t-2*n)-2e-5*Math.sin(3*d+t)+2e-5*Math.sin(4*d),p=T+S-se(2e3+k*100)/86400;return p+me(p)}function N(J){return Math.floor(J+.5)}function L(J){const k=J-B;return k+me(k)}function z(J){return Math.round((J+.5-c)/U)}function g(J,k,T){for(let s=J-1;s<=J+1;s++)for(let t=1;t<24;t+=2){const d=L(Se(s,t)),n=N(d);if(n>=k&&n<T)return{index:t,jd:d}}return null}function $e(J,k,T){const s=Y(J,k,T),t=N(L(Se(J,23))),d=s<t?J-1:J,n=N(L(Se(d,23)));let m=z(n);for(;N(P(m))>n;)m--;for(;N(P(m+1))<=n;)m++;const S=N(L(Se(d+1,23)));let p=m;for(;N(P(p+1))<=S;)p++;const j=p-m;let _=-1;if(j===13)for(let h=1;h<=j;h++){const v=N(P(m+h-1)),le=N(P(m+h));if(!g(d,v,le)){_=h;break}}let ce=11,be=!1,Ae=N(P(m));for(let h=1;h<=15;h++){const v=N(P(m+h-1)),le=N(P(m+h)),ae=g(d,v,le),je=h===_;if(s>=v&&s<le){const ge=A(P(m+h-1)),E=je?(ce+10)%12+1:ce;return{year:d,lunarYear:be?d+1:d,month:E,day:s-v+1,isLeap:je,monthStart:`${ge.year}-${String(ge.month).padStart(2,"0")}-${String(ge.day).padStart(2,"0")}`,hasZhongQi:!!ae}}je||(ce=ce%12+1,ce===1&&(be=!0)),Ae=le}throw new Error(`农历换算失败:${J}-${k}-${T}`)}function G(J,k,T){return Y(J,k,T)}return{SYNODIC:U,newMoonJd:P,dayNumberOf:N,solarToLunar:$e,monthStartJd:G}})(),V.geo=(function(){const Y=`
|
|
4
4
|
北京 116.41 39.90;上海 121.47 31.23;天津 117.20 39.13;重庆 106.55 29.56
|
|
5
5
|
广州 113.26 23.13;深圳 114.06 22.55;珠海 113.58 22.27;东莞 113.75 23.02;佛山 113.12 23.02
|
|
6
6
|
汕头 116.68 23.35;中山 113.39 22.52;惠州 114.42 23.11;江门 113.08 22.58;湛江 110.36 21.27
|
|
@@ -63,121 +63,124 @@ window.__ModuleLoader__.load({id:"dsh-metaphysics",chunk:"client.hepan.js",facto
|
|
|
63
63
|
贵港 109.60 23.11;贺州 111.57 24.40;来宾 109.23 23.75;崇左 107.36 22.40
|
|
64
64
|
海口 110.20 20.04;三亚 109.51 18.25;儋州 109.58 19.52;琼海 110.47 19.26
|
|
65
65
|
香港 114.17 22.32;澳门 113.55 22.20;台北 121.52 25.03;高雄 120.31 22.63;台中 120.68 24.14
|
|
66
|
-
`,
|
|
67
|
-
`))for(const x of M.split(";")){const g=x.trim().split(/\s+/);if(g.length!==3)continue;const[ue,I,D]=g;E[ue]={lon:Number(I),lat:Number(D)}}for(const[M,[x,g]]of Object.entries(be))E[M]||(E[M]={lon:x,lat:g});return E})(),fe=/(省|市|地区|盟|自治州|自治县|自治区|特别行政区|县|区|镇|乡|街道|村|小区|社区)/g;function P(E){const M=String(E||"").trim();if(!M)return null;const x=Number(M);if(Number.isFinite(x)&&/^-?\d+(\.\d+)?$/.test(M)&&x>=60&&x<=150)return{lon:x,lat:null,matched:`${x}°E`,level:"经度",note:"按你输入的经度计算"};const g=M.replace(/\s/g,"").replace(fe,""),ue=Object.keys(se).sort((D,p)=>p.length-D.length);for(const D of ue)if(g.includes(D)){const p=se[D];return{lon:p.lon,lat:p.lat,matched:D,level:"地级市",note:`按 ${D} 估算(约 ${p.lon}°E)`}}const I=M.replace(/\s/g,"");for(const[D,p]of Object.entries(q)){const T=I.indexOf(D);if(T<0)continue;const r=I.charAt(T+D.length);if(r==="区"||r==="县")continue;const t=se[p]||{lon:be[p][0],lat:be[p][1]};return{lon:t.lon,lat:t.lat,matched:p,level:"省会",note:`未匹配到具体城市,按 ${D} 省会 ${p} 估算(约 ${t.lon}°E)`}}return{lon:null,lat:null,matched:null,level:"未匹配",note:`没查到「${M}」,可改填经度(如 116.4)`}}const B=/(区|县|镇|乡|村|小区|街道|路|号|巷|弄|组|队)/,u="dsh-metaphysics/0.23.0 (+https://github.com/xuanfu-web/dsh-metaphysics)";async function z(E,{timeoutMs:M=2500}={}){if(typeof fetch!="function")return null;let x=null;try{const g=typeof AbortController=="function"?new AbortController:null;g&&(x=setTimeout(()=>g.abort(),M));const ue="https://nominatim.openstreetmap.org/search?format=jsonv2&limit=1&accept-language=zh-CN&countrycodes=cn&q="+encodeURIComponent(E),I=await fetch(ue,{signal:g?g.signal:void 0,headers:{"User-Agent":u}});if(!I||!I.ok)return null;const D=await I.json();if(!Array.isArray(D)||D.length===0)return null;const p=D[0],T=Number(p.lon),r=Number(p.lat);return Number.isFinite(T)?{lon:T,lat:r,matched:p.display_name,level:"在线",note:`在线解析:${p.display_name}`}:null}catch{return null}finally{x&&clearTimeout(x)}}async function _(E,M={}){const x=P(E),g=String(E||"").trim();if(!g||!(M.online===!0)||x&&typeof x.lon=="number"&&!B.test(g))return x;const I=await z(g,M);return I?{...I,local:x&&x.lon!=null?x:null}:x&&typeof x.lon=="number"?{...x,onlineFailed:!0,note:`${x.note}(联网解析失败或超时,已退回内置坐标表)`}:{...x,onlineFailed:!0}}return{CITIES:se,PROVINCES:q,resolveAddress:P,geocodeAddress:_}})(),K.random=(function(){function H(se){let fe=Number(se)>>>0;return fe||(fe=2654435769),function(){fe=fe+1831565813>>>0;let B=fe;return B=Math.imul(B^B>>>15,B|1),B^=B+Math.imul(B^B>>>7,B|61),((B^B>>>14)>>>0)/4294967296}}function q(se){if(se==null||se==="")return Math.random;const fe=Number(se);return Number.isFinite(fe)?H(fe):Math.random}function be(se){return se==null||se===""?!0:Number.isFinite(Number(se))}return{mulberry32:H,randomOf:q,isSeed:be}})(),K.dst=(function(){const{daysInMonth:H}=K.validate||{},q={1986:["1986-05-04","1986-09-14"],1987:["1987-04-12","1987-09-13"],1988:["1988-04-10","1988-09-11"],1989:["1989-04-16","1989-09-17"],1990:["1990-04-15","1990-09-16"],1991:["1991-04-14","1991-09-15"]},be=(B,u,z)=>B*1e4+u*100+z;function se(B){const u=q[B.year];if(!u)return!1;const[z,_,E]=u[0].split("-").map(Number),[M,x,g]=u[1].split("-").map(Number),ue=be(B.year,B.month,B.day);if(ue<be(z,_,E)||ue>be(M,x,g))return!1;const I=B.hour*60+(B.minute||0);return!(ue===be(z,_,E)&&I<120||ue===be(M,x,g)&&I>=120)}function fe(B){const u=B.minute||0;if(!se(B))return{year:B.year,month:B.month,day:B.day,hour:B.hour,minute:u,applied:!1,note:null};let{year:z,month:_,day:E,hour:M}=B;return M-=1,M<0&&(M+=24,E-=1,E<1&&(_-=1,_<1&&(_=12,z-=1),E=H(z,_))),{year:z,month:_,day:E,hour:M,minute:u,applied:!0,note:`检出自 ${q[B.year][0]} 至 ${q[B.year][1]} 的中国夏令时:出生钟面时间已减 1 小时校正`}}function P(B,u){const z=Array.isArray(B)?B.slice():[];return u&&u.applied&&u.note&&z.push(u.note),z}return{DST_SPANS:q,inDstSpan:se,applyDst:fe,withDstNote:P}})(),K.shensha=(function(){const{BRANCHES:H}=K.calendar||{},{sanheGroupOf:q}=K.sanhe||{},be=["year","month","day","hour"],se={year:"年柱",month:"月柱",day:"日柱",hour:"时柱"},fe=["贵人","文星","婚姻","性情","事业","凶煞","格局"],P=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],B={year:"年干",month:"月干",day:"日干",hour:"时干"},u={year:"年支",month:"月支",day:"日支",hour:"时支"},z=he=>{const G=q(he);return G?G.branches.join(""):void 0},_={亥子丑:["寅","戌"],寅卯辰:["巳","丑"],巳午未:["申","辰"],申酉戌:["亥","未"]},E=he=>Object.keys(_).find(G=>G.includes(he)),M={寅:"春",卯:"春",辰:"春",巳:"夏",午:"夏",未:"夏",申:"秋",酉:"秋",戌:"秋",亥:"冬",子:"冬",丑:"冬"},x=he=>({kind:"branch",ch:he}),g=he=>({kind:"stem",ch:he}),ue=he=>({kind:"gz",ch:he}),I={甲:["丑","未"],戊:["丑","未"],庚:["丑","未"],乙:["子","申"],己:["子","申"],丙:["亥","酉"],丁:["亥","酉"],辛:["午","寅"],壬:["卯","巳"],癸:["卯","巳"]},D={甲:["子","午"],乙:["子","午"],丙:["卯","酉"],丁:["卯","酉"],戊:["辰","戌","丑","未"],己:["辰","戌","丑","未"],庚:["寅","亥"],辛:["寅","亥"],壬:["巳","申"],癸:["巳","申"]},p={寅:"丁",卯:"申",辰:"壬",巳:"辛",午:"亥",未:"甲",申:"癸",酉:"寅",戌:"丙",亥:"乙",子:"巳",丑:"庚"},T={寅午戌:"丙",申子辰:"壬",亥卯未:"甲",巳酉丑:"庚"},r={丙:"辛",壬:"丁",甲:"己",庚:"乙"},t={甲:["寅","子"],丙:["寅","子"],乙:["卯","丑"],癸:["卯","丑"],丁:["酉"],戊:["申"],己:["未"],庚:["午"],辛:["巳"],壬:["辰"]},d={甲:["未"],乙:["辰"],丙:["巳"],丁:["酉"],戊:["戌"],己:["卯"],庚:["亥"],辛:["申"],壬:["午"],癸:["寅"]},n={甲:["戌"],乙:["亥"],丙:["丑"],丁:["寅"],戊:["丑"],己:["寅"],庚:["辰"],辛:["巳"],壬:["未"],癸:["申"]},h={甲:["巳"],乙:["午"],丙:["巳"],丁:["午"],戊:["申"],己:["酉"],庚:["亥"],辛:["子"],壬:["寅"],癸:["卯"]},k={寅:"丑",卯:"寅",辰:"卯",巳:"辰",午:"巳",未:"午",申:"未",酉:"申",戌:"酉",亥:"戌",子:"亥",丑:"子"},y={甲:["巳"],乙:["午"],丙:["申"],丁:["酉"],戊:["申"],己:["酉"],庚:["亥"],辛:["子"],壬:["寅"],癸:["卯"]},b={寅午戌:["丙","丁","戊","癸"],申子辰:["壬","癸","戊","己","丙","辛","甲","己"],巳酉丑:["庚","辛","乙"],亥卯未:["甲","乙","丁","壬"]},O={寅午戌:["卯"],申子辰:["酉"],巳酉丑:["午"],亥卯未:["子"]},ie={寅午戌:["午"],申子辰:["子"],巳酉丑:["酉"],亥卯未:["卯"]},de={寅午戌:["戌"],申子辰:["辰"],巳酉丑:["丑"],亥卯未:["未"]},ze={寅午戌:["申"],申子辰:["寅"],巳酉丑:["亥"],亥卯未:["巳"]},Ae={寅午戌:["亥"],申子辰:["巳"],巳酉丑:["寅"],亥卯未:["申"]},we={寅午戌:["子"],申子辰:["午"],巳酉丑:["卯"],亥卯未:["酉"]},en={寅午戌:["巳"],申子辰:["亥"],巳酉丑:["申"],亥卯未:["寅"]},Pe={甲:["辰"],乙:["巳"],丙:["未"],丁:["申"],戊:["未"],己:["申"],庚:["戌"],辛:["亥"],壬:["丑"],癸:["寅"]},bn={甲:["寅"],乙:["卯"],丙:["巳"],丁:["午"],戊:["巳"],己:["午"],庚:["申"],辛:["酉"],壬:["亥"],癸:["子"]},rn={甲:["卯"],乙:["辰"],丙:["午"],丁:["未"],戊:["午"],己:["未"],庚:["酉"],辛:["戌"],壬:["子"],癸:["丑"]},Y={甲:["酉"],乙:["戌"],丙:["子"],丁:["丑"],戊:["子"],己:["丑"],庚:["卯"],辛:["辰"],壬:["午"],癸:["未"]},U={甲:["酉"],乙:["戌"],丙:["未"],丁:["申"],戊:["巳"],己:["午"],庚:["辰"],辛:["卯"],壬:["亥"],癸:["寅"]},j=["庚辰","庚戌","壬辰","戊戌"],f=["甲寅","丙辰","戊辰","庚辰","壬戌"],w=["丁酉","丁亥","癸巳","癸卯"],ne=["丙午","丁未","戊子","戊午","己丑","己未"],te=["甲辰","乙巳","丙申","丁亥","戊戌","己丑","庚辰","辛巳","壬申","癸亥"],$e=["丙子","丁丑","戊寅","辛卯","壬辰","癸巳","丙午","丁未","戊申","辛酉","壬戌","癸亥"],Re={春:"戊寅",夏:"甲午",秋:"戊申",冬:"甲子"},Ge={春:["庚申","辛酉"],夏:["壬子","癸亥"],秋:["甲寅","乙卯"],冬:["丙午","丁巳"]},ln={春:["寅","子"],秋:["寅","子"],夏:["卯","未","辰"],冬:["卯","未","辰"]},jn=["甲戊庚","乙丙丁","壬癸辛"],Sn=["乙丑","己巳","癸酉"];function le(he,G,F,re,ve,Ve=["day"]){return{name:he,cat:G,luck:F,rule:re,refs:Ve,refKind:"stem",targets:(Q,Ke)=>(ve[Q.pillars[Ke].stem]||[]).map(x)}}function Ze(he,G,F,re,ve,Ve=["year","day"]){return{name:he,cat:G,luck:F,rule:re,refs:Ve,refKind:"branch",targets:(Q,Ke)=>{const De=z(Q.pillars[Ke].branch);return De&&ve[De]?ve[De].map(x):[]}}}function yn(he,G,F,re,ve,Ve="year"){return{name:he,cat:G,luck:F,rule:re,refs:[Ve],refKind:"branch",viaLabel:u[Ve],targets:Q=>ve(Q)}}function me(he,G,F,re,ve,Ve){return{name:he,cat:G,luck:F,rule:re,refs:["month"],refKind:"branch",viaLabel:"月支",slots:Ve,targets:Q=>ve(Q)}}function Ce(he,G,F,re,ve,Ve="day"){return{name:he,cat:G,luck:F,rule:re,refs:[Ve],refKind:"branch",viaLabel:se[Ve],slots:[Ve],targets:(Q,Ke)=>ve.includes(Q.pillars[Ke].ganzhi)?[ue(Q.pillars[Ke].ganzhi)]:[]}}const Fe=[le("天乙贵人","贵人","good","甲戊庚见丑未,乙己见子申,丙丁见亥酉,辛见午寅,壬癸见卯巳(年干、日干查四支)",I,["year","day"]),le("太极贵人","贵人","good","甲乙见子午,丙丁见卯酉,戊己见辰戌丑未,庚辛见寅亥,壬癸见巳申(年干、日干查四支)",D,["year","day"]),me("天德贵人","贵人","good","正月丁、二月申、三月壬、四月辛、五月亥、六月甲、七月癸、八月寅、九月丙、十月乙、冬月巳、腊月庚(月支查干或支)",he=>{const G=p[he.pillars.month.branch];return G?P.includes(G)?[g(G)]:[x(G)]:[]}),me("月德贵人","贵人","good","寅午戌月见丙,申子辰月见壬,亥卯未月见甲,巳酉丑月见庚(月支查天干)",he=>{const G=z(he.pillars.month.branch);return G&&T[G]?[g(T[G])]:[]}),me("月德合","贵人","good","月德之合干:丙见辛、壬见丁、甲见己、庚见乙(月支定月德后查天干)",he=>{const G=z(he.pillars.month.branch),F=G&&T[G]?r[T[G]]:null;return F?[g(F)]:[]}),le("福星贵人","贵人","good","甲丙见寅子,乙癸见卯丑,丁见酉、戊见申、己见未、庚见午、辛见巳、壬见辰(年干、日干查四支)",t,["year","day"]),le("天官贵人","贵人","good","甲未、乙辰、丙巳、丁酉、戊戌、己卯、庚亥、辛申、壬午、癸寅(年干、日干查四支;此表流派有异)",d,["year","day"]),le("国印贵人","贵人","good","甲戌、乙亥、丙丑、丁寅、戊丑、己寅、庚辰、辛巳、壬未、癸申(年干、日干查四支)",n,["year","day"]),le("天厨贵人","贵人","good","食神之禄:甲巳、乙午、丙巳、丁午、戊申、己酉、庚亥、辛子、壬寅、癸卯(日干查四支)",h,["day"]),me("天医","贵人","good","月支退一位:寅月见丑、卯月见寅……丑月见子(月支查四支)",he=>{const G=k[he.pillars.month.branch];return G?[x(G)]:[]}),le("文昌贵人","文星","good","甲巳、乙午、丙申、丁酉、戊申、己酉、庚亥、辛子、壬寅、癸卯(年干、日干查四支)",y,["year","day"]),me("德秀贵人","文星","good","寅午戌月德丙丁、秀戊癸;申子辰月德壬癸戊己、秀丙辛甲己;巳酉丑月德庚辛、秀乙庚;亥卯未月德甲乙、秀丁壬(月支查天干)",he=>{const G=z(he.pillars.month.branch);return G&&b[G]?b[G].map(g):[]}),Ze("桃花","婚姻","neutral","寅午戌见卯、申子辰见酉、巳酉丑见午、亥卯未见子(年支、日支双查)",O),yn("红鸾","婚姻","good","卯起子逆数:子见卯、丑见寅、寅见丑、卯见子……(年支查四支)",he=>{const G=H.indexOf(he.pillars.year.branch);return[x(H[((3-G)%12+12)%12])]}),yn("天喜","婚姻","good","红鸾对冲之位:子见酉、丑见申、寅见未……(年支查四支)",he=>{const F=((3-H.indexOf(he.pillars.year.branch))%12+12)%12;return[x(H[(F+6)%12])]}),yn("孤辰","婚姻","bad","亥子丑年见寅、寅卯辰年见巳、巳午未年见申、申酉戌年见亥(年支查四支)",he=>{const G=E(he.pillars.year.branch);return G?[x(_[G][0])]:[]}),yn("寡宿","婚姻","bad","亥子丑年见戌、寅卯辰年见丑、巳午未年见辰、申酉戌年见未(年支查四支)",he=>{const G=E(he.pillars.year.branch);return G?[x(_[G][1])]:[]}),le("金舆","婚姻","good","禄前二位:甲龙乙蛇丙戊羊、丁己申宫庚犬乡、辛猪壬牛癸虎位(日干查四支)",Pe,["day"]),Ze("华盖","性情","neutral","寅午戌见戌、申子辰见辰、巳酉丑见丑、亥卯未见未(年支、日支双查)",de),le("羊刃","性情","bad","禄前一位:甲卯、乙辰、丙戊午、丁己未、庚酉、辛戌、壬子、癸丑(日干查四支;阳干论刃为主)",rn,["day"]),le("飞刃","性情","bad","羊刃六冲:甲酉、乙戌、丙子、丁丑、戊子、己丑、庚卯、辛辰、壬午、癸未(日干查四支)",Y,["day"]),Ce("魁罡","性情","neutral","日柱庚辰、庚戌、壬辰、戊戌(日柱见之)",j),me("童子煞","性情","neutral","春秋生见寅子,冬夏生见卯未辰(取季节口诀,查日支、时支;另有纳音五行一法,流派多歧,仅作参考)",he=>{const G=M[he.pillars.month.branch],F=G&&ln[G];return F?F.map(x):[]},["day","hour"]),Ce("六秀日","性情","good","日柱丙午、丁未、戊子、戊午、己丑、己未(日柱见之)",ne),Ce("日德","性情","good","日柱甲寅、丙辰、戊辰、庚辰、壬戌(日柱见之)",f),Ce("日贵","性情","good","日柱丁酉、丁亥、癸巳、癸卯(日柱见之)",w),le("禄神","事业","good","甲寅、乙卯、丙戊巳、丁己午、庚申、辛酉、壬亥、癸子(日干查四支)",bn,["day"]),Ze("将星","事业","good","寅午戌见午、申子辰见子、巳酉丑见酉、亥卯未见卯(年支、日支双查)",ie),Ze("驿马","事业","neutral","寅午戌见申、申子辰见寅、巳酉丑见亥、亥卯未见巳(年支、日支双查)",ze),Ze("劫煞","凶煞","bad","寅午戌见亥、申子辰见巳、巳酉丑见寅、亥卯未见申(年支、日支双查)",Ae),Ze("灾煞","凶煞","bad","寅午戌见子、申子辰见午、巳酉丑见卯、亥卯未见酉(年支、日支双查)",we),Ze("亡神","凶煞","bad","寅午戌见巳、申子辰见亥、巳酉丑见申、亥卯未见寅(年支、日支双查)",en),{name:"空亡",cat:"凶煞",luck:"bad",rule:"以日柱所在旬的空亡反查各柱地支(日柱旬空)",refs:["day"],refKind:"branch",viaLabel:"日柱旬空",targets:he=>(he.kongwang||[]).map(x)},Ce("十恶大败","凶煞","bad","日柱甲辰、乙巳、丙申、丁亥、戊戌、己丑、庚辰、辛巳、壬申、癸亥(日柱见之)",te),Ce("阴差阳错","凶煞","bad","日柱丙子、丁丑、戊寅、辛卯、壬辰、癸巳、丙午、丁未、戊申、辛酉、壬戌、癸亥(日柱见之)",$e),me("四废日","凶煞","bad","春庚申辛酉、夏壬子癸亥、秋甲寅乙卯、冬丙午丁巳(月支定季节查日柱)",he=>{const G=M[he.pillars.month.branch],F=he.pillars.day.ganzhi;return G&&Ge[G].includes(F)?[ue(F)]:[]},["day"]),le("流霞","凶煞","bad","甲酉、乙戌、丙未、丁申、戊巳、己午、庚辰、辛卯、壬亥、癸寅(日干查四支;通行表)",U,["day"]),me("天赦日","格局","good","春戊寅、夏甲午、秋戊申、冬甲子(月支定季节查日柱)",he=>{const G=M[he.pillars.month.branch],F=he.pillars.day.ganzhi;return G&&Re[G]===F?[ue(F)]:[]},["day"]),Ce("金神","格局","neutral","时柱乙丑、己巳、癸酉(时柱见之;严格成格另需日主身旺,此仅记星)",Sn,"hour"),{name:"天罗",cat:"凶煞",luck:"bad",rule:"四支见戌、亥俱全(戌亥为天罗)",custom:he=>sn(he,["戌","亥"])},{name:"地网",cat:"凶煞",luck:"bad",rule:"四支见辰、巳俱全(辰巳为地网)",custom:he=>sn(he,["辰","巳"])},{name:"三奇贵人",cat:"格局",luck:"good",rule:"年月日或月日时天干依序为甲戊庚(天上)、乙丙丁(地下)、壬癸辛(人中)",custom:he=>{const G=[];for(const F of[["year","month","day"],["month","day","hour"]]){const re=F.map(ve=>he.pillars[ve].stem).join("");jn.includes(re)&&G.push({pillars:F.slice(),via:"三柱天干",target:re})}return G}}];function sn(he,G){const F=be.filter(re=>G.includes(he.pillars[re].branch));return F.length<G.length?[]:[{pillars:F,via:"四支",target:G.join("")}]}function Oe(he,G){return G.kind==="stem"?he.stem===G.ch:G.kind==="branch"?he.branch===G.ch:he.ganzhi===G.ch}function nn(he,G){if(he.custom)return he.custom(G);const F=[];for(const re of he.refs){const ve=he.targets(G,re)||[];if(!ve.length)continue;const Ve=he.viaLabel||(he.refKind==="stem"?B:u)[re];for(const Q of he.slots||be){const Ke=G.pillars[Q];for(const De of ve)Oe(Ke,De)&&F.push({pillars:[Q],via:Ve,target:De.ch})}}return F}function dn(he,G=[]){const F={pillars:he,kongwang:G},re=[];for(const Q of Fe){const Ke=nn(Q,F);if(!Ke.length)continue;const De={name:Q.name,cat:Q.cat,luck:Q.luck,rule:Q.rule,pillars:[],via:new Set,target:new Set};for(const Tn of Ke){for(const Hn of Tn.pillars)De.pillars.includes(Hn)||De.pillars.push(Hn);Tn.via&&De.via.add(Tn.via),Tn.target&&De.target.add(Tn.target)}De.pillars.sort((Tn,Hn)=>be.indexOf(Tn)-be.indexOf(Hn)),re.push(De)}re.sort((Q,Ke)=>fe.indexOf(Q.cat)-fe.indexOf(Ke.cat));const ve={year:[],month:[],day:[],hour:[]};for(const Q of re)for(const Ke of Q.pillars)ve[Ke].push({name:Q.name,cat:Q.cat,luck:Q.luck,via:[...Q.via].join("、"),target:[...Q.target].join("、"),rule:Q.rule});const Ve=[];for(const Q of fe){const Ke=re.filter(De=>De.cat===Q);Ke.length&&Ve.push({cat:Q,items:Ke.map(De=>({name:De.name,cat:De.cat,luck:De.luck,pillars:De.pillars.slice(),via:[...De.via].join("、"),target:[...De.target].join("、"),rule:De.rule}))})}return{detail:ve,groups:Ve,names:re.map(Q=>Q.name),count:re.reduce((Q,Ke)=>Q+Ke.pillars.length,0)}}const gn=Fe.reduce((he,G)=>(he[G.name]={cat:G.cat,luck:G.luck,rule:G.rule},he),{});return{PILLAR_KEYS:be,PILLAR_LABEL:se,CATEGORY_ORDER:fe,computeBaziShensha:dn,RULE_TABLE:gn}})(),K.tiaohou=(function(){const H={甲:"木",乙:"木",丙:"火",丁:"火",戊:"土",己:"土",庚:"金",辛:"金",壬:"水",癸:"水"},q={亥:-1.8,子:-2,丑:-1.5,寅:-.4,卯:.2,辰:.5,巳:1.3,午:2,未:1.5,申:.6,酉:.2,戌:-.2},be={亥:"初冬",子:"仲冬",丑:"季冬",寅:"初春",卯:"仲春",辰:"季春",巳:"初夏",午:"仲夏",未:"季夏",申:"初秋",酉:"仲秋",戌:"季秋"},se={丑:1,辰:1,子:.6,亥:.5},fe={未:1,戌:1,午:.4,巳:.4},P={寒湿:{element:"火",stem:"丙",avoid:"水",why:"冻土要太阳来解,水再多只会更冷"},寒燥:{element:"火",stem:"丙",avoid:"水",why:"天寒地干,先要一点阳和之气"},寒:{element:"火",stem:"丙",avoid:"水",why:"冬令气寒,非火不暖"},温热:{element:"水",stem:"壬",avoid:"火",why:"火气初旺,得水润泽才好用"},燥热:{element:"水",stem:"壬",avoid:"火",why:"火炎土燥,非水不润"},热:{element:"水",stem:"壬",avoid:"火",why:"夏令炎威,先求一泓清水"},湿滞:{element:"火",stem:"丙",avoid:"水",why:"湿气郁结,要火来蒸腾"},燥:{element:"水",stem:"壬",avoid:"火",why:"气燥不润,得水则舒"},平和:{element:null,stem:null,avoid:null,why:"寒暖相济,气候不是这一盘的主要矛盾"}},B={寒湿:"寒湿",寒燥:"寒燥",寒:"寒",温热:"温热",燥热:"燥热",热:"热",湿滞:"湿滞",燥:"燥",平和:"平和"},u={寒湿:{木:"木是花草藤萝,冰封的土里抽不出芽——它不缺雨水,缺的是一轮太阳",火:"火在冬天最怕被水浇,一点火苗要护住,才谈得上发光",土:"土冻成一块,再厚也长不出东西,得先晒透",金:"金在寒水里泡久了,锋刃会发滞,要火来炼一炼",水:"水本就冷,再加寒就是死水;要火把它烧活"},寒燥:{木:"木在干冷里最难熬,既缺暖气,又缺一点滋润",火:"火在寒天里要先活下来,才有余力照别人",土:"土冷而干,板结着,得暖气与一点水汽一起松",金:"金寒则脆,得火炼、得土养,才成器",水:"水在寒天里收得太紧,要一点火气化开"},寒:{木:"冬木先要暖,暖了才谈得上发荣",火:"火在冬天要护住,别被冷风吹散",土:"土寒不生物,先暖后养",金:"金寒则钝,得火则利",水:"水寒则滞,得火则行"},温热:{木:"木在暖和里长得快,但要防长得太急、根扎不深",火:"火得时令,容易旺过头,要留一点水来收",土:"土被火烤着,容易燥,得水润一润",金:"金在暖处容易软,需要一点水土把它养住",水:"水在暖处容易蒸干,要源头不断"},燥热:{木:"木被火烤着,叶子先焦,得先补水",火:"火已经够旺了,再添柴只会烧到自己",土:"土燥则裂,得水润、得木疏",金:"金在燥热里容易发烫变形,要水来淬",水:"水在燥热里最珍贵,一滴都不能浪费"},热:{木:"木在暑天要水,不然只长叶不结果",火:"火已经当令,收着用比放出去更划算",土:"土热则燥,得水则安",金:"金在暑天要水来洗,才见光泽",水:"水在暑天是命脉,要保住源头"},湿滞:{木:"木泡在水里会烂根,先要疏土透气",火:"火在湿气里点不着,得先除湿",土:"土湿成泥,得火蒸腾、得木来疏",金:"金埋在湿土里会生锈,要见火见光",水:"水已经太多,再添就是泛滥"},燥:{木:"木在燥气里容易枯,先要一点水",火:"火在燥处容易失控,要收",土:"土燥不毛,得水润、得木疏",金:"金在燥处要水来洗,才不刺手",水:"水在燥处最容易被耗干,要护住"},平和:{木:"寒暖还算相济,木有生长的余地",火:"气候不偏,火可以按自己的节奏用",土:"土不燥不湿,能养也能载",金:"金不寒不燥,成器只差打磨",水:"水不冰不涸,能流得动"}},z=g=>Math.round(g*100)/100;function _({monthBranch:g,dayStem:ue,wuxing:I={},branches:D=[]}){const p=Number(I.火||0),T=Number(I.水||0);let r=0,t=0,d=0,n=0;for(const rn of D)se[rn]&&(r+=se[rn],(rn==="丑"||rn==="辰")&&(d+=1)),fe[rn]&&(t+=fe[rn],(rn==="未"||rn==="戌")&&(n+=1));const h=q[g]??0,k=z(h+.45*p-.4*T),y=z(r-t+.25*T-.25*p),b=k<=-.8,O=k>=.9,ie=y>=.8,de=y<=-.8;let ze="平和";b&&ie?ze="寒湿":b&&de?ze="寒燥":b?ze="寒":O&&de?ze="燥热":O?ze="温热":O&&y>=.8?ze="湿滞":de?ze="燥":ie&&(ze="湿滞");const Ae=P[ze]||P.平和,we=H[ue]||"土",en=[`${be[g]||g}${g}月`,`火${p}`,`水${T}`,d?`湿土${d}处`:"",n?`燥土${n}处`:""].filter(Boolean),Pe=Math.abs(k)>=1.2||Math.abs(y)>=1.2?"调候优先":"扶抑为主",bn=E({kind:ze,monthBranch:g,dayElement:we,need:Ae,temp:k,damp:y,fire:p,water:T});return{kind:ze,label:B[ze]||ze,temp:k,damp:y,cold:b,hot:O,wet:ie,dry:de,need:Ae.element?{element:Ae.element,stem:Ae.stem,why:Ae.why}:null,avoidElement:Ae.avoid,dayElement:we,priority:Pe,evidence:en,narration:bn}}function E({kind:g,monthBranch:ue,dayElement:I,need:D,fire:p,water:T}){const r=(u[g]||u.平和)[I]||"",t=be[ue]||"",d=`${t||""}${ue}月出生,全局火${p}、水${T},这一盘的气候是「${B[g]||g}」`;return D.element?`${d}。${r}。所以这一局要的不是更多的${g.includes("寒")?"水":"火"},而是${D.stem}${D.element}——${D.why}。`:`${d}。${r}。调候不是这一盘的主要矛盾,取用仍以扶抑为主,寒暖只作微调。`}function M(g,ue=[],I=[]){if(!g||!g.need)return{clash:!1,text:"气候平和,按扶抑取用即可。"};const D=g.need.element,p=ue.includes(D),T=I.includes(D);return p&&!T?{clash:!1,text:`调候要${g.need.stem}${D},扶抑也以${D}为喜——两套取法同向,不必取舍。`}:{clash:!0,text:`调候要${g.need.stem}${D},扶抑却把${D}列为${T?"忌":"闲"};两者不一致,本盘按调候优先取${D},扶抑次之——因为寒暖失衡时,再补强弱也难受。`}}function x(g){if(!g)return"";const ue=(g.evidence||[]).join("、"),I=g.need?`调候取${g.need.stem}${g.need.element}(${g.need.why}),忌${g.avoidElement}。`:"气候平和,调候不作主取。";return`${g.label}(${ue})。${g.narration}${I}${g.priority==="调候优先"?" 本盘调候优先于扶抑。":""}`}return{judgeClimate:_,arbitrate:M,climateText:x}})(),K.qiongtong=(function(){const H=["寅","卯","辰","巳","午","未","申","酉","戌","亥","子","丑"],q=["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],be="https://www.luckclub.cn/bazi/004/",se="用神顺序据通行整理表,原文摘句照录;各版本有异文,按条目 note 标注待核处。",fe={甲:[{b:"寅",m:"正月",y:"丙癸",q:"正月甲木,初春尚有余寒,得丙癸逢,富贵双全。癸藏丙透,名寒木向阳,主大富贵。倘风水不及,亦不失儒林俊秀。如无丙癸,平常人也。",ch:2,qs:"丙癸"},{b:"卯",m:"二月",y:"庚丙丁戊己",q:"或二月甲木,庚金得所者,名阳刃架煞,可许异途小贵,若武职便显,但要财资煞,柱中逢财,英雄独压万人,若见癸水,困了财杀,主为光棍,重刃必定遭凶,煞重无凶,但性格横暴,正二月甲木,无从财化土之格。",ch:3,qs:"庚癸"},{b:"辰",m:"三月",y:"庚丁壬",q:"三月甲木,木气相竭。先取庚金,次用壬水。",ch:4,qs:"庚壬"},{b:"巳",m:"四月",y:"癸丁庚",q:"四月甲木退气,丙火司权,先癸后丁。",ch:5,qs:"丙癸丁"},{b:"午",m:"五月",y:"癸丁庚",q:"五六月甲木,木性虚焦,一理共推,五月先癸后丁,庚金次之。,或五月乏癸,用丁亦可,要运行地为佳。六月三伏生寒,丁火退气。先丁后庚,无癸亦可。",ch:6,qs:"癸丁庚"},{b:"未",m:"六月",y:"丁庚癸",q:"五六月甲木,木性虚焦,一理共推,五月先癸后丁,庚金次之。,或五月乏癸,用丁亦可,要运行地为佳。六月三伏生寒,丁火退气。先丁后庚,无癸亦可。",ch:6,qs:"癸丁庚"},{b:"申",m:"七月",y:"庚丁壬",q:"七月甲堪为戟,然非丁不能造庚,非庚不能造甲,丁庚两透,科甲可许。",ch:7,qs:"丁庚"},{b:"酉",m:"八月",y:"丁丙庚",q:"八月甲木,木囚金旺。丁火为先,次用丙火,庚金再次。",ch:8,qs:"丁丙庚"},{b:"戌",m:"九月",y:"庚甲丁壬癸",q:"九月甲木,木星凋零,独爱丁火壬癸滋扶。",ch:9,qs:"丁壬癸"},{b:"亥",m:"十月",y:"庚丁丙戊",q:"十月甲木,以庚为君,以丁为佐,丙火次之,忌壬水泛木,须戊土为制,故戊又次之。",ch:10,qs:"庚丁丙壬戊"},{b:"子",m:"十一月",y:"丁庚丙",q:"十一月甲木,木性生寒,丁先庚后,丙火佐之,癸水司权,为火金之病。",ch:11,qs:"丁庚丙癸"},{b:"丑",m:"十二月",y:"丁庚丙",q:"十二月甲木,天寒气冻,木性极寒,无发生之象。先用庚劈甲,方引丁火,始得木火有通明之象,故丁次之。",ch:12,qs:"庚丁"}],乙:[{b:"寅",m:"正月",y:"丙癸",q:"正月天气,犹有余寒,非丙不长,虽有癸润,恐凝寒气,故先用丙,癸次之。",ch:13,qs:"丙癸"},{b:"卯",m:"二月",y:"丙癸",q:"二月乙木,阳气渐升,木不寒矣,以丙为君,癸为臣,丙癸两透,不透庚金,大富大贵。",ch:14,qs:"丙癸庚"},{b:"辰",m:"三月",y:"癸丙戊",q:"三月乙木,阳气愈炽,先癸后丙",ch:15,qs:"癸丙"},{b:"巳",m:"四月",y:"癸",q:"四月乙木,巳宫自有丙火,戊取癸水为尊。四月乙木,专用癸水,丙火酌用,虽以庚辛佐癸,须辛透为清。",ch:16,qs:"丙戊癸庚辛"},{b:"午",m:"五月",y:"癸丙",q:"五月乙木,丁火司权,禾稼俱旱。上半月属阳,先癸次丙;下半月属阴,三伏生寒,丙癸齐用。柱多金水,丙火为先,余皆用癸水为先。",ch:17,qs:"丁癸丙"},{b:"未",m:"六月",y:"癸丙",q:"六月乙木,木性且寒,柱多金水,丙火为尊。支成水局,乙得无伤。癸水透干,大富大贵。无癸定作常人,运不行北,困苦一生。",ch:18,qs:"丙癸"},{b:"申",m:"七月",y:"丙癸己",q:"七月乙木,庚金乘令,庚虽输情于乙妹,怎奈干乙难合支庚。柱见庚多,乙难受载。或丙癸透干,又加己出埋金,丙癸己俱透,此格可云科甲,大富大贵",ch:19,qs:"庚丙癸己甲"},{b:"酉",m:"八月",y:"癸丙丁",q:"八月乙木,芝兰禾稼均退,以丹桂为乙木。在白露之后,桂蕊未开,专用癸水,以滋桂萼。若秋分后,桂花已开,又当向阳,宜先用丙,癸水次之,丙癸两透,科甲名臣。",ch:20,qs:"癸丙甲"},{b:"戌",m:"九月",y:"癸辛",q:"九月乙木,枝枯叶落,必赖癸水滋养。如见甲申时,名为藤萝繁甲,可秋可冬。",ch:21,qs:"癸甲"},{b:"亥",m:"十月",y:"丙戊",q:"十月乙木,丙不受气,壬水司令,丙为尊,或壬多,用戊土。",ch:22,qs:"丙壬戊"},{b:"子",m:"十一月",y:"丙",q:"十一月乙木,根叶寒冻,喜丙复一阳,用丙火解冻,斯花木有向阳之意,不宜癸水出干以冻花木,故专用丙火。",ch:23,qs:"丙癸"},{b:"丑",m:"十二月",y:"丙",q:"十二月乙木,木寒宜丙,有寒谷回春之象。得一丙透,无癸出破格,不特科甲,定主名臣显宦。丙火藏支,不过廪贡生员。干支无丙,一介寒儒。",ch:24,qs:"丙癸甲"}],丙:[{b:"寅",m:"正月",y:"壬庚",q:"正月三阳开泰,火气渐炎,取壬为尊,庚金为佐。壬庚两透,定许科甲,即壬透庚藏,虽不由科甲,恰有异途恩封",ch:25,qs:"壬庚甲"},{b:"卯",m:"二月",y:"壬己",q:"二月丙火,阳气舒升,专用壬水。",ch:26,qs:"壬"},{b:"辰",m:"三月",y:"壬甲",q:"三月火气渐炎,专用壬水,或支成土局,取甲为辅,壬不可离。",ch:27,qs:"壬甲"},{b:"巳",m:"四月",y:"壬癸庚",q:"四月丙火,建禄于巳,火势炎炎,宜专用壬水,解炎威之力,成既济之功。如无壬水,名孤阳失辅,难透清光,得庚发水源,方为有根之水。壬庚两透,不见戊己出干,号曰湖海汪洋,广映太阳,光辉显著,文明之象。",ch:28,qs:"壬庚戊己"},{b:"午",m:"五月",y:"壬庚",q:"五月丙火愈炎,得壬庚高透,方为上命。或一壬无庚,亦主贡监,还须好运。犹防戊己出干,丁壬化合,则为平人。即不透庚壬。或有申宫长生之水,济之坐禄之金,至妙,必入词林。又怕戊己杂乱,则为异路。",ch:29,qs:"壬庚戊己丁"},{b:"未",m:"六月",y:"壬庚",q:"六月丙火退气,三伏生寒,己土泄气,壬水为用,取庚辅佐。",ch:30,qs:"己壬庚"},{b:"申",m:"七月",y:"壬戊",q:"七月丙火,太阳转西,阳气渐衰。日近西山,见土皆晦。惟日照湖海,暮夜光天,故仍用壬水,辅映太阳光辉。",ch:31,qs:"壬"},{b:"酉",m:"八月",y:"壬癸",q:"八月丙火,日近黄昏,丙有余光,存于湖海,仍用壬水辅映。",ch:32,qs:"壬"},{b:"戌",m:"九月",y:"甲壬",q:"九月丙火,火气愈退,忌土晦光,必须先用甲木,次取壬水。",ch:33,qs:"甲壬"},{b:"亥",m:"十月",y:"甲戊庚壬",q:"十月丙火,太阳失令,得见甲戊庚齐透,科甲有准,风土不及,终成选拔,主为人性好清高,斯文领袖。",ch:34,qs:"甲戊庚"},{b:"子",m:"十一月",y:"壬戊己",q:"十一月丙火,冬至一阳生,弱中复强,壬水为最,戊土佐之。",ch:35,qs:"壬戊"},{b:"丑",m:"十二月",y:"壬甲",q:"十二月丙火,气进二阳,每雪欺霜,喜壬为用,己土司令,土多又不可少甲",ch:36,qs:"壬己甲"}],丁:[{b:"寅",m:"正月",y:"甲庚",q:"正月丁火,甲木当权,乃为母旺,非庚不能劈甲,何以引丁,先庚次壬。",ch:37,qs:"甲庚壬"},{b:"卯",m:"二月",y:"庚甲",q:"二月丁火,湿乙伤丁,先庚后甲,非庚不能去乙,非甲不能引丁。",ch:38,qs:"乙庚甲"},{b:"辰",m:"三月",y:"甲庚",q:"三月丁火,戊土司令,泄弱丁气,先用甲木引丁制土,次看庚金。",ch:39,qs:"戊甲庚"},{b:"巳",m:"四月",y:"甲庚",q:"四月丁火乘旺,虽取甲引丁,必须用庚劈甲,有庚伐甲、方云木火通明;甲多、又取庚为先。",ch:40,qs:"甲庚"},{b:"午",m:"五月",y:"壬庚癸",q:"五月丁火,时逢建禄,不得轻用甲木;遇干透隔位之壬,不贪丁合,忠而且孝。",ch:41,qs:"甲壬"},{b:"未",m:"六月",y:"甲壬庚",q:"六月丁火,阴柔退气,但值三伏生寒,丁弱极矣,专取甲木,壬水次之。",ch:42,qs:"甲壬"},{b:"申",m:"七月",y:"甲庚丙戊",q:"七月丁火,退气柔弱,端用甲木,金虽乘旺司权,无伤丁之理,仍取庚劈甲,为引火之物,或借丙暖金晒甲,不虑丙夺丁光,凡两丙夹丁者,夏月忌之,余月不忌,但此格少年困苦刑克中年富贵,必要地支见水制丙,方",ch:43,qs:"甲庚丙"},{b:"酉",m:"八月",y:"甲庚丙戊",q:"或八月一派辛金,不见庚金,又无比劫,比弃命从才,富而且贵,虽不科甲,亦有异途,从才者水为妻,不克,有正偏,木为子,不刑。或九月一派戊土,泄丁火之气,不见甲木,为伤官伤尽,非寻常可比,或甲木透出",ch:44,qs:"辛庚甲戊",note:"原文全章未见「丙」,此格按整理表录入,待以善本核对"},{b:"戌",m:"九月",y:"甲庚戊",q:"或八月一派辛金,不见庚金,又无比劫,比弃命从才,富而且贵,虽不科甲,亦有异途,从才者水为妻,不克,有正偏,木为子,不刑。或九月一派戊土,泄丁火之气,不见甲木,为伤官伤尽,非寻常可比,或甲木透出",ch:44,qs:"辛庚甲戊"},{b:"亥",m:"十月",y:"甲庚",q:"三冬丁火微寒,端用庚甲,甲乃庚之良友,凡用甲木,庚不可少,无庚无甲,何能引丁,难云木火通明,冬丁有甲,不怕水多金多,可称上格,甲庚两透,科甲分明,见己则否,己多合甲,则为常人。或一丙夺丁,必赖",ch:45,qs:"庚甲己丙"},{b:"子",m:"十一月",y:"甲庚",q:"或仲冬水多癸旺,金无比印,此作弃命从杀,亦有异途功名,见丁比出干,难合格局,常人,且主骨肉浮云,六亲流水,戊出破癸,颇有兄弟妻儿,此格用戊,火妻土子,用甲,水妻木子。或四柱多丙丁,又用癸制火,",ch:46,qs:"癸戊甲丙"},{b:"丑",m:"十二月",y:"甲庚",q:"或仲冬水多癸旺,金无比印,此作弃命从杀,亦有异途功名,见丁比出干,难合格局,常人,且主骨肉浮云,六亲流水,戊出破癸,颇有兄弟妻儿,此格用戊,火妻土子,用甲,水妻木子。或四柱多丙丁,又用癸制火,",ch:46,qs:"癸戊甲丙"}],戊:[{b:"寅",m:"正月",y:"丙甲癸",q:"正二月宜先透丙,三月宜先透甲,盖正二月虽有癸甲,无丙亦难除寒气,如风雨淹淹,万物生而不长,故无丙者,一生成败,富贵艰辛,或有丙无癸甲者,名曰春旱,如万物生而多厄,一生勤苦,劳而无功。",ch:48,qs:"丙甲癸辛"},{b:"卯",m:"二月",y:"丙甲癸",q:"正二月宜先透丙,三月宜先透甲,盖正二月虽有癸甲,无丙亦难除寒气,如风雨淹淹,万物生而不长,故无丙者,一生成败,富贵艰辛,或有丙无癸甲者,名曰春旱,如万物生而多厄,一生勤苦,劳而无功。",ch:48,qs:"丙甲癸辛"},{b:"辰",m:"三月",y:"甲丙癸",q:"三月戊土司令,不见丙甲癸者,愚而且贱,甲癸透者、科甲;两癸透者、生员。丙透甲藏,无癸者富;有癸者,异途显达。",ch:49,qs:"丙甲癸"},{b:"巳",m:"四月",y:"甲丙癸",q:"四月戊土,阳气发升,寒气内藏,外实内虚,不畏火炎,无阳气相催,万物不长,故先用甲疏劈,次取丙癸为佐。",ch:50,qs:"甲丙癸"},{b:"午",m:"五月",y:"壬甲丙",q:"五月戊土,仲夏火炎,先看壬水,次取甲木,丙火酌用,用癸恐其力微。",ch:51,qs:"壬甲丙癸"},{b:"未",m:"六月",y:"癸丙甲",q:"六月戊土,遇夏干枯,先看癸水,次用丙火、甲木。",ch:52,qs:"癸丙甲"},{b:"申",m:"七月",y:"丙癸甲",q:"七月戊土,阳气渐入,寒气渐出,先丙后癸,甲木次之。",ch:53,qs:"丙癸甲"},{b:"酉",m:"八月",y:"丙癸",q:"八月戊土,金泄身寒,赖丙照暖,喜水滋润,先丙后癸,不必木疏。",ch:54,qs:"丙癸"},{b:"戌",m:"九月",y:"甲丙癸",q:"九月戊土当权,不可专用丙火。先看甲木,次取癸水,却忌戊与癸合。见金先用癸水,后取丙火,配合支干,方成有生之土,合此定发云程,科甲有准。",ch:55,qs:"丙甲癸"},{b:"亥",m:"十月",y:"甲丙",q:"十月戊土,时值小阳,阳气略出,先用甲木,次取丙火,非甲,土不灵,非丙,土不暖;安能发生万物。",ch:56,qs:"甲丙"},{b:"子",m:"十一月",y:"丙甲",q:"十一二月严寒冰冻,丙火为尊,甲木为佐。丙甲两透,桃浪之人;丙出甲藏,采芹食饩,丙藏甲出,佐杂前程;有丙无甲者,豪富,有甲无丙者,清贫,丙甲全无,下流之造。",ch:57,qs:"丙甲"},{b:"丑",m:"十二月",y:"丙甲",q:"十一二月严寒冰冻,丙火为尊,甲木为佐。丙甲两透,桃浪之人;丙出甲藏,采芹食饩,丙藏甲出,佐杂前程;有丙无甲者,豪富,有甲无丙者,清贫,丙甲全无,下流之造。",ch:57,qs:"丙甲"}],己:[{b:"寅",m:"正月",y:"丙庚甲",q:"正月己土,寒气未退,田园犹冻,丙暖为尊,得丙照暖,万物自生。忌见壬水,盖壬不为丙优,反为己病,何也?壬乃江湖之水,田园浸没,急须修堤岸,田园始得播种,须戊作堤,以保园圃,壬多见戊者,定主清雅富",ch:58,qs:"丙壬戊"},{b:"卯",m:"二月",y:"甲癸丙",q:"二月己土,阳气渐升,虽禾稼未成,万物发生。但田园未展,宜先取甲木疏之,忌合;次取癸水润之。",ch:59,qs:"甲癸"},{b:"辰",m:"三月",y:"丙癸甲",q:"三月己土,正栽培禾稼之时。先丙后癸,土暖而润,随用甲疏。",ch:60,qs:"丙癸甲"},{b:"巳",m:"四月",y:"癸丙",q:"三夏己土,时值禾稼在田,最喜甘沛,取癸为要,次用丙火。夏无太阳,禾稼不长,故无癸曰旱田,无丙曰孤阴。",ch:61,qs:"癸丙"},{b:"午",m:"五月",y:"癸丙",q:"三夏己土,时值禾稼在田,最喜甘沛,取癸为要,次用丙火。夏无太阳,禾稼不长,故无癸曰旱田,无丙曰孤阴。",ch:61,qs:"癸丙"},{b:"未",m:"六月",y:"癸丙",q:"三夏己土,时值禾稼在田,最喜甘沛,取癸为要,次用丙火。夏无太阳,禾稼不长,故无癸曰旱田,无丙曰孤阴。",ch:61,qs:"癸丙"},{b:"申",m:"七月",y:"丙癸",q:"三秋己土,万物收藏之际,外虚内实,寒气渐升,须丙火温之,癸水润之。不特此也,且癸能泄金,丙能制金,补土精神,则秋生之物咸茂矣。",ch:62,qs:"丙癸"},{b:"酉",m:"八月",y:"丙癸",q:"三秋己土,万物收藏之际,外虚内实,寒气渐升,须丙火温之,癸水润之。不特此也,且癸能泄金,丙能制金,补土精神,则秋生之物咸茂矣。",ch:62,qs:"丙癸"},{b:"戌",m:"九月",y:"甲丙癸",q:"三秋己土,万物收藏之际,外虚内实,寒气渐升,须丙火温之,癸水润之。不特此也,且癸能泄金,丙能制金,补土精神,则秋生之物咸茂矣。",ch:62,qs:"丙癸"},{b:"亥",m:"十月",y:"丙甲戊",q:"三冬己土,湿泥寒冻,非丙暖不生,取丙为尊,甲木能参用,不可用癸。唯初冬壬水旺,用以为制,余皆用丙。无丙用丁,但丁不能解冻除寒,不能火济;丁多,衣禄安然。",ch:63,qs:"丙甲癸壬丁"},{b:"子",m:"十一月",y:"丙甲戊",q:"三冬己土,湿泥寒冻,非丙暖不生,取丙为尊,甲木能参用,不可用癸。唯初冬壬水旺,用以为制,余皆用丙。无丙用丁,但丁不能解冻除寒,不能火济;丁多,衣禄安然。",ch:63,qs:"丙甲癸壬丁"},{b:"丑",m:"十二月",y:"丙甲戊",q:"三冬己土,湿泥寒冻,非丙暖不生,取丙为尊,甲木能参用,不可用癸。唯初冬壬水旺,用以为制,余皆用丙。无丙用丁,但丁不能解冻除寒,不能火济;丁多,衣禄安然。",ch:63,qs:"丙甲癸壬丁"}],庚:[{b:"寅",m:"正月",y:"戊甲壬丙丁",q:"正月庚金,木旺之际,有土皆死,不能生金。且金之寒气未除,先用丙暖庚性。又虑土厚埋金,须甲疏泄。",ch:65,qs:"丙甲"},{b:"卯",m:"二月",y:"丁甲庚丙",q:"二月庚金,卯中乙木当权,柱中自然有乙,当令之乙,得庚辰时,庚必留情于乙,此金有暗强之势,如秋金相似。",ch:66,qs:"乙"},{b:"辰",m:"三月",y:"甲丁壬癸",q:"三月庚金,戊土司令,不怕生寒,无生金之理,有埋金之忧。故先用甲木疏土,次用丁火煅炼成器,不必用庚劈甲。",ch:67,qs:"戊甲丁"},{b:"巳",m:"四月",y:"壬戊丙丁",q:"四月庚金,长生在巳,巳虽有丙,内有戊土,丙不熔金,故不畏火炎。但丙不可轻用,宜先用壬水,方得中和。书曰:群金生夏,妙用玄武;次取戊土,丙火佐之;三者皆全,富贵无双。或透一二,亦主贡监衣衿。",ch:68,qs:"丙戊壬"},{b:"午",m:"五月",y:"壬癸",q:"五月庚金,丁火旺烈,庚金败地,专用壬水,癸又次之。",ch:69,qs:"丁壬癸"},{b:"未",m:"六月",y:"丁甲",q:"六月庚金,三伏生寒,金顽已极。先用丁火,次取甲木。",ch:70,qs:"丁甲"},{b:"申",m:"七月",y:"丁甲",q:"七月庚金,刚锐极矣。专用丁火煅炼,次取木引丁。故曰:秋金刚锐最为奇,壬癸相逢总不宜:如逢木火来成局,试看福寿与天齐。",ch:71,qs:"丁壬癸"},{b:"酉",m:"八月",y:"丁甲丙",q:"八月庚金,刚锐未退,仍用丁甲,丙不可少。",ch:72,qs:"丁甲丙"},{b:"戌",m:"九月",y:"甲壬",q:"九月庚金,戊土司令,最怕土厚埋金。宜先用甲疏,后用壬洗,则金自出矣,忌见己土浊壬。",ch:73,qs:"戊甲壬己"},{b:"亥",m:"十月",y:"丁丙",q:"十月庚金,水冷性寒,非丁莫造,非丙不暖。",ch:74,qs:"丁丙"},{b:"子",m:"十一月",y:"丁甲丙",q:"十一月庚金,天气严寒,仍取丁甲,次取丙火照暖。",ch:75,qs:"丁甲丙"},{b:"丑",m:"十二月",y:"丙丁甲",q:"十二月庚金,寒气太重,丑为湿泥,愈寒愈冻,先取丙火解冻,次取丁火炼金,甲亦不可少。",ch:76,qs:"丙丁甲"}],辛:[{b:"寅",m:"正月",y:"己壬庚",q:"正月辛金,阳气舒升寒气未除。然正月建寅,中有长生之丙,可解寒气。但忌甲木司权,辛金失令。性爱湿泥滋养,取己土为身之本。次用壬水淘洗,欲得辛金发现,全赖壬水之功。",ch:77,qs:"丙甲己壬"},{b:"卯",m:"二月",y:"壬甲",q:"二月辛金,阳和之际,壬水为尊。见戊己为病,得甲制伏,则辛金不致埋没,壬水不致混浊,合此者,必身入玉堂。故二月庚金,有壬甲透者贵显;否则,乡绅。或壬坐亥支,不见土出,可能入芥,家亦小康。得申中之",ch:78,qs:"壬戊己甲庚"},{b:"辰",m:"三月",y:"壬甲",q:"三月辛金,戊土司令,辛承正气,母旺子相。",ch:79,qs:"戊"},{b:"巳",m:"四月",y:"壬甲癸",q:"四月辛金,时道首夏,忌丙火之燥烈,喜壬水之洗淘。",ch:80,qs:"丙壬"},{b:"午",m:"五月",y:"壬己癸",q:"五月辛金,丁火司权,辛金失令,阴柔之极,不宜煅炼,须己壬兼用。何也?己为泥沙,壬为湖海,己无壬不湿,辛无己不生,故壬己并用。无壬,癸亦可用,但癸力小。",ch:81,qs:"丁己壬癸"},{b:"未",m:"六月",y:"壬庚甲",q:"六月己土当权,滋扶太过,恐污金不耀,专用壬水为妙,次取庚金佐之。",ch:82,qs:"己壬庚"},{b:"申",m:"七月",y:"壬甲戊",q:"七月辛金,值庚秉令,不旺自旺。且申中有长生之壬,四柱不见戊土透干,胎元亦无戊制,唯申中一戊,为壬堤岸,人命得此,为官清正,但不富耳。",ch:83,qs:"庚壬戊"},{b:"酉",m:"八月",y:"壬甲",q:"八月辛金,当权,得令,旺之极矣,专用壬水淘之泄之为贵,故云:金见水以流通。",ch:84,qs:"壬"},{b:"戌",m:"九月",y:"壬甲",q:"九月辛金,戊土司令,母旺子相,须甲疏土,壬泄旺金,先壬后甲。壬甲两透,桃洞之仙。",ch:85,qs:"戊甲壬"},{b:"亥",m:"十月",y:"壬丙",q:"十月时值小阳,阳气初潜,寒气未盛,先用壬水,次用丙火,暖壬温辛。",ch:86,qs:"壬丙"},{b:"子",m:"十一月",y:"丙戊壬甲",q:"十一月辛金,癸水司令,为寒冬雨露,最忌癸水出干,冻金而困丙火。",ch:87,qs:"癸丙"},{b:"丑",m:"十二月",y:"丙壬戊己",q:"十二月辛金,寒冻之极,先丙后壬。无丙不能解冻,无壬不能洗淘。",ch:88,qs:"丙壬"}],壬:[{b:"寅",m:"正月",y:"庚丙戊",q:"正月壬水,汪洋之象,能并百川之流。然水性柔弱,宜用庚金之源,次取丙火以除寒气,又次取戊土以止其流,庶不致汪洋无度。",ch:90,qs:"庚丙戊"},{b:"卯",m:"二月",y:"戊辛庚",q:"二月壬水,寒气初除,清流湛深,不用丙暖,专取戊土为堤岸,辛发其源,庚金次之。",ch:91,qs:"丙戊辛庚"},{b:"辰",m:"三月",y:"甲庚",q:"三月壬水,戊土司权,死有推山塞海之患,先用甲疏季土,次取庚发水源。",ch:92,qs:"戊甲庚"},{b:"巳",m:"四月",y:"壬辛庚癸",q:"四月壬水,丙火司权,水弱极矣。专取壬水比肩为助,次取辛金发源,忌与丙火合化,又以庚金为佐。",ch:93,qs:"丙辛庚"},{b:"午",m:"五月",y:"癸庚辛",q:"五月壬水,丁旺壬弱,取庚为用,取癸为佐。无庚不能蓄源,无癸不能伤丁。",ch:94,qs:"丁庚癸"},{b:"未",m:"六月",y:"辛甲",q:"六月壬水,己土当权,丁火退气,用辛蓄源,用甲劈土;先辛后甲,次取癸水。",ch:95,qs:"己丁辛甲癸"},{b:"申",m:"七月",y:"戊丁",q:"七月壬水,庚金司令,壬得申之长生,源流自远,转弱为强。专用戊土,次取丁火,佐戊制庚,但用辰戌之戊,不用申中受病之戊。",ch:96,qs:"庚戊丁"},{b:"酉",m:"八月",y:"甲庚",q:"八月壬水,辛金司权,金白水清之时,忌戊己为病,专取甲木。",ch:97,qs:"辛戊己甲"},{b:"戌",m:"九月",y:"甲丙",q:"九月亥水进气,其性将厚。若一派壬水,见一甲制戌中之戊,又见一戊出干,斯用丙火,此格清贵极矣,正谓一将当关,群邪自伏。见丙,便主衣禄,或不见丙戊,终为下格。",ch:98,qs:"甲戊丙"},{b:"亥",m:"十月",y:"戊丙庚",q:"十月壬水司权,至旺之极,取戊为用。",ch:99,qs:"戊"},{b:"子",m:"十一月",y:"戊丙",q:"十一月壬水,阳刃帮身,较前更旺,先取戊土,次用丙火。",ch:100,qs:"戊丙"},{b:"丑",m:"十二月",y:"丙丁甲",q:"十二月壬水,旺极复衰,何也?上半月癸辛主事,壬水稍旺,专用丙火解冻,下半月己土主事,故衰,亦用丙火,甲木佐之;故有丙,名利两全。",ch:101,qs:"癸辛丙己甲"}],癸:[{b:"寅",m:"正月",y:"辛丙",q:"正月癸水,值三阳之候,为雨露之精,其性至柔。先用辛金,生癸水之源,次用丙火照暖,名阴阳和合,万物发生。",ch:102,qs:"辛丙"},{b:"卯",m:"二月",y:"庚辛",q:"二月癸水,不刚不柔,乙木司令,泄弱元神,专用庚金为用,辛金次之。",ch:103,qs:"乙庚辛"},{b:"辰",m:"三月",y:"丙辛甲",q:"三月癸水,要分清明鼓雨,清明后火气未炽,专用丙火,名阴阳承蔼。谷雨后虽用丙火,还宜辛金佐之,富贵;次看何神高透无伤,便可定格局高低。如",ch:104,qs:"丙辛"},{b:"巳",m:"四月",y:"辛",q:"四月癸水,喜见新母,无辛,庚亦可用,但不自然。",ch:105,qs:"辛庚"},{b:"午",m:"五月",y:"庚辛壬癸",q:"五月癸水,至弱无根,必须庚辛为生身之本,但丁火司权,金难敌火,安能滋养癸水?宜见比劫,方得庚辛妙用。",ch:106,qs:"庚辛丁"},{b:"未",m:"六月",y:"庚辛壬癸",q:"六月癸水,有上下月之分,上半月庚辛无气,下半月庚辛有气。凡六癸日,人多推此月多不验者,何也?俗士不知此理,不知未中有乙,与己同宫,破而不破,故癸水不能从煞,所以专用庚辛。如上半月,金神衰弱,火",ch:107,qs:"庚辛乙己",note:"原文全章未见「壬」,此格按整理表录入,待以善本核对"},{b:"申",m:"七月",y:"丁",q:"七月癸水,正母旺子相之时。癸虽死申,殊不知申中有庚生之,名死处逢生,弱中复强,即运行西北,亦不死也。但庚司令,刚锐极矣,必取丁火为用。",ch:108,qs:"庚丁"},{b:"酉",m:"八月",y:"辛丙",q:"八月癸水,辛金虚灵,非顽金可比,正金白水清。故取辛金为用,丙火佐之,名水暖金温。",ch:109,qs:"辛丙"},{b:"戌",m:"九月",y:"辛甲壬癸",q:"九月癸水,失令无根,戊土司权,克制太过,专用辛金发癸水之源,次用癸甲,要比肩滋甲制戊方妙。",ch:110,qs:"戊辛甲"},{b:"亥",m:"十月",y:"庚辛戊丁",q:"十月癸水,旺中有弱,何也?因亥摇木,泄散元神,宜用庚辛为妙。",ch:111,qs:"庚辛"},{b:"子",m:"十一月",y:"丙辛",q:"十一月癸水,值冰冻之时,金水无交欢之象,专用丙火解冻,庶不致变雨为雪,结露为霜。又要辛金滋扶,然无丙火,辛亦不妙。凡冬季癸水,有丙透解冻,则金温水暖,两两相生,要不见壬透,自然登科及第,紫诰金",ch:112,qs:"丙辛壬"},{b:"丑",m:"十二月",y:"丙丁",q:"十二月癸水,落地成冰,万物不能舒泰,专用丙火解冻。",ch:113,qs:"丙"}]};function P(u,z){const _=fe[u];if(!_)return null;const E=H.indexOf(z);if(E<0)return null;const M=_[E];if(!M)return null;const x=[...M.y];return{stem:u,branch:M.b,month:M.m,yong:x,primary:x[0]||null,quote:M.q,quoteStems:[...M.qs],chapter:M.ch,url:be+String(M.ch).padStart(3,"0")+"/",note:M.note||"",label:u+"日生于"+M.m+"("+M.m+M.b+"月)"}}function B(u){return u?u.label+":用神 "+u.yong.join("、")+"(首取 "+u.primary+")":""}return{QT_BRANCHES:H,QT_MONTHS:q,QT_BASE_URL:be,QT_NOTE:se,QT:fe,qtOf:P,qtLine:B}})(),K.classics=(function(){const H={ziping:{name:"子平真诠",author:"清·沈孝瞻",base:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/"},ditian:{name:"滴天髓",author:"明·京图(通行本)",base:"https://www.diancang.xyz/xuanxuewushu/ditiansui/"},sanming:{name:"三命通会",author:"明·万民英",base:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/"}},q=[{id:"zp-yongshen",book:"ziping",chapter:"八、论用神",scene:"用神",tags:[],quote:"八字用神,专求月令,以日干配月令地支,而生克不同,格局分焉。财官印食,此用神之善而顺用之者也;煞伤劫刃,用神之不善而逆用之者也。",plain:"用神从月令里找:财、官、印、食四吉神顺用(生之护之),煞、伤、劫、刃四凶神逆用(制之化之)。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53628.html"},{id:"zp-zhenguan",book:"ziping",chapter:"三十一、论正官",scene:"格局",tags:["正官"],quote:"以刑冲破害为忌,则以生之护之为喜矣。存其喜而去其忌则贵,而贵之中又有高低者,何也?",plain:"正官格最忌刑冲破害,喜财生官、印护官;去忌存喜才谈得上贵,贵的层次还要看财印是否并透、有无伤官七煞混杂。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53651.html"},{id:"zp-cai",book:"ziping",chapter:"三十三、论财",scene:"格局",tags:["财","正财","偏财"],quote:"财为我克,使用之物也,以能生官,所以为美。为财帛,为妻妾,为才能,为驿马,皆财类也。",plain:"财是我所克、能为我用之物,因能生官而美;它同时代表钱财、配偶、才能、走动,不只「钱」一项。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53653.html"},{id:"zp-yin",book:"ziping",chapter:"三十五、论印绶",scene:"格局",tags:["印"],quote:"印绶喜其生身,正偏同为美格,故财与印不分偏正,同为一格而论之。",plain:"印能生身,正印偏印都算美格,不分偏正而论;印格的关键在身印强弱与官杀、食伤、财的配合。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53655.html"},{id:"zp-shishen",book:"ziping",chapter:"三十七、论食神",scene:"格局",tags:["食神"],quote:"食神本属泄气,以其能生正财,所以喜之。故食神生财,美格也。财要有根,不必偏正叠出,如身强食旺而财透,大贵之格。",plain:"食神本是泄气,可贵在能生财;食神生财要财有根,身强、食旺、财透三者齐,格局才大。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53657.html"},{id:"zp-pianguan",book:"ziping",chapter:"三十九、论偏官",scene:"格局",tags:["七杀","偏官"],quote:"煞以攻身,似非美物,百大贵之格,多存七煞。盖控制得宜,煞为我用,如大英雄大豪杰,似难驾驭,而处之有方,则惊天动地之功,忽焉而就。",plain:"七煞攻身,看着不美,但大贵之格多有七煞——能控制住就为我所用,像驾驭豪杰,处之有方就能成大事。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53659.html"},{id:"zp-shangguan",book:"ziping",chapter:"四十一、论伤官",scene:"格局",tags:["伤官"],quote:"伤官虽非吉神,实为秀气,故文人学士,多于伤官格内得之。而夏木见水,冬金见火,则又为秀之尤秀者也。",plain:"伤官不是吉神,却是秀气所在,文人多出伤官格;夏木得水、冬金得火,是秀气里更秀的两种。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53661.html"},{id:"zp-yangren",book:"ziping",chapter:"四十三、论阳刃",scene:"格局",tags:["劫财","阳刃"],quote:"阳刃者,劫我正财之神,乃正财之七煞也。禄前一位,惟五阳有之,故为阳刃。不曰劫而曰刃,劫之甚也。刃宜伏制,官煞皆宜,财印相随,尤为贵显。",verifiedQuote:"阳刃者,劫我正财之神,乃正财之七煞也。禄前一位,惟五阳有之",variantNote:"典藏网此页把「故为阳刃」刻作「故为旭刃」,与通行本异文;前段仍可逐字核验",plain:"阳刃是劫财之极(只有五阳干有),宜用官煞制伏;财印相随而不相碍,格局更显。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53663.html"},{id:"zp-lujie",book:"ziping",chapter:"四十五、论建禄月劫",scene:"格局",tags:["比肩","建禄","月劫"],quote:"故建禄与月劫,可同一格,不必加分,皆以透干支,别取财官煞食为用。",plain:"建禄、月劫同看一格,月令本身不算用神,要另看透出的财官煞食取用。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53665.html"},{id:"zp-qihou",book:"ziping",chapter:"十四、论用神配气候得失",scene:"调候",tags:[],quote:"论命惟以月令用神为主,然亦须配气候而互参之。譬如英雄豪杰,生得其时,自然事半功倍;遭时不顺,虽有奇才,成功不易。",plain:"月令用神为主,但必须配气候参看;同样的格局,生在得时的气候里事半功倍,逆着气候就费劲。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53634.html"},{id:"zp-chengbai",book:"ziping",chapter:"九、论用神成败救应",scene:"格局",tags:[],quote:"成中有败,必是带忌;败中有成,全凭救应。",plain:"成格不等于一路顺:成中带忌(官逢财又逢伤、官被合之类)就打了折;败格也未必无救——印来解伤、合来清煞,败中还能转成。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53629.html"},{id:"zp-zaji",book:"ziping",chapter:"十六、论杂气如何取用",scene:"用神",tags:[],quote:"何谓透干?如甲生辰月,透戊则用偏财,透癸则用正印,透乙则用月劫是也。何谓会支?如甲生辰月,逢申与子会局,则用水印是也。一透则一用,兼透则兼用,透而又会,则透与会并用。",plain:"四墓(辰戌丑未)所藏不止一气,所以叫杂气:取用先看哪一藏干透到天干,透一个用一个;没有透干,再看地支有没有与月支会成三合局,会成什么局就取局中那一气。透干与会支同时成立时两样并用。原文对「兼透」只给原则,没有给取舍次序。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53636.html"},{id:"zp-bianhua",book:"ziping",chapter:"十、论用神变化",scene:"格局",tags:[],quote:"故若丁生亥月,本为正官,支全卯未,则化为印。己生申月,本属伤官。藏庚透壬,则化为财。凡此之类皆用神之变化也。",plain:"用神本从月令取,但月令藏干不一:丁生亥月本为正官,支会卯未就化为印;己生申月本属伤官,庚藏壬透就化为财。起点相同,合化一变,取用也跟着变(原文只说变化之由,不断定某盘必化)。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53630.html"},{id:"dt-hannuan",book:"ditian",chapter:"通神论·寒暖",scene:"调候",tags:[],quote:"天道有寒暖,生育万物,人道行之,不可过也。",plain:"天有寒暖才能生养万物,人命里寒暖也不能过——过寒过热都要调。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-zaoshi",book:"ditian",chapter:"通神论·燥湿",scene:"调候",tags:[],quote:"地道有燥湿,生成品汇,人道得之,不可偏也。",plain:"地有燥湿才有品类生成,人命得燥湿之气也不能偏。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-shuaiwang",book:"ditian",chapter:"通神论·衰旺",scene:"调候",tags:[],quote:"能知旺衰之真机,其于三命之奥,思过半矣。",plain:"真正看懂旺衰的机关,命理之奥就过了一半——旺衰不是数个数,要看真机。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-zhonghe",book:"ditian",chapter:"通神论·中和",scene:"调候",tags:[],quote:"既识中和之正理,而于五行之妙,有全能焉。",plain:"懂得中和的道理,五行的妙处就都在其中了。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-guansha",book:"ditian",chapter:"通神论·官杀",scene:"十神",tags:["正官","七杀"],quote:"官杀混杂来问我,有可有不可。",plain:"官杀混杂不是一律不好,要看能不能去留取清。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-shangguan",book:"ditian",chapter:"通神论·伤官",scene:"十神",tags:["伤官"],quote:"伤官见官最难辨,可见不可见。",plain:"伤官见官是最难分辨的一条:有的能见,有的不能见,不能一句「伤官见官为祸百端」了事。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-yueling",book:"ditian",chapter:"通神论·月令",scene:"用神",tags:[],quote:"月令乃提纲之府,譬之宅也,人元为用事之神,宅之定向也,不可以不卜。",plain:"月令像宅子,藏干是用事之神,像宅子的朝向,必须细看。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-tiyong",book:"ditian",chapter:"通神论·体用",scene:"用神",tags:[],quote:"道有体用,不可以一端论也,要在扶之抑之得其宜。",plain:"体用不能只看一头,关键是扶抑得宜。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-jingshen",book:"ditian",chapter:"通神论·精神",scene:"用神",tags:[],quote:"人有精神,不可以一偏求也,要在损之益之得其中。",plain:"看精神不能偏执一端,要在损益之间求其中。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-tongguan",book:"ditian",chapter:"通神论·通关",scene:"用神",tags:[],quote:"关内有织女,关外有牛郎,此关若通也,相邀入洞房。",plain:"两股力隔着一道关相望:一边织女、一边牛郎,中间若有一行能把两边接上(一方生它、它再生另一方),对峙就化成相生。原文只给取象,哪一行为关要按五行生克定。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"smt-zhenguan",book:"sanming",chapter:"卷五·论正官",scene:"格局",tags:["正官"],quote:"正官者,乃甲见辛、乙见庚之例。阴阳配合,相制有用,成其道也。故正官为六格之首,止许一位,多则不宜。",plain:"正官取「克我而阴阳相配」,有制而能成用;六格以正官居首,只宜一位,多见就杂。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7582.html"},{id:"smt-zhengcai",book:"sanming",chapter:"卷六·论正财",scene:"格局",tags:["财","正财"],quote:"正财者,乃甲见己、乙见戊之例。受我克制,为我之妻,譬人娶妻,妻赍财嫁我,我必精神康强,而后可享用,若衰微不振,虽妻财丰厚,但能目视,终不得用。",plain:"正财是我克制之物,古人以「娶妻带财」作比:自身精神康强才受用得起,身弱不振,财再厚也只是看着。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7645.html"},{id:"smt-piancai",book:"sanming",chapter:"卷六·论偏财",scene:"格局",tags:["财","偏财"],quote:"何谓偏财?乃甲见戊、乙见己之例。非妻所带,乃众人之财也。切忌有姊妹兄弟分夺,柱无官星,祸患百出。",plain:"偏财取「我克而阴阳不同」:不是妻家带来的私财,而是众人之财,宜流通不宜独占。原文最忌比肩劫财来分夺,又说柱中无官星则多事(旧说的重话照录,本插件只记原文、不作断语)。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7650.html"},{id:"smt-yinshou",book:"sanming",chapter:"卷六·论印绶",scene:"格局",tags:["印"],quote:"印绶者,乃五行生我之名。如甲乙在亥子月,丙丁在寅卯月之类,乃我气之源,为生气,为父母,能护我官星,使无伤克",plain:"印是生我之气,像源头与父母:它能护住官星,使官不受伤克;反过来说,印重就怕财来破。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7655.html"},{id:"smt-shishen",book:"sanming",chapter:"卷六·论食神",scene:"格局",tags:["食神"],quote:"凡命遇财煞之地,食神旺相,煞被食制,不敢为祸,财被食生,充裕不竭,故食神一名寿星,一名爵星,良有以也。",plain:"食神旺,一头制煞、一头生财:煞被制住不敢为祸,财被生起不至枯竭;所以食神又叫寿星、爵星。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7663.html"},{id:"smt-shangguan",book:"sanming",chapter:"卷六·论伤官",scene:"格局",tags:["伤官"],quote:"伤官虽凶,乃我所生,自家之物,伤尽则能生财,财旺则能生官,造化展转有情。",plain:"伤官虽称凶,却是我自己生出来的:伤尽(柱中不见官星)反能生财,财旺再生官,辗转还是有情。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7662.html"},{id:"smt-yangren",book:"sanming",chapter:"卷六·论阳刃",scene:"格局",tags:["阳刃","劫财"],quote:"阳者,阴阳之阳,刃者,刀刃之刃,即禄前一位,言旺越其分,故险。",plain:"阳刃指禄前一位,旺过了本分,所以险;甲丙戊庚壬五阳干才有刃,阴干见伤官同论。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7671.html"},{id:"smt-jianlu",book:"sanming",chapter:"卷六·论建禄",scene:"格局",tags:["建禄","比肩","月劫"],quote:"凡命月令建禄,难招祖业,必主平生见财不聚,却病少寿长,行运再见比肩,克妻妨父损子",plain:"月令建禄是日主临官之地,身旺而财官难取:古说难承祖业、见财不聚,但病少寿长;再走比肩运,古书说克妻妨父损子(属于旧说的重话,本插件只记原文、不作断语)。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7672.html"},{id:"smt-guansha-liu",book:"sanming",chapter:"卷五·官煞去留杂论",scene:"格局",tags:["七杀","偏官"],quote:"凡看去留,要详柱中官煞孰重孰轻,天干透者易去,月支所藏者难去,须伤官食神去官煞之物众而有力,方才去得。",plain:"官煞混见时先比谁重谁轻:天干透出的容易去,月支藏着的难去;用来去官煞的伤官食神要成众、有根有力,才真去得掉。七杀格遇正官混杂,就按这一篇看取舍。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7599.html"},{id:"smt-quzhi",book:"sanming",chapter:"卷六·曲直",scene:"格局",tags:["曲直格","专旺"],quote:"甲乙日得亥卯未局,柱中须有亥字带印为入格,若无亥有卯,止是木之本气,却要见金土为贵,既无亥字,又无金土,则木不秀不实,难以言贵。",plain:"曲直格要木局成方(亥卯未)且带亥字为印,才算入格;只有卯、没有亥,只是木的本气,得另见金土才谈得上贵;两样都没有,木虽旺而无成,难称贵格。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7630.html"},{id:"smt-yanshang",book:"sanming",chapter:"卷六·炎上",scene:"格局",tags:["炎上格","专旺"],quote:"丙丁日遇寅午戌局,柱中须有寅字带印为入格,无寅止是九流近贵之命,若火自旺,无亥水相济,不贵。喜东北方运,忌见辰丑戊己,晦火光明,多主眼疾,或患风气,柱有木制成贵,忌水金乡,怕冲。",plain:"炎上格要火局成方(寅午戌)且带寅字为印才入格;无寅只是偏贵的命。火自旺还要一点水相济,过燥不贵;行运喜东北、忌湿土晦火,也怕冲。原文另带「多主眼疾」一句,属于旧说,本插件只记原文、不作健康判断。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7631.html"},{id:"smt-congge",book:"sanming",chapter:"卷六·从革",scene:"格局",tags:["从革格","专旺"],quote:"庚辛日见巳酉丑局,须带丙丁巳午一二位方成其器,但不可火多。如辛巳、辛酉、辛丑三日不喜五月生,被火所伤,宜八月或水土养育食神印绶为吉。",plain:"从革格是金局成方(巳酉丑),但金要火炼才成器:须带丙丁或巳午一二位,火又不能多。辛巳、辛酉、辛丑三日出身在五月(火旺)被伤,原文说宜八月或水土养育。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7632.html"},{id:"smt-runxia",book:"sanming",chapter:"卷六·润下",scene:"格局",tags:["润下格","专旺"],quote:"壬癸日见申子辰全,忌引卯巳死绝之地,三刑四冲之乡,死绝则不流,冲刑则横流,岁运同。或曰水太泛须柱有土神一两位制之,得成堤岸,既有土怕会木为凶,如有木伤土要金印救解,终是一生成败。",plain:"润下格是水局三合全(申子辰),最忌卯巳死绝与三刑四冲:死绝水不流,冲刑水横流,行运也一样看。水太泛要一两位土作堤,有土又怕木来破堤,木伤土再用金印解救——原文把成败条件摊开讲。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7633.html"},{id:"smt-jiasi",book:"sanming",chapter:"卷六·稼穑",scene:"格局",tags:["稼穑格","专旺"],quote:"赋云:戊己忻逢四季,乃为稼穑之名。是戊己生逢季月,喜见木为官,止得一木为妙,木多则土虚,主虚诈为破家不仁之人。",plain:"稼穑格取戊己生于四季月(辰戌丑未)。原文说喜见一木为官,木多则土虚;后半对木多之人的评语是旧说的重话,本插件只照录条件、不拿来评价人。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7634.html"},{id:"smt-congsha",book:"sanming",chapter:"卷五·弃命从煞",scene:"格局",tags:["从杀格"],quote:"《独步》云:弃命从煞,须要会煞从财,忌煞从煞。盖言从煞格,以煞神太重,身无所归,不得已从之,要行煞旺及财乡,四柱无一点比肩印绶方论,如遇运扶身旺,与煞为敌,从煞不专,故为祸患。",plain:"从煞格是煞太重、日主无所归才「弃命」相从:条件是四柱没有一点比肩印绶扶身,行运喜煞旺与财乡;一旦走扶身之运,与煞为敌,就从得不专。本插件只作结构说明,不据此断寿夭。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7598.html"},{id:"smt-congcai",book:"sanming",chapter:"卷六·弃命从财",scene:"格局",tags:["从财格"],quote:"《独步》云:弃命从财,须要会财,若逢根气,命损无猜。假如丁生酉月,柱多庚辛,日干无气,只得弃命相从,运入北方财官旺地,乃为入格,南行灾。",plain:"从财格要财会成局、日干无气;一见根气就破格,原文用「命损无猜」这种重话写明。以丁生酉月、柱多庚辛为例:只能弃命相从,行北方财官旺地为入格,南行则灾。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7652.html"},{id:"smt-suiyun",book:"sanming",chapter:"卷二·总论岁运",scene:"岁运",tags:[],quote:"行运以生月为运元,最怕行运与太岁冲克,若岁运冲月必祸;若岁运与日相对,谓之返吟,岁运压日,谓之伏吟,二者不利六亲,非横破财,不为吉兆。",plain:"大运以生月为起点,最怕与流年(太岁)冲克:原文说岁运冲月为祸,又把「岁运与日柱相对」叫返吟、「岁运压日」叫伏吟。这两句是按「对日柱」说的,与本插件「干支相同为伏吟、天克地冲为反吟」不是同一套定义(本插件取后者);末句「不利六亲、破财」是旧说的重话,只作变动提示,不作断语。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7539.html"},{id:"smt-renyuan",book:"sanming",chapter:"卷二·论人元司事",scene:"人元",tags:[],quote:"故支吕所藏者主命,谓之人元,名为司事之神,以命术言之为月令。如正月建寅,寅中有艮土用事五日,丙火长生五日,甲木二十日;二月建卯,卯中有甲木用事七日,乙木二十三日;",plain:"地支所藏为「人元」,按月令分日轮值。三命通会这一本给的是另一套日数:寅月艮土(戊土)五日、丙火五日、甲木二十日,卯月甲七日、乙二十三日。它与本插件采用的通行 30 日表(寅月戊7丙7甲16,即 7/7/16;卯月甲10乙20,即 10/20)不是同一套分法;两表各照原样并列,本插件仍按通行表给「第几日谁当权」,不改取格。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7529.html"}],be=q.reduce((x,g)=>(x[g.id]=g,x),{}),se={正官格:"正官",七杀格:"七杀",偏官格:"偏官",正财格:"正财",偏财格:"偏财",正印格:"印",偏印格:"印",食神格:"食神",伤官格:"伤官",阳刃格:"阳刃",月劫格:"月劫",建禄格:"建禄"},fe={曲直格:"smt-quzhi",炎上格:"smt-yanshang",从革格:"smt-congge",润下格:"smt-runxia",稼穑格:"smt-jiasi",从财格:"smt-congcai",从杀格:"smt-congsha"};function P(x){return be[x]||null}function B(x){return(x&&Array.isArray(x.liunian)?x.liunian:[]).some(I=>I&&I.suiyun&&Array.isArray(I.suiyun.signals)&&I.suiyun.signals.length)?P("smt-suiyun"):null}function u(x){const g=String(x||"");if(se[g])return se[g];const ue=g.replace(/格$/,"");return se[ue+"格"]||ue}function z(x,g){return q.find(ue=>ue.scene==="格局"&&ue.tags.includes(x)&&(!g||ue.book===g))||null}function _(x){return x.chapter.replace(/^.*[、·]/,"").replace(/^论/,"")}function E(x,g=5){if(!x)return[];const ue=[],I=new Set,D=(b,O)=>{!b||I.has(b.id)||ue.length>=g||(I.add(b.id),ue.push({...b,why:O}))},p=Array.isArray(x.geju)?x.geju:x.frame&&Array.isArray(x.frame.geju)?x.frame.geju:[],T=p.some(b=>b&&b.kind==="化气格");for(const b of p){if(b&&b.status==="破格"||T&&b&&b.status==="假从")continue;const O=b&&fe[b.name]?P(fe[b.name]):null;O&&D(O,`本盘列有「${b.name}」,故取${H[O.book].name}「${_(O)}」一条`)}for(const b of p){if(!b||b.kind&&b.kind!=="月令格")continue;const O=u(b.name),ie=z(O,"ziping")||z(O);ie&&D(ie,`你的月令格局是「${b.name}」,故取${H[ie.book].name}「${_(ie)}」一条`);const de=q.find(ze=>ze.scene==="格局"&&ze.tags.includes(O)&&(!ie||ze.book!==ie.book));de&&D(de,`同是「${b.name}」,${H[de.book].name}「${_(de)}」另有取法,可对照读`)}const r=x.climate||x.frame&&x.frame.yongshen&&(x.frame.yongshen.climate||x.frame.yongshen.tiaohou),t=x.frame&&x.frame.yongshen&&x.frame.yongshen.tongguan,d=t&&t.usable?P("dt-tongguan"):null;if(r&&r.kind&&r.kind!=="平和"){const b=!!(r.cold||r.kind.indexOf("寒")>=0),O=!!(r.hot||r.kind.indexOf("热")>=0);D(P(b?"dt-hannuan":"dt-zaoshi"),`本盘气候判为「${r.kind}」,故取${H.ditian.name}寒暖燥湿一条`),d||D(P("zp-qihou"),"气候与月令用神要互参,故取子平真诠「用神配气候」一条"),O&&D(P("dt-hannuan"),"本盘偏热,寒暖一条正对")}d&&D(d,`本盘忌${t.foe}克用${t.use},局中${t.bridge}${t.weight}分可作通关,故取${H.ditian.name}「通关」一条`);const n=p.find(b=>b&&b.kind==="化气格"),h=p.find(b=>b&&b.kind==="组合"),k=x.monthBranch||x.frame&&x.frame.monthBranch||x.pillars&&x.pillars.month&&x.pillars.month.branch,y=["辰","未","戌","丑"].includes(k);return n?D(P("zp-bianhua"),`本盘列有「${n.name}」:用神由月令合化而变,总纲一位改取${H.ziping.name}论用神变化`):y?D(P("zp-zaji"),`月令${k}属四墓杂气,取用先看透干、再看会支,总纲一位取${H.ziping.name}论杂气如何取用`):h?D(P("zp-chengbai"),`本盘另有「${h.name}」组合:成格还要看带忌与救应,总纲一位改取${H.ziping.name}论用神成败救应`):D(P("zp-yongshen"),"用神从月令取、四吉顺用四凶逆用,是通用总纲"),ue}function M(x){return!x||!x.length?"":x.map(g=>`《${H[g.book].name}·${g.chapter}》「${g.quote}」`).join(`
|
|
68
|
-
`)}return{CLASSIC_BOOKS:H,CLASSICS:q,classicOf:P,suiyunClassicOf:B,classicsFor:E,classicsText:M}})(),K.geju=(function(){const{judgeClimate:H,arbitrate:q}=K.tiaohou||{},{qtOf:be}=K.qiongtong||{},{SANHE_GROUPS:se,sanheGroupOf:fe}=K.sanhe||{},P=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],B=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],u={甲:"木",乙:"木",丙:"火",丁:"火",戊:"土",己:"土",庚:"金",辛:"金",壬:"水",癸:"水"},z={子:"水",丑:"土",寅:"木",卯:"木",辰:"土",巳:"火",午:"火",未:"土",申:"金",酉:"金",戌:"土",亥:"水"},_={木:"火",火:"土",土:"金",金:"水",水:"木"},E={木:"土",土:"水",水:"火",火:"金",金:"木"},M={子:["癸"],丑:["己","癸","辛"],寅:["甲","丙","戊"],卯:["乙"],辰:["戊","乙","癸"],巳:["丙","戊","庚"],午:["丁","己"],未:["己","丁","乙"],申:["庚","壬","戊"],酉:["辛"],戌:["戊","辛","丁"],亥:["壬","甲"]},x=[1,.5,.3],g={甲:"寅",乙:"卯",丙:"巳",丁:"午",戊:"巳",己:"午",庚:"申",辛:"酉",壬:"亥",癸:"子"},ue={甲:"卯",乙:"辰",丙:"午",丁:"未",戊:"午",己:"未",庚:"酉",辛:"戌",壬:"子",癸:"丑"},I={甲己:"土",乙庚:"金",丙辛:"水",丁壬:"木",戊癸:"火"},D=Y=>P.indexOf(Y)%2===0,p=["木","火","土","金","水"];function T(Y,U){const j=u[Y],f=u[U],w=D(Y)===D(U);return j===f?w?"比肩":"劫财":_[j]===f?w?"食神":"伤官":E[j]===f?w?"偏财":"正财":E[f]===j?w?"七杀":"正官":_[f]===j?w?"偏印":"正印":"?"}const r={比劫:["比肩","劫财"],食伤:["食神","伤官"],财:["正财","偏财"],官杀:["正官","七杀"],印:["正印","偏印"]};function t(Y,U){const j={比劫:0,食伤:0,财:0,官杀:0,印:0},f={比肩:0,劫财:0,食神:0,伤官:0,正财:0,偏财:0,正官:0,七杀:0,正印:0,偏印:0},w=(ne,te)=>{const $e=T(U,ne),Re=Object.keys(r).find(Ge=>r[Ge].includes($e));Re&&(j[Re]+=te),f[$e]!==void 0&&(f[$e]+=te)};for(const ne of["year","month","day","hour"])w(Y[ne].stem,ne==="day"?.6:1),(M[Y[ne].branch]||[]).forEach((te,$e)=>w(te,x[$e]??.1));for(const ne of Object.keys(j))j[ne]=Math.round(j[ne]*10)/10;for(const ne of Object.keys(f))f[ne]=Math.round(f[ne]*10)/10;return{groups:j,byGod:f}}function d(Y){const U=u[Y],j=p.find(w=>_[w]===U),f=p.find(w=>E[w]===U);return{me:U,inMe:j,shi:_[U],cai:E[U],guan:f}}const n=["辰","未","戌","丑"];function h(Y,U,j){if(!n.includes(U))return null;const f=fe(U);if(!f)return null;const w=["year","day","hour"],ne=f.branches.filter(Re=>Re!==U);if(!ne.every(Re=>w.some(Ge=>Y[Ge].branch===Re)))return null;const te=j.find(Re=>u[Re.stem]===f.element);if(!te)return null;const $e=w.filter(Re=>ne.includes(Y[Re].branch)).map(Re=>`${{year:"年",day:"日",hour:"时"}[Re]}支${Y[Re].branch}`);return{...te,group:f,where:$e}}function k(Y,U,j){const f=M[j]||[],w=f.map((Ze,yn)=>({stem:Ze,god:T(U,Ze),pos:["本气","中气","余气"][yn],w:x[yn]??.1})),te=["year","month","hour"].find(Ze=>w.some(yn=>yn.stem===Y[Ze].stem)),$e=w[0],Re=te?null:h(Y,j,w),Ge=te?w.find(Ze=>Ze.stem===Y[te].stem):Re||$e,ln=te?"透干":Re?"会支":"本气",jn=te?{year:"年",month:"月",hour:"时"}[te]:null;if($e.god==="比肩"&&g[U]===j)return{name:"建禄格",kind:"月令格",evidence:`月令${j}为日干${U}之禄(本气${$e.stem}比肩),身坐禄地`};if($e.god==="劫财")return ue[U]===j?{name:D(U)?"阳刃格":"月刃格",kind:"月令格",evidence:`月令${j}为日干${U}之刃(本气${$e.stem}劫财)${D(U)?"":",阴干统称月刃"}`}:{name:"月劫格",kind:"月令格",evidence:`月令${j}本气${$e.stem}为劫财`};if(ln==="本气"&&$e.god==="比肩")return{name:"比肩格",kind:"月令格",evidence:`月令${j}藏${f.join("")},本气${$e.stem}为比肩,但${U}禄在${g[U]}、不在${j},属杂气月比肩当权`};if(ln!=="本气"&&Ge.god==="劫财"){const Ze=te?`透于${jn}干`:`${Re.where.join("、")}会成${Re.group.element}局`;return{name:"月劫格",kind:"月令格",evidence:`月令${j}藏${f.join("")},${Ge.pos}${Ge.stem}(劫财)${Ze},劫财为用,作月劫论`}}const Sn=`${Ge.god}格`;let le;return te?le=`月令${j}藏${f.join("")},${Ge.pos}${Ge.stem}(${Ge.god})透于${jn}干`:Re?le=`月令${j}藏${f.join("")},本气${$e.stem}(${$e.god})未透干,而${Re.where.join("、")}会成${Re.group.element}局,取${Ge.pos}${Ge.stem}(${Ge.god})为用`:le=`月令${j}藏${f.join("")},本气${$e.stem}(${$e.god})未透干,以月令本气取格`,{name:Sn,kind:"月令格",evidence:le}}const y={木:"曲直格",火:"炎上格",土:"稼穑格",金:"从革格",水:"润下格"},b={财:"从财格",官杀:"从杀格",食伤:"从儿格",印:"从强格",比劫:"从强格"},O={year:"年",month:"月",day:"日",hour:"时"};function ie(Y,U){const j=u[U],f={bi:0,yin:0,total:0,details:[],helpers:[]};for(const w of["year","month","day","hour"]){const ne=Y[w].branch;(M[ne]||[]).forEach((te,$e)=>{const Re=u[te],Ge=x[$e]??.1;Re===j?(f.bi+=Ge,f.details.push(`${O[w]}支${ne}藏${te}(比劫 ${Ge})`)):_[Re]===j&&(f.yin+=Ge,f.details.push(`${O[w]}支${ne}藏${te}(印 ${Ge})`))})}for(const w of["year","month","hour"]){const ne=Y[w].stem,te=u[ne];(te===j||_[te]===j)&&f.helpers.push(`${O[w]}干${ne}(${te===j?"比劫":"印"})`)}return f.bi=Math.round(f.bi*10)/10,f.yin=Math.round(f.yin*10)/10,f.total=Math.round((f.bi+f.yin)*10)/10,f}function de(Y,U,j,f,w,ne){const te=[],$e=d(U),Re=$e.me,Ge=w[Re]??0,ln=w[$e.inMe]??0,jn=w[$e.cai]??0,Sn=w[$e.guan]??0,le=w[$e.shi]??0;for(const Oe of["year","month","hour"]){const nn=Y[Oe].stem,dn=I[U+nn]||I[nn+U];if(!dn)continue;const gn=z[j];if(gn===dn||_[gn]===dn){te.push({name:`${dn==="土"?"化土格":`化${dn}格`}`,kind:"化气格",evidence:`日干${U}与${["年","月","时"][["year","month","hour"].indexOf(Oe)]}干${nn}合化${dn},月令${j}${gn}${gn===dn?"同化神":"生助化神"};化气格须全局无争合妒合才算真,此处仅列条件`});break}}if((f.level==="身强"||f.level==="偏强")&&Ge+ln>=5){const Oe=[];Sn>1.2&&Oe.push(`官杀 ${Sn} 分,逆旺势`),jn>1.8&&Oe.push(`财 ${jn} 分,耗旺气`);const nn=z[j],dn=nn===Re||nn===$e.inMe,gn=se.find(re=>re.element===Re),he=["year","month","day","hour"].map(re=>Y[re].branch),G=gn&&gn.branches.every(re=>he.includes(re))?gn.branches.join(""):null,F=Oe.length?"破格":dn?"成格":"待定";te.push({name:y[Re],kind:"专旺格",status:F,breaks:Oe,ju:G,evidence:`日主${Re}得${Ge+ln}分(同类+印),官杀${Sn}、财${jn}${Oe.length?"":"皆弱"};${dn?`月令${j}${nn}助旺`:`月令${j}${nn}不助旺`}${G?`,地支${G}成局`:""},${F==="成格"?"成格":F==="破格"?"见破格条件":"成势而条件未全"}`,breakRule:Oe.length?"专旺以官杀逆旺势、财星耗旺气为破;见其一即不纯":void 0})}const Ze=ie(Y,U);if(Ze.total<1&&(f.level==="身弱"||f.level==="偏弱")){const Oe=Object.entries({财:jn,官杀:Sn,食伤:le,印:ln}).sort((nn,dn)=>dn[1]-nn[1])[0];if(Oe[1]>=2.5){const nn=Ze.total>0||Ze.helpers.length>0,dn=[...Ze.details,...Ze.helpers.map(gn=>`天干${gn}虚透`)];te.push({name:b[Oe[0]],kind:"从格",status:nn?"假从":"真从",breaks:nn?dn:[],rootWeight:Ze.total,evidence:nn?`日主有微根或虚透(${dn.join(";")}),${Oe[0]}占 ${Oe[1]} 分最旺,假从${Oe[0]};行运助身则不从`:`日主无根(四支藏干无同类与印、天干无比劫印绶),${Oe[0]}占 ${Oe[1]} 分最旺,真从${Oe[0]}`,breakRule:nn?"从格以日主有根、比劫印绶透出为破;有根而从者称假从,运助身则不从":void 0})}}const yn=ne.byGod||{},me=ne.groups||ne,Ce=Oe=>(yn[Oe]??0)>=.5,Fe=(yn.正印??0)+(yn.偏印??0),sn=[["官印相生",Ce("正官")&&Fe>=.5,"正官与印并见,官生印而护身"],["杀印相生",Ce("七杀")&&Fe>=.5&&(yn.七杀??0)>(yn.正官??0),"七杀与印并见,杀印相生"],["食伤生财",(me.食伤??0)>=.6&&(me.财??0)>=.6,`食伤${me.食伤}+财${me.财},食伤生财`],["财官相生",(me.财??0)>=.6&&(me.官杀??0)>=.6,`财${me.财}+官杀${me.官杀},财生官`],["伤官配印",Ce("伤官")&&Fe>=.5&&(me.财??0)<=1,"伤官与印并见,伤官配印"],["伤官见官",Ce("伤官")&&Ce("正官"),"伤官与正官并见(伤官见官,为祸百端之说)"],["羊刃驾杀",(me.官杀??0)>=1&&ue[U]===j,`月令为刃,又有七杀${me.官杀},刃杀相制`]];for(const[Oe,nn,dn]of sn)nn&&te.push({name:Oe,kind:"组合",evidence:dn});return te}const ze=1.5,Ae=.5;function we(Y=[],U=[],j={}){const f=w=>Math.round((Number(j[w])||0)*10)/10;for(const w of Y)if(!(f(w)<ze))for(const ne of U){if(E[ne]!==w||f(ne)<ze)continue;const te=_[ne];if(!te||_[te]!==w)continue;const $e=f(te),Re=U.includes(te)&&!Y.includes(te),Ge=Re?"为忌":$e>=ze?"可通":$e>0?"关弱":"未通";return{use:w,foe:ne,bridge:te,weight:$e,present:$e>0,bridgeIsAvoid:Re,level:Ge,usable:Ge==="可通",note:"相战=用神与忌神两行各在局中 ≥1.5 分且相克;通关一行=克方所生、又能生用神的那一行(五行里唯一),只报局中分量,不据此断吉凶"}}return null}function en(Y,U,j,f,w=[]){const ne=d(Y),te=ne.me,$e=j.level==="身弱"||j.level==="偏弱",Re=j.level==="身强"||j.level==="偏强",Ge=Q=>Q===te?"比劫":Q===ne.inMe?"印":Q===ne.shi?"食伤":Q===ne.cai?"财":"官杀",ln={比劫:"帮身",印:"生身",食伤:"泄秀",财:"耗",官杀:"制"},jn=$e?[ne.inMe,te]:Re?[ne.shi,ne.cai,ne.guan]:[ne.inMe,te,ne.shi],Sn=$e?[ne.shi,ne.cai,ne.guan]:Re?[te,ne.inMe]:[ne.guan,ne.cai];let le=jn.slice(),Ze=Sn.slice();const yn=[],me=H({monthBranch:U,dayStem:Y,wuxing:f,branches:w}),Ce=be(Y,U),Fe=q(me,jn,Sn);if(me.need&&me.priority==="调候优先"){const Q=me.need.element;le.includes(Q)||le.unshift(Q),Ze=Ze.filter(De=>De!==Q);const Ke=me.avoidElement;Ke&&le.includes(Ke)?yn.push({element:Ke,favorRole:Ge(Ke),favorVerb:ln[Ge(Ke)],climate:me.label,note:`调候忌${Ke}(${me.label}),但它在扶抑里为${Ge(Ke)};本表保留在喜用,不列入忌。`}):Ke&&!Ze.includes(Ke)&&Ze.unshift(Ke)}const sn={比劫:["比肩","劫财"],印:["正印","偏印"],食伤:["食神","伤官"],财:["正财","偏财"],官杀:["正官","七杀"]},Oe=Array.from(new Set(le.flatMap(Q=>sn[Ge(Q)]||[]))),nn=Array.from(new Set(Ze.flatMap(Q=>sn[Ge(Q)]||[]))),dn=Array.from(new Set(yn.flatMap(Q=>sn[Ge(Q.element)]||[]))),gn=Q=>Math.round((Number(f[Q])||0)*10)/10,he=Ze.filter(Q=>gn(Q)<Ae).map(Q=>({element:Q,role:Ge(Q),verb:ln[Ge(Q)],weight:gn(Q)})),G=Array.from(new Set(he.flatMap(Q=>sn[Q.role]||[]))),F=we(le,Ze,f),re=Q=>`${Q}(${Ge(Q)}·${ln[Ge(Q)]})`,ve=yn.map(Q=>`${Q.element}(扶抑为${Q.favorRole}·${Q.favorVerb};${Q.climate}盘调候忌${Q.element},本表保留在喜用)`).join("、"),Ve=[`日主${Y}${te},${j.level}(${j.score} 分):`,`喜${le.map(re).join("、")||"—"};忌${Ze.map(re).join("、")||"—"}。`,he.length?`中性偏忌:${he.map(Q=>`${Q.element}(局中 ${Q.weight} 分)`).join("、")}——分量近零,不作实忌论,但不从此盘喜忌中删除(行运遇之仍按忌计)。`:"",yn.length?`有争议:${ve}。`:"",!$e&&!Re?"身中和,先取调候与通关,喜忌随大运流年动态变化。":"",`调候:${me.label}(${(me.evidence||[]).join("、")})${me.need?`,取${me.need.stem}${me.need.element},忌${me.avoidElement}${yn.some(Q=>Q.element===me.avoidElement)?"(有争议)":""}`:",气候平和"}。`,Ce?`穷通宝鉴:${Ce.month}${Y}${te},用神${Ce.yong.join("、")}(首取${Ce.primary})。`:"",F?`通关:忌${F.foe}克用${F.use},五行以${F.bridge}为关;局中${F.level==="可通"?`${F.bridge} ${F.weight} 分,关可通`:F.level==="关弱"?`仅 ${F.bridge} ${F.weight} 分,关弱`:F.level==="为忌"?`${F.bridge} ${F.weight} 分但此行为忌,通关力打折`:`未见${F.bridge},关未通`}(只作结构提示,不据此断吉凶)。`:"",Fe.text,Fe.clash?"取舍:本盘按「调候优先、扶抑次之」取用;若你更认同扶抑派,可把调候当环境偏好,强弱判断不受影响。":""].filter(Boolean).join("");return{method:me.priority==="调候优先"?"调候优先 + 扶抑校验":"扶抑为主 + 调候校验",level:j.level,favor:le,avoid:Ze,disputed:yn,neutral:he,favorRoles:le.map(Ge),avoidRoles:Ze.map(Ge),neutralRoles:he.map(Q=>Q.role),favorTenGods:Oe,avoidTenGods:nn,disputedTenGods:dn,neutralTenGods:G,tiaohou:{...me,...Fe,element:me.need?me.need.element:null},climate:me,qt:Ce,tongguan:F,detail:Ve}}const Pe=[[1.3,"大吉"],[.6,"吉"],[-.6,"平"],[-1.3,"忌"],[-1/0,"大忌"]];function bn(Y,U){const j=U.yongshen,f=Y[0],w=Y[1],ne=u[f],te=z[w],$e=j.tiaohou||j.climate||null,Re=me=>{let Ce=0;return j.favor.includes(me)&&(Ce+=1),j.avoid.includes(me)&&(Ce-=1),Ce};let Ge=Re(ne)*1+Re(te)*.8;for(const me of(M[w]||[]).slice(1))Ge+=Re(u[me])*.2;const ln=[];if(j.favor.includes(ne)?ln.push(`天干${f}${ne}为用神`):j.avoid.includes(ne)?ln.push(`天干${f}${ne}为忌神`):ln.push(`天干${f}${ne}不喜不忌`),j.favor.includes(te)?ln.push(`地支${w}${te}助用`):j.avoid.includes(te)&&ln.push(`地支${w}${te}助忌`),$e&&$e.need&&$e.priority==="调候优先"){const me=$e.need.element,Ce=$e.avoidElement,Fe=String($e.kind).includes("寒");ne===me?(Ge+=1.1,ln.push(`${$e.label}之局得${f}${ne},${Fe?"解冻":"得润"}`)):ne===Ce&&(Ge-=.9,ln.push(`${$e.label}之局再逢${f}${ne},${Fe?"冻木难生":"燥上加燥"}`)),te===me?(Ge+=.9,ln.push(`地支${w}${te}合调候`)):te===Ce&&(Ge-=1,ln.push(`地支${w}${te}加重${$e.label}`)),Fe&&(ne==="水"||te==="水")&&(Ge-=.3)}else $e&&$e.need&&(ne===$e.need.element||te===$e.need.element)&&ln.push(`合调候(${$e.need.element})`);const jn=T(U.dayStem,f),Sn=j.favorTenGods.includes(jn)?.3:0,le=j.qt||null;le&&le.primary&&!j.avoid.includes(u[le.primary])&&(f===le.primary?(Ge+=.3,ln.push(`天干${f}正是${le.branch}月${le.stem}日的首取(穷通宝鉴)`)):le.yong.includes(f)&&!j.avoid.includes(u[f])&&(Ge+=.15,ln.push(`天干${f}为穷通宝鉴次取`)));let Ze=Math.round((Ge+Sn)*10)/10;Ze=Math.max(-4,Math.min(4,Ze));const yn=Pe.find(([me])=>Ze>=me)[1];return{ganzhi:Y,score:Ze,tier:yn,stemTenGod:jn,reasons:ln,note:`${jn}运,${yn}(${Ze})`}}function rn({pillars:Y,dayStem:U,monthBranch:j,strength:f,wuxing:w}){const ne=t(Y,U),te=k(Y,U,j),$e=de(Y,U,j,f,w,ne),Re=[te,...$e],Ge=en(U,j,f,w,Object.values(Y).map(ln=>ln.branch));return{geju:Re,primary:te,primaryName:te.name,godStats:ne,yongshen:Ge,dayStem:U,monthBranch:j}}return{tenGod:T,elementRoles:d,tongguanOf:we,scoreLuck:bn,analyzeBaziFrame:rn}})(),K.bazi=(function(){const{STEMS:H,BRANCHES:q,TERM_NAMES:be,ganzhiName:se,dayGanzhiIndex:fe,jdToParts:P,partsToJd:B,sexagenaryIndex:u,termWindow:z,previousJie:_,nextJie:E,equationOfTime:M,formatJd:x,xunKongOf:g}=K.calendar||{},{resolveAddress:ue}=K.geo||{},{computeBaziShensha:I}=K.shensha||{},{assertCivil:D,daysInMonth:p}=K.validate||{},{applyDst:T}=K.dst||{},{nayinOf:r}=K.nayin||{},{SANHE:t}=K.sanhe||{},{analyzeBaziFrame:d,scoreLuck:n}=K.geju||{},h={子:["癸"],丑:["己","癸","辛"],寅:["甲","丙","戊"],卯:["乙"],辰:["戊","乙","癸"],巳:["丙","戊","庚"],午:["丁","己"],未:["己","丁","乙"],申:["庚","壬","戊"],酉:["辛"],戌:["戊","辛","丁"],亥:["壬","甲"]},k={寅:[["戊",7],["丙",7],["甲",16]],卯:[["甲",10],["乙",20]],辰:[["乙",9],["癸",3],["戊",18]],巳:[["戊",5],["庚",9],["丙",16]],午:[["丙",10],["己",9],["丁",11]],未:[["丁",9],["乙",3],["己",18]],申:[["戊",7],["壬",3],["庚",20]],酉:[["庚",10],["辛",20]],戌:[["辛",9],["丁",3],["戊",18]],亥:[["戊",7],["甲",5],["壬",18]],子:[["壬",10],["癸",20]],丑:[["癸",9],["辛",3],["己",18]]},y={甲:"木",乙:"木",丙:"火",丁:"火",戊:"土",己:"土",庚:"金",辛:"金",壬:"水",癸:"水"},b={子:"水",丑:"土",寅:"木",卯:"木",辰:"土",巳:"火",午:"火",未:"土",申:"金",酉:"金",戌:"土",亥:"水"},O={木:"火",火:"土",土:"金",金:"水",水:"木"},ie={木:"土",土:"水",水:"火",火:"金",金:"木"},de=me=>H.indexOf(me)%2===0,ze=[1,.5,.3],Ae=[1.2,.6,.3],we={甲己:"土",乙庚:"金",丙辛:"水",丁壬:"木",戊癸:"火"},en=["甲庚","乙辛","丙壬","丁癸"],Pe={子丑:"土",寅亥:"木",卯戌:"火",辰酉:"金",巳申:"水",午未:"土"},bn={寅卯辰:"木",巳午未:"火",申酉戌:"金",亥子丑:"水"},rn=["子午","丑未","寅申","卯酉","辰戌","巳亥"],Y=["子未","丑午","寅巳","卯辰","申亥","酉戌"],U=["子酉","丑辰","寅亥","卯午","巳申","未戌"],j=[["寅","巳","申"],["丑","戌","未"],["子","卯"]],f=["辰","午","酉","亥"],w=(me,Ce,Fe)=>me.includes(Ce+Fe)||me.includes(Fe+Ce);function ne(me,Ce){const Fe=Object.keys(O).find(G=>O[G]===Ce),sn=["year","month","day","hour"].map(G=>me[G].branch),Oe=new Set(sn),nn={};for(const G of sn)nn[G]=1;const dn=[],gn=new Set,he=(G,F,re,ve)=>{const Ve=[];for(const Q of[...G])(nn[Q]??1)>re&&(nn[Q]=re,Ve.push(Q)),gn.add(Q);Ve.length&&re<1&&dn.push(`${G}${ve}${F},${Ve.join("")}根气按${Math.round(re*10)}成计`)};for(const[G,F]of Object.entries(bn))[...G].every(re=>Oe.has(re))&&he(G,F,F===Ce?1:F===Fe?.6:.1,"三会");for(const[G,F]of Object.entries(t))[...G].every(re=>Oe.has(re))&&he(G,F,F===Ce?1:F===Fe?.6:.2,"三合");for(let G=0;G<sn.length;G++)for(let F=G+1;F<sn.length;F++){const re=sn[G],ve=sn[F],Ve=Pe[re+ve]||Pe[ve+re];if(!Ve||gn.has(re)&&gn.has(ve))continue;const Q=Ve===Ce?1:Ve===Fe?.8:.5,Ke=[];for(const De of[re,ve])gn.has(De)||(nn[De]??1)>Q&&(nn[De]=Q,Ke.push(De));Ke.length&&Q<1&&dn.push(`${re}${ve}合${Ve},${Ke.join("")}根气按${Math.round(Q*10)}成计`)}return{factor:nn,notes:dn,inJu:gn}}const te=.3;function $e(me,Ce,Fe){let sn=0;for(const Oe of["year","month","day","hour"]){const nn=me[Oe],dn=Fe[nn.branch]??1;dn<=.1||nn.hidden.forEach((gn,he)=>{y[gn.stem]===Ce&&(sn+=(Ae[he]??.1)*dn)})}return sn}function Re(me){const Ce=["year","month","day","hour"].map(G=>me[G].stem),Fe=["year","month","day","hour"].map(G=>me[G].branch),sn=[];for(let G=0;G<4;G++)for(let F=G+1;F<4;F++){const re=Ce[G],ve=Ce[F];if(re===ve)continue;const Ve=we[re+ve]||we[ve+re];if(Ve){sn.push({text:`${re}${ve}合(化${Ve}待定)`,rank:0});continue}if(w(en,re,ve)){sn.push({text:`${re}${ve}相冲`,rank:1});continue}const Q=y[re],Ke=y[ve];ie[Q]===Ke?sn.push({text:`${re}克${ve}`,rank:3}):ie[Ke]===Q&&sn.push({text:`${ve}克${re}`,rank:3})}const Oe=[],nn=new Set(Fe),dn=[];for(const[G,F]of Object.entries(t))[...G].every(re=>nn.has(re))&&(Oe.push({text:`${G}三合${F}`,rank:0}),dn.push(G));const gn=[];for(const[G,F]of Object.entries(bn))[...G].every(re=>nn.has(re))&&(Oe.push({text:`${G}三会${F}`,rank:0}),gn.push(G));for(let G=0;G<4;G++)for(let F=G+1;F<4;F++){const re=Fe[G],ve=Fe[F];if(re===ve){f.includes(re)&&Oe.push({text:`${re}${ve}自刑`,rank:2});continue}const Ve=Pe[re+ve]||Pe[ve+re],Q=Object.keys(t).find(De=>De.includes(re)&&De.includes(ve)),Ke=Object.keys(bn).find(De=>De.includes(re)&&De.includes(ve));if(Ve)Oe.push({text:`${re}${ve}合${Ve}`,rank:0});else{if(Q&&!dn.includes(Q)){const De=Q[1],Tn=re===De||ve===De?"半合":"拱合";Oe.push({text:`${re}${ve}${Tn}${t[Q]}`,rank:0})}if(Ke&&!gn.includes(Ke)){const De=Math.abs(Ke.indexOf(re)-Ke.indexOf(ve))===1;Oe.push({text:`${re}${ve}${De?"半会":"拱会"}${bn[Ke]}`,rank:0})}}w(rn,re,ve)&&Oe.push({text:`${re}${ve}相冲`,rank:1}),w(Y,re,ve)&&Oe.push({text:`${re}${ve}相害`,rank:2}),w(U,re,ve)&&Oe.push({text:`${re}${ve}相破`,rank:2});for(const De of j)De.includes(re)&&De.includes(ve)&&Oe.push({text:`${re}${ve}相刑`,rank:2})}const he=G=>{const F=new Set,re=[];for(const ve of[...G].sort((Ve,Q)=>Ve.rank-Q.rank))F.has(ve.text)||(F.add(ve.text),re.push(ve.text));return re};return{stems:he(sn),branches:he(Oe)}}function Ge(me,Ce){const Fe=y[me],sn=y[Ce],Oe=de(me)===de(Ce);return Fe===sn?Oe?"比肩":"劫财":O[Fe]===sn?Oe?"食神":"伤官":ie[Fe]===sn?Oe?"偏财":"正财":ie[sn]===Fe?Oe?"七杀":"正官":O[sn]===Fe?Oe?"偏印":"正印":"?"}function ln(me){return r(me).name}const jn={0:1,2:2,4:3,6:4,8:5,10:6,12:7,14:8,16:9,18:10,20:11,22:0};function Sn(me,Ce){const Fe=se(me),sn=h[Fe.branch];return{ganzhi:Fe.name,stem:Fe.stem,branch:Fe.branch,stemElement:y[Fe.stem],branchElement:b[Fe.branch],stemTenGod:Ce?Ge(Ce,Fe.stem):null,hidden:sn.map((Oe,nn)=>({stem:Oe,element:y[Oe],tenGod:Ce?Ge(Ce,Oe):null,role:["本气","中气","余气"][nn]??"余气"})),nayin:ln(me)}}function le(me,Ce){const Fe=P(me);if(Ce==null||Number.isNaN(Ce))return{offsetMinutes:0,jd:me,note:"未提供经度,按东八区平太阳时"};const sn=(Ce-120)*4,Oe=M(Fe.year,Fe.month,Fe.day),nn=sn+Oe;return{offsetMinutes:Math.round(nn*10)/10,jd:me+nn/1440,note:`经度差 ${sn.toFixed(1)} 分 + 均时差 ${Oe.toFixed(1)} 分`}}function Ze(me,Ce,Fe){const sn=k[me];if(!sn)return null;const Oe=[];let nn=1;for(const[ve,Ve]of sn)Oe.push({stem:ve,element:y[ve],from:nn,to:nn+Ve-1}),nn+=Ve;const dn=nn-1,gn=Math.max(1,Math.floor(Ce)-Math.floor(Fe+.5)+1),he=gn>dn,G=he?Oe.length-1:Oe.findIndex(ve=>gn>=ve.from&&gn<=ve.to),F=Oe[G]||Oe[Oe.length-1],re=Oe[G+1]||null;return{month:me,day:gn,tableDays:dn,segments:Oe,active:F.stem,activeElement:F.element,segment:{from:F.from,to:F.to},next:re?{stem:re.stem,element:re.element,from:re.from,inDays:re.from-gn}:null,inHidden:(h[me]||[]).includes(F.stem),beyond:he,note:"人元司权按「节」当日起算,节当日为第 1 日,日差用本盘所用时刻(含真太阳时)所在日计;本插件固定 30 日表(余气 → 中气 → 本气),第 31 日以后按本气算。只作解释层的一层细节,不改取格。"}}function yn(me){D(me);let{year:Ce,month:Fe,day:sn,hour:Oe=0,minute:nn=0,gender:dn="male"}=me;const gn=me.lateZi!==!1,he=me.trueSolar!==!1,G=me.dst===!1?{applied:!1,note:null}:T({year:Ce,month:Fe,day:sn,hour:Oe,minute:nn});G.applied&&(Ce=G.year,Fe=G.month,sn=G.day,Oe=G.hour,nn=G.minute);const F=B({year:Ce,month:Fe,day:sn,hour:Oe,minute:nn}),re=me.geo||(me.address?ue(me.address):null),ve=typeof me.longitude=="number"?me.longitude:re&&typeof re.lon=="number"?re.lon:void 0,Ve=he?le(F,ve):{offsetMinutes:0,jd:F,note:"未启用真太阳时"},Q=Ve.jd,Ke=z(Ce,{jieOnly:!0}),De=_(Ke,Q),Tn=E(Ke,Q),Hn=Ke.find(ae=>ae.index===2&&ae.year===Ce),Fn=Hn&&Q<Hn.jd?Ce-1:Ce,hn=((Fn-4)%60+60)%60,En=H[hn%10],Ln=jn[De.index],Qn=(H.indexOf(En)%5*2+2)%10,Zn=((Ln-2)%12+12)%12,Vn=(Qn+Zn)%10,Kn=u(Vn,Ln),Xn=Math.floor(Q+.5),nt=P(Q).hour,c=gn&&nt>=23?Xn+1:Xn,R=fe(c),l=H[R%10],S=Math.floor((nt+1)%24/2),N=(H.indexOf(l)%5*2%10+S)%10,ye=u(N,S),C={year:Sn(hn,l),month:Sn(Kn,l),day:Sn(R,l),hour:Sn(ye,l)},X=H.indexOf(En)%2===0,ce=X&&dn==="male"||!X&&dn==="female",Z=ce?Tn.jd-Q:Q-De.jd,Je=Z*4;let _e=Math.floor(Je/12),ge=Math.round(Je%12);ge>=12&&(ge-=12,_e+=1);const pe=365.2422,A=pe/3,Ee=ce?Tn:De,oe=Q+Z*A,cn=P(oe),Ie=(ae,xe)=>{const Qe=ae.year+xe;return{year:Qe,month:ae.month,day:Math.min(ae.day,p(Qe,ae.month)),hour:ae.hour,minute:ae.minute}},on=[],wn=[];for(let ae=1;ae<=8;ae++){const xe=((Kn+(ce?ae:-ae))%60+60)%60,Qe=se(xe),$n=B(Ie(cn,(ae-1)*10)),Le=B(Ie(cn,ae*10));on.push({step:ae,startAge:_e+(ae-1)*10,ganzhi:Qe.name,stem:Qe.stem,branch:Qe.branch,stemTenGod:Ge(l,Qe.stem),nayin:ln(xe),fromDate:x($n),toDate:x(Le)}),wn.push({step:ae,ganzhi:Qe.name,fromJd:$n,toJd:Le})}const J=Number(me.nowYear)||new Date().getFullYear(),Ye=[];for(let ae=J;ae<J+10;ae++){const xe=((ae-4)%60+60)%60;Ye.push({year:ae,age:ae-Fn+1,ganzhi:se(xe).name,stemTenGod:Ge(l,se(xe).stem)})}const an={木:0,火:0,土:0,金:0,水:0};for(const ae of Object.values(C))an[ae.stemElement]+=1,ae.hidden.forEach((xe,Qe)=>{an[xe.element]+=ze[Qe]??.1});for(const ae of Object.keys(an))an[ae]=Math.round(an[ae]*10)/10;const Be=Math.floor(R/10)*10,Te=[q[(Be+10)%12],q[(Be+11)%12]],je=["长生","沐浴","冠带","临官","帝旺","衰","病","死","墓","绝","胎","养"],pn={甲:11,乙:6,丙:2,丁:9,戊:2,己:9,庚:5,辛:0,壬:8,癸:3},He=ae=>H.indexOf(ae)%2===0;function mn(ae,xe){const Qe=pn[ae],$n=q.indexOf(xe),Le=He(ae)?$n-Qe:Qe-$n;return je[(Le%12+12)%12]}const fn=C.month.branch,qn=I(C,Te);for(const ae of["year","month","day","hour"]){const xe=C[ae];xe.dishi=mn(l,xe.branch),xe.zizuo=mn(xe.stem,xe.branch),xe.kongwang=g(xe.ganzhi),xe.shensha=qn.detail[ae].map(Qe=>Qe.name),xe.shenshaDetail=qn.detail[ae]}const On={寅:"木",卯:"木",巳:"火",午:"火",申:"金",酉:"金",亥:"水",子:"水",辰:"土",戌:"土",丑:"土",未:"土"},kn=y[l],Me=On[fn];let Xe,vn;kn===Me?(Xe=3,vn="旺"):O[Me]===kn?(Xe=2,vn="相"):O[kn]===Me?(Xe=1,vn="休"):ie[kn]===Me?(Xe=.5,vn="囚"):(Xe=0,vn="死");const In=ne(C,kn);let Nn=0;const Mn=[];for(const ae of["year","month","day","hour"]){const xe=C[ae],Qe=In.factor[xe.branch]??1;let $n=!1;xe.hidden.forEach((Le,un)=>{y[Le.stem]===kn?(Nn+=(Ae[un]??.1)*Qe,$n=!0):O[y[Le.stem]]===kn&&(Nn+=(Ae[un]??.1)*.4*Qe,$n=!0)}),$n&&Mn.push(xe.branch)}let _n=0;const Rn=[],Gn=[],Pn=[];for(const ae of["year","month","hour"]){const xe=C[ae].stem,Qe=y[xe];if(Qe===kn||O[Qe]===kn){const $n=Qe===kn?1:.8;$e(C,Qe,In.factor)>=te?_n+=$n:(_n+=$n*.5,Pn.push(xe)),Rn.push(xe)}else ie[Qe]===kn?(_n-=1,Gn.push(xe)):ie[kn]===Qe?(_n-=.8,Gn.push(xe)):(_n-=.5,Gn.push(xe))}const tn=Math.round((Xe+Nn+_n)*10)/10,Un=tn>=4?"身强":tn>=2.5?"偏强":tn>=1.5?"中和":tn>=.5?"偏弱":"身弱",Bn=In.notes.length?`;合会折根:${In.notes.join("、")}`:"",Jn=Pn.length?`;虚透${Pn.join("")}帮扶减半`:"",Wn={level:Un,score:tn,detail:`月令${fn}${Me},日主${kn}${vn}(${Xe});通根${Mn.join("")||"无"}(${Nn.toFixed(1)});天干帮扶${Rn.join("")||"无"}/耗泄${Gn.join("")||"无"}(${_n.toFixed(1)})${Bn}${Jn}`,method:"月令权重 3/2/1/0.5/0 + 地支藏干通根(三会/三合/六合折根)+ 天干帮扶(虚透减半),量化后分档;属简化算法,非唯一流派",parts:{season:{branch:fn,element:Me,word:vn,weight:Xe},roots:Mn,rootScore:Math.round(Nn*10)/10,helpers:Rn,drainers:Gn,helpScore:Math.round(_n*10)/10,structure:In.notes,virtualHelpers:Pn}},Dn=d({pillars:C,dayStem:l,monthBranch:fn,strength:Wn,wuxing:an}),et=(ae,xe)=>{if(!ae||!xe)return[];if(ae===xe)return f.includes(ae)?["自刑"]:[];const Qe=[];(Pe[ae+xe]||Pe[xe+ae])&&Qe.push("合"),w(rn,ae,xe)&&Qe.push("冲"),w(Y,ae,xe)&&Qe.push("害"),w(U,ae,xe)&&Qe.push("破");for(const $n of j)$n.includes(ae)&&$n.includes(xe)&&Qe.push("刑");return Qe},W=["year","month","day","hour"].map(ae=>C[ae].branch),qe=ae=>{const xe=new Set,Qe=[];for(const $n of W)for(const Le of et($n,ae)){const un=Le+$n;xe.has(un)||(xe.add(un),Qe.push(un))}return Qe};for(const ae of on)ae.relations=qe(ae.branch),ae.luck=n(ae.ganzhi,Dn);for(const ae of Ye)ae.relations=qe(ae.ganzhi[1]),ae.luck=n(ae.ganzhi,Dn);const We={year:"年柱",month:"月柱",day:"日柱",hour:"时柱"},zn=(ae,xe)=>ie[y[ae]]===y[xe],xn=(ae,xe)=>typeof ae!="string"||typeof xe!="string"||ae.length<2||xe.length<2||!(ae[0]in y)||!(xe[0]in y)?!1:(zn(ae[0],xe[0])||zn(xe[0],ae[0]))&&w(rn,ae[1],xe[1]),e=ae=>{const xe=z(ae,{jieOnly:!0}).find(Qe=>Qe.index===2&&P(Qe.jd).year===ae);return xe?xe.jd:B({year:ae,month:2,day:4})};for(const ae of Ye){const xe=e(ae.year),Qe=e(ae.year+1),$n=wn.filter(un=>un.fromJd<Qe&&un.toJd>xe),Le=[];for(const un of $n){un.ganzhi===ae.ganzhi?Le.push({type:"岁运并临",target:`第${un.step}步大运`,detail:`大运与流年同为${ae.ganzhi}`}):xn(un.ganzhi,ae.ganzhi)&&Le.push({type:"运年反吟",target:`第${un.step}步大运`,detail:`大运${un.ganzhi}与流年${ae.ganzhi}天克地冲`});for(const Cn of["year","month","day","hour"]){const tt=C[Cn].ganzhi;tt&&(un.ganzhi===tt?Le.push({type:"大运伏吟",target:`第${un.step}步大运·${We[Cn]}`,detail:`大运${un.ganzhi}与${We[Cn]}同干支`}):xn(un.ganzhi,tt)&&Le.push({type:"大运反吟",target:`第${un.step}步大运·${We[Cn]}`,detail:`大运${un.ganzhi}与${We[Cn]}${tt}天克地冲`}))}}for(const un of["year","month","day","hour"]){const Cn=C[un].ganzhi;Cn&&(ae.ganzhi===Cn?Le.push({type:"流年伏吟",target:We[un],detail:`流年${ae.ganzhi}与${We[un]}同干支`}):xn(ae.ganzhi,Cn)&&Le.push({type:"流年反吟",target:We[un],detail:`流年${ae.ganzhi}与${We[un]}${Cn}天克地冲`}))}ae.suiyun={dayun:$n.map(un=>({step:un.step,ganzhi:un.ganzhi})),signals:Le,note:"只标干支重复与天克地冲这类变动信号,不判吉凶;大运按该年立春到次年立春的区间取,交运落在年内时前后两步并列;大运与本命四柱的伏吟/反吟整步大运都在,逐年重复列出"}}const a=P(Q),s=H.indexOf(C.month.stem),i=q.indexOf(C.month.branch),m=se(u((s+1)%10,(i+3)%12)),o=H.indexOf(C.day.stem),v=q.indexOf(C.day.branch),V=se(u((o+5)%10,(1-v+12)%12)),Ne=q.indexOf(C.hour.branch),Se=H.indexOf(C.year.stem),L=((Se*12+(27-i-Ne)%12+2)%60+60)%60,ke=((Se*12+(11+i+Ne)%12+2)%60+60)%60,ee=se(L),Ue=se(ke),An=Ze(q[Ln],Xn,De.jd);return An&&(An.term={name:De.name,time:x(De.jd)}),{system:"bazi",relations:Re(C),palaces:{taiyuan:{ganzhi:m.name,note:"月干进一、月支进三"},taixi:{ganzhi:V.name,note:"日干五合、日支六合"},minggong:{ganzhi:ee.name,branch:ee.branch,note:"生月与生时支合数定宫(27 减,取模后 +2);干随六十甲子"},shengong:{ganzhi:Ue.name,branch:Ue.branch,note:"生月与生时支合数定宫(11 加,取模后 +2);干随六十甲子"}},input:{civil:{year:Ce,month:Fe,day:sn,hour:Oe,minute:nn},gender:dn,longitude:ve??null,address:me.address||null,geo:re,lateZi:gn,trueSolar:he,dst:{applied:!!G.applied,note:G.note||null}},solarTime:{civilText:`${Ce}-${String(Fe).padStart(2,"0")}-${String(sn).padStart(2,"0")} ${String(Oe).padStart(2,"0")}:${String(nn).padStart(2,"0")}`,trueSolarText:x(Q),offsetMinutes:Ve.offsetMinutes,note:G.applied?`${G.note};${Ve.note}`:Ve.note,lunarYearForPillar:Fn},jieqi:{previous:{name:De.name,time:x(De.jd)},next:{name:Tn.name,time:x(Tn.jd)},nearBoundaryMinutes:Math.round(Math.min(Q-De.jd,Tn.jd-Q)*1440)},renyuan:An,pillars:C,dayMaster:{stem:l,element:y[l],yinYang:de(l)?"阳":"阴"},wuxing:an,kongwang:Te,shensha:qn,dayun:{direction:ce?"顺行":"逆行",rule:`${X?"阳":"阴"}年${dn==="male"?"男":"女"}${ce?"顺排":"逆排"}`,startAge:{years:_e,months:ge},toNextJieDays:Math.round(Z*100)/100,jiao:{at:x(oe),jd:Math.round(oe*1e6)/1e6,scaleDaysPerDay:A,yearDays:pe,spanDays:Math.round(Z*1e4)/1e4,from:{name:Ee.name,time:x(Ee.jd)},frame:Ve.offsetMinutes?"真太阳时":"平太阳时",offsetMinutes:Ve.offsetMinutes,note:"三日折一年:出生到节令的真实间隔按 365.2422/3 放大后加到出生时刻;同一比例即「一日折四月、一时辰折十日」,每步大运在同月同日同时刻换"},list:on},strength:Wn,frame:Dn,climate:Dn.yongshen.climate||Dn.yongshen.tiaohou||null,liunian:Ye,liunianFrom:J}}return{HIDDEN_STEMS:h,RENYUAN_TABLE:k,STEM_ELEMENT:y,BRANCH_ELEMENT:b,buildRelations:Re,tenGod:Ge,nayin:ln,applyTrueSolar:le,renyuanOf:Ze,buildBazi:yn}})(),K.ziwei=(function(){const{STEMS:H,BRANCHES:q,ganzhiName:be,sexagenaryIndex:se,jdToParts:fe,partsToJd:P,formatJd:B}=K.calendar||{},{solarToLunar:u}=K.lunar||{},{applyTrueSolar:z}=K.bazi||{},{applyDst:_}=K.dst||{},{assertCivil:E}=K.validate||{},{nayinOf:M}=K.nayin||{},{resolveAddress:x}=K.geo||{},g=l=>(l%12+12)%12,ue=["命宫","兄弟","夫妻","子女","财帛","疾厄","迁移","交友","官禄","田宅","福德","父母"],I={水:{name:"水二局",number:2},木:{name:"木三局",number:3},金:{name:"金四局",number:4},土:{name:"土五局",number:5},火:{name:"火六局",number:6}};function D(l){return M(l)}const p=[{offset:0,name:"紫微"},{offset:-1,name:"天机"},{offset:-3,name:"太阳"},{offset:-4,name:"武曲"},{offset:-5,name:"天同"},{offset:-8,name:"廉贞"}],T=[{offset:0,name:"天府"},{offset:1,name:"太阴"},{offset:2,name:"贪狼"},{offset:3,name:"巨门"},{offset:4,name:"天相"},{offset:5,name:"天梁"},{offset:6,name:"七杀"},{offset:10,name:"破军"}],r={紫微:["平","庙","庙","旺","得","旺","庙","庙","旺","平","得","旺"],天机:["庙","陷","得","旺","利","平","庙","陷","得","旺","利","平"],太阳:["陷","陷","旺","庙","旺","旺","庙","得","得","平","陷","陷"],武曲:["旺","庙","得","利","庙","平","旺","庙","得","利","庙","平"],天同:["旺","陷","利","庙","平","庙","陷","陷","旺","平","平","庙"],廉贞:["平","利","庙","平","利","陷","平","利","庙","平","利","陷"],天府:["庙","庙","庙","得","庙","得","旺","庙","得","旺","庙","得"],太阴:["庙","庙","陷","陷","陷","陷","陷","陷","利","旺","旺","庙"],贪狼:["旺","庙","平","利","庙","陷","旺","庙","平","利","庙","陷"],巨门:["旺","旺","庙","庙","陷","旺","旺","旺","庙","庙","陷","旺"],天相:["庙","庙","庙","陷","得","得","庙","庙","庙","陷","得","得"],天梁:["庙","旺","庙","庙","庙","陷","庙","旺","庙","庙","庙","陷"],七杀:["旺","庙","庙","陷","庙","平","旺","庙","庙","陷","庙","平"],破军:["庙","旺","得","陷","旺","平","庙","旺","得","陷","旺","平"]},t={甲:{廉贞:"禄",破军:"权",武曲:"科",太阳:"忌"},乙:{天机:"禄",天梁:"权",紫微:"科",太阴:"忌"},丙:{天同:"禄",天机:"权",文昌:"科",廉贞:"忌"},丁:{太阴:"禄",天同:"权",天机:"科",巨门:"忌"},戊:{贪狼:"禄",太阴:"权",右弼:"科",天机:"忌"},己:{武曲:"禄",贪狼:"权",天梁:"科",文曲:"忌"},庚:{太阳:"禄",武曲:"权",太阴:"科",天同:"忌"},辛:{巨门:"禄",太阳:"权",文曲:"科",文昌:"忌"},壬:{天梁:"禄",紫微:"权",左辅:"科",武曲:"忌"},癸:{破军:"禄",巨门:"权",太阴:"科",贪狼:"忌"}},d=Object.freeze({brightnessSchool:"default",gengYearSihua:"GYWYT",tianmaSchool:"year-branch",tiankongSchool:"off",jiekongSchool:"off",kuiyueSchool:"qs1",tianshiTianshang:"normal",changshengSchool:"yin-yang-shun-ni",lateZishi:"current-day",shenzhuSchool:"common"}),n=Object.freeze({brightnessSchool:["default","QS","XD1","ZZ","XD2"],gengYearSihua:["GYWYT","GYWTY","GYWFT","GYWFX","GYWTX"],tianmaSchool:["year-branch","month-branch"],tiankongSchool:["off","normal","shun-jia-shi"],jiekongSchool:["off","double","single","zhanyan"],kuiyueSchool:["qs1","qs2","zhong-yiming","network"],tianshiTianshang:["normal","zhongzhou"],changshengSchool:["yin-yang-shun-ni","shui-tu","huo-tu"],lateZishi:["current-day","next-day","all-current","day-cur-time-next"],shenzhuSchool:["common","verse"]});function h(l={}){const S=l.schools&&typeof l.schools=="object"?l.schools:{},$={};for(const[N,ye]of Object.entries(n)){const C=l[N]!==void 0?l[N]:S[N];$[N]=ye.includes(C)?C:d[N]}return $}const k=["","庙","旺","得","利","平","不","陷"],y=["","庙","旺","平","闲","陷"],b={QS:{levels:k,rows:{紫微:[5,1,2,2,3,2,1,1,2,2,3,2],天机:[1,7,3,2,4,5,1,7,3,2,4,5],太阳:[7,6,2,1,2,2,2,3,3,5,6,7],武曲:[2,1,3,4,1,5,2,1,3,4,1,5],天同:[2,6,4,5,5,1,7,6,2,5,5,1],廉贞:[5,4,1,5,4,7,5,4,1,5,4,7],天府:[1,1,1,3,1,3,2,1,3,2,1,3],太阴:[1,1,2,7,7,7,6,6,4,2,2,1],贪狼:[2,1,5,4,1,7,2,1,5,4,1,7],巨门:[2,6,1,1,7,2,2,6,1,1,7,2],天相:[1,1,1,7,3,3,1,3,1,7,3,3],天梁:[1,2,1,1,1,3,1,2,7,3,1,7],七杀:[2,1,1,2,1,5,2,1,1,2,1,5],破军:[1,2,3,7,2,5,1,2,3,7,2,5]}},XD1:{levels:k,rows:{紫微:[5,1,1,2,3,2,1,1,2,2,3,2],天机:[1,7,3,2,4,5,1,7,3,2,4,5],太阳:[7,6,2,1,2,2,1,3,4,5,7,7],武曲:[2,1,3,4,1,5,2,1,3,4,1,5],天同:[2,6,4,1,5,1,7,6,2,5,5,1],廉贞:[5,4,1,5,4,7,5,4,1,5,4,7],天府:[1,1,1,3,2,3,2,1,3,2,2,3],太阴:[1,1,6,7,7,7,7,5,4,2,2,1],贪狼:[2,1,5,3,1,7,2,1,5,4,1,7],巨门:[2,6,1,1,5,5,2,5,1,1,5,2],天相:[1,1,1,7,5,3,3,3,1,7,3,3],天梁:[1,2,1,2,1,7,1,2,7,3,1,7],七杀:[2,1,1,2,3,5,2,1,1,2,1,5],破军:[1,2,3,7,2,5,1,2,3,7,2,5]}},ZZ:{levels:y,rows:{紫微:[3,1,1,2,5,2,1,1,2,3,4,2],天机:[1,5,2,2,1,3,1,5,3,2,1,3],太阳:[5,5,2,1,2,2,1,3,4,4,5,5],武曲:[2,1,4,5,1,3,2,1,3,2,1,3],天同:[2,5,4,1,3,1,5,5,2,3,3,1],廉贞:[3,2,1,4,2,5,3,1,1,3,2,5],天府:[1,1,1,3,1,3,2,1,3,5,1,2],太阴:[1,1,4,5,4,5,5,3,3,2,2,1],贪狼:[2,1,3,4,1,5,2,1,3,3,1,5],巨门:[2,2,1,1,3,3,2,5,1,1,2,2],天相:[1,1,1,5,2,3,2,4,1,5,4,3],天梁:[1,2,1,1,2,5,1,2,5,4,2,5],七杀:[2,1,1,5,2,3,2,2,1,4,1,3],破军:[1,2,5,2,2,4,1,1,5,5,2,3]}},XD2:{levels:y,rows:{紫微:[4,1,1,2,4,2,1,1,2,3,5,2],天机:[1,5,2,2,2,3,1,5,2,2,2,3],太阳:[5,5,2,1,2,2,1,2,3,3,5,5],武曲:[2,1,3,5,1,3,2,1,3,2,1,3],天同:[2,5,3,1,2,1,5,5,2,3,3,1],廉贞:[3,2,1,4,2,5,3,1,1,3,2,5],天府:[2,1,1,3,1,2,2,1,2,3,1,2],太阴:[1,1,5,5,5,5,5,5,2,2,1,1],贪狼:[2,1,3,2,1,5,2,1,3,2,1,5],巨门:[2,5,1,2,5,1,2,5,1,2,5,1],天相:[1,1,1,5,2,3,2,3,1,5,5,3],天梁:[1,2,1,1,2,5,1,2,5,3,2,5],七杀:[2,2,1,5,1,3,2,2,1,3,1,3],破军:[1,1,5,2,2,3,1,1,5,5,2,3]}}};function O(l,S,$="default"){const N=b[$];if(!N||!N.rows[l])return r[l]?r[l][g(S)]:void 0;const ye=N.rows[l][g(S)];return ye?N.levels[ye]:void 0}const ie={GYWYT:{太阳:"禄",武曲:"权",太阴:"科",天同:"忌"},GYWTY:{太阳:"禄",武曲:"权",天同:"科",太阴:"忌"},GYWFT:{太阳:"禄",武曲:"权",天府:"科",天同:"忌"},GYWFX:{太阳:"禄",武曲:"权",天府:"科",天相:"忌"},GYWTX:{太阳:"禄",武曲:"权",天同:"科",天相:"忌"}};function de(l,S){return l==="庚"?ie[S.gengYearSihua]||t.庚:t[l]??{}}const ze={qs2:{甲:[1,7],戊:[1,7],庚:[6,2],乙:[0,8],己:[0,8],丙:[11,9],丁:[11,9],辛:[6,2],壬:[5,3],癸:[5,3]},"zhong-yiming":{甲:[1,7],戊:[1,7],庚:[2,6],乙:[0,8],己:[0,8],丙:[11,9],丁:[11,9],辛:[2,6],壬:[5,3],癸:[5,3]},network:{甲:[1,7],戊:[1,7],庚:[1,7],乙:[0,8],己:[0,8],丙:[11,9],丁:[11,9],辛:[6,2],壬:[3,5],癸:[3,5]}},Ae={single:{甲:8,乙:6,丙:4,丁:2,戊:0,己:9,庚:7,辛:5,壬:3,癸:1},double:{甲:[8,9],乙:[7,6],丙:[4,5],丁:[3,2],戊:[0,1],己:[9,8],庚:[6,7],辛:[5,4],壬:[2,3],癸:[1,0]},zhanyan:{甲:8,乙:6,丙:4,丁:2,戊:10,己:9,庚:7,辛:5,壬:3,癸:11}},we={甲:2,乙:3,丙:5,丁:6,戊:5,己:6,庚:8,辛:9,壬:11,癸:0},en={甲:[1,7],戊:[1,7],庚:[1,7],乙:[0,8],己:[0,8],丙:[11,9],丁:[11,9],辛:[6,2],壬:[3,5],癸:[3,5]};ze.qs1=en;const Pe={子:"贪狼",丑:"巨门",寅:"禄存",卯:"文曲",辰:"廉贞",巳:"武曲",午:"破军",未:"武曲",申:"廉贞",酉:"文曲",戌:"禄存",亥:"巨门"},bn={丑:"天相",寅:"天梁",卯:"天同",辰:"文昌",巳:"天机",未:"天相",申:"天梁",酉:"天同",戌:"文昌",亥:"天机"},rn={common:{子:"火星",午:"火星",...bn},verse:{子:"铃星",午:"火星",...bn}},Y={寅午戌:[2,6,10],申子辰:[8,0,4],巳酉丑:[5,9,1],亥卯未:[11,3,7]};function U(l){const S=g(l);for(const[$,N]of Object.entries(Y))if(N.includes(S))return $;throw new Error(`三合局未匹配:${l}`)}const j={寅卯辰:[2,3,4],巳午未:[5,6,7],申酉戌:[8,9,10],亥子丑:[11,0,1]};function f(l){const S=g(l);for(const[$,N]of Object.entries(j))if(N.includes(S))return $;throw new Error(`四正未匹配:${l}`)}const w={寅午戌:1,申子辰:2,巳酉丑:3,亥卯未:9},ne={寅午戌:3,申子辰:10,巳酉丑:10,亥卯未:10},te={寅午戌:8,申子辰:2,巳酉丑:11,亥卯未:5},$e={寅午戌:3,申子辰:9,巳酉丑:6,亥卯未:0},Re={寅午戌:10,申子辰:4,巳酉丑:1,亥卯未:7},Ge={寅午戌:6,申子辰:0,巳酉丑:9,亥卯未:3},ln={寅卯辰:5,巳午未:8,申酉戌:11,亥子丑:2},jn={寅卯辰:1,巳午未:4,申酉戌:7,亥子丑:10};function Sn(l){const S=g(l);return[0,6,3,9].includes(S)?5:[2,8,5,11].includes(S)?9:1}const le={male:{寅午戌:4,申子辰:10,巳酉丑:7,亥卯未:1},female:{寅午戌:10,申子辰:4,巳酉丑:1,亥卯未:7}},Ze=["长生","沐浴","冠带","临官","帝旺","衰","病","死","墓","绝","胎","养"],yn=["博士","力士","青龙","小耗","将军","奏书","飞廉","喜神","病符","大耗","伏兵","官府"],me=["将星","攀鞍","岁驿","息神","华盖","劫煞","灾煞","天煞","指背","咸池","月煞","亡神"],Ce=["岁建","晦气","丧门","贯索","官符","小耗","大耗","龙德","白虎","天德","吊客","病符"],Fe={2:8,3:11,4:5,5:8,6:2};function sn(l,S=0){const $=l*60+S;return $>=1380||$<60?0:Math.floor(($-60)/120)+1}function Oe(l,S){let $=0,N=0;for(;;){const X=l+$;if(N=Math.floor(X/S),X%S===0)break;if($++,$>60)throw new Error("紫微定位失败")}N%=12;let ye=N-1;ye+=$%2===0?$:-$;const C=g(ye+2);return{ziwei:C,tianfu:g(4-C)}}function nn(l,S,$){const N=le[$==="female"?"female":"male"][S],ye=g(l);return $==="female"?g(N-ye)+1:g(ye-N)+1}const dn=["split","next","prev"];function gn(l){return l&&dn.includes(l.leapMonth)?l.leapMonth:l&&l.leapAsNext?"next":"split"}function he(l,S){return!l||!l.isLeap?l?l.month:0:S==="next"?l.month%12+1:S==="split"?l.day<=15?l.month:l.month%12+1:l.month}function G(l){E(l);const S=h(l),{year:$,month:N,day:ye,hour:C=0,minute:X=0,gender:ce="male"}=l,Z=l.trueSolar!==!1,Je=l.geo||(l.address?x(l.address):null),_e=typeof l.longitude=="number"?l.longitude:Je&&typeof Je.lon=="number"?Je.lon:void 0,ge=P({year:$,month:N,day:ye,hour:C,minute:X}),pe=l.dst===!1?{applied:!1,note:null}:_({year:$,month:N,day:ye,hour:C,minute:X}),A=pe.applied?P({year:pe.year,month:pe.month,day:pe.day,hour:pe.hour,minute:pe.minute}):ge,Ee=Z?z(A,_e):{offsetMinutes:0,jd:A,note:"未启用真太阳时"};let oe=fe(Ee.jd);S.lateZishi==="next-day"&&oe.hour>=23&&(oe=fe(Ee.jd+1));const cn=oe.year,Ie=oe.month,on=oe.day,wn=oe.hour,J=oe.minute,Ye=u(cn,Ie,on),an=gn(l),Be=he(Ye,an),Te=Ye.day,je=sn(wn,J),pn=q[je],He=be(((Ye.lunarYear-4)%60+60)%60),mn=He.stem,fn=q.indexOf(He.branch),qn=U(fn),On=H.indexOf(mn)%2===0,kn=On&&ce==="male"||!On&&ce==="female",Me=ze[S.kuiyueSchool]||en,Xe=g(2+(Be-1)-je),vn=g(2+(Be-1)+je),In=(H.indexOf(mn)%5*2+2)%10,Nn=(In+g(Xe-2))%10,Mn=D(se(Nn,Xe)),_n=I[Mn.element],{ziwei:Rn,tianfu:Gn}=Oe(Te,_n.number),Pn=Array.from({length:12},()=>[]),tn=(L,ke,ee)=>{const Ue=g(L),An={name:ke,type:ee};if(ee==="主星"&&r[ke]){const ae=O(ke,Ue,S.brightnessSchool);ae&&(An.brightness=ae)}Pn[Ue].push(An)};for(const L of p)tn(Rn+L.offset,L.name,"主星");for(const L of T)tn(Gn+L.offset,L.name,"主星");const Un=g(10-je),Bn=g(4+je);tn(Un,"文昌","辅星"),tn(Bn,"文曲","辅星");const Jn=g(4+(Be-1)),Wn=g(10-(Be-1));tn(Jn,"左辅","辅星"),tn(Wn,"右弼","辅星"),tn(6+je,"台辅","吉星"),tn(2+je,"封诰","吉星");const Dn=we[mn];tn(Dn,"禄存","吉星"),tn(Dn+1,"擎羊","煞星"),tn(Dn-1,"陀罗","煞星");const[et,W]=Me[mn];tn(et,"天魁","吉星"),tn(W,"天钺","吉星");const qe=g(3-fn);tn(qe,"红鸾","吉星"),tn(qe+6,"天喜","吉星"),tn(6-fn,"天哭","煞星"),tn(6+fn,"天虚","煞星"),tn(4+fn,"龙池","吉星"),tn(10-fn,"凤阁","吉星");const We=S.tianmaSchool==="month-branch"?U(g(2+(Be-1))):qn;tn(te[We],"天马","吉星"),tn($e[qn],"咸池","煞星"),tn(Re[qn],"华盖","杂曜");const zn=f(fn);if(tn(ln[zn],"孤辰","煞星"),tn(jn[zn],"寡宿","煞星"),tn(Sn(fn),"破碎","煞星"),S.tiankongSchool!=="off"&&tn(S.tiankongSchool==="shun-jia-shi"?fn+je:fn+1,"天空","杂曜"),S.jiekongSchool!=="off"){const L=Ae[S.jiekongSchool][mn];Array.isArray(L)?(tn(L[0],"截空","杂曜"),tn(L[1],"副截","杂曜")):tn(L,"截空","杂曜");const ke=((Ye.lunarYear-4)%60+60)%60,ee=ke-ke%10;tn(ee+10,"旬空","杂曜"),tn(ee+11,"副旬","杂曜")}tn(9+(Be-1),"天刑","煞星"),tn(1+(Be-1),"天姚","煞星"),tn(Jn+(Te-1),"三台","吉星"),tn(Wn-(Te-1),"八座","吉星"),tn(Un+(Te-2),"恩光","吉星"),tn(Bn+(Te-2),"天贵","吉星"),tn(w[qn]+je,"火星","煞星"),tn(ne[qn]+je,"铃星","煞星"),tn(11+je,"地劫","煞星"),tn(11-je,"地空","煞星");const xn=S.tianshiTianshang==="zhongzhou"&&!kn;tn(Xe-(xn?5:7),"天伤","杂曜"),tn(Xe-(xn?7:5),"天使","杂曜");const e=de(mn,S);for(const L of Pn)for(const ke of L)e[ke.name]&&(ke.mutagen=e[ke.name]);const a=[];for(let L=0;L<12;L++)a[g(Xe-L)]=ue[L];const s=_n.number,i=S.changshengSchool==="huo-tu"&&_n.number===5?2:Fe[_n.number],m=L=>{const ke=kn?1:-1;return{changsheng:Ze[g(ke*(L-i))],boshi:yn[g(ke*(L-Dn))],jiangqian:me[g(L-Ge[qn])],suiqi:Ce[g(L-fn)]}},o=[];for(let L=0;L<12;L++){const ke=g(Xe-L),ee=(In+g(ke-2))%10,Ue=g(kn?ke-Xe:Xe-ke),An=s+Ue*10,ae=H[ee]+q[ke],xe=t[H[ee]]??{},Qe=Pn[ke].filter($n=>xe[$n.name]).map($n=>({star:$n.name,type:xe[$n.name]}));o.push({palace:a[ke],branch:q[ke],stem:H[ee],ganzhi:ae,isSoul:ke===Xe,isBody:ke===vn,stars:Pn[ke].map($n=>({...$n})),shensha:m(ke),selfHua:Qe,daxian:{start:An,end:An+9,stem:H[ee],mutagen:Object.entries(t[H[ee]]??{}).map(([$n,Le])=>`${$n}化${Le}`)},xiaoxian:{age:nn(ke,qn,ce)},sanfang:[ke,ke+4,ke+8,ke+6].map($n=>a[g($n)])})}const v=(()=>{const L=new Set([Un,Bn]);let ke;Un===Bn?ke=`同宫于${q[Un]}`:L.has(0)&&L.has(2)?ke="夹丑(子·寅)":L.has(6)&&L.has(8)?ke="夹未(午·申)":L.has(5)&&L.has(9)?ke="丑三合(巳·酉)":L.has(11)&&L.has(3)?ke="未三合(亥·卯)":ke="与丑未无关";const ee=[Xe,g(Xe+4),g(Xe+8),g(Xe+6)],Ue=(Le,un)=>{const Cn=Pn[Le],tt=Cn.find(Yn=>Yn.name===un)||{};return{branch:q[Le],palace:a[Le],mutagen:tt.mutagen??null,sha:Cn.filter(Yn=>Yn.type==="煞星").map(Yn=>Yn.name)}},An=Ue(Un,"文昌"),ae=Ue(Bn,"文曲"),xe=[An,ae].filter(Le=>Le.mutagen==="忌").map(Le=>Le.branch),Qe=[...new Set([...An.sha,...ae.sha])],$n=xe.length?{label:"杂",reason:`昌曲化忌于${xe.join("、")}`}:Qe.length>=2?{label:"杂",reason:`昌曲两宫会煞 ${Qe.join("、")}`}:{label:"清",reason:"昌曲无化忌、不明显会煞"};return{relation:ke,inSoulSanfang:ee.includes(Un)||ee.includes(Bn),wenchang:An,wenqu:ae,absorb:$n}})(),V=new Date().getFullYear(),Ne=[];for(let L=V;L<V+12;L++){const ke=be(((L-4)%60+60)%60),ee=q.indexOf(ke.branch),Ue=we[ke.stem],An=L-Ye.lunarYear+1,ae=(An-1)%12+1,xe=o.find($n=>$n.xiaoxian.age===ae),Qe=o.find($n=>An>=$n.daxian.start&&An<=$n.daxian.end);Ne.push({year:L,ganzhi:ke.name,age:An,lifePalace:{branch:ke.branch,palace:a[ee]},doujun:q[g(ee-(Be-1)+je)],sanfang:[g(ee),g(ee+4),g(ee+8),g(ee+6)].map($n=>a[$n]),liulu:q[Ue],liuyang:q[g(Ue+1)],liutuo:q[g(Ue-1)],liukui:q[Me[ke.stem][0]],liuyue:q[Me[ke.stem][1]],mutagen:Object.entries(t[ke.stem]??{}).map(([$n,Le])=>`${$n}化${Le}`),daxian:Qe?{palace:Qe.palace,start:Qe.daxian.start,end:Qe.daxian.end}:null,xiaoxian:xe?{age:ae,palace:xe.palace}:null})}const Se={system:"ziwei",input:{year:$,month:N,day:ye,hour:C,minute:X,gender:ce,leapMonth:an,leapAsNext:an==="next",longitude:_e??null,address:l.address||null,geo:Je,trueSolar:Z,dst:{applied:!!pe.applied,note:pe.note||null},schools:{...S}},schools:{...S},solarTime:{civilText:`${$}-${String(N).padStart(2,"0")}-${String(ye).padStart(2,"0")} ${String(C).padStart(2,"0")}:${String(X).padStart(2,"0")}`,trueSolarText:B(Ee.jd),offsetMinutes:Ee.offsetMinutes,note:pe.applied?`${pe.note};${Ee.note}`:Ee.note},lunar:{year:Ye.lunarYear,month:Be,monthRaw:Ye.month,day:Te,isLeap:Ye.isLeap,leapPolicy:an,monthStart:Ye.monthStart,...Ye.isLeap?{note:an==="split"?`闰${Ye.month}月按日切分:1–15 按本月、16 起按次月;本盘闰月${Te}日按${Be}月`:an==="next"?"闰月整月按次月起盘":"闰月整月按本月起盘"}:{}},hourBranch:pn,yearGanzhi:He.name,soul:{palace:"命宫",branch:q[Xe],stem:H[Nn],ganzhi:H[Nn]+q[Xe],nayin:Mn.name},body:{palace:"身宫",branch:q[vn],lands:a[vn]},lifeMaster:Pe[q[Xe]],bodyMaster:rn[S.shenzhuSchool][q[fn]],bodyMasterSchool:S.shenzhuSchool,...fn===0||fn===6?{bodyMasterNote:S.shenzhuSchool==="common"?"子午皆火星(通行表);另有安身主诀「子午安身铃火宿」逐字取子铃星、午火星一派":"安身主诀「子午安身铃火宿」逐字:子铃星、午火星;另有子午皆火星的通行表"}:{},doujun:{zinian:q[g(je-(Be-1))],rule:"流年支起正月,逆数至生月,再起子时顺数至生时"},bureau:{name:_n.name,number:_n.number,element:Mn.element},ziwei:q[Rn],tianfu:q[Gn],changqu:v,palaces:o,liunian:Ne,daxian:{direction:kn?"顺行":"逆行",rule:`${On?"阳":"阴"}年${ce==="male"?"男":"女"}${kn?"顺行":"逆行"}`,startAge:s},xiaoxianRule:{start:le[ce==="female"?"female":"male"][qn],direction:ce==="male"?"顺行":"逆行",note:"小限一岁起宫按年支三合,男顺女逆,每宫一岁,十二年一周"},rules:{ziweiPlacement:"借数法:局数除日数取商,商数自寅宫顺行,借数奇逆偶顺",mutagen:"生年四化用中州派常用表;庚干可按流派切换(默认阳武阴同,另有同科阴忌、府科、府科相忌、同科相忌)",schools:`流派开关:亮度 ${S.brightnessSchool}、庚干四化 ${S.gengYearSihua}、天马 ${S.tianmaSchool}、天空 ${S.tiankongSchool}、截空 ${S.jiekongSchool}、魁钺 ${S.kuiyueSchool}、天伤天使 ${S.tianshiTianshang}、长生 ${S.changshengSchool}、晚子时 ${S.lateZishi}、身主 ${S.shenzhuSchool}(common 子午皆火星 / verse 子铃午火);庚干四化只作用于生年四化`,leapMonth:"闰月默认按日切分(1–15 归本月、16 起归次月,主流排盘口径);可传 leapMonth: next(整月归次月)或 prev(整月归本月),leapAsNext: true 等同 next",auxStars:"火铃按年支三合起点顺数至生时;羊陀夹禄存;魁钺按年干;地空亥起子时逆行、地劫顺行;三台八座随辅弼;恩光天贵随昌曲退一位;台辅封诰按时支",shensha:"长生、博士随大限顺逆;将前、岁前恒顺行;天伤恒在交友、天使恒在疾厄",masters:"命主按命宫地支,身主按生年地支",liunian:"流年命宫取该年地支宫;三方四正为本宫与 +4/+8/+6;并给该年所属大限与小限",flyComposite:"三方四正取本宫、对宫与两个三合宫共四宫,四宫宫干各化禄权科忌共 16 条,按落宫归堆标会聚(双忌会、禄忌同宫、三化会、自化);只描会照,不折吉凶",changqu:"昌曲落宫只由时支决定,故与丑未的关系(夹/三合/同宫/无关)是结构性结论;absorb 的「清/杂」是启发式标记,依据昌曲化忌与会煞,不是断语"}};return Se.patterns=ve(Se),Se.daxianList=hn(Se),Se.fly=Qn(Se),Se.flyChains=Vn(Se,{from:"命宫"}),Se.flyComposite=Xn(Se,{from:"命宫"}),nt(Se),Se.flow=R(Se,l.asOf),Se.patternSummary={count:Se.patterns.length,good:Se.patterns.filter(L=>L.tone==="good").map(L=>L.name),neutral:Se.patterns.filter(L=>L.tone==="neutral").map(L=>L.name),bad:Se.patterns.filter(L=>L.tone==="bad").map(L=>L.name),broken:Se.patterns.filter(L=>L.status==="broken").map(L=>L.name),formed:Se.patterns.filter(L=>L.status==="formed").map(L=>L.name),notGraded:Se.patterns.filter(L=>L.status==="n/a").map(L=>L.name),note:"格局只描述结构,不作吉凶断语;同一命盘可并存吉格、中性结构与忌格。破格只判吉格是否被三方四正的煞忌空劫冲破,忌格不另判破格"},Se}function F(l,S){const $=l.palaces.find(N=>N.stars.some(ye=>ye.name===S));return $?q.indexOf($.branch):-1}function re(l,S){const $=g(S);return l.palaces.find(N=>q.indexOf(N.branch)===$)}function ve(l){const S=l.palaces.find(Me=>Me.isSoul),$=q.indexOf(S.branch),N=[$,g($+4),g($+8),g($+6)],C=(Me=>new Set(Me.flatMap(Xe=>re(l,Xe)?.stars.map(vn=>vn.name)??[])))(N),X=S.stars.filter(Me=>Me.type==="主星").map(Me=>Me.name),ce=[],Z=(Me,Xe)=>ce.push({name:Me,evidence:Xe});X.length===0&&Z("命无正曜","命宫无十四主星,需借对宫安星"),X.some(Me=>["七杀","破军","贪狼"].includes(Me))&&Z("杀破狼",`命宫坐 ${X.filter(Me=>["七杀","破军","贪狼"].includes(Me)).join("、")}`);const Je=["天机","太阴","天同","天梁"];Je.every(Me=>C.has(Me))&&X.some(Me=>Je.includes(Me))&&Z("机月同梁","命宫三方四正会齐天机、太阴、天同、天梁"),$===11&&F(l,"太阴")===11&&Z("月朗天门","太阴在亥守命"),$===3&&F(l,"太阳")===3&&Z("日出扶桑","太阳在卯守命"),C.has("天府")&&C.has("天相")&&Z("府相朝垣","命宫三方四正见天府、天相");const _e=F(l,"禄存"),ge=F(l,"天马");_e>=0&&ge>=0&&(_e===ge||g(_e-ge)===6)&&Z("禄马交驰",`禄存在${q[_e]},天马在${q[ge]}`);const pe=F(l,"火星"),A=F(l,"铃星");g($-1)===pe&&g($+1)===A&&Z("火铃夹命","火星在命宫前一宫、铃星在后一宫夹命"),g($-1)===A&&g($+1)===pe&&Z("火铃夹命","铃星与火星夹命");const Ee=l.palaces.find(Me=>Me.stars.some(Xe=>Xe.mutagen==="忌"));Ee&&_e>=0&&q.indexOf(Ee.branch)===_e&&Z("羊陀夹忌",`化忌与禄存在${Ee.branch}同宫,擎羊陀罗夹之`);const oe=["铃星","文昌","陀罗","武曲"].map(Me=>F(l,Me));oe.every(Me=>Me>=0)&&oe.every(Me=>N.includes(g(Me)))&&Z("铃昌陀武",`铃${q[oe[0]]}·昌${q[oe[1]]}·陀${q[oe[2]]}·武${q[oe[3]]} 会于命宫(${q[$]})三方四正`);const cn=l.palaces.find(Me=>Me.stars.some(Xe=>Xe.mutagen==="禄"));if(cn&&_e>=0){const Me=q.indexOf(cn.branch);(Me===_e||g(Me-_e)===6)&&Z("双禄交流",`禄存在${q[_e]},化禄在${cn.branch}`)}const Ie=Me=>S.stars.some(Xe=>Xe.name===Me),on=Me=>C.has(Me),wn=(Me,Xe)=>{const vn=F(l,Me),In=F(l,Xe);return vn<0||In<0?!1:g(vn+1)===$&&g(In-1)===$||g(In+1)===$&&g(vn-1)===$},J=Me=>{const Xe=new Set;for(const vn of Me)for(const In of re(l,vn)?.stars??[])In.mutagen&&Xe.add(In.mutagen);return Xe};if(Ie("紫微")&&Ie("天府")&&Z("紫府同宫","紫微、天府同守命宫"),on("紫微")&&on("天府")&&Z("紫府朝垣","命宫三方四正会紫微、天府"),(Ie("紫微")||Ie("天府"))&&["左辅","右弼","天魁","天钺"].filter(on).length>=2){const Me=["左辅","右弼","天魁","天钺"].filter(on);Z("君臣庆会",`紫微/天府坐命,三方会${Me.join("、")}`)}$===6&&F(l,"紫微")===6&&Z("极向离明","紫微在午守命"),($===0||$===6)&&Ie("七杀")&&Z("七杀朝斗",`七杀在${q[$]}守命`),($===0||$===6)&&Ie("破军")&&Z("英星入庙",`破军在${q[$]}守命`),($===0||$===6)&&Ie("巨门")&&Z("石中隐玉",`巨门在${q[$]}守命`),F(l,"巨门")>=0&&F(l,"巨门")===F(l,"太阳")&&Z("巨日同宫",`巨门太阳同宫于${q[F(l,"巨门")]}`),wn("太阳","太阴")&&Z("日月夹命","太阳、太阴夹命宫"),F(l,"太阳")>=0&&F(l,"太阴")>=0&&g(F(l,"太阳")-F(l,"太阴"))===6&&Z("日月对照",`太阳在${q[F(l,"太阳")]},太阴在${q[F(l,"太阴")]},隔宫对照`),wn("左辅","右弼")&&Z("左右夹命","左辅、右弼夹命宫"),wn("文昌","文曲")&&Z("昌曲夹命","文昌、文曲夹命宫"),wn("天魁","天钺")&&Z("魁钺夹命","天魁、天钺夹命宫"),wn("擎羊","陀罗")&&Z("羊陀夹命",`禄存在${q[$]}守命,擎羊陀罗前后夹之`);const Ye=J(N);Ye.has("禄")&&Ye.has("权")&&Ye.has("科")&&Z("三奇嘉会","化禄、化权、化科会于命宫三方四正"),["禄存","化禄"].filter(Me=>Me==="禄存"?on(Me):Ye.has("禄")).length===2&&Z("双禄朝垣","禄存与化禄同会命宫三方四正"),C.has("地空")&&C.has("地劫")&&(Ie("地空")||Ie("地劫"))&&Z("命里逢空","地空、地劫会命"),$===6&&F(l,"擎羊")===6&&Z("马头带箭","擎羊在午守命"),($===4||$===10)&&Z("天罗地网",`命宫在${q[$]},辰戌为天罗地网`);const Be=F(l,"廉贞"),Te=F(l,"天相"),je=F(l,"擎羊");Be>=0&&Te>=0&&je>=0&&Be===Te&&je===Te&&Te===$&&(Te===0||Te===6)&&Z("刑囚夹印",`廉贞天相同守命宫${q[Te]},擎羊同宫`),C.has("贪狼")&&(C.has("火星")||C.has("铃星"))&&Z("火贪铃贪",`贪狼与${C.has("火星")?"火星":"铃星"}会于命宫三方四正`),F(l,"武曲")>=0&&F(l,"武曲")===F(l,"贪狼")&&Z("武贪同行",`武曲贪狼同宫于${q[F(l,"武曲")]}`),$===0&&Ie("贪狼")&&Z("泛水桃花","贪狼在子守命");const pn=new Set,He=new Map;for(const Me of N)for(const Xe of re(l,Me)?.stars??[])He.has(Xe.name)||He.set(Xe.name,{branch:q[Me],mutagen:Xe.mutagen||null});const mn=[...He.keys()],fn=Me=>Me.filter(Xe=>He.has(Xe)),qn=Me=>Me.map(Xe=>`${Xe}(${He.get(Xe).branch})`).join("、"),On=mn.filter(Me=>He.get(Me).mutagen==="忌"),kn=Me=>{const Xe=Hn[Me];if(!Xe)return{status:"n/a",breaks:[],breakRule:"未收录破格条件",citationIds:[]};if(Xe.kind)return{status:"n/a",breaks:[],breakRule:Xe.note,citationIds:[]};const vn=[];for(const In of Xe.breakers||[])if(In==="sha"){const Nn=fn(Ve).filter(Mn=>!(Xe.exclude||[]).includes(Mn));Nn.length&&vn.push(`三方见煞星 ${qn(Nn)}`)}else if(In==="kong"){const Nn=fn(Q);Nn.length&&vn.push(`三方见空劫 ${qn(Nn)}`)}else if(In==="ji")On.length&&vn.push(`三方见化忌 ${qn(On)}`);else if(In==="yangTuo"){const Nn=fn(["擎羊","陀罗"]);Nn.length&&vn.push(`羊陀冲守 ${qn(Nn)}`)}else if(In==="tuo")He.has("陀罗")&&vn.push(`陀罗同会(${He.get("陀罗").branch})`);else if(In==="noKelu"){const Nn=mn.some(_n=>He.get(_n).mutagen==="科"),Mn=mn.some(_n=>He.get(_n).mutagen==="禄")||He.has("禄存");!Nn&&!Mn&&vn.push("三方无化科、化禄或禄存照")}else if(In.startsWith("starJi:")){const Nn=In.slice(7),Mn=He.get(Nn);Mn?.mutagen==="忌"&&vn.push(`${Nn}化忌(${Mn.branch})`)}return{status:vn.length?"broken":"formed",breaks:vn,breakRule:Xe.rule||"",citationIds:Xe.citationIds||[]}};return ce.filter(Me=>pn.has(Me.name)?!1:(pn.add(Me.name),!0)).map(Me=>({...Me,tone:Fn[Me.name]||"neutral",...kn(Me.name)}))}const Ve=["擎羊","陀罗","火星","铃星"],Q=["地空","地劫"],Ke="命宫三方四正见煞星(擎羊、陀罗、火星、铃星)、地空地劫或化忌,吉格减色乃至不成格。",De="这是结构标签,不是吉格,不判成格/破格。",Tn="忌格本身就是风险结构,不再判「破格」;轻重与应期另看大限流年。",Hn={紫府同宫:{breakers:["kong","starJi:紫微","starJi:天府"],rule:Ke,citationIds:["zw-poge-sanfang","zw-poge-ruge"]},紫府朝垣:{breakers:["sha","kong","ji"],rule:Ke,citationIds:["zw-poge-sanfang","zw-poge-ruge"]},君臣庆会:{breakers:["sha","kong","ji"],rule:Ke,citationIds:["zw-poge-sanfang","zw-poge-ruge"]},极向离明:{breakers:["sha","kong","ji"],rule:Ke,citationIds:["zw-poge-sanfang","zw-poge-ruge"]},七杀朝斗:{breakers:["kong","starJi:七杀"],rule:"七杀在子午守命而见空劫或七杀化忌,杀曜之威不聚。",citationIds:["zw-poge-ruge"]},英星入庙:{breakers:["kong","starJi:破军"],rule:"破军在子午守命而见空劫或破军化忌,英星入庙减色。",citationIds:["zw-poge-ruge"]},石中隐玉:{breakers:["noKelu","kong","starJi:巨门"],rule:"三方无化科、化禄或禄存照,或见空劫、巨门化忌,则石中隐玉不成立。",citationIds:["zw-shiyin","zw-poge-ruge"]},巨日同宫:{breakers:["sha","kong","ji"],rule:"巨日同宫而三方见擎羊等煞星、空劫或化忌,光明被掩。",citationIds:["zw-poge-sanfang","zw-jiju-poge"]},日月夹命:{breakers:["yangTuo","starJi:太阳","starJi:太阴"],rule:"羊陀冲守,或日月任一带化忌,夹局减色。",citationIds:["zw-riyue-jia"]},日月对照:{breakers:["sha","kong","starJi:太阳","starJi:太阴"],rule:"日月对照见煞空,或日月任一带化忌,对照不美。",citationIds:["zw-riyue-jia","zw-poge-sanfang"]},左右夹命:{breakers:["kong","ji"],rule:"命宫三方见空劫或化忌,辅弼之夹被冲。",citationIds:["zw-poge-sanfang"]},昌曲夹命:{breakers:["sha","kong"],rule:"三方见羊陀火铃空劫,昌曲夹命亦主虚誉。",citationIds:["zw-changqu"]},魁钺夹命:{breakers:["sha","kong"],rule:"魁钺夹命而三方杀凑,贵气减等。",citationIds:["zw-kuiyue"]},三奇嘉会:{breakers:["sha","ji"],rule:"三奇同会而兼四杀或化忌,发财功名亦多阻滞。",citationIds:["zw-sihua-ji"]},双禄朝垣:{breakers:["kong","ji"],rule:"双禄朝垣见空劫或化忌,禄被劫夺。",citationIds:["zw-poge-sanfang"]},府相朝垣:{breakers:["sha","kong","ji"],rule:Ke,citationIds:["zw-poge-sanfang","zw-poge-ruge"]},禄马交驰:{breakers:["kong","sha"],rule:"禄马逢空为死马、遇陀罗为折足马,见刑杀亦减力。",citationIds:["zw-luma"]},月朗天门:{breakers:["kong","starJi:太阴"],rule:"太阴在亥守命而见空劫或太阴化忌,月被云遮。",citationIds:["zw-poge-ruge"]},日出扶桑:{breakers:["kong","starJi:太阳"],rule:"太阳在卯守命而见空劫或太阳化忌,日出扶桑减色。",citationIds:["zw-poge-ruge"]},机月同梁:{breakers:["sha","kong","ji"],rule:"机月同梁遇凶杀、空劫或化忌,则降为下格。",citationIds:["zw-jiyue"]},武贪同行:{breakers:["starJi:武曲","starJi:贪狼"],rule:"武贪同行须无化忌;任一颗化忌则作下格论。",citationIds:["zw-tanwu"]},双禄交流:{breakers:["kong","ji"],rule:"双禄交流见空劫或化忌,禄来难守。",citationIds:["zw-poge-sanfang"]},火贪铃贪:{breakers:["sha","kong","starJi:贪狼"],exclude:["火星","铃星"],rule:"三方有凶杀或空劫,火贪铃贪不发;贪狼化忌亦减力。",citationIds:["zw-huotan"]},命无正曜:{kind:"structural",note:De},杀破狼:{kind:"structural",note:De},火铃夹命:{kind:"inauspicious",note:Tn},羊陀夹命:{kind:"inauspicious",note:Tn},羊陀夹忌:{kind:"inauspicious",note:Tn},铃昌陀武:{kind:"inauspicious",note:Tn},命里逢空:{kind:"inauspicious",note:Tn},马头带箭:{kind:"inauspicious",note:Tn},天罗地网:{kind:"inauspicious",note:Tn},刑囚夹印:{kind:"inauspicious",note:Tn},泛水桃花:{kind:"inauspicious",note:Tn}},Fn={紫府同宫:"good",紫府朝垣:"good",君臣庆会:"good",极向离明:"good",七杀朝斗:"good",英星入庙:"good",石中隐玉:"good",巨日同宫:"good",日月夹命:"good",日月对照:"good",左右夹命:"good",昌曲夹命:"good",魁钺夹命:"good",三奇嘉会:"good",双禄朝垣:"good",府相朝垣:"good",禄马交驰:"good",月朗天门:"good",日出扶桑:"good",机月同梁:"good",武贪同行:"neutral",命无正曜:"neutral",杀破狼:"neutral",双禄交流:"neutral",火贪铃贪:"neutral",火铃夹命:"bad",羊陀夹命:"bad",羊陀夹忌:"bad",铃昌陀武:"bad",命里逢空:"bad",马头带箭:"bad",天罗地网:"bad",刑囚夹印:"bad",泛水桃花:"bad"};function hn(l){const S=$=>{const N=new Set;for(const ye of $){const C=l.palaces.find(X=>X.palace===ye);for(const X of C?.stars??[])X.type==="主星"&&N.add(X.name)}return[...N]};return l.palaces.map($=>({palace:$.palace,branch:$.branch,stem:$.stem,ganzhi:$.ganzhi,ages:[$.daxian.start,$.daxian.end],mutagen:$.daxian.mutagen,selfHua:$.selfHua,sanfang:$.sanfang,mainStars:S($.sanfang),mutagenHits:Object.entries(t[$.stem]??{}).map(([N,ye])=>{const C=F(l,N);return{star:N,type:ye,branch:C>=0?q[C]:null,palace:C>=0?l.palaces.find(X=>X.branch===q[C])?.palace??null:null}})})).sort(($,N)=>$.ages[0]-N.ages[0])}const En=["禄","权","科","忌"];function Ln(l,S){const $=t[l];if(!$)return null;for(const[N,ye]of Object.entries($))if(ye===S)return N;return null}function Qn(l){const S=l.palaces||[];return S.map($=>({palace:$.palace,branch:$.branch,stem:$.stem,flies:En.map(N=>{const ye=Ln($.stem,N),C=ye?F(l,ye):-1,X=C>=0?S.find(ce=>ce.branch===q[C]):null;return{type:N,star:ye,to:X?X.palace:null,toBranch:X?X.branch:null,self:!!(X&&X.palace===$.palace)}})}))}function Zn(l,{from:S="命宫",type:$="忌",maxSteps:N=12}={}){const ye=l.palaces||[],C=ye.find(_e=>_e.palace===S)||ye[0];if(!C)return null;const X=[],ce=new Set([C.palace]);let Z=C,Je="max";for(let _e=0;_e<Math.max(1,N);_e++){const ge=Ln(Z.stem,$);if(!ge){Je="no-star";break}const pe=F(l,ge);if(pe<0){Je="off-chart";break}const A=ye.find(Ee=>Ee.branch===q[pe]);if(X.push({from:Z.palace,fromBranch:Z.branch,fromStem:Z.stem,star:ge,type:$,to:A.palace,toBranch:A.branch}),ce.has(A.palace)){Je="cycle";break}ce.add(A.palace),Z=A}return{from:C.palace,type:$,steps:X,path:[C.palace,...X.map(_e=>_e.to)],ended:Je,closed:Je==="cycle"}}function Vn(l,{from:S="命宫",maxSteps:$=12}={}){const N={};for(const ye of En)N[ye]=Zn(l,{from:S,type:ye,maxSteps:$});return N}const Kn=l=>`${l}${String(l).endsWith("宫")?"":"宫"}`;function Xn(l,{from:S="命宫"}={}){const $=l.palaces||[],N=$.find(pe=>pe.palace===S)||$[0];if(!N)return null;const ye=Array.isArray(N.sanfang)&&N.sanfang.length?[...new Set(N.sanfang)].slice(0,4):[N.palace],C=[];for(const pe of ye){const A=$.find(Ee=>Ee.palace===pe);A&&C.push({palace:A.palace,branch:A.branch,stem:A.stem,flies:En.map(Ee=>{const oe=Ln(A.stem,Ee),cn=oe?F(l,oe):-1,Ie=cn>=0?$.find(on=>on.branch===q[cn]):null;return{type:Ee,star:oe,to:Ie?Ie.palace:null,toBranch:Ie?Ie.branch:null,self:!!(Ie&&Ie.palace===A.palace)}})})}const X=[];for(const pe of $){const A=[];for(const Ee of C)for(const oe of Ee.flies)oe.to===pe.palace&&A.push({from:Ee.palace,fromBranch:Ee.branch,fromStem:Ee.stem,type:oe.type,star:oe.star,self:oe.self});A.length&&X.push({palace:pe.palace,branch:pe.branch,incoming:A,types:[...new Set(A.map(Ee=>Ee.type))],count:A.length})}X.sort((pe,A)=>A.count-pe.count||q.indexOf(pe.branch)-q.indexOf(A.branch));const ce=pe=>pe.incoming.filter(A=>A.type==="忌").length,Z={doubleJi:X.filter(pe=>ce(pe)>=2),luJi:X.filter(pe=>pe.types.includes("禄")&&pe.types.includes("忌")),tripleHua:X.filter(pe=>pe.types.length>=3),selfHua:X.filter(pe=>pe.incoming.some(A=>A.self))},Je=[];for(const pe of Z.doubleJi)Je.push(`${["","","双忌","三忌","四忌"][ce(pe)]||`${ce(pe)}忌`}会${Kn(pe.palace)}`);for(const pe of Z.luJi)Je.push(`禄忌同宫${Kn(pe.palace)}`);const _e={3:"三化会",4:"四化会"};for(const pe of Z.tripleHua)Je.push(`${_e[pe.types.length]||`${pe.types.length}化会`}${Kn(pe.palace)}`);for(const pe of Z.selfHua)Je.push(`${Kn(pe.palace)}自化`);const ge={};for(const pe of En)ge[pe]=C.map(A=>{const Ee=A.flies.find(oe=>oe.type===pe);return Ee&&Ee.to?{from:A.palace,star:Ee.star,to:Ee.to,self:Ee.self}:null}).filter(Boolean);return{from:N.palace,sanfang:C.map(pe=>pe.palace),sources:C,targets:X,groups:Z,byType:ge,labels:Je,note:"三方四正取本宫、对宫与两个三合宫共四宫,四宫宫干各化禄权科忌共 16 条飞化,按落宫归堆;只在落宫相同(会照)时标会聚,单条飞出不另立标签。只描会照与方向,不折吉凶,也未叠大限流年四化。"}}function nt(l){for(const S of l.liunian){const $=S.ganzhi[0];S.mutagenHits=Object.entries(t[$]??{}).map(([N,ye])=>{const C=F(l,N);return{star:N,type:ye,branch:C>=0?q[C]:null,palace:C>=0?l.palaces.find(X=>X.branch===q[C])?.palace??null:null}}),S.sanfangMainStars=[...new Set(S.sanfang.flatMap(N=>(l.palaces.find(C=>C.palace===N)?.stars??[]).filter(C=>C.type==="主星").map(C=>C.name)))]}return l.liunian}function c(l){if(!l)return null;if(typeof l=="object")return l;const S=String(l).match(/^(\d{4})-(\d{1,2})-(\d{1,2})(?:[T ](\d{1,2}):(\d{1,2}))?$/);return S?{year:Number(S[1]),month:Number(S[2]),day:Number(S[3]),hour:S[4]===void 0?12:Number(S[4]),minute:S[5]===void 0?0:Number(S[5])}:null}function R(l,S){const $=new Date,N=c(S)||{},ye=N.year||$.getFullYear(),C=N.month||$.getMonth()+1,X=N.day||$.getDate(),ce=N.hour===void 0?$.getHours():N.hour,Z=N.minute===void 0?$.getMinutes():N.minute,Je=u(ye,C,X),_e=l.lunar.month,ge=q.indexOf(l.hourBranch),pe=sn(ce,Z),A=be(((Je.lunarYear-4)%60+60)%60),Ee=q.indexOf(A.branch),oe=g(Ee-(_e-1)+ge),cn=g(oe+(Je.month-1)),Ie=g(cn+(Je.day-1)),on=g(Ie+pe),wn=Ye=>{const an=q[Ye],Be=l.palaces.find(fn=>fn.branch===an),Te=Be?Be.stem:null,je=Te?Object.entries(t[Te]??{}).map(([fn,qn])=>{const On=F(l,fn);return{star:fn,type:qn,branch:On>=0?q[On]:null,palace:On>=0?l.palaces.find(kn=>kn.branch===q[On])?.palace??null:null}}):[],pn=[Ye,g(Ye+4),g(Ye+8),g(Ye+6)],He=pn.map(fn=>l.palaces.find(qn=>qn.branch===q[fn])?.palace??null),mn=[...new Set(pn.flatMap(fn=>(l.palaces.find(On=>On.branch===q[fn])?.stars??[]).filter(On=>On.type==="主星").map(On=>On.name)))];return{branch:an,palace:Be?Be.palace:null,stem:Te,ganzhi:Be?Be.ganzhi:null,mutagenHits:je,sanfang:He,sanfangMainStars:mn}},J=Ye=>String(Ye).padStart(2,"0");return{asOf:{solar:`${ye}-${J(C)}-${J(X)} ${J(ce)}:${J(Z)}`,lunar:`${Je.lunarYear}年${Je.isLeap?"闰":""}${Je.month}月${Je.day}日${q[pe]}时`,yearGanzhi:A.name,hourBranch:q[pe]},year:{...wn(Ee),doujun:q[oe]},month:{index:Je.month,...wn(cn)},day:{index:Je.day,...wn(Ie)},hour:{hourIndex:pe,...wn(on)},rules:"流月命宫自流年斗君(该年支起正月逆数至生月,再起子时顺数至生时)起正月,顺行至该农历月;流日自流月命宫起初一,顺行至该农历日;流时自流日命宫起子时,顺行至该时辰;四化取落点宫的原局宫干"}}return{PALACE_NAMES:ue,BRIGHTNESS:r,MUTAGEN:t,ZIWEI_SCHOOL_DEFAULTS:d,ZIWEI_SCHOOL_OPTIONS:n,ziweiSchoolsOf:h,BRIGHTNESS_SCHOOLS:b,schoolBrightness:O,KUI_YUE_SCHOOLS:ze,LUCUN:we,KUI_YUE:en,MING_ZHU:Pe,SHEN_ZHU:rn,triadOf:U,HUO_START:w,LING_START:ne,TIANMA:te,XIANCHI:$e,HUAGAI:Re,JIANGXING:Ge,GUCHEN:ln,GUASU:jn,posuIndex:Sn,XIAOXIAN_START:le,CHANGSHENG_NAMES:Ze,BOSHI_NAMES:yn,JIANGQIAN_NAMES:me,SUIQI_NAMES:Ce,CHANGSHENG_START:Fe,hourBranchIndex:sn,ziweiTianfuIndex:Oe,xiaoxianAge:nn,LEAP_POLICIES:dn,leapPolicyOf:gn,effectiveLunarMonth:he,buildZiwei:G,detectPatterns:ve,PATTERN_BREAK_RULES:Hn,PATTERN_TONE:Fn,daxianList:hn,FLY_TYPES:En,flyStarOf:Ln,flyStars:Qn,flyChain:Zn,flyChains:Vn,flyComposite:Xn,enrichLiunian:nt,asOfParts:c,flowOf:R}})(),K.hepan=(function(){const{buildBazi:H,tenGod:q}=K.bazi||{},{STEMS:be,BRANCHES:se}=K.calendar||{},{assertCivil:fe}=K.validate||{},{SANHE_GROUPS:P}=K.sanhe||{},B={甲:"木",乙:"木",丙:"火",丁:"火",戊:"土",己:"土",庚:"金",辛:"金",壬:"水",癸:"水"},u={子:"水",丑:"土",寅:"木",卯:"木",辰:"土",巳:"火",午:"火",未:"土",申:"金",酉:"金",戌:"土",亥:"水"},z={木:"火",火:"土",土:"金",金:"水",水:"木"},_={木:"土",土:"水",水:"火",火:"金",金:"木"},E=[["子","丑"],["寅","亥"],["卯","戌"],["辰","酉"],["巳","申"],["午","未"]],M=[["子","午"],["丑","未"],["寅","申"],["卯","酉"],["辰","戌"],["巳","亥"]],x=[["子","未"],["丑","午"],["寅","巳"],["卯","辰"],["申","亥"],["酉","戌"]],g=[["子","酉"],["卯","午"],["辰","丑"],["未","戌"],["寅","亥"],["巳","申"]],ue=[["寅","巳","申"],["丑","戌","未"],["子","卯"]],I=(d,n,h)=>d.some(k=>k.includes(n)&&k.includes(h)&&n!==h);function D(d,n){if(d===n)return{name:"同支",score:0,text:"日支相同,性情相近,容易互相理解,也容易同时卡在同一处"};if(I(E,d,n))return{name:"六合",score:20,text:"日支六合,相处自然、彼此补位"};if(P.some(h=>h.branches.includes(d)&&h.branches.includes(n)))return{name:"半合",score:14,text:"日支同属三合局,易有共同语言"};if(I(M,d,n))return{name:"相冲",score:-15,text:"日支相冲,节奏与需求容易错位,需要刻意协调"};if(I(ue,d,n)){for(const h of ue)if(h.includes(d)&&h.includes(n))return{name:"相刑",score:-10,text:"日支相刑,摩擦多起于细节,宜少用指责"}}return I(x,d,n)?{name:"相害",score:-9,text:"日支相害,容易因第三方或误解生嫌隙"}:I(g,d,n)?{name:"相破",score:-5,text:"日支相破,小事易起波澜"}:{name:"无直接关系",score:4,text:"日支之间没有直接刑冲合害,关系好坏主要看经营"}}function p(d,n){return d===n?{name:"比和",score:13,text:"两人日主同五行,气味相投,也容易一起犯同样的毛病"}:z[d]===n?{name:"生我",score:20,text:"对方五行生我,容易得到照顾与助力"}:z[n]===d?{name:"我生",score:10,text:"我生对方,多为付出的一方,久了要留意消耗"}:_[n]===d?{name:"我克",score:5,text:"我克对方,主导感较强,需留意对方的空间"}:{name:"克我",score:-12,text:"对方克我,压力感偏重,宜把话说开"}}function T(d,n){if(d===n)return{name:"同属相(自刑之一)",score:-3,text:"属相相同,传统称「自刑」,容易互相较劲、谁也不让谁"};if(I(E,d,n))return{name:"六合",score:3,text:"属相六合,初印象与长辈缘通常不错"};if(P.some(h=>h.branches.includes(d)&&h.branches.includes(n)))return{name:"三合",score:3,text:"属相三合,容易有共同话题与共同朋友"};if(I(M,d,n))return{name:"六冲",score:-3,text:"属相六冲,节奏与立场容易相反,重大决定前宜多对一遍"};if(I(x,d,n))return{name:"相害",score:-2,text:"属相相害,容易因第三方或误会生嫌隙"};for(const h of ue)if(h.includes(d)&&h.includes(n))return{name:"相刑",score:-2,text:"属相相刑,摩擦多起于相处细节"};return{name:"无直接关系",score:0,text:"属相之间没有合冲刑害,表层影响小,以日柱为主"}}function r(d){const n=de=>{const ze=de&&de.score||{};return{total:typeof ze.total=="number"?ze.total:null,level:ze.level||"",dimensions:(Array.isArray(de&&de.dimensions)?de.dimensions:[]).map(Ae=>({key:Ae.key,label:Ae.label,score:typeof Ae.score=="number"?Ae.score:0}))}},h=d.map(de=>({key:de.key,a:de.a,b:de.b,...n(de.result)})),k=h.filter(de=>typeof de.total=="number").sort((de,ze)=>ze.total-de.total),y=k[0]||null,b=k[k.length-1]||null;let O=null;const ie=h[0]?h[0].dimensions.map(de=>de.key):[];for(const de of ie){const ze=h.map(en=>en.dimensions.find(Pe=>Pe.key===de)||{}),Ae=ze.map(en=>typeof en.score=="number"?en.score:0),we=Math.max(...Ae)-Math.min(...Ae);(!O||we>O.spread)&&(O={key:de,label:ze[0]&&ze[0].label||de,spread:we})}return{pairs:h,best:y?{key:y.key,a:y.a,b:y.b,total:y.total,level:y.level}:null,hardest:b&&b!==y?{key:b.key,a:b.a,b:b.b,total:b.total,level:b.level}:null,spread:y&&b?y.total-b.total:0,focus:O,note:"三方只把三对两两关系并列,不合成「三人总分」:和不同的人相处是不同的事,合成一个数会把差异抹平。"}}function t(d){fe(d&&d.a,"a"),fe(d&&d.b,"b");const n=H({...d.a,gender:d.a.gender}),h=H({...d.b,gender:d.b.gender}),k=n.pillars.day.stem,y=h.pillars.day.stem,b=B[k],O=B[y],ie=n.pillars.day.branch,de=h.pillars.day.branch,ze=p(O,b),Ae=p(b,O),we=(ze.score+Ae.score)/2,en=D(ie,de),Pe=(n.frame&&n.frame.yongshen?n.frame.yongshen.favor:[]).slice(),bn=(h.frame&&h.frame.yongshen?h.frame.yongshen.favor:[]).slice(),rn=hn=>{const En={};for(const Ln of["year","month","day","hour"])En[B[hn.pillars[Ln].stem]]=(En[B[hn.pillars[Ln].stem]]||0)+1,En[u[hn.pillars[Ln].branch]]=(En[u[hn.pillars[Ln].branch]]||0)+1;return En},Y=rn(n),U=rn(h),j=hn=>Object.entries(hn).sort((En,Ln)=>Ln[1]-En[1])[0]||["",0],[f]=j(Y),[w]=j(U),ne=Pe.includes(w),te=bn.includes(f);let $e=0;const Re=[];ne&&($e+=12,Re.push(`对方的旺行 ${w} 正是你的喜用`)),te&&($e+=12,Re.push(`你的旺行 ${f} 正是对方的喜用`)),!ne&&!te&&($e+=3,Re.push("双方的旺行都不是对方的喜用,互补性一般,靠沟通补"));const Ge=["木","火","土","金","水"].filter(hn=>!Y[hn]),ln=["木","火","土","金","水"].filter(hn=>!U[hn]);Ge.includes(w)&&($e+=4,Re.push(`你命局缺 ${w},对方正好偏旺`)),ln.includes(f)&&($e+=4,Re.push(`对方命局缺 ${f},你正好偏旺`));const jn=we+en.score+$e,Sn=Math.max(0,Math.min(100,Math.round((jn+27)/83*100))),le=Sn>=75?"契合度较高":Sn>=55?"中等偏顺":Sn>=40?"需要磨合":"差异较大",Ze=n.pillars.year,yn=h.pillars.year,me=T(Ze.branch,yn.branch),Fe=[["甲","己"],["乙","庚"],["丙","辛"],["丁","壬"],["戊","癸"]].some(hn=>hn.includes(k)&&hn.includes(y)&&k!==y),sn=q(k,y),Oe=q(y,k),nn=["year","month","day","hour"].map(hn=>n.pillars[hn].branch),dn=["year","month","day","hour"].map(hn=>h.pillars[hn].branch),gn=[];for(const hn of nn)for(const En of dn)I(E,hn,En)?gn.push({a:hn,b:En,name:"六合",score:1,text:"跨盘六合,易有自然的亲近与默契"}):P.some(Ln=>Ln.branches.includes(hn)&&Ln.branches.includes(En))?gn.push({a:hn,b:En,name:"半合",score:1,text:"跨盘半合,某些事上容易一拍即合"}):I(M,hn,En)?gn.push({a:hn,b:En,name:"相冲",score:-1,text:"跨盘相冲,某些领域节奏相反,需要分工"}):I(x,hn,En)&&gn.push({a:hn,b:En,name:"相害",score:-1,text:"跨盘相害,容易在第三方或琐事上起误会"});const he=[],G=new Set;for(const hn of gn){const En=`${hn.name}${[hn.a,hn.b].sort().join("")}`;G.has(En)||(G.add(En),he.push(hn))}const F=Ze.nayin,re=yn.nayin,ve=F[F.length-1],Ve=re[re.length-1],Q=ve===Ve?{name:"纳音比和",score:0,text:"两人年命纳音同五行,底色相近"}:z[ve]===Ve?{name:"纳音相生",score:1,text:`你的年命纳音属${ve}生对方${Ve},你多是先付出的一方`}:z[Ve]===ve?{name:"纳音相生",score:1,text:`对方年命纳音属${Ve}生你${ve},你容易得到照应`}:_[ve]===Ve?{name:"纳音相克",score:-1,text:`你的年命纳音属${ve}克对方${Ve},主导感偏强`}:{name:"纳音相克",score:-1,text:`对方年命纳音属${Ve}克你${ve},压力感偏重`},Ke=(me.score>0?1:0)+(Fe?1:0)+(en.score>5?1:0)+he.filter(hn=>hn.score>0).length+(Q.score>0?1:0),De=(me.score<0?1:0)+(en.score<0?1:0)+he.filter(hn=>hn.score<0).length+(Q.score<0?1:0),Tn=Ke-De>=3?"吉象偏多":Ke-De>=1?"吉略多于凶":Ke-De===0?"吉凶相当":"凶象偏多",Hn={yearRelation:{label:me.name,text:`属相:你${Ze.branch}(${Ze.ganzhi}),对方${yn.branch}(${yn.ganzhi})。${me.text}。`},stems:{he5:Fe,tenGodToB:sn,tenGodToA:Oe,text:Fe?`日干五合(${k}${y}),传统称「天干五合」,主彼此吸引强,也容易黏在一起分不开。`:`日干无五合:你在对方盘里是「${sn}」,对方在你盘里是「${Oe}」。`},crossBranches:he.slice(0,8),nayin:{a:F,b:re,label:Q.name,text:Q.text},tally:{good:Ke,bad:De,lean:Tn},framing:"属相(年支)只影响表层印象,传统合婚以日柱为主;分档只说明吉凶象多少,不作「必配/必离」断言。"},Fn=(hn,En,Ln,Qn,Zn)=>({key:hn,label:En,score:Math.round(Ln),text:Qn,...Zn||{}});return{system:"hepan",a:{gender:n.input.gender,pillars:["year","month","day","hour"].map(hn=>n.pillars[hn].ganzhi),dayMaster:`${k}${b}`,dayBranch:ie,strength:n.strength?n.strength.level:null,favor:Pe.join(""),wuxing:Y,longitude:n.input.longitude??null,trueSolar:n.input.trueSolar!==!1,solarNote:n.solarTime?n.solarTime.note:"",summary:n.summary},b:{gender:h.input.gender,pillars:["year","month","day","hour"].map(hn=>h.pillars[hn].ganzhi),dayMaster:`${y}${O}`,dayBranch:de,strength:h.strength?h.strength.level:null,favor:bn.join(""),wuxing:U,longitude:h.input.longitude??null,trueSolar:h.input.trueSolar!==!1,solarNote:h.solarTime?h.solarTime.note:"",summary:h.summary},score:{total:Sn,level:le},detail:Hn,dimensions:[Fn("stem","日主关系",we,`你的日主 ${k}${b},对方 ${y}${O}。${ze.text};${Ae.text}。`),Fn("gong","夫妻宫(日支)",en.score,`${en.name}:${en.text}。你日支 ${ie},对方日支 ${de}。`),Fn("wuxing","五行互补",$e,Re.join(";")+"。")],notes:["合盘看的是相处方式与互补点,不决定关系成败;现实里的沟通与选择分量更重。","口径:日主取五行生克双向平均,夫妻宫取日支关系,五行互补看「一方喜用是否为另一方所旺」。"]}}return{tripleOf:r,buildHepan:t}})(),K["ziwei-hepan"]=(function(){const{buildZiwei:H}=K.ziwei||{},{assertCivil:q}=K.validate||{},be=["命宫","兄弟","夫妻","子女","财帛","疾厄","迁移","交友","官禄","田宅","福德","父母"],se={禄:"会把资源、机会与松弛感带过去",权:"会不自觉地主导或施压",科:"带来的更多是名声、体面与理性",忌:"会勾起压力点与执念"},fe={禄:10,权:5,科:8,忌:-10},P=["命宫","夫妻","福德","财帛","官禄"],B=(E,M)=>(E.palaces||[]).find(x=>x.branch===M)||null,u=E=>E&&E.stars?E.stars.filter(M=>M.type==="main"||M.type==="吉星"||M.type==="煞星").map(M=>M.name):[];function z(E,M){const x=B(E,M);return x?{palace:x.palace,branch:x.branch,stars:u(x)}:null}function _(E){q(E&&E.a,"a"),q(E&&E.b,"b");const M=H({...E.a}),x=H({...E.b}),g=z(x,M.soul.branch),ue=z(M,x.soul.branch),I=(M.palaces.find(O=>O.palace==="夫妻")||{}).branch,D=(x.palaces.find(O=>O.palace==="夫妻")||{}).branch,p=I?z(x,I):null,T=D?z(M,D):null,r=[],t=(O,ie,de,ze)=>{for(const Ae of O.palaces||[])for(const we of Ae.stars||[]){if(!we.mutagen)continue;const en=(ie.palaces||[]).find(bn=>(bn.stars||[]).some(rn=>rn.name===we.name)),Pe=en?en.palace:null;r.push({who:de,star:we.name,mutagen:we.mutagen,ownPalace:Ae.palace,landingPalace:Pe,strong:Pe?P.includes(Pe):!1,text:`${de}的${we.name}化${we.mutagen}(在本命${Ae.palace})落在${ze}的${Pe||"盘外"}——${de}${se[we.mutagen]}`})}};t(M,x,"你","对方"),t(x,M,"对方","你");let d=40;const n=[];if(g){const O=P.includes(g.palace),ie=O?12:5;d+=ie,n.push({key:"soul",label:"命宫互落",score:ie,text:`你的命宫在${M.soul.branch},落到对方盘的「${g.palace}」${g.stars.length?`(同宫见 ${g.stars.join("、")})`:""}——${O?"影响直接,脾气与做派会明显落在对方这一块":"影响偏间接,主要体现在日常协作上"}。`})}if(ue&&n.push({key:"soulBack",label:"对方命宫落你盘",score:0,text:`对方的命宫在${x.soul.branch},落到你盘的「${ue.palace}」${ue.stars.length?`(同宫见 ${ue.stars.join("、")})`:""}。`}),p&&T){const O=["命宫","夫妻","福德"].includes(p.palace)||["命宫","夫妻","福德"].includes(T.palace),ie=O?8:2;d+=ie,n.push({key:"spouse",label:"夫妻宫互落",score:ie,text:`你的夫妻宫在${I},落在对方「${p.palace}」;对方的夫妻宫在${D},落在你「${T.palace}」。${O?"双方的感情定位能对上彼此在意的事":"彼此的期待更容易落在不同领域,需要说清楚"}`})}let h=0;for(const O of r){const ie=fe[O.mutagen]||0;h+=O.strong?Math.round(ie*1.5):ie}h=Math.max(-25,Math.min(25,h)),d+=h,n.push({key:"mutagen",label:"四化引动",score:h,text:r.filter(O=>O.who==="你").map(O=>O.text).join(";")||"你这边没有生年四化引动对方的宫位。"});const k=Math.max(0,Math.min(100,Math.round(d))),y=k>=75?"契合度较高":k>=55?"中等偏顺":k>=40?"需要磨合":"差异较大",b=(O,ie)=>({who:ie,soul:{branch:O.soul.branch,palace:O.soul.palace},body:{branch:O.body.branch,lands:O.body.lands},bureau:O.bureau.name,ziwei:O.ziwei,tianfu:O.tianfu,soulStars:u(O.palaces.find(de=>de.palace==="命宫")||{}),spouseStars:u(O.palaces.find(de=>de.palace==="夫妻")||{}),natalSihua:(O.palaces||[]).flatMap(de=>(de.stars||[]).filter(ze=>ze.mutagen).map(ze=>`${ze.name}化${ze.mutagen}(${de.palace})`)),summary:O.summary});return{system:"hepan",chart:"ziwei",a:b(M,"你"),b:b(x,"对方"),score:{total:k,level:y},dimensions:n,interactions:r,notes:["紫微合盘看的是「彼此会在对方生活里的哪一块起作用」,不是关系成败的判决。","口径:命宫与夫妻宫按地支落到对方盘的宫位;四化按「一方的生年四化星在对方盘的落宫」读,落在命宫/夫妻/福德/财帛/官禄加倍计分。"]}}return{buildZiweiHepan:_}})(),K["interpret-data"]=(function(){const H={乾:{nature:"天",trait:"刚健、主导",element:"金"},坤:{nature:"地",trait:"承载、柔顺",element:"土"},震:{nature:"雷",trait:"启动、震动",element:"木"},巽:{nature:"风",trait:"渗透、顺势",element:"木"},坎:{nature:"水",trait:"险陷、流动",element:"水"},离:{nature:"火",trait:"明丽、附著",element:"火"},艮:{nature:"山",trait:"静止、阻挡",element:"土"},兑:{nature:"泽",trait:"愉悦、口舌",element:"金"}},q=[{pos:1,name:"初爻",gist:"事之始,根基与起点",tone:"宜稳不宜急"},{pos:2,name:"二爻",gist:"初步展开,能力初显",tone:"宜务实积累"},{pos:3,name:"三爻",gist:"进退交界的关口,多劳少得",tone:"宜守拙退让"},{pos:4,name:"四爻",gist:"接近决策层,转机初现",tone:"宜谨慎措辞"},{pos:5,name:"五爻",gist:"得位居中,事态最盛",tone:"宜把握主节奏"},{pos:6,name:"上爻",gist:"发展至极,盛极思变",tone:"宜留余地收尾"}],be={yang:"阳极转阴:原本强势、推进得很快的那个环节,接下来需要收一收、留余地",yin:"阴极转阳:原本停滞、迟迟没动静的那个环节,接下来会出现变化,可以主动推一把"},se={乾为天:{meaning:"刚健运行,自强不息",scene:"主动权在你手上,宜自己定节奏"},坤为地:{meaning:"厚德载物,顺势而成",scene:"配合与承接比抢先更有利"},水雷屯:{meaning:"初生艰难,如草木破土",scene:"事情刚起步会乱,先把基础扎稳"},山水蒙:{meaning:"蒙昧待启,问道则通",scene:"信息不全时先请教,不要硬闯"},水天需:{meaning:"等待时机,不可冒进",scene:"条件没齐,耐心等一等反而快"},天水讼:{meaning:"争讼之象,宜和解",scene:"有分歧先谈,别把关系推上对抗"},地水师:{meaning:"用众之道,纪律为先",scene:"靠团队成事,规矩要立在前"},水地比:{meaning:"亲附相辅,择善而从",scene:"选对合作对象,比单打独斗重要"},风天小畜:{meaning:"小有积蓄,力量未充",scene:"先攒资源,暂不大举投入"},天泽履:{meaning:"循礼而行,如履虎尾",scene:"按规则走,谨慎就不会出事"},地天泰:{meaning:"上下交泰,通达和顺",scene:"沟通顺畅,是推进的好时候"},天地否:{meaning:"阴阳不交,闭塞不通",scene:"卡住时先停下来,别硬顶"},天火同人:{meaning:"与人同心,众志可成",scene:"找同频的人一起做,事半倍"},火天大有:{meaning:"丰盛富有,如日中天",scene:"收获可观,记得分享与收敛"},地山谦:{meaning:"谦逊受益,卑以自牧",scene:"放低姿态,反而更容易被接纳"},雷地豫:{meaning:"悦乐振奋,顺势而动",scene:"士气高,适合启动与造势"},泽雷随:{meaning:"随时而动,择善而随",scene:"跟随大势走,别拧着来"},山风蛊:{meaning:"积弊待治,破而后立",scene:"旧问题该清一清了,别拖"},地泽临:{meaning:"居高临下,督导亲近",scene:"亲自盯一盯,效果比放手好"},风地观:{meaning:"观仰教化,观察而明",scene:"先看清楚再表态"},火雷噬嗑:{meaning:"咬合去梗,明断是非",scene:"障碍要正面处理,绕不过去"},山火贲:{meaning:"文饰之美,适度为宜",scene:"包装有用,但别盖过实质"},山地剥:{meaning:"剥落衰败,宜守不宜进",scene:"在消耗期,止损优先"},地雷复:{meaning:"一阳来复,去而复返",scene:"转机回来了,可以小步重启"},天雷无妄:{meaning:"不妄为,守正即吉",scene:"按本分做,别投机"},山天大畜:{meaning:"大有蓄养,厚积待发",scene:"积累期,学东西最有价值"},山雷颐:{meaning:"养正自守,节饮食慎言语",scene:"养身体、养口碑,别透支"},泽风大过:{meaning:"过甚有险,栋梁将折",scene:"担子太重,该减负或加固"},坎为水:{meaning:"重险叠至,惟诚可济",scene:"困难接连来,稳住心神最要紧"},离为火:{meaning:"附丽光明,柔顺守中",scene:"借助光亮的东西,别孤军奋战"},泽山咸:{meaning:"感应相和,男女相悦",scene:"情感互动顺畅,宜真诚表达"},雷风恒:{meaning:"恒久不易,持之则成",scene:"长期坚持才有结果"},天山遁:{meaning:"退避为智,以退为进",scene:"适时抽身,不是认输"},雷天大壮:{meaning:"阳刚壮盛,宜正不宜猛",scene:"气势足,但别用力过猛"},火地晋:{meaning:"晋升初进,如日上升",scene:"有上升机会,主动争取"},地火明夷:{meaning:"光明受掩,韬光养晦",scene:"暂时低调,保存实力"},风火家人:{meaning:"内治为先,各安其位",scene:"先把身边人和日常安顿好"},火泽睽:{meaning:"睽违背离,同中有异",scene:"意见不合是常态,求同存异"},水山蹇:{meaning:"蹇难阻滞,宜反身修德",scene:"走不通就绕,回头补短板"},雷水解:{meaning:"险难消解,宜速不宜缓",scene:"结打开了,趁势把事办了"},山泽损:{meaning:"损己益人,损中有得",scene:"先让一点,后面有回报"},风雷益:{meaning:"增益利民,顺势施为",scene:"投入会有产出,可以加码"},泽天夬:{meaning:"决而去之,果决除弊",scene:"该断的事果断断,别拖泥带水"},天风姤:{meaning:"不期而遇,柔遇刚",scene:"有意外的人或机会出现"},泽地萃:{meaning:"聚合众力,物以类聚",scene:"聚人聚资源的时候到了"},地风升:{meaning:"积小以高大,循序上升",scene:"一步一步往上走,别跳级"},泽水困:{meaning:"困穷待援,安贫守正",scene:"资源受限时先守住基本盘"},水风井:{meaning:"井养不穷,修井得清",scene:"把现有的渠道维护好"},泽火革:{meaning:"革故鼎新,时至则变",scene:"该改就改,时机已经到了"},火风鼎:{meaning:"鼎新烹饪,稳重得位",scene:"新格局已立,按新规矩办"},震为雷:{meaning:"震惊百里,惧而后安",scene:"突发变动会来,先稳住再应对"},艮为山:{meaning:"止其所止,静而定",scene:"该停就停,停下来才看得清"},风山渐:{meaning:"渐进有序,如鸿渐于陆",scene:"慢慢来反而到得快"},雷泽归妹:{meaning:"归嫁失序,宜守本分",scene:"关系里别越位,按本分处"},雷火丰:{meaning:"丰大光明,宜及时施为",scene:"盛时要做事,别浪费势头"},火山旅:{meaning:"旅居在外,谨慎自守",scene:"处在变动环境,低调稳当些"},巽为风:{meaning:"顺入以柔,申命行事",scene:"用柔的方式渗透,别硬碰"},兑为泽:{meaning:"喜悦相悦,朋友讲习",scene:"多交流多请教,气氛是好的"},风水涣:{meaning:"涣散离散,宜聚人心",scene:"人心散了,先把共识找回来"},水泽节:{meaning:"节制有度,苦节不可",scene:"设边界、控节奏,别过头"},风泽中孚:{meaning:"诚信居中,信则人任",scene:"诚意是当下最有效的通行证"},雷山小过:{meaning:"小事可过,大事不可",scene:"细节可以灵活,大方向别偏"},水火既济:{meaning:"事已成,慎终如始",scene:"做成之后更要防松懈"},火水未济:{meaning:"事未成,慎辨慎行",scene:"还差一步,别急着庆祝"}},fe=Object.fromEntries(Object.keys(se).map(x=>[x.length>2?x.slice(2):x.slice(0,1),x]));return{TRIGRAM:H,YAO_POSITION:q,MOVING_NATURE:be,HEX64:se,HEX_BY_CORE:fe,ZIWEI_STARS:{紫微:{trait:"有主见、重体面,习惯站在统筹的位置",work:"适合需要拍板与统筹的岗位,管理、政务、项目负责一类",love:"在关系里需要被尊重,慢热但认真",health:"留意血压与作息紊乱"},天机:{trait:"脑子转得快,兴趣多、想法多",work:"适合策划、技术、咨询、研发一类动脑的岗位",love:"容易被有趣的人吸引,需要精神共鸣",health:"思虑多,留意神经紧张与睡眠"},太阳:{trait:"外放热心,愿意付出、也愿意被看见",work:"适合对外型岗位,教学、销售、公关、公益一类",love:"主动付出型,注意别一厢情愿",health:"留意心血管与用眼过度"},武曲:{trait:"务实、讲效率,认结果不认空话",work:"适合金融、财务、工程、执行类岗位",love:"感情表达偏实在,用行动多于言语",health:"留意呼吸系统与过劳"},天同:{trait:"温和好相处,重感受,凡事求舒服",work:"适合服务、文职、教育、文创一类低对抗的岗位",love:"需要陪伴感,容易被温柔的人打动",health:"留意免疫力与情绪性不适"},廉贞:{trait:"细腻又较真,审美与原则都在意",work:"适合需要精细度的岗位,法务、审计、设计、医疗一类",love:"感情投入深,也容易较劲",health:"留意炎症与情绪郁结"},天府:{trait:"稳重可靠,善于守成与资源调度",work:"适合行政、财务、运营、仓储一类守盘型岗位",love:"倾向稳定长久的关系",health:"留意体重与消化负担"},太阴:{trait:"内敛敏感,心思细,重安全感",work:"适合研究、文案、财务、艺术一类安静专注的岗位",love:"慢热、重细节,需要被照顾到感受",health:"留意睡眠与内分泌节律"},贪狼:{trait:"好奇心强、人缘好,兴趣广泛",work:"适合业务、市场、传媒、跨界的开拓型岗位",love:"桃花偏旺,需要自己划清边界",health:"留意肝火与作息不规律"},巨门:{trait:"善于分析,也容易多疑,嘴上功夫好",work:"适合法务、教学、咨询、谈判一类靠口才与逻辑的岗位",love:"容易因多想而生误会,宜多说清楚",health:"留意口腔、呼吸道与思虑过度"},天相:{trait:"讲规矩、重协调,习惯做辅佐者",work:"适合秘书、执行、协调、后勤一类支撑型岗位",love:"关系里偏迁就,需要学会表达需求",health:"留意皮肤与免疫波动"},天梁:{trait:"有长者气,爱操心、乐意帮人",work:"适合教育、医护、公益、顾问一类助人的岗位",love:"照顾型伴侣,别把对方当孩子",health:"留意慢病管理与过劳"},七杀:{trait:"果断敢冲,抗压但容易硬碰硬",work:"适合开拓、销售、创业、外勤一类高挑战岗位",love:"感情来得快,需要留给对方缓冲",health:"留意意外伤害与旧伤复发"},破军:{trait:"喜新厌旧,敢破敢立,不走老路",work:"适合变革、创业、项目从零到一的岗位",love:"感情变动偏多,稳定需要共同目标",health:"留意泌尿与外伤"}},WUXING_INDUSTRY:{木:"教育培训、出版撰稿、文职行政、农林园艺、中医药、服装与设计、文创",火:"互联网、传媒影视、能源电力、餐饮与品牌、演艺传播、电子科技",土:"地产建筑、物业管理、行政人事、农业种植、供应链仓储、财会",金:"金融银行、法律法务、机械制造、审计风控、医疗器械、军警安保",水:"物流贸易、咨询顾问、传媒公关、旅游出行、科研水产、信息技术"},WUXING_ORGAN:{木:{part:"肝胆、筋骨",note:"情绪疏泄与久坐久视是主要负担"},火:{part:"心脏、小肠、血脉",note:"睡眠节律与情绪起伏最需留意"},土:{part:"脾胃、肌肉",note:"饮食规律与消化吸收是关键"},金:{part:"肺、大肠、呼吸道与皮肤",note:"空气质量与换季是敏感点"},水:{part:"肾、膀胱、内分泌与腰膝",note:"过劳与熬夜最先反映在这里"}},TENGOD_STYLE:{正官:"守规矩、重名分,适合在成体系的组织里按规则上升",七杀:"抗压敢拼,适合高挑战、需要快速决断的岗位",正财:"稳定务实,适合按劳取酬、积累型的路径",偏财:"善抓机会、人脉广,适合业务、投资、资源整合类",食神:"表达与创造见长,适合技术、创作、教育一类",伤官:"想法多、不服旧规,适合改革、创业、专业创意",正印:"学习力强、有耐心,适合研究、文教、需要资质的岗位",偏印:"偏门钻研,适合冷门专业、技术深耕",比肩:"独立能扛,适合并肩作战或独立负责一块",劫财:"行动快、竞争心强,适合业务冲刺型工作"},LIUREN_JIANG:{贵人:"贵人、助力、被提携",螣蛇:"缠绕、反复、惊扰不定",朱雀:"口舌、文书、消息是非",六合:"合作、契约、和合之事",勾陈:"牵绊、拖延、纠缠难断",青龙:"喜庆、财禄、顺利推进",天空:"虚空、不实、计划落空",白虎:"压力、病丧、突发阻碍",太常:"衣食、常规、平稳运行",玄武:"暗昧、失物、信息不明",太阴:"隐秘、暗中助力、私下的事",天后:"女性、恩泽、情感与照料"},DISCLAIMER:"以上解析由本插件依据你提供的出生信息(或起卦时刻)按传统命理规则生成,属文化娱乐与自我觉察的参考,不构成医疗、心理、投资、法律或人事决策的依据。涉及健康请咨询医生,涉及重大决定请以现实信息与专业人士意见为准。",TAROT_ELEMENT_FOCUS:{火:{area:"行动力与热情",advice:"把能量投到一件具体的事上,别同时开太多头"},水:{area:"情感与关系",advice:"先照顾好感受,再谈效率"},风:{area:"思考与沟通",advice:"把想法写下来,与相关的人说清楚"},土:{area:"现实与资源",advice:"落实成可执行的步骤,写明时间和预算"}}}})(),K["interpret-plain"]=(function(){const H=(n,h="")=>n==null||n===""?h:String(n),q=n=>Array.isArray(n)?n.filter(Boolean).join(""):"",be=n=>Array.isArray(n)?n.length>0:n!=null&&n!=="",se={身强:"底子偏足、抗压能力好,但容易自己给自己加码,学会收力比使劲更重要",偏强:"底子略足,扛得住事,也容易把事都往自己身上揽",中和:"力量比较匀,属于「给什么环境就长出什么样子」的类型",偏弱:"底子偏薄,靠外部支援比硬扛有效,选对圈子与节奏很关键",身弱:"底子偏薄,先修恢复力再谈冲刺,硬撑的性价比最低"},fe={六冲卦:"这一卦是「六冲」,事情起落快,急事反而好办,拖久了的人事容易散。",六合卦:"这一卦是「六合」,容易谈成,也容易黏住不放。",变六冲:"往下走会散,收尾别拖。",变六合:"往下走会合,事情倾向于延续下去。",内卦伏吟:"事情卡在原地打转,想动但动不了。",外卦伏吟:"外面那层没变,看起来在动,其实格局照旧。",内卦反吟:"反复在自己这一头,改了又改回来。",外卦反吟:"外面反复,对方或环境会来回拉扯。",化进神:"有一爻在往上走,顺着这股劲推比往回拉顺。",化退神:"有一爻在往后退,别按原来的势头硬推。"},P={可出:"眼下的条件算是有助无压,属于「出得来」的一档——这是条件,不等于马上应验。",有助有压:"眼下是一边有助、一边有压,出得来,但得费点劲。",受压难出:"眼下被上面的力量压着,不太容易露头,先别急着硬推。",未得助:"眼下暂时没借到力,还得等条件转过来。",飞伏未知:"飞伏关系看不全,这一层先不下判断。"};function B(n,h){if(!n||!n.liuqin)return"";if(n.found.length){const k=n.found.map(O=>`第${O.position}爻`).join("、"),y=n.found.some(O=>O.moving),b=n.byShi?"代表你自己":`就是「${n.liuqin}」这一类事`;return`你问的这件事,在卦里对应${k}${b}——${y?"这一爻还在动,说明事情正在推进":"这一爻没动,先按现状看"}。`}if(n.fushen.length){const k=n.fushen[0],y=h&&Array.isArray(h.items)?h.items.find(O=>O.position===k.position):null,b=y?` ${P[y.verdict]||""}`:"";return`你问的这件事,卦面上没有直接露出来,得往深处找:它藏在第${k.position}爻下面(伏神),与上面的关系是「${k.relation||"—"}」,要借力才出得来。${b}`}return""}function u(n){if(!n||!n.lines||!n.lines.length)return"";const h=n.lines.filter(b=>/死|囚/.test(b.monthState)||b.monthChong),k=n.lines.filter(b=>/旺|相/.test(b.monthState)),y=n.month&&n.month.branch?`眼下这阵子(${n.month.branch}月)`:"起卦这段日子";return h.length&&!k.length?`${y}对这件事不太帮忙,气有点被压着——先别急着硬推,等风向转。`:k.length&&!h.length?`${y}对这件事是帮着的,气正在往上走,能推就趁现在。`:`${y}对这件事有帮有压,一半的力要自己挣——结果更看你怎么走。`}function z(n){const h=n&&n.jinTuiPower;if(!h||!Array.isArray(h.lines)||!h.lines.length)return"";const k=y=>y.verdict==="后劲足"?"时令托着,后劲足":y.verdict==="后劲有限"?"时令不太托,后劲有限":y.verdict==="进得虚"?"时令最背,进也是虚进":y.verdict==="退得缓"?"时令还托着,退得慢":y.verdict==="退得实"?"时令也不托,退得实":y.verdict==="月破失据"?"又正好逢月破,进退都站不稳":"缺月建,先只当方向看";return`动爻的进退还要看时令:${h.lines.map(y=>`${y.position}爻${y.from}→${y.to}${y.type},${k(y)}`).join(";")}。`}function _(n){const h=n&&n.yingqi;if(!h||!Array.isArray(h.triggers)||!h.triggers.length)return"";const k=h.tempo==="偏速"?"大体偏近,近事更容易先见分晓":h.tempo==="偏缓"?"大体偏远,别指望立刻见分晓":h.tempo==="待解"?"眼下还有月破或旬空,得先等条件解除":"缺月建,快慢暂不定",y=h.triggers.map(O=>O.branch).join("、"),b=h.viaFushen?"(用神是伏神,先要出得来)":"";return`应期上${k};传统会留意${y}这几个地支${b}——这只是提示,不换算成具体哪天。`}function E(n){if(!n||!n.counts)return"";const h=(n.counts.旺||0)+(n.counts.相||0),k=(n.counts.囚||0)+(n.counts.死||0),y=n.month&&n.month.branch?`按${n.month.branch}月这段时令看`:"按起卦这天看",b=n.shi&&n.shi.monthState!=="unknown"?`代表你的世爻在${n.shi.monthState}`:"";return h>=4&&k===0?`${y},整张卦六爻的气多数是顺的,${b},眼下算是好推的时候。`:k>=4&&h===0?`${y},整张卦六爻的气多数被压着,${b},这几天更适合等而不是冲。`:`${y},整张卦六爻有顺有逆(旺相 ${h} 爻、囚死 ${k} 爻)${b?`,${b}`:""},成不成要看具体哪一爻在动。`}function M(n){if(!n||!Array.isArray(n.targets))return"";const h=n.targets.find(y=>y.count>=2),k=n.groups&&n.groups.selfHua&&n.groups.selfHua.length?"其中有的宫自己化出去又落回自己,容易表现为「想得多、落得少」。":"";return h?`把命宫连同对宫与两个三合宫一起看,${h.incoming.length} 股力最后挤在「${String(h.palace).replace(/宫$/,"")}」这件事上——这件事会把好几个方面的劲都吸过来。${k}`:`把命宫连同对宫、两个三合宫一起看,四股力飞出去没有挤到同一处,这几件事之间牵连不深。${k}`}function x(n){const h=O=>Object.keys(fe).find(ie=>O===ie||O.startsWith(`${ie} `))||"",k=n.find(O=>h(O)),y=k?fe[h(k)]:"",b=n.filter(O=>O!==k&&/^化[进退]神 /.test(O)).map(O=>fe[h(O)]).filter(Boolean);return y+b.join("")}const g={wealth:"「工作与职业选择」与「时间窗」",career:"「事业发展」与「时间窗」",love:"「爱情与感情」",health:"「健康状况」",study:"「事业发展」与「时间窗」",travel:"「整体运势」与「时间窗」",general:"「整体运势」与「看盘顺序」"};function ue(n,h,k={}){if(!n||!n.system)return"";const y=H(h&&h.question).trim(),b=h&&h.direction||"general",O=n.system==="bazi"?g[b]||g.general:"下面与你的问题最贴近的那一节",ie=y?`你问的是「${y}」。`:"";if(n.system==="bazi"){const de=n.dayMaster||{},ze=n.strength||{},Ae=n.frame&&n.frame.yongshen||{},we=q(Ae.favor),en=q(Ae.avoid),Pe=Array.isArray(Ae.neutral)&&Ae.neutral.length?`(其中${Ae.neutral.map(Y=>Y.element).join("、")}在命局里几乎没有分量,算中性偏忌,不必刻意避)`:"",bn=(n.liunian||[])[0],rn=[ie+`先说结论:你是${H(de.stem)}${H(de.element)}日主,命局${H(ze.level,"待定")}${we?`,顺${we}、忌${en}${Pe}——往${we}的方向安排事情会更省力`:""}。`,bn&&bn.ganzhi?`${H(bn.year)} 年是${bn.ganzhi}年(${H(bn.luck&&bn.luck.tier,"平")}),这是「大环境」这一层。`:"",`具体到你问的这件事,重点看${O}。`];return y||(rn[rn.length-1]=`没指定问题,就按${O}的顺序往下看。`),rn.filter(Boolean).join("")}if(n.system==="ziwei"){const de=n.soul||{},ze=n.body||{},Ae=n.bureau||{},we=n.lifeMaster||"",en=n.flyChains&&n.flyChains.忌,Pe=en&&en.steps.length?`还有一条线值得留意:${en.path.map(bn=>bn.replace(/宫$/,"")).join(" → ")}——这几件事在你身上是连着转的,一件卡住,容易牵动下一件。`:"";return[ie+`先说结论:你的命宫落${H(de.branch,"—")}宫${Ae.name?`、${Ae.name}`:""}${we?`,命主${we}`:""}${ze.lands?`,身宫落在「${ze.lands}」——这张盘的重心在这件事上`:""}。`,Pe,M(n.flyComposite),y?`具体到你问的这件事,重点看${O}。`:`没指定问题,就按${O}的顺序往下看。`].filter(Boolean).join("")}if(n.system==="liuyao"){const de=n.ben||{},ze=n.cast&&n.cast.movingPositions||[],Ae=n.bian||{},we=n.body&&Array.isArray(n.body.labels)?n.body.labels:[],en=x(we);return[ie+`先说结论:本卦是${H(de.name,"—")}${de.palace?`(${de.palace})`:""}${ze.length?`,第 ${ze.join("、")} 爻动,变为${H(Ae.name,"—")}`:",六爻安静没有动爻"}。${en}${B(n.useGod,n.fushenAccess)}${u(n.useGodStrength)}${z(n)}${_(n)}${E(n.hexStrength)}`,"断卦的落点在「世爻」(代表你)和「动爻」(事情的推动点),下面「看盘顺序」就按这个次序展开。"].join("")}return ie?`${ie}下面按五个维度拆开看,重点看${O}。`:n.system==="qimen"?`下面按排盘事实、用神、宫位条件几节展开${b!=="general"&&h&&h.directionLabel?`,取「${h.directionLabel}」方向的用神`:""}。`:b!=="general"&&h&&h.directionLabel?`下面按五个维度拆开看,重点看与「${h.directionLabel}」方向最贴近的那一节。`:"下面按五个维度拆开看,没指定问题,就从头依次读。"}function I(n,h,k={}){if(!n||!n.system)return"";if(n.system==="bazi"){const y=n.strength||{},b=n.frame&&n.frame.yongshen||{},O=q(b.favor),ie=q(b.avoid),de=Array.isArray(b.disputed)&&b.disputed.length?`有一点要说明:${b.disputed.map(Pe=>Pe.element).join("、")}在扶抑里算${b.disputed.map(Pe=>Pe.favorRole).join("、")}(能${b.disputed.map(Pe=>Pe.favorVerb).join("、")}),按调候看又偏忌(${b.disputed.map(Pe=>`${Pe.climate}盘忌${Pe.element}`).join("、")}),两派说法不一;实际用在什么时候,看季节和环境取舍,不必当成绝对的好或坏。`:"",ze=se[y.level]||"力量偏中性",Ae=b.tiaohou&&b.tiaohou.note?`另外,${b.tiaohou.note},所以「暖一点、亮一点」的环境通常更舒服。`:"",we=(n.liunian||[]).find(Pe=>Pe.suiyun&&Array.isArray(Pe.suiyun.signals)&&Pe.suiyun.signals.length),en=we?`再往后看,${we.year} 年${we.ganzhi}是${we.suiyun.signals.map(Pe=>Pe.type).join("、")}——传统上把它当作「变化感强一点」的提示,既不是好消息也不是坏消息,遇上时多留个心眼就好。`:"";return`你的命局属于「${H(y.level,"中性")}」:${ze}。${O?`能补${O}的环境(行业、方位、作息、相处的人)会让你省力;${ie?`而${ie}偏重的场合容易空耗,能绕就绕。`:""}`:""}`+de+Ae+en}if(n.system==="ziwei"){const y=n.body||{},b=n.flyChains&&n.flyChains.忌,O=b&&b.steps.length?"你身上有个绕不开的规律:几件事是连着转的,一件卡住,后面就跟着慢下来。":"",ie=n.flyComposite,de=ie&&Array.isArray(ie.targets)?ie.targets.find(we=>we.count>=2):null,ze=!ie||!Array.isArray(ie.targets)?"":de?`再往深一层,四股力最后也压在「${String(de.palace).replace(/宫$/,"")}」上——几个方面的劲都往这儿聚。`:"再往深一层,四股的力没有全挤到一处,这几件事之间牵连不深。";return["紫微讲的是「你与环境怎么互动」,不是谁好谁坏——同一件事换个环境、换个人配合,结果就不一样。",y.lands?`真正让你上心的,多半是「${y.lands}」这件事,做别的总会分心。`:"",O,ze].filter(Boolean).join("")}if(n.system==="liuyao"){const y=n.ben||{},b=n.cast&&n.cast.movingPositions||[],O=n.body&&Array.isArray(n.body.labels)?n.body.labels:[],ie=x(O);return`${H(y.name,"这一卦")}讲的是一个「${b.length?"正在动、还会变":"暂时不动、先看清"}」的局面——${b.length?"有动爻,说明事情还有转圜空间,不是死局。":"六爻安静,说明当下更该观察而不是硬推。"}${ie}${B(n.useGod,n.fushenAccess)}${u(n.useGodStrength)}${z(n)}${_(n)}${E(n.hexStrength)}`}return""}function D(n,h,k={}){if(!h||h.system!=="bazi")return"";const y=h.frame&&h.frame.yongshen||{},b=q(y.favor),O=q(y.avoid),ie=h.strength||{};return n==="overall"?`一句话:底子${H(ie.level,"中性")},往${b||"有利方向"}走省力。`:n==="work"?`一句话:挑${b||"喜用"}属性的活儿,比硬碰${O||"忌神"}省力。`:n==="career"?`一句话:你的上升方式,偏向把${b||"长处"}做成看得见的成果。`:n==="love"?"一句话:关系里先看清自己要什么,再决定推进速度。":n==="health"?"一句话:作息稳定比任何调理都优先。":""}const p=[["日主","你出生那天对应的天干,代表「你自己」,整张盘都围着它转。"],["用神","这张盘里最需要补的那一类力量,顺着它做事更省力。"],["忌神","补得越多越别扭的那一类力量,不是坏东西,只是对你性价比低。"],["调候","按出生季节调温补缺:冬天的盘怕冷,夏天的盘怕燥。"],["格局","把整张盘的结构归成一个类型,用来看「你适合怎么打」。"],["十神","把五行关系翻译成人事:财=资源、官杀=规则与压力、印=支持、食伤=表达、比劫=同伴。"],["月令","出生的月份,是判断强弱最关键的一个位置。"],["日支","日柱的地支,也叫「配偶宫」,看亲密关系的第一落点。"],["大运","十年一换的大阶段,决定这十年顺不顺手。"],["流年","每一年的干支,看当年的具体环境。"],["空亡","落到空亡的字,力量打折,事情容易「看着有、抓不住」。"],["伏神","卦里没出现的六亲,藏在同宫首卦的对应爻下,用时才看得见。"],["世应","世爻代表你,应爻代表对方或外部环境。"],["动爻","会变的爻,是事情「往哪走」的推动点。"],["纳甲","给六个爻配上天干地支,六亲与生克才有依据。"],["四化","禄权科忌四种变化,标记星曜在这一步运里扮演什么角色。"],["大限","紫微里的十年阶段,作用类似八字的「大运」。"],["庙旺","星曜落在某宫时的力量档位:庙、旺最强,得、利、平居中,不、陷最弱。"],["三方四正","从命宫出发的三合三方加对宫,共四个宫位,是全盘最核心的势力范围。"],["命主","紫微里另有一颗命主星,补命宫看不到的那一层底色。"],["身主","紫微里另有一颗身主星,管后天的行动与身体那一面。"],["五行局","用纳音给整张盘定一个局(水二局、木三局等),大限的起法以此为准。"],["自化","宫干让本宫星曜自己生出四化,代表这一宫的事容易自己发酵。"],["飞星","拿一个宫的宫干去四化别的宫,看事情从哪来、往哪走。"],["正曜","十四主星。「无正曜」指命宫没有主星,要借对宫来看。"],["借对宫","命宫无主星时借对宫主星来读,性格更依赖环境与身边的人。"],["双星","两主星同宫,按组合读,不能只看其中一颗。"],["墓库","地支里的仓库。五行入墓代表这股力量收着,不是没有。"],["伏吟","干支重复出现,事情容易原地打转、反复。"],["反吟","天克地冲,变动与对撞的意味更明显。"]],T={liuyao:{用神:"你问的这件事对应的那一类六亲,断卦先把它找出来。",月令:"起卦时的月份,用来看各爻旺不旺。",日支:"起卦当天的地支,与月建一起决定爻的力量。",大运:"六爻不看大运,这里只取当前这一件事的象。",流年:"六爻一般不看流年,看的是眼下这一卦的时段。"},ziwei:{用神:"紫微斗数以「用神宫」的强弱看事情,不取五行喜忌那套。",日主:"紫微斗数不看日主,看的是命宫与星曜组合。",十神:"紫微斗数用四化与星情,不用十神。"}};function r(n,h){const k=(Array.isArray(n)?n:[n]).filter(Boolean).join("");if(!k)return[];const y=T[h]||{};return p.filter(([b])=>k.includes(b)).map(([b,O])=>({term:b,plain:y[b]||O})).slice(0,10)}const t={career:["这份工作要不要动,明年哪几个月是窗口?","和上级的关系该硬碰还是绕开?","现在转方向,代价主要在哪儿?"],wealth:["这笔钱现在投出去合适吗?","我的财主要来自工资还是副业?","今年哪段时间最容易破财?"],love:["这段关系能走到哪一步?","什么时候适合把关系定下来?","我在关系里最容易忽略什么?"],health:["哪段时间身体最需要留意?","作息怎么调最划算?","查体和作息之外,还有什么是能自己控制的?"],study:["今年再考一次,胜算在哪、短板在哪?","复习节奏该怎么排?","要不要换目标院校或岗位?"],travel:["这次出门顺不顺,哪天走更好?","换个城市生活,合不合适?"],general:["今年最该抓的一件事是什么?","最该避开的坑在哪?","接下来三个月,什么时间点值得留意?"]};function d(n,h){const k=h&&h.direction||"general";return(t[k]||t.general).slice(0,3)}return{buildAnswer:ue,buildPlain:I,dimensionPlain:D,buildGlossary:r,buildFollowups:d}})(),K["interpret-knowledge"]=(function(){const H=[{id:"bazi-yueling-siquan",system:"bazi",dims:["overall","career"],gist:"月令不是「一个月」,是当月最有权的那一个字。",detail:"月令藏干按本气、中气、余气分日用事,本气当权的时间最长。所以判旺衰先看日主在月令是得令还是失令——得令者未看全局,已有三分底气。本插件按 30 日表算出「生在本月第几日、哪一干当权」,给的是月内轮值这一层细节;旺衰与取格仍以月令本气、透干与会支为主,不随轮值改判。三命通会卷二·论人元司事另列一套日数(寅月五日/五日/二十日),与本插件取的通行表不同;原文并列,不改判。",source:"《子平真诠》论用神;人元司权分日之说见《渊海子平》;三命通会卷二·论人元司事(典藏网 7529)另列一套日数",status:"variant",note:"各家对中气、余气各主几日分法不同(有 7/7/16、9/3/18 等多说);本插件固定通行 30 日表(如寅月戊7丙7甲16),节当日为第 1 日,第 31 日以后按本气算、不硬分摊。三命通会此本寅月作 5/5/20、卯月作 7/23,与通行表不同,两表各照原样。司权表与本柱藏干表口径不同(子月壬、卯月甲、午月丙、酉月庚、亥月戊只出现在司权表里),两表各照原样;取格不随轮值改判。"},{id:"bazi-tonggen-tougan",system:"bazi",dims:["overall","career"],gist:"天干是露在外面的样子,地支是藏在地下的根。",detail:"同一个五行,透在天干叫「显」,扎在地支叫「有根」。只有天干没有地支,是看着有、使不上劲;只有地支不通天干,是有实力、不显眼。判断一个人能不能扛事,看的就是根有多深。",source:"《滴天髓·干支总论》「天全一气,不可使地德莫之载;地全三物,不可使天道莫之容」",note:"常被署给《滴天髓》的「地支所藏之干,本静以待用,透出干头,则显其用矣。故干以通根为美,支以透出为贵」,出自《子平真诠》卷一论十干十二支的注文——滴天髓底本与沈孝瞻原文里都查不到这句,注文自己引的才是上面那句滴天髓。所以本卡引可核的原文,注文只作说明。",status:"settled"},{id:"bazi-wangxiang",system:"bazi",dims:["overall","health"],gist:"旺相休囚死是五行在当月的五种状态,不是吉凶等级。",detail:"以月令五行为基准:当令者旺、我生者相、生我者休、克我者囚、我克者死。它是「此刻谁说话有分量」的相对排序,换个季节就整体重排,不能当固定评价。",source:"《五行大义》旺相休囚死;历代命书沿用",status:"settled"},{id:"bazi-shensha",system:"bazi",dims:["overall","love"],gist:"神煞是标签,不是判决。",detail:"神煞给盘面加注脚(如「这个组合常被叫作天乙贵人」),吉凶仍要看格局、旺衰、行运三件事。单见一颗凶煞不足以断凶,单见一颗吉星也不足以断吉——这是历代命书反复强调、而市面软件常忽略的一条。《滴天髓·女命章》说得更直接:「三奇二德虚好语,咸池驿马半推详」——三奇、二德是空口说好话,咸池、驿马顶多参考一半。",source:"《三命通会》神煞篇;《滴天髓·六亲论·女命章》贬神煞语;《子平真诠》力主「神煞不主吉凶」",status:"settled"},{id:"bazi-geju",system:"bazi",dims:["career"],gist:"先看月令能不能取格,取不到才论从格、化气。",detail:"月令有可用之神(透干或会支有力),按正格论;月令无用、全局一边倒,才考虑从格;日干与相邻天干五合、且月令有化神之气,才论化气格。顺序颠倒会把普通格局误判成特殊格局。",source:"《子平真诠》「论用神」;从化条件见《滴天髓》",status:"variant",note:"化气格成立条件各家宽严不一(是否要求月令为化神、是否允许有根),本插件按「有合且月令得化神之气」从严处理。"},{id:"bazi-tiaohou",system:"bazi",dims:["overall","health"],gist:"冬夏生人先调温,其余先看扶抑。",detail:"调候是针对出生季节的温度校正:冬生水冷木寒,先要火来解冻;夏生火炎土燥,先要水来润泽。调候与扶抑冲突时,多数命书主张先调候,因为寒暖失衡时,再怎么补强弱也难受。",source:"《穷通宝鉴》(拦江网)调候用神体系",status:"variant",note:"调候与扶抑的优先级各家有争论,也有主张以扶抑为主、调候为辅的。本插件同时给出两者,不替你定谁优先。"},{id:"bazi-suiyun",system:"bazi",dims:["overall","career"],gist:"大运管十年基调,流年管当年触发。",detail:"大运像换了条路,流年像这条路上某一段的天气。岁运并临(当值大运与流年干支相同)、运年反吟(大运与流年天克地冲)、大运伏吟(大运与原局某柱干支相同)、大运反吟(大运与原局某柱天克地冲)、流年伏吟(流年与原局某柱干支相同)、流年反吟(流年与原局某柱天克地冲),是传统上标记「变动较大」的年份,属于提示而非断语。本插件逐年标出六类信号:当值大运按该年立春到次年立春的区间取,交运落在年内时前后两步并列;大运与本命四柱的伏吟/反吟整步大运都在,会连续多年重复列出;只标干支重复与对冲,不折分数。原文里「返吟」指岁运与日柱相对、「伏吟」指岁运压日,与本插件「干支相同为伏吟、天克地冲为反吟」不是同一套定义,两者并列、不合并。",source:"《三命通会》卷二·总论岁运(https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7539.html);岁运并临之说出自《渊海子平》",status:"variant",note:"「岁运并临主大凶」是流传最广也最被滥用的说法,本插件只作变动提示,不断吉凶;大运与本命四柱的伏吟/反吟会连续多年出现,不逐年加重;四柱十神层面的引化也未叠入。"},{id:"bazi-liuqin",system:"bazi",dims:["love"],gist:"六亲有「星」也有「宫」,两处一起看才立体。",detail:"星是十神(男命财为妻、女命官杀为夫、印为母一类),宫是四柱位置(年月日时对应祖上、父母、配偶、子女)。星宫同参:星现而宫破,缘分有但过程有阻;宫稳而星不现,关系平淡而少波折。",source:"星宫同参见《子平真诠》《滴天髓》",status:"variant",note:"女命以官杀为夫是主流,亦有以日支为主、官杀为辅的取法;本插件按主流取,并在文案中说明。"},{id:"bazi-kongwang",system:"bazi",dims:["overall"],gist:"空亡不是「没有」,是力道打折、抓不实。",detail:"日柱所在旬之外的两个地支为旬空。落空之支力量减弱,但逢冲、逢合、逢填实之期可以「出空」,届时又恢复作用。所以空亡要看它是否被救,不宜一见到空就断无。",source:"旬空出空之说见《渊海子平》;六爻《卜筮正宗》用法相通",status:"variant",note:"空亡是否逢空即空,各家分歧较大,本插件只标注空亡,不做吉凶推断。"},{id:"bazi-xingchong",system:"bazi",dims:["overall","love"],gist:"合能解冲,冲也能破合——关系不是单向的。",detail:"刑冲合害要按力的大小与先后比:两支相冲,若有第三支与其中一支相合,冲力被牵制;反之先合后冲,合局也会被冲散。三合成局通常要求月令或日主参与,否则只是拱合,力量有限。",source:"《三命通会》论刑冲合害",status:"settled"},{id:"bazi-sanming-duizhao",system:"bazi",dims:["overall","career"],gist:"同一个格,子平真诠讲怎么用,三命通会讲怎么取。",detail:"两书不是谁替代谁:子平真诠以月令取用神、论顺逆成败,重「用」;三命通会按十神逐格立论,重「取」与「忌」。同看正官格,前者问财印护官、伤煞混杂,后者先说「止许一位,多则不宜」。此本正财、偏财分章,两格各取本格一条;七杀没有单列「论偏官」,取卷五「官煞去留杂论」讲混杂时的去留。本插件把两条并列,不合并成一句断语。",source:"《子平真诠》论正官等篇;《三命通会》卷五、卷六论十神与官煞去留",status:"variant",note:"两书成书年代与流派不同,用语有出入;本插件照录通行本,不做校勘改字,也不替两家调和。"},{id:"bazi-geju-chengbai",system:"bazi",dims:["overall","career"],gist:"格有成有败:成中带忌会打折,败中有救还能转成。",detail:"月令取到格只是起点。成格要看有没有带忌——官逢财又逢伤、官透而被合、财旺生官又逢伤,都会把成格打折;败格也看有没有救应——印来解伤、合来清煞、劫来解财,败中可转。所以判格不能只报一个格名。",source:"《子平真诠》九、论用神成败救应",status:"variant",note:"各家对成格条件与带忌轻重的排序不同(有先看刑冲、有先看合化),本插件只把原文与成败方向并列摆出,不逐盘判成破。"},{id:"bazi-huagi-bianhua",system:"bazi",dims:["overall","career"],gist:"月令用神会因合化而变:同一个起点,取用可以不同。",detail:"用神本从月令取,但月令藏干不一,透出的字不同、支会合局不同,取用就跟着变:丁生亥月本为正官,支全卯未化为印;己生申月本属伤官,藏庚透壬化为财。所以看到化气格,要回头核对月令与合局,不能只按本气定格。",source:"《子平真诠》十、论用神变化;化气条件各家另论",status:"variant",note:"化气格成立条件各家宽严不一(是否要求月令为化神、日主是否允许有根),本插件只列条件、附原文,不据此断定化气已成。"},{id:"bazi-zaji-quyong",system:"bazi",dims:["overall","career"],gist:"辰戌丑未是杂气月:先看透干,再看会支。",detail:"四墓(辰戌丑未)每个字都藏着不止一气,用神不一,所以叫杂气。子平真诠的取法是:藏干透到天干的先用(甲生辰月,透戊用偏财、透癸用正印、透乙用月劫);没有透干,再看地支有没有与月支会成三合局(辰月逢申子会水,就取水印)。本插件按「透干 → 三合会支 → 本气」的次序取格,依据里写明走的是哪一条,并把《论杂气如何取用》附在结果里。",source:"《子平真诠》十六、论杂气如何取用",status:"variant",note:"原文说「兼透则兼用」,但只给一个格名时总要落到一个藏干;本插件只取最先透出的那一干,会支也只认三合、不认三会方,且不判原文所说的「有情 / 无情」,取舍次序各家另有说法。"},{id:"bazi-zhuanwang-yuanwen",system:"bazi",dims:["overall","career"],gist:"专旺五格各有专章:成格要看局全带印,不只看身强。",detail:"三命通会卷六曲直、炎上、从革、润下、稼穑五篇各立一格:曲直须亥卯未带亥,炎上须寅午戌带寅,从革须巳酉丑带丙丁巳午,润下须申子辰全,稼穑取四季土。原文的条件都比「身强」细:要局全、要带印或带火炼金,还要防冲刑死绝。本插件把命中的那一篇附在结果里,只作结构说明。",source:"《三命通会》卷六·曲直、炎上、从革、润下、稼穑",status:"variant",note:"专旺是否必须成方局、是否允许一点官杀财,各家宽严不一;原文五篇之间条件也不齐(润下重忌冲刑、稼穑重四季土)。本插件只按「同类+印 ≥5、官杀财皆弱」列出并附原文,不据此断贵贱,也不补专旺的破格条件。"},{id:"bazi-congge-yuanwen",system:"bazi",dims:["overall","career"],gist:"从格是身无归处才「弃命」相从:一见根气就破格。",detail:"三命通会卷五弃命从煞、卷六弃命从财各有一篇:从煞要煞重身柔、四柱无一点比肩印绶;从财要财会成局、日干无气,原文说「若逢根气,命损无猜」。两篇都说行运喜财煞旺地、忌扶身。本插件只在盘面出现从财格或从杀格时附上对应原文;从儿、从强没有单章,不硬凑。",source:"《三命通会》卷五·弃命从煞;卷六·弃命从财",status:"variant",note:"从格成立条件各家分歧很大:是否允许日主有微根、阴阳干从与不从(原文说阳木不能从)、从儿与从强算不算正从,说法不一。本插件只列结构与原文,不据此断吉凶,也不补从儿、从强的原文。"},{id:"bazi-tongguan",system:"bazi",dims:["overall","career"],gist:"两神相战要有中间一行接上,对峙才化成相生。",detail:"用神与忌神两行在局中各 ≥1.5 分、又正好相克时,五行里只有一行能接上:克方生它、它再生被克方(金克木则以水为关,土克水则以金为关)。滴天髓用织女、牛郎隔关相望作比,说「此关若通也,相邀入洞房」。本插件只按局中分量点出这一行,并写明它是不是忌神。",source:"《滴天髓》通神论·通关;五行生克为通行说",status:"variant",note:"各家对「两神相战」取哪两神不一(有取日主与官杀、有取用神与忌神、有取局中最旺两行),本插件固定取「用神与克它的忌神,且两行各 ≥1.5 分」;通关一行只按五行生克唯一确定,不据此断吉凶,也不判通关之力是否够用。"},{id:"ziwei-sanfang",system:"ziwei",dims:["overall","career"],gist:"看一个宫,要看它对面和左右三个宫。",detail:"三方四正=本宫加对宫、三合两宫。命宫的三方是财帛、官禄、迁移,代表钱、事、外出的环境;只看本宫会漏掉一半信息,因为紫微断的是宫与宫之间的互动,不是单宫星曜的堆叠。",source:"《紫微斗数全书》三方四正说",status:"settled"},{id:"ziwei-poge",system:"ziwei",dims:["overall","career"],gist:"格局成立不等于落定:三方四正见煞忌空劫,吉格也会破格。",detail:"《紫微斗数全书》论人命入格说「若居陷地又加杀化忌,为下格之命,不以入格而论也」;谈星要论也说「及命宫星辰庙旺,三方有恶星守照破格」。本插件因此把「成格」与「破格」分开判:吉格先按星位成立,再看命宫三方四正是否有擎羊、陀罗、火星、铃星、地空、地劫或化忌;有则标破格并写明是哪颗星落在哪一宫。忌格本身是风险结构,不另判破格。",source:"《紫微斗数全书》卷三·论人命入格、谈星要论",status:"variant",note:"破格判据本插件统一取「三方四正见煞忌空劫」,未逐格细分煞轻煞重;各派对「入格」宽严亦有异说,故只作结构提示。"},{id:"ziwei-sihua",system:"ziwei",dims:["overall","career"],gist:"四化是变化的方向,不是吉凶等级。",detail:"生年四化定先天基调(禄主得、权主掌、科主名、忌主执),宫干四化定后天演变;自化是宫干化出的星就在本宫,主此宫之事自己会起变化。同一个忌,落在六亲宫与落在财帛宫,含义完全不同。",source:"《紫微斗数全书》四化篇;宫干飞化见飞星派",status:"variant",note:"三合派重星情与格局、飞星派重宫干飞化,两派读法差异明显。本插件给出生年四化与宫干自化,未做完整飞星串连。"},{id:"ziwei-miaowang",system:"ziwei",dims:["overall"],gist:"庙旺得利平不陷,说的是星在这个宫舒不舒服。",detail:"同一颗星落在不同宫位,发挥程度差别很大。庙旺是得地,平陷是不得地;不得地不等于不好,只是这颗星的长处不容易发挥,需要借三方吉星来补。",source:"《紫微斗数全书》诸星庙旺表",status:"variant",note:"太阳、太阴在少数宫位的庙旺标注各家有出入;本插件只标十四主星,不硬标辅星。"},{id:"ziwei-daxian",system:"ziwei",dims:["career"],gist:"大限定十年主题,流年定当年事件。",detail:"大限看这十年主要在忙什么,流年看其中某一年被什么触发。两者的四化会叠在同一些宫位上,叠加处就是这十年里的关键点——只看流年而不看大限,容易把小事放大。",source:"《紫微斗数全书》大限流年篇",status:"settled"},{id:"ziwei-shengong",system:"ziwei",dims:["overall"],gist:"命宫是「你本来是谁」,身宫是「你后来把力气放在哪」。",detail:"身宫不独立成宫,而是寄在某一宫里(如寄财帛、寄官禄)。它标出中年之后的着力点:命宫强而身宫弱,多为主观强但落地慢;身宫得地,做事更容易见效。",source:"《紫微斗数全书》命身宫说",status:"variant",note:"身宫寄宫的取法各家一致,但身宫与命宫谁更重,各家侧重不同。"},{id:"ziwei-kongjie",system:"ziwei",dims:["overall","career"],gist:"空劫主计划外的变动,遇禄则财来财去。",detail:"地空地劫在紫微里代表落空与抽离:落财帛多主钱财不易积累,落官禄多主方向反复。若与禄存、化禄同宫,常见进得快、出得也快;与忌同宫则容易因变动而受挫。",source:"《紫微斗数全书》空劫条",status:"variant",note:"空劫是否见禄反吉,各家说法不一,本插件只提示变动性质,不判吉凶。"},{id:"ziwei-feixing",system:"ziwei",dims:["overall","career"],gist:"宫干定四化,星落哪宫,这一宫的力就往哪边走。",detail:"生年四化是先天带的,飞星四化是宫位自己去找的:每一宫的宫干定出禄权科忌四颗星,那几颗星落在哪一宫,就是这一宫的力气往哪边使。所以同一个「化忌」,从命宫飞出去和从财帛飞出去,说的是两件事。",source:"《紫微斗数全书》四化篇;中州派宫干四化传法",status:"variant",note:"飞星派(如钦天四化)把宫干四化当主线,三合派只作辅助;庚干四化各派另有异说,本插件取中州派常用表。飞星串连与三方四正复合飞化现已给出,但未叠大限流年四化。"},{id:"ziwei-sanfang-fei",system:"ziwei",dims:["overall","career"],gist:"三方四正一起飞,看四股力会到哪一宫。",detail:"单宫飞化只看本宫宫干把四化送去哪里;三方四正复合飞化把本宫、对宫与两个三合宫共四宫的宫干四化同时摊开,约 16 条,按落宫归堆,落到同一宫的就是会照。会在一处的化越多,那一宫被牵动的力道越集中;两忌以上会宫、禄忌同宫、三化以上会宫、宫干化出又落回本宫(自化),是这一层最常取的几种情形。",source:"《紫微斗数全书》四化篇;飞星派三方四正同飞说",status:"variant",note:"飞星派对「三方四正一起飞」是否成立、会照要不要折成分数,各家口径不一;本插件只做落宫归堆与会照标记,不折分数,也未叠大限流年四化。"},{id:"ziwei-jichuanji",system:"ziwei",dims:["overall"],gist:"忌转忌:化忌落进哪一宫,就从那一宫再化出去。",detail:"串连是跟着同一支化逐宫走:命宫化忌入父母,父母宫的宫干再化忌往下一宫,直到绕回走过的宫成环。环越短,越容易在同一组宫位上反复;走不出去(传统说「忌出不去」)不等于凶,只是这条力没有别的出口。",source:"《紫微斗数全书》四化篇;忌转忌串连法",status:"variant",note:"串连几跳为止、是否允许借对宫飞化,各派不一;本插件只跟单一支化逐宫走,走满 12 宫或成环即停。"},{id:"liuyao-yongshen",system:"liuyao",dims:["overall","work","wealth","love","health","study"],gist:"问什么就以哪一类六亲为用神,这一步定错,后面全盘白算。",detail:"取用按所问之事:求财与男命妻缘看妻财,工作职位考核看官鬼,文书合同学历看父母,健康以官鬼为病、子孙为医药,出行以世爻为用,感情男看妻财、女看官鬼。用神在卦上就取那一爻,出现两处记「两现」;用神不上卦,按本宫首卦同六亲的爻位取伏神,再看飞伏生克。本插件把这些位置与动变、旬空、卦体标签一一对上,但不替你选两现之中的主用。",source:"《卜筮正宗》用神章、伏神章;《增删卜易》用神章",status:"settled"},{id:"liuyao-wangshuai",system:"liuyao",dims:["overall"],gist:"月建管当令,日辰管生杀。",detail:"月建决定这一爻在这个月有没有气;日辰能生能克能冲能合,作用更直接。月破之爻当月无力;日冲则看动静——静爻被日冲为暗动,动爻被日冲为冲散。",source:"《卜筮正宗》月建日辰章",status:"settled"},{id:"liuyao-dongbian",system:"liuyao",dims:["overall"],gist:"动爻是「事情自己在动」的那一处。",detail:"动爻能生克静爻,静爻不能反克动爻。变爻对动爻有回头生、回头克两种反作用;化进神(如寅化卯)主加强,化退神(如卯化寅)主减弱。一爻独发看此爻,多爻乱动则看用神受不受伤。",source:"《卜筮正宗》动变章;《增删卜易》进神退神",status:"settled"},{id:"liuyao-fushen",system:"liuyao",dims:["overall"],gist:"用神不上卦,就去本宫首卦的同位取伏神。",detail:"本卦六爻里没有用神那一类六亲,就叫用神不上卦。取法是回到本卦所属宫的首卦(八纯卦),找出该六亲所在的爻位,那一爻即伏神,本卦同一爻位上的爻叫飞神。伏神要「得出」才有用:飞神生伏神、伏神克飞神、日月生扶都算得力;飞神克伏神则受压难出。本插件给出伏神爻位、干支五行、飞伏生克,并按月建日辰归成四档出伏条件(可出 / 有助有压 / 受压难出 / 未得助);只判条件,不出应期日期。",source:"《卜筮正宗》伏神章;《增删卜易》伏神篇",status:"variant",note:"首卦里同一六亲也可能出现两次(如乾宫乾为天的父母在三爻与上爻),此时取哪一爻为伏神各家不一;本插件把候选都列出并标「伏神两现」,不代选。出伏条件的归并口径:飞生伏、伏克飞、日辰生/比和、月建旺/相算助,飞克伏、日辰克、月破算压;有助无压为「可出」,有助有压为「有助有压」,有压无助为「受压难出」,两者都无为「未得助」。四档只并列条件、不排各家优先级;旬空只标出,不并入档位。应期各家分歧更大,仍不输出日期。"},{id:"liuyao-yongshen-shuai",system:"liuyao",dims:["overall","work"],gist:"用神旺不旺,看月建给的气与日辰当天的扶克。",detail:"月建管「这一段时令」:爻五行与月支五行同气为旺、受月令生为相、生月令为休、克月令为囚、被月令克为死。日辰管「当天这一股力」:日辰生爻为生、克爻为克、同气为比和,反过来则是爻泄日、爻耗日。此外月建冲爻叫月破,日辰冲静爻叫暗动、冲旬空之爻叫冲空。本插件把这几项折成标签逐爻列出,不折成分数。",source:"《增删卜易》月建章、日辰章;《卜筮正宗》月建论",status:"variant",note:"月破、暗动、冲空三者各家取法不完全一致(有派别把日冲动爻也叫暗动,有派别只认旺相之爻暗动);本插件按「月建冲=月破、日冲静爻=暗动、日冲旬空=冲空」这一套给标签,并注明用了哪一支月建。"},{id:"liuyao-quanggu-shuai",system:"liuyao",dims:["overall","work"],gist:"全卦逐爻看月建,才看得出气聚在哪一头。",detail:"月建管这一段时令的旺衰、日辰管当天的扶克,落到全部六爻逐爻判定:每爻都出月令五态(旺相休囚死)与日辰五关系,并标月破、暗动、冲空。世爻、应爻、动爻与旬空另标,五态分布能看出气是聚在世应还是散在旁爻——用神只是其中一处落点,不看全卦容易把一处当全局。",source:"《增删卜易》月建章、日辰章;《卜筮正宗》六爻旺衰论",status:"variant",note:"各家对月破、暗动、冲空的取法不完全一致,是否给六爻折力重(分数)分歧更大;本插件只给状态标签与五态分布,不折分数。"},{id:"liuyao-yingqi",system:"liuyao",dims:["overall","career"],gist:"应期是「什么时候见分晓」,不是「哪天」。",detail:"近事以日计、远事以月计;常见取法是等用神逢值、逢冲、逢合之期,或等忌神受制之期。本插件只做前一半:把用神(不上卦则取伏神)的逢值、逢冲、逢合三支列出,旬空另标出空与冲空,再按月建五态给「偏速 / 偏缓 / 待解 / 未定」一个快慢方向;忌神受制与具体日期仍未做。应期法各家互有出入,同一卦不同取法可以差出很远,所以只作时间窗口的提示。",source:"《卜筮正宗》应期章;《增删卜易》",status:"variant",note:"应期取法(值日、冲、合、填实、旬空出空)各家优先级不同,本插件只并列触发支、不排先后,也不换算日期;近事以日计、远事以月计,用哪把尺由事情远近决定,不代选。"},{id:"liuyao-liushen",system:"liuyao",dims:["overall","love"],gist:"六神是这件事的味道,不是主角。",detail:"青龙主喜庆与正事、朱雀主口舌与文书、勾陈主田土与迟滞、螣蛇主虚惊与缠绕、白虎主伤损与急迫、玄武主暗昧与失脱。六神只作取象的修饰,断吉凶仍以六亲旺衰生克为主。",source:"《卜筮正宗》六神章",status:"settled"},{id:"liuyao-liuchong",system:"liuyao",dims:["overall"],gist:"六冲卦讲「散」:起落快、来去急。",detail:"六冲不按「爻位相邻」判,而是看六个地支能不能正好配成子午、寅申、辰戌三组对冲。按纳甲实排,八纯卦之外天雷无妄、雷天大壮也成六冲。冲不是单纯的坏:近病逢冲主速愈、久病逢冲才忌;求财问婚,冲多主聚不住。",source:"《卜筮正宗》六冲章;《增删卜易》卦体说",status:"variant",note:"通行口诀多把六冲限为八纯卦,本插件按纳甲地支实配判定,故多出无妄与大壮两支;《增删卜易》卦例里这两卦确被称作六冲,可互证。"},{id:"liuyao-liuhe",system:"liuyao",dims:["overall","love"],gist:"六合卦讲「成」:容易谈拢,也容易黏住。",detail:"六个地支正好配成子丑、寅亥、卯戌、辰酉、巳申、午未三组相合,即六合卦,共天地否、地天泰、地雷复、雷地豫、山火贲、水泽节、泽水困、火山旅八支。六合主和合、拖延:谈事情容易成,也容易久拖不决;问病则忌缠绵。",source:"《卜筮正宗》六合章",status:"settled"},{id:"liuyao-fanyin",system:"liuyao",dims:["overall","work"],gist:"反吟主反复:去了又来、定了又改。",detail:"卦反吟有两种成法:一是变卦某宫的三爻地支与本卦对应宫正好全冲;二是本卦之宫与变卦之宫在后天八卦上正对(乾巽、坎离、艮坤、震兑)。爻反吟则是动爻变出的地支回头冲本爻。无论哪种,取象都是反复、翻覆、旧事重提。",source:"《增删卜易》反吟伏吟篇;《卜筮正宗》",status:"variant",note:"各家对「卦反吟」是否只认地支全冲有分歧;本插件的八卦正对一路,是从《增删卜易》卦例(如山地剥之坤为地、风天小畜之乾为天)反推出来的。"},{id:"liuyao-fuyin",system:"liuyao",dims:["overall"],gist:"伏吟主呻吟:事情在原地打转。",detail:"卦变了,纳甲地支却没变,叫卦伏吟。纳甲上只有乾与震共用子寅辰、午申戌一套地支,所以卦伏吟只会出在乾与震互换的卦上,例如天雷无妄之雷天大壮、天风姤之雷风恒。动爻变出的地支与本爻同支,则是爻伏吟。伏吟取象是欲动不动、原地反复,常指人想动而形势不许。",source:"《增删卜易》伏吟篇;《卜筮正宗》",status:"variant",note:"另有「伏吟以用神受困论」的说法,不限于卦体;本插件只报卦体层面的伏吟与动爻伏吟,不推断吉凶轻重。"},{id:"liuyao-jintui",system:"liuyao",dims:["overall"],gist:"动爻变出同五行顺次之支,为化进神;反向为化退神。",detail:"动爻变出的地支与本爻同五行、且在顺次上往前一步,叫化进神;倒退一步叫化退神。八对是:寅→卯(木)、巳→午(火)、申→酉(金)、亥→子(水),土一支成环,丑→辰→未→戌→丑。同五行但不相邻(如寅→辰)不算。进神取象是这一爻代表的人或事有后劲、势在往前;退神取象是渐渐退气、按原势头推会落空。",source:"《增删卜易》进神退神章",status:"settled"},{id:"liuyao-jintui-yong",system:"liuyao",dims:["overall","work"],gist:"化进化退要看是用神还是忌神,还要叠月建日辰。",detail:"进神退神本身只说明这一爻的向外趋势:用神化进为得力,忌神化进则为患加剧;用神化退是力衰,忌神化退反而是解脱。传统还要看它在本月令衰旺、有没有日辰生扶,空亡或受克时进者未必能进。本插件把进退与爻位标出来,再按月建五态给一档力重——得令则进得动、退得慢,失令则进得虚、退得实,月破压过一切;只给档位,不折成加权分数,吉凶仍落在用神与忌神那一层判。",source:"《增删卜易》进神退神章、用神章",status:"variant",note:"土之进退次序各家说法不完全一致,有以丑→辰→未→戌为进、也有只取辰戌丑未相对者;本插件按丑辰未戌成环处理,并用《增删卜易》卦例中「未土化戌土为进」「戌土化未土为退」对拍。喜忌分档的出处是《增删卜易》卷二·進神退神章第二十九:「所喜者宜於化進,所忌者宜化退神」;把「喜/忌」具体落到用神/忌神两档,是本插件的引申。"},{id:"meihua-tiyong",system:"meihua",dims:["overall"],gist:"动的那一卦为用,不动的那一卦为体。",detail:"体代表自己、用代表所问之事。体克用主可控、用克体主受制、用生体主得助、体生用主付出。再看互卦与变卦判断中段与结局——梅花只取象不排盘,落点比六爻粗。",source:"《梅花易数》体用篇",status:"settled"},{id:"daliuren-sike",system:"daliuren",dims:["overall"],gist:"四课看事从哪来,三传看事往哪去。",detail:"四课由日干日支的阴阳与天地盘相叠而得;三传依九宗门(贼克、比用、涉害、遥克等)取初传,再顺推中传末传。三传之间的生克与空亡,是判断事情走向的主线。",source:"《大六壬大全》;九宗门取传法",status:"settled"},{id:"qimen-yinyang",system:"qimen",dims:["overall"],gist:"冬至后阳遁、夏至后阴遁,局数由节气与三元定。",detail:"一年分阴阳两遁,各九局;局数取决于当前节气与上中下三元(符头定元)。取局流派有拆补、超神接气、置闰三种,同一时刻可能排出不同局数——这不是算错,是流派差异。",source:"《烟波钓叟歌》;拆补与置闰见《奇门遁甲统宗》",status:"variant",note:"三种取局法在节气交接前后差异最明显,本插件同时实现三种,可在参数里指定。"},{id:"qimen-jixing",system:"qimen",dims:["overall","work"],gist:"六仪落刑宫叫击刑,是宫位条件不是判决。",detail:"六仪按所配地支相刑:甲子戊落震三(子刑卯)、甲戌己落坤二(戌刑未)、甲申庚落艮八(申刑寅)、甲午辛落离九(午自刑)、甲辰壬落巽四(辰自刑)、甲寅癸落巽四(寅刑巳)。天盘六仪落到自己那一宫即击刑,取象是受制、掣肘、旧账翻出来,多用来量这个符号本身使不使得上力。",source:"《烟波钓叟歌》刑格注;《奇门遁甲统宗》",status:"variant",note:"有流派只论天盘六仪击刑,也有把地盘一并算的;本插件只判天盘,且只作宫位条件,不自动断用神受制。"},{id:"qimen-rumu",system:"qimen",dims:["overall"],gist:"天盘干落墓宫叫入墓:三奇与六仪各按五行墓库判。",detail:"按五行墓库推:乙木墓未(坤二)、丙丁火墓戌(乾六);六仪中戊墓戌(乾六)、己庚墓丑(艮八)、辛壬墓辰(巽四)、癸墓未(坤二)。天盘干落到自己的墓宫即入墓。取象是收束、藏起来、事情压住不动;好坏要看所问之事——问收藏、问了结,入墓未必是坏事。",source:"《奇门遁甲统宗》三奇入墓条;六仪入墓见《奇门遁甲秘笈大全》卷十五;五行墓库见《五行大义》",status:"variant",note:"各家对入墓范围说法不一:有只论三奇,也有把六仪、八门、九星一并论墓的;本插件判天盘三奇与六仪,八门、九星暂不入墓。"},{id:"qimen-ganying",system:"qimen",dims:["overall","work"],gist:"十干克应看天盘干加地盘干:同宫两干相遇,先取成象,再与门星神合看。",detail:"十干克应把天盘干与地盘干的组合收成 100 组,每组一个格名与一段取象。例如甲加丙「青龙返首」主大吉大利,甲加庚「值符飞宫」主吉事不成,乙加辛「青龙逃走」主失财逃亡。它回答的是「这两股气碰在一起像什么」,不单独回答「事情成不成」;同一组落在不同门、星、神与旺衰下,轻重会变。",source:"《奇门十干应克》通行 100 组表;《奇门遁甲元灵经》卷二「天盘加地盘吉凶」存甲、乙、丙三组异文",status:"variant",note:"100 组表各家措辞不一,本插件取通行表;元灵经只存三组且文字不同,两本并列、不合并。十干克应只作取象,不自动折吉凶。"},{id:"qimen-wangshuai",system:"qimen",dims:["overall","work"],gist:"门、星与天盘干按月令分旺相休囚死,只说明力量强弱。",detail:"旺相休囚死以月支五行为尺:与月令同气为旺,月令所生为相,生月令为休,克月令为囚,被月令所克为死。八门、九星与天盘干(三奇六仪)各按自身五行对月令,得出该符号当下「使不使得上力」。比如午月火旺,景门(火)旺、生门死门(土)相、休门(水)囚、开门惊门(金)死,天盘丙丁(火)旺、庚辛(金)死。",source:"《奇门遁甲统宗》门星旺衰条;五行旺相休囚死见《五行大义》",status:"settled"},{id:"qimen-wangshuai-yong",system:"qimen",dims:["overall","work"],gist:"旺衰是助力,不单独定吉凶:门旺而宫克门仍受制。",detail:"月令旺衰只回答「这个符号自身有多少气」,不回答「事情成不成」。取象时要和宫位关系叠起来看:门旺但同宫门克宫(门迫),力量被宫位掣肘;门囚但宫生门,仍得宫助。星同理,旺星落宫若被克,也难全其用。",source:"《奇门遁甲统宗》;《烟波钓叟歌》门宫生克注",status:"variant",note:"有流派按时令而非月令论门星旺衰,也有以落宫五行当令者;本插件统一按月支五行判,并在解读里明确只作强度参考。"},{id:"qimen-gan-shengke",system:"qimen",dims:["overall","work"],gist:"天盘干落宫论生克:干克宫主进取,宫克干受制,比和相安。",detail:"天盘干(三奇六仪)落到某宫,就看干的五行与该宫五行的生克:干克宫,是符号压向环境、偏进取与主动;宫克干,是环境反过来管住符号、偏受制与掣肘;干生宫,力量往外泄;宫生干,环境给力;比和,两下相安。这一层与门宫关系(门迫、宫制门)并列,各说各的,不互相替换;两者同时成立时分别列出,不折成一个分数。",source:"《奇门遁甲统宗》干宫生克条;《烟波钓叟歌》门宫生克注",status:"variant",note:"各家对「干与宫」的取象宽窄不一:有只论干宫、有连天盘干加地盘干(十干克应)一并论的。本插件两层并列:干宫生克判落宫关系,十干克应另判天地盘两干的成象,互不替代。"},{id:"tarot-orientation",system:"tarot",dims:["overall"],gist:"逆位常见的两种读法:削弱,或转向内。",detail:"一派认为逆位是正位力量的减弱与阻塞;另一派主张逆位是同一原型的内向化、未表达。同一张逆位牌,两种读法给出的建议方向可能相反,所以牌阵解读要先把口径讲清楚。",source:"韦特体系传统;逆位读法属近代流派分歧",status:"variant",note:"逆位是否参与解读本身就有分歧(有牌阵传统完全不用逆位)。本插件按削弱加内向综合取象,并在开头声明。"},{id:"bazi-dayun-jiaoqi",system:"bazi",dims:[],gist:"交运按「三日折一年」放大到日、时:起运时刻与每步换运日期都给。",detail:"把「出生 → 起运那一侧节令」的真实间隔按 365.2422/3(约 121.7474 倍)放大,加到出生时刻上就是交运时刻;同一比例也兑现「一日折四月、一时辰折十日」。每步大运在同月同日同时刻换,闰日退到 2 月 28 日。年长取回归年 365.2422 日,故与按 360 日折算的流派会差一两天。",source:"《渊海子平》起运法(三日折一年);《三命通会》论行运",status:"variant",note:"各家对「一年折几日」「交运日是否按 360 日计」取法不一,本插件固定 365.2422 日并把口径写进结果(dayun.jiao.yearDays)。出生时刻或经度一变,交运日会前后移一两天;月柱在交节边界时尤其要复核。"},{id:"liuyao-yingqi-exact",system:"liuyao",dims:[],gist:"具体应期(哪一天应验)本插件尚未推算。",detail:"应期需要综合用神旺衰、动变、旬空出空、日月冲合多层条件,且各家取法不同。当前只给时间窗口的方向性提示(逢值 / 逢冲 / 逢合的触发支,加一个快慢方向),不给具体日期——与其给一个看起来精确、实则拍脑袋的日子,不如留白。",source:"待补:《卜筮正宗》应期章逐条实现 + 已录 128 条卦例对拍(源 138 条)",status:"todo",note:"扩展方向:用《卜筮正宗》卦例里有明确应验日期的条目做回归,先验证再输出。0.50.0 已给出触发支与快慢方向,仍不输出日期。"}];function q(P,B){return H.filter(u=>u.system===P&&u.dims.includes(B))}function be(P){return H.filter(B=>B.system===P&&B.status!=="settled")}return{KNOWLEDGE:H,knowledgeFor:q,caveatsFor:be,STATUS_LABEL:{settled:"文本·诸家一致",variant:"文本·各家有异说",todo:"文本·未录入"},KNOWLEDGE_DISCLAIMER:"以上标签只说明典籍文本的一致程度,不表示该技法经过验证;本插件不对任何技法的预测效度作保证。"}})(),K.limits=(function(){const H=[{id:"validity",title:"任何技法的预测效度都未经检验",text:"能被复核的只有形式层——纳甲、干支关系、十神、宫位这类可由程序重算的部分,错了能查。解释层是各派通行说法,本插件不声称它比别的说法更准,也没有做过能被别人重复的验证。"},{id:"same-chart",title:"同盘不同命,本插件不解决",text:"同一个四柱、同一张命盘对应无数人,从盘面推不出具体某一个人。这是模型的硬缺陷,不是样本不够——换个更大的样本也补不上。所以本插件给的是「这一类盘常见的结构」,不是「你会怎样」。"},{id:"advice",title:"不给医疗、法律、投资建议",text:"不做疾病诊断与用药建议,不判诉讼胜负,不做买卖与借贷决策。三类问题都有各自的专业判断标准,盘面推不出它们。"}],q={liuyao:[{id:"liuyao-no-date",title:"应期不给公历日期",text:"只给地支与快慢档(偏速/偏缓/待解/未定),不折算成「某月某日」。原因不是保守:应期可取逢值、逢冲、逢合、出空、填实多种,任一种都能事后对得上,折算成日期只是把不确定性藏进一个具体数字里。回测 15 条规则命中 51.7%,平均要给 3.55 个候选支(随机基线 29.6%)——高于随机,但撑不起一个具体日期。"},{id:"liuyao-yongshen",title:"用神多现时,不替你选",text:"卦中用神两现时,插件把候选都列出来,不代选。取哪一个直接决定断语方向,各家取舍标准不一,替选等于把一派之见说成唯一答案。"},{id:"liuyao-zhi-date",title:"「某支应事」不等于「那天会发生」",text:"地支只标方向与快慢,不承诺落点。同一支在一天里对应两个时辰、在一个月里对应多个日子,具体哪一天,本插件不判。"},{id:"liuyao-liuyue",title:"不推演流月推进后的二次变化",text:"应期按「当下一个月建 + 日辰」静态算,不模拟下一个月到来后「原来的合被冲开、原本被制住的爻复起」这类连锁。实占里有反例:用神伏藏、本来可靠日辰冲开,但进入下个月建后一冲解掉了原月建对制它之爻的合,制者复起,出伏失败,事情没成。跨月推演还没做,所以应期只能作「该留意哪几支」,不能承诺某个月份。"}],bazi:[{id:"bazi-no-event",title:"不预测具体年份的事件",text:"不判「哪年结婚」「哪年升职」「哪年发财」。岁运并临、运年反吟、伏吟这类只作变动提示、不断吉凶——这些格局在十年里会反复出现,按它们断事,等于每年都能找到一次「应验」。"},{id:"bazi-strength",title:"旺衰是分档,不是评分",text:"旺衰按五行分量与月令得令情况分档,给出的百分比是相对权重,不是命理学的定量指标。各家对「几分算旺」没有共识,本插件不把档位差当成精确结论。"},{id:"bazi-huagi",title:"化气格的真化,仍缺对拍",text:"化气格成立条件各家宽严不一(是否要求月令为化神、日主是否允许有根),本插件按从严一路判,并把条件与原文并列摆出;真化/假化的判定还没有实盘对拍集。"}],ziwei:[{id:"ziwei-feixing",title:"飞星层只报路径,不判吉凶",text:"飞星能做到单一支化逐宫追到成环、三方四正按落宫归堆,但串连与复合飞化叠上大限流年之后的力重还没定,所以只报走到哪、不判好与不好。"},{id:"ziwei-poge",title:"格局只判成立,破格条件未做",text:"34 条格局按独立谓词逐条复算过成立条件,但「什么情况下这条格局不算」各家破法不一,需先定底本,所以现在只判成不成立。"}],meihua:[{id:"meihua-waiying",title:"不取外应",text:"只按时间/数字起卦,用体用生克与互变卦推演。外应(当时的声音、来人衣着、路上所见)不纳入——那部分的解释空间几乎没有边界,纳入后任何结论都能凑出来。"}],daliuren:[{id:"daliuren-yingqi",title:"三传只给结构,应期未做",text:"四课三传按通行起法给出,天将、六亲、旺衰并列;具体应期推演尚未实现,不据此判时间。"}],qimen:[{id:"qimen-bamen",title:"八门九星入墓未做",text:"十干克应与六仪入墓已按通行口径上,八门、九星入墓各家说法不同、需逐条核,暂不实现;用神落宫与击刑入墓的联动只并列条件、不推结论。"}],tarot:[{id:"tarot-claim",title:"牌义取通行义,不做个人化解读",text:"按牌阵位置与正逆位给通行牌义,不做联想式延伸。牌阵与问题的对应关系由你确定,插件不替你判断「该抽几张」「该问什么」。"}]};function be(se){return[...H,...q[se]||[]]}return{UNIVERSAL_LIMITS:H,SYSTEM_LIMITS:q,limitsFor:be}})(),K.guide=(function(){return{GUIDE:{title:"第一次看?先分清「数」「象」「辞」",lead:"这份报告分三层。分清之后,你就知道哪一部分可以信、哪一部分要留个心眼。",layers:[{key:"shu",name:"数",sub:"坐标",text:"干支、节气、纳甲、十神、宫位——这些是算出来的坐标。换个人、换台机器算,结果应该一模一样。",hint:"报告里每个干支、每个宫位、每个局数都属于这一层:可复算,也可复查。这一层错了就是硬错。"},{key:"xiang",name:"象",sub:"关系",text:"合、冲、伏、墓、当位、承乘——坐标之间形成的形状。关系看得见,但「这段关系在人生里叫什么」是命名,各家会有分歧。",hint:"点开每条「依据」,看到的就是这一层:盘面上的事实,还没加解释。"},{key:"ci",name:"辞",sub:"判断",text:"吉凶、顺逆、应期——一句话的结论。自由度最高,也最需要你保留怀疑。",hint:"下面所有的结论都在这一层。它的效度未经检验:当参考,别当判决。"}],check:{title:"看到任何一句断语,先问三句",items:["它落在哪个坐标上(哪一柱、哪一爻、哪一宫)?","关系是什么(生、克、合、冲、伏、墓)?","这个说法是唯一读法吗?"],tail:"三问答不全,那句话就只是在给结论,没有给依据——包括本插件自己给的。"},parts:{title:"纳甲、十神、宫位,各自在干什么",rows:[["纳甲","给每一爻装上地支坐标,让卦能和日辰比较(数)"],["十神","把「生我克我」翻译成人伦关系(象到辞的接口)"],["宫位","把关系分到位置上:年月日时、十二宫(象的空间化)"]],tail:"三个都是中间件,不是知识本身:背熟十神只等于背熟一本词典,会不会读象是另一件事。"},closing:"一句话收尾:数当镜子,象当语言,辞当别人的意见——可以听,不必签收。"}}})(),K.citations=(function(){const{CLASSICS:H,CLASSIC_BOOKS:q}=K.classics||{},{KNOWLEDGE:be}=K["interpret-knowledge"]||{},{PATTERN_BREAK_RULES:se}=K.ziwei||{},fe={ziwei:{name:"紫微斗数全书",author:"宋·陈抟(传)",base:"https://zh.wikisource.org/wiki/紫微斗數全書"},qiongtong:{name:"穷通宝鉴",author:"佚名",base:"https://www.diancang.xyz/xuanxuewushu/qiongtongbaojian/"},daliuren:{name:"大六壬大全",author:"明·郭载騋校(四库全书本)",base:"https://zh.wikisource.org/wiki/六壬大全"},qimen:{name:"奇门遁甲统宗",author:"旧题诸葛亮(传)",base:"https://www.diancang.xyz/xuanxuewushu/qimendunjiatongzong/"},meihua:{name:"梅花易数",author:"宋·邵雍(传)",base:"https://www.diancang.xyz/xuanxuewushu/meihuayishu/"},ditian:{name:"滴天髓",author:"明·京图(通行本)",base:"https://www.diancang.xyz/xuanxuewushu/ditiansui/"},liuyao:{name:"增删卜易",author:"清·野鹤老人",base:"https://zh.wikisource.org/wiki/增刪卜易"}},P=[{id:"zw-poge-sanfang",book:"ziwei",chapter:"卷三·谈星要论",quote:"及命宫星辰庙旺,三方有恶星守照破格。",plain:"命宫主星虽庙旺,三方四正见恶星也会破格。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-poge-ruge",book:"ziwei",chapter:"卷三·论人命入格",quote:"若居陷地又加杀化忌,为下格之命,不以入格而论也。",plain:"星落陷地又见煞星、化忌,就不按入格来论。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-poge-huaxiong",book:"ziwei",chapter:"卷三·论人命入格",quote:"又入格不化吉而化凶,只以本命吉凶多寡而断之。",plain:"入了格却化吉少、化凶多,只能按原局吉凶的多寡来断。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-shiyin",book:"ziwei",chapter:"卷一·增补太微赋",quote:"巨门子午二宫逢,身命逢之必贵荣,更得三方科禄照,石中隐玉是丰隆。",plain:"巨门在子午守命,要三方有化科、化禄照会,石中隐玉才成格。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-jiju-poge",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"因甲禄到寅卯宫有擎羊破格耳。",plain:"巨机本可取贵,但擎羊落宫会把格局破掉。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-riyue-jia",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"加羊陀冲守,宜僧。",plain:"日月夹命再加羊陀冲守,吉意大减。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-changqu",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"昌曲陷宫凶杀破虚誉之隆 凶杀即羊陀空劫。",plain:"昌曲落陷再逢凶杀,名声易成虚誉;这里的凶杀指羊陀空劫。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-kuiyue",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"魁钺重逢杀凑痼疾尤多 杀乃羊铃空劫。",plain:"魁钺夹命再凑煞星,贵气减等;煞指羊铃空劫。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-jiyue",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"机月同梁作吏人 命在寅申方论,加吉不论,无吉无杀亦是平常人,凶杀空劫化忌为下格。",plain:"机月同梁要在寅申论;无吉无杀只是平常,逢凶杀空劫化忌则降为下格。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-tanwu",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"贪武申宫为下格 化忌方论。",plain:"武贪在申本可论格,但带化忌才作下格论。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-huotan",book:"ziwei",chapter:"卷一·增补太微赋",quote:"火遇贪狼照命宫,封侯食禄是英雄,三方倘若无凶杀,到老应知福寿隆。",plain:"火贪照命本是贵格,前提是三方没有凶杀;见煞则破。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-luma",book:"ziwei",chapter:"卷一·诸星问答论·问天马星所主若何",quote:"如与禄存同宫,谓之禄马交驰,又曰折鞭马",plain:"禄存与天马同宫才叫禄马交驰。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-luma-kong",book:"ziwei",chapter:"卷一·诸星问答论·问天马星所主若何",quote:"逢空亡谓之死马、亡马",plain:"禄马逢空亡,称死马、亡马,奔走之力被劫。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-luma-tuo",book:"ziwei",chapter:"卷一·诸星问答论·问天马星所主若何",quote:"遇陀罗谓之折足马",plain:"禄马遇陀罗,称折足马,动而受阻。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-sihua-ji",book:"ziwei",chapter:"卷一·诸星问答论·问化忌星所主若何",quote:"如会紫府、昌曲、左右、科权禄,与忌同宫又兼四杀共处,即发财亦不佳,功名亦不成就。",plain:"吉星与化忌、四杀同处,即使发财也不好,功名难成。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-sihua-lu",book:"ziwei",chapter:"卷一·诸星问答论·问化禄星所主若何",quote:"禄为福德之神。守身命官禄之位,科权相逢必作大臣之职。",plain:"化禄主福,与科权相会可论官职。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-sihua-quan",book:"ziwei",chapter:"卷一·诸星问答论·问化权星所主若何",quote:"权星掌判生杀之神。守身命科禄相逢出将入相。",plain:"化权主掌判,与科禄相会主权位。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-sihua-ke",book:"ziwei",chapter:"卷一·诸星问答论·问化科星所主若何",quote:"科星上界应试,主掌文墨之星。守身命权禄相逢宰臣之贵。",plain:"化科主文墨名声,与权禄相会主贵。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-sanfang",book:"ziwei",chapter:"卷三·谈星要论",quote:"三看迁移财帛官禄三方星辰刑冲克破。",plain:"第三步就看迁移、财帛、官禄这组三方有没有刑冲克破。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-shenming",book:"ziwei",chapter:"卷三·谈星要论",quote:"看身安命禄马不落空亡天空截空最紧,旬空次之。",plain:"看身命先看禄马有没有落空亡、天空、截空。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-daxian",book:"ziwei",chapter:"卷三·论大限十年祸福何如",quote:"如宫分星缠全吉庙旺得地,无擎羊陀罗火铃空劫者,主十年安静,人财全美。",plain:"大限宫吉星庙旺且不见羊陀火铃空劫,十年较安稳。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-miaowang",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"天机 庙子午 旺辰酉 陷丑未",plain:"天机的庙旺陷地:子午庙、辰酉旺、丑未陷。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-kongjie",book:"ziwei",chapter:"卷一·诸星问答论·问天空地劫所主若何",quote:"二星守身命,遇吉则吉,遇凶则凶。如四杀冲照,轻者下贱,重者六畜之命。",plain:"空劫守身命,吉凶随会照而定;再逢四杀冲照则加重。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"smt-wangxiang",book:"sanming",chapter:"卷二·论五行旺相休囚死并寄",quote:"盛德乘时曰旺。如春木旺,旺则生火,火乃木之子,子乘父业,故火相;木用水生,生我者父母,今子嗣得时,登高明显赫之地,而生我者当知退矣,故水休。",plain:"当令得时叫旺;旺者所生为相,生旺者退为休。旺相休囚死是按四季轮转的相对状态,不是固定标签。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7531.html"},{id:"smt-shensha",book:"sanming",chapter:"卷三·总论诸神煞",quote:"神煞,古有百二十名,其说穿凿支离,造化恐不如是。",plain:"神煞名目古有百余种,说法穿凿支离;作者自己也说造化未必如此,神煞只能作旁证。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7572.html"},{id:"smt-kongwang",book:"sanming",chapter:"卷三·论空亡",quote:"故以甲旬尽处曰空亡,盖有是位而无禄,曰空;有支而无干,曰亡。",plain:"旬中十干配完还剩两支无干可配,有支无干叫亡;这一位没有禄叫空。空亡是按旬推出的虚位,不直接等于凶。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7563.html"},{id:"smt-dayun-qiyun",book:"sanming",chapter:"卷二·论大运",quote:"总十年之运气,凡三日有三十六时,乃见三百六十日为一岁之数;在一月之中有三百六十时,折除节气,算计三千六百日为一辰之十岁也。",plain:"起运的折算:三日折一年、一月折十年,按出生到节气的时间折出起运岁数;这是通行「三日折一年」的出处之一。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7536.html"},{id:"smt-liuqin",book:"sanming",chapter:"卷七·论六亲",quote:"有夫妇然后有父子,有父子然后有兄弟。六亲者,父母兄弟妻子也。",plain:"六亲指父母、兄弟、妻子;先有夫妇才有父子兄弟,取六亲以十干生克配出,再落到四柱宫位上看旺衰。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7693.html"},{id:"smt-xingchong",book:"sanming",chapter:"卷二·论三刑",quote:"《阴符经》曰:恩生于害,害生于恩;三刑生于二合,亦如六害生于六合之义。",plain:"三刑由三合与三会相叠而生,六害由六合而生:合里藏着刑害,所以见合不能只看合。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7548.html"},{id:"qt-tiaohou",book:"qiongtong",chapter:"五行总论",quote:"北方阴极而生寒,寒生水。南方阳极而生热,热生火。",plain:"五行由方位寒热燥湿而生:北寒生水、南热生火。调候就是先看命局寒暖燥湿,再取能调和的字。",url:"https://www.diancang.xyz/xuanxuewushu/qiongtongbaojian/41024.html"},{id:"qm-yinyang",book:"qimen",chapter:"卷一·奇门秘诀总赋",quote:"阴阳二遁分顺逆,一气三元人莫测。五日都来换一元,接气超神为准的。",plain:"一年分阴阳两遁:冬至后顺布、夏至后逆布;一气分上中下三元、五日换一元,超神接气用来对齐节气与符头。取局法不同,同一时刻可能排出不同局数。",url:"https://www.diancang.xyz/xuanxuewushu/qimendunjiatongzong/41068.html"},{id:"qm-jixing",book:"qimen",chapter:"卷十一·玄机赋(中)",quote:"六仪击刑真是凶,值符天乙遇亦穷。六仪非值终无吉,吉凶轻重义相同。此际切宜遁取吉,勿于此地想成功。子三戌二寅刑四,申八辰四午离中。戌刑在未寅在巽,巽有巳兮申缓从。",plain:"六仪落到与自身相刑的宫位叫击刑:甲子戊落三宫、甲戌己落二宫、甲申庚落八宫、甲辰壬落四宫、甲午辛落九宫;甲寅癸的寅刑巳、戌刑未也各有所指。击刑是宫位条件,说明这个符号使不上力,不直接等于事情必败。",url:"https://www.diancang.xyz/xuanxuewushu/qimendunjiatongzong/41073.html"},{id:"qm-rumu",book:"qimen",chapter:"卷十一·玄机赋(中)",quote:"三奇入墓,闭塞不通,暗昧不振,诸事皆凶。乙阴木长生在午墓于戌,丙火长生在寅墓于戌,故乙丙到乾为墓。丁阴火长生在酉墓于丑,故丁到艮为墓。",plain:"按五行墓库判:乙木、丙火墓在戌(乾六宫),丁火墓在丑(艮八宫)。天盘三奇落到自己的墓宫即入墓,取象是收住、藏起来、事情压着不动;问收藏与了结时未必是坏事。",url:"https://www.diancang.xyz/xuanxuewushu/qimendunjiatongzong/41073.html"},{id:"qm-wangshuai",book:"qimen",chapter:"卷三",quote:"旺相休囚:春木相火旺水废金囚土休,夏火相土旺木废水囚金休,秋金相水旺土废火囚木休,冬水相木旺金废土囚火休。",plain:"旺相休囚按季节五行轮转:当令者旺、被当令所生者相、生当令者休、克当令者囚、被当令所克者废(死)。门、星、天盘干各按自身五行对月令,得出当下力量强弱。",url:"https://www.diancang.xyz/xuanxuewushu/qimendunjiatongzong/41070.html"},{id:"qm-men-gong",book:"qimen",chapter:"卷二",quote:"右八门最怕迫制,吉门有气益吉,无气减吉;凶门有气益凶,无气减凶。",plain:"八门怕被宫位迫制;吉门有气更吉、无气则减吉,凶门有气更凶、无气则减凶。旺衰只是加权,门与宫的生克要另算,两层并列、不互相替代。",url:"https://www.diancang.xyz/xuanxuewushu/qimendunjiatongzong/41069.html"},{id:"mh-tiyong",book:"meihua",chapter:"卷二·体用生克",quote:"体用即动静之说。体为主,用为事。应用事体及比和,则吉;体生用及克体,则不吉。",plain:"体卦代表自己、主静;用卦代表所问之事、主动。用生体或体用比和为顺,体生用(泄气)与用克体为不顺;再看互卦、变卦与旺衰定轻重。",url:"https://www.diancang.xyz/xuanxuewushu/meihuayishu/37734.html"},{id:"zs-yongshen",book:"liuyao",chapter:"卷一·用神章第八",quote:"父母爻:占父母卽以卦中之父母爻爲神。",plain:"六亲各有用神:问父母就以父母爻为用神,兄弟、妻财、子孙、官鬼也各按所问的人与事取爻。",url:"https://zh.wikisource.org/wiki/增刪卜易/8"},{id:"zs-fushen",book:"liuyao",chapter:"卷二·飛伏神章第二十八",quote:"此卦寅木妻財在二爻﹐卽以此寅木伏於姤卦亥水之下﹐姤卦二爻之亥水卽爲飛神﹐寅木妻財卽爲伏神﹐亥水而生寅木﹐謂之飛來生伏得長生﹐此用神不現﹐尋得伏神而遇生扶有用﹐亦爲用神﹐便作吉斷﹐餘仿此。",plain:"用神不上卦时,到本宫首卦里找伏神:伏在下面的叫伏神,压在它上面的叫飞神。伏神得日月或飞神生扶,才算有用。",url:"https://zh.wikisource.org/wiki/增刪卜易"},{id:"zs-yuejian",book:"liuyao",chapter:"卷一·月將章第十六",quote:"月將卽是月建又爲月令。掌一月之權,司三旬之令。",plain:"月建就是月令,掌一月的时令、管三旬的旺衰;它能扶起衰弱的爻,也能制住动爻与变爻。",url:"https://zh.wikisource.org/wiki/增刪卜易/16"},{id:"zs-yuejian-zhuli",book:"liuyao",chapter:"卷一·月將章第十六",quote:"爻之衰弱者能生之合之、比之、拱之、扶之,衰而亦旺。",plain:"月建对衰弱的爻能生、合、比、拱、扶,衰的也可以转旺;反过来对强旺的爻能冲、克、刑、破,旺的也会转衰。",url:"https://zh.wikisource.org/wiki/增刪卜易/16"},{id:"zs-richen",book:"liuyao",chapter:"卷一·日辰章第十七",quote:"日辰爲六爻之主宰,司四時之旺相。",plain:"日辰是六爻之主宰,四时都能当令,与月建同功;日冲旺相静爻为暗动,冲衰弱静爻为日破。",url:"https://zh.wikisource.org/wiki/增刪卜易/17"},{id:"zs-dongbian",book:"liuyao",chapter:"卷一·動變生克沖合章第十五",quote:"卦有動爻,動而必變,夫變出之爻能生克沖合本位之動爻,不能生克他爻,而他爻與本位之動爻,亦不能生克變爻。",plain:"动爻变出的爻,只与本位动爻发生生克冲合,不直接作用于其他爻;其他爻也不直接生克这个变爻。",url:"https://zh.wikisource.org/wiki/增刪卜易/15"},{id:"zs-liushen",book:"liuyao",chapter:"卷一·六神章第十八",quote:"諸書無不以靑龍爲吉,白虎爲凶。",plain:"旧籍多以青龙为吉、白虎为凶;本章随即用卦例说明六神只是取象的一层,不能只看它断吉凶。",url:"https://zh.wikisource.org/wiki/增刪卜易/18"},{id:"zs-liuhe",book:"liuyao",chapter:"卷一·六合章第十九",quote:"子與丑合、寅與亥合、卯與戌合、辰與酉合、巳與申合,午與未合。",plain:"六合固定六对:子丑、寅亥、卯戌、辰酉、巳申、午未;静爻逢合叫合起,动爻逢合叫合绊。",url:"https://zh.wikisource.org/wiki/增刪卜易/19"},{id:"zs-liuchong",book:"liuyao",chapter:"卷一·六沖章第二十",quote:"相沖之法有六。日月沖爻者一也,卦逢六沖二也,六合卦變六沖三也,沖變六沖四也。動爻變沖五也、爻與爻沖六也。",plain:"相冲分六种:日月冲爻、卦逢六冲、六合卦变六冲、冲变六冲、动爻变冲、爻与爻冲。冲主散,吉事不宜,凶事反而宜散。",url:"https://zh.wikisource.org/wiki/增刪卜易/20"},{id:"zs-fanyin",book:"liuyao",chapter:"卷一·反伏章第二十五",quote:"內卦反伏,內則不安。外卦反伏,外則不寧。內外反伏者,內外不寧之象也。",plain:"内卦反伏主内不安,外卦反伏主外不宁,内外都反伏则内外不宁;取象是事情反复,成而败、败而成。",url:"https://zh.wikisource.org/wiki/增刪卜易/25"},{id:"zs-fuyin",book:"liuyao",chapter:"卷一·反伏章第二十五",quote:"內卦動變伏吟,內則呻吟,外卦動變伏吟,外則憂鬱。",plain:"内卦动变伏吟主内呻吟,外卦动变伏吟主外忧郁;伏吟取停滞难伸,不像反吟那样带冲克。",url:"https://zh.wikisource.org/wiki/增刪卜易/25"},{id:"zs-jintui",book:"liuyao",chapter:"卷二·進神退神章第二十九",quote:"進神退神者﹐爻之動而化也﹐化進化退﹐吉凶禍福有喜忌之分﹐所喜者宜於化進﹐所忌者宜化退神。",plain:"进神退神是动爻化出同五行的顺次之支:化进主向前,化退主退气;喜用的宜化进,所忌的宜化退。",url:"https://zh.wikisource.org/wiki/增刪卜易"},{id:"zs-yingqi",book:"liuyao",chapter:"卷一·各門類應期總注章第又二十六",quote:"靜而逢值逢沖:如主事爻臨子水不動,後逢子日午日而應之,餘仿此。",plain:"应期先分动静:静爻在逢值或逢冲之日应,动爻在逢合或逢值之日应;其余按入墓、旬空、月破等逐条推。",url:"https://zh.wikisource.org/wiki/增刪卜易/26又3"},{id:"dl-jigong",book:"daliuren",chapter:"卷一·起例(十干寄宫)",quote:"甲课寅兮乙课辰,丙戊课巳不须论。丁己课未庚申上,辛戌壬亥是其真。癸课原来丑宫坐,分明不用四正神。",plain:"十干寄宫是四课起手:甲寄寅、乙寄辰、丙戊寄巳、丁己寄未、庚寄申、辛寄戌、壬寄亥、癸寄丑;丙戊、丁己各同宫,子午卯酉四个正位不寄。",url:"https://zh.wikisource.org/wiki/六壬大全/1"},{id:"dl-zeike",book:"daliuren",chapter:"卷一·起例(贼克法)",quote:"取课先从下贼呼,如无下贼上克初。初传之上名中次,中上加临是末居。三传既定天盘将,此是入式法第一。",plain:"九宗门取初传先看下贼上,没有下贼再看上克下;初传定后,中传取初传所乘之神,末传再顺取一位,三传齐了才布天盘天将。",url:"https://zh.wikisource.org/wiki/六壬大全/1"},{id:"dl-yuejiang",book:"daliuren",chapter:"卷二·神将释(月将)",quote:"逆布者谓之月将,其实即十二神也。",plain:"月将就是十二支神,按太阳过宫排:以登明为首逆布十二宫;起课时把月将加在占时上,顺布成天盘。",url:"https://zh.wikisource.org/wiki/六壬大全/2"},{id:"dt-yiqi-tonggen",book:"ditian",chapter:"干支总论",quote:"天全一气,不可使地德莫之载。地全三物,不可使天道莫之容。",plain:"四柱天干同属一气,还得地支能承载它;地支所藏三干若不透到天干,也显不出用处——通根与透出是一件事的两面。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html",note:"《子平真诠》卷一论十干十二支注文引作《滴天髓》语,底本干支总论原文可核。"},{id:"dt-liuqin-fuqi",book:"ditian",chapter:"六亲论·夫妻",quote:"夫妻因缘宿世来,喜神有意傍天财。",plain:"看夫妻,落点在「喜神」与「财星」的相对位置:财是妻星,喜神是能护住用神的那一位。配偶这件事,看的是财星有没有被喜神照到,不是看盘里有没有财。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153092.html",note:"本句是六亲论的提纲韵语,正文各家用注解发挥,取义不一,故只作「有这一说」的原文凭据。"},{id:"dt-liuqin-zinv",book:"ditian",chapter:"六亲论·子女",quote:"子女根枝一世传,喜神看与杀相连。",plain:"子女星取官杀,但成不成器要看喜神与杀的关系:有杀无喜,是压力;有喜有杀,才谈得上传承。单见官杀不作吉断。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153092.html"},{id:"dt-liuqin-fumu",book:"ditian",chapter:"六亲论·父母",quote:"父母或降与或替,岁月所关果非细。",plain:"父母看年月两柱:位置定了,还要看这两柱是「降」(受制)还是「替」(得代),差别不小。这是把六亲落到宫位上,而不是只看印星。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153092.html"},{id:"dt-nvming-shensha",book:"ditian",chapter:"六亲论·女命章",quote:"论夫论子要安详,气静平和妇道章,三奇二德虚好语,咸池驿马半推详。",plain:"这句是古籍自己在批神煞:三奇、二德这类吉神被叫作「虚好语」(空口说好话),咸池(桃花)、驿马只能「半推详」(顶多参考一半)。反对滥用神煞不是今人的意见,原文里就有。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153092.html",note:"「三奇二德虚好语,咸池驿马半推详」是滴天髓原文对神煞的贬语,可直接支撑「神煞不主吉凶」。"},{id:"dt-hezhi-fugui",book:"ditian",chapter:"六亲论·何知章",quote:"何知其人富,财气通门户。何知其人贵,官星有理会。何知其人贫,财神反不真。何知其人贱,官星还不见。",plain:"富看财有没有「通门户」(财能流通到日主),贵看官星有没有「理会」(有制有化、有人承接)。反过来,贫是财星不真(有财而无用),贱是官星不见或不理。判词是四个可查的条件,不是形容词。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153092.html"}],B={...Object.fromEntries(Object.entries(q).map(([x,g])=>[x,g])),...fe};function u(x){const g=P.find(I=>I.id===x)||H.find(I=>I.id===x);if(!g)return null;const ue=B[g.book];return{...g,bookName:ue?ue.name:g.book,bookAuthor:ue?ue.author:""}}const z={"bazi-yueling-siquan":{refs:["smt-renyuan"]},"bazi-geju":{refs:["zp-yongshen"]},"bazi-suiyun":{refs:["smt-suiyun"]},"bazi-sanming-duizhao":{refs:["zp-zhenguan","smt-guansha-liu"]},"bazi-geju-chengbai":{refs:["zp-chengbai","dt-hezhi-fugui"]},"bazi-huagi-bianhua":{refs:["zp-bianhua"]},"bazi-zaji-quyong":{refs:["zp-zaji"]},"bazi-zhuanwang-yuanwen":{refs:["smt-quzhi","smt-yanshang","smt-congge","smt-runxia","smt-jiasi"]},"bazi-congge-yuanwen":{refs:["smt-congsha","smt-congcai"]},"bazi-tongguan":{refs:["dt-tongguan"]},"bazi-tonggen-tougan":{refs:["dt-yiqi-tonggen"],note:"通行说两句出自《子平真诠》卷一注文,非《滴天髓》正文;注文所引的滴天髓句见本条。"},"bazi-wangxiang":{refs:["smt-wangxiang"]},"bazi-shensha":{refs:["smt-shensha","dt-nvming-shensha"]},"bazi-tiaohou":{refs:["qt-tiaohou"]},"bazi-liuqin":{refs:["smt-liuqin","dt-liuqin-fuqi","dt-liuqin-zinv","dt-liuqin-fumu"]},"bazi-kongwang":{refs:["smt-kongwang"]},"bazi-xingchong":{refs:["smt-xingchong"]},"bazi-dayun-jiaoqi":{refs:["smt-dayun-qiyun"]},"ziwei-sanfang":{refs:["zw-sanfang"]},"ziwei-sihua":{refs:["zw-sihua-lu","zw-sihua-ji"]},"ziwei-miaowang":{refs:["zw-miaowang"]},"ziwei-daxian":{refs:["zw-daxian"]},"ziwei-shengong":{refs:["zw-shenming"]},"ziwei-kongjie":{refs:["zw-kongjie"]},"ziwei-poge":{refs:["zw-poge-ruge","zw-poge-sanfang"]},"ziwei-feixing":{status:"general",book:"紫微斗数全书 / 飞星派",chapter:"四化篇",reason:"宫干飞化属飞星派传法,非《全书》单条原文"},"ziwei-sanfang-fei":{status:"general",book:"紫微斗数全书 / 飞星派",chapter:"四化篇",reason:"三方四正同飞属飞星派读法,未定位到单条原文"},"ziwei-jichuanji":{status:"general",book:"紫微斗数全书 / 飞星派",chapter:"四化篇",reason:"忌转忌串连属飞星派读法,未定位到单条原文"},"liuyao-yongshen":{refs:["zs-yongshen"]},"liuyao-fushen":{refs:["zs-fushen"]},"liuyao-wangshuai":{refs:["zs-yuejian"]},"liuyao-yongshen-shuai":{refs:["zs-richen"]},"liuyao-quanggu-shuai":{refs:["zs-yuejian-zhuli"]},"liuyao-dongbian":{refs:["zs-dongbian"]},"liuyao-liushen":{refs:["zs-liushen"]},"liuyao-liuhe":{refs:["zs-liuhe"]},"liuyao-liuchong":{refs:["zs-liuchong"]},"liuyao-fanyin":{refs:["zs-fanyin"]},"liuyao-fuyin":{refs:["zs-fuyin"]},"liuyao-jintui":{refs:["zs-jintui"]},"liuyao-yingqi":{refs:["zs-yingqi"]},"liuyao-jintui-yong":{refs:["zs-jintui"]},"liuyao-yingqi-exact":{status:"todo",book:"增删卜易",chapter:"各門類應期總注章",reason:"逐条应期尚未实现,等 20+ 条有应验日期的卦例"},"meihua-tiyong":{refs:["mh-tiyong"]},"daliuren-sike":{refs:["dl-jigong","dl-zeike"]},"qimen-yinyang":{refs:["qm-yinyang"]},"qimen-jixing":{refs:["qm-jixing"]},"qimen-rumu":{refs:["qm-rumu"]},"qimen-wangshuai":{refs:["qm-wangshuai"]},"qimen-wangshuai-yong":{refs:["qm-men-gong"]},"qimen-gan-shengke":{status:"general",book:"奇门遁甲统宗",chapter:"卷十二·玄机赋(下)",reason:"底本有「奇仪与日干」生克条,未见单列「干与落宫」生克条;干宫取象为通行读法,不拿十神条文冒充"},"qimen-ganying":{status:"general",book:"奇门十干应克 / 奇门遁甲元灵经",chapter:"通行 100 组表 / 卷二·天盘加地盘吉凶",reason:"100 组为通行表汇编,元灵经只存甲、乙、丙三组,非单条原文"},"tarot-orientation":{status:"general",book:"韦特塔罗",chapter:"逆位读法",reason:"韦特体系无中文古籍原文,逆位读法属近代流派"}};function _(){return[...H.map(x=>u(x.id)),...P.map(x=>u(x.id))]}function E(x,g=""){const ue=z[x];if(!ue)return{source:g,citations:[],status:"general",reason:"未建立引文索引"};if(Array.isArray(ue.refs)&&ue.refs.length){const I=ue.refs.map(u).filter(Boolean),D=I.map(p=>`《${p.bookName}·${p.chapter}》${p.url}`).join(";");return{source:`${g}(原文索引:${D})`,citations:I,status:"verified"}}return{source:`${g}(${ue.status==="todo"?"待补原文":"通行说,原文待补"}:${ue.book||""}${ue.chapter?`·${ue.chapter}`:""})`,citations:[],status:ue.status||"general",reason:ue.reason||""}}function M(){return Object.entries(se).filter(([,x])=>Array.isArray(x.citationIds)&&x.citationIds.length).map(([x,g])=>({name:x,citationIds:g.citationIds,citations:g.citationIds.map(u).filter(Boolean)}))}return{CITATION_BOOKS:fe,CITATIONS:P,citationOf:u,CARD_CITATIONS:z,allCitations:_,citationSourceOf:E,patternCitations:M}})(),K["ziwei-words"]=(function(){const H={命宫:{field:"你自己、性格与选择的出发点",ask:"我是个什么样的人、遇事怎么反应",drift:"整个人的状态与主见",huaJi:"容易对自己不满意,反复琢磨「是不是还不够好」"},兄弟:{field:"手足、同辈与合作",ask:"和同辈人怎么相处",drift:"同辈之间的支持与较劲",huaJi:"同辈之间容易有拉扯,合作前先把账算清楚"},夫妻:{field:"亲密关系与伴侣",ask:"感情里怎么相处",drift:"关系的温度与相处方式",huaJi:"感情里容易反复计较,越在意越觉得累"},子女:{field:"子女、晚辈与作品",ask:"和晚辈、和自己的创作怎么相处",drift:"照顾与创造",huaJi:"对子女或作品容易操心过头,投入多而见效慢"},财帛:{field:"赚钱方式与现金流",ask:"钱从哪来、留不留得住",drift:"进项与花销",huaJi:"钱上容易反复,进得来也容易散,先管现金再谈收益"},疾厄:{field:"身体底子与情绪出口",ask:"身体哪里要多留意",drift:"作息与身体的信号",huaJi:"情绪容易往身体上走,压力最先反映在睡眠与肠胃"},迁移:{field:"出门、环境与人缘",ask:"在外发展顺不顺",drift:"外部环境与人际机会",huaJi:"在外容易遇到消耗,换环境前先把代价想清楚"},交友:{field:"朋友、同事与部属",ask:"怎么识人、怎么带人",drift:"身边的人际圈",huaJi:"容易替别人操心、被人情拖住,帮人之前先给自己留余地"},官禄:{field:"事业方向与做事方式",ask:"做什么工作、怎么做事",drift:"工作与身份感",huaJi:"工作上容易反复调整方向,先把一件事做完再谈换"},田宅:{field:"家庭、住所与积累",ask:"安家、置产与家底",drift:"居住环境与家庭气氛",huaJi:"家里的事容易牵扯精力,置产与搬迁宜缓不宜急"},福德:{field:"精神享受与内在节奏",ask:"怎么让自己舒服、怎么放松",drift:"心境、兴趣与休息",huaJi:"想得多、放不下,休息也休息不踏实"},父母:{field:"长辈、上司与文书",ask:"和长辈上级的关系、文书合约",drift:"长辈缘与合同文书",huaJi:"与长辈上级容易有隔阂,文书合约要逐条看清"}},q={紫微:{alias:"帝星",key:"尊",bright:"心里像有根定海针,遇事敢拍板,也压得住场面",dim:"容易端着架子,想法很多却不肯先低头",gift:"定方向、分主次、把人组织起来",watch:"面子与身段"},天机:{alias:"智星",key:"动",bright:"脑子快、点子多,变化里反而找得到路",dim:"想法多过行动,容易在犹豫里把时间耗掉",gift:"策划、推演、把复杂的事拆成步骤",watch:"想太多、坐不住"},太阳:{alias:"日主",key:"公",bright:"外放热心,愿意担事,也容易被看见",dim:"付出多、回报少,容易觉得不被认可",gift:"对外沟通、带头做事、把光照到别人身上",watch:"用力过度、忘了照顾自己"},武曲:{alias:"财星",key:"实",bright:"务实果决,认结果、扛得住硬活",dim:"容易只认数字,人情上显得生硬",gift:"算账、执行、把事做扎实",watch:"太硬、不给缓冲"},天同:{alias:"福星",key:"柔",bright:"脾气温和,能把紧张的气氛化开",dim:"容易贪舒服、事情拖着不动",gift:"协调、服务、让人放松下来",watch:"安逸与拖延"},廉贞:{alias:"囚星",key:"细",bright:"细腻又讲原则,做事有分寸",dim:"容易较真到钻牛角尖,情绪起伏也大",gift:"抓细节、守规矩、做需要精度的活",watch:"情绪郁结、过度执着"},天府:{alias:"库星",key:"稳",bright:"稳得住、会存会调度,是团队的压舱石",dim:"偏保守,机会来了也不敢动",gift:"守成、管资源、把局面稳住",watch:"求稳到错过时机"},太阴:{alias:"月主",key:"藏",bright:"心思细、耐得住,静下来能做深事",dim:"敏感多虑,情绪都藏在心里",gift:"研究、文案、需要长期专注的活",watch:"内耗与睡眠"},贪狼:{alias:"桃花",key:"贪",bright:"好奇、活络、人缘好,学什么都快",dim:"什么都想要,结果哪样都没做透",gift:"开拓、交际、把资源变成机会",watch:"边界与节制"},巨门:{alias:"暗星",key:"辩",bright:"口才与逻辑都好,靠说理就能服人",dim:"容易多疑,一句话能听出三层意思",gift:"谈判、教学、法务、需要辨析的活",watch:"言语是非与疑心"},天相:{alias:"印星",key:"辅",bright:"讲规矩、会协调,是让人放心的副手",dim:"容易迁就别人,委屈自己也不说",gift:"协调、执行、把流程跑顺",watch:"太在意别人怎么看"},天梁:{alias:"荫星",key:"荫",bright:"有长者气,能扛事、也愿意护着人",dim:"操心过度,替别人背了不该背的",gift:"顾问、教育、医护、替人排忧",watch:"管太多、放不下"},七杀:{alias:"将星",key:"决",bright:"果断敢冲,压力越大越顶得住",dim:"容易硬碰硬,把关系撞出裂痕",gift:"开拓、攻坚、从零打出一块地",watch:"急与硬"},破军:{alias:"耗星",key:"破",bright:"敢破敢立,旧局推得动、新局立得起",dim:"推翻了却重建不了,反复折腾",gift:"变革、重组、做从零到一的事",watch:"冲动与耗损"}},be={紫微天府:{gist:"尊贵加稳重:既想有位置,也守得住家底,适合在体系里往上走",watch:"别把稳做成不动"},紫微贪狼:{gist:"帝星带桃花:有格局也有玩心,门路多、欲望也多",watch:"兴趣铺太开,主次容易乱"},紫微天相:{gist:"帝星配印:权力与规矩并存,做事讲体面,也讲章法",watch:"太要好看,容易被形式拖住"},紫微七杀:{gist:"帝星加将星:气魄大、手腕硬,开得了局面",watch:"压得住人也容易压伤人"},紫微破军:{gist:"帝星带耗:敢于推倒重来,一生常有大的转身",watch:"代价是先破后立,破之前先备好退路"},天机太阴:{gist:"机月同宫:心思细、筹划深,适合幕后与会动脑子的活",watch:"算得太细,反而迟迟不动手"},天机巨门:{gist:"机巨同宫:头脑快、嘴也利,论辩是强项",watch:"话多容易生是非"},天机天梁:{gist:"机梁同宫:善谋又讲原则,常是出主意又担责任的人",watch:"替人想太多,累的是自己"},太阳太阴:{gist:"日月同宫:外放与内敛同时在身上,两种节奏互相拉扯",watch:"别自己跟自己打架"},太阳巨门:{gist:"日巨同宫:靠一张嘴把事说成,适合以表达与说服为业",watch:"说话直,容易得罪人"},太阳天梁:{gist:"阳梁同宫:热心又有长者气,助人型,容易被人依赖",watch:"别把别人的事全揽过来"},武曲天府:{gist:"武府同宫:会算也会守,财务与执行双强,稳中有实",watch:"只算眼前账,容易错过长线"},武曲贪狼:{gist:"武贪同宫:务实与欲望并存,传统说三十岁以后越走越开",watch:"先把本事磨厚,别急着要结果"},武曲天相:{gist:"武相同宫:讲效率也讲规矩,适合在大机构里做执行",watch:"规矩压得太死,手脚会绑住"},武曲七杀:{gist:"武杀同宫:硬碰硬的组合,冲劲足、压力也大",watch:"成事快,耗得也快"},武曲破军:{gist:"武破同宫:能打也能拆,适合攻坚与改革",watch:"聚散都快,留不住的要认"},天同太阴:{gist:"同阴同宫:温和细腻,重感受,适合安静一点的环境",watch:"太舒服就不想动"},天同巨门:{gist:"同巨同宫:想得软、说得直,容易在亲近的人面前失控",watch:"把话说软一点"},天同天梁:{gist:"同梁同宫:有福气也有长者缘,遇事常有人替你说句话",watch:"依赖久了会长不大"},廉贞天府:{gist:"廉府同宫:精细配稳重,守得住规矩也管得住资源",watch:"过分谨慎会错过窗口"},廉贞贪狼:{gist:"廉贪同宫:欲望与原则拉扯,才艺多、诱惑也多",watch:"重心要自己定,别被带着走"},廉贞天相:{gist:"廉相同宫:讲分寸、重体面,做事有章法",watch:"被规矩绑住手脚"},廉贞七杀:{gist:"廉杀同宫:刚烈果决,抗压强,敢碰难事",watch:"硬碰硬伤的是关系"},廉贞破军:{gist:"廉破同宫:敢于破局,变动多,适合在动荡里做事",watch:"变动要有节奏,别一直重来"}},se={擎羊:{nature:"锐、直接、带冲撞",inPalace:"让这一宫的事来得急,容易有竞争与对抗",remind:"慢半拍再回应,别用人身去硬碰"},陀罗:{nature:"拖、磨、反复",inPalace:"让这一宫的事拖得久,越急越推不动",remind:"把大目标切成小段,靠节奏推进而不是靠爆发"},火星:{nature:"急、爆、来得快去得快",inPalace:"让这一宫的事突然发生,情绪也容易点着",remind:"起的当下先别做决定,隔一天再看"},铃星:{nature:"闷、记、往里烧",inPalace:"让这一宫的事闷着发酵,不说并不代表没有",remind:"把不满讲出来,比憋着省事"},地空:{nature:"抽离、落空",inPalace:"让这一宫的努力容易「看着有、抓不住」",remind:"重要的事留书面凭证,别只靠口头约定"},地劫:{nature:"耗、变动",inPalace:"让这一宫的资源容易在变动里流失",remind:"先设止损线,再谈投入"},天刑:{nature:"约束、规矩",inPalace:"这一宫容易受规则或外力约束",remind:"照流程走,别找捷径"},天姚:{nature:"吸引、暧昧",inPalace:"这一宫容易有人情与暧昧的牵扯",remind:"边界说清楚,别用含糊换方便"},咸池:{nature:"情欲、外缘",inPalace:"这一宫容易被外在的吸引牵动",remind:"分清一时心动与长期相处"},孤辰:{nature:"孤、独",inPalace:"这一宫的事常要自己扛",remind:"主动开口求援,不丢人"},寡宿:{nature:"淡、疏",inPalace:"这一宫的关系容易偏淡",remind:"关系要靠主动经营"},破碎:{nature:"碎、不整",inPalace:"这一宫的成果容易零散、难成整块",remind:"把事收尾收完整"},天哭:{nature:"忧、敏感",inPalace:"这一宫容易让人心里发紧",remind:"情绪来了先照顾好身体"},天虚:{nature:"虚、不实",inPalace:"这一宫容易雷声大雨点小",remind:"看落地证据,不看承诺"}},fe=["擎羊","陀罗","火星","铃星","地空","地劫"],P={左辅:{nature:"助力、帮手",gift:"这一宫容易有人搭把手",note:"多把事交出去,别一个人扛"},右弼:{nature:"援手、缓和",gift:"这一宫容易在关键处被接住",note:"接受帮助,也记得回礼"},文昌:{nature:"文书、条理",gift:"这一宫的书面与规划能力强",note:"把想法落成文档"},文曲:{nature:"才艺、口才",gift:"这一宫的表达与感受力好",note:"用表达换机会"},天魁:{nature:"明文贵人",gift:"这一宫容易遇到明面上的提携",note:"该争取的位置直接开口"},天钺:{nature:"暗助贵人",gift:"这一宫常有人在背后帮忙",note:"人情记着,早晚用得上"},禄存:{nature:"守财、积存",gift:"这一宫的东西守得住",note:"先存后花"},天马:{nature:"动、驿马",gift:"这一宫的事常与移动、外地有关",note:"动起来比原地等更有利"},台辅:{nature:"台面、名分",gift:"这一宫容易被摆到台面上",note:"露脸的机会别推"},封诰:{nature:"封赏、认证",gift:"这一宫的资质与头衔有用",note:"该考的证早点考"},红鸾:{nature:"喜事",gift:"这一宫容易有喜庆与好消息",note:"好消息要说出来"},天喜:{nature:"喜庆、人缘",gift:"这一宫的人缘与气氛好",note:"多参加场合"},龙池:{nature:"雅、工整",gift:"这一宫有审美与工整的一面",note:"把细节做好"},凤阁:{nature:"华、体面",gift:"这一宫讲究排场与观感",note:"该有的体面别省"},三台:{nature:"地位、层级",gift:"这一宫容易有位置感",note:"按层级办事"},八座:{nature:"席位、稳定",gift:"这一宫坐得稳",note:"守住已有的位置"},恩光:{nature:"恩、被赏识",gift:"这一宫容易被赏识",note:"把成果让人看见"},天贵:{nature:"贵气、身份",gift:"这一宫带一点贵气",note:"抬头挺胸,别自轻"}},B={禄:{key:"得",gist:"顺手、有人帮,做起来不费劲"},权:{key:"掌",gist:"要自己拿主意,也容易用力过猛"},科:{key:"名",gist:"带一层体面与名声,遇事多能收得漂亮"},忌:{key:"执",gist:"容易在意、反复,是心里放不下的那一块"}},u={庙:{word:"得地",tone:"good",plain:"长处放得开,几乎是本色出演"},旺:{word:"有力",tone:"good",plain:"特点容易显出来,做事有底气"},得:{word:"尚可",tone:"neutral",plain:"能用,需要一点外力配合"},利:{word:"中平",tone:"neutral",plain:"长处与短板都在,看怎么用"},平:{word:"偏弱",tone:"neutral",plain:"不太争得到位置,宜借势"},不:{word:"不得地",tone:"bad",plain:"长处不容易使上,得多绕一步"},陷:{word:"失地",tone:"bad",plain:"容易往负面走,更需要自觉"}},z={紫府同宫:{gist:"帝星与库星同坐命宫:格局稳、底气足,天生适合做统筹",advice:"别把稳做成保守,该出手时出手"},紫府朝垣:{gist:"紫微天府会照命宫:有贵气也有实力,环境一般不会太差",advice:"靠结构做事,别只靠个人硬撑"},君臣庆会:{gist:"紫微或天府坐命,又得左辅右弼魁钺会照:有人帮、有位置",advice:"把团队搭起来,别一个人扛"},极向离明:{gist:"紫微在午守命:处在最亮的位置,格局与声势都强",advice:"光环大,注意别把人压住"},七杀朝斗:{gist:"七杀在子午守命:杀伐果断,能在压力下成事",advice:"硬气用在事上,不用在关系上"},英星入庙:{gist:"破军在子午守命:敢破敢立,常能从零打出一片",advice:"破之后要有立,别只破不立"},石中隐玉:{gist:"巨门在子午守命:本事藏在里面,要靠机会慢慢磨出来",advice:"别因为一时不被看见就放弃"},巨日同宫:{gist:"巨门太阳同宫:靠表达与说服开路,越抛头露面越有利",advice:"话多的时候注意分寸"},日月夹命:{gist:"太阳太阴分居命宫两侧:内外两种力量都来帮你",advice:"一快一慢,别自己跟自己打架"},日月对照:{gist:"太阳太阴分守命迁:外放与内敛互为表里",advice:"换环境对你是加分项"},左右夹命:{gist:"左辅右弼夹命:关键处总有人搭手",advice:"主动求助,贵人才好使力"},昌曲夹命:{gist:"文昌文曲夹命:文书、考试、表达上占便宜",advice:"把才华落到作品与证书上"},魁钺夹命:{gist:"天魁天钺夹命:明暗两路都有人提携",advice:"机会来了别客气"},三奇嘉会:{gist:"化禄化权化科会于命宫三方:三样都到位,是标准的顺局",advice:"别把顺境当常态,留一手"},双禄朝垣:{gist:"禄存与化禄同会命宫三方:进项与积累两头都有",advice:"存下来的才算数"},府相朝垣:{gist:"天府天相会于命宫三方:稳当、讲规矩,适合体系内发展",advice:"按流程走,别嫌慢"},禄马交驰:{gist:"禄存与天马同宫或对照:动中得财,越跑越有",advice:"别在原地等机会"},月朗天门:{gist:"太阴在亥守命:心思澄明,适合做需要静气的事",advice:"把敏感用在专业上,别用在揣测上"},日出扶桑:{gist:"太阳在卯守命:正当升起的位置,势头好、人也敞亮",advice:"趁势做事,别等"},机月同梁:{gist:"天机太阴天梁会命:动脑、静气、长者缘齐备,适合稳定的专业路线",advice:"少折腾,深耕一门"},武贪同行:{gist:"武曲贪狼同宫:务实与欲望并存,传统说三十岁后越走越开",advice:"先把本事磨厚,别急着要结果"},命无正曜:{gist:"命宫无主星:性格由环境与对宫塑造,适应力是你的长处",advice:"选对环境比选对方法更要紧"},杀破狼:{gist:"七杀破军贪狼会命:一生变动多、节奏快,适合在动荡里做事",advice:"把变动变成主动选择,而不是被动应付"},双禄交流:{gist:"禄存与化禄相对:财路两头通",advice:"现金流要管好,小心两头都花"},火贪铃贪:{gist:"贪狼遇火星或铃星:爆发型的组合,机会来得猛",advice:"机会来时别犹豫,走时别恋战"},火铃夹命:{gist:"火星铃星分居命宫两侧:情绪容易被点着,也容易被消耗",advice:"先把火气压一压,事就顺一半"},羊陀夹命:{gist:"禄存守命、擎羊陀罗前后夹之:位置稳,但四周都是压力",advice:"守得住就别急着动"},羊陀夹忌:{gist:"化忌与禄存同宫、羊陀夹之:传统里最需要留意的一类结构",advice:"那件事慢一点,让别人先动"},铃昌陀武:{gist:"铃星文昌陀罗武曲会于命宫三方:想法多、爱走弯路,容易自己把自己绊住",advice:"做决定前先写下来,隔一夜再定"},命里逢空:{gist:"地空地劫会命:计划常有意外的抽离,落袋才算数",advice:"留凭证、留退路"},马头带箭:{gist:"擎羊在午守命:锋芒极盛,成事快、伤人也不慢",advice:"冲劲用在攻坚,不用在争输赢"},天罗地网:{gist:"命宫在辰戌:天罗地网,走的是有限制的路",advice:"在框里做出成绩,别硬撞框"},刑囚夹印:{gist:"廉贞天相同守命宫于子午又遇擎羊:规则与冲撞同时压过来",advice:"循规蹈矩是保命符"},泛水桃花:{gist:"贪狼在子守命:才情与情缘都旺,重心容易散",advice:"给自己立一条不越的线"}},_={奴仆:"交友",奴仆宫:"交友",事业:"官禄",事业宫:"官禄"};function E(r){const t=_[String(r||"")]||String(r||"");return H[t]||null}function M(r){return u[String(r||"")]||null}function x(r){return q[String(r||"")]||null}function g(r){const t=(Array.isArray(r)?r:[]).filter(Boolean);return t.length!==2?null:be[t.join("")]||be[t.slice().reverse().join("")]||null}function ue(r,t){const d=E(t),n=B[r];if(!d||!n)return"";if(r==="忌")return`化忌入${t}:${d.huaJi}`;const h={禄:`${d.field}上来路顺、有人递梯子`,权:`${d.field}上你会想自己拿主意,也容易用力过猛`,科:`${d.field}上体面与名声会帮到你`}[r];return h?`化${r}入${t}:${h}`:""}function I(r){const t=(Array.isArray(r)?r:[]).filter(h=>se[h]);if(!t.length)return"";const d=t.slice(0,3).map(h=>`${h}(${se[h].nature})${se[h].inPalace}`),n=t.length===1?se[t[0]].remind:"先处理最急的那一件,其余的会跟着松动";return`${d.join(";")}。做法上:${n}。`}function D(r){return(Array.isArray(r)?r:[]).map(t=>se[t]&&se[t].nature).filter(Boolean).join("、")}function p(r){const t=(Array.isArray(r)?r:[]).filter(d=>P[d]);return t.length?t.slice(0,3).map(d=>`${d}${P[d].gift.replace(/^这一宫/,"")}`).join(","):""}function T(r,t){const d=z[String(r||"")];return d||(t==="good"?{gist:"结构偏向有利,具体落在哪件事,要看它牵动的是哪一宫",advice:"顺势把事情做完整"}:t==="bad"?{gist:"结构偏向消耗,提示这一块值得多一分留意",advice:"先把节奏放缓,再谈取舍"}:{gist:"结构中性,成事与否更多看后天怎么用",advice:"当成提醒,不当成结论"})}return{PALACE_FIELD:H,STAR_EXTRA:q,STAR_PAIR:be,SHA_STAR:se,MAIN_SHA:fe,FU_STAR:P,HUA_READ:B,BRIGHT_READ:u,PATTERN_READ:z,palaceFieldOf:E,brightRead:M,starExtraOf:x,starPairOf:g,huaInLine:ue,shaLineOf:I,shaNatureOf:D,fuLineOf:p,patternReadOf:T}})(),K["bazi-words"]=(function(){const H={甲:{image:"参天之木",look:"身形多半偏修长,肩背挺,站着有股站相",temper:"直、有担当,认定的事不太会转弯",gift:"扛得起事,适合把一摊子组织起来",trap:"不会转弯,撞上南墙也硬顶"},乙:{image:"藤萝之木",look:"身形柔韧,气质亲和,不太有攻击性",temper:"柔中带韧,擅长借力,能屈能伸",gift:"协调、渗透,在缝隙里也能生长",trap:"太依赖环境,环境一换就慌"},丙:{image:"太阳之火",look:"面色偏红润,精神足,进门容易被注意到",temper:"外放热情,心里想什么脸上就写着什么",gift:"感染人、带动气氛,适合站到台前",trap:"三分钟热度,来得快去得也快"},丁:{image:"灯烛之火",look:"偏清瘦,眼神亮,动静之间有点静气",temper:"内敛细腻,认准一件事能守很久",gift:"专注、耐得住,适合做需要磨的活",trap:"敏感,容易在心里反复内耗"},戊:{image:"城墙之土",look:"骨架偏厚,给人稳当、压得住场的感觉",temper:"沉稳慢热,不轻易表态,表态了就算数",gift:"承载与守成,能把局面稳稳托住",trap:"太钝,机会过了才反应过来"},己:{image:"田园之土",look:"面目温和,身形圆润,没什么棱角",temper:"包容细致,想得多,习惯先照顾别人",gift:"经营与服务,把琐碎的事理顺",trap:"纠结,反复权衡反而错过时机"},庚:{image:"刀剑之金",look:"骨架硬朗,气场直接,说话不绕弯",temper:"果决、讲义气,眼里容不下拖泥带水",gift:"执行与开疆,难啃的骨头敢接",trap:"太刚,锋利的一面容易伤到亲近的人"},辛:{image:"珠玉之金",look:"清秀讲究,衣着细节看得出用心",temper:"精致敏锐,对分寸与体面很在意",gift:"审美与精细活,做得比说的好",trap:"挑剔,也容易被一句评价刺到"},壬:{image:"江河之水",look:"身形偏厚实,眉眼开阔,气度大",temper:"大开大合,爱自由,不喜欢被框住",gift:"统筹与流动,能把资源盘活",trap:"散漫,摊子铺开却收不回来"},癸:{image:"雨露之水",look:"清秀安静,存在感不抢,但耐看",temper:"细腻、直觉强,心事多半自己消化",gift:"感知与研究,能注意到别人漏掉的细节",trap:"多愁,遇事先退,容易错过表态的时机"}},q={正官:{role:"规则与名分",gift:"守序可靠,答应的事会做到",trap:"太在意评价,放不开手脚",love:"重承诺,但不擅长把在意说出口",work:"适合在成体系的组织里按层级上升"},七杀:{role:"压力与冲劲",gift:"抗压强、敢担事,越难越来劲",trap:"急躁,习惯用硬碰解决问题",love:"容易被有主见的人吸引,也容易互相较劲",work:"适合高挑战、要快速决断的岗位"},正财:{role:"稳定收入与责任",gift:"务实会积累,账目清楚",trap:"算得太细,不敢为机会冒一点险",love:"重实际,用行动多于言语",work:"适合按劳取酬、积累型的路径"},偏财:{role:"机会与流动资源",gift:"善抓机会、人脉活络",trap:"铺得太开,钱和精力都容易留不住",love:"大方、桃花多,边界要自己划",work:"适合业务、投资、资源整合"},食神:{role:"表达与享受",gift:"会生活,也能把喜欢的事做成产出",trap:"太舒服就懒下来,节奏一松就拖",love:"温柔会照顾人,也怕麻烦",work:"适合技术、创作、餐饮、教育"},伤官:{role:"才华与不服",gift:"点子多、敢改,能做出别人做不出的东西",trap:"嘴上不饶人,赢了道理输了关系",love:"要求高,容易挑对方的刺",work:"适合改革、创意、专业型岗位"},正印:{role:"支持与学习",gift:"有耐心、学得进,靠得住",trap:"依赖心重,想得多做得少",love:"需要被理解与照顾",work:"适合研究、文教、需要资质的岗位"},偏印:{role:"偏门与钻研",gift:"冷门的门类也能钻透",trap:"孤,想法多但不爱解释",love:"需要空间,不喜欢被管",work:"适合专精技术、冷门专业"},比肩:{role:"同伴与自我",gift:"独立、扛得住,不轻易麻烦别人",trap:"固执,什么都想亲力亲为",love:"相处像朋友多过像恋人",work:"适合并肩作战或独立负责一块"},劫财:{role:"竞争与行动",gift:"行动快、敢抢,机会面前不犹豫",trap:"冲动,容易在钱和人情上破口",love:"来去都快,需要给彼此空间",work:"适合业务冲刺、竞争型岗位"},比劫:{role:"自我与同辈",gift:"独立、扛得住,不太依赖别人",trap:"固执,什么都想自己来",love:"相处像并肩的伙伴",work:"适合独立负责一块,或与同频的人并肩"},食伤:{role:"表达与产出",gift:"有想法,也做得出东西",trap:"话多或要求高,容易得罪人",love:"重视交流,也容易挑刺",work:"适合创作、技术、教学这类要表达的岗位"},财:{role:"资源与现实",gift:"务实、会算账、抓得住机会",trap:"把安全感全押在数字上",love:"重实际,用行动多于言语",work:"适合业务、财务、资源整合"},官杀:{role:"规则与压力",gift:"守序、抗压、担得起责任",trap:"绷得太紧,习惯用硬碰解决",love:"重承诺,也容易管得太宽",work:"适合体系内按层级上升,或高压高挑战的岗位"},印:{role:"支持与学习",gift:"有耐心、学得进、靠得住",trap:"想得多做得少,依赖现成的东西",love:"需要被理解与照顾",work:"适合研究、文教、需要资质的岗位"}},be={强:{泄:"这盘的问题是「力气有余、出口不够」:不缺劲头,缺的是把劲往哪使。先把方向定下来,比再多加一把力更管用。",制:"这盘气足又带压力:能扛事,但也容易一直绷着。学会把压力分出去,比硬顶更能长久。",耗:"这盘底子厚,适合在资源与实务上做文章:把力气换成看得见的成果,别停在想法里。"},弱:{生:"这盘底子偏薄,靠「有人托一把」最有效:找对平台、师友与环境,比自己硬撑省力得多。",比:"这盘单打独斗会累,找到同频的人并肩做,反而能把短板补上。",泄:"这盘不宜再往外耗,先收一收摊子,把根基补稳,再谈扩张。"},中:{default:"这盘五行相对均衡,没有哪一处特别极端:走哪条路都能走,靠的是选择与坚持,不是运气。"}};function se(z,_){const E=/强/.test(String(z||"")),M=/弱/.test(String(z||"")),x=Array.isArray(_)?_:[String(_||"")];if(!E&&!M)return be.中.default;const g=E?be.强:be.弱;for(const ue of x){const I=/官杀/.test(ue)?"制":/财/.test(ue)?"耗":/食伤/.test(ue)?"泄":/印/.test(ue)?"生":/比劫/.test(ue)?"比":"";if(I&&g[I])return g[I]}return E?g.泄:g.生}const fe=[[/自刑/,"自刑:自己跟自己较劲,多半是内耗而不是外来的事"],[/三会|三合/,"三合三会:几股力并成一股,做同类的事更容易成势"],[/六合|合/,"合:人事上容易谈拢,也容易被关系绑住、脱不开身"],[/相冲|冲/,"冲:桩子会晃,变动与拉扯偏多,宜先稳住再动"],[/相刑|刑/,"刑:规矩与情绪上的摩擦,事情不大但磨人"],[/相害|害/,"害:暗处的损耗,多是说不清的不顺"],[/相破|破/,"破:本来成形的事容易散,收尾要多花一分力"]];function P(z){const _=[];for(const E of Array.isArray(z)?z:[])for(const[M,x]of fe)if(M.test(E)&&!_.includes(x)){_.push(x);break}return _}function B(z){return q[String(z||"")]||null}function u(z){return H[String(z||"")]||null}return{STEM_PORTRAIT:H,TENGOD_PORTRAIT:q,FRAME_TONE:be,frameToneOf:se,relationNotes:P,godPortraitOf:B,stemPortraitOf:u}})(),K.interpret=(function(){const{HEX64:H,HEX_BY_CORE:q,TRIGRAM:be,YAO_POSITION:se,MOVING_NATURE:fe,ZIWEI_STARS:P,WUXING_INDUSTRY:B,WUXING_ORGAN:u,TENGOD_STYLE:z,LIUREN_JIANG:_,TAROT_ELEMENT_FOCUS:E,DISCLAIMER:M}=K["interpret-data"]||{},{MUTAGEN:x}=K.ziwei||{},{palaceFieldOf:g,starExtraOf:ue,starPairOf:I,brightRead:D,huaInLine:p,shaLineOf:T,shaNatureOf:r,fuLineOf:t,patternReadOf:d,MAIN_SHA:n}=K["ziwei-words"]||{},{stemPortraitOf:h,godPortraitOf:k,frameToneOf:y,relationNotes:b}=K["bazi-words"]||{},{bodyLabels:O,yongshenOf:ie}=K.liuyao||{},de=[{key:"overall",label:"整体运势"},{key:"work",label:"工作与职业选择"},{key:"career",label:"事业发展"},{key:"love",label:"爱情与感情"},{key:"health",label:"健康状况"}],ze={bazi:"natal",ziwei:"natal",liuyao:"divination",meihua:"divination",daliuren:"divination",tarot:"card"},Ae={bazi:"八字",ziwei:"紫微斗数",liuyao:"六爻",meihua:"梅花易数",daliuren:"大六壬",tarot:"塔罗"},we=[{key:"general",label:"综合",dim:null,focus:""},{key:"wealth",label:"财运",dim:"work",focus:"钱财进出的落点主要看「工作与职业选择」与「事业发展」这两条。"},{key:"career",label:"事业",dim:"career",focus:"事业发展这条与你的问题最直接。"},{key:"love",label:"感情",dim:"love",focus:"感情这条与你的问题最直接。"},{key:"health",label:"健康",dim:"health",focus:"健康这条与你的问题最直接;下面只作提醒,不作任何诊断。"},{key:"study",label:"学业",dim:"career",focus:"学业与考试更贴近「事业发展」这条,讲的是长期积累与阶段进展。"},{key:"travel",label:"出行",dim:"overall",focus:"出行与迁动更贴近「整体运势」这条,看的是当下这一段的大环境。"}],en="general",Pe=c=>we.find(R=>R.key===c)||we[0];function bn(c){const R=j(c)?c:{},l=typeof R.question=="string"?R.question.trim().slice(0,200):"",S=Pe(R.direction);return{question:l,direction:S.key,directionLabel:S.label,echo:l?`问题:${l} | 询问方向:${S.label}`:`询问方向:${S.label}`}}function rn(c,R,l){const S=Array.isArray(c)?c.slice():[],$=Pe(R&&R.direction);if($.dim){const ye=S.findIndex(C=>C&&C.key===$.dim);if(ye>0){const C=S[ye];S.splice(ye,1),S.unshift(C)}if(S[0]&&S[0].key===$.dim){const C=R.question?`就你所问的「${R.question}」来看(${$.label}方向)——${$.focus}`:`按${$.label}这个方向看——${$.focus}`;S[0]=Object.assign({},S[0],{text:`${C}${S[0].text}`,focused:!0})}}let N=l||"";return R.question?N=`你问的是「${R.question}」${$.key==="general"?"。":`,方向是${$.label}。`}${N}`:$.key!=="general"&&(N=`方向是${$.label}。${N}`),{dims:S,lead:N}}const Y={大吉:"外部环境对你比较配合,属于可以主动争取的阶段",吉:"整体偏顺,适合稳步推进手上的事",平:"起伏不大,更适合打基础、补短板",忌:"摩擦与消耗偏多,宜守成、减少冒进",大忌:"压力相对集中,宜降低预期、先保住基本盘"},U={大吉:"想做的事可以排进日程,别只停在想法上",吉:"按已有节奏走,把一件事做完整比开新头更划算",平:"把精力投向积累:技能、资质、人脉都算数",忌:"少做大的调整,先把手上的事收尾",大忌:"给自己留出缓冲,重要决定不妨往后放一放"},j=c=>c&&typeof c=="object",f=(c,R,l="")=>j(c)&&c[R]!=null?c[R]:l,w=(c,R="、")=>Array.isArray(c)?c.filter(Boolean).join(R):String(c||"");function ne(c,R,l){if(H[c])return{full:c,...H[c]};const S=typeof c=="string"&&c.length>2?c.slice(2):c;if(q[S]){const ye=q[S];return{full:ye,...H[ye]}}const $=be[R]||{},N=be[l]||{};return{full:c||"本卦",meaning:`${$.nature||R||""}在${N.nature||l||""}上,${$.trait||""}遇${N.trait||""}`.trim(),scene:"按上下卦的取象体会这一卦的大意"}}function te(c){const R=String(c||"");return/七杀/.test(R)?"七杀":/正官/.test(R)?"正官":/正财/.test(R)?"正财":/偏财|财格/.test(R)?"偏财":/伤官/.test(R)?"伤官":/食神|食伤/.test(R)?"食神":/正印/.test(R)?"正印":/偏印|枭/.test(R)?"偏印":/劫财/.test(R)?"劫财":/比肩|比劫/.test(R)?"比肩":/官/.test(R)?"正官":/财/.test(R)?"偏财":/印/.test(R)?"正印":""}function $e(c,R){const l=se.find(S=>S.pos===c)||se[0];return`${l.name}(${l.gist}):${l.tone}${R?";此处发动,"+(R.yinYang==="阳"?fe.yang:fe.yin):""}`}function Re(c){const R=j(c.dayMaster)?c.dayMaster:{},l=j(c.strength)?c.strength:{},S=j(c.frame)?c.frame:{},$=j(S.yongshen)?S.yongshen:{},N=c.climate||(j($.climate)?$.climate:j($.tiaohou)?$.tiaohou:null),ye=j(c.wuxing)?c.wuxing:{},C=f(l,"level","中和"),X=Array.isArray($.favor)?$.favor:[],ce=Array.isArray($.avoid)?$.avoid:[],Z=Array.isArray($.disputed)?$.disputed:[],Je=Array.isArray($.neutral)?$.neutral:[],_e=Je.length?`其中${Je.map(o=>`${o.element}(${o.role})`).join("、")}全局仅 ${Je.map(o=>o.weight).join("、")} 分,分量近零,按中性偏忌看;仍留在忌里,是因为行运走到这一行时照样按忌计。`:"",ge=f(S,"primaryName","未取定"),A=f(c.input,"gender","")==="male",Ee=A?"财":"官杀",oe=Number(f(c.liunian?.[0],"age",NaN)),cn=Array.isArray(c.dayun?.list)?c.dayun.list:[];let Ie=null;for(const o of cn)Number.isFinite(oe)&&Number(o.startAge)<=oe&&(Ie=o);!Ie&&cn.length&&(Ie=cn[0]);const on=j(Ie?.luck)?Ie.luck:{},wn=f(on,"tier","平"),J=j(c.liunian?.[0])?c.liunian[0]:{},Ye=j(J.luck)?J.luck:{},an=f(Ye,"tier","平"),Be=j(S.godStats?.groups)?S.godStats.groups:{},Te=Object.entries(Be).sort((o,v)=>v[1]-o[1]),je=Te[0]?.[0]||"",pn=Te[1]?.[0]||"",He=Object.entries(ye).sort((o,v)=>v[1]-o[1]),mn=He[0]?.[0]||"",fn=He[He.length-1]?.[0]||"",qn=Object.keys(ye).filter(o=>Number(ye[o])===0),On=Ie?cn.indexOf(Ie):-1,kn=[],Me={甲:"木",乙:"木",丙:"火",丁:"火",戊:"土",己:"土",庚:"金",辛:"金",壬:"水",癸:"水"},Xe=o=>Me[String(o||"")[0]]||"",vn={子:"水",丑:"土",寅:"木",卯:"木",辰:"土",巳:"火",午:"火",未:"土",申:"金",酉:"金",戌:"土",亥:"水"};if(Ie){const o=Xe(Ie.ganzhi);o&&(X.includes(o)?kn.push(`当前大运 ${Ie.ganzhi} 走${o},正是喜用,这十年推事情比平时省力;${je?`可把力气放在${je}对应的事上`:"适合把长期计划铺开"}。`):ce.includes(o)?kn.push(`当前大运 ${Ie.ganzhi} 走${o},落在忌神上,这十年更适合守成、补短板,不宜大杠杆扩张。`):kn.push(`当前大运 ${Ie.ganzhi} 走${o},既非喜用也非忌神,属于平运,结果更多取决于你在这段里做了什么。`))}if(qn.length){const o=qn.filter(V=>ce.includes(V)),v=qn.filter(V=>X.includes(V));o.length&&kn.push(`命局缺 ${o.join("、")},而它正是你的忌神——缺得刚好,不必刻意去补。`),v.length&&kn.push(`命局缺 ${v.join("、")},这恰是喜用,是这盘的短板:靠环境、行业与身边人来补,比自己硬扛有效。`)}if(je&&ge){const o=te(ge);o&&je&&o===je?kn.push(`格局 ${ge} 与最重的${je}一致,说明你的能量集中在同一条线上,长处突出、短板也集中。`):o&&kn.push(`格局 ${ge}(偏${o})与最重的${je}不在一条线上,内在会有两股力气拉扯:一边是格局给你的路,一边是你本能投入最多的事。`)}if(Array.isArray(c.shensha)&&c.shensha.some(o=>(o.items||[]).some(v=>v.name==="羊刃"))&&Number(Be.官杀||0)>=1&&kn.push('命见羊刃且官杀有力,属压力驱动型:遇强则强,但需要出口,长期憋着容易内耗;运动或竞技类爱好比"忍"更有用。'),c.pillars?.day){const v=c.input?.gender==="male"?"财":"官杀",V=Number(Be[v]||0),Ne=vn[c.pillars.day.branch]||"";V>=2&&Ne&&X.includes(Ne)?kn.push(`配偶星(${v})不弱,且日支 ${c.pillars.day.branch} 属喜用,感情中有实际助益,不只看感觉。`):V===0&&kn.push(`命局不见${v},感情多靠自己主动创造场景;日支 ${c.pillars.day.branch} 更像"对方的样子"而不是"缘分的强度"。`)}const Nn=On>=0?cn.slice(On+1,On+4):cn.slice(0,3),Mn=(...o)=>o.filter(v=>v!=null&&v!==""),_n=[{key:"overall",label:"整体运势",text:`你的日主是${R.stem}(五行属${R.element}),命局${C}(${f(l,"score","")} 分)。用神取向偏${w(X)},忌${w(ce)}——往${w(X)}的方向走会更省力${$.tiaohou&&$.tiaohou.note?`;调候上${$.tiaohou.note}`:""}。目前走在${f(Ie,"ganzhi","当前")}大运(${wn}),${f(J,"year","今年")}年流年${f(J,"ganzhi","")}为${an}。`,advice:`大运看:${Y[wn]||Y.平};流年看:${U[an]||U.平}。大方向定在${w(X)}相关的领域,会比硬扛${w(ce)}顺畅一些。`,evidence:Mn(`日主 ${R.stem}${R.element}·${C}`,l&&l.parts&&l.parts.season?`月令 ${l.parts.season.branch}${l.parts.season.element}`:"",`喜 ${w(X)} / 忌 ${w(ce)}`,Ie?`大运 ${Ie.ganzhi}·${wn}`:"",J&&J.ganzhi?`流年 ${J.year}${J.ganzhi}·${an}`:"")},{key:"work",label:"工作与职业选择",text:`按喜用神看,${w(X)}这几类方向对你更有利,可参考的行业包括:${X.slice(0,2).map(o=>B[o]||"").filter(Boolean).join(";")||"暂未取定,可先按兴趣与能力试"}。命局主格为${ge},这类结构的人通常${z[te(ge)]||"有自己稳定的节奏"}。十神中${je}最重(${Te[0]?.[1]??""}),${pn}次之,说明你在${je}所代表的事项上投入的精力最多。`,advice:`选岗位时可以偏向「${w(X)}属性 + ${je}对应的事务」;如果现在的工作明显偏${w(ce)}且长期让你疲惫,可以参考上面方向做小幅试探,不必立刻大改。`,evidence:Mn(`主格 ${ge}`,`喜用五行 ${w(X)}`,Te.length?`十神 ${Te.slice(0,3).map(([o,v])=>`${o}${v}`).join(" ")}`:"")},{key:"career",label:"事业发展",text:`${ge}的格局,配合十神里${je}偏旺的结构,事业上更适合${je==="财"?"靠业绩与资源积累说话":je==="官杀"?"在有规则的组织里按层级上升":je==="印"?"凭资质、专业与口碑取胜":je==="食伤"?"靠作品、技术与表达打开局面":"与人并肩、共同承担的方式"}。接下来几步大运依次为:${Nn.map(o=>`${o.ganzhi}(${o.luck?.tier||"平"})`).join(" → ")||"暂未排出"},整体节奏是${Nn.length&&Nn.filter(o=>["吉","大吉"].includes(o.luck?.tier)).length>=2?"先抑后扬、后段更顺":"需要一步步积累,中间偶有起伏"}。`,advice:`把${Nn[0]?.ganzhi||"下一步"}这一步当作铺垫期,重点补${je==="食伤"?"作品与专业深度":je==="官杀"?"资历与组织内的信任":"可迁移的能力与资质"};遇到${w(ce)}过重的年份,优先保住已有成果。`,evidence:Mn(`格局 ${ge}`,Nn.length?`后续大运 ${Nn.map(o=>o.ganzhi).join(" → ")}`:"",`当前 ${f(Ie,"ganzhi","—")}·${wn}`)},{key:"love",label:"爱情与感情",text:`${A?"男命以财星看妻缘":"女命以官杀看夫缘"},你命局中${A?"财":"官杀"}的力量为${Be[A?"财":"官杀"]??"—"},${Number(Be[A?"财":"官杀"]||0)>=2?"缘分出现的机会不算少":"需要自己主动创造认识人的场景"}。日支(配偶宫)为${f(c.pillars?.day,"branch","")},坐${f(c.pillars?.day,"zizuo","")},这里的信号是:${Number(Be[A?"财":"官杀"]||0)>=2?"关系里你容易被主动靠近,但要留意筛选":"感情推进偏慢,属于需要经营的类型"}。`,advice:`不必急着要结果,先看清自己在关系里最在意什么。${Number(Be[A?"财":"官杀"]||0)>=2?"选项多时,明确标准反而更省心":"可以把社交圈稍微扩大一点,但别为了脱单降低底线"};沟通上多说具体需求,少让对方猜。`,evidence:Mn(`${A?"财":"官杀"} 权重 ${Be[A?"财":"官杀"]??"—"}`,`日支 ${f(c.pillars?.day,"branch","")}·${f(c.pillars?.day,"zizuo","")}`,`配偶星 ${A?"财":"官杀"}`)},{key:"health",label:"健康状况",text:`五行分布上,${mn}最旺、${fn}最弱${qn.length?`,其中${w(qn)}在命局中没有明现`:""}。按五行与身体的对应,${mn}偏旺时${u[mn]?.part||""}负担相对重(${u[mn]?.note||""});${fn}偏弱则${u[fn]?.part||""}偏弱一些,是更值得留意的部分。这只是传统命理的取象提示,不是诊断。`,advice:`建议把作息规律放在第一位——尤其是睡眠时长尽量稳定;${u[fn]?.note?fn+"对应的"+u[fn].part+"可以按体检项目关注":"按常规体检关注"}。任何不适请去看医生,别用命理结论替代检查。`,evidence:Mn(`五行 ${Object.entries(ye).map(([o,v])=>`${o}${v}`).join(" ")}`,`最旺 ${mn} / 最弱 ${fn}`,qn.length?`缺 ${w(qn)}`:"")}],Rn=h(R.stem),Gn=k(je),Pn=k(pn),tn=l.parts&&l.parts.season?l.parts.season:null,Un=f(c.pillars?.day,"branch",""),Bn=Object.entries(j(S.godStats?.byGod)?S.godStats.byGod:{}).filter(([,o])=>Number(o)>0).sort((o,v)=>v[1]-o[1]),Jn=Bn[0]?Bn[0][0]:"",Wn=k(Jn),Dn=(Array.isArray($.favorRoles)?$.favorRoles:[]).slice().sort((o,v)=>(Number(Be[v])||0)-(Number(Be[o])||0)),et=[`**日主**:${R.stem}${R.element}(${R.yinYang}${R.element})${tn?`生于${tn.branch}月,日主在月令「${tn.word}」`:""},命局${C}(${f(l,"score","—")} 分)${Rn?`——${Rn.image}之象`:""}。`,`**用神**:喜${w(X)||"—"}(${w($.favorRoles||[])||"—"}),忌${w(ce)||"—"}(${w($.avoidRoles||[])||"—"})。${Je.length?`(${w(Je.map(o=>o.element))} 近零,按中性偏忌看)`:""}${y(C,Dn)}`,`**格局**:${ge}(${f(S.primary,"evidence","")})${(Array.isArray(S.geju)?S.geju:[]).filter(o=>o.name&&o.name!==ge).length?`,另有${S.geju.map(o=>o.name).filter(o=>o&&o!==ge).join("、")}`:""}。`].join(`
|
|
69
|
-
`),
|
|
70
|
-
`),
|
|
71
|
-
`),
|
|
72
|
-
${
|
|
73
|
-
读法:档位说的是「这一年顺不顺手」,不是「会发生什么」;年份不顺时把重要动作挪到顺的年份,比硬扛更省事。`:"流年数据未取到,暂不展开。",zn=[];
|
|
74
|
-
`),
|
|
75
|
-
`)},...
|
|
76
|
-
原文:《${En[
|
|
77
|
-
白话:${
|
|
66
|
+
`,A={河北:"石家庄",山西:"太原",内蒙古:"呼和浩特",辽宁:"沈阳",吉林:"长春",黑龙江:"哈尔滨",江苏:"南京",浙江:"杭州",安徽:"合肥",福建:"福州",江西:"南昌",山东:"济南",河南:"郑州",湖北:"武汉",湖南:"长沙",广东:"广州",广西:"南宁",海南:"海口",四川:"成都",贵州:"贵阳",云南:"昆明",西藏:"拉萨",陕西:"西安",甘肃:"兰州",青海:"西宁",宁夏:"银川",新疆:"乌鲁木齐",台湾:"台北"},Se={石家庄:[114.51,38.04],太原:[112.55,37.87],沈阳:[123.43,41.8],长春:[125.32,43.82],哈尔滨:[126.53,45.8],南京:[118.8,32.06],杭州:[120.15,30.28],合肥:[117.23,31.82],福州:[119.3,26.08],南昌:[115.86,28.68],济南:[117,36.65],郑州:[113.62,34.75],武汉:[114.3,30.59],长沙:[112.94,28.23],广州:[113.26,23.13],南宁:[108.37,22.82],海口:[110.2,20.04],成都:[104.07,30.67],贵阳:[106.63,26.65],昆明:[102.83,24.88],拉萨:[91.13,29.65],西安:[108.94,34.34],兰州:[103.83,36.06],西宁:[101.78,36.62],银川:[106.23,38.49],乌鲁木齐:[87.62,43.82],台北:[121.52,25.03]},se=(()=>{const N={};for(const L of Y.trim().split(`
|
|
67
|
+
`))for(const z of L.split(";")){const g=z.trim().split(/\s+/);if(g.length!==3)continue;const[$e,G,J]=g;N[$e]={lon:Number(G),lat:Number(J)}}for(const[L,[z,g]]of Object.entries(Se))N[L]||(N[L]={lon:z,lat:g});return N})(),me=/(省|市|地区|盟|自治州|自治县|自治区|特别行政区|县|区|镇|乡|街道|村|小区|社区)/g;function B(N){const L=String(N||"").trim();if(!L)return null;const z=Number(L);if(Number.isFinite(z)&&/^-?\d+(\.\d+)?$/.test(L)&&z>=60&&z<=150)return{lon:z,lat:null,matched:`${z}°E`,level:"经度",note:"按你输入的经度计算"};const g=L.replace(/\s/g,"").replace(me,""),$e=Object.keys(se).sort((J,k)=>k.length-J.length);for(const J of $e)if(g.includes(J)){const k=se[J];return{lon:k.lon,lat:k.lat,matched:J,level:"地级市",note:`按 ${J} 估算(约 ${k.lon}°E)`}}const G=L.replace(/\s/g,"");for(const[J,k]of Object.entries(A)){const T=G.indexOf(J);if(T<0)continue;const s=G.charAt(T+J.length);if(s==="区"||s==="县")continue;const t=se[k]||{lon:Se[k][0],lat:Se[k][1]};return{lon:t.lon,lat:t.lat,matched:k,level:"省会",note:`未匹配到具体城市,按 ${J} 省会 ${k} 估算(约 ${t.lon}°E)`}}return{lon:null,lat:null,matched:null,level:"未匹配",note:`没查到「${L}」,可改填经度(如 116.4)`}}const U=/(区|县|镇|乡|村|小区|街道|路|号|巷|弄|组|队)/,c="dsh-metaphysics/0.23.0 (+https://github.com/xuanfu-web/dsh-metaphysics)";async function q(N,{timeoutMs:L=2500}={}){if(typeof fetch!="function")return null;let z=null;try{const g=typeof AbortController=="function"?new AbortController:null;g&&(z=setTimeout(()=>g.abort(),L));const $e="https://nominatim.openstreetmap.org/search?format=jsonv2&limit=1&accept-language=zh-CN&countrycodes=cn&q="+encodeURIComponent(N),G=await fetch($e,{signal:g?g.signal:void 0,headers:{"User-Agent":c}});if(!G||!G.ok)return null;const J=await G.json();if(!Array.isArray(J)||J.length===0)return null;const k=J[0],T=Number(k.lon),s=Number(k.lat);return Number.isFinite(T)?{lon:T,lat:s,matched:k.display_name,level:"在线",note:`在线解析:${k.display_name}`}:null}catch{return null}finally{z&&clearTimeout(z)}}async function P(N,L={}){const z=B(N),g=String(N||"").trim();if(!g||!(L.online===!0)||z&&typeof z.lon=="number"&&!U.test(g))return z;const G=await q(g,L);return G?{...G,local:z&&z.lon!=null?z:null}:z&&typeof z.lon=="number"?{...z,onlineFailed:!0,note:`${z.note}(联网解析失败或超时,已退回内置坐标表)`}:{...z,onlineFailed:!0}}return{CITIES:se,PROVINCES:A,resolveAddress:B,geocodeAddress:P}})(),V.random=(function(){function Y(se){let me=Number(se)>>>0;return me||(me=2654435769),function(){me=me+1831565813>>>0;let U=me;return U=Math.imul(U^U>>>15,U|1),U^=U+Math.imul(U^U>>>7,U|61),((U^U>>>14)>>>0)/4294967296}}function A(se){if(se==null||se==="")return Math.random;const me=Number(se);return Number.isFinite(me)?Y(me):Math.random}function Se(se){return se==null||se===""?!0:Number.isFinite(Number(se))}return{mulberry32:Y,randomOf:A,isSeed:Se}})(),V.dst=(function(){const{daysInMonth:Y}=V.validate||{},A={1986:["1986-05-04","1986-09-14"],1987:["1987-04-12","1987-09-13"],1988:["1988-04-10","1988-09-11"],1989:["1989-04-16","1989-09-17"],1990:["1990-04-15","1990-09-16"],1991:["1991-04-14","1991-09-15"]},Se=(U,c,q)=>U*1e4+c*100+q;function se(U){const c=A[U.year];if(!c)return!1;const[q,P,N]=c[0].split("-").map(Number),[L,z,g]=c[1].split("-").map(Number),$e=Se(U.year,U.month,U.day);if($e<Se(q,P,N)||$e>Se(L,z,g))return!1;const G=U.hour*60+(U.minute||0);return!($e===Se(q,P,N)&&G<120||$e===Se(L,z,g)&&G>=120)}function me(U){const c=U.minute||0;if(!se(U))return{year:U.year,month:U.month,day:U.day,hour:U.hour,minute:c,applied:!1,note:null};let{year:q,month:P,day:N,hour:L}=U;return L-=1,L<0&&(L+=24,N-=1,N<1&&(P-=1,P<1&&(P=12,q-=1),N=Y(q,P))),{year:q,month:P,day:N,hour:L,minute:c,applied:!0,note:`检出自 ${A[U.year][0]} 至 ${A[U.year][1]} 的中国夏令时:出生钟面时间已减 1 小时校正`}}function B(U,c){const q=Array.isArray(U)?U.slice():[];return c&&c.applied&&c.note&&q.push(c.note),q}return{DST_SPANS:A,inDstSpan:se,applyDst:me,withDstNote:B}})(),V.shensha=(function(){const{BRANCHES:Y}=V.calendar||{},{sanheGroupOf:A}=V.sanhe||{},Se=["year","month","day","hour"],se={year:"年柱",month:"月柱",day:"日柱",hour:"时柱"},me=["贵人","文星","婚姻","性情","事业","凶煞","格局"],B=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],U={year:"年干",month:"月干",day:"日干",hour:"时干"},c={year:"年支",month:"月支",day:"日支",hour:"时支"},q=de=>{const oe=A(de);return oe?oe.branches.join(""):void 0},P={亥子丑:["寅","戌"],寅卯辰:["巳","丑"],巳午未:["申","辰"],申酉戌:["亥","未"]},N=de=>Object.keys(P).find(oe=>oe.includes(de)),L={寅:"春",卯:"春",辰:"春",巳:"夏",午:"夏",未:"夏",申:"秋",酉:"秋",戌:"秋",亥:"冬",子:"冬",丑:"冬"},z=de=>({kind:"branch",ch:de}),g=de=>({kind:"stem",ch:de}),$e=de=>({kind:"gz",ch:de}),G={甲:["丑","未"],戊:["丑","未"],庚:["丑","未"],乙:["子","申"],己:["子","申"],丙:["亥","酉"],丁:["亥","酉"],辛:["午","寅"],壬:["卯","巳"],癸:["卯","巳"]},J={甲:["子","午"],乙:["子","午"],丙:["卯","酉"],丁:["卯","酉"],戊:["辰","戌","丑","未"],己:["辰","戌","丑","未"],庚:["寅","亥"],辛:["寅","亥"],壬:["巳","申"],癸:["巳","申"]},k={寅:"丁",卯:"申",辰:"壬",巳:"辛",午:"亥",未:"甲",申:"癸",酉:"寅",戌:"丙",亥:"乙",子:"巳",丑:"庚"},T={寅午戌:"丙",申子辰:"壬",亥卯未:"甲",巳酉丑:"庚"},s={丙:"辛",壬:"丁",甲:"己",庚:"乙"},t={甲:["寅","子"],丙:["寅","子"],乙:["卯","丑"],癸:["卯","丑"],丁:["酉"],戊:["申"],己:["未"],庚:["午"],辛:["巳"],壬:["辰"]},d={甲:["未"],乙:["辰"],丙:["巳"],丁:["酉"],戊:["戌"],己:["卯"],庚:["亥"],辛:["申"],壬:["午"],癸:["寅"]},n={甲:["戌"],乙:["亥"],丙:["丑"],丁:["寅"],戊:["丑"],己:["寅"],庚:["辰"],辛:["巳"],壬:["未"],癸:["申"]},m={甲:["巳"],乙:["午"],丙:["巳"],丁:["午"],戊:["申"],己:["酉"],庚:["亥"],辛:["子"],壬:["寅"],癸:["卯"]},S={寅:"丑",卯:"寅",辰:"卯",巳:"辰",午:"巳",未:"午",申:"未",酉:"申",戌:"酉",亥:"戌",子:"亥",丑:"子"},p={甲:["巳"],乙:["午"],丙:["申"],丁:["酉"],戊:["申"],己:["酉"],庚:["亥"],辛:["子"],壬:["寅"],癸:["卯"]},j={寅午戌:["丙","丁","戊","癸"],申子辰:["壬","癸","戊","己","丙","辛","甲","己"],巳酉丑:["庚","辛","乙"],亥卯未:["甲","乙","丁","壬"]},_={寅午戌:["卯"],申子辰:["酉"],巳酉丑:["午"],亥卯未:["子"]},ce={寅午戌:["午"],申子辰:["子"],巳酉丑:["酉"],亥卯未:["卯"]},be={寅午戌:["戌"],申子辰:["辰"],巳酉丑:["丑"],亥卯未:["未"]},Ae={寅午戌:["申"],申子辰:["寅"],巳酉丑:["亥"],亥卯未:["巳"]},h={寅午戌:["亥"],申子辰:["巳"],巳酉丑:["寅"],亥卯未:["申"]},v={寅午戌:["子"],申子辰:["午"],巳酉丑:["卯"],亥卯未:["酉"]},le={寅午戌:["巳"],申子辰:["亥"],巳酉丑:["申"],亥卯未:["寅"]},ae={甲:["辰"],乙:["巳"],丙:["未"],丁:["申"],戊:["未"],己:["申"],庚:["戌"],辛:["亥"],壬:["丑"],癸:["寅"]},je={甲:["寅"],乙:["卯"],丙:["巳"],丁:["午"],戊:["巳"],己:["午"],庚:["申"],辛:["酉"],壬:["亥"],癸:["子"]},ge={甲:["卯"],乙:["辰"],丙:["午"],丁:["未"],戊:["午"],己:["未"],庚:["酉"],辛:["戌"],壬:["子"],癸:["丑"]},E={甲:["酉"],乙:["戌"],丙:["子"],丁:["丑"],戊:["子"],己:["丑"],庚:["卯"],辛:["辰"],壬:["午"],癸:["未"]},R={甲:["酉"],乙:["戌"],丙:["未"],丁:["申"],戊:["巳"],己:["午"],庚:["辰"],辛:["卯"],壬:["亥"],癸:["寅"]},w=["庚辰","庚戌","壬辰","戊戌"],f=["甲寅","丙辰","戊辰","庚辰","壬戌"],b=["丁酉","丁亥","癸巳","癸卯"],F=["丙午","丁未","戊子","戊午","己丑","己未"],C=["甲辰","乙巳","丙申","丁亥","戊戌","己丑","庚辰","辛巳","壬申","癸亥"],ee=["丙子","丁丑","戊寅","辛卯","壬辰","癸巳","丙午","丁未","戊申","辛酉","壬戌","癸亥"],Ne={春:"戊寅",夏:"甲午",秋:"戊申",冬:"甲子"},Me={春:["庚申","辛酉"],夏:["壬子","癸亥"],秋:["甲寅","乙卯"],冬:["丙午","丁巳"]},an={春:["寅","子"],秋:["寅","子"],夏:["卯","未","辰"],冬:["卯","未","辰"]},Te=["甲戊庚","乙丙丁","壬癸辛"],dn=["乙丑","己巳","癸酉"];function fe(de,oe,D,_e,Oe,Le=["day"]){return{name:de,cat:oe,luck:D,rule:_e,refs:Le,refKind:"stem",targets:(ue,We)=>(Oe[ue.pillars[We].stem]||[]).map(z)}}function nn(de,oe,D,_e,Oe,Le=["year","day"]){return{name:de,cat:oe,luck:D,rule:_e,refs:Le,refKind:"branch",targets:(ue,We)=>{const ln=q(ue.pillars[We].branch);return ln&&Oe[ln]?Oe[ln].map(z):[]}}}function bn(de,oe,D,_e,Oe,Le="year"){return{name:de,cat:oe,luck:D,rule:_e,refs:[Le],refKind:"branch",viaLabel:c[Le],targets:ue=>Oe(ue)}}function ye(de,oe,D,_e,Oe,Le){return{name:de,cat:oe,luck:D,rule:_e,refs:["month"],refKind:"branch",viaLabel:"月支",slots:Le,targets:ue=>Oe(ue)}}function Ye(de,oe,D,_e,Oe,Le="day"){return{name:de,cat:oe,luck:D,rule:_e,refs:[Le],refKind:"branch",viaLabel:se[Le],slots:[Le],targets:(ue,We)=>Oe.includes(ue.pillars[We].ganzhi)?[$e(ue.pillars[We].ganzhi)]:[]}}const Fe=[fe("天乙贵人","贵人","good","甲戊庚见丑未,乙己见子申,丙丁见亥酉,辛见午寅,壬癸见卯巳(年干、日干查四支)",G,["year","day"]),fe("太极贵人","贵人","good","甲乙见子午,丙丁见卯酉,戊己见辰戌丑未,庚辛见寅亥,壬癸见巳申(年干、日干查四支)",J,["year","day"]),ye("天德贵人","贵人","good","正月丁、二月申、三月壬、四月辛、五月亥、六月甲、七月癸、八月寅、九月丙、十月乙、冬月巳、腊月庚(月支查干或支)",de=>{const oe=k[de.pillars.month.branch];return oe?B.includes(oe)?[g(oe)]:[z(oe)]:[]}),ye("月德贵人","贵人","good","寅午戌月见丙,申子辰月见壬,亥卯未月见甲,巳酉丑月见庚(月支查天干)",de=>{const oe=q(de.pillars.month.branch);return oe&&T[oe]?[g(T[oe])]:[]}),ye("月德合","贵人","good","月德之合干:丙见辛、壬见丁、甲见己、庚见乙(月支定月德后查天干)",de=>{const oe=q(de.pillars.month.branch),D=oe&&T[oe]?s[T[oe]]:null;return D?[g(D)]:[]}),fe("福星贵人","贵人","good","甲丙见寅子,乙癸见卯丑,丁见酉、戊见申、己见未、庚见午、辛见巳、壬见辰(年干、日干查四支)",t,["year","day"]),fe("天官贵人","贵人","good","甲未、乙辰、丙巳、丁酉、戊戌、己卯、庚亥、辛申、壬午、癸寅(年干、日干查四支;此表流派有异)",d,["year","day"]),fe("国印贵人","贵人","good","甲戌、乙亥、丙丑、丁寅、戊丑、己寅、庚辰、辛巳、壬未、癸申(年干、日干查四支)",n,["year","day"]),fe("天厨贵人","贵人","good","食神之禄:甲巳、乙午、丙巳、丁午、戊申、己酉、庚亥、辛子、壬寅、癸卯(日干查四支)",m,["day"]),ye("天医","贵人","good","月支退一位:寅月见丑、卯月见寅……丑月见子(月支查四支)",de=>{const oe=S[de.pillars.month.branch];return oe?[z(oe)]:[]}),fe("文昌贵人","文星","good","甲巳、乙午、丙申、丁酉、戊申、己酉、庚亥、辛子、壬寅、癸卯(年干、日干查四支)",p,["year","day"]),ye("德秀贵人","文星","good","寅午戌月德丙丁、秀戊癸;申子辰月德壬癸戊己、秀丙辛甲己;巳酉丑月德庚辛、秀乙庚;亥卯未月德甲乙、秀丁壬(月支查天干)",de=>{const oe=q(de.pillars.month.branch);return oe&&j[oe]?j[oe].map(g):[]}),nn("桃花","婚姻","neutral","寅午戌见卯、申子辰见酉、巳酉丑见午、亥卯未见子(年支、日支双查)",_),bn("红鸾","婚姻","good","卯起子逆数:子见卯、丑见寅、寅见丑、卯见子……(年支查四支)",de=>{const oe=Y.indexOf(de.pillars.year.branch);return[z(Y[((3-oe)%12+12)%12])]}),bn("天喜","婚姻","good","红鸾对冲之位:子见酉、丑见申、寅见未……(年支查四支)",de=>{const D=((3-Y.indexOf(de.pillars.year.branch))%12+12)%12;return[z(Y[(D+6)%12])]}),bn("孤辰","婚姻","bad","亥子丑年见寅、寅卯辰年见巳、巳午未年见申、申酉戌年见亥(年支查四支)",de=>{const oe=N(de.pillars.year.branch);return oe?[z(P[oe][0])]:[]}),bn("寡宿","婚姻","bad","亥子丑年见戌、寅卯辰年见丑、巳午未年见辰、申酉戌年见未(年支查四支)",de=>{const oe=N(de.pillars.year.branch);return oe?[z(P[oe][1])]:[]}),fe("金舆","婚姻","good","禄前二位:甲龙乙蛇丙戊羊、丁己申宫庚犬乡、辛猪壬牛癸虎位(日干查四支)",ae,["day"]),nn("华盖","性情","neutral","寅午戌见戌、申子辰见辰、巳酉丑见丑、亥卯未见未(年支、日支双查)",be),fe("羊刃","性情","bad","禄前一位:甲卯、乙辰、丙戊午、丁己未、庚酉、辛戌、壬子、癸丑(日干查四支;阳干论刃为主)",ge,["day"]),fe("飞刃","性情","bad","羊刃六冲:甲酉、乙戌、丙子、丁丑、戊子、己丑、庚卯、辛辰、壬午、癸未(日干查四支)",E,["day"]),Ye("魁罡","性情","neutral","日柱庚辰、庚戌、壬辰、戊戌(日柱见之)",w),ye("童子煞","性情","neutral","春秋生见寅子,冬夏生见卯未辰(取季节口诀,查日支、时支;另有纳音五行一法,流派多歧,仅作参考)",de=>{const oe=L[de.pillars.month.branch],D=oe&&an[oe];return D?D.map(z):[]},["day","hour"]),Ye("六秀日","性情","good","日柱丙午、丁未、戊子、戊午、己丑、己未(日柱见之)",F),Ye("日德","性情","good","日柱甲寅、丙辰、戊辰、庚辰、壬戌(日柱见之)",f),Ye("日贵","性情","good","日柱丁酉、丁亥、癸巳、癸卯(日柱见之)",b),fe("禄神","事业","good","甲寅、乙卯、丙戊巳、丁己午、庚申、辛酉、壬亥、癸子(日干查四支)",je,["day"]),nn("将星","事业","good","寅午戌见午、申子辰见子、巳酉丑见酉、亥卯未见卯(年支、日支双查)",ce),nn("驿马","事业","neutral","寅午戌见申、申子辰见寅、巳酉丑见亥、亥卯未见巳(年支、日支双查)",Ae),nn("劫煞","凶煞","bad","寅午戌见亥、申子辰见巳、巳酉丑见寅、亥卯未见申(年支、日支双查)",h),nn("灾煞","凶煞","bad","寅午戌见子、申子辰见午、巳酉丑见卯、亥卯未见酉(年支、日支双查)",v),nn("亡神","凶煞","bad","寅午戌见巳、申子辰见亥、巳酉丑见申、亥卯未见寅(年支、日支双查)",le),{name:"空亡",cat:"凶煞",luck:"bad",rule:"以日柱所在旬的空亡反查各柱地支(日柱旬空)",refs:["day"],refKind:"branch",viaLabel:"日柱旬空",targets:de=>(de.kongwang||[]).map(z)},Ye("十恶大败","凶煞","bad","日柱甲辰、乙巳、丙申、丁亥、戊戌、己丑、庚辰、辛巳、壬申、癸亥(日柱见之)",C),Ye("阴差阳错","凶煞","bad","日柱丙子、丁丑、戊寅、辛卯、壬辰、癸巳、丙午、丁未、戊申、辛酉、壬戌、癸亥(日柱见之)",ee),ye("四废日","凶煞","bad","春庚申辛酉、夏壬子癸亥、秋甲寅乙卯、冬丙午丁巳(月支定季节查日柱)",de=>{const oe=L[de.pillars.month.branch],D=de.pillars.day.ganzhi;return oe&&Me[oe].includes(D)?[$e(D)]:[]},["day"]),fe("流霞","凶煞","bad","甲酉、乙戌、丙未、丁申、戊巳、己午、庚辰、辛卯、壬亥、癸寅(日干查四支;通行表)",R,["day"]),ye("天赦日","格局","good","春戊寅、夏甲午、秋戊申、冬甲子(月支定季节查日柱)",de=>{const oe=L[de.pillars.month.branch],D=de.pillars.day.ganzhi;return oe&&Ne[oe]===D?[$e(D)]:[]},["day"]),Ye("金神","格局","neutral","时柱乙丑、己巳、癸酉(时柱见之;严格成格另需日主身旺,此仅记星)",dn,"hour"),{name:"天罗",cat:"凶煞",luck:"bad",rule:"四支见戌、亥俱全(戌亥为天罗)",custom:de=>on(de,["戌","亥"])},{name:"地网",cat:"凶煞",luck:"bad",rule:"四支见辰、巳俱全(辰巳为地网)",custom:de=>on(de,["辰","巳"])},{name:"三奇贵人",cat:"格局",luck:"good",rule:"年月日或月日时天干依序为甲戊庚(天上)、乙丙丁(地下)、壬癸辛(人中)",custom:de=>{const oe=[];for(const D of[["year","month","day"],["month","day","hour"]]){const _e=D.map(Oe=>de.pillars[Oe].stem).join("");Te.includes(_e)&&oe.push({pillars:D.slice(),via:"三柱天干",target:_e})}return oe}}];function on(de,oe){const D=Se.filter(_e=>oe.includes(de.pillars[_e].branch));return D.length<oe.length?[]:[{pillars:D,via:"四支",target:oe.join("")}]}function De(de,oe){return oe.kind==="stem"?de.stem===oe.ch:oe.kind==="branch"?de.branch===oe.ch:de.ganzhi===oe.ch}function Ue(de,oe){if(de.custom)return de.custom(oe);const D=[];for(const _e of de.refs){const Oe=de.targets(oe,_e)||[];if(!Oe.length)continue;const Le=de.viaLabel||(de.refKind==="stem"?U:c)[_e];for(const ue of de.slots||Se){const We=oe.pillars[ue];for(const ln of Oe)De(We,ln)&&D.push({pillars:[ue],via:Le,target:ln.ch})}}return D}function un(de,oe=[]){const D={pillars:de,kongwang:oe},_e=[];for(const ue of Fe){const We=Ue(ue,D);if(!We.length)continue;const ln={name:ue.name,cat:ue.cat,luck:ue.luck,rule:ue.rule,pillars:[],via:new Set,target:new Set};for(const wn of We){for(const Pn of wn.pillars)ln.pillars.includes(Pn)||ln.pillars.push(Pn);wn.via&&ln.via.add(wn.via),wn.target&&ln.target.add(wn.target)}ln.pillars.sort((wn,Pn)=>Se.indexOf(wn)-Se.indexOf(Pn)),_e.push(ln)}_e.sort((ue,We)=>me.indexOf(ue.cat)-me.indexOf(We.cat));const Oe={year:[],month:[],day:[],hour:[]};for(const ue of _e)for(const We of ue.pillars)Oe[We].push({name:ue.name,cat:ue.cat,luck:ue.luck,via:[...ue.via].join("、"),target:[...ue.target].join("、"),rule:ue.rule});const Le=[];for(const ue of me){const We=_e.filter(ln=>ln.cat===ue);We.length&&Le.push({cat:ue,items:We.map(ln=>({name:ln.name,cat:ln.cat,luck:ln.luck,pillars:ln.pillars.slice(),via:[...ln.via].join("、"),target:[...ln.target].join("、"),rule:ln.rule}))})}return{detail:Oe,groups:Le,names:_e.map(ue=>ue.name),count:_e.reduce((ue,We)=>ue+We.pillars.length,0)}}const Be=Fe.reduce((de,oe)=>(de[oe.name]={cat:oe.cat,luck:oe.luck,rule:oe.rule},de),{});return{PILLAR_KEYS:Se,PILLAR_LABEL:se,CATEGORY_ORDER:me,computeBaziShensha:un,RULE_TABLE:Be}})(),V.tiaohou=(function(){const Y={甲:"木",乙:"木",丙:"火",丁:"火",戊:"土",己:"土",庚:"金",辛:"金",壬:"水",癸:"水"},A={亥:-1.8,子:-2,丑:-1.5,寅:-.4,卯:.2,辰:.5,巳:1.3,午:2,未:1.5,申:.6,酉:.2,戌:-.2},Se={亥:"初冬",子:"仲冬",丑:"季冬",寅:"初春",卯:"仲春",辰:"季春",巳:"初夏",午:"仲夏",未:"季夏",申:"初秋",酉:"仲秋",戌:"季秋"},se={丑:1,辰:1,子:.6,亥:.5},me={未:1,戌:1,午:.4,巳:.4},B={寒湿:{element:"火",stem:"丙",avoid:"水",why:"冻土要太阳来解,水再多只会更冷"},寒燥:{element:"火",stem:"丙",avoid:"水",why:"天寒地干,先要一点阳和之气"},寒:{element:"火",stem:"丙",avoid:"水",why:"冬令气寒,非火不暖"},温热:{element:"水",stem:"壬",avoid:"火",why:"火气初旺,得水润泽才好用"},燥热:{element:"水",stem:"壬",avoid:"火",why:"火炎土燥,非水不润"},热:{element:"水",stem:"壬",avoid:"火",why:"夏令炎威,先求一泓清水"},湿滞:{element:"火",stem:"丙",avoid:"水",why:"湿气郁结,要火来蒸腾"},燥:{element:"水",stem:"壬",avoid:"火",why:"气燥不润,得水则舒"},平和:{element:null,stem:null,avoid:null,why:"寒暖相济,气候不是这一盘的主要矛盾"}},U={寒湿:"寒湿",寒燥:"寒燥",寒:"寒",温热:"温热",燥热:"燥热",热:"热",湿滞:"湿滞",燥:"燥",平和:"平和"},c={寒湿:{木:"木是花草藤萝,冰封的土里抽不出芽——它不缺雨水,缺的是一轮太阳",火:"火在冬天最怕被水浇,一点火苗要护住,才谈得上发光",土:"土冻成一块,再厚也长不出东西,得先晒透",金:"金在寒水里泡久了,锋刃会发滞,要火来炼一炼",水:"水本就冷,再加寒就是死水;要火把它烧活"},寒燥:{木:"木在干冷里最难熬,既缺暖气,又缺一点滋润",火:"火在寒天里要先活下来,才有余力照别人",土:"土冷而干,板结着,得暖气与一点水汽一起松",金:"金寒则脆,得火炼、得土养,才成器",水:"水在寒天里收得太紧,要一点火气化开"},寒:{木:"冬木先要暖,暖了才谈得上发荣",火:"火在冬天要护住,别被冷风吹散",土:"土寒不生物,先暖后养",金:"金寒则钝,得火则利",水:"水寒则滞,得火则行"},温热:{木:"木在暖和里长得快,但要防长得太急、根扎不深",火:"火得时令,容易旺过头,要留一点水来收",土:"土被火烤着,容易燥,得水润一润",金:"金在暖处容易软,需要一点水土把它养住",水:"水在暖处容易蒸干,要源头不断"},燥热:{木:"木被火烤着,叶子先焦,得先补水",火:"火已经够旺了,再添柴只会烧到自己",土:"土燥则裂,得水润、得木疏",金:"金在燥热里容易发烫变形,要水来淬",水:"水在燥热里最珍贵,一滴都不能浪费"},热:{木:"木在暑天要水,不然只长叶不结果",火:"火已经当令,收着用比放出去更划算",土:"土热则燥,得水则安",金:"金在暑天要水来洗,才见光泽",水:"水在暑天是命脉,要保住源头"},湿滞:{木:"木泡在水里会烂根,先要疏土透气",火:"火在湿气里点不着,得先除湿",土:"土湿成泥,得火蒸腾、得木来疏",金:"金埋在湿土里会生锈,要见火见光",水:"水已经太多,再添就是泛滥"},燥:{木:"木在燥气里容易枯,先要一点水",火:"火在燥处容易失控,要收",土:"土燥不毛,得水润、得木疏",金:"金在燥处要水来洗,才不刺手",水:"水在燥处最容易被耗干,要护住"},平和:{木:"寒暖还算相济,木有生长的余地",火:"气候不偏,火可以按自己的节奏用",土:"土不燥不湿,能养也能载",金:"金不寒不燥,成器只差打磨",水:"水不冰不涸,能流得动"}},q=g=>Math.round(g*100)/100;function P({monthBranch:g,dayStem:$e,wuxing:G={},branches:J=[]}){const k=Number(G.火||0),T=Number(G.水||0);let s=0,t=0,d=0,n=0;for(const ge of J)se[ge]&&(s+=se[ge],(ge==="丑"||ge==="辰")&&(d+=1)),me[ge]&&(t+=me[ge],(ge==="未"||ge==="戌")&&(n+=1));const m=A[g]??0,S=q(m+.45*k-.4*T),p=q(s-t+.25*T-.25*k),j=S<=-.8,_=S>=.9,ce=p>=.8,be=p<=-.8;let Ae="平和";j&&ce?Ae="寒湿":j&&be?Ae="寒燥":j?Ae="寒":_&&be?Ae="燥热":_?Ae="温热":_&&p>=.8?Ae="湿滞":be?Ae="燥":ce&&(Ae="湿滞");const h=B[Ae]||B.平和,v=Y[$e]||"土",le=[`${Se[g]||g}${g}月`,`火${k}`,`水${T}`,d?`湿土${d}处`:"",n?`燥土${n}处`:""].filter(Boolean),ae=Math.abs(S)>=1.2||Math.abs(p)>=1.2?"调候优先":"扶抑为主",je=N({kind:Ae,monthBranch:g,dayElement:v,need:h,temp:S,damp:p,fire:k,water:T});return{kind:Ae,label:U[Ae]||Ae,temp:S,damp:p,cold:j,hot:_,wet:ce,dry:be,need:h.element?{element:h.element,stem:h.stem,why:h.why}:null,avoidElement:h.avoid,dayElement:v,priority:ae,evidence:le,narration:je}}function N({kind:g,monthBranch:$e,dayElement:G,need:J,fire:k,water:T}){const s=(c[g]||c.平和)[G]||"",t=Se[$e]||"",d=`${t||""}${$e}月出生,全局火${k}、水${T},这一盘的气候是「${U[g]||g}」`;return J.element?`${d}。${s}。所以这一局要的不是更多的${g.includes("寒")?"水":"火"},而是${J.stem}${J.element}——${J.why}。`:`${d}。${s}。调候不是这一盘的主要矛盾,取用仍以扶抑为主,寒暖只作微调。`}function L(g,$e=[],G=[]){if(!g||!g.need)return{clash:!1,text:"气候平和,按扶抑取用即可。"};const J=g.need.element,k=$e.includes(J),T=G.includes(J);return k&&!T?{clash:!1,text:`调候要${g.need.stem}${J},扶抑也以${J}为喜——两套取法同向,不必取舍。`}:{clash:!0,text:`调候要${g.need.stem}${J},扶抑却把${J}列为${T?"忌":"闲"};两者不一致,本盘按调候优先取${J},扶抑次之——因为寒暖失衡时,再补强弱也难受。`}}function z(g){if(!g)return"";const $e=(g.evidence||[]).join("、"),G=g.need?`调候取${g.need.stem}${g.need.element}(${g.need.why}),忌${g.avoidElement}。`:"气候平和,调候不作主取。";return`${g.label}(${$e})。${g.narration}${G}${g.priority==="调候优先"?" 本盘调候优先于扶抑。":""}`}return{judgeClimate:P,arbitrate:L,climateText:z}})(),V.qiongtong=(function(){const Y=["寅","卯","辰","巳","午","未","申","酉","戌","亥","子","丑"],A=["正月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],Se="https://www.luckclub.cn/bazi/004/",se="用神顺序据通行整理表,原文摘句照录;各版本有异文,按条目 note 标注待核处。",me={甲:[{b:"寅",m:"正月",y:"丙癸",q:"正月甲木,初春尚有余寒,得丙癸逢,富贵双全。癸藏丙透,名寒木向阳,主大富贵。倘风水不及,亦不失儒林俊秀。如无丙癸,平常人也。",ch:2,qs:"丙癸"},{b:"卯",m:"二月",y:"庚丙丁戊己",q:"或二月甲木,庚金得所者,名阳刃架煞,可许异途小贵,若武职便显,但要财资煞,柱中逢财,英雄独压万人,若见癸水,困了财杀,主为光棍,重刃必定遭凶,煞重无凶,但性格横暴,正二月甲木,无从财化土之格。",ch:3,qs:"庚癸"},{b:"辰",m:"三月",y:"庚丁壬",q:"三月甲木,木气相竭。先取庚金,次用壬水。",ch:4,qs:"庚壬"},{b:"巳",m:"四月",y:"癸丁庚",q:"四月甲木退气,丙火司权,先癸后丁。",ch:5,qs:"丙癸丁"},{b:"午",m:"五月",y:"癸丁庚",q:"五六月甲木,木性虚焦,一理共推,五月先癸后丁,庚金次之。,或五月乏癸,用丁亦可,要运行地为佳。六月三伏生寒,丁火退气。先丁后庚,无癸亦可。",ch:6,qs:"癸丁庚"},{b:"未",m:"六月",y:"丁庚癸",q:"五六月甲木,木性虚焦,一理共推,五月先癸后丁,庚金次之。,或五月乏癸,用丁亦可,要运行地为佳。六月三伏生寒,丁火退气。先丁后庚,无癸亦可。",ch:6,qs:"癸丁庚"},{b:"申",m:"七月",y:"庚丁壬",q:"七月甲堪为戟,然非丁不能造庚,非庚不能造甲,丁庚两透,科甲可许。",ch:7,qs:"丁庚"},{b:"酉",m:"八月",y:"丁丙庚",q:"八月甲木,木囚金旺。丁火为先,次用丙火,庚金再次。",ch:8,qs:"丁丙庚"},{b:"戌",m:"九月",y:"庚甲丁壬癸",q:"九月甲木,木星凋零,独爱丁火壬癸滋扶。",ch:9,qs:"丁壬癸"},{b:"亥",m:"十月",y:"庚丁丙戊",q:"十月甲木,以庚为君,以丁为佐,丙火次之,忌壬水泛木,须戊土为制,故戊又次之。",ch:10,qs:"庚丁丙壬戊"},{b:"子",m:"十一月",y:"丁庚丙",q:"十一月甲木,木性生寒,丁先庚后,丙火佐之,癸水司权,为火金之病。",ch:11,qs:"丁庚丙癸"},{b:"丑",m:"十二月",y:"丁庚丙",q:"十二月甲木,天寒气冻,木性极寒,无发生之象。先用庚劈甲,方引丁火,始得木火有通明之象,故丁次之。",ch:12,qs:"庚丁"}],乙:[{b:"寅",m:"正月",y:"丙癸",q:"正月天气,犹有余寒,非丙不长,虽有癸润,恐凝寒气,故先用丙,癸次之。",ch:13,qs:"丙癸"},{b:"卯",m:"二月",y:"丙癸",q:"二月乙木,阳气渐升,木不寒矣,以丙为君,癸为臣,丙癸两透,不透庚金,大富大贵。",ch:14,qs:"丙癸庚"},{b:"辰",m:"三月",y:"癸丙戊",q:"三月乙木,阳气愈炽,先癸后丙",ch:15,qs:"癸丙"},{b:"巳",m:"四月",y:"癸",q:"四月乙木,巳宫自有丙火,戊取癸水为尊。四月乙木,专用癸水,丙火酌用,虽以庚辛佐癸,须辛透为清。",ch:16,qs:"丙戊癸庚辛"},{b:"午",m:"五月",y:"癸丙",q:"五月乙木,丁火司权,禾稼俱旱。上半月属阳,先癸次丙;下半月属阴,三伏生寒,丙癸齐用。柱多金水,丙火为先,余皆用癸水为先。",ch:17,qs:"丁癸丙"},{b:"未",m:"六月",y:"癸丙",q:"六月乙木,木性且寒,柱多金水,丙火为尊。支成水局,乙得无伤。癸水透干,大富大贵。无癸定作常人,运不行北,困苦一生。",ch:18,qs:"丙癸"},{b:"申",m:"七月",y:"丙癸己",q:"七月乙木,庚金乘令,庚虽输情于乙妹,怎奈干乙难合支庚。柱见庚多,乙难受载。或丙癸透干,又加己出埋金,丙癸己俱透,此格可云科甲,大富大贵",ch:19,qs:"庚丙癸己甲"},{b:"酉",m:"八月",y:"癸丙丁",q:"八月乙木,芝兰禾稼均退,以丹桂为乙木。在白露之后,桂蕊未开,专用癸水,以滋桂萼。若秋分后,桂花已开,又当向阳,宜先用丙,癸水次之,丙癸两透,科甲名臣。",ch:20,qs:"癸丙甲"},{b:"戌",m:"九月",y:"癸辛",q:"九月乙木,枝枯叶落,必赖癸水滋养。如见甲申时,名为藤萝繁甲,可秋可冬。",ch:21,qs:"癸甲"},{b:"亥",m:"十月",y:"丙戊",q:"十月乙木,丙不受气,壬水司令,丙为尊,或壬多,用戊土。",ch:22,qs:"丙壬戊"},{b:"子",m:"十一月",y:"丙",q:"十一月乙木,根叶寒冻,喜丙复一阳,用丙火解冻,斯花木有向阳之意,不宜癸水出干以冻花木,故专用丙火。",ch:23,qs:"丙癸"},{b:"丑",m:"十二月",y:"丙",q:"十二月乙木,木寒宜丙,有寒谷回春之象。得一丙透,无癸出破格,不特科甲,定主名臣显宦。丙火藏支,不过廪贡生员。干支无丙,一介寒儒。",ch:24,qs:"丙癸甲"}],丙:[{b:"寅",m:"正月",y:"壬庚",q:"正月三阳开泰,火气渐炎,取壬为尊,庚金为佐。壬庚两透,定许科甲,即壬透庚藏,虽不由科甲,恰有异途恩封",ch:25,qs:"壬庚甲"},{b:"卯",m:"二月",y:"壬己",q:"二月丙火,阳气舒升,专用壬水。",ch:26,qs:"壬"},{b:"辰",m:"三月",y:"壬甲",q:"三月火气渐炎,专用壬水,或支成土局,取甲为辅,壬不可离。",ch:27,qs:"壬甲"},{b:"巳",m:"四月",y:"壬癸庚",q:"四月丙火,建禄于巳,火势炎炎,宜专用壬水,解炎威之力,成既济之功。如无壬水,名孤阳失辅,难透清光,得庚发水源,方为有根之水。壬庚两透,不见戊己出干,号曰湖海汪洋,广映太阳,光辉显著,文明之象。",ch:28,qs:"壬庚戊己"},{b:"午",m:"五月",y:"壬庚",q:"五月丙火愈炎,得壬庚高透,方为上命。或一壬无庚,亦主贡监,还须好运。犹防戊己出干,丁壬化合,则为平人。即不透庚壬。或有申宫长生之水,济之坐禄之金,至妙,必入词林。又怕戊己杂乱,则为异路。",ch:29,qs:"壬庚戊己丁"},{b:"未",m:"六月",y:"壬庚",q:"六月丙火退气,三伏生寒,己土泄气,壬水为用,取庚辅佐。",ch:30,qs:"己壬庚"},{b:"申",m:"七月",y:"壬戊",q:"七月丙火,太阳转西,阳气渐衰。日近西山,见土皆晦。惟日照湖海,暮夜光天,故仍用壬水,辅映太阳光辉。",ch:31,qs:"壬"},{b:"酉",m:"八月",y:"壬癸",q:"八月丙火,日近黄昏,丙有余光,存于湖海,仍用壬水辅映。",ch:32,qs:"壬"},{b:"戌",m:"九月",y:"甲壬",q:"九月丙火,火气愈退,忌土晦光,必须先用甲木,次取壬水。",ch:33,qs:"甲壬"},{b:"亥",m:"十月",y:"甲戊庚壬",q:"十月丙火,太阳失令,得见甲戊庚齐透,科甲有准,风土不及,终成选拔,主为人性好清高,斯文领袖。",ch:34,qs:"甲戊庚"},{b:"子",m:"十一月",y:"壬戊己",q:"十一月丙火,冬至一阳生,弱中复强,壬水为最,戊土佐之。",ch:35,qs:"壬戊"},{b:"丑",m:"十二月",y:"壬甲",q:"十二月丙火,气进二阳,每雪欺霜,喜壬为用,己土司令,土多又不可少甲",ch:36,qs:"壬己甲"}],丁:[{b:"寅",m:"正月",y:"甲庚",q:"正月丁火,甲木当权,乃为母旺,非庚不能劈甲,何以引丁,先庚次壬。",ch:37,qs:"甲庚壬"},{b:"卯",m:"二月",y:"庚甲",q:"二月丁火,湿乙伤丁,先庚后甲,非庚不能去乙,非甲不能引丁。",ch:38,qs:"乙庚甲"},{b:"辰",m:"三月",y:"甲庚",q:"三月丁火,戊土司令,泄弱丁气,先用甲木引丁制土,次看庚金。",ch:39,qs:"戊甲庚"},{b:"巳",m:"四月",y:"甲庚",q:"四月丁火乘旺,虽取甲引丁,必须用庚劈甲,有庚伐甲、方云木火通明;甲多、又取庚为先。",ch:40,qs:"甲庚"},{b:"午",m:"五月",y:"壬庚癸",q:"五月丁火,时逢建禄,不得轻用甲木;遇干透隔位之壬,不贪丁合,忠而且孝。",ch:41,qs:"甲壬"},{b:"未",m:"六月",y:"甲壬庚",q:"六月丁火,阴柔退气,但值三伏生寒,丁弱极矣,专取甲木,壬水次之。",ch:42,qs:"甲壬"},{b:"申",m:"七月",y:"甲庚丙戊",q:"七月丁火,退气柔弱,端用甲木,金虽乘旺司权,无伤丁之理,仍取庚劈甲,为引火之物,或借丙暖金晒甲,不虑丙夺丁光,凡两丙夹丁者,夏月忌之,余月不忌,但此格少年困苦刑克中年富贵,必要地支见水制丙,方",ch:43,qs:"甲庚丙"},{b:"酉",m:"八月",y:"甲庚丙戊",q:"或八月一派辛金,不见庚金,又无比劫,比弃命从才,富而且贵,虽不科甲,亦有异途,从才者水为妻,不克,有正偏,木为子,不刑。或九月一派戊土,泄丁火之气,不见甲木,为伤官伤尽,非寻常可比,或甲木透出",ch:44,qs:"辛庚甲戊",note:"原文全章未见「丙」,此格按整理表录入,待以善本核对"},{b:"戌",m:"九月",y:"甲庚戊",q:"或八月一派辛金,不见庚金,又无比劫,比弃命从才,富而且贵,虽不科甲,亦有异途,从才者水为妻,不克,有正偏,木为子,不刑。或九月一派戊土,泄丁火之气,不见甲木,为伤官伤尽,非寻常可比,或甲木透出",ch:44,qs:"辛庚甲戊"},{b:"亥",m:"十月",y:"甲庚",q:"三冬丁火微寒,端用庚甲,甲乃庚之良友,凡用甲木,庚不可少,无庚无甲,何能引丁,难云木火通明,冬丁有甲,不怕水多金多,可称上格,甲庚两透,科甲分明,见己则否,己多合甲,则为常人。或一丙夺丁,必赖",ch:45,qs:"庚甲己丙"},{b:"子",m:"十一月",y:"甲庚",q:"或仲冬水多癸旺,金无比印,此作弃命从杀,亦有异途功名,见丁比出干,难合格局,常人,且主骨肉浮云,六亲流水,戊出破癸,颇有兄弟妻儿,此格用戊,火妻土子,用甲,水妻木子。或四柱多丙丁,又用癸制火,",ch:46,qs:"癸戊甲丙"},{b:"丑",m:"十二月",y:"甲庚",q:"或仲冬水多癸旺,金无比印,此作弃命从杀,亦有异途功名,见丁比出干,难合格局,常人,且主骨肉浮云,六亲流水,戊出破癸,颇有兄弟妻儿,此格用戊,火妻土子,用甲,水妻木子。或四柱多丙丁,又用癸制火,",ch:46,qs:"癸戊甲丙"}],戊:[{b:"寅",m:"正月",y:"丙甲癸",q:"正二月宜先透丙,三月宜先透甲,盖正二月虽有癸甲,无丙亦难除寒气,如风雨淹淹,万物生而不长,故无丙者,一生成败,富贵艰辛,或有丙无癸甲者,名曰春旱,如万物生而多厄,一生勤苦,劳而无功。",ch:48,qs:"丙甲癸辛"},{b:"卯",m:"二月",y:"丙甲癸",q:"正二月宜先透丙,三月宜先透甲,盖正二月虽有癸甲,无丙亦难除寒气,如风雨淹淹,万物生而不长,故无丙者,一生成败,富贵艰辛,或有丙无癸甲者,名曰春旱,如万物生而多厄,一生勤苦,劳而无功。",ch:48,qs:"丙甲癸辛"},{b:"辰",m:"三月",y:"甲丙癸",q:"三月戊土司令,不见丙甲癸者,愚而且贱,甲癸透者、科甲;两癸透者、生员。丙透甲藏,无癸者富;有癸者,异途显达。",ch:49,qs:"丙甲癸"},{b:"巳",m:"四月",y:"甲丙癸",q:"四月戊土,阳气发升,寒气内藏,外实内虚,不畏火炎,无阳气相催,万物不长,故先用甲疏劈,次取丙癸为佐。",ch:50,qs:"甲丙癸"},{b:"午",m:"五月",y:"壬甲丙",q:"五月戊土,仲夏火炎,先看壬水,次取甲木,丙火酌用,用癸恐其力微。",ch:51,qs:"壬甲丙癸"},{b:"未",m:"六月",y:"癸丙甲",q:"六月戊土,遇夏干枯,先看癸水,次用丙火、甲木。",ch:52,qs:"癸丙甲"},{b:"申",m:"七月",y:"丙癸甲",q:"七月戊土,阳气渐入,寒气渐出,先丙后癸,甲木次之。",ch:53,qs:"丙癸甲"},{b:"酉",m:"八月",y:"丙癸",q:"八月戊土,金泄身寒,赖丙照暖,喜水滋润,先丙后癸,不必木疏。",ch:54,qs:"丙癸"},{b:"戌",m:"九月",y:"甲丙癸",q:"九月戊土当权,不可专用丙火。先看甲木,次取癸水,却忌戊与癸合。见金先用癸水,后取丙火,配合支干,方成有生之土,合此定发云程,科甲有准。",ch:55,qs:"丙甲癸"},{b:"亥",m:"十月",y:"甲丙",q:"十月戊土,时值小阳,阳气略出,先用甲木,次取丙火,非甲,土不灵,非丙,土不暖;安能发生万物。",ch:56,qs:"甲丙"},{b:"子",m:"十一月",y:"丙甲",q:"十一二月严寒冰冻,丙火为尊,甲木为佐。丙甲两透,桃浪之人;丙出甲藏,采芹食饩,丙藏甲出,佐杂前程;有丙无甲者,豪富,有甲无丙者,清贫,丙甲全无,下流之造。",ch:57,qs:"丙甲"},{b:"丑",m:"十二月",y:"丙甲",q:"十一二月严寒冰冻,丙火为尊,甲木为佐。丙甲两透,桃浪之人;丙出甲藏,采芹食饩,丙藏甲出,佐杂前程;有丙无甲者,豪富,有甲无丙者,清贫,丙甲全无,下流之造。",ch:57,qs:"丙甲"}],己:[{b:"寅",m:"正月",y:"丙庚甲",q:"正月己土,寒气未退,田园犹冻,丙暖为尊,得丙照暖,万物自生。忌见壬水,盖壬不为丙优,反为己病,何也?壬乃江湖之水,田园浸没,急须修堤岸,田园始得播种,须戊作堤,以保园圃,壬多见戊者,定主清雅富",ch:58,qs:"丙壬戊"},{b:"卯",m:"二月",y:"甲癸丙",q:"二月己土,阳气渐升,虽禾稼未成,万物发生。但田园未展,宜先取甲木疏之,忌合;次取癸水润之。",ch:59,qs:"甲癸"},{b:"辰",m:"三月",y:"丙癸甲",q:"三月己土,正栽培禾稼之时。先丙后癸,土暖而润,随用甲疏。",ch:60,qs:"丙癸甲"},{b:"巳",m:"四月",y:"癸丙",q:"三夏己土,时值禾稼在田,最喜甘沛,取癸为要,次用丙火。夏无太阳,禾稼不长,故无癸曰旱田,无丙曰孤阴。",ch:61,qs:"癸丙"},{b:"午",m:"五月",y:"癸丙",q:"三夏己土,时值禾稼在田,最喜甘沛,取癸为要,次用丙火。夏无太阳,禾稼不长,故无癸曰旱田,无丙曰孤阴。",ch:61,qs:"癸丙"},{b:"未",m:"六月",y:"癸丙",q:"三夏己土,时值禾稼在田,最喜甘沛,取癸为要,次用丙火。夏无太阳,禾稼不长,故无癸曰旱田,无丙曰孤阴。",ch:61,qs:"癸丙"},{b:"申",m:"七月",y:"丙癸",q:"三秋己土,万物收藏之际,外虚内实,寒气渐升,须丙火温之,癸水润之。不特此也,且癸能泄金,丙能制金,补土精神,则秋生之物咸茂矣。",ch:62,qs:"丙癸"},{b:"酉",m:"八月",y:"丙癸",q:"三秋己土,万物收藏之际,外虚内实,寒气渐升,须丙火温之,癸水润之。不特此也,且癸能泄金,丙能制金,补土精神,则秋生之物咸茂矣。",ch:62,qs:"丙癸"},{b:"戌",m:"九月",y:"甲丙癸",q:"三秋己土,万物收藏之际,外虚内实,寒气渐升,须丙火温之,癸水润之。不特此也,且癸能泄金,丙能制金,补土精神,则秋生之物咸茂矣。",ch:62,qs:"丙癸"},{b:"亥",m:"十月",y:"丙甲戊",q:"三冬己土,湿泥寒冻,非丙暖不生,取丙为尊,甲木能参用,不可用癸。唯初冬壬水旺,用以为制,余皆用丙。无丙用丁,但丁不能解冻除寒,不能火济;丁多,衣禄安然。",ch:63,qs:"丙甲癸壬丁"},{b:"子",m:"十一月",y:"丙甲戊",q:"三冬己土,湿泥寒冻,非丙暖不生,取丙为尊,甲木能参用,不可用癸。唯初冬壬水旺,用以为制,余皆用丙。无丙用丁,但丁不能解冻除寒,不能火济;丁多,衣禄安然。",ch:63,qs:"丙甲癸壬丁"},{b:"丑",m:"十二月",y:"丙甲戊",q:"三冬己土,湿泥寒冻,非丙暖不生,取丙为尊,甲木能参用,不可用癸。唯初冬壬水旺,用以为制,余皆用丙。无丙用丁,但丁不能解冻除寒,不能火济;丁多,衣禄安然。",ch:63,qs:"丙甲癸壬丁"}],庚:[{b:"寅",m:"正月",y:"戊甲壬丙丁",q:"正月庚金,木旺之际,有土皆死,不能生金。且金之寒气未除,先用丙暖庚性。又虑土厚埋金,须甲疏泄。",ch:65,qs:"丙甲"},{b:"卯",m:"二月",y:"丁甲庚丙",q:"二月庚金,卯中乙木当权,柱中自然有乙,当令之乙,得庚辰时,庚必留情于乙,此金有暗强之势,如秋金相似。",ch:66,qs:"乙"},{b:"辰",m:"三月",y:"甲丁壬癸",q:"三月庚金,戊土司令,不怕生寒,无生金之理,有埋金之忧。故先用甲木疏土,次用丁火煅炼成器,不必用庚劈甲。",ch:67,qs:"戊甲丁"},{b:"巳",m:"四月",y:"壬戊丙丁",q:"四月庚金,长生在巳,巳虽有丙,内有戊土,丙不熔金,故不畏火炎。但丙不可轻用,宜先用壬水,方得中和。书曰:群金生夏,妙用玄武;次取戊土,丙火佐之;三者皆全,富贵无双。或透一二,亦主贡监衣衿。",ch:68,qs:"丙戊壬"},{b:"午",m:"五月",y:"壬癸",q:"五月庚金,丁火旺烈,庚金败地,专用壬水,癸又次之。",ch:69,qs:"丁壬癸"},{b:"未",m:"六月",y:"丁甲",q:"六月庚金,三伏生寒,金顽已极。先用丁火,次取甲木。",ch:70,qs:"丁甲"},{b:"申",m:"七月",y:"丁甲",q:"七月庚金,刚锐极矣。专用丁火煅炼,次取木引丁。故曰:秋金刚锐最为奇,壬癸相逢总不宜:如逢木火来成局,试看福寿与天齐。",ch:71,qs:"丁壬癸"},{b:"酉",m:"八月",y:"丁甲丙",q:"八月庚金,刚锐未退,仍用丁甲,丙不可少。",ch:72,qs:"丁甲丙"},{b:"戌",m:"九月",y:"甲壬",q:"九月庚金,戊土司令,最怕土厚埋金。宜先用甲疏,后用壬洗,则金自出矣,忌见己土浊壬。",ch:73,qs:"戊甲壬己"},{b:"亥",m:"十月",y:"丁丙",q:"十月庚金,水冷性寒,非丁莫造,非丙不暖。",ch:74,qs:"丁丙"},{b:"子",m:"十一月",y:"丁甲丙",q:"十一月庚金,天气严寒,仍取丁甲,次取丙火照暖。",ch:75,qs:"丁甲丙"},{b:"丑",m:"十二月",y:"丙丁甲",q:"十二月庚金,寒气太重,丑为湿泥,愈寒愈冻,先取丙火解冻,次取丁火炼金,甲亦不可少。",ch:76,qs:"丙丁甲"}],辛:[{b:"寅",m:"正月",y:"己壬庚",q:"正月辛金,阳气舒升寒气未除。然正月建寅,中有长生之丙,可解寒气。但忌甲木司权,辛金失令。性爱湿泥滋养,取己土为身之本。次用壬水淘洗,欲得辛金发现,全赖壬水之功。",ch:77,qs:"丙甲己壬"},{b:"卯",m:"二月",y:"壬甲",q:"二月辛金,阳和之际,壬水为尊。见戊己为病,得甲制伏,则辛金不致埋没,壬水不致混浊,合此者,必身入玉堂。故二月庚金,有壬甲透者贵显;否则,乡绅。或壬坐亥支,不见土出,可能入芥,家亦小康。得申中之",ch:78,qs:"壬戊己甲庚"},{b:"辰",m:"三月",y:"壬甲",q:"三月辛金,戊土司令,辛承正气,母旺子相。",ch:79,qs:"戊"},{b:"巳",m:"四月",y:"壬甲癸",q:"四月辛金,时道首夏,忌丙火之燥烈,喜壬水之洗淘。",ch:80,qs:"丙壬"},{b:"午",m:"五月",y:"壬己癸",q:"五月辛金,丁火司权,辛金失令,阴柔之极,不宜煅炼,须己壬兼用。何也?己为泥沙,壬为湖海,己无壬不湿,辛无己不生,故壬己并用。无壬,癸亦可用,但癸力小。",ch:81,qs:"丁己壬癸"},{b:"未",m:"六月",y:"壬庚甲",q:"六月己土当权,滋扶太过,恐污金不耀,专用壬水为妙,次取庚金佐之。",ch:82,qs:"己壬庚"},{b:"申",m:"七月",y:"壬甲戊",q:"七月辛金,值庚秉令,不旺自旺。且申中有长生之壬,四柱不见戊土透干,胎元亦无戊制,唯申中一戊,为壬堤岸,人命得此,为官清正,但不富耳。",ch:83,qs:"庚壬戊"},{b:"酉",m:"八月",y:"壬甲",q:"八月辛金,当权,得令,旺之极矣,专用壬水淘之泄之为贵,故云:金见水以流通。",ch:84,qs:"壬"},{b:"戌",m:"九月",y:"壬甲",q:"九月辛金,戊土司令,母旺子相,须甲疏土,壬泄旺金,先壬后甲。壬甲两透,桃洞之仙。",ch:85,qs:"戊甲壬"},{b:"亥",m:"十月",y:"壬丙",q:"十月时值小阳,阳气初潜,寒气未盛,先用壬水,次用丙火,暖壬温辛。",ch:86,qs:"壬丙"},{b:"子",m:"十一月",y:"丙戊壬甲",q:"十一月辛金,癸水司令,为寒冬雨露,最忌癸水出干,冻金而困丙火。",ch:87,qs:"癸丙"},{b:"丑",m:"十二月",y:"丙壬戊己",q:"十二月辛金,寒冻之极,先丙后壬。无丙不能解冻,无壬不能洗淘。",ch:88,qs:"丙壬"}],壬:[{b:"寅",m:"正月",y:"庚丙戊",q:"正月壬水,汪洋之象,能并百川之流。然水性柔弱,宜用庚金之源,次取丙火以除寒气,又次取戊土以止其流,庶不致汪洋无度。",ch:90,qs:"庚丙戊"},{b:"卯",m:"二月",y:"戊辛庚",q:"二月壬水,寒气初除,清流湛深,不用丙暖,专取戊土为堤岸,辛发其源,庚金次之。",ch:91,qs:"丙戊辛庚"},{b:"辰",m:"三月",y:"甲庚",q:"三月壬水,戊土司权,死有推山塞海之患,先用甲疏季土,次取庚发水源。",ch:92,qs:"戊甲庚"},{b:"巳",m:"四月",y:"壬辛庚癸",q:"四月壬水,丙火司权,水弱极矣。专取壬水比肩为助,次取辛金发源,忌与丙火合化,又以庚金为佐。",ch:93,qs:"丙辛庚"},{b:"午",m:"五月",y:"癸庚辛",q:"五月壬水,丁旺壬弱,取庚为用,取癸为佐。无庚不能蓄源,无癸不能伤丁。",ch:94,qs:"丁庚癸"},{b:"未",m:"六月",y:"辛甲",q:"六月壬水,己土当权,丁火退气,用辛蓄源,用甲劈土;先辛后甲,次取癸水。",ch:95,qs:"己丁辛甲癸"},{b:"申",m:"七月",y:"戊丁",q:"七月壬水,庚金司令,壬得申之长生,源流自远,转弱为强。专用戊土,次取丁火,佐戊制庚,但用辰戌之戊,不用申中受病之戊。",ch:96,qs:"庚戊丁"},{b:"酉",m:"八月",y:"甲庚",q:"八月壬水,辛金司权,金白水清之时,忌戊己为病,专取甲木。",ch:97,qs:"辛戊己甲"},{b:"戌",m:"九月",y:"甲丙",q:"九月亥水进气,其性将厚。若一派壬水,见一甲制戌中之戊,又见一戊出干,斯用丙火,此格清贵极矣,正谓一将当关,群邪自伏。见丙,便主衣禄,或不见丙戊,终为下格。",ch:98,qs:"甲戊丙"},{b:"亥",m:"十月",y:"戊丙庚",q:"十月壬水司权,至旺之极,取戊为用。",ch:99,qs:"戊"},{b:"子",m:"十一月",y:"戊丙",q:"十一月壬水,阳刃帮身,较前更旺,先取戊土,次用丙火。",ch:100,qs:"戊丙"},{b:"丑",m:"十二月",y:"丙丁甲",q:"十二月壬水,旺极复衰,何也?上半月癸辛主事,壬水稍旺,专用丙火解冻,下半月己土主事,故衰,亦用丙火,甲木佐之;故有丙,名利两全。",ch:101,qs:"癸辛丙己甲"}],癸:[{b:"寅",m:"正月",y:"辛丙",q:"正月癸水,值三阳之候,为雨露之精,其性至柔。先用辛金,生癸水之源,次用丙火照暖,名阴阳和合,万物发生。",ch:102,qs:"辛丙"},{b:"卯",m:"二月",y:"庚辛",q:"二月癸水,不刚不柔,乙木司令,泄弱元神,专用庚金为用,辛金次之。",ch:103,qs:"乙庚辛"},{b:"辰",m:"三月",y:"丙辛甲",q:"三月癸水,要分清明鼓雨,清明后火气未炽,专用丙火,名阴阳承蔼。谷雨后虽用丙火,还宜辛金佐之,富贵;次看何神高透无伤,便可定格局高低。如",ch:104,qs:"丙辛"},{b:"巳",m:"四月",y:"辛",q:"四月癸水,喜见新母,无辛,庚亦可用,但不自然。",ch:105,qs:"辛庚"},{b:"午",m:"五月",y:"庚辛壬癸",q:"五月癸水,至弱无根,必须庚辛为生身之本,但丁火司权,金难敌火,安能滋养癸水?宜见比劫,方得庚辛妙用。",ch:106,qs:"庚辛丁"},{b:"未",m:"六月",y:"庚辛壬癸",q:"六月癸水,有上下月之分,上半月庚辛无气,下半月庚辛有气。凡六癸日,人多推此月多不验者,何也?俗士不知此理,不知未中有乙,与己同宫,破而不破,故癸水不能从煞,所以专用庚辛。如上半月,金神衰弱,火",ch:107,qs:"庚辛乙己",note:"原文全章未见「壬」,此格按整理表录入,待以善本核对"},{b:"申",m:"七月",y:"丁",q:"七月癸水,正母旺子相之时。癸虽死申,殊不知申中有庚生之,名死处逢生,弱中复强,即运行西北,亦不死也。但庚司令,刚锐极矣,必取丁火为用。",ch:108,qs:"庚丁"},{b:"酉",m:"八月",y:"辛丙",q:"八月癸水,辛金虚灵,非顽金可比,正金白水清。故取辛金为用,丙火佐之,名水暖金温。",ch:109,qs:"辛丙"},{b:"戌",m:"九月",y:"辛甲壬癸",q:"九月癸水,失令无根,戊土司权,克制太过,专用辛金发癸水之源,次用癸甲,要比肩滋甲制戊方妙。",ch:110,qs:"戊辛甲"},{b:"亥",m:"十月",y:"庚辛戊丁",q:"十月癸水,旺中有弱,何也?因亥摇木,泄散元神,宜用庚辛为妙。",ch:111,qs:"庚辛"},{b:"子",m:"十一月",y:"丙辛",q:"十一月癸水,值冰冻之时,金水无交欢之象,专用丙火解冻,庶不致变雨为雪,结露为霜。又要辛金滋扶,然无丙火,辛亦不妙。凡冬季癸水,有丙透解冻,则金温水暖,两两相生,要不见壬透,自然登科及第,紫诰金",ch:112,qs:"丙辛壬"},{b:"丑",m:"十二月",y:"丙丁",q:"十二月癸水,落地成冰,万物不能舒泰,专用丙火解冻。",ch:113,qs:"丙"}]};function B(c,q){const P=me[c];if(!P)return null;const N=Y.indexOf(q);if(N<0)return null;const L=P[N];if(!L)return null;const z=[...L.y];return{stem:c,branch:L.b,month:L.m,yong:z,primary:z[0]||null,quote:L.q,quoteStems:[...L.qs],chapter:L.ch,url:Se+String(L.ch).padStart(3,"0")+"/",note:L.note||"",label:c+"日生于"+L.m+"("+L.m+L.b+"月)"}}function U(c){return c?c.label+":用神 "+c.yong.join("、")+"(首取 "+c.primary+")":""}return{QT_BRANCHES:Y,QT_MONTHS:A,QT_BASE_URL:Se,QT_NOTE:se,QT:me,qtOf:B,qtLine:U}})(),V.classics=(function(){const Y={ziping:{name:"子平真诠",author:"清·沈孝瞻",base:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/"},ditian:{name:"滴天髓",author:"明·京图(通行本)",base:"https://www.diancang.xyz/xuanxuewushu/ditiansui/"},sanming:{name:"三命通会",author:"明·万民英",base:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/"}},A=[{id:"zp-yongshen",book:"ziping",chapter:"八、论用神",scene:"用神",tags:[],quote:"八字用神,专求月令,以日干配月令地支,而生克不同,格局分焉。财官印食,此用神之善而顺用之者也;煞伤劫刃,用神之不善而逆用之者也。",plain:"用神从月令里找:财、官、印、食四吉神顺用(生之护之),煞、伤、劫、刃四凶神逆用(制之化之)。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53628.html"},{id:"zp-zhenguan",book:"ziping",chapter:"三十一、论正官",scene:"格局",tags:["正官"],quote:"以刑冲破害为忌,则以生之护之为喜矣。存其喜而去其忌则贵,而贵之中又有高低者,何也?",plain:"正官格最忌刑冲破害,喜财生官、印护官;去忌存喜才谈得上贵,贵的层次还要看财印是否并透、有无伤官七煞混杂。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53651.html"},{id:"zp-cai",book:"ziping",chapter:"三十三、论财",scene:"格局",tags:["财","正财","偏财"],quote:"财为我克,使用之物也,以能生官,所以为美。为财帛,为妻妾,为才能,为驿马,皆财类也。",plain:"财是我所克、能为我用之物,因能生官而美;它同时代表钱财、配偶、才能、走动,不只「钱」一项。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53653.html"},{id:"zp-yin",book:"ziping",chapter:"三十五、论印绶",scene:"格局",tags:["印"],quote:"印绶喜其生身,正偏同为美格,故财与印不分偏正,同为一格而论之。",plain:"印能生身,正印偏印都算美格,不分偏正而论;印格的关键在身印强弱与官杀、食伤、财的配合。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53655.html"},{id:"zp-shishen",book:"ziping",chapter:"三十七、论食神",scene:"格局",tags:["食神"],quote:"食神本属泄气,以其能生正财,所以喜之。故食神生财,美格也。财要有根,不必偏正叠出,如身强食旺而财透,大贵之格。",plain:"食神本是泄气,可贵在能生财;食神生财要财有根,身强、食旺、财透三者齐,格局才大。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53657.html"},{id:"zp-pianguan",book:"ziping",chapter:"三十九、论偏官",scene:"格局",tags:["七杀","偏官"],quote:"煞以攻身,似非美物,百大贵之格,多存七煞。盖控制得宜,煞为我用,如大英雄大豪杰,似难驾驭,而处之有方,则惊天动地之功,忽焉而就。",plain:"七煞攻身,看着不美,但大贵之格多有七煞——能控制住就为我所用,像驾驭豪杰,处之有方就能成大事。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53659.html"},{id:"zp-shangguan",book:"ziping",chapter:"四十一、论伤官",scene:"格局",tags:["伤官"],quote:"伤官虽非吉神,实为秀气,故文人学士,多于伤官格内得之。而夏木见水,冬金见火,则又为秀之尤秀者也。",plain:"伤官不是吉神,却是秀气所在,文人多出伤官格;夏木得水、冬金得火,是秀气里更秀的两种。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53661.html"},{id:"zp-yangren",book:"ziping",chapter:"四十三、论阳刃",scene:"格局",tags:["劫财","阳刃"],quote:"阳刃者,劫我正财之神,乃正财之七煞也。禄前一位,惟五阳有之,故为阳刃。不曰劫而曰刃,劫之甚也。刃宜伏制,官煞皆宜,财印相随,尤为贵显。",verifiedQuote:"阳刃者,劫我正财之神,乃正财之七煞也。禄前一位,惟五阳有之",variantNote:"典藏网此页把「故为阳刃」刻作「故为旭刃」,与通行本异文;前段仍可逐字核验",plain:"阳刃是劫财之极(只有五阳干有),宜用官煞制伏;财印相随而不相碍,格局更显。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53663.html"},{id:"zp-lujie",book:"ziping",chapter:"四十五、论建禄月劫",scene:"格局",tags:["比肩","建禄","月劫"],quote:"故建禄与月劫,可同一格,不必加分,皆以透干支,别取财官煞食为用。",plain:"建禄、月劫同看一格,月令本身不算用神,要另看透出的财官煞食取用。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53665.html"},{id:"zp-qihou",book:"ziping",chapter:"十四、论用神配气候得失",scene:"调候",tags:[],quote:"论命惟以月令用神为主,然亦须配气候而互参之。譬如英雄豪杰,生得其时,自然事半功倍;遭时不顺,虽有奇才,成功不易。",plain:"月令用神为主,但必须配气候参看;同样的格局,生在得时的气候里事半功倍,逆着气候就费劲。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53634.html"},{id:"zp-chengbai",book:"ziping",chapter:"九、论用神成败救应",scene:"格局",tags:[],quote:"成中有败,必是带忌;败中有成,全凭救应。",plain:"成格不等于一路顺:成中带忌(官逢财又逢伤、官被合之类)就打了折;败格也未必无救——印来解伤、合来清煞,败中还能转成。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53629.html"},{id:"zp-zaji",book:"ziping",chapter:"十六、论杂气如何取用",scene:"用神",tags:[],quote:"何谓透干?如甲生辰月,透戊则用偏财,透癸则用正印,透乙则用月劫是也。何谓会支?如甲生辰月,逢申与子会局,则用水印是也。一透则一用,兼透则兼用,透而又会,则透与会并用。",plain:"四墓(辰戌丑未)所藏不止一气,所以叫杂气:取用先看哪一藏干透到天干,透一个用一个;没有透干,再看地支有没有与月支会成三合局,会成什么局就取局中那一气。透干与会支同时成立时两样并用。原文对「兼透」只给原则,没有给取舍次序。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53636.html"},{id:"zp-bianhua",book:"ziping",chapter:"十、论用神变化",scene:"格局",tags:[],quote:"故若丁生亥月,本为正官,支全卯未,则化为印。己生申月,本属伤官。藏庚透壬,则化为财。凡此之类皆用神之变化也。",plain:"用神本从月令取,但月令藏干不一:丁生亥月本为正官,支会卯未就化为印;己生申月本属伤官,庚藏壬透就化为财。起点相同,合化一变,取用也跟着变(原文只说变化之由,不断定某盘必化)。",url:"https://www.diancang.xyz/xuanxuewushu/zipingzhenquan/53630.html"},{id:"dt-hannuan",book:"ditian",chapter:"通神论·寒暖",scene:"调候",tags:[],quote:"天道有寒暖,生育万物,人道行之,不可过也。",plain:"天有寒暖才能生养万物,人命里寒暖也不能过——过寒过热都要调。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-zaoshi",book:"ditian",chapter:"通神论·燥湿",scene:"调候",tags:[],quote:"地道有燥湿,生成品汇,人道得之,不可偏也。",plain:"地有燥湿才有品类生成,人命得燥湿之气也不能偏。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-shuaiwang",book:"ditian",chapter:"通神论·衰旺",scene:"调候",tags:[],quote:"能知旺衰之真机,其于三命之奥,思过半矣。",plain:"真正看懂旺衰的机关,命理之奥就过了一半——旺衰不是数个数,要看真机。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-zhonghe",book:"ditian",chapter:"通神论·中和",scene:"调候",tags:[],quote:"既识中和之正理,而于五行之妙,有全能焉。",plain:"懂得中和的道理,五行的妙处就都在其中了。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-guansha",book:"ditian",chapter:"通神论·官杀",scene:"十神",tags:["正官","七杀"],quote:"官杀混杂来问我,有可有不可。",plain:"官杀混杂不是一律不好,要看能不能去留取清。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-shangguan",book:"ditian",chapter:"通神论·伤官",scene:"十神",tags:["伤官"],quote:"伤官见官最难辨,可见不可见。",plain:"伤官见官是最难分辨的一条:有的能见,有的不能见,不能一句「伤官见官为祸百端」了事。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-yueling",book:"ditian",chapter:"通神论·月令",scene:"用神",tags:[],quote:"月令乃提纲之府,譬之宅也,人元为用事之神,宅之定向也,不可以不卜。",plain:"月令像宅子,藏干是用事之神,像宅子的朝向,必须细看。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-tiyong",book:"ditian",chapter:"通神论·体用",scene:"用神",tags:[],quote:"道有体用,不可以一端论也,要在扶之抑之得其宜。",plain:"体用不能只看一头,关键是扶抑得宜。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-jingshen",book:"ditian",chapter:"通神论·精神",scene:"用神",tags:[],quote:"人有精神,不可以一偏求也,要在损之益之得其中。",plain:"看精神不能偏执一端,要在损益之间求其中。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"dt-tongguan",book:"ditian",chapter:"通神论·通关",scene:"用神",tags:[],quote:"关内有织女,关外有牛郎,此关若通也,相邀入洞房。",plain:"两股力隔着一道关相望:一边织女、一边牛郎,中间若有一行能把两边接上(一方生它、它再生另一方),对峙就化成相生。原文只给取象,哪一行为关要按五行生克定。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html"},{id:"smt-zhenguan",book:"sanming",chapter:"卷五·论正官",scene:"格局",tags:["正官"],quote:"正官者,乃甲见辛、乙见庚之例。阴阳配合,相制有用,成其道也。故正官为六格之首,止许一位,多则不宜。",plain:"正官取「克我而阴阳相配」,有制而能成用;六格以正官居首,只宜一位,多见就杂。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7582.html"},{id:"smt-zhengcai",book:"sanming",chapter:"卷六·论正财",scene:"格局",tags:["财","正财"],quote:"正财者,乃甲见己、乙见戊之例。受我克制,为我之妻,譬人娶妻,妻赍财嫁我,我必精神康强,而后可享用,若衰微不振,虽妻财丰厚,但能目视,终不得用。",plain:"正财是我克制之物,古人以「娶妻带财」作比:自身精神康强才受用得起,身弱不振,财再厚也只是看着。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7645.html"},{id:"smt-piancai",book:"sanming",chapter:"卷六·论偏财",scene:"格局",tags:["财","偏财"],quote:"何谓偏财?乃甲见戊、乙见己之例。非妻所带,乃众人之财也。切忌有姊妹兄弟分夺,柱无官星,祸患百出。",plain:"偏财取「我克而阴阳不同」:不是妻家带来的私财,而是众人之财,宜流通不宜独占。原文最忌比肩劫财来分夺,又说柱中无官星则多事(旧说的重话照录,本插件只记原文、不作断语)。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7650.html"},{id:"smt-yinshou",book:"sanming",chapter:"卷六·论印绶",scene:"格局",tags:["印"],quote:"印绶者,乃五行生我之名。如甲乙在亥子月,丙丁在寅卯月之类,乃我气之源,为生气,为父母,能护我官星,使无伤克",plain:"印是生我之气,像源头与父母:它能护住官星,使官不受伤克;反过来说,印重就怕财来破。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7655.html"},{id:"smt-shishen",book:"sanming",chapter:"卷六·论食神",scene:"格局",tags:["食神"],quote:"凡命遇财煞之地,食神旺相,煞被食制,不敢为祸,财被食生,充裕不竭,故食神一名寿星,一名爵星,良有以也。",plain:"食神旺,一头制煞、一头生财:煞被制住不敢为祸,财被生起不至枯竭;所以食神又叫寿星、爵星。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7663.html"},{id:"smt-shangguan",book:"sanming",chapter:"卷六·论伤官",scene:"格局",tags:["伤官"],quote:"伤官虽凶,乃我所生,自家之物,伤尽则能生财,财旺则能生官,造化展转有情。",plain:"伤官虽称凶,却是我自己生出来的:伤尽(柱中不见官星)反能生财,财旺再生官,辗转还是有情。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7662.html"},{id:"smt-yangren",book:"sanming",chapter:"卷六·论阳刃",scene:"格局",tags:["阳刃","劫财"],quote:"阳者,阴阳之阳,刃者,刀刃之刃,即禄前一位,言旺越其分,故险。",plain:"阳刃指禄前一位,旺过了本分,所以险;甲丙戊庚壬五阳干才有刃,阴干见伤官同论。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7671.html"},{id:"smt-jianlu",book:"sanming",chapter:"卷六·论建禄",scene:"格局",tags:["建禄","比肩","月劫"],quote:"凡命月令建禄,难招祖业,必主平生见财不聚,却病少寿长,行运再见比肩,克妻妨父损子",plain:"月令建禄是日主临官之地,身旺而财官难取:古说难承祖业、见财不聚,但病少寿长;再走比肩运,古书说克妻妨父损子(属于旧说的重话,本插件只记原文、不作断语)。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7672.html"},{id:"smt-guansha-liu",book:"sanming",chapter:"卷五·官煞去留杂论",scene:"格局",tags:["七杀","偏官"],quote:"凡看去留,要详柱中官煞孰重孰轻,天干透者易去,月支所藏者难去,须伤官食神去官煞之物众而有力,方才去得。",plain:"官煞混见时先比谁重谁轻:天干透出的容易去,月支藏着的难去;用来去官煞的伤官食神要成众、有根有力,才真去得掉。七杀格遇正官混杂,就按这一篇看取舍。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7599.html"},{id:"smt-quzhi",book:"sanming",chapter:"卷六·曲直",scene:"格局",tags:["曲直格","专旺"],quote:"甲乙日得亥卯未局,柱中须有亥字带印为入格,若无亥有卯,止是木之本气,却要见金土为贵,既无亥字,又无金土,则木不秀不实,难以言贵。",plain:"曲直格要木局成方(亥卯未)且带亥字为印,才算入格;只有卯、没有亥,只是木的本气,得另见金土才谈得上贵;两样都没有,木虽旺而无成,难称贵格。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7630.html"},{id:"smt-yanshang",book:"sanming",chapter:"卷六·炎上",scene:"格局",tags:["炎上格","专旺"],quote:"丙丁日遇寅午戌局,柱中须有寅字带印为入格,无寅止是九流近贵之命,若火自旺,无亥水相济,不贵。喜东北方运,忌见辰丑戊己,晦火光明,多主眼疾,或患风气,柱有木制成贵,忌水金乡,怕冲。",plain:"炎上格要火局成方(寅午戌)且带寅字为印才入格;无寅只是偏贵的命。火自旺还要一点水相济,过燥不贵;行运喜东北、忌湿土晦火,也怕冲。原文另带「多主眼疾」一句,属于旧说,本插件只记原文、不作健康判断。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7631.html"},{id:"smt-congge",book:"sanming",chapter:"卷六·从革",scene:"格局",tags:["从革格","专旺"],quote:"庚辛日见巳酉丑局,须带丙丁巳午一二位方成其器,但不可火多。如辛巳、辛酉、辛丑三日不喜五月生,被火所伤,宜八月或水土养育食神印绶为吉。",plain:"从革格是金局成方(巳酉丑),但金要火炼才成器:须带丙丁或巳午一二位,火又不能多。辛巳、辛酉、辛丑三日出身在五月(火旺)被伤,原文说宜八月或水土养育。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7632.html"},{id:"smt-runxia",book:"sanming",chapter:"卷六·润下",scene:"格局",tags:["润下格","专旺"],quote:"壬癸日见申子辰全,忌引卯巳死绝之地,三刑四冲之乡,死绝则不流,冲刑则横流,岁运同。或曰水太泛须柱有土神一两位制之,得成堤岸,既有土怕会木为凶,如有木伤土要金印救解,终是一生成败。",plain:"润下格是水局三合全(申子辰),最忌卯巳死绝与三刑四冲:死绝水不流,冲刑水横流,行运也一样看。水太泛要一两位土作堤,有土又怕木来破堤,木伤土再用金印解救——原文把成败条件摊开讲。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7633.html"},{id:"smt-jiasi",book:"sanming",chapter:"卷六·稼穑",scene:"格局",tags:["稼穑格","专旺"],quote:"赋云:戊己忻逢四季,乃为稼穑之名。是戊己生逢季月,喜见木为官,止得一木为妙,木多则土虚,主虚诈为破家不仁之人。",plain:"稼穑格取戊己生于四季月(辰戌丑未)。原文说喜见一木为官,木多则土虚;后半对木多之人的评语是旧说的重话,本插件只照录条件、不拿来评价人。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7634.html"},{id:"smt-congsha",book:"sanming",chapter:"卷五·弃命从煞",scene:"格局",tags:["从杀格"],quote:"《独步》云:弃命从煞,须要会煞从财,忌煞从煞。盖言从煞格,以煞神太重,身无所归,不得已从之,要行煞旺及财乡,四柱无一点比肩印绶方论,如遇运扶身旺,与煞为敌,从煞不专,故为祸患。",plain:"从煞格是煞太重、日主无所归才「弃命」相从:条件是四柱没有一点比肩印绶扶身,行运喜煞旺与财乡;一旦走扶身之运,与煞为敌,就从得不专。本插件只作结构说明,不据此断寿夭。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7598.html"},{id:"smt-congcai",book:"sanming",chapter:"卷六·弃命从财",scene:"格局",tags:["从财格"],quote:"《独步》云:弃命从财,须要会财,若逢根气,命损无猜。假如丁生酉月,柱多庚辛,日干无气,只得弃命相从,运入北方财官旺地,乃为入格,南行灾。",plain:"从财格要财会成局、日干无气;一见根气就破格,原文用「命损无猜」这种重话写明。以丁生酉月、柱多庚辛为例:只能弃命相从,行北方财官旺地为入格,南行则灾。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7652.html"},{id:"smt-suiyun",book:"sanming",chapter:"卷二·总论岁运",scene:"岁运",tags:[],quote:"行运以生月为运元,最怕行运与太岁冲克,若岁运冲月必祸;若岁运与日相对,谓之返吟,岁运压日,谓之伏吟,二者不利六亲,非横破财,不为吉兆。",plain:"大运以生月为起点,最怕与流年(太岁)冲克:原文说岁运冲月为祸,又把「岁运与日柱相对」叫返吟、「岁运压日」叫伏吟。这两句是按「对日柱」说的,与本插件「干支相同为伏吟、天克地冲为反吟」不是同一套定义(本插件取后者);末句「不利六亲、破财」是旧说的重话,只作变动提示,不作断语。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7539.html"},{id:"smt-renyuan",book:"sanming",chapter:"卷二·论人元司事",scene:"人元",tags:[],quote:"故支吕所藏者主命,谓之人元,名为司事之神,以命术言之为月令。如正月建寅,寅中有艮土用事五日,丙火长生五日,甲木二十日;二月建卯,卯中有甲木用事七日,乙木二十三日;",plain:"地支所藏为「人元」,按月令分日轮值。三命通会这一本给的是另一套日数:寅月艮土(戊土)五日、丙火五日、甲木二十日,卯月甲七日、乙二十三日。它与本插件采用的通行 30 日表(寅月戊7丙7甲16,即 7/7/16;卯月甲10乙20,即 10/20)不是同一套分法;两表各照原样并列,本插件仍按通行表给「第几日谁当权」,不改取格。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7529.html"}],Se=A.reduce((z,g)=>(z[g.id]=g,z),{}),se={正官格:"正官",七杀格:"七杀",偏官格:"偏官",正财格:"正财",偏财格:"偏财",正印格:"印",偏印格:"印",食神格:"食神",伤官格:"伤官",阳刃格:"阳刃",月劫格:"月劫",建禄格:"建禄"},me={曲直格:"smt-quzhi",炎上格:"smt-yanshang",从革格:"smt-congge",润下格:"smt-runxia",稼穑格:"smt-jiasi",从财格:"smt-congcai",从杀格:"smt-congsha"};function B(z){return Se[z]||null}function U(z){return(z&&Array.isArray(z.liunian)?z.liunian:[]).some(G=>G&&G.suiyun&&Array.isArray(G.suiyun.signals)&&G.suiyun.signals.length)?B("smt-suiyun"):null}function c(z){const g=String(z||"");if(se[g])return se[g];const $e=g.replace(/格$/,"");return se[$e+"格"]||$e}function q(z,g){return A.find($e=>$e.scene==="格局"&&$e.tags.includes(z)&&(!g||$e.book===g))||null}function P(z){return z.chapter.replace(/^.*[、·]/,"").replace(/^论/,"")}function N(z,g=5){if(!z)return[];const $e=[],G=new Set,J=(j,_)=>{!j||G.has(j.id)||$e.length>=g||(G.add(j.id),$e.push({...j,why:_}))},k=Array.isArray(z.geju)?z.geju:z.frame&&Array.isArray(z.frame.geju)?z.frame.geju:[],T=k.some(j=>j&&j.kind==="化气格");for(const j of k){if(j&&j.status==="破格"||T&&j&&j.status==="假从")continue;const _=j&&me[j.name]?B(me[j.name]):null;_&&J(_,`本盘列有「${j.name}」,故取${Y[_.book].name}「${P(_)}」一条`)}for(const j of k){if(!j||j.kind&&j.kind!=="月令格")continue;const _=c(j.name),ce=q(_,"ziping")||q(_);ce&&J(ce,`你的月令格局是「${j.name}」,故取${Y[ce.book].name}「${P(ce)}」一条`);const be=A.find(Ae=>Ae.scene==="格局"&&Ae.tags.includes(_)&&(!ce||Ae.book!==ce.book));be&&J(be,`同是「${j.name}」,${Y[be.book].name}「${P(be)}」另有取法,可对照读`)}const s=z.climate||z.frame&&z.frame.yongshen&&(z.frame.yongshen.climate||z.frame.yongshen.tiaohou),t=z.frame&&z.frame.yongshen&&z.frame.yongshen.tongguan,d=t&&t.usable?B("dt-tongguan"):null;if(s&&s.kind&&s.kind!=="平和"){const j=!!(s.cold||s.kind.indexOf("寒")>=0),_=!!(s.hot||s.kind.indexOf("热")>=0);J(B(j?"dt-hannuan":"dt-zaoshi"),`本盘气候判为「${s.kind}」,故取${Y.ditian.name}寒暖燥湿一条`),d||J(B("zp-qihou"),"气候与月令用神要互参,故取子平真诠「用神配气候」一条"),_&&J(B("dt-hannuan"),"本盘偏热,寒暖一条正对")}d&&J(d,`本盘忌${t.foe}克用${t.use},局中${t.bridge}${t.weight}分可作通关,故取${Y.ditian.name}「通关」一条`);const n=k.find(j=>j&&j.kind==="化气格"),m=k.find(j=>j&&j.kind==="组合"),S=z.monthBranch||z.frame&&z.frame.monthBranch||z.pillars&&z.pillars.month&&z.pillars.month.branch,p=["辰","未","戌","丑"].includes(S);return n?J(B("zp-bianhua"),`本盘列有「${n.name}」:用神由月令合化而变,总纲一位改取${Y.ziping.name}论用神变化`):p?J(B("zp-zaji"),`月令${S}属四墓杂气,取用先看透干、再看会支,总纲一位取${Y.ziping.name}论杂气如何取用`):m?J(B("zp-chengbai"),`本盘另有「${m.name}」组合:成格还要看带忌与救应,总纲一位改取${Y.ziping.name}论用神成败救应`):J(B("zp-yongshen"),"用神从月令取、四吉顺用四凶逆用,是通用总纲"),$e}function L(z){return!z||!z.length?"":z.map(g=>`《${Y[g.book].name}·${g.chapter}》「${g.quote}」`).join(`
|
|
68
|
+
`)}return{CLASSIC_BOOKS:Y,CLASSICS:A,classicOf:B,suiyunClassicOf:U,classicsFor:N,classicsText:L}})(),V.geju=(function(){const{judgeClimate:Y,arbitrate:A}=V.tiaohou||{},{qtOf:Se}=V.qiongtong||{},{SANHE_GROUPS:se,sanheGroupOf:me}=V.sanhe||{},B=["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"],U=["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"],c={甲:"木",乙:"木",丙:"火",丁:"火",戊:"土",己:"土",庚:"金",辛:"金",壬:"水",癸:"水"},q={子:"水",丑:"土",寅:"木",卯:"木",辰:"土",巳:"火",午:"火",未:"土",申:"金",酉:"金",戌:"土",亥:"水"},P={木:"火",火:"土",土:"金",金:"水",水:"木"},N={木:"土",土:"水",水:"火",火:"金",金:"木"},L={子:["癸"],丑:["己","癸","辛"],寅:["甲","丙","戊"],卯:["乙"],辰:["戊","乙","癸"],巳:["丙","戊","庚"],午:["丁","己"],未:["己","丁","乙"],申:["庚","壬","戊"],酉:["辛"],戌:["戊","辛","丁"],亥:["壬","甲"]},z=[1,.5,.3],g={甲:"寅",乙:"卯",丙:"巳",丁:"午",戊:"巳",己:"午",庚:"申",辛:"酉",壬:"亥",癸:"子"},$e={甲:"卯",乙:"辰",丙:"午",丁:"未",戊:"午",己:"未",庚:"酉",辛:"戌",壬:"子",癸:"丑"},G={甲己:"土",乙庚:"金",丙辛:"水",丁壬:"木",戊癸:"火"},J=E=>B.indexOf(E)%2===0,k=["木","火","土","金","水"];function T(E,R){const w=c[E],f=c[R],b=J(E)===J(R);return w===f?b?"比肩":"劫财":P[w]===f?b?"食神":"伤官":N[w]===f?b?"偏财":"正财":N[f]===w?b?"七杀":"正官":P[f]===w?b?"偏印":"正印":"?"}const s={比劫:["比肩","劫财"],食伤:["食神","伤官"],财:["正财","偏财"],官杀:["正官","七杀"],印:["正印","偏印"]};function t(E,R){const w={比劫:0,食伤:0,财:0,官杀:0,印:0},f={比肩:0,劫财:0,食神:0,伤官:0,正财:0,偏财:0,正官:0,七杀:0,正印:0,偏印:0},b=(F,C)=>{const ee=T(R,F),Ne=Object.keys(s).find(Me=>s[Me].includes(ee));Ne&&(w[Ne]+=C),f[ee]!==void 0&&(f[ee]+=C)};for(const F of["year","month","day","hour"].filter(C=>E[C]))b(E[F].stem,F==="day"?.6:1),(L[E[F].branch]||[]).forEach((C,ee)=>b(C,z[ee]??.1));for(const F of Object.keys(w))w[F]=Math.round(w[F]*10)/10;for(const F of Object.keys(f))f[F]=Math.round(f[F]*10)/10;return{groups:w,byGod:f}}function d(E){const R=c[E],w=k.find(b=>P[b]===R),f=k.find(b=>N[b]===R);return{me:R,inMe:w,shi:P[R],cai:N[R],guan:f}}const n=["辰","未","戌","丑"];function m(E,R,w){if(!n.includes(R))return null;const f=me(R);if(!f)return null;const b=["year","day","hour"],F=f.branches.filter(Ne=>Ne!==R);if(!F.every(Ne=>b.some(Me=>E[Me].branch===Ne)))return null;const C=w.find(Ne=>c[Ne.stem]===f.element);if(!C)return null;const ee=b.filter(Ne=>F.includes(E[Ne].branch)).map(Ne=>`${{year:"年",day:"日",hour:"时"}[Ne]}支${E[Ne].branch}`);return{...C,group:f,where:ee}}function S(E,R,w){const f=L[w]||[],b=f.map((nn,bn)=>({stem:nn,god:T(R,nn),pos:["本气","中气","余气"][bn],w:z[bn]??.1})),C=["year","month","hour"].find(nn=>b.some(bn=>bn.stem===E[nn].stem)),ee=b[0],Ne=C?null:m(E,w,b),Me=C?b.find(nn=>nn.stem===E[C].stem):Ne||ee,an=C?"透干":Ne?"会支":"本气",Te=C?{year:"年",month:"月",hour:"时"}[C]:null;if(ee.god==="比肩"&&g[R]===w)return{name:"建禄格",kind:"月令格",evidence:`月令${w}为日干${R}之禄(本气${ee.stem}比肩),身坐禄地`};if(ee.god==="劫财")return $e[R]===w?{name:J(R)?"阳刃格":"月刃格",kind:"月令格",evidence:`月令${w}为日干${R}之刃(本气${ee.stem}劫财)${J(R)?"":",阴干统称月刃"}`}:{name:"月劫格",kind:"月令格",evidence:`月令${w}本气${ee.stem}为劫财`};if(an==="本气"&&ee.god==="比肩")return{name:"比肩格",kind:"月令格",evidence:`月令${w}藏${f.join("")},本气${ee.stem}为比肩,但${R}禄在${g[R]}、不在${w},属杂气月比肩当权`};if(an!=="本气"&&Me.god==="劫财"){const nn=C?`透于${Te}干`:`${Ne.where.join("、")}会成${Ne.group.element}局`;return{name:"月劫格",kind:"月令格",evidence:`月令${w}藏${f.join("")},${Me.pos}${Me.stem}(劫财)${nn},劫财为用,作月劫论`}}const dn=`${Me.god}格`;let fe;return C?fe=`月令${w}藏${f.join("")},${Me.pos}${Me.stem}(${Me.god})透于${Te}干`:Ne?fe=`月令${w}藏${f.join("")},本气${ee.stem}(${ee.god})未透干,而${Ne.where.join("、")}会成${Ne.group.element}局,取${Me.pos}${Me.stem}(${Me.god})为用`:fe=`月令${w}藏${f.join("")},本气${ee.stem}(${ee.god})未透干,以月令本气取格`,{name:dn,kind:"月令格",evidence:fe}}const p={木:"曲直格",火:"炎上格",土:"稼穑格",金:"从革格",水:"润下格"},j={财:"从财格",官杀:"从杀格",食伤:"从儿格",印:"从强格",比劫:"从强格"},_={year:"年",month:"月",day:"日",hour:"时"};function ce(E,R){const w=c[R],f={bi:0,yin:0,total:0,details:[],helpers:[]};for(const b of["year","month","day","hour"].filter(F=>E[F])){const F=E[b].branch;(L[F]||[]).forEach((C,ee)=>{const Ne=c[C],Me=z[ee]??.1;Ne===w?(f.bi+=Me,f.details.push(`${_[b]}支${F}藏${C}(比劫 ${Me})`)):P[Ne]===w&&(f.yin+=Me,f.details.push(`${_[b]}支${F}藏${C}(印 ${Me})`))})}for(const b of["year","month","hour"]){const F=E[b].stem,C=c[F];(C===w||P[C]===w)&&f.helpers.push(`${_[b]}干${F}(${C===w?"比劫":"印"})`)}return f.bi=Math.round(f.bi*10)/10,f.yin=Math.round(f.yin*10)/10,f.total=Math.round((f.bi+f.yin)*10)/10,f}function be(E,R,w,f,b,F){const C=[],ee=d(R),Ne=ee.me,Me=b[Ne]??0,an=b[ee.inMe]??0,Te=b[ee.cai]??0,dn=b[ee.guan]??0,fe=b[ee.shi]??0;for(const De of["year","month","hour"]){const Ue=E[De].stem,un=G[R+Ue]||G[Ue+R];if(!un)continue;const Be=q[w];if(Be===un||P[Be]===un){C.push({name:`${un==="土"?"化土格":`化${un}格`}`,kind:"化气格",evidence:`日干${R}与${["年","月","时"][["year","month","hour"].indexOf(De)]}干${Ue}合化${un},月令${w}${Be}${Be===un?"同化神":"生助化神"};化气格须全局无争合妒合才算真,此处仅列条件`});break}}if((f.level==="身强"||f.level==="偏强")&&Me+an>=5){const De=[];dn>1.2&&De.push(`官杀 ${dn} 分,逆旺势`),Te>1.8&&De.push(`财 ${Te} 分,耗旺气`);const Ue=q[w],un=Ue===Ne||Ue===ee.inMe,Be=se.find(_e=>_e.element===Ne),de=["year","month","day","hour"].filter(_e=>E[_e]).map(_e=>E[_e].branch),oe=Be&&Be.branches.every(_e=>de.includes(_e))?Be.branches.join(""):null,D=De.length?"破格":un?"成格":"待定";C.push({name:p[Ne],kind:"专旺格",status:D,breaks:De,ju:oe,evidence:`日主${Ne}得${Me+an}分(同类+印),官杀${dn}、财${Te}${De.length?"":"皆弱"};${un?`月令${w}${Ue}助旺`:`月令${w}${Ue}不助旺`}${oe?`,地支${oe}成局`:""},${D==="成格"?"成格":D==="破格"?"见破格条件":"成势而条件未全"}`,breakRule:De.length?"专旺以官杀逆旺势、财星耗旺气为破;见其一即不纯":void 0})}const nn=ce(E,R);if(nn.total<1&&(f.level==="身弱"||f.level==="偏弱")){const De=Object.entries({财:Te,官杀:dn,食伤:fe,印:an}).sort((Ue,un)=>un[1]-Ue[1])[0];if(De[1]>=2.5){const Ue=nn.total>0||nn.helpers.length>0,un=[...nn.details,...nn.helpers.map(Be=>`天干${Be}虚透`)];C.push({name:j[De[0]],kind:"从格",status:Ue?"假从":"真从",breaks:Ue?un:[],rootWeight:nn.total,evidence:Ue?`日主有微根或虚透(${un.join(";")}),${De[0]}占 ${De[1]} 分最旺,假从${De[0]};行运助身则不从`:`日主无根(四支藏干无同类与印、天干无比劫印绶),${De[0]}占 ${De[1]} 分最旺,真从${De[0]}`,breakRule:Ue?"从格以日主有根、比劫印绶透出为破;有根而从者称假从,运助身则不从":void 0})}}const bn=F.byGod||{},ye=F.groups||F,Ye=De=>(bn[De]??0)>=.5,Fe=(bn.正印??0)+(bn.偏印??0),on=[["官印相生",Ye("正官")&&Fe>=.5,"正官与印并见,官生印而护身"],["杀印相生",Ye("七杀")&&Fe>=.5&&(bn.七杀??0)>(bn.正官??0),"七杀与印并见,杀印相生"],["食伤生财",(ye.食伤??0)>=.6&&(ye.财??0)>=.6,`食伤${ye.食伤}+财${ye.财},食伤生财`],["财官相生",(ye.财??0)>=.6&&(ye.官杀??0)>=.6,`财${ye.财}+官杀${ye.官杀},财生官`],["伤官配印",Ye("伤官")&&Fe>=.5&&(ye.财??0)<=1,"伤官与印并见,伤官配印"],["伤官见官",Ye("伤官")&&Ye("正官"),"伤官与正官并见(伤官见官,为祸百端之说)"],["羊刃驾杀",(ye.官杀??0)>=1&&$e[R]===w,`月令为刃,又有七杀${ye.官杀},刃杀相制`]];for(const[De,Ue,un]of on)Ue&&C.push({name:De,kind:"组合",evidence:un});return C}const Ae=1.5,h=.5;function v(E=[],R=[],w={}){const f=b=>Math.round((Number(w[b])||0)*10)/10;for(const b of E)if(!(f(b)<Ae))for(const F of R){if(N[F]!==b||f(F)<Ae)continue;const C=P[F];if(!C||P[C]!==b)continue;const ee=f(C),Ne=R.includes(C)&&!E.includes(C),Me=Ne?"为忌":ee>=Ae?"可通":ee>0?"关弱":"未通";return{use:b,foe:F,bridge:C,weight:ee,present:ee>0,bridgeIsAvoid:Ne,level:Me,usable:Me==="可通",note:"相战=用神与忌神两行各在局中 ≥1.5 分且相克;通关一行=克方所生、又能生用神的那一行(五行里唯一),只报局中分量,不据此断吉凶"}}return null}function le(E,R,w,f,b=[]){const F=d(E),C=F.me,ee=w.level==="身弱"||w.level==="偏弱",Ne=w.level==="身强"||w.level==="偏强",Me=ue=>ue===C?"比劫":ue===F.inMe?"印":ue===F.shi?"食伤":ue===F.cai?"财":"官杀",an={比劫:"帮身",印:"生身",食伤:"泄秀",财:"耗",官杀:"制"},Te=ee?[F.inMe,C]:Ne?[F.shi,F.cai,F.guan]:[F.inMe,C,F.shi],dn=ee?[F.shi,F.cai,F.guan]:Ne?[C,F.inMe]:[F.guan,F.cai];let fe=Te.slice(),nn=dn.slice();const bn=[],ye=Y({monthBranch:R,dayStem:E,wuxing:f,branches:b}),Ye=Se(E,R),Fe=A(ye,Te,dn);if(ye.need&&ye.priority==="调候优先"){const ue=ye.need.element;fe.includes(ue)||fe.unshift(ue),nn=nn.filter(ln=>ln!==ue);const We=ye.avoidElement;We&&fe.includes(We)?bn.push({element:We,favorRole:Me(We),favorVerb:an[Me(We)],climate:ye.label,note:`调候忌${We}(${ye.label}),但它在扶抑里为${Me(We)};本表保留在喜用,不列入忌。`}):We&&!nn.includes(We)&&nn.unshift(We)}const on={比劫:["比肩","劫财"],印:["正印","偏印"],食伤:["食神","伤官"],财:["正财","偏财"],官杀:["正官","七杀"]},De=Array.from(new Set(fe.flatMap(ue=>on[Me(ue)]||[]))),Ue=Array.from(new Set(nn.flatMap(ue=>on[Me(ue)]||[]))),un=Array.from(new Set(bn.flatMap(ue=>on[Me(ue.element)]||[]))),Be=ue=>Math.round((Number(f[ue])||0)*10)/10,de=nn.filter(ue=>Be(ue)<h).map(ue=>({element:ue,role:Me(ue),verb:an[Me(ue)],weight:Be(ue)})),oe=Array.from(new Set(de.flatMap(ue=>on[ue.role]||[]))),D=v(fe,nn,f),_e=ue=>`${ue}(${Me(ue)}·${an[Me(ue)]})`,Oe=bn.map(ue=>`${ue.element}(扶抑为${ue.favorRole}·${ue.favorVerb};${ue.climate}盘调候忌${ue.element},本表保留在喜用)`).join("、"),Le=[`日主${E}${C},${w.level}(${w.score} 分):`,`喜${fe.map(_e).join("、")||"—"};忌${nn.map(_e).join("、")||"—"}。`,de.length?`中性偏忌:${de.map(ue=>`${ue.element}(局中 ${ue.weight} 分)`).join("、")}——分量近零,不作实忌论,但不从此盘喜忌中删除(行运遇之仍按忌计)。`:"",bn.length?`有争议:${Oe}。`:"",!ee&&!Ne?"身中和,先取调候与通关,喜忌随大运流年动态变化。":"",`调候:${ye.label}(${(ye.evidence||[]).join("、")})${ye.need?`,取${ye.need.stem}${ye.need.element},忌${ye.avoidElement}${bn.some(ue=>ue.element===ye.avoidElement)?"(有争议)":""}`:",气候平和"}。`,Ye?`穷通宝鉴:${Ye.month}${E}${C},用神${Ye.yong.join("、")}(首取${Ye.primary})。`:"",D?`通关:忌${D.foe}克用${D.use},五行以${D.bridge}为关;局中${D.level==="可通"?`${D.bridge} ${D.weight} 分,关可通`:D.level==="关弱"?`仅 ${D.bridge} ${D.weight} 分,关弱`:D.level==="为忌"?`${D.bridge} ${D.weight} 分但此行为忌,通关力打折`:`未见${D.bridge},关未通`}(只作结构提示,不据此断吉凶)。`:"",Fe.text,Fe.clash?"取舍:本盘按「调候优先、扶抑次之」取用;若你更认同扶抑派,可把调候当环境偏好,强弱判断不受影响。":""].filter(Boolean).join("");return{method:ye.priority==="调候优先"?"调候优先 + 扶抑校验":"扶抑为主 + 调候校验",level:w.level,favor:fe,avoid:nn,disputed:bn,neutral:de,favorRoles:fe.map(Me),avoidRoles:nn.map(Me),neutralRoles:de.map(ue=>ue.role),favorTenGods:De,avoidTenGods:Ue,disputedTenGods:un,neutralTenGods:oe,tiaohou:{...ye,...Fe,element:ye.need?ye.need.element:null},climate:ye,qt:Ye,tongguan:D,detail:Le}}const ae=[[1.3,"大吉"],[.6,"吉"],[-.6,"平"],[-1.3,"忌"],[-1/0,"大忌"]];function je(E,R){const w=R.yongshen,f=E[0],b=E[1],F=c[f],C=q[b],ee=w.tiaohou||w.climate||null,Ne=ye=>{let Ye=0;return w.favor.includes(ye)&&(Ye+=1),w.avoid.includes(ye)&&(Ye-=1),Ye};let Me=Ne(F)*1+Ne(C)*.8;for(const ye of(L[b]||[]).slice(1))Me+=Ne(c[ye])*.2;const an=[];if(w.favor.includes(F)?an.push(`天干${f}${F}为用神`):w.avoid.includes(F)?an.push(`天干${f}${F}为忌神`):an.push(`天干${f}${F}不喜不忌`),w.favor.includes(C)?an.push(`地支${b}${C}助用`):w.avoid.includes(C)&&an.push(`地支${b}${C}助忌`),ee&&ee.need&&ee.priority==="调候优先"){const ye=ee.need.element,Ye=ee.avoidElement,Fe=String(ee.kind).includes("寒");F===ye?(Me+=1.1,an.push(`${ee.label}之局得${f}${F},${Fe?"解冻":"得润"}`)):F===Ye&&(Me-=.9,an.push(`${ee.label}之局再逢${f}${F},${Fe?"冻木难生":"燥上加燥"}`)),C===ye?(Me+=.9,an.push(`地支${b}${C}合调候`)):C===Ye&&(Me-=1,an.push(`地支${b}${C}加重${ee.label}`)),Fe&&(F==="水"||C==="水")&&(Me-=.3)}else ee&&ee.need&&(F===ee.need.element||C===ee.need.element)&&an.push(`合调候(${ee.need.element})`);const Te=T(R.dayStem,f),dn=w.favorTenGods.includes(Te)?.3:0,fe=w.qt||null;fe&&fe.primary&&!w.avoid.includes(c[fe.primary])&&(f===fe.primary?(Me+=.3,an.push(`天干${f}正是${fe.branch}月${fe.stem}日的首取(穷通宝鉴)`)):fe.yong.includes(f)&&!w.avoid.includes(c[f])&&(Me+=.15,an.push(`天干${f}为穷通宝鉴次取`)));let nn=Math.round((Me+dn)*10)/10;nn=Math.max(-4,Math.min(4,nn));const bn=ae.find(([ye])=>nn>=ye)[1];return{ganzhi:E,score:nn,tier:bn,stemTenGod:Te,reasons:an,note:`${Te}运,${bn}(${nn})`}}function ge({pillars:E,dayStem:R,monthBranch:w,strength:f,wuxing:b}){const F=t(E,R),C=S(E,R,w),ee=be(E,R,w,f,b,F),Ne=[C,...ee],Me=le(R,w,f,b,Object.values(E).map(an=>an.branch));return{geju:Ne,primary:C,primaryName:C.name,godStats:F,yongshen:Me,dayStem:R,monthBranch:w}}return{tenGod:T,elementRoles:d,tongguanOf:v,scoreLuck:je,analyzeBaziFrame:ge}})(),V.bazi=(function(){const{STEMS:Y,BRANCHES:A,TERM_NAMES:Se,ganzhiName:se,dayGanzhiIndex:me,jdToParts:B,partsToJd:U,sexagenaryIndex:c,termWindow:q,previousJie:P,nextJie:N,equationOfTime:L,formatJd:z,xunKongOf:g}=V.calendar||{},{resolveAddress:$e}=V.geo||{},{computeBaziShensha:G}=V.shensha||{},{assertCivil:J,daysInMonth:k}=V.validate||{},{applyDst:T}=V.dst||{},{nayinOf:s}=V.nayin||{},{SANHE:t}=V.sanhe||{},{analyzeBaziFrame:d,scoreLuck:n}=V.geju||{},m={子:["癸"],丑:["己","癸","辛"],寅:["甲","丙","戊"],卯:["乙"],辰:["戊","乙","癸"],巳:["丙","戊","庚"],午:["丁","己"],未:["己","丁","乙"],申:["庚","壬","戊"],酉:["辛"],戌:["戊","辛","丁"],亥:["壬","甲"]},S={寅:[["戊",7],["丙",7],["甲",16]],卯:[["甲",10],["乙",20]],辰:[["乙",9],["癸",3],["戊",18]],巳:[["戊",5],["庚",9],["丙",16]],午:[["丙",10],["己",9],["丁",11]],未:[["丁",9],["乙",3],["己",18]],申:[["戊",7],["壬",3],["庚",20]],酉:[["庚",10],["辛",20]],戌:[["辛",9],["丁",3],["戊",18]],亥:[["戊",7],["甲",5],["壬",18]],子:[["壬",10],["癸",20]],丑:[["癸",9],["辛",3],["己",18]]},p={甲:"木",乙:"木",丙:"火",丁:"火",戊:"土",己:"土",庚:"金",辛:"金",壬:"水",癸:"水"},j={子:"水",丑:"土",寅:"木",卯:"木",辰:"土",巳:"火",午:"火",未:"土",申:"金",酉:"金",戌:"土",亥:"水"},_={木:"火",火:"土",土:"金",金:"水",水:"木"},ce={木:"土",土:"水",水:"火",火:"金",金:"木"},be=ye=>Y.indexOf(ye)%2===0,Ae=[1,.5,.3],h=[1.2,.6,.3],v={甲己:"土",乙庚:"金",丙辛:"水",丁壬:"木",戊癸:"火"},le=["甲庚","乙辛","丙壬","丁癸"],ae={子丑:"土",寅亥:"木",卯戌:"火",辰酉:"金",巳申:"水",午未:"土"},je={寅卯辰:"木",巳午未:"火",申酉戌:"金",亥子丑:"水"},ge=["子午","丑未","寅申","卯酉","辰戌","巳亥"],E=["子未","丑午","寅巳","卯辰","申亥","酉戌"],R=["子酉","丑辰","寅亥","卯午","巳申","未戌"],w=[["寅","巳","申"],["丑","戌","未"],["子","卯"]],f=["辰","午","酉","亥"],b=(ye,Ye,Fe)=>ye.includes(Ye+Fe)||ye.includes(Fe+Ye);function F(ye,Ye){const Fe=Object.keys(_).find(oe=>_[oe]===Ye),on=["year","month","day","hour"].map(oe=>ye[oe].branch),De=new Set(on),Ue={};for(const oe of on)Ue[oe]=1;const un=[],Be=new Set,de=(oe,D,_e,Oe)=>{const Le=[];for(const ue of[...oe])(Ue[ue]??1)>_e&&(Ue[ue]=_e,Le.push(ue)),Be.add(ue);Le.length&&_e<1&&un.push(`${oe}${Oe}${D},${Le.join("")}根气按${Math.round(_e*10)}成计`)};for(const[oe,D]of Object.entries(je))[...oe].every(_e=>De.has(_e))&&de(oe,D,D===Ye?1:D===Fe?.6:.1,"三会");for(const[oe,D]of Object.entries(t))[...oe].every(_e=>De.has(_e))&&de(oe,D,D===Ye?1:D===Fe?.6:.2,"三合");for(let oe=0;oe<on.length;oe++)for(let D=oe+1;D<on.length;D++){const _e=on[oe],Oe=on[D],Le=ae[_e+Oe]||ae[Oe+_e];if(!Le||Be.has(_e)&&Be.has(Oe))continue;const ue=Le===Ye?1:Le===Fe?.8:.5,We=[];for(const ln of[_e,Oe])Be.has(ln)||(Ue[ln]??1)>ue&&(Ue[ln]=ue,We.push(ln));We.length&&ue<1&&un.push(`${_e}${Oe}合${Le},${We.join("")}根气按${Math.round(ue*10)}成计`)}return{factor:Ue,notes:un,inJu:Be}}const C=.3;function ee(ye,Ye,Fe){let on=0;for(const De of["year","month","day","hour"]){const Ue=ye[De],un=Fe[Ue.branch]??1;un<=.1||Ue.hidden.forEach((Be,de)=>{p[Be.stem]===Ye&&(on+=(h[de]??.1)*un)})}return on}function Ne(ye,Ye=["year","month","day","hour"]){const Fe=Ye.map(D=>ye[D].stem),on=Ye.map(D=>ye[D].branch),De=[];for(let D=0;D<Fe.length;D++)for(let _e=D+1;_e<Fe.length;_e++){const Oe=Fe[D],Le=Fe[_e];if(Oe===Le)continue;const ue=v[Oe+Le]||v[Le+Oe];if(ue){De.push({text:`${Oe}${Le}合(化${ue}待定)`,rank:0});continue}if(b(le,Oe,Le)){De.push({text:`${Oe}${Le}相冲`,rank:1});continue}const We=p[Oe],ln=p[Le];ce[We]===ln?De.push({text:`${Oe}克${Le}`,rank:3}):ce[ln]===We&&De.push({text:`${Le}克${Oe}`,rank:3})}const Ue=[],un=new Set(on),Be=[];for(const[D,_e]of Object.entries(t))[...D].every(Oe=>un.has(Oe))&&(Ue.push({text:`${D}三合${_e}`,rank:0}),Be.push(D));const de=[];for(const[D,_e]of Object.entries(je))[...D].every(Oe=>un.has(Oe))&&(Ue.push({text:`${D}三会${_e}`,rank:0}),de.push(D));for(let D=0;D<on.length;D++)for(let _e=D+1;_e<on.length;_e++){const Oe=on[D],Le=on[_e];if(Oe===Le){f.includes(Oe)&&Ue.push({text:`${Oe}${Le}自刑`,rank:2});continue}const ue=ae[Oe+Le]||ae[Le+Oe],We=Object.keys(t).find(wn=>wn.includes(Oe)&&wn.includes(Le)),ln=Object.keys(je).find(wn=>wn.includes(Oe)&&wn.includes(Le));if(ue)Ue.push({text:`${Oe}${Le}合${ue}`,rank:0});else{if(We&&!Be.includes(We)){const wn=We[1],Pn=Oe===wn||Le===wn?"半合":"拱合";Ue.push({text:`${Oe}${Le}${Pn}${t[We]}`,rank:0})}if(ln&&!de.includes(ln)){const wn=Math.abs(ln.indexOf(Oe)-ln.indexOf(Le))===1;Ue.push({text:`${Oe}${Le}${wn?"半会":"拱会"}${je[ln]}`,rank:0})}}b(ge,Oe,Le)&&Ue.push({text:`${Oe}${Le}相冲`,rank:1}),b(E,Oe,Le)&&Ue.push({text:`${Oe}${Le}相害`,rank:2}),b(R,Oe,Le)&&Ue.push({text:`${Oe}${Le}相破`,rank:2});for(const wn of w)wn.includes(Oe)&&wn.includes(Le)&&Ue.push({text:`${Oe}${Le}相刑`,rank:2})}const oe=D=>{const _e=new Set,Oe=[];for(const Le of[...D].sort((ue,We)=>ue.rank-We.rank))_e.has(Le.text)||(_e.add(Le.text),Oe.push(Le.text));return Oe};return{stems:oe(De),branches:oe(Ue)}}function Me(ye,Ye){const Fe=p[ye],on=p[Ye],De=be(ye)===be(Ye);return Fe===on?De?"比肩":"劫财":_[Fe]===on?De?"食神":"伤官":ce[Fe]===on?De?"偏财":"正财":ce[on]===Fe?De?"七杀":"正官":_[on]===Fe?De?"偏印":"正印":"?"}function an(ye){return s(ye).name}const Te={0:1,2:2,4:3,6:4,8:5,10:6,12:7,14:8,16:9,18:10,20:11,22:0};function dn(ye,Ye){const Fe=se(ye),on=m[Fe.branch];return{ganzhi:Fe.name,stem:Fe.stem,branch:Fe.branch,stemElement:p[Fe.stem],branchElement:j[Fe.branch],stemTenGod:Ye?Me(Ye,Fe.stem):null,hidden:on.map((De,Ue)=>({stem:De,element:p[De],tenGod:Ye?Me(Ye,De):null,role:["本气","中气","余气"][Ue]??"余气"})),nayin:an(ye)}}function fe(ye,Ye){const Fe=B(ye);if(Ye==null||Number.isNaN(Ye))return{offsetMinutes:0,jd:ye,note:"未提供经度,按东八区平太阳时"};const on=(Ye-120)*4,De=L(Fe.year,Fe.month,Fe.day),Ue=on+De;return{offsetMinutes:Math.round(Ue*10)/10,jd:ye+Ue/1440,note:`经度差 ${on.toFixed(1)} 分 + 均时差 ${De.toFixed(1)} 分`}}function nn(ye,Ye,Fe){const on=S[ye];if(!on)return null;const De=[];let Ue=1;for(const[Oe,Le]of on)De.push({stem:Oe,element:p[Oe],from:Ue,to:Ue+Le-1}),Ue+=Le;const un=Ue-1,Be=Math.max(1,Math.floor(Ye)-Math.floor(Fe+.5)+1),de=Be>un,oe=de?De.length-1:De.findIndex(Oe=>Be>=Oe.from&&Be<=Oe.to),D=De[oe]||De[De.length-1],_e=De[oe+1]||null;return{month:ye,day:Be,tableDays:un,segments:De,active:D.stem,activeElement:D.element,segment:{from:D.from,to:D.to},next:_e?{stem:_e.stem,element:_e.element,from:_e.from,inDays:_e.from-Be}:null,inHidden:(m[ye]||[]).includes(D.stem),beyond:de,note:"人元司权按「节」当日起算,节当日为第 1 日,日差用本盘所用时刻(含真太阳时)所在日计;本插件固定 30 日表(余气 → 中气 → 本气),第 31 日以后按本气算。只作解释层的一层细节,不改取格。"}}function bn(ye){J(ye);let{year:Ye,month:Fe,day:on,hour:De=0,minute:Ue=0,gender:un="male"}=ye;const Be=ye.hourUnknown===!0;Be&&(De=12,Ue=0);const de=ye.lateZi!==!1,oe=ye.trueSolar!==!1,D=ye.dst===!1?{applied:!1,note:null}:T({year:Ye,month:Fe,day:on,hour:De,minute:Ue});D.applied&&(Ye=D.year,Fe=D.month,on=D.day,De=D.hour,Ue=D.minute);const _e=U({year:Ye,month:Fe,day:on,hour:De,minute:Ue}),Oe=ye.geo||(ye.address?$e(ye.address):null),Le=typeof ye.longitude=="number"?ye.longitude:Oe&&typeof Oe.lon=="number"?Oe.lon:void 0,ue=oe?fe(_e,Le):{offsetMinutes:0,jd:_e,note:"未启用真太阳时"},We=ue.jd,ln=q(Ye,{jieOnly:!0}),wn=P(ln,We),Pn=N(ln,We),Jn=ln.find(Q=>Q.index===2&&Q.year===Ye),gn=Jn&&We<Jn.jd?Ye-1:Ye,En=((gn-4)%60+60)%60,Cn=Y[En%10],Wn=Te[wn.index],Kn=(Y.indexOf(Cn)%5*2+2)%10,tt=((Wn-2)%12+12)%12,et=(Kn+tt)%10,nt=c(et,Wn),it=Math.floor(We+.5),l=B(We).hour,H=de&&l>=23?it+1:it,u=me(H),x=Y[u%10],$=Math.floor((l+1)%24/2),ve=(Y.indexOf(x)%5*2%10+$)%10,te=c(ve,$),Z={year:dn(En,x),month:dn(nt,x),day:dn(u,x),hour:dn(te,x)},we=Y.indexOf(Cn)%2===0,W=we&&un==="male"||!we&&un==="female",tn=W?Pn.jd-We:We-wn.jd,Je=tn*4;let xe=Math.floor(Je/12),ze=Math.round(Je%12);ze>=12&&(ze-=12,xe+=1);const O=365.2422,Ge=O/3,he=W?Pn:wn,hn=We+tn*Ge,Ce=B(hn),mn=(Q,Ee)=>{const He=Q.year+Ee;return{year:He,month:Q.month,day:Math.min(Q.day,k(He,Q.month)),hour:Q.hour,minute:Q.minute}},xn=[],X=[];for(let Q=1;Q<=8;Q++){const Ee=((nt+(W?Q:-Q))%60+60)%60,He=se(Ee),On=U(mn(Ce,(Q-1)*10)),Ve=U(mn(Ce,Q*10));xn.push({step:Q,startAge:xe+(Q-1)*10,ganzhi:He.name,stem:He.stem,branch:He.branch,stemTenGod:Me(x,He.stem),nayin:an(Ee),fromDate:z(On),toDate:z(Ve)}),X.push({step:Q,ganzhi:He.name,fromJd:On,toJd:Ve})}const en=Number(ye.nowYear)||new Date().getFullYear(),fn=[];for(let Q=en;Q<en+10;Q++){const Ee=((Q-4)%60+60)%60;fn.push({year:Q,age:Q-gn+1,ganzhi:se(Ee).name,stemTenGod:Me(x,se(Ee).stem)})}const Ze={木:0,火:0,土:0,金:0,水:0};for(const Q of Object.values(Z))Ze[Q.stemElement]+=1,Q.hidden.forEach((Ee,He)=>{Ze[Ee.element]+=Ae[He]??.1});for(const Q of Object.keys(Ze))Ze[Q]=Math.round(Ze[Q]*10)/10;const Pe=Math.floor(u/10)*10,qe=[A[(Pe+10)%12],A[(Pe+11)%12]],jn=["长生","沐浴","冠带","临官","帝旺","衰","病","死","墓","绝","胎","养"],Xe={甲:11,乙:6,丙:2,丁:9,戊:2,己:9,庚:5,辛:0,壬:8,癸:3},pn=Q=>Y.indexOf(Q)%2===0;function kn(Q,Ee){const He=Xe[Q],On=A.indexOf(Ee),Ve=pn(Q)?On-He:He-On;return jn[(Ve%12+12)%12]}const qn=Z.month.branch,In=G(Z,qe);for(const Q of["year","month","day","hour"]){const Ee=Z[Q];Ee.dishi=kn(x,Ee.branch),Ee.zizuo=kn(Ee.stem,Ee.branch),Ee.kongwang=g(Ee.ganzhi),Ee.shensha=In.detail[Q].map(He=>He.name),Ee.shenshaDetail=In.detail[Q]}const Mn={寅:"木",卯:"木",巳:"火",午:"火",申:"金",酉:"金",亥:"水",子:"水",辰:"土",戌:"土",丑:"土",未:"土"},Re=p[x],sn=Mn[qn];let An,Rn;Re===sn?(An=3,Rn="旺"):_[sn]===Re?(An=2,Rn="相"):_[Re]===sn?(An=1,Rn="休"):ce[Re]===sn?(An=.5,Rn="囚"):(An=0,Rn="死");const Nn=F(Z,Re);let Ln=0;const Hn=[];for(const Q of["year","month","day","hour"]){const Ee=Z[Q],He=Nn.factor[Ee.branch]??1;let On=!1;Ee.hidden.forEach((Ve,$n)=>{p[Ve.stem]===Re?(Ln+=(h[$n]??.1)*He,On=!0):_[p[Ve.stem]]===Re&&(Ln+=(h[$n]??.1)*.4*He,On=!0)}),On&&Hn.push(Ee.branch)}let _n=0;const Bn=[],Dn=[],cn=[];for(const Q of["year","month","hour"]){const Ee=Z[Q].stem,He=p[Ee];if(He===Re||_[He]===Re){const On=He===Re?1:.8;ee(Z,He,Nn.factor)>=C?_n+=On:(_n+=On*.5,cn.push(Ee)),Bn.push(Ee)}else ce[He]===Re?(_n-=1,Dn.push(Ee)):ce[Re]===He?(_n-=.8,Dn.push(Ee)):(_n-=.5,Dn.push(Ee))}const Yn=Math.round((An+Ln+_n)*10)/10,Un=Yn>=4?"身强":Yn>=2.5?"偏强":Yn>=1.5?"中和":Yn>=.5?"偏弱":"身弱",Xn=Nn.notes.length?`;合会折根:${Nn.notes.join("、")}`:"",Vn=cn.length?`;虚透${cn.join("")}帮扶减半`:"",Zn={level:Un,score:Yn,detail:`月令${qn}${sn},日主${Re}${Rn}(${An});通根${Hn.join("")||"无"}(${Ln.toFixed(1)});天干帮扶${Bn.join("")||"无"}/耗泄${Dn.join("")||"无"}(${_n.toFixed(1)})${Xn}${Vn}`,method:"月令权重 3/2/1/0.5/0 + 地支藏干通根(三会/三合/六合折根)+ 天干帮扶(虚透减半),量化后分档;属简化算法,非唯一流派",parts:{season:{branch:qn,element:sn,word:Rn,weight:An},roots:Hn,rootScore:Math.round(Ln*10)/10,helpers:Bn,drainers:Dn,helpScore:Math.round(_n*10)/10,structure:Nn.notes,virtualHelpers:cn}},Fn=d({pillars:Z,dayStem:x,monthBranch:qn,strength:Zn,wuxing:Ze}),ne=(Q,Ee)=>{if(!Q||!Ee)return[];if(Q===Ee)return f.includes(Q)?["自刑"]:[];const He=[];(ae[Q+Ee]||ae[Ee+Q])&&He.push("合"),b(ge,Q,Ee)&&He.push("冲"),b(E,Q,Ee)&&He.push("害"),b(R,Q,Ee)&&He.push("破");for(const On of w)On.includes(Q)&&On.includes(Ee)&&He.push("刑");return He},Ie=["year","month","day","hour"].map(Q=>Z[Q].branch),rn=Q=>{const Ee=new Set,He=[];for(const On of Ie)for(const Ve of ne(On,Q)){const $n=Ve+On;Ee.has($n)||(Ee.add($n),He.push($n))}return He};for(const Q of xn)Q.relations=rn(Q.branch),Q.luck=n(Q.ganzhi,Fn);for(const Q of fn)Q.relations=rn(Q.ganzhi[1]),Q.luck=n(Q.ganzhi,Fn);const zn={year:"年柱",month:"月柱",day:"日柱",hour:"时柱"},vn=(Q,Ee)=>ce[p[Q]]===p[Ee],Sn=(Q,Ee)=>typeof Q!="string"||typeof Ee!="string"||Q.length<2||Ee.length<2||!(Q[0]in p)||!(Ee[0]in p)?!1:(vn(Q[0],Ee[0])||vn(Ee[0],Q[0]))&&b(ge,Q[1],Ee[1]),e=Q=>{const Ee=q(Q,{jieOnly:!0}).find(He=>He.index===2&&B(He.jd).year===Q);return Ee?Ee.jd:U({year:Q,month:2,day:4})};for(const Q of fn){const Ee=e(Q.year),He=e(Q.year+1),On=X.filter($n=>$n.fromJd<He&&$n.toJd>Ee),Ve=[];for(const $n of On){$n.ganzhi===Q.ganzhi?Ve.push({type:"岁运并临",target:`第${$n.step}步大运`,detail:`大运与流年同为${Q.ganzhi}`}):Sn($n.ganzhi,Q.ganzhi)&&Ve.push({type:"运年反吟",target:`第${$n.step}步大运`,detail:`大运${$n.ganzhi}与流年${Q.ganzhi}天克地冲`});for(const Gn of["year","month","day","hour"]){const at=Z[Gn].ganzhi;at&&($n.ganzhi===at?Ve.push({type:"大运伏吟",target:`第${$n.step}步大运·${zn[Gn]}`,detail:`大运${$n.ganzhi}与${zn[Gn]}同干支`}):Sn($n.ganzhi,at)&&Ve.push({type:"大运反吟",target:`第${$n.step}步大运·${zn[Gn]}`,detail:`大运${$n.ganzhi}与${zn[Gn]}${at}天克地冲`}))}}for(const $n of["year","month","day","hour"]){const Gn=Z[$n].ganzhi;Gn&&(Q.ganzhi===Gn?Ve.push({type:"流年伏吟",target:zn[$n],detail:`流年${Q.ganzhi}与${zn[$n]}同干支`}):Sn(Q.ganzhi,Gn)&&Ve.push({type:"流年反吟",target:zn[$n],detail:`流年${Q.ganzhi}与${zn[$n]}${Gn}天克地冲`}))}Q.suiyun={dayun:On.map($n=>({step:$n.step,ganzhi:$n.ganzhi})),signals:Ve,note:"只标干支重复与天克地冲这类变动信号,不判吉凶;大运按该年立春到次年立春的区间取,交运落在年内时前后两步并列;大运与本命四柱的伏吟/反吟整步大运都在,逐年重复列出"}}const o=B(We),r=Y.indexOf(Z.month.stem),a=A.indexOf(Z.month.branch),i=se(c((r+1)%10,(a+3)%12)),y=Y.indexOf(Z.day.stem),I=A.indexOf(Z.day.branch),ie=se(c((y+5)%10,(1-I+12)%12)),ke=A.indexOf(Z.hour.branch),K=Y.indexOf(Z.year.stem),re=((K*12+(27-a-ke)%12+2)%60+60)%60,Ke=((K*12+(11+a+ke)%12+2)%60+60)%60,pe=se(re),Qe=se(Ke),Tn=nn(A[Wn],it,wn.jd);Tn&&(Tn.term={name:wn.name,time:z(wn.jd)});const yn={system:"bazi",relations:Ne(Z,Be?["year","month","day"]:void 0),palaces:{taiyuan:{ganzhi:i.name,note:"月干进一、月支进三"},taixi:{ganzhi:ie.name,note:"日干五合、日支六合"},minggong:{ganzhi:pe.name,branch:pe.branch,note:"生月与生时支合数定宫(27 减,取模后 +2);干随六十甲子"},shengong:{ganzhi:Qe.name,branch:Qe.branch,note:"生月与生时支合数定宫(11 加,取模后 +2);干随六十甲子"}},input:{civil:{year:Ye,month:Fe,day:on,hour:De,minute:Ue},gender:un,longitude:Le??null,address:ye.address||null,geo:Oe,lateZi:de,trueSolar:oe,dst:{applied:!!D.applied,note:D.note||null}},solarTime:{civilText:`${Ye}-${String(Fe).padStart(2,"0")}-${String(on).padStart(2,"0")} ${String(De).padStart(2,"0")}:${String(Ue).padStart(2,"0")}`,trueSolarText:z(We),offsetMinutes:ue.offsetMinutes,note:D.applied?`${D.note};${ue.note}`:ue.note,lunarYearForPillar:gn},jieqi:{previous:{name:wn.name,time:z(wn.jd)},next:{name:Pn.name,time:z(Pn.jd)},nearBoundaryMinutes:Math.round(Math.min(We-wn.jd,Pn.jd-We)*1440)},renyuan:Tn,pillars:Z,dayMaster:{stem:x,element:p[x],yinYang:be(x)?"阳":"阴"},wuxing:Ze,kongwang:qe,shensha:In,dayun:{direction:W?"顺行":"逆行",rule:`${we?"阳":"阴"}年${un==="male"?"男":"女"}${W?"顺排":"逆排"}`,startAge:{years:xe,months:ze},toNextJieDays:Math.round(tn*100)/100,jiao:{at:z(hn),jd:Math.round(hn*1e6)/1e6,scaleDaysPerDay:Ge,yearDays:O,spanDays:Math.round(tn*1e4)/1e4,from:{name:he.name,time:z(he.jd)},frame:ue.offsetMinutes?"真太阳时":"平太阳时",offsetMinutes:ue.offsetMinutes,note:"三日折一年:出生到节令的真实间隔按 365.2422/3 放大后加到出生时刻;同一比例即「一日折四月、一时辰折十日」,每步大运在同月同日同时刻换"},list:xn},strength:Zn,frame:Fn,climate:Fn.yongshen.climate||Fn.yongshen.tiaohou||null,liunian:fn,liunianFrom:en};if(Be){const Q=yn.pillars.hour;yn.hourUnknown=!0,yn.provisionalHour="noon",yn.pillars.hour=null,yn.palaces.minggong=null,yn.palaces.shengong=null,yn.input.civil.hour=null,yn.input.civil.minute=null;const Ee=`${yn.input.civil.year}-${String(yn.input.civil.month).padStart(2,"0")}-${String(yn.input.civil.day).padStart(2,"0")}`;if(yn.solarTime.civilText=`${Ee}(时辰未知)`,yn.solarTime.trueSolarText=`${Ee}(时辰未知)`,yn.dayun.precision="day",yn.dayun.jiao=null,yn.dayun.note="时柱暂缺:起运与交运按日估算,仅供参考",yn.dayun.list=yn.dayun.list.map(He=>({...He,fromDate:He.fromDate?String(He.fromDate).slice(0,10):He.fromDate,toDate:He.toDate?String(He.toDate).slice(0,10):He.toDate})),Q){const He={...yn.wuxing};He[Q.stemElement]-=1,Q.hidden.forEach((On,Ve)=>{He[On.element]-=Ae[Ve]??.1});for(const On of Object.keys(He))He[On]=Math.round(Math.max(0,He[On])*10)/10;yn.wuxing=He}yn.shensha&&yn.shensha.detail&&(yn.shensha.detail.hour=[],Array.isArray(yn.shensha.groups)&&(yn.shensha.groups=yn.shensha.groups.map(He=>({...He,items:(He.items||[]).filter(On=>(On.pillars||[]).some(Ve=>Ve!=="hour"))})).filter(He=>He.items.length),yn.shensha.count=yn.shensha.groups.reduce((He,On)=>He+On.items.length,0))),yn.strength.precision="three-pillars",yn.notes=["时柱暂缺:未提供出生时刻,时柱不参与任何判定","旺衰、格局、用神按年/月/日三柱估算,补上时柱后可能改变"]}return yn}return{HIDDEN_STEMS:m,RENYUAN_TABLE:S,STEM_ELEMENT:p,BRANCH_ELEMENT:j,buildRelations:Ne,tenGod:Me,nayin:an,applyTrueSolar:fe,renyuanOf:nn,buildBazi:bn}})(),V.ziwei=(function(){const{STEMS:Y,BRANCHES:A,ganzhiName:Se,sexagenaryIndex:se,jdToParts:me,partsToJd:B,formatJd:U}=V.calendar||{},{solarToLunar:c}=V.lunar||{},{applyTrueSolar:q}=V.bazi||{},{applyDst:P}=V.dst||{},{assertCivil:N}=V.validate||{},{nayinOf:L}=V.nayin||{},{resolveAddress:z}=V.geo||{},g=u=>(u%12+12)%12,$e=["命宫","兄弟","夫妻","子女","财帛","疾厄","迁移","交友","官禄","田宅","福德","父母"],G={水:{name:"水二局",number:2},木:{name:"木三局",number:3},金:{name:"金四局",number:4},土:{name:"土五局",number:5},火:{name:"火六局",number:6}};function J(u){return L(u)}const k=[{offset:0,name:"紫微"},{offset:-1,name:"天机"},{offset:-3,name:"太阳"},{offset:-4,name:"武曲"},{offset:-5,name:"天同"},{offset:-8,name:"廉贞"}],T=[{offset:0,name:"天府"},{offset:1,name:"太阴"},{offset:2,name:"贪狼"},{offset:3,name:"巨门"},{offset:4,name:"天相"},{offset:5,name:"天梁"},{offset:6,name:"七杀"},{offset:10,name:"破军"}],s={紫微:["平","庙","庙","旺","得","旺","庙","庙","旺","平","得","旺"],天机:["庙","陷","得","旺","利","平","庙","陷","得","旺","利","平"],太阳:["陷","陷","旺","庙","旺","旺","庙","得","得","平","陷","陷"],武曲:["旺","庙","得","利","庙","平","旺","庙","得","利","庙","平"],天同:["旺","陷","利","庙","平","庙","陷","陷","旺","平","平","庙"],廉贞:["平","利","庙","平","利","陷","平","利","庙","平","利","陷"],天府:["庙","庙","庙","得","庙","得","旺","庙","得","旺","庙","得"],太阴:["庙","庙","陷","陷","陷","陷","陷","陷","利","旺","旺","庙"],贪狼:["旺","庙","平","利","庙","陷","旺","庙","平","利","庙","陷"],巨门:["旺","旺","庙","庙","陷","旺","旺","旺","庙","庙","陷","旺"],天相:["庙","庙","庙","陷","得","得","庙","庙","庙","陷","得","得"],天梁:["庙","旺","庙","庙","庙","陷","庙","旺","庙","庙","庙","陷"],七杀:["旺","庙","庙","陷","庙","平","旺","庙","庙","陷","庙","平"],破军:["庙","旺","得","陷","旺","平","庙","旺","得","陷","旺","平"]},t={甲:{廉贞:"禄",破军:"权",武曲:"科",太阳:"忌"},乙:{天机:"禄",天梁:"权",紫微:"科",太阴:"忌"},丙:{天同:"禄",天机:"权",文昌:"科",廉贞:"忌"},丁:{太阴:"禄",天同:"权",天机:"科",巨门:"忌"},戊:{贪狼:"禄",太阴:"权",右弼:"科",天机:"忌"},己:{武曲:"禄",贪狼:"权",天梁:"科",文曲:"忌"},庚:{太阳:"禄",武曲:"权",太阴:"科",天同:"忌"},辛:{巨门:"禄",太阳:"权",文曲:"科",文昌:"忌"},壬:{天梁:"禄",紫微:"权",左辅:"科",武曲:"忌"},癸:{破军:"禄",巨门:"权",太阴:"科",贪狼:"忌"}},d=Object.freeze({brightnessSchool:"default",gengYearSihua:"GYWYT",tianmaSchool:"year-branch",tiankongSchool:"off",jiekongSchool:"off",kuiyueSchool:"qs1",tianshiTianshang:"normal",changshengSchool:"yin-yang-shun-ni",lateZishi:"current-day",shenzhuSchool:"common"}),n=Object.freeze({brightnessSchool:["default","QS","XD1","ZZ","XD2"],gengYearSihua:["GYWYT","GYWTY","GYWFT","GYWFX","GYWTX"],tianmaSchool:["year-branch","month-branch"],tiankongSchool:["off","normal","shun-jia-shi"],jiekongSchool:["off","double","single","zhanyan"],kuiyueSchool:["qs1","qs2","zhong-yiming","network"],tianshiTianshang:["normal","zhongzhou"],changshengSchool:["yin-yang-shun-ni","shui-tu","huo-tu"],lateZishi:["current-day","next-day","all-current","day-cur-time-next"],shenzhuSchool:["common","verse"]});function m(u={}){const x=u.schools&&typeof u.schools=="object"?u.schools:{},$={};for(const[M,ve]of Object.entries(n)){const te=u[M]!==void 0?u[M]:x[M];$[M]=ve.includes(te)?te:d[M]}return $}const S=["","庙","旺","得","利","平","不","陷"],p=["","庙","旺","平","闲","陷"],j={QS:{levels:S,rows:{紫微:[5,1,2,2,3,2,1,1,2,2,3,2],天机:[1,7,3,2,4,5,1,7,3,2,4,5],太阳:[7,6,2,1,2,2,2,3,3,5,6,7],武曲:[2,1,3,4,1,5,2,1,3,4,1,5],天同:[2,6,4,5,5,1,7,6,2,5,5,1],廉贞:[5,4,1,5,4,7,5,4,1,5,4,7],天府:[1,1,1,3,1,3,2,1,3,2,1,3],太阴:[1,1,2,7,7,7,6,6,4,2,2,1],贪狼:[2,1,5,4,1,7,2,1,5,4,1,7],巨门:[2,6,1,1,7,2,2,6,1,1,7,2],天相:[1,1,1,7,3,3,1,3,1,7,3,3],天梁:[1,2,1,1,1,3,1,2,7,3,1,7],七杀:[2,1,1,2,1,5,2,1,1,2,1,5],破军:[1,2,3,7,2,5,1,2,3,7,2,5]}},XD1:{levels:S,rows:{紫微:[5,1,1,2,3,2,1,1,2,2,3,2],天机:[1,7,3,2,4,5,1,7,3,2,4,5],太阳:[7,6,2,1,2,2,1,3,4,5,7,7],武曲:[2,1,3,4,1,5,2,1,3,4,1,5],天同:[2,6,4,1,5,1,7,6,2,5,5,1],廉贞:[5,4,1,5,4,7,5,4,1,5,4,7],天府:[1,1,1,3,2,3,2,1,3,2,2,3],太阴:[1,1,6,7,7,7,7,5,4,2,2,1],贪狼:[2,1,5,3,1,7,2,1,5,4,1,7],巨门:[2,6,1,1,5,5,2,5,1,1,5,2],天相:[1,1,1,7,5,3,3,3,1,7,3,3],天梁:[1,2,1,2,1,7,1,2,7,3,1,7],七杀:[2,1,1,2,3,5,2,1,1,2,1,5],破军:[1,2,3,7,2,5,1,2,3,7,2,5]}},ZZ:{levels:p,rows:{紫微:[3,1,1,2,5,2,1,1,2,3,4,2],天机:[1,5,2,2,1,3,1,5,3,2,1,3],太阳:[5,5,2,1,2,2,1,3,4,4,5,5],武曲:[2,1,4,5,1,3,2,1,3,2,1,3],天同:[2,5,4,1,3,1,5,5,2,3,3,1],廉贞:[3,2,1,4,2,5,3,1,1,3,2,5],天府:[1,1,1,3,1,3,2,1,3,5,1,2],太阴:[1,1,4,5,4,5,5,3,3,2,2,1],贪狼:[2,1,3,4,1,5,2,1,3,3,1,5],巨门:[2,2,1,1,3,3,2,5,1,1,2,2],天相:[1,1,1,5,2,3,2,4,1,5,4,3],天梁:[1,2,1,1,2,5,1,2,5,4,2,5],七杀:[2,1,1,5,2,3,2,2,1,4,1,3],破军:[1,2,5,2,2,4,1,1,5,5,2,3]}},XD2:{levels:p,rows:{紫微:[4,1,1,2,4,2,1,1,2,3,5,2],天机:[1,5,2,2,2,3,1,5,2,2,2,3],太阳:[5,5,2,1,2,2,1,2,3,3,5,5],武曲:[2,1,3,5,1,3,2,1,3,2,1,3],天同:[2,5,3,1,2,1,5,5,2,3,3,1],廉贞:[3,2,1,4,2,5,3,1,1,3,2,5],天府:[2,1,1,3,1,2,2,1,2,3,1,2],太阴:[1,1,5,5,5,5,5,5,2,2,1,1],贪狼:[2,1,3,2,1,5,2,1,3,2,1,5],巨门:[2,5,1,2,5,1,2,5,1,2,5,1],天相:[1,1,1,5,2,3,2,3,1,5,5,3],天梁:[1,2,1,1,2,5,1,2,5,3,2,5],七杀:[2,2,1,5,1,3,2,2,1,3,1,3],破军:[1,1,5,2,2,3,1,1,5,5,2,3]}}};function _(u,x,$="default"){const M=j[$];if(!M||!M.rows[u])return s[u]?s[u][g(x)]:void 0;const ve=M.rows[u][g(x)];return ve?M.levels[ve]:void 0}const ce={GYWYT:{太阳:"禄",武曲:"权",太阴:"科",天同:"忌"},GYWTY:{太阳:"禄",武曲:"权",天同:"科",太阴:"忌"},GYWFT:{太阳:"禄",武曲:"权",天府:"科",天同:"忌"},GYWFX:{太阳:"禄",武曲:"权",天府:"科",天相:"忌"},GYWTX:{太阳:"禄",武曲:"权",天同:"科",天相:"忌"}};function be(u,x){return u==="庚"?ce[x.gengYearSihua]||t.庚:t[u]??{}}const Ae={qs2:{甲:[1,7],戊:[1,7],庚:[6,2],乙:[0,8],己:[0,8],丙:[11,9],丁:[11,9],辛:[6,2],壬:[5,3],癸:[5,3]},"zhong-yiming":{甲:[1,7],戊:[1,7],庚:[2,6],乙:[0,8],己:[0,8],丙:[11,9],丁:[11,9],辛:[2,6],壬:[5,3],癸:[5,3]},network:{甲:[1,7],戊:[1,7],庚:[1,7],乙:[0,8],己:[0,8],丙:[11,9],丁:[11,9],辛:[6,2],壬:[3,5],癸:[3,5]}},h={single:{甲:8,乙:6,丙:4,丁:2,戊:0,己:9,庚:7,辛:5,壬:3,癸:1},double:{甲:[8,9],乙:[7,6],丙:[4,5],丁:[3,2],戊:[0,1],己:[9,8],庚:[6,7],辛:[5,4],壬:[2,3],癸:[1,0]},zhanyan:{甲:8,乙:6,丙:4,丁:2,戊:10,己:9,庚:7,辛:5,壬:3,癸:11}},v={甲:2,乙:3,丙:5,丁:6,戊:5,己:6,庚:8,辛:9,壬:11,癸:0},le={甲:[1,7],戊:[1,7],庚:[1,7],乙:[0,8],己:[0,8],丙:[11,9],丁:[11,9],辛:[6,2],壬:[3,5],癸:[3,5]};Ae.qs1=le;const ae={子:"贪狼",丑:"巨门",寅:"禄存",卯:"文曲",辰:"廉贞",巳:"武曲",午:"破军",未:"武曲",申:"廉贞",酉:"文曲",戌:"禄存",亥:"巨门"},je={丑:"天相",寅:"天梁",卯:"天同",辰:"文昌",巳:"天机",未:"天相",申:"天梁",酉:"天同",戌:"文昌",亥:"天机"},ge={common:{子:"火星",午:"火星",...je},verse:{子:"铃星",午:"火星",...je}},E={寅午戌:[2,6,10],申子辰:[8,0,4],巳酉丑:[5,9,1],亥卯未:[11,3,7]};function R(u){const x=g(u);for(const[$,M]of Object.entries(E))if(M.includes(x))return $;throw new Error(`三合局未匹配:${u}`)}const w={寅卯辰:[2,3,4],巳午未:[5,6,7],申酉戌:[8,9,10],亥子丑:[11,0,1]};function f(u){const x=g(u);for(const[$,M]of Object.entries(w))if(M.includes(x))return $;throw new Error(`四正未匹配:${u}`)}const b={寅午戌:1,申子辰:2,巳酉丑:3,亥卯未:9},F={寅午戌:3,申子辰:10,巳酉丑:10,亥卯未:10},C={寅午戌:8,申子辰:2,巳酉丑:11,亥卯未:5},ee={寅午戌:3,申子辰:9,巳酉丑:6,亥卯未:0},Ne={寅午戌:10,申子辰:4,巳酉丑:1,亥卯未:7},Me={寅午戌:6,申子辰:0,巳酉丑:9,亥卯未:3},an={寅卯辰:5,巳午未:8,申酉戌:11,亥子丑:2},Te={寅卯辰:1,巳午未:4,申酉戌:7,亥子丑:10};function dn(u){const x=g(u);return[0,6,3,9].includes(x)?5:[2,8,5,11].includes(x)?9:1}const fe={male:{寅午戌:4,申子辰:10,巳酉丑:7,亥卯未:1},female:{寅午戌:10,申子辰:4,巳酉丑:1,亥卯未:7}},nn=["长生","沐浴","冠带","临官","帝旺","衰","病","死","墓","绝","胎","养"],bn=["博士","力士","青龙","小耗","将军","奏书","飞廉","喜神","病符","大耗","伏兵","官府"],ye=["将星","攀鞍","岁驿","息神","华盖","劫煞","灾煞","天煞","指背","咸池","月煞","亡神"],Ye=["岁建","晦气","丧门","贯索","官符","小耗","大耗","龙德","白虎","天德","吊客","病符"],Fe={2:8,3:11,4:5,5:8,6:2};function on(u,x=0){const $=u*60+x;return $>=1380||$<60?0:Math.floor(($-60)/120)+1}function De(u,x){let $=0,M=0;for(;;){const Z=u+$;if(M=Math.floor(Z/x),Z%x===0)break;if($++,$>60)throw new Error("紫微定位失败")}M%=12;let ve=M-1;ve+=$%2===0?$:-$;const te=g(ve+2);return{ziwei:te,tianfu:g(4-te)}}function Ue(u,x,$){const M=fe[$==="female"?"female":"male"][x],ve=g(u);return $==="female"?g(M-ve)+1:g(ve-M)+1}const un=["split","next","prev"];function Be(u){return u&&un.includes(u.leapMonth)?u.leapMonth:u&&u.leapAsNext?"next":"split"}function de(u,x){return!u||!u.isLeap?u?u.month:0:x==="next"?u.month%12+1:x==="split"?u.day<=15?u.month:u.month%12+1:u.month}function oe(u){N(u);const x=m(u),{year:$,month:M,day:ve,hour:te=0,minute:Z=0,gender:we="male"}=u,W=u.trueSolar!==!1,tn=u.geo||(u.address?z(u.address):null),Je=typeof u.longitude=="number"?u.longitude:tn&&typeof tn.lon=="number"?tn.lon:void 0,xe=B({year:$,month:M,day:ve,hour:te,minute:Z}),ze=u.dst===!1?{applied:!1,note:null}:P({year:$,month:M,day:ve,hour:te,minute:Z}),O=ze.applied?B({year:ze.year,month:ze.month,day:ze.day,hour:ze.hour,minute:ze.minute}):xe,Ge=W?q(O,Je):{offsetMinutes:0,jd:O,note:"未启用真太阳时"};let he=me(Ge.jd);x.lateZishi==="next-day"&&he.hour>=23&&(he=me(Ge.jd+1));const hn=he.year,Ce=he.month,mn=he.day,xn=he.hour,X=he.minute,en=c(hn,Ce,mn),fn=Be(u),Ze=de(en,fn),Pe=en.day,qe=on(xn,X),jn=A[qe],Xe=Se(((en.lunarYear-4)%60+60)%60),pn=Xe.stem,kn=A.indexOf(Xe.branch),qn=R(kn),In=Y.indexOf(pn)%2===0,Mn=In&&we==="male"||!In&&we==="female",Re=Ae[x.kuiyueSchool]||le,sn=g(2+(Ze-1)-qe),An=g(2+(Ze-1)+qe),Rn=(Y.indexOf(pn)%5*2+2)%10,Nn=(Rn+g(sn-2))%10,Ln=J(se(Nn,sn)),Hn=G[Ln.element],{ziwei:_n,tianfu:Bn}=De(Pe,Hn.number),Dn=Array.from({length:12},()=>[]),cn=(K,re,Ke)=>{const pe=g(K),Qe={name:re,type:Ke};if(Ke==="主星"&&s[re]){const Tn=_(re,pe,x.brightnessSchool);Tn&&(Qe.brightness=Tn)}Dn[pe].push(Qe)};for(const K of k)cn(_n+K.offset,K.name,"主星");for(const K of T)cn(Bn+K.offset,K.name,"主星");const Yn=g(10-qe),Un=g(4+qe);cn(Yn,"文昌","辅星"),cn(Un,"文曲","辅星");const Xn=g(4+(Ze-1)),Vn=g(10-(Ze-1));cn(Xn,"左辅","辅星"),cn(Vn,"右弼","辅星"),cn(6+qe,"台辅","吉星"),cn(2+qe,"封诰","吉星");const Zn=v[pn];cn(Zn,"禄存","吉星"),cn(Zn+1,"擎羊","煞星"),cn(Zn-1,"陀罗","煞星");const[Fn,ne]=Re[pn];cn(Fn,"天魁","吉星"),cn(ne,"天钺","吉星");const Ie=g(3-kn);cn(Ie,"红鸾","吉星"),cn(Ie+6,"天喜","吉星"),cn(6-kn,"天哭","煞星"),cn(6+kn,"天虚","煞星"),cn(4+kn,"龙池","吉星"),cn(10-kn,"凤阁","吉星");const rn=x.tianmaSchool==="month-branch"?R(g(2+(Ze-1))):qn;cn(C[rn],"天马","吉星"),cn(ee[qn],"咸池","煞星"),cn(Ne[qn],"华盖","杂曜");const zn=f(kn);if(cn(an[zn],"孤辰","煞星"),cn(Te[zn],"寡宿","煞星"),cn(dn(kn),"破碎","煞星"),x.tiankongSchool!=="off"&&cn(x.tiankongSchool==="shun-jia-shi"?kn+qe:kn+1,"天空","杂曜"),x.jiekongSchool!=="off"){const K=h[x.jiekongSchool][pn];Array.isArray(K)?(cn(K[0],"截空","杂曜"),cn(K[1],"副截","杂曜")):cn(K,"截空","杂曜");const re=((en.lunarYear-4)%60+60)%60,Ke=re-re%10;cn(Ke+10,"旬空","杂曜"),cn(Ke+11,"副旬","杂曜")}cn(9+(Ze-1),"天刑","煞星"),cn(1+(Ze-1),"天姚","煞星"),cn(Xn+(Pe-1),"三台","吉星"),cn(Vn-(Pe-1),"八座","吉星"),cn(Yn+(Pe-2),"恩光","吉星"),cn(Un+(Pe-2),"天贵","吉星"),cn(b[qn]+qe,"火星","煞星"),cn(F[qn]+qe,"铃星","煞星"),cn(11+qe,"地劫","煞星"),cn(11-qe,"地空","煞星");const vn=x.tianshiTianshang==="zhongzhou"&&!Mn;cn(sn-(vn?5:7),"天伤","杂曜"),cn(sn-(vn?7:5),"天使","杂曜");const Sn=be(pn,x);for(const K of Dn)for(const re of K)Sn[re.name]&&(re.mutagen=Sn[re.name]);const e=[];for(let K=0;K<12;K++)e[g(sn-K)]=$e[K];const o=Hn.number,r=x.changshengSchool==="huo-tu"&&Hn.number===5?2:Fe[Hn.number],a=K=>{const re=Mn?1:-1;return{changsheng:nn[g(re*(K-r))],boshi:bn[g(re*(K-Zn))],jiangqian:ye[g(K-Me[qn])],suiqi:Ye[g(K-kn)]}},i=[];for(let K=0;K<12;K++){const re=g(sn-K),Ke=(Rn+g(re-2))%10,pe=g(Mn?re-sn:sn-re),Qe=o+pe*10,Tn=Y[Ke]+A[re],yn=t[Y[Ke]]??{},Q=Dn[re].filter(Ee=>yn[Ee.name]).map(Ee=>({star:Ee.name,type:yn[Ee.name]}));i.push({palace:e[re],branch:A[re],stem:Y[Ke],ganzhi:Tn,isSoul:re===sn,isBody:re===An,stars:Dn[re].map(Ee=>({...Ee})),shensha:a(re),selfHua:Q,daxian:{start:Qe,end:Qe+9,stem:Y[Ke],mutagen:Object.entries(t[Y[Ke]]??{}).map(([Ee,He])=>`${Ee}化${He}`)},xiaoxian:{age:Ue(re,qn,we)},sanfang:[re,re+4,re+8,re+6].map(Ee=>e[g(Ee)])})}const y=(()=>{const K=new Set([Yn,Un]);let re;Yn===Un?re=`同宫于${A[Yn]}`:K.has(0)&&K.has(2)?re="夹丑(子·寅)":K.has(6)&&K.has(8)?re="夹未(午·申)":K.has(5)&&K.has(9)?re="丑三合(巳·酉)":K.has(11)&&K.has(3)?re="未三合(亥·卯)":re="与丑未无关";const Ke=[sn,g(sn+4),g(sn+8),g(sn+6)],pe=(He,On)=>{const Ve=Dn[He],$n=Ve.find(Gn=>Gn.name===On)||{};return{branch:A[He],palace:e[He],mutagen:$n.mutagen??null,sha:Ve.filter(Gn=>Gn.type==="煞星").map(Gn=>Gn.name)}},Qe=pe(Yn,"文昌"),Tn=pe(Un,"文曲"),yn=[Qe,Tn].filter(He=>He.mutagen==="忌").map(He=>He.branch),Q=[...new Set([...Qe.sha,...Tn.sha])],Ee=yn.length?{label:"杂",reason:`昌曲化忌于${yn.join("、")}`}:Q.length>=2?{label:"杂",reason:`昌曲两宫会煞 ${Q.join("、")}`}:{label:"清",reason:"昌曲无化忌、不明显会煞"};return{relation:re,inSoulSanfang:Ke.includes(Yn)||Ke.includes(Un),wenchang:Qe,wenqu:Tn,absorb:Ee}})(),I=new Date().getFullYear(),ie=[];for(let K=I;K<I+12;K++){const re=Se(((K-4)%60+60)%60),Ke=A.indexOf(re.branch),pe=v[re.stem],Qe=K-en.lunarYear+1,Tn=(Qe-1)%12+1,yn=i.find(Ee=>Ee.xiaoxian.age===Tn),Q=i.find(Ee=>Qe>=Ee.daxian.start&&Qe<=Ee.daxian.end);ie.push({year:K,ganzhi:re.name,age:Qe,lifePalace:{branch:re.branch,palace:e[Ke]},doujun:A[g(Ke-(Ze-1)+qe)],sanfang:[g(Ke),g(Ke+4),g(Ke+8),g(Ke+6)].map(Ee=>e[Ee]),liulu:A[pe],liuyang:A[g(pe+1)],liutuo:A[g(pe-1)],liukui:A[Re[re.stem][0]],liuyue:A[Re[re.stem][1]],mutagen:Object.entries(t[re.stem]??{}).map(([Ee,He])=>`${Ee}化${He}`),daxian:Q?{palace:Q.palace,start:Q.daxian.start,end:Q.daxian.end}:null,xiaoxian:yn?{age:Tn,palace:yn.palace}:null})}const ke={system:"ziwei",input:{year:$,month:M,day:ve,hour:te,minute:Z,gender:we,leapMonth:fn,leapAsNext:fn==="next",longitude:Je??null,address:u.address||null,geo:tn,trueSolar:W,dst:{applied:!!ze.applied,note:ze.note||null},schools:{...x}},schools:{...x},solarTime:{civilText:`${$}-${String(M).padStart(2,"0")}-${String(ve).padStart(2,"0")} ${String(te).padStart(2,"0")}:${String(Z).padStart(2,"0")}`,trueSolarText:U(Ge.jd),offsetMinutes:Ge.offsetMinutes,note:ze.applied?`${ze.note};${Ge.note}`:Ge.note},lunar:{year:en.lunarYear,month:Ze,monthRaw:en.month,day:Pe,isLeap:en.isLeap,leapPolicy:fn,monthStart:en.monthStart,...en.isLeap?{note:fn==="split"?`闰${en.month}月按日切分:1–15 按本月、16 起按次月;本盘闰月${Pe}日按${Ze}月`:fn==="next"?"闰月整月按次月起盘":"闰月整月按本月起盘"}:{}},hourBranch:jn,yearGanzhi:Xe.name,soul:{palace:"命宫",branch:A[sn],stem:Y[Nn],ganzhi:Y[Nn]+A[sn],nayin:Ln.name},body:{palace:"身宫",branch:A[An],lands:e[An]},lifeMaster:ae[A[sn]],bodyMaster:ge[x.shenzhuSchool][A[kn]],bodyMasterSchool:x.shenzhuSchool,...kn===0||kn===6?{bodyMasterNote:x.shenzhuSchool==="common"?"子午皆火星(通行表);另有安身主诀「子午安身铃火宿」逐字取子铃星、午火星一派":"安身主诀「子午安身铃火宿」逐字:子铃星、午火星;另有子午皆火星的通行表"}:{},doujun:{zinian:A[g(qe-(Ze-1))],rule:"流年支起正月,逆数至生月,再起子时顺数至生时"},bureau:{name:Hn.name,number:Hn.number,element:Ln.element},ziwei:A[_n],tianfu:A[Bn],changqu:y,palaces:i,liunian:ie,daxian:{direction:Mn?"顺行":"逆行",rule:`${In?"阳":"阴"}年${we==="male"?"男":"女"}${Mn?"顺行":"逆行"}`,startAge:o},xiaoxianRule:{start:fe[we==="female"?"female":"male"][qn],direction:we==="male"?"顺行":"逆行",note:"小限一岁起宫按年支三合,男顺女逆,每宫一岁,十二年一周"},rules:{ziweiPlacement:"借数法:局数除日数取商,商数自寅宫顺行,借数奇逆偶顺",mutagen:"生年四化用中州派常用表;庚干可按流派切换(默认阳武阴同,另有同科阴忌、府科、府科相忌、同科相忌)",schools:`流派开关:亮度 ${x.brightnessSchool}、庚干四化 ${x.gengYearSihua}、天马 ${x.tianmaSchool}、天空 ${x.tiankongSchool}、截空 ${x.jiekongSchool}、魁钺 ${x.kuiyueSchool}、天伤天使 ${x.tianshiTianshang}、长生 ${x.changshengSchool}、晚子时 ${x.lateZishi}、身主 ${x.shenzhuSchool}(common 子午皆火星 / verse 子铃午火);庚干四化只作用于生年四化`,leapMonth:"闰月默认按日切分(1–15 归本月、16 起归次月,主流排盘口径);可传 leapMonth: next(整月归次月)或 prev(整月归本月),leapAsNext: true 等同 next",auxStars:"火铃按年支三合起点顺数至生时;羊陀夹禄存;魁钺按年干;地空亥起子时逆行、地劫顺行;三台八座随辅弼;恩光天贵随昌曲退一位;台辅封诰按时支",shensha:"长生、博士随大限顺逆;将前、岁前恒顺行;天伤恒在交友、天使恒在疾厄",masters:"命主按命宫地支,身主按生年地支",liunian:"流年命宫取该年地支宫;三方四正为本宫与 +4/+8/+6;并给该年所属大限与小限",flyComposite:"三方四正取本宫、对宫与两个三合宫共四宫,四宫宫干各化禄权科忌共 16 条,按落宫归堆标会聚(双忌会、禄忌同宫、三化会、自化);只描会照,不折吉凶",changqu:"昌曲落宫只由时支决定,故与丑未的关系(夹/三合/同宫/无关)是结构性结论;absorb 的「清/杂」是启发式标记,依据昌曲化忌与会煞,不是断语"}};return ke.patterns=Oe(ke),ke.daxianList=gn(ke),ke.fly=Wn(ke),ke.flyChains=tt(ke,{from:"命宫"}),ke.flyComposite=nt(ke,{from:"命宫"}),it(ke),ke.flow=H(ke,u.asOf),ke.patternSummary={count:ke.patterns.length,good:ke.patterns.filter(K=>K.tone==="good").map(K=>K.name),neutral:ke.patterns.filter(K=>K.tone==="neutral").map(K=>K.name),bad:ke.patterns.filter(K=>K.tone==="bad").map(K=>K.name),broken:ke.patterns.filter(K=>K.status==="broken").map(K=>K.name),formed:ke.patterns.filter(K=>K.status==="formed").map(K=>K.name),notGraded:ke.patterns.filter(K=>K.status==="n/a").map(K=>K.name),note:"格局只描述结构,不作吉凶断语;同一命盘可并存吉格、中性结构与忌格。破格只判吉格是否被三方四正的煞忌空劫冲破,忌格不另判破格"},ke}function D(u,x){const $=u.palaces.find(M=>M.stars.some(ve=>ve.name===x));return $?A.indexOf($.branch):-1}function _e(u,x){const $=g(x);return u.palaces.find(M=>A.indexOf(M.branch)===$)}function Oe(u){const x=u.palaces.find(Re=>Re.isSoul),$=A.indexOf(x.branch),M=[$,g($+4),g($+8),g($+6)],te=(Re=>new Set(Re.flatMap(sn=>_e(u,sn)?.stars.map(An=>An.name)??[])))(M),Z=x.stars.filter(Re=>Re.type==="主星").map(Re=>Re.name),we=[],W=(Re,sn)=>we.push({name:Re,evidence:sn});Z.length===0&&W("命无正曜","命宫无十四主星,需借对宫安星"),Z.some(Re=>["七杀","破军","贪狼"].includes(Re))&&W("杀破狼",`命宫坐 ${Z.filter(Re=>["七杀","破军","贪狼"].includes(Re)).join("、")}`);const tn=["天机","太阴","天同","天梁"];tn.every(Re=>te.has(Re))&&Z.some(Re=>tn.includes(Re))&&W("机月同梁","命宫三方四正会齐天机、太阴、天同、天梁"),$===11&&D(u,"太阴")===11&&W("月朗天门","太阴在亥守命"),$===3&&D(u,"太阳")===3&&W("日出扶桑","太阳在卯守命"),te.has("天府")&&te.has("天相")&&W("府相朝垣","命宫三方四正见天府、天相");const Je=D(u,"禄存"),xe=D(u,"天马");Je>=0&&xe>=0&&(Je===xe||g(Je-xe)===6)&&W("禄马交驰",`禄存在${A[Je]},天马在${A[xe]}`);const ze=D(u,"火星"),O=D(u,"铃星");g($-1)===ze&&g($+1)===O&&W("火铃夹命","火星在命宫前一宫、铃星在后一宫夹命"),g($-1)===O&&g($+1)===ze&&W("火铃夹命","铃星与火星夹命");const Ge=u.palaces.find(Re=>Re.stars.some(sn=>sn.mutagen==="忌"));Ge&&Je>=0&&A.indexOf(Ge.branch)===Je&&W("羊陀夹忌",`化忌与禄存在${Ge.branch}同宫,擎羊陀罗夹之`);const he=["铃星","文昌","陀罗","武曲"].map(Re=>D(u,Re));he.every(Re=>Re>=0)&&he.every(Re=>M.includes(g(Re)))&&W("铃昌陀武",`铃${A[he[0]]}·昌${A[he[1]]}·陀${A[he[2]]}·武${A[he[3]]} 会于命宫(${A[$]})三方四正`);const hn=u.palaces.find(Re=>Re.stars.some(sn=>sn.mutagen==="禄"));if(hn&&Je>=0){const Re=A.indexOf(hn.branch);(Re===Je||g(Re-Je)===6)&&W("双禄交流",`禄存在${A[Je]},化禄在${hn.branch}`)}const Ce=Re=>x.stars.some(sn=>sn.name===Re),mn=Re=>te.has(Re),xn=(Re,sn)=>{const An=D(u,Re),Rn=D(u,sn);return An<0||Rn<0?!1:g(An+1)===$&&g(Rn-1)===$||g(Rn+1)===$&&g(An-1)===$},X=Re=>{const sn=new Set;for(const An of Re)for(const Rn of _e(u,An)?.stars??[])Rn.mutagen&&sn.add(Rn.mutagen);return sn};if(Ce("紫微")&&Ce("天府")&&W("紫府同宫","紫微、天府同守命宫"),mn("紫微")&&mn("天府")&&W("紫府朝垣","命宫三方四正会紫微、天府"),(Ce("紫微")||Ce("天府"))&&["左辅","右弼","天魁","天钺"].filter(mn).length>=2){const Re=["左辅","右弼","天魁","天钺"].filter(mn);W("君臣庆会",`紫微/天府坐命,三方会${Re.join("、")}`)}$===6&&D(u,"紫微")===6&&W("极向离明","紫微在午守命"),($===0||$===6)&&Ce("七杀")&&W("七杀朝斗",`七杀在${A[$]}守命`),($===0||$===6)&&Ce("破军")&&W("英星入庙",`破军在${A[$]}守命`),($===0||$===6)&&Ce("巨门")&&W("石中隐玉",`巨门在${A[$]}守命`),D(u,"巨门")>=0&&D(u,"巨门")===D(u,"太阳")&&W("巨日同宫",`巨门太阳同宫于${A[D(u,"巨门")]}`),xn("太阳","太阴")&&W("日月夹命","太阳、太阴夹命宫"),D(u,"太阳")>=0&&D(u,"太阴")>=0&&g(D(u,"太阳")-D(u,"太阴"))===6&&W("日月对照",`太阳在${A[D(u,"太阳")]},太阴在${A[D(u,"太阴")]},隔宫对照`),xn("左辅","右弼")&&W("左右夹命","左辅、右弼夹命宫"),xn("文昌","文曲")&&W("昌曲夹命","文昌、文曲夹命宫"),xn("天魁","天钺")&&W("魁钺夹命","天魁、天钺夹命宫"),xn("擎羊","陀罗")&&W("羊陀夹命",`禄存在${A[$]}守命,擎羊陀罗前后夹之`);const en=X(M);en.has("禄")&&en.has("权")&&en.has("科")&&W("三奇嘉会","化禄、化权、化科会于命宫三方四正"),["禄存","化禄"].filter(Re=>Re==="禄存"?mn(Re):en.has("禄")).length===2&&W("双禄朝垣","禄存与化禄同会命宫三方四正"),te.has("地空")&&te.has("地劫")&&(Ce("地空")||Ce("地劫"))&&W("命里逢空","地空、地劫会命"),$===6&&D(u,"擎羊")===6&&W("马头带箭","擎羊在午守命"),($===4||$===10)&&W("天罗地网",`命宫在${A[$]},辰戌为天罗地网`);const Ze=D(u,"廉贞"),Pe=D(u,"天相"),qe=D(u,"擎羊");Ze>=0&&Pe>=0&&qe>=0&&Ze===Pe&&qe===Pe&&Pe===$&&(Pe===0||Pe===6)&&W("刑囚夹印",`廉贞天相同守命宫${A[Pe]},擎羊同宫`),te.has("贪狼")&&(te.has("火星")||te.has("铃星"))&&W("火贪铃贪",`贪狼与${te.has("火星")?"火星":"铃星"}会于命宫三方四正`),D(u,"武曲")>=0&&D(u,"武曲")===D(u,"贪狼")&&W("武贪同行",`武曲贪狼同宫于${A[D(u,"武曲")]}`),$===0&&Ce("贪狼")&&W("泛水桃花","贪狼在子守命");const jn=new Set,Xe=new Map;for(const Re of M)for(const sn of _e(u,Re)?.stars??[])Xe.has(sn.name)||Xe.set(sn.name,{branch:A[Re],mutagen:sn.mutagen||null});const pn=[...Xe.keys()],kn=Re=>Re.filter(sn=>Xe.has(sn)),qn=Re=>Re.map(sn=>`${sn}(${Xe.get(sn).branch})`).join("、"),In=pn.filter(Re=>Xe.get(Re).mutagen==="忌"),Mn=Re=>{const sn=Pn[Re];if(!sn)return{status:"n/a",breaks:[],breakRule:"未收录破格条件",citationIds:[]};if(sn.kind)return{status:"n/a",breaks:[],breakRule:sn.note,citationIds:[]};const An=[];for(const Rn of sn.breakers||[])if(Rn==="sha"){const Nn=kn(Le).filter(Ln=>!(sn.exclude||[]).includes(Ln));Nn.length&&An.push(`三方见煞星 ${qn(Nn)}`)}else if(Rn==="kong"){const Nn=kn(ue);Nn.length&&An.push(`三方见空劫 ${qn(Nn)}`)}else if(Rn==="ji")In.length&&An.push(`三方见化忌 ${qn(In)}`);else if(Rn==="yangTuo"){const Nn=kn(["擎羊","陀罗"]);Nn.length&&An.push(`羊陀冲守 ${qn(Nn)}`)}else if(Rn==="tuo")Xe.has("陀罗")&&An.push(`陀罗同会(${Xe.get("陀罗").branch})`);else if(Rn==="noKelu"){const Nn=pn.some(Hn=>Xe.get(Hn).mutagen==="科"),Ln=pn.some(Hn=>Xe.get(Hn).mutagen==="禄")||Xe.has("禄存");!Nn&&!Ln&&An.push("三方无化科、化禄或禄存照")}else if(Rn.startsWith("starJi:")){const Nn=Rn.slice(7),Ln=Xe.get(Nn);Ln?.mutagen==="忌"&&An.push(`${Nn}化忌(${Ln.branch})`)}return{status:An.length?"broken":"formed",breaks:An,breakRule:sn.rule||"",citationIds:sn.citationIds||[]}};return we.filter(Re=>jn.has(Re.name)?!1:(jn.add(Re.name),!0)).map(Re=>({...Re,tone:Jn[Re.name]||"neutral",...Mn(Re.name)}))}const Le=["擎羊","陀罗","火星","铃星"],ue=["地空","地劫"],We="命宫三方四正见煞星(擎羊、陀罗、火星、铃星)、地空地劫或化忌,吉格减色乃至不成格。",ln="这是结构标签,不是吉格,不判成格/破格。",wn="忌格本身就是风险结构,不再判「破格」;轻重与应期另看大限流年。",Pn={紫府同宫:{breakers:["kong","starJi:紫微","starJi:天府"],rule:We,citationIds:["zw-poge-sanfang","zw-poge-ruge"]},紫府朝垣:{breakers:["sha","kong","ji"],rule:We,citationIds:["zw-poge-sanfang","zw-poge-ruge"]},君臣庆会:{breakers:["sha","kong","ji"],rule:We,citationIds:["zw-poge-sanfang","zw-poge-ruge"]},极向离明:{breakers:["sha","kong","ji"],rule:We,citationIds:["zw-poge-sanfang","zw-poge-ruge"]},七杀朝斗:{breakers:["kong","starJi:七杀"],rule:"七杀在子午守命而见空劫或七杀化忌,杀曜之威不聚。",citationIds:["zw-poge-ruge"]},英星入庙:{breakers:["kong","starJi:破军"],rule:"破军在子午守命而见空劫或破军化忌,英星入庙减色。",citationIds:["zw-poge-ruge"]},石中隐玉:{breakers:["noKelu","kong","starJi:巨门"],rule:"三方无化科、化禄或禄存照,或见空劫、巨门化忌,则石中隐玉不成立。",citationIds:["zw-shiyin","zw-poge-ruge"]},巨日同宫:{breakers:["sha","kong","ji"],rule:"巨日同宫而三方见擎羊等煞星、空劫或化忌,光明被掩。",citationIds:["zw-poge-sanfang","zw-jiju-poge"]},日月夹命:{breakers:["yangTuo","starJi:太阳","starJi:太阴"],rule:"羊陀冲守,或日月任一带化忌,夹局减色。",citationIds:["zw-riyue-jia"]},日月对照:{breakers:["sha","kong","starJi:太阳","starJi:太阴"],rule:"日月对照见煞空,或日月任一带化忌,对照不美。",citationIds:["zw-riyue-jia","zw-poge-sanfang"]},左右夹命:{breakers:["kong","ji"],rule:"命宫三方见空劫或化忌,辅弼之夹被冲。",citationIds:["zw-poge-sanfang"]},昌曲夹命:{breakers:["sha","kong"],rule:"三方见羊陀火铃空劫,昌曲夹命亦主虚誉。",citationIds:["zw-changqu"]},魁钺夹命:{breakers:["sha","kong"],rule:"魁钺夹命而三方杀凑,贵气减等。",citationIds:["zw-kuiyue"]},三奇嘉会:{breakers:["sha","ji"],rule:"三奇同会而兼四杀或化忌,发财功名亦多阻滞。",citationIds:["zw-sihua-ji"]},双禄朝垣:{breakers:["kong","ji"],rule:"双禄朝垣见空劫或化忌,禄被劫夺。",citationIds:["zw-poge-sanfang"]},府相朝垣:{breakers:["sha","kong","ji"],rule:We,citationIds:["zw-poge-sanfang","zw-poge-ruge"]},禄马交驰:{breakers:["kong","sha"],rule:"禄马逢空为死马、遇陀罗为折足马,见刑杀亦减力。",citationIds:["zw-luma"]},月朗天门:{breakers:["kong","starJi:太阴"],rule:"太阴在亥守命而见空劫或太阴化忌,月被云遮。",citationIds:["zw-poge-ruge"]},日出扶桑:{breakers:["kong","starJi:太阳"],rule:"太阳在卯守命而见空劫或太阳化忌,日出扶桑减色。",citationIds:["zw-poge-ruge"]},机月同梁:{breakers:["sha","kong","ji"],rule:"机月同梁遇凶杀、空劫或化忌,则降为下格。",citationIds:["zw-jiyue"]},武贪同行:{breakers:["starJi:武曲","starJi:贪狼"],rule:"武贪同行须无化忌;任一颗化忌则作下格论。",citationIds:["zw-tanwu"]},双禄交流:{breakers:["kong","ji"],rule:"双禄交流见空劫或化忌,禄来难守。",citationIds:["zw-poge-sanfang"]},火贪铃贪:{breakers:["sha","kong","starJi:贪狼"],exclude:["火星","铃星"],rule:"三方有凶杀或空劫,火贪铃贪不发;贪狼化忌亦减力。",citationIds:["zw-huotan"]},命无正曜:{kind:"structural",note:ln},杀破狼:{kind:"structural",note:ln},火铃夹命:{kind:"inauspicious",note:wn},羊陀夹命:{kind:"inauspicious",note:wn},羊陀夹忌:{kind:"inauspicious",note:wn},铃昌陀武:{kind:"inauspicious",note:wn},命里逢空:{kind:"inauspicious",note:wn},马头带箭:{kind:"inauspicious",note:wn},天罗地网:{kind:"inauspicious",note:wn},刑囚夹印:{kind:"inauspicious",note:wn},泛水桃花:{kind:"inauspicious",note:wn}},Jn={紫府同宫:"good",紫府朝垣:"good",君臣庆会:"good",极向离明:"good",七杀朝斗:"good",英星入庙:"good",石中隐玉:"good",巨日同宫:"good",日月夹命:"good",日月对照:"good",左右夹命:"good",昌曲夹命:"good",魁钺夹命:"good",三奇嘉会:"good",双禄朝垣:"good",府相朝垣:"good",禄马交驰:"good",月朗天门:"good",日出扶桑:"good",机月同梁:"good",武贪同行:"neutral",命无正曜:"neutral",杀破狼:"neutral",双禄交流:"neutral",火贪铃贪:"neutral",火铃夹命:"bad",羊陀夹命:"bad",羊陀夹忌:"bad",铃昌陀武:"bad",命里逢空:"bad",马头带箭:"bad",天罗地网:"bad",刑囚夹印:"bad",泛水桃花:"bad"};function gn(u){const x=$=>{const M=new Set;for(const ve of $){const te=u.palaces.find(Z=>Z.palace===ve);for(const Z of te?.stars??[])Z.type==="主星"&&M.add(Z.name)}return[...M]};return u.palaces.map($=>({palace:$.palace,branch:$.branch,stem:$.stem,ganzhi:$.ganzhi,ages:[$.daxian.start,$.daxian.end],mutagen:$.daxian.mutagen,selfHua:$.selfHua,sanfang:$.sanfang,mainStars:x($.sanfang),mutagenHits:Object.entries(t[$.stem]??{}).map(([M,ve])=>{const te=D(u,M);return{star:M,type:ve,branch:te>=0?A[te]:null,palace:te>=0?u.palaces.find(Z=>Z.branch===A[te])?.palace??null:null}})})).sort(($,M)=>$.ages[0]-M.ages[0])}const En=["禄","权","科","忌"];function Cn(u,x){const $=t[u];if(!$)return null;for(const[M,ve]of Object.entries($))if(ve===x)return M;return null}function Wn(u){const x=u.palaces||[];return x.map($=>({palace:$.palace,branch:$.branch,stem:$.stem,flies:En.map(M=>{const ve=Cn($.stem,M),te=ve?D(u,ve):-1,Z=te>=0?x.find(we=>we.branch===A[te]):null;return{type:M,star:ve,to:Z?Z.palace:null,toBranch:Z?Z.branch:null,self:!!(Z&&Z.palace===$.palace)}})}))}function Kn(u,{from:x="命宫",type:$="忌",maxSteps:M=12}={}){const ve=u.palaces||[],te=ve.find(Je=>Je.palace===x)||ve[0];if(!te)return null;const Z=[],we=new Set([te.palace]);let W=te,tn="max";for(let Je=0;Je<Math.max(1,M);Je++){const xe=Cn(W.stem,$);if(!xe){tn="no-star";break}const ze=D(u,xe);if(ze<0){tn="off-chart";break}const O=ve.find(Ge=>Ge.branch===A[ze]);if(Z.push({from:W.palace,fromBranch:W.branch,fromStem:W.stem,star:xe,type:$,to:O.palace,toBranch:O.branch}),we.has(O.palace)){tn="cycle";break}we.add(O.palace),W=O}return{from:te.palace,type:$,steps:Z,path:[te.palace,...Z.map(Je=>Je.to)],ended:tn,closed:tn==="cycle"}}function tt(u,{from:x="命宫",maxSteps:$=12}={}){const M={};for(const ve of En)M[ve]=Kn(u,{from:x,type:ve,maxSteps:$});return M}const et=u=>`${u}${String(u).endsWith("宫")?"":"宫"}`;function nt(u,{from:x="命宫"}={}){const $=u.palaces||[],M=$.find(ze=>ze.palace===x)||$[0];if(!M)return null;const ve=Array.isArray(M.sanfang)&&M.sanfang.length?[...new Set(M.sanfang)].slice(0,4):[M.palace],te=[];for(const ze of ve){const O=$.find(Ge=>Ge.palace===ze);O&&te.push({palace:O.palace,branch:O.branch,stem:O.stem,flies:En.map(Ge=>{const he=Cn(O.stem,Ge),hn=he?D(u,he):-1,Ce=hn>=0?$.find(mn=>mn.branch===A[hn]):null;return{type:Ge,star:he,to:Ce?Ce.palace:null,toBranch:Ce?Ce.branch:null,self:!!(Ce&&Ce.palace===O.palace)}})})}const Z=[];for(const ze of $){const O=[];for(const Ge of te)for(const he of Ge.flies)he.to===ze.palace&&O.push({from:Ge.palace,fromBranch:Ge.branch,fromStem:Ge.stem,type:he.type,star:he.star,self:he.self});O.length&&Z.push({palace:ze.palace,branch:ze.branch,incoming:O,types:[...new Set(O.map(Ge=>Ge.type))],count:O.length})}Z.sort((ze,O)=>O.count-ze.count||A.indexOf(ze.branch)-A.indexOf(O.branch));const we=ze=>ze.incoming.filter(O=>O.type==="忌").length,W={doubleJi:Z.filter(ze=>we(ze)>=2),luJi:Z.filter(ze=>ze.types.includes("禄")&&ze.types.includes("忌")),tripleHua:Z.filter(ze=>ze.types.length>=3),selfHua:Z.filter(ze=>ze.incoming.some(O=>O.self))},tn=[];for(const ze of W.doubleJi)tn.push(`${["","","双忌","三忌","四忌"][we(ze)]||`${we(ze)}忌`}会${et(ze.palace)}`);for(const ze of W.luJi)tn.push(`禄忌同宫${et(ze.palace)}`);const Je={3:"三化会",4:"四化会"};for(const ze of W.tripleHua)tn.push(`${Je[ze.types.length]||`${ze.types.length}化会`}${et(ze.palace)}`);for(const ze of W.selfHua)tn.push(`${et(ze.palace)}自化`);const xe={};for(const ze of En)xe[ze]=te.map(O=>{const Ge=O.flies.find(he=>he.type===ze);return Ge&&Ge.to?{from:O.palace,star:Ge.star,to:Ge.to,self:Ge.self}:null}).filter(Boolean);return{from:M.palace,sanfang:te.map(ze=>ze.palace),sources:te,targets:Z,groups:W,byType:xe,labels:tn,note:"三方四正取本宫、对宫与两个三合宫共四宫,四宫宫干各化禄权科忌共 16 条飞化,按落宫归堆;只在落宫相同(会照)时标会聚,单条飞出不另立标签。只描会照与方向,不折吉凶,也未叠大限流年四化。"}}function it(u){for(const x of u.liunian){const $=x.ganzhi[0];x.mutagenHits=Object.entries(t[$]??{}).map(([M,ve])=>{const te=D(u,M);return{star:M,type:ve,branch:te>=0?A[te]:null,palace:te>=0?u.palaces.find(Z=>Z.branch===A[te])?.palace??null:null}}),x.sanfangMainStars=[...new Set(x.sanfang.flatMap(M=>(u.palaces.find(te=>te.palace===M)?.stars??[]).filter(te=>te.type==="主星").map(te=>te.name)))]}return u.liunian}function l(u){if(!u)return null;if(typeof u=="object")return u;const x=String(u).match(/^(\d{4})-(\d{1,2})-(\d{1,2})(?:[T ](\d{1,2}):(\d{1,2}))?$/);return x?{year:Number(x[1]),month:Number(x[2]),day:Number(x[3]),hour:x[4]===void 0?12:Number(x[4]),minute:x[5]===void 0?0:Number(x[5])}:null}function H(u,x){const $=new Date,M=l(x)||{},ve=M.year||$.getFullYear(),te=M.month||$.getMonth()+1,Z=M.day||$.getDate(),we=M.hour===void 0?$.getHours():M.hour,W=M.minute===void 0?$.getMinutes():M.minute,tn=c(ve,te,Z),Je=u.lunar.month,xe=A.indexOf(u.hourBranch),ze=on(we,W),O=Se(((tn.lunarYear-4)%60+60)%60),Ge=A.indexOf(O.branch),he=g(Ge-(Je-1)+xe),hn=g(he+(tn.month-1)),Ce=g(hn+(tn.day-1)),mn=g(Ce+ze),xn=en=>{const fn=A[en],Ze=u.palaces.find(kn=>kn.branch===fn),Pe=Ze?Ze.stem:null,qe=Pe?Object.entries(t[Pe]??{}).map(([kn,qn])=>{const In=D(u,kn);return{star:kn,type:qn,branch:In>=0?A[In]:null,palace:In>=0?u.palaces.find(Mn=>Mn.branch===A[In])?.palace??null:null}}):[],jn=[en,g(en+4),g(en+8),g(en+6)],Xe=jn.map(kn=>u.palaces.find(qn=>qn.branch===A[kn])?.palace??null),pn=[...new Set(jn.flatMap(kn=>(u.palaces.find(In=>In.branch===A[kn])?.stars??[]).filter(In=>In.type==="主星").map(In=>In.name)))];return{branch:fn,palace:Ze?Ze.palace:null,stem:Pe,ganzhi:Ze?Ze.ganzhi:null,mutagenHits:qe,sanfang:Xe,sanfangMainStars:pn}},X=en=>String(en).padStart(2,"0");return{asOf:{solar:`${ve}-${X(te)}-${X(Z)} ${X(we)}:${X(W)}`,lunar:`${tn.lunarYear}年${tn.isLeap?"闰":""}${tn.month}月${tn.day}日${A[ze]}时`,yearGanzhi:O.name,hourBranch:A[ze]},year:{...xn(Ge),doujun:A[he]},month:{index:tn.month,...xn(hn)},day:{index:tn.day,...xn(Ce)},hour:{hourIndex:ze,...xn(mn)},rules:"流月命宫自流年斗君(该年支起正月逆数至生月,再起子时顺数至生时)起正月,顺行至该农历月;流日自流月命宫起初一,顺行至该农历日;流时自流日命宫起子时,顺行至该时辰;四化取落点宫的原局宫干"}}return{PALACE_NAMES:$e,BRIGHTNESS:s,MUTAGEN:t,ZIWEI_SCHOOL_DEFAULTS:d,ZIWEI_SCHOOL_OPTIONS:n,ziweiSchoolsOf:m,BRIGHTNESS_SCHOOLS:j,schoolBrightness:_,KUI_YUE_SCHOOLS:Ae,LUCUN:v,KUI_YUE:le,MING_ZHU:ae,SHEN_ZHU:ge,triadOf:R,HUO_START:b,LING_START:F,TIANMA:C,XIANCHI:ee,HUAGAI:Ne,JIANGXING:Me,GUCHEN:an,GUASU:Te,posuIndex:dn,XIAOXIAN_START:fe,CHANGSHENG_NAMES:nn,BOSHI_NAMES:bn,JIANGQIAN_NAMES:ye,SUIQI_NAMES:Ye,CHANGSHENG_START:Fe,hourBranchIndex:on,ziweiTianfuIndex:De,xiaoxianAge:Ue,LEAP_POLICIES:un,leapPolicyOf:Be,effectiveLunarMonth:de,buildZiwei:oe,detectPatterns:Oe,PATTERN_BREAK_RULES:Pn,PATTERN_TONE:Jn,daxianList:gn,FLY_TYPES:En,flyStarOf:Cn,flyStars:Wn,flyChain:Kn,flyChains:tt,flyComposite:nt,enrichLiunian:it,asOfParts:l,flowOf:H}})(),V.hepan=(function(){const{buildBazi:Y,tenGod:A}=V.bazi||{},{STEMS:Se,BRANCHES:se}=V.calendar||{},{assertCivil:me}=V.validate||{},{SANHE_GROUPS:B}=V.sanhe||{},U={甲:"木",乙:"木",丙:"火",丁:"火",戊:"土",己:"土",庚:"金",辛:"金",壬:"水",癸:"水"},c={子:"水",丑:"土",寅:"木",卯:"木",辰:"土",巳:"火",午:"火",未:"土",申:"金",酉:"金",戌:"土",亥:"水"},q={木:"火",火:"土",土:"金",金:"水",水:"木"},P={木:"土",土:"水",水:"火",火:"金",金:"木"},N=[["子","丑"],["寅","亥"],["卯","戌"],["辰","酉"],["巳","申"],["午","未"]],L=[["子","午"],["丑","未"],["寅","申"],["卯","酉"],["辰","戌"],["巳","亥"]],z=[["子","未"],["丑","午"],["寅","巳"],["卯","辰"],["申","亥"],["酉","戌"]],g=[["子","酉"],["卯","午"],["辰","丑"],["未","戌"],["寅","亥"],["巳","申"]],$e=[["寅","巳","申"],["丑","戌","未"],["子","卯"]],G=(d,n,m)=>d.some(S=>S.includes(n)&&S.includes(m)&&n!==m);function J(d,n){if(d===n)return{name:"同支",score:0,text:"日支相同,性情相近,容易互相理解,也容易同时卡在同一处"};if(G(N,d,n))return{name:"六合",score:20,text:"日支六合,相处自然、彼此补位"};if(B.some(m=>m.branches.includes(d)&&m.branches.includes(n)))return{name:"半合",score:14,text:"日支同属三合局,易有共同语言"};if(G(L,d,n))return{name:"相冲",score:-15,text:"日支相冲,节奏与需求容易错位,需要刻意协调"};if(G($e,d,n)){for(const m of $e)if(m.includes(d)&&m.includes(n))return{name:"相刑",score:-10,text:"日支相刑,摩擦多起于细节,宜少用指责"}}return G(z,d,n)?{name:"相害",score:-9,text:"日支相害,容易因第三方或误解生嫌隙"}:G(g,d,n)?{name:"相破",score:-5,text:"日支相破,小事易起波澜"}:{name:"无直接关系",score:4,text:"日支之间没有直接刑冲合害,关系好坏主要看经营"}}function k(d,n){return d===n?{name:"比和",score:13,text:"两人日主同五行,气味相投,也容易一起犯同样的毛病"}:q[d]===n?{name:"生我",score:20,text:"对方五行生我,容易得到照顾与助力"}:q[n]===d?{name:"我生",score:10,text:"我生对方,多为付出的一方,久了要留意消耗"}:P[n]===d?{name:"我克",score:5,text:"我克对方,主导感较强,需留意对方的空间"}:{name:"克我",score:-12,text:"对方克我,压力感偏重,宜把话说开"}}function T(d,n){if(d===n)return{name:"同属相(自刑之一)",score:-3,text:"属相相同,传统称「自刑」,容易互相较劲、谁也不让谁"};if(G(N,d,n))return{name:"六合",score:3,text:"属相六合,初印象与长辈缘通常不错"};if(B.some(m=>m.branches.includes(d)&&m.branches.includes(n)))return{name:"三合",score:3,text:"属相三合,容易有共同话题与共同朋友"};if(G(L,d,n))return{name:"六冲",score:-3,text:"属相六冲,节奏与立场容易相反,重大决定前宜多对一遍"};if(G(z,d,n))return{name:"相害",score:-2,text:"属相相害,容易因第三方或误会生嫌隙"};for(const m of $e)if(m.includes(d)&&m.includes(n))return{name:"相刑",score:-2,text:"属相相刑,摩擦多起于相处细节"};return{name:"无直接关系",score:0,text:"属相之间没有合冲刑害,表层影响小,以日柱为主"}}function s(d){const n=be=>{const Ae=be&&be.score||{};return{total:typeof Ae.total=="number"?Ae.total:null,level:Ae.level||"",dimensions:(Array.isArray(be&&be.dimensions)?be.dimensions:[]).map(h=>({key:h.key,label:h.label,score:typeof h.score=="number"?h.score:0}))}},m=d.map(be=>({key:be.key,a:be.a,b:be.b,...n(be.result)})),S=m.filter(be=>typeof be.total=="number").sort((be,Ae)=>Ae.total-be.total),p=S[0]||null,j=S[S.length-1]||null;let _=null;const ce=m[0]?m[0].dimensions.map(be=>be.key):[];for(const be of ce){const Ae=m.map(le=>le.dimensions.find(ae=>ae.key===be)||{}),h=Ae.map(le=>typeof le.score=="number"?le.score:0),v=Math.max(...h)-Math.min(...h);(!_||v>_.spread)&&(_={key:be,label:Ae[0]&&Ae[0].label||be,spread:v})}return{pairs:m,best:p?{key:p.key,a:p.a,b:p.b,total:p.total,level:p.level}:null,hardest:j&&j!==p?{key:j.key,a:j.a,b:j.b,total:j.total,level:j.level}:null,spread:p&&j?p.total-j.total:0,focus:_,note:"三方只把三对两两关系并列,不合成「三人总分」:和不同的人相处是不同的事,合成一个数会把差异抹平。"}}function t(d){me(d&&d.a,"a"),me(d&&d.b,"b");const n=Y({...d.a,gender:d.a.gender}),m=Y({...d.b,gender:d.b.gender}),S=n.pillars.day.stem,p=m.pillars.day.stem,j=U[S],_=U[p],ce=n.pillars.day.branch,be=m.pillars.day.branch,Ae=k(_,j),h=k(j,_),v=(Ae.score+h.score)/2,le=J(ce,be),ae=(n.frame&&n.frame.yongshen?n.frame.yongshen.favor:[]).slice(),je=(m.frame&&m.frame.yongshen?m.frame.yongshen.favor:[]).slice(),ge=gn=>{const En={};for(const Cn of["year","month","day","hour"])En[U[gn.pillars[Cn].stem]]=(En[U[gn.pillars[Cn].stem]]||0)+1,En[c[gn.pillars[Cn].branch]]=(En[c[gn.pillars[Cn].branch]]||0)+1;return En},E=ge(n),R=ge(m),w=gn=>Object.entries(gn).sort((En,Cn)=>Cn[1]-En[1])[0]||["",0],[f]=w(E),[b]=w(R),F=ae.includes(b),C=je.includes(f);let ee=0;const Ne=[];F&&(ee+=12,Ne.push(`对方的旺行 ${b} 正是你的喜用`)),C&&(ee+=12,Ne.push(`你的旺行 ${f} 正是对方的喜用`)),!F&&!C&&(ee+=3,Ne.push("双方的旺行都不是对方的喜用,互补性一般,靠沟通补"));const Me=["木","火","土","金","水"].filter(gn=>!E[gn]),an=["木","火","土","金","水"].filter(gn=>!R[gn]);Me.includes(b)&&(ee+=4,Ne.push(`你命局缺 ${b},对方正好偏旺`)),an.includes(f)&&(ee+=4,Ne.push(`对方命局缺 ${f},你正好偏旺`));const Te=v+le.score+ee,dn=Math.max(0,Math.min(100,Math.round((Te+27)/83*100))),fe=dn>=75?"契合度较高":dn>=55?"中等偏顺":dn>=40?"需要磨合":"差异较大",nn=n.pillars.year,bn=m.pillars.year,ye=T(nn.branch,bn.branch),Fe=[["甲","己"],["乙","庚"],["丙","辛"],["丁","壬"],["戊","癸"]].some(gn=>gn.includes(S)&&gn.includes(p)&&S!==p),on=A(S,p),De=A(p,S),Ue=["year","month","day","hour"].map(gn=>n.pillars[gn].branch),un=["year","month","day","hour"].map(gn=>m.pillars[gn].branch),Be=[];for(const gn of Ue)for(const En of un)G(N,gn,En)?Be.push({a:gn,b:En,name:"六合",score:1,text:"跨盘六合,易有自然的亲近与默契"}):B.some(Cn=>Cn.branches.includes(gn)&&Cn.branches.includes(En))?Be.push({a:gn,b:En,name:"半合",score:1,text:"跨盘半合,某些事上容易一拍即合"}):G(L,gn,En)?Be.push({a:gn,b:En,name:"相冲",score:-1,text:"跨盘相冲,某些领域节奏相反,需要分工"}):G(z,gn,En)&&Be.push({a:gn,b:En,name:"相害",score:-1,text:"跨盘相害,容易在第三方或琐事上起误会"});const de=[],oe=new Set;for(const gn of Be){const En=`${gn.name}${[gn.a,gn.b].sort().join("")}`;oe.has(En)||(oe.add(En),de.push(gn))}const D=nn.nayin,_e=bn.nayin,Oe=D[D.length-1],Le=_e[_e.length-1],ue=Oe===Le?{name:"纳音比和",score:0,text:"两人年命纳音同五行,底色相近"}:q[Oe]===Le?{name:"纳音相生",score:1,text:`你的年命纳音属${Oe}生对方${Le},你多是先付出的一方`}:q[Le]===Oe?{name:"纳音相生",score:1,text:`对方年命纳音属${Le}生你${Oe},你容易得到照应`}:P[Oe]===Le?{name:"纳音相克",score:-1,text:`你的年命纳音属${Oe}克对方${Le},主导感偏强`}:{name:"纳音相克",score:-1,text:`对方年命纳音属${Le}克你${Oe},压力感偏重`},We=(ye.score>0?1:0)+(Fe?1:0)+(le.score>5?1:0)+de.filter(gn=>gn.score>0).length+(ue.score>0?1:0),ln=(ye.score<0?1:0)+(le.score<0?1:0)+de.filter(gn=>gn.score<0).length+(ue.score<0?1:0),wn=We-ln>=3?"吉象偏多":We-ln>=1?"吉略多于凶":We-ln===0?"吉凶相当":"凶象偏多",Pn={yearRelation:{label:ye.name,text:`属相:你${nn.branch}(${nn.ganzhi}),对方${bn.branch}(${bn.ganzhi})。${ye.text}。`},stems:{he5:Fe,tenGodToB:on,tenGodToA:De,text:Fe?`日干五合(${S}${p}),传统称「天干五合」,主彼此吸引强,也容易黏在一起分不开。`:`日干无五合:你在对方盘里是「${on}」,对方在你盘里是「${De}」。`},crossBranches:de.slice(0,8),nayin:{a:D,b:_e,label:ue.name,text:ue.text},tally:{good:We,bad:ln,lean:wn},framing:"属相(年支)只影响表层印象,传统合婚以日柱为主;分档只说明吉凶象多少,不作「必配/必离」断言。"},Jn=(gn,En,Cn,Wn,Kn)=>({key:gn,label:En,score:Math.round(Cn),text:Wn,...Kn||{}});return{system:"hepan",a:{gender:n.input.gender,pillars:["year","month","day","hour"].map(gn=>n.pillars[gn].ganzhi),dayMaster:`${S}${j}`,dayBranch:ce,strength:n.strength?n.strength.level:null,favor:ae.join(""),wuxing:E,longitude:n.input.longitude??null,trueSolar:n.input.trueSolar!==!1,solarNote:n.solarTime?n.solarTime.note:"",summary:n.summary},b:{gender:m.input.gender,pillars:["year","month","day","hour"].map(gn=>m.pillars[gn].ganzhi),dayMaster:`${p}${_}`,dayBranch:be,strength:m.strength?m.strength.level:null,favor:je.join(""),wuxing:R,longitude:m.input.longitude??null,trueSolar:m.input.trueSolar!==!1,solarNote:m.solarTime?m.solarTime.note:"",summary:m.summary},score:{total:dn,level:fe},detail:Pn,dimensions:[Jn("stem","日主关系",v,`你的日主 ${S}${j},对方 ${p}${_}。${Ae.text};${h.text}。`),Jn("gong","夫妻宫(日支)",le.score,`${le.name}:${le.text}。你日支 ${ce},对方日支 ${be}。`),Jn("wuxing","五行互补",ee,Ne.join(";")+"。")],notes:["合盘看的是相处方式与互补点,不决定关系成败;现实里的沟通与选择分量更重。","口径:日主取五行生克双向平均,夫妻宫取日支关系,五行互补看「一方喜用是否为另一方所旺」。"]}}return{tripleOf:s,buildHepan:t}})(),V["ziwei-hepan"]=(function(){const{buildZiwei:Y}=V.ziwei||{},{assertCivil:A}=V.validate||{},Se=["命宫","兄弟","夫妻","子女","财帛","疾厄","迁移","交友","官禄","田宅","福德","父母"],se={禄:"会把资源、机会与松弛感带过去",权:"会不自觉地主导或施压",科:"带来的更多是名声、体面与理性",忌:"会勾起压力点与执念"},me={禄:10,权:5,科:8,忌:-10},B=["命宫","夫妻","福德","财帛","官禄"],U=(N,L)=>(N.palaces||[]).find(z=>z.branch===L)||null,c=N=>N&&N.stars?N.stars.filter(L=>L.type==="main"||L.type==="吉星"||L.type==="煞星").map(L=>L.name):[];function q(N,L){const z=U(N,L);return z?{palace:z.palace,branch:z.branch,stars:c(z)}:null}function P(N){A(N&&N.a,"a"),A(N&&N.b,"b");const L=Y({...N.a}),z=Y({...N.b}),g=q(z,L.soul.branch),$e=q(L,z.soul.branch),G=(L.palaces.find(_=>_.palace==="夫妻")||{}).branch,J=(z.palaces.find(_=>_.palace==="夫妻")||{}).branch,k=G?q(z,G):null,T=J?q(L,J):null,s=[],t=(_,ce,be,Ae)=>{for(const h of _.palaces||[])for(const v of h.stars||[]){if(!v.mutagen)continue;const le=(ce.palaces||[]).find(je=>(je.stars||[]).some(ge=>ge.name===v.name)),ae=le?le.palace:null;s.push({who:be,star:v.name,mutagen:v.mutagen,ownPalace:h.palace,landingPalace:ae,strong:ae?B.includes(ae):!1,text:`${be}的${v.name}化${v.mutagen}(在本命${h.palace})落在${Ae}的${ae||"盘外"}——${be}${se[v.mutagen]}`})}};t(L,z,"你","对方"),t(z,L,"对方","你");let d=40;const n=[];if(g){const _=B.includes(g.palace),ce=_?12:5;d+=ce,n.push({key:"soul",label:"命宫互落",score:ce,text:`你的命宫在${L.soul.branch},落到对方盘的「${g.palace}」${g.stars.length?`(同宫见 ${g.stars.join("、")})`:""}——${_?"影响直接,脾气与做派会明显落在对方这一块":"影响偏间接,主要体现在日常协作上"}。`})}if($e&&n.push({key:"soulBack",label:"对方命宫落你盘",score:0,text:`对方的命宫在${z.soul.branch},落到你盘的「${$e.palace}」${$e.stars.length?`(同宫见 ${$e.stars.join("、")})`:""}。`}),k&&T){const _=["命宫","夫妻","福德"].includes(k.palace)||["命宫","夫妻","福德"].includes(T.palace),ce=_?8:2;d+=ce,n.push({key:"spouse",label:"夫妻宫互落",score:ce,text:`你的夫妻宫在${G},落在对方「${k.palace}」;对方的夫妻宫在${J},落在你「${T.palace}」。${_?"双方的感情定位能对上彼此在意的事":"彼此的期待更容易落在不同领域,需要说清楚"}`})}let m=0;for(const _ of s){const ce=me[_.mutagen]||0;m+=_.strong?Math.round(ce*1.5):ce}m=Math.max(-25,Math.min(25,m)),d+=m,n.push({key:"mutagen",label:"四化引动",score:m,text:s.filter(_=>_.who==="你").map(_=>_.text).join(";")||"你这边没有生年四化引动对方的宫位。"});const S=Math.max(0,Math.min(100,Math.round(d))),p=S>=75?"契合度较高":S>=55?"中等偏顺":S>=40?"需要磨合":"差异较大",j=(_,ce)=>({who:ce,soul:{branch:_.soul.branch,palace:_.soul.palace},body:{branch:_.body.branch,lands:_.body.lands},bureau:_.bureau.name,ziwei:_.ziwei,tianfu:_.tianfu,soulStars:c(_.palaces.find(be=>be.palace==="命宫")||{}),spouseStars:c(_.palaces.find(be=>be.palace==="夫妻")||{}),natalSihua:(_.palaces||[]).flatMap(be=>(be.stars||[]).filter(Ae=>Ae.mutagen).map(Ae=>`${Ae.name}化${Ae.mutagen}(${be.palace})`)),summary:_.summary});return{system:"hepan",chart:"ziwei",a:j(L,"你"),b:j(z,"对方"),score:{total:S,level:p},dimensions:n,interactions:s,notes:["紫微合盘看的是「彼此会在对方生活里的哪一块起作用」,不是关系成败的判决。","口径:命宫与夫妻宫按地支落到对方盘的宫位;四化按「一方的生年四化星在对方盘的落宫」读,落在命宫/夫妻/福德/财帛/官禄加倍计分。"]}}return{buildZiweiHepan:P}})(),V["interpret-data"]=(function(){const Y={乾:{nature:"天",trait:"刚健、主导",element:"金"},坤:{nature:"地",trait:"承载、柔顺",element:"土"},震:{nature:"雷",trait:"启动、震动",element:"木"},巽:{nature:"风",trait:"渗透、顺势",element:"木"},坎:{nature:"水",trait:"险陷、流动",element:"水"},离:{nature:"火",trait:"明丽、附著",element:"火"},艮:{nature:"山",trait:"静止、阻挡",element:"土"},兑:{nature:"泽",trait:"愉悦、口舌",element:"金"}},A=[{pos:1,name:"初爻",gist:"事之始,根基与起点",tone:"宜稳不宜急"},{pos:2,name:"二爻",gist:"初步展开,能力初显",tone:"宜务实积累"},{pos:3,name:"三爻",gist:"进退交界的关口,多劳少得",tone:"宜守拙退让"},{pos:4,name:"四爻",gist:"接近决策层,转机初现",tone:"宜谨慎措辞"},{pos:5,name:"五爻",gist:"得位居中,事态最盛",tone:"宜把握主节奏"},{pos:6,name:"上爻",gist:"发展至极,盛极思变",tone:"宜留余地收尾"}],Se={yang:"阳极转阴:原本强势、推进得很快的那个环节,接下来需要收一收、留余地",yin:"阴极转阳:原本停滞、迟迟没动静的那个环节,接下来会出现变化,可以主动推一把"},se={乾为天:{meaning:"刚健运行,自强不息",scene:"主动权在你手上,宜自己定节奏"},坤为地:{meaning:"厚德载物,顺势而成",scene:"配合与承接比抢先更有利"},水雷屯:{meaning:"初生艰难,如草木破土",scene:"事情刚起步会乱,先把基础扎稳"},山水蒙:{meaning:"蒙昧待启,问道则通",scene:"信息不全时先请教,不要硬闯"},水天需:{meaning:"等待时机,不可冒进",scene:"条件没齐,耐心等一等反而快"},天水讼:{meaning:"争讼之象,宜和解",scene:"有分歧先谈,别把关系推上对抗"},地水师:{meaning:"用众之道,纪律为先",scene:"靠团队成事,规矩要立在前"},水地比:{meaning:"亲附相辅,择善而从",scene:"选对合作对象,比单打独斗重要"},风天小畜:{meaning:"小有积蓄,力量未充",scene:"先攒资源,暂不大举投入"},天泽履:{meaning:"循礼而行,如履虎尾",scene:"按规则走,谨慎就不会出事"},地天泰:{meaning:"上下交泰,通达和顺",scene:"沟通顺畅,是推进的好时候"},天地否:{meaning:"阴阳不交,闭塞不通",scene:"卡住时先停下来,别硬顶"},天火同人:{meaning:"与人同心,众志可成",scene:"找同频的人一起做,事半倍"},火天大有:{meaning:"丰盛富有,如日中天",scene:"收获可观,记得分享与收敛"},地山谦:{meaning:"谦逊受益,卑以自牧",scene:"放低姿态,反而更容易被接纳"},雷地豫:{meaning:"悦乐振奋,顺势而动",scene:"士气高,适合启动与造势"},泽雷随:{meaning:"随时而动,择善而随",scene:"跟随大势走,别拧着来"},山风蛊:{meaning:"积弊待治,破而后立",scene:"旧问题该清一清了,别拖"},地泽临:{meaning:"居高临下,督导亲近",scene:"亲自盯一盯,效果比放手好"},风地观:{meaning:"观仰教化,观察而明",scene:"先看清楚再表态"},火雷噬嗑:{meaning:"咬合去梗,明断是非",scene:"障碍要正面处理,绕不过去"},山火贲:{meaning:"文饰之美,适度为宜",scene:"包装有用,但别盖过实质"},山地剥:{meaning:"剥落衰败,宜守不宜进",scene:"在消耗期,止损优先"},地雷复:{meaning:"一阳来复,去而复返",scene:"转机回来了,可以小步重启"},天雷无妄:{meaning:"不妄为,守正即吉",scene:"按本分做,别投机"},山天大畜:{meaning:"大有蓄养,厚积待发",scene:"积累期,学东西最有价值"},山雷颐:{meaning:"养正自守,节饮食慎言语",scene:"养身体、养口碑,别透支"},泽风大过:{meaning:"过甚有险,栋梁将折",scene:"担子太重,该减负或加固"},坎为水:{meaning:"重险叠至,惟诚可济",scene:"困难接连来,稳住心神最要紧"},离为火:{meaning:"附丽光明,柔顺守中",scene:"借助光亮的东西,别孤军奋战"},泽山咸:{meaning:"感应相和,男女相悦",scene:"情感互动顺畅,宜真诚表达"},雷风恒:{meaning:"恒久不易,持之则成",scene:"长期坚持才有结果"},天山遁:{meaning:"退避为智,以退为进",scene:"适时抽身,不是认输"},雷天大壮:{meaning:"阳刚壮盛,宜正不宜猛",scene:"气势足,但别用力过猛"},火地晋:{meaning:"晋升初进,如日上升",scene:"有上升机会,主动争取"},地火明夷:{meaning:"光明受掩,韬光养晦",scene:"暂时低调,保存实力"},风火家人:{meaning:"内治为先,各安其位",scene:"先把身边人和日常安顿好"},火泽睽:{meaning:"睽违背离,同中有异",scene:"意见不合是常态,求同存异"},水山蹇:{meaning:"蹇难阻滞,宜反身修德",scene:"走不通就绕,回头补短板"},雷水解:{meaning:"险难消解,宜速不宜缓",scene:"结打开了,趁势把事办了"},山泽损:{meaning:"损己益人,损中有得",scene:"先让一点,后面有回报"},风雷益:{meaning:"增益利民,顺势施为",scene:"投入会有产出,可以加码"},泽天夬:{meaning:"决而去之,果决除弊",scene:"该断的事果断断,别拖泥带水"},天风姤:{meaning:"不期而遇,柔遇刚",scene:"有意外的人或机会出现"},泽地萃:{meaning:"聚合众力,物以类聚",scene:"聚人聚资源的时候到了"},地风升:{meaning:"积小以高大,循序上升",scene:"一步一步往上走,别跳级"},泽水困:{meaning:"困穷待援,安贫守正",scene:"资源受限时先守住基本盘"},水风井:{meaning:"井养不穷,修井得清",scene:"把现有的渠道维护好"},泽火革:{meaning:"革故鼎新,时至则变",scene:"该改就改,时机已经到了"},火风鼎:{meaning:"鼎新烹饪,稳重得位",scene:"新格局已立,按新规矩办"},震为雷:{meaning:"震惊百里,惧而后安",scene:"突发变动会来,先稳住再应对"},艮为山:{meaning:"止其所止,静而定",scene:"该停就停,停下来才看得清"},风山渐:{meaning:"渐进有序,如鸿渐于陆",scene:"慢慢来反而到得快"},雷泽归妹:{meaning:"归嫁失序,宜守本分",scene:"关系里别越位,按本分处"},雷火丰:{meaning:"丰大光明,宜及时施为",scene:"盛时要做事,别浪费势头"},火山旅:{meaning:"旅居在外,谨慎自守",scene:"处在变动环境,低调稳当些"},巽为风:{meaning:"顺入以柔,申命行事",scene:"用柔的方式渗透,别硬碰"},兑为泽:{meaning:"喜悦相悦,朋友讲习",scene:"多交流多请教,气氛是好的"},风水涣:{meaning:"涣散离散,宜聚人心",scene:"人心散了,先把共识找回来"},水泽节:{meaning:"节制有度,苦节不可",scene:"设边界、控节奏,别过头"},风泽中孚:{meaning:"诚信居中,信则人任",scene:"诚意是当下最有效的通行证"},雷山小过:{meaning:"小事可过,大事不可",scene:"细节可以灵活,大方向别偏"},水火既济:{meaning:"事已成,慎终如始",scene:"做成之后更要防松懈"},火水未济:{meaning:"事未成,慎辨慎行",scene:"还差一步,别急着庆祝"}},me=Object.fromEntries(Object.keys(se).map(z=>[z.length>2?z.slice(2):z.slice(0,1),z]));return{TRIGRAM:Y,YAO_POSITION:A,MOVING_NATURE:Se,HEX64:se,HEX_BY_CORE:me,ZIWEI_STARS:{紫微:{trait:"有主见、重体面,习惯站在统筹的位置",work:"适合需要拍板与统筹的岗位,管理、政务、项目负责一类",love:"在关系里需要被尊重,慢热但认真",health:"留意血压与作息紊乱"},天机:{trait:"脑子转得快,兴趣多、想法多",work:"适合策划、技术、咨询、研发一类动脑的岗位",love:"容易被有趣的人吸引,需要精神共鸣",health:"思虑多,留意神经紧张与睡眠"},太阳:{trait:"外放热心,愿意付出、也愿意被看见",work:"适合对外型岗位,教学、销售、公关、公益一类",love:"主动付出型,注意别一厢情愿",health:"留意心血管与用眼过度"},武曲:{trait:"务实、讲效率,认结果不认空话",work:"适合金融、财务、工程、执行类岗位",love:"感情表达偏实在,用行动多于言语",health:"留意呼吸系统与过劳"},天同:{trait:"温和好相处,重感受,凡事求舒服",work:"适合服务、文职、教育、文创一类低对抗的岗位",love:"需要陪伴感,容易被温柔的人打动",health:"留意免疫力与情绪性不适"},廉贞:{trait:"细腻又较真,审美与原则都在意",work:"适合需要精细度的岗位,法务、审计、设计、医疗一类",love:"感情投入深,也容易较劲",health:"留意炎症与情绪郁结"},天府:{trait:"稳重可靠,善于守成与资源调度",work:"适合行政、财务、运营、仓储一类守盘型岗位",love:"倾向稳定长久的关系",health:"留意体重与消化负担"},太阴:{trait:"内敛敏感,心思细,重安全感",work:"适合研究、文案、财务、艺术一类安静专注的岗位",love:"慢热、重细节,需要被照顾到感受",health:"留意睡眠与内分泌节律"},贪狼:{trait:"好奇心强、人缘好,兴趣广泛",work:"适合业务、市场、传媒、跨界的开拓型岗位",love:"桃花偏旺,需要自己划清边界",health:"留意肝火与作息不规律"},巨门:{trait:"善于分析,也容易多疑,嘴上功夫好",work:"适合法务、教学、咨询、谈判一类靠口才与逻辑的岗位",love:"容易因多想而生误会,宜多说清楚",health:"留意口腔、呼吸道与思虑过度"},天相:{trait:"讲规矩、重协调,习惯做辅佐者",work:"适合秘书、执行、协调、后勤一类支撑型岗位",love:"关系里偏迁就,需要学会表达需求",health:"留意皮肤与免疫波动"},天梁:{trait:"有长者气,爱操心、乐意帮人",work:"适合教育、医护、公益、顾问一类助人的岗位",love:"照顾型伴侣,别把对方当孩子",health:"留意慢病管理与过劳"},七杀:{trait:"果断敢冲,抗压但容易硬碰硬",work:"适合开拓、销售、创业、外勤一类高挑战岗位",love:"感情来得快,需要留给对方缓冲",health:"留意意外伤害与旧伤复发"},破军:{trait:"喜新厌旧,敢破敢立,不走老路",work:"适合变革、创业、项目从零到一的岗位",love:"感情变动偏多,稳定需要共同目标",health:"留意泌尿与外伤"}},WUXING_INDUSTRY:{木:"教育培训、出版撰稿、文职行政、农林园艺、中医药、服装与设计、文创",火:"互联网、传媒影视、能源电力、餐饮与品牌、演艺传播、电子科技",土:"地产建筑、物业管理、行政人事、农业种植、供应链仓储、财会",金:"金融银行、法律法务、机械制造、审计风控、医疗器械、军警安保",水:"物流贸易、咨询顾问、传媒公关、旅游出行、科研水产、信息技术"},WUXING_ORGAN:{木:{part:"肝胆、筋骨",note:"情绪疏泄与久坐久视是主要负担"},火:{part:"心脏、小肠、血脉",note:"睡眠节律与情绪起伏最需留意"},土:{part:"脾胃、肌肉",note:"饮食规律与消化吸收是关键"},金:{part:"肺、大肠、呼吸道与皮肤",note:"空气质量与换季是敏感点"},水:{part:"肾、膀胱、内分泌与腰膝",note:"过劳与熬夜最先反映在这里"}},TENGOD_STYLE:{正官:"守规矩、重名分,适合在成体系的组织里按规则上升",七杀:"抗压敢拼,适合高挑战、需要快速决断的岗位",正财:"稳定务实,适合按劳取酬、积累型的路径",偏财:"善抓机会、人脉广,适合业务、投资、资源整合类",食神:"表达与创造见长,适合技术、创作、教育一类",伤官:"想法多、不服旧规,适合改革、创业、专业创意",正印:"学习力强、有耐心,适合研究、文教、需要资质的岗位",偏印:"偏门钻研,适合冷门专业、技术深耕",比肩:"独立能扛,适合并肩作战或独立负责一块",劫财:"行动快、竞争心强,适合业务冲刺型工作"},LIUREN_JIANG:{贵人:"贵人、助力、被提携",螣蛇:"缠绕、反复、惊扰不定",朱雀:"口舌、文书、消息是非",六合:"合作、契约、和合之事",勾陈:"牵绊、拖延、纠缠难断",青龙:"喜庆、财禄、顺利推进",天空:"虚空、不实、计划落空",白虎:"压力、病丧、突发阻碍",太常:"衣食、常规、平稳运行",玄武:"暗昧、失物、信息不明",太阴:"隐秘、暗中助力、私下的事",天后:"女性、恩泽、情感与照料"},DISCLAIMER:"以上解析由本插件依据你提供的出生信息(或起卦时刻)按传统命理规则生成,属文化娱乐与自我觉察的参考,不构成医疗、心理、投资、法律或人事决策的依据。涉及健康请咨询医生,涉及重大决定请以现实信息与专业人士意见为准。",TAROT_ELEMENT_FOCUS:{火:{area:"行动力与热情",advice:"把能量投到一件具体的事上,别同时开太多头"},水:{area:"情感与关系",advice:"先照顾好感受,再谈效率"},风:{area:"思考与沟通",advice:"把想法写下来,与相关的人说清楚"},土:{area:"现实与资源",advice:"落实成可执行的步骤,写明时间和预算"}}}})(),V["interpret-plain"]=(function(){const Y=(n,m="")=>n==null||n===""?m:String(n),A=n=>Array.isArray(n)?n.filter(Boolean).join(""):"",Se=n=>Array.isArray(n)?n.length>0:n!=null&&n!=="",se={身强:"底子偏足、抗压能力好,但容易自己给自己加码,学会收力比使劲更重要",偏强:"底子略足,扛得住事,也容易把事都往自己身上揽",中和:"力量比较匀,属于「给什么环境就长出什么样子」的类型",偏弱:"底子偏薄,靠外部支援比硬扛有效,选对圈子与节奏很关键",身弱:"底子偏薄,先修恢复力再谈冲刺,硬撑的性价比最低"},me={六冲卦:"这一卦是「六冲」,事情起落快,急事反而好办,拖久了的人事容易散。",六合卦:"这一卦是「六合」,容易谈成,也容易黏住不放。",变六冲:"往下走会散,收尾别拖。",变六合:"往下走会合,事情倾向于延续下去。",内卦伏吟:"事情卡在原地打转,想动但动不了。",外卦伏吟:"外面那层没变,看起来在动,其实格局照旧。",内卦反吟:"反复在自己这一头,改了又改回来。",外卦反吟:"外面反复,对方或环境会来回拉扯。",化进神:"有一爻在往上走,顺着这股劲推比往回拉顺。",化退神:"有一爻在往后退,别按原来的势头硬推。"},B={可出:"眼下的条件算是有助无压,属于「出得来」的一档——这是条件,不等于马上应验。",有助有压:"眼下是一边有助、一边有压,出得来,但得费点劲。",受压难出:"眼下被上面的力量压着,不太容易露头,先别急着硬推。",未得助:"眼下暂时没借到力,还得等条件转过来。",飞伏未知:"飞伏关系看不全,这一层先不下判断。"};function U(n,m){if(!n||!n.liuqin)return"";if(n.found.length){const S=n.found.map(_=>`第${_.position}爻`).join("、"),p=n.found.some(_=>_.moving),j=n.byShi?"代表你自己":`就是「${n.liuqin}」这一类事`;return`你问的这件事,在卦里对应${S}${j}——${p?"这一爻还在动,说明事情正在推进":"这一爻没动,先按现状看"}。`}if(n.fushen.length){const S=n.fushen[0],p=m&&Array.isArray(m.items)?m.items.find(_=>_.position===S.position):null,j=p?` ${B[p.verdict]||""}`:"";return`你问的这件事,卦面上没有直接露出来,得往深处找:它藏在第${S.position}爻下面(伏神),与上面的关系是「${S.relation||"—"}」,要借力才出得来。${j}`}return""}function c(n){if(!n||!n.lines||!n.lines.length)return"";const m=n.lines.filter(j=>/死|囚/.test(j.monthState)||j.monthChong),S=n.lines.filter(j=>/旺|相/.test(j.monthState)),p=n.month&&n.month.branch?`眼下这阵子(${n.month.branch}月)`:"起卦这段日子";return m.length&&!S.length?`${p}对这件事不太帮忙,气有点被压着——先别急着硬推,等风向转。`:S.length&&!m.length?`${p}对这件事是帮着的,气正在往上走,能推就趁现在。`:`${p}对这件事有帮有压,一半的力要自己挣——结果更看你怎么走。`}function q(n){const m=n&&n.jinTuiPower;if(!m||!Array.isArray(m.lines)||!m.lines.length)return"";const S=p=>p.verdict==="后劲足"?"时令托着,后劲足":p.verdict==="后劲有限"?"时令不太托,后劲有限":p.verdict==="进得虚"?"时令最背,进也是虚进":p.verdict==="退得缓"?"时令还托着,退得慢":p.verdict==="退得实"?"时令也不托,退得实":p.verdict==="月破失据"?"又正好逢月破,进退都站不稳":"缺月建,先只当方向看";return`动爻的进退还要看时令:${m.lines.map(p=>`${p.position}爻${p.from}→${p.to}${p.type},${S(p)}`).join(";")}。`}function P(n){const m=n&&n.yingqi;if(!m||!Array.isArray(m.triggers)||!m.triggers.length)return"";const S=m.tempo==="偏速"?"大体偏近,近事更容易先见分晓":m.tempo==="偏缓"?"大体偏远,别指望立刻见分晓":m.tempo==="待解"?"眼下还有月破或旬空,得先等条件解除":"缺月建,快慢暂不定",p=m.triggers.map(_=>_.branch).join("、"),j=m.viaFushen?"(用神是伏神,先要出得来)":"";return`应期上${S};传统会留意${p}这几个地支${j}——这只是提示,不换算成具体哪天。`}function N(n){if(!n||!n.counts)return"";const m=(n.counts.旺||0)+(n.counts.相||0),S=(n.counts.囚||0)+(n.counts.死||0),p=n.month&&n.month.branch?`按${n.month.branch}月这段时令看`:"按起卦这天看",j=n.shi&&n.shi.monthState!=="unknown"?`代表你的世爻在${n.shi.monthState}`:"";return m>=4&&S===0?`${p},整张卦六爻的气多数是顺的,${j},眼下算是好推的时候。`:S>=4&&m===0?`${p},整张卦六爻的气多数被压着,${j},这几天更适合等而不是冲。`:`${p},整张卦六爻有顺有逆(旺相 ${m} 爻、囚死 ${S} 爻)${j?`,${j}`:""},成不成要看具体哪一爻在动。`}function L(n){if(!n||!Array.isArray(n.targets))return"";const m=n.targets.find(p=>p.count>=2),S=n.groups&&n.groups.selfHua&&n.groups.selfHua.length?"其中有的宫自己化出去又落回自己,容易表现为「想得多、落得少」。":"";return m?`把命宫连同对宫与两个三合宫一起看,${m.incoming.length} 股力最后挤在「${String(m.palace).replace(/宫$/,"")}」这件事上——这件事会把好几个方面的劲都吸过来。${S}`:`把命宫连同对宫、两个三合宫一起看,四股力飞出去没有挤到同一处,这几件事之间牵连不深。${S}`}function z(n){const m=_=>Object.keys(me).find(ce=>_===ce||_.startsWith(`${ce} `))||"",S=n.find(_=>m(_)),p=S?me[m(S)]:"",j=n.filter(_=>_!==S&&/^化[进退]神 /.test(_)).map(_=>me[m(_)]).filter(Boolean);return p+j.join("")}const g={wealth:"「工作与职业选择」与「时间窗」",career:"「事业发展」与「时间窗」",love:"「爱情与感情」",health:"「健康状况」",study:"「事业发展」与「时间窗」",travel:"「整体运势」与「时间窗」",general:"「整体运势」与「看盘顺序」"};function $e(n,m,S={}){if(!n||!n.system)return"";const p=Y(m&&m.question).trim(),j=m&&m.direction||"general",_=n.system==="bazi"?g[j]||g.general:"下面与你的问题最贴近的那一节",ce=p?`你问的是「${p}」。`:"";if(n.system==="bazi"){const be=n.dayMaster||{},Ae=n.strength||{},h=n.frame&&n.frame.yongshen||{},v=A(h.favor),le=A(h.avoid),ae=Array.isArray(h.neutral)&&h.neutral.length?`(其中${h.neutral.map(E=>E.element).join("、")}在命局里几乎没有分量,算中性偏忌,不必刻意避)`:"",je=(n.liunian||[])[0],ge=[ce+`先说结论:你是${Y(be.stem)}${Y(be.element)}日主,命局${Y(Ae.level,"待定")}${v?`,顺${v}、忌${le}${ae}——往${v}的方向安排事情会更省力`:""}。`,je&&je.ganzhi?`${Y(je.year)} 年是${je.ganzhi}年(${Y(je.luck&&je.luck.tier,"平")}),这是「大环境」这一层。`:"",`具体到你问的这件事,重点看${_}。`];return p||(ge[ge.length-1]=`没指定问题,就按${_}的顺序往下看。`),ge.filter(Boolean).join("")}if(n.system==="ziwei"){const be=n.soul||{},Ae=n.body||{},h=n.bureau||{},v=n.lifeMaster||"",le=n.flyChains&&n.flyChains.忌,ae=le&&le.steps.length?`还有一条线值得留意:${le.path.map(je=>je.replace(/宫$/,"")).join(" → ")}——这几件事在你身上是连着转的,一件卡住,容易牵动下一件。`:"";return[ce+`先说结论:你的命宫落${Y(be.branch,"—")}宫${h.name?`、${h.name}`:""}${v?`,命主${v}`:""}${Ae.lands?`,身宫落在「${Ae.lands}」——这张盘的重心在这件事上`:""}。`,ae,L(n.flyComposite),p?`具体到你问的这件事,重点看${_}。`:`没指定问题,就按${_}的顺序往下看。`].filter(Boolean).join("")}if(n.system==="liuyao"){const be=n.ben||{},Ae=n.cast&&n.cast.movingPositions||[],h=n.bian||{},v=n.body&&Array.isArray(n.body.labels)?n.body.labels:[],le=z(v);return[ce+`先说结论:本卦是${Y(be.name,"—")}${be.palace?`(${be.palace})`:""}${Ae.length?`,第 ${Ae.join("、")} 爻动,变为${Y(h.name,"—")}`:",六爻安静没有动爻"}。${le}${U(n.useGod,n.fushenAccess)}${c(n.useGodStrength)}${q(n)}${P(n)}${N(n.hexStrength)}`,"断卦的落点在「世爻」(代表你)和「动爻」(事情的推动点),下面「看盘顺序」就按这个次序展开。"].join("")}return ce?`${ce}下面按五个维度拆开看,重点看${_}。`:n.system==="qimen"?`下面按排盘事实、用神、宫位条件几节展开${j!=="general"&&m&&m.directionLabel?`,取「${m.directionLabel}」方向的用神`:""}。`:j!=="general"&&m&&m.directionLabel?`下面按五个维度拆开看,重点看与「${m.directionLabel}」方向最贴近的那一节。`:"下面按五个维度拆开看,没指定问题,就从头依次读。"}function G(n,m,S={}){if(!n||!n.system)return"";if(n.system==="bazi"){const p=n.strength||{},j=n.frame&&n.frame.yongshen||{},_=A(j.favor),ce=A(j.avoid),be=Array.isArray(j.disputed)&&j.disputed.length?`有一点要说明:${j.disputed.map(ae=>ae.element).join("、")}在扶抑里算${j.disputed.map(ae=>ae.favorRole).join("、")}(能${j.disputed.map(ae=>ae.favorVerb).join("、")}),按调候看又偏忌(${j.disputed.map(ae=>`${ae.climate}盘忌${ae.element}`).join("、")}),两派说法不一;实际用在什么时候,看季节和环境取舍,不必当成绝对的好或坏。`:"",Ae=se[p.level]||"力量偏中性",h=j.tiaohou&&j.tiaohou.note?`另外,${j.tiaohou.note},所以「暖一点、亮一点」的环境通常更舒服。`:"",v=(n.liunian||[]).find(ae=>ae.suiyun&&Array.isArray(ae.suiyun.signals)&&ae.suiyun.signals.length),le=v?`再往后看,${v.year} 年${v.ganzhi}是${v.suiyun.signals.map(ae=>ae.type).join("、")}——传统上把它当作「变化感强一点」的提示,既不是好消息也不是坏消息,遇上时多留个心眼就好。`:"";return`你的命局属于「${Y(p.level,"中性")}」:${Ae}。${_?`能补${_}的环境(行业、方位、作息、相处的人)会让你省力;${ce?`而${ce}偏重的场合容易空耗,能绕就绕。`:""}`:""}`+be+h+le}if(n.system==="ziwei"){const p=n.body||{},j=n.flyChains&&n.flyChains.忌,_=j&&j.steps.length?"你身上有个绕不开的规律:几件事是连着转的,一件卡住,后面就跟着慢下来。":"",ce=n.flyComposite,be=ce&&Array.isArray(ce.targets)?ce.targets.find(v=>v.count>=2):null,Ae=!ce||!Array.isArray(ce.targets)?"":be?`再往深一层,四股力最后也压在「${String(be.palace).replace(/宫$/,"")}」上——几个方面的劲都往这儿聚。`:"再往深一层,四股的力没有全挤到一处,这几件事之间牵连不深。";return["紫微讲的是「你与环境怎么互动」,不是谁好谁坏——同一件事换个环境、换个人配合,结果就不一样。",p.lands?`真正让你上心的,多半是「${p.lands}」这件事,做别的总会分心。`:"",_,Ae].filter(Boolean).join("")}if(n.system==="liuyao"){const p=n.ben||{},j=n.cast&&n.cast.movingPositions||[],_=n.body&&Array.isArray(n.body.labels)?n.body.labels:[],ce=z(_);return`${Y(p.name,"这一卦")}讲的是一个「${j.length?"正在动、还会变":"暂时不动、先看清"}」的局面——${j.length?"有动爻,说明事情还有转圜空间,不是死局。":"六爻安静,说明当下更该观察而不是硬推。"}${ce}${U(n.useGod,n.fushenAccess)}${c(n.useGodStrength)}${q(n)}${P(n)}${N(n.hexStrength)}`}return""}function J(n,m,S={}){if(!m||m.system!=="bazi")return"";const p=m.frame&&m.frame.yongshen||{},j=A(p.favor),_=A(p.avoid),ce=m.strength||{};return n==="overall"?`一句话:底子${Y(ce.level,"中性")},往${j||"有利方向"}走省力。`:n==="work"?`一句话:挑${j||"喜用"}属性的活儿,比硬碰${_||"忌神"}省力。`:n==="career"?`一句话:你的上升方式,偏向把${j||"长处"}做成看得见的成果。`:n==="love"?"一句话:关系里先看清自己要什么,再决定推进速度。":n==="health"?"一句话:作息稳定比任何调理都优先。":""}const k=[["日主","你出生那天对应的天干,代表「你自己」,整张盘都围着它转。"],["用神","这张盘里最需要补的那一类力量,顺着它做事更省力。"],["忌神","补得越多越别扭的那一类力量,不是坏东西,只是对你性价比低。"],["调候","按出生季节调温补缺:冬天的盘怕冷,夏天的盘怕燥。"],["格局","把整张盘的结构归成一个类型,用来看「你适合怎么打」。"],["十神","把五行关系翻译成人事:财=资源、官杀=规则与压力、印=支持、食伤=表达、比劫=同伴。"],["月令","出生的月份,是判断强弱最关键的一个位置。"],["日支","日柱的地支,也叫「配偶宫」,看亲密关系的第一落点。"],["大运","十年一换的大阶段,决定这十年顺不顺手。"],["流年","每一年的干支,看当年的具体环境。"],["空亡","落到空亡的字,力量打折,事情容易「看着有、抓不住」。"],["伏神","卦里没出现的六亲,藏在同宫首卦的对应爻下,用时才看得见。"],["世应","世爻代表你,应爻代表对方或外部环境。"],["动爻","会变的爻,是事情「往哪走」的推动点。"],["纳甲","给六个爻配上天干地支,六亲与生克才有依据。"],["四化","禄权科忌四种变化,标记星曜在这一步运里扮演什么角色。"],["大限","紫微里的十年阶段,作用类似八字的「大运」。"],["庙旺","星曜落在某宫时的力量档位:庙、旺最强,得、利、平居中,不、陷最弱。"],["三方四正","从命宫出发的三合三方加对宫,共四个宫位,是全盘最核心的势力范围。"],["命主","紫微里另有一颗命主星,补命宫看不到的那一层底色。"],["身主","紫微里另有一颗身主星,管后天的行动与身体那一面。"],["五行局","用纳音给整张盘定一个局(水二局、木三局等),大限的起法以此为准。"],["自化","宫干让本宫星曜自己生出四化,代表这一宫的事容易自己发酵。"],["飞星","拿一个宫的宫干去四化别的宫,看事情从哪来、往哪走。"],["正曜","十四主星。「无正曜」指命宫没有主星,要借对宫来看。"],["借对宫","命宫无主星时借对宫主星来读,性格更依赖环境与身边的人。"],["双星","两主星同宫,按组合读,不能只看其中一颗。"],["墓库","地支里的仓库。五行入墓代表这股力量收着,不是没有。"],["伏吟","干支重复出现,事情容易原地打转、反复。"],["反吟","天克地冲,变动与对撞的意味更明显。"]],T={liuyao:{用神:"你问的这件事对应的那一类六亲,断卦先把它找出来。",月令:"起卦时的月份,用来看各爻旺不旺。",日支:"起卦当天的地支,与月建一起决定爻的力量。",大运:"六爻不看大运,这里只取当前这一件事的象。",流年:"六爻一般不看流年,看的是眼下这一卦的时段。"},ziwei:{用神:"紫微斗数以「用神宫」的强弱看事情,不取五行喜忌那套。",日主:"紫微斗数不看日主,看的是命宫与星曜组合。",十神:"紫微斗数用四化与星情,不用十神。"}};function s(n,m){const S=(Array.isArray(n)?n:[n]).filter(Boolean).join("");if(!S)return[];const p=T[m]||{};return k.filter(([j])=>S.includes(j)).map(([j,_])=>({term:j,plain:p[j]||_})).slice(0,10)}const t={career:["这份工作要不要动,明年哪几个月是窗口?","和上级的关系该硬碰还是绕开?","现在转方向,代价主要在哪儿?"],wealth:["这笔钱现在投出去合适吗?","我的财主要来自工资还是副业?","今年哪段时间最容易破财?"],love:["这段关系能走到哪一步?","什么时候适合把关系定下来?","我在关系里最容易忽略什么?"],health:["哪段时间身体最需要留意?","作息怎么调最划算?","查体和作息之外,还有什么是能自己控制的?"],study:["今年再考一次,胜算在哪、短板在哪?","复习节奏该怎么排?","要不要换目标院校或岗位?"],travel:["这次出门顺不顺,哪天走更好?","换个城市生活,合不合适?"],general:["今年最该抓的一件事是什么?","最该避开的坑在哪?","接下来三个月,什么时间点值得留意?"]};function d(n,m){const S=m&&m.direction||"general";return(t[S]||t.general).slice(0,3)}return{buildAnswer:$e,buildPlain:G,dimensionPlain:J,buildGlossary:s,buildFollowups:d}})(),V["interpret-knowledge"]=(function(){const Y=[{id:"bazi-yueling-siquan",system:"bazi",dims:["overall","career"],gist:"月令不是「一个月」,是当月最有权的那一个字。",detail:"月令藏干按本气、中气、余气分日用事,本气当权的时间最长。所以判旺衰先看日主在月令是得令还是失令——得令者未看全局,已有三分底气。本插件按 30 日表算出「生在本月第几日、哪一干当权」,给的是月内轮值这一层细节;旺衰与取格仍以月令本气、透干与会支为主,不随轮值改判。三命通会卷二·论人元司事另列一套日数(寅月五日/五日/二十日),与本插件取的通行表不同;原文并列,不改判。",source:"《子平真诠》论用神;人元司权分日之说见《渊海子平》;三命通会卷二·论人元司事(典藏网 7529)另列一套日数",status:"variant",note:"各家对中气、余气各主几日分法不同(有 7/7/16、9/3/18 等多说);本插件固定通行 30 日表(如寅月戊7丙7甲16),节当日为第 1 日,第 31 日以后按本气算、不硬分摊。三命通会此本寅月作 5/5/20、卯月作 7/23,与通行表不同,两表各照原样。司权表与本柱藏干表口径不同(子月壬、卯月甲、午月丙、酉月庚、亥月戊只出现在司权表里),两表各照原样;取格不随轮值改判。"},{id:"bazi-tonggen-tougan",system:"bazi",dims:["overall","career"],gist:"天干是露在外面的样子,地支是藏在地下的根。",detail:"同一个五行,透在天干叫「显」,扎在地支叫「有根」。只有天干没有地支,是看着有、使不上劲;只有地支不通天干,是有实力、不显眼。判断一个人能不能扛事,看的就是根有多深。",source:"《滴天髓·干支总论》「天全一气,不可使地德莫之载;地全三物,不可使天道莫之容」",note:"常被署给《滴天髓》的「地支所藏之干,本静以待用,透出干头,则显其用矣。故干以通根为美,支以透出为贵」,出自《子平真诠》卷一论十干十二支的注文——滴天髓底本与沈孝瞻原文里都查不到这句,注文自己引的才是上面那句滴天髓。所以本卡引可核的原文,注文只作说明。",status:"settled"},{id:"bazi-wangxiang",system:"bazi",dims:["overall","health"],gist:"旺相休囚死是五行在当月的五种状态,不是吉凶等级。",detail:"以月令五行为基准:当令者旺、我生者相、生我者休、克我者囚、我克者死。它是「此刻谁说话有分量」的相对排序,换个季节就整体重排,不能当固定评价。",source:"《五行大义》旺相休囚死;历代命书沿用",status:"settled"},{id:"bazi-shensha",system:"bazi",dims:["overall","love"],gist:"神煞是标签,不是判决。",detail:"神煞给盘面加注脚(如「这个组合常被叫作天乙贵人」),吉凶仍要看格局、旺衰、行运三件事。单见一颗凶煞不足以断凶,单见一颗吉星也不足以断吉——这是历代命书反复强调、而市面软件常忽略的一条。《滴天髓·女命章》说得更直接:「三奇二德虚好语,咸池驿马半推详」——三奇、二德是空口说好话,咸池、驿马顶多参考一半。",source:"《三命通会》神煞篇;《滴天髓·六亲论·女命章》贬神煞语;《子平真诠》力主「神煞不主吉凶」",status:"settled"},{id:"bazi-geju",system:"bazi",dims:["career"],gist:"先看月令能不能取格,取不到才论从格、化气。",detail:"月令有可用之神(透干或会支有力),按正格论;月令无用、全局一边倒,才考虑从格;日干与相邻天干五合、且月令有化神之气,才论化气格。顺序颠倒会把普通格局误判成特殊格局。",source:"《子平真诠》「论用神」;从化条件见《滴天髓》",status:"variant",note:"化气格成立条件各家宽严不一(是否要求月令为化神、是否允许有根),本插件按「有合且月令得化神之气」从严处理。"},{id:"bazi-tiaohou",system:"bazi",dims:["overall","health"],gist:"冬夏生人先调温,其余先看扶抑。",detail:"调候是针对出生季节的温度校正:冬生水冷木寒,先要火来解冻;夏生火炎土燥,先要水来润泽。调候与扶抑冲突时,多数命书主张先调候,因为寒暖失衡时,再怎么补强弱也难受。",source:"《穷通宝鉴》(拦江网)调候用神体系",status:"variant",note:"调候与扶抑的优先级各家有争论,也有主张以扶抑为主、调候为辅的。本插件同时给出两者,不替你定谁优先。"},{id:"bazi-suiyun",system:"bazi",dims:["overall","career"],gist:"大运管十年基调,流年管当年触发。",detail:"大运像换了条路,流年像这条路上某一段的天气。岁运并临(当值大运与流年干支相同)、运年反吟(大运与流年天克地冲)、大运伏吟(大运与原局某柱干支相同)、大运反吟(大运与原局某柱天克地冲)、流年伏吟(流年与原局某柱干支相同)、流年反吟(流年与原局某柱天克地冲),是传统上标记「变动较大」的年份,属于提示而非断语。本插件逐年标出六类信号:当值大运按该年立春到次年立春的区间取,交运落在年内时前后两步并列;大运与本命四柱的伏吟/反吟整步大运都在,会连续多年重复列出;只标干支重复与对冲,不折分数。原文里「返吟」指岁运与日柱相对、「伏吟」指岁运压日,与本插件「干支相同为伏吟、天克地冲为反吟」不是同一套定义,两者并列、不合并。",source:"《三命通会》卷二·总论岁运(https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7539.html);岁运并临之说出自《渊海子平》",status:"variant",note:"「岁运并临主大凶」是流传最广也最被滥用的说法,本插件只作变动提示,不断吉凶;大运与本命四柱的伏吟/反吟会连续多年出现,不逐年加重;四柱十神层面的引化也未叠入。"},{id:"bazi-liuqin",system:"bazi",dims:["love"],gist:"六亲有「星」也有「宫」,两处一起看才立体。",detail:"星是十神(男命财为妻、女命官杀为夫、印为母一类),宫是四柱位置(年月日时对应祖上、父母、配偶、子女)。星宫同参:星现而宫破,缘分有但过程有阻;宫稳而星不现,关系平淡而少波折。",source:"星宫同参见《子平真诠》《滴天髓》",status:"variant",note:"女命以官杀为夫是主流,亦有以日支为主、官杀为辅的取法;本插件按主流取,并在文案中说明。"},{id:"bazi-kongwang",system:"bazi",dims:["overall"],gist:"空亡不是「没有」,是力道打折、抓不实。",detail:"日柱所在旬之外的两个地支为旬空。落空之支力量减弱,但逢冲、逢合、逢填实之期可以「出空」,届时又恢复作用。所以空亡要看它是否被救,不宜一见到空就断无。",source:"旬空出空之说见《渊海子平》;六爻《卜筮正宗》用法相通",status:"variant",note:"空亡是否逢空即空,各家分歧较大,本插件只标注空亡,不做吉凶推断。"},{id:"bazi-xingchong",system:"bazi",dims:["overall","love"],gist:"合能解冲,冲也能破合——关系不是单向的。",detail:"刑冲合害要按力的大小与先后比:两支相冲,若有第三支与其中一支相合,冲力被牵制;反之先合后冲,合局也会被冲散。三合成局通常要求月令或日主参与,否则只是拱合,力量有限。",source:"《三命通会》论刑冲合害",status:"settled"},{id:"bazi-sanming-duizhao",system:"bazi",dims:["overall","career"],gist:"同一个格,子平真诠讲怎么用,三命通会讲怎么取。",detail:"两书不是谁替代谁:子平真诠以月令取用神、论顺逆成败,重「用」;三命通会按十神逐格立论,重「取」与「忌」。同看正官格,前者问财印护官、伤煞混杂,后者先说「止许一位,多则不宜」。此本正财、偏财分章,两格各取本格一条;七杀没有单列「论偏官」,取卷五「官煞去留杂论」讲混杂时的去留。本插件把两条并列,不合并成一句断语。",source:"《子平真诠》论正官等篇;《三命通会》卷五、卷六论十神与官煞去留",status:"variant",note:"两书成书年代与流派不同,用语有出入;本插件照录通行本,不做校勘改字,也不替两家调和。"},{id:"bazi-geju-chengbai",system:"bazi",dims:["overall","career"],gist:"格有成有败:成中带忌会打折,败中有救还能转成。",detail:"月令取到格只是起点。成格要看有没有带忌——官逢财又逢伤、官透而被合、财旺生官又逢伤,都会把成格打折;败格也看有没有救应——印来解伤、合来清煞、劫来解财,败中可转。所以判格不能只报一个格名。",source:"《子平真诠》九、论用神成败救应",status:"variant",note:"各家对成格条件与带忌轻重的排序不同(有先看刑冲、有先看合化),本插件只把原文与成败方向并列摆出,不逐盘判成破。"},{id:"bazi-huagi-bianhua",system:"bazi",dims:["overall","career"],gist:"月令用神会因合化而变:同一个起点,取用可以不同。",detail:"用神本从月令取,但月令藏干不一,透出的字不同、支会合局不同,取用就跟着变:丁生亥月本为正官,支全卯未化为印;己生申月本属伤官,藏庚透壬化为财。所以看到化气格,要回头核对月令与合局,不能只按本气定格。",source:"《子平真诠》十、论用神变化;化气条件各家另论",status:"variant",note:"化气格成立条件各家宽严不一(是否要求月令为化神、日主是否允许有根),本插件只列条件、附原文,不据此断定化气已成。"},{id:"bazi-zaji-quyong",system:"bazi",dims:["overall","career"],gist:"辰戌丑未是杂气月:先看透干,再看会支。",detail:"四墓(辰戌丑未)每个字都藏着不止一气,用神不一,所以叫杂气。子平真诠的取法是:藏干透到天干的先用(甲生辰月,透戊用偏财、透癸用正印、透乙用月劫);没有透干,再看地支有没有与月支会成三合局(辰月逢申子会水,就取水印)。本插件按「透干 → 三合会支 → 本气」的次序取格,依据里写明走的是哪一条,并把《论杂气如何取用》附在结果里。",source:"《子平真诠》十六、论杂气如何取用",status:"variant",note:"原文说「兼透则兼用」,但只给一个格名时总要落到一个藏干;本插件只取最先透出的那一干,会支也只认三合、不认三会方,且不判原文所说的「有情 / 无情」,取舍次序各家另有说法。"},{id:"bazi-zhuanwang-yuanwen",system:"bazi",dims:["overall","career"],gist:"专旺五格各有专章:成格要看局全带印,不只看身强。",detail:"三命通会卷六曲直、炎上、从革、润下、稼穑五篇各立一格:曲直须亥卯未带亥,炎上须寅午戌带寅,从革须巳酉丑带丙丁巳午,润下须申子辰全,稼穑取四季土。原文的条件都比「身强」细:要局全、要带印或带火炼金,还要防冲刑死绝。本插件把命中的那一篇附在结果里,只作结构说明。",source:"《三命通会》卷六·曲直、炎上、从革、润下、稼穑",status:"variant",note:"专旺是否必须成方局、是否允许一点官杀财,各家宽严不一;原文五篇之间条件也不齐(润下重忌冲刑、稼穑重四季土)。本插件只按「同类+印 ≥5、官杀财皆弱」列出并附原文,不据此断贵贱,也不补专旺的破格条件。"},{id:"bazi-congge-yuanwen",system:"bazi",dims:["overall","career"],gist:"从格是身无归处才「弃命」相从:一见根气就破格。",detail:"三命通会卷五弃命从煞、卷六弃命从财各有一篇:从煞要煞重身柔、四柱无一点比肩印绶;从财要财会成局、日干无气,原文说「若逢根气,命损无猜」。两篇都说行运喜财煞旺地、忌扶身。本插件只在盘面出现从财格或从杀格时附上对应原文;从儿、从强没有单章,不硬凑。",source:"《三命通会》卷五·弃命从煞;卷六·弃命从财",status:"variant",note:"从格成立条件各家分歧很大:是否允许日主有微根、阴阳干从与不从(原文说阳木不能从)、从儿与从强算不算正从,说法不一。本插件只列结构与原文,不据此断吉凶,也不补从儿、从强的原文。"},{id:"bazi-tongguan",system:"bazi",dims:["overall","career"],gist:"两神相战要有中间一行接上,对峙才化成相生。",detail:"用神与忌神两行在局中各 ≥1.5 分、又正好相克时,五行里只有一行能接上:克方生它、它再生被克方(金克木则以水为关,土克水则以金为关)。滴天髓用织女、牛郎隔关相望作比,说「此关若通也,相邀入洞房」。本插件只按局中分量点出这一行,并写明它是不是忌神。",source:"《滴天髓》通神论·通关;五行生克为通行说",status:"variant",note:"各家对「两神相战」取哪两神不一(有取日主与官杀、有取用神与忌神、有取局中最旺两行),本插件固定取「用神与克它的忌神,且两行各 ≥1.5 分」;通关一行只按五行生克唯一确定,不据此断吉凶,也不判通关之力是否够用。"},{id:"ziwei-sanfang",system:"ziwei",dims:["overall","career"],gist:"看一个宫,要看它对面和左右三个宫。",detail:"三方四正=本宫加对宫、三合两宫。命宫的三方是财帛、官禄、迁移,代表钱、事、外出的环境;只看本宫会漏掉一半信息,因为紫微断的是宫与宫之间的互动,不是单宫星曜的堆叠。",source:"《紫微斗数全书》三方四正说",status:"settled"},{id:"ziwei-poge",system:"ziwei",dims:["overall","career"],gist:"格局成立不等于落定:三方四正见煞忌空劫,吉格也会破格。",detail:"《紫微斗数全书》论人命入格说「若居陷地又加杀化忌,为下格之命,不以入格而论也」;谈星要论也说「及命宫星辰庙旺,三方有恶星守照破格」。本插件因此把「成格」与「破格」分开判:吉格先按星位成立,再看命宫三方四正是否有擎羊、陀罗、火星、铃星、地空、地劫或化忌;有则标破格并写明是哪颗星落在哪一宫。忌格本身是风险结构,不另判破格。",source:"《紫微斗数全书》卷三·论人命入格、谈星要论",status:"variant",note:"破格判据本插件统一取「三方四正见煞忌空劫」,未逐格细分煞轻煞重;各派对「入格」宽严亦有异说,故只作结构提示。"},{id:"ziwei-sihua",system:"ziwei",dims:["overall","career"],gist:"四化是变化的方向,不是吉凶等级。",detail:"生年四化定先天基调(禄主得、权主掌、科主名、忌主执),宫干四化定后天演变;自化是宫干化出的星就在本宫,主此宫之事自己会起变化。同一个忌,落在六亲宫与落在财帛宫,含义完全不同。",source:"《紫微斗数全书》四化篇;宫干飞化见飞星派",status:"variant",note:"三合派重星情与格局、飞星派重宫干飞化,两派读法差异明显。本插件给出生年四化与宫干自化,未做完整飞星串连。"},{id:"ziwei-miaowang",system:"ziwei",dims:["overall"],gist:"庙旺得利平不陷,说的是星在这个宫舒不舒服。",detail:"同一颗星落在不同宫位,发挥程度差别很大。庙旺是得地,平陷是不得地;不得地不等于不好,只是这颗星的长处不容易发挥,需要借三方吉星来补。",source:"《紫微斗数全书》诸星庙旺表",status:"variant",note:"太阳、太阴在少数宫位的庙旺标注各家有出入;本插件只标十四主星,不硬标辅星。"},{id:"ziwei-daxian",system:"ziwei",dims:["career"],gist:"大限定十年主题,流年定当年事件。",detail:"大限看这十年主要在忙什么,流年看其中某一年被什么触发。两者的四化会叠在同一些宫位上,叠加处就是这十年里的关键点——只看流年而不看大限,容易把小事放大。",source:"《紫微斗数全书》大限流年篇",status:"settled"},{id:"ziwei-shengong",system:"ziwei",dims:["overall"],gist:"命宫是「你本来是谁」,身宫是「你后来把力气放在哪」。",detail:"身宫不独立成宫,而是寄在某一宫里(如寄财帛、寄官禄)。它标出中年之后的着力点:命宫强而身宫弱,多为主观强但落地慢;身宫得地,做事更容易见效。",source:"《紫微斗数全书》命身宫说",status:"variant",note:"身宫寄宫的取法各家一致,但身宫与命宫谁更重,各家侧重不同。"},{id:"ziwei-kongjie",system:"ziwei",dims:["overall","career"],gist:"空劫主计划外的变动,遇禄则财来财去。",detail:"地空地劫在紫微里代表落空与抽离:落财帛多主钱财不易积累,落官禄多主方向反复。若与禄存、化禄同宫,常见进得快、出得也快;与忌同宫则容易因变动而受挫。",source:"《紫微斗数全书》空劫条",status:"variant",note:"空劫是否见禄反吉,各家说法不一,本插件只提示变动性质,不判吉凶。"},{id:"ziwei-feixing",system:"ziwei",dims:["overall","career"],gist:"宫干定四化,星落哪宫,这一宫的力就往哪边走。",detail:"生年四化是先天带的,飞星四化是宫位自己去找的:每一宫的宫干定出禄权科忌四颗星,那几颗星落在哪一宫,就是这一宫的力气往哪边使。所以同一个「化忌」,从命宫飞出去和从财帛飞出去,说的是两件事。",source:"《紫微斗数全书》四化篇;中州派宫干四化传法",status:"variant",note:"飞星派(如钦天四化)把宫干四化当主线,三合派只作辅助;庚干四化各派另有异说,本插件取中州派常用表。飞星串连与三方四正复合飞化现已给出,但未叠大限流年四化。"},{id:"ziwei-sanfang-fei",system:"ziwei",dims:["overall","career"],gist:"三方四正一起飞,看四股力会到哪一宫。",detail:"单宫飞化只看本宫宫干把四化送去哪里;三方四正复合飞化把本宫、对宫与两个三合宫共四宫的宫干四化同时摊开,约 16 条,按落宫归堆,落到同一宫的就是会照。会在一处的化越多,那一宫被牵动的力道越集中;两忌以上会宫、禄忌同宫、三化以上会宫、宫干化出又落回本宫(自化),是这一层最常取的几种情形。",source:"《紫微斗数全书》四化篇;飞星派三方四正同飞说",status:"variant",note:"飞星派对「三方四正一起飞」是否成立、会照要不要折成分数,各家口径不一;本插件只做落宫归堆与会照标记,不折分数,也未叠大限流年四化。"},{id:"ziwei-jichuanji",system:"ziwei",dims:["overall"],gist:"忌转忌:化忌落进哪一宫,就从那一宫再化出去。",detail:"串连是跟着同一支化逐宫走:命宫化忌入父母,父母宫的宫干再化忌往下一宫,直到绕回走过的宫成环。环越短,越容易在同一组宫位上反复;走不出去(传统说「忌出不去」)不等于凶,只是这条力没有别的出口。",source:"《紫微斗数全书》四化篇;忌转忌串连法",status:"variant",note:"串连几跳为止、是否允许借对宫飞化,各派不一;本插件只跟单一支化逐宫走,走满 12 宫或成环即停。"},{id:"liuyao-yongshen",system:"liuyao",dims:["overall","work","wealth","love","health","study"],gist:"问什么就以哪一类六亲为用神,这一步定错,后面全盘白算。",detail:"取用按所问之事:求财与男命妻缘看妻财,工作职位考核看官鬼,文书合同学历看父母,健康以官鬼为病、子孙为医药,出行以世爻为用,感情男看妻财、女看官鬼。用神在卦上就取那一爻,出现两处记「两现」;用神不上卦,按本宫首卦同六亲的爻位取伏神,再看飞伏生克。本插件把这些位置与动变、旬空、卦体标签一一对上,但不替你选两现之中的主用。",source:"《卜筮正宗》用神章、伏神章;《增删卜易》用神章",status:"settled"},{id:"liuyao-wangshuai",system:"liuyao",dims:["overall"],gist:"月建管当令,日辰管生杀。",detail:"月建决定这一爻在这个月有没有气;日辰能生能克能冲能合,作用更直接。月破之爻当月无力;日冲则看动静——静爻被日冲为暗动,动爻被日冲为冲散。",source:"《卜筮正宗》月建日辰章",status:"settled"},{id:"liuyao-dongbian",system:"liuyao",dims:["overall"],gist:"动爻是「事情自己在动」的那一处。",detail:"动爻能生克静爻,静爻不能反克动爻。变爻对动爻有回头生、回头克两种反作用;化进神(如寅化卯)主加强,化退神(如卯化寅)主减弱。一爻独发看此爻,多爻乱动则看用神受不受伤。",source:"《卜筮正宗》动变章;《增删卜易》进神退神",status:"settled"},{id:"liuyao-fushen",system:"liuyao",dims:["overall"],gist:"用神不上卦,就去本宫首卦的同位取伏神。",detail:"本卦六爻里没有用神那一类六亲,就叫用神不上卦。取法是回到本卦所属宫的首卦(八纯卦),找出该六亲所在的爻位,那一爻即伏神,本卦同一爻位上的爻叫飞神。伏神要「得出」才有用:飞神生伏神、伏神克飞神、日月生扶都算得力;飞神克伏神则受压难出。本插件给出伏神爻位、干支五行、飞伏生克,并按月建日辰归成四档出伏条件(可出 / 有助有压 / 受压难出 / 未得助);只判条件,不出应期日期。",source:"《卜筮正宗》伏神章;《增删卜易》伏神篇",status:"variant",note:"首卦里同一六亲也可能出现两次(如乾宫乾为天的父母在三爻与上爻),此时取哪一爻为伏神各家不一;本插件把候选都列出并标「伏神两现」,不代选。出伏条件的归并口径:飞生伏、伏克飞、日辰生/比和、月建旺/相算助,飞克伏、日辰克、月破算压;有助无压为「可出」,有助有压为「有助有压」,有压无助为「受压难出」,两者都无为「未得助」。四档只并列条件、不排各家优先级;旬空只标出,不并入档位。应期各家分歧更大,仍不输出日期。"},{id:"liuyao-yongshen-shuai",system:"liuyao",dims:["overall","work"],gist:"用神旺不旺,看月建给的气与日辰当天的扶克。",detail:"月建管「这一段时令」:爻五行与月支五行同气为旺、受月令生为相、生月令为休、克月令为囚、被月令克为死。日辰管「当天这一股力」:日辰生爻为生、克爻为克、同气为比和,反过来则是爻泄日、爻耗日。此外月建冲爻叫月破,日辰冲静爻叫暗动、冲旬空之爻叫冲空。本插件把这几项折成标签逐爻列出,不折成分数。",source:"《增删卜易》月建章、日辰章;《卜筮正宗》月建论",status:"variant",note:"月破、暗动、冲空三者各家取法不完全一致(有派别把日冲动爻也叫暗动,有派别只认旺相之爻暗动);本插件按「月建冲=月破、日冲静爻=暗动、日冲旬空=冲空」这一套给标签,并注明用了哪一支月建。"},{id:"liuyao-quanggu-shuai",system:"liuyao",dims:["overall","work"],gist:"全卦逐爻看月建,才看得出气聚在哪一头。",detail:"月建管这一段时令的旺衰、日辰管当天的扶克,落到全部六爻逐爻判定:每爻都出月令五态(旺相休囚死)与日辰五关系,并标月破、暗动、冲空。世爻、应爻、动爻与旬空另标,五态分布能看出气是聚在世应还是散在旁爻——用神只是其中一处落点,不看全卦容易把一处当全局。",source:"《增删卜易》月建章、日辰章;《卜筮正宗》六爻旺衰论",status:"variant",note:"各家对月破、暗动、冲空的取法不完全一致,是否给六爻折力重(分数)分歧更大;本插件只给状态标签与五态分布,不折分数。"},{id:"liuyao-yingqi",system:"liuyao",dims:["overall","career"],gist:"应期是「什么时候见分晓」,不是「哪天」。",detail:"近事以日计、远事以月计;常见取法是等用神逢值、逢冲、逢合之期,或等忌神受制之期。本插件只做前一半:把用神(不上卦则取伏神)的逢值、逢冲、逢合三支列出,旬空另标出空与冲空,再按月建五态给「偏速 / 偏缓 / 待解 / 未定」一个快慢方向;忌神受制与具体日期仍未做。应期法各家互有出入,同一卦不同取法可以差出很远,所以只作时间窗口的提示。",source:"《卜筮正宗》应期章;《增删卜易》",status:"variant",note:"应期取法(值日、冲、合、填实、旬空出空)各家优先级不同,本插件只并列触发支、不排先后,也不换算日期;近事以日计、远事以月计,用哪把尺由事情远近决定,不代选。"},{id:"liuyao-liushen",system:"liuyao",dims:["overall","love"],gist:"六神是这件事的味道,不是主角。",detail:"青龙主喜庆与正事、朱雀主口舌与文书、勾陈主田土与迟滞、螣蛇主虚惊与缠绕、白虎主伤损与急迫、玄武主暗昧与失脱。六神只作取象的修饰,断吉凶仍以六亲旺衰生克为主。",source:"《卜筮正宗》六神章",status:"settled"},{id:"liuyao-liuchong",system:"liuyao",dims:["overall"],gist:"六冲卦讲「散」:起落快、来去急。",detail:"六冲不按「爻位相邻」判,而是看六个地支能不能正好配成子午、寅申、辰戌三组对冲。按纳甲实排,八纯卦之外天雷无妄、雷天大壮也成六冲。冲不是单纯的坏:近病逢冲主速愈、久病逢冲才忌;求财问婚,冲多主聚不住。",source:"《卜筮正宗》六冲章;《增删卜易》卦体说",status:"variant",note:"通行口诀多把六冲限为八纯卦,本插件按纳甲地支实配判定,故多出无妄与大壮两支;《增删卜易》卦例里这两卦确被称作六冲,可互证。"},{id:"liuyao-liuhe",system:"liuyao",dims:["overall","love"],gist:"六合卦讲「成」:容易谈拢,也容易黏住。",detail:"六个地支正好配成子丑、寅亥、卯戌、辰酉、巳申、午未三组相合,即六合卦,共天地否、地天泰、地雷复、雷地豫、山火贲、水泽节、泽水困、火山旅八支。六合主和合、拖延:谈事情容易成,也容易久拖不决;问病则忌缠绵。",source:"《卜筮正宗》六合章",status:"settled"},{id:"liuyao-fanyin",system:"liuyao",dims:["overall","work"],gist:"反吟主反复:去了又来、定了又改。",detail:"卦反吟有两种成法:一是变卦某宫的三爻地支与本卦对应宫正好全冲;二是本卦之宫与变卦之宫在后天八卦上正对(乾巽、坎离、艮坤、震兑)。爻反吟则是动爻变出的地支回头冲本爻。无论哪种,取象都是反复、翻覆、旧事重提。",source:"《增删卜易》反吟伏吟篇;《卜筮正宗》",status:"variant",note:"各家对「卦反吟」是否只认地支全冲有分歧;本插件的八卦正对一路,是从《增删卜易》卦例(如山地剥之坤为地、风天小畜之乾为天)反推出来的。"},{id:"liuyao-fuyin",system:"liuyao",dims:["overall"],gist:"伏吟主呻吟:事情在原地打转。",detail:"卦变了,纳甲地支却没变,叫卦伏吟。纳甲上只有乾与震共用子寅辰、午申戌一套地支,所以卦伏吟只会出在乾与震互换的卦上,例如天雷无妄之雷天大壮、天风姤之雷风恒。动爻变出的地支与本爻同支,则是爻伏吟。伏吟取象是欲动不动、原地反复,常指人想动而形势不许。",source:"《增删卜易》伏吟篇;《卜筮正宗》",status:"variant",note:"另有「伏吟以用神受困论」的说法,不限于卦体;本插件只报卦体层面的伏吟与动爻伏吟,不推断吉凶轻重。"},{id:"liuyao-jintui",system:"liuyao",dims:["overall"],gist:"动爻变出同五行顺次之支,为化进神;反向为化退神。",detail:"动爻变出的地支与本爻同五行、且在顺次上往前一步,叫化进神;倒退一步叫化退神。八对是:寅→卯(木)、巳→午(火)、申→酉(金)、亥→子(水),土一支成环,丑→辰→未→戌→丑。同五行但不相邻(如寅→辰)不算。进神取象是这一爻代表的人或事有后劲、势在往前;退神取象是渐渐退气、按原势头推会落空。",source:"《增删卜易》进神退神章",status:"settled"},{id:"liuyao-jintui-yong",system:"liuyao",dims:["overall","work"],gist:"化进化退要看是用神还是忌神,还要叠月建日辰。",detail:"进神退神本身只说明这一爻的向外趋势:用神化进为得力,忌神化进则为患加剧;用神化退是力衰,忌神化退反而是解脱。传统还要看它在本月令衰旺、有没有日辰生扶,空亡或受克时进者未必能进。本插件把进退与爻位标出来,再按月建五态给一档力重——得令则进得动、退得慢,失令则进得虚、退得实,月破压过一切;只给档位,不折成加权分数,吉凶仍落在用神与忌神那一层判。",source:"《增删卜易》进神退神章、用神章",status:"variant",note:"土之进退次序各家说法不完全一致,有以丑→辰→未→戌为进、也有只取辰戌丑未相对者;本插件按丑辰未戌成环处理,并用《增删卜易》卦例中「未土化戌土为进」「戌土化未土为退」对拍。喜忌分档的出处是《增删卜易》卷二·進神退神章第二十九:「所喜者宜於化進,所忌者宜化退神」;把「喜/忌」具体落到用神/忌神两档,是本插件的引申。"},{id:"meihua-tiyong",system:"meihua",dims:["overall"],gist:"动的那一卦为用,不动的那一卦为体。",detail:"体代表自己、用代表所问之事。体克用主可控、用克体主受制、用生体主得助、体生用主付出。再看互卦与变卦判断中段与结局——梅花只取象不排盘,落点比六爻粗。",source:"《梅花易数》体用篇",status:"settled"},{id:"daliuren-sike",system:"daliuren",dims:["overall"],gist:"四课看事从哪来,三传看事往哪去。",detail:"四课由日干日支的阴阳与天地盘相叠而得;三传依九宗门(贼克、比用、涉害、遥克等)取初传,再顺推中传末传。三传之间的生克与空亡,是判断事情走向的主线。",source:"《大六壬大全》;九宗门取传法",status:"settled"},{id:"qimen-yinyang",system:"qimen",dims:["overall"],gist:"冬至后阳遁、夏至后阴遁,局数由节气与三元定。",detail:"一年分阴阳两遁,各九局;局数取决于当前节气与上中下三元(符头定元)。取局流派有拆补、超神接气、置闰三种,同一时刻可能排出不同局数——这不是算错,是流派差异。",source:"《烟波钓叟歌》;拆补与置闰见《奇门遁甲统宗》",status:"variant",note:"三种取局法在节气交接前后差异最明显,本插件同时实现三种,可在参数里指定。"},{id:"qimen-jixing",system:"qimen",dims:["overall","work"],gist:"六仪落刑宫叫击刑,是宫位条件不是判决。",detail:"六仪按所配地支相刑:甲子戊落震三(子刑卯)、甲戌己落坤二(戌刑未)、甲申庚落艮八(申刑寅)、甲午辛落离九(午自刑)、甲辰壬落巽四(辰自刑)、甲寅癸落巽四(寅刑巳)。天盘六仪落到自己那一宫即击刑,取象是受制、掣肘、旧账翻出来,多用来量这个符号本身使不使得上力。",source:"《烟波钓叟歌》刑格注;《奇门遁甲统宗》",status:"variant",note:"有流派只论天盘六仪击刑,也有把地盘一并算的;本插件只判天盘,且只作宫位条件,不自动断用神受制。"},{id:"qimen-rumu",system:"qimen",dims:["overall"],gist:"天盘干落墓宫叫入墓:三奇与六仪各按五行墓库判。",detail:"按五行墓库推:乙木墓未(坤二)、丙丁火墓戌(乾六);六仪中戊墓戌(乾六)、己庚墓丑(艮八)、辛壬墓辰(巽四)、癸墓未(坤二)。天盘干落到自己的墓宫即入墓。取象是收束、藏起来、事情压住不动;好坏要看所问之事——问收藏、问了结,入墓未必是坏事。",source:"《奇门遁甲统宗》三奇入墓条;六仪入墓见《奇门遁甲秘笈大全》卷十五;五行墓库见《五行大义》",status:"variant",note:"各家对入墓范围说法不一:有只论三奇,也有把六仪、八门、九星一并论墓的;本插件判天盘三奇与六仪,八门、九星暂不入墓。"},{id:"qimen-ganying",system:"qimen",dims:["overall","work"],gist:"十干克应看天盘干加地盘干:同宫两干相遇,先取成象,再与门星神合看。",detail:"十干克应把天盘干与地盘干的组合收成 100 组,每组一个格名与一段取象。例如甲加丙「青龙返首」主大吉大利,甲加庚「值符飞宫」主吉事不成,乙加辛「青龙逃走」主失财逃亡。它回答的是「这两股气碰在一起像什么」,不单独回答「事情成不成」;同一组落在不同门、星、神与旺衰下,轻重会变。",source:"《奇门十干应克》通行 100 组表;《奇门遁甲元灵经》卷二「天盘加地盘吉凶」存甲、乙、丙三组异文",status:"variant",note:"100 组表各家措辞不一,本插件取通行表;元灵经只存三组且文字不同,两本并列、不合并。十干克应只作取象,不自动折吉凶。"},{id:"qimen-wangshuai",system:"qimen",dims:["overall","work"],gist:"门、星与天盘干按月令分旺相休囚死,只说明力量强弱。",detail:"旺相休囚死以月支五行为尺:与月令同气为旺,月令所生为相,生月令为休,克月令为囚,被月令所克为死。八门、九星与天盘干(三奇六仪)各按自身五行对月令,得出该符号当下「使不使得上力」。比如午月火旺,景门(火)旺、生门死门(土)相、休门(水)囚、开门惊门(金)死,天盘丙丁(火)旺、庚辛(金)死。",source:"《奇门遁甲统宗》门星旺衰条;五行旺相休囚死见《五行大义》",status:"settled"},{id:"qimen-wangshuai-yong",system:"qimen",dims:["overall","work"],gist:"旺衰是助力,不单独定吉凶:门旺而宫克门仍受制。",detail:"月令旺衰只回答「这个符号自身有多少气」,不回答「事情成不成」。取象时要和宫位关系叠起来看:门旺但同宫门克宫(门迫),力量被宫位掣肘;门囚但宫生门,仍得宫助。星同理,旺星落宫若被克,也难全其用。",source:"《奇门遁甲统宗》;《烟波钓叟歌》门宫生克注",status:"variant",note:"有流派按时令而非月令论门星旺衰,也有以落宫五行当令者;本插件统一按月支五行判,并在解读里明确只作强度参考。"},{id:"qimen-gan-shengke",system:"qimen",dims:["overall","work"],gist:"天盘干落宫论生克:干克宫主进取,宫克干受制,比和相安。",detail:"天盘干(三奇六仪)落到某宫,就看干的五行与该宫五行的生克:干克宫,是符号压向环境、偏进取与主动;宫克干,是环境反过来管住符号、偏受制与掣肘;干生宫,力量往外泄;宫生干,环境给力;比和,两下相安。这一层与门宫关系(门迫、宫制门)并列,各说各的,不互相替换;两者同时成立时分别列出,不折成一个分数。",source:"《奇门遁甲统宗》干宫生克条;《烟波钓叟歌》门宫生克注",status:"variant",note:"各家对「干与宫」的取象宽窄不一:有只论干宫、有连天盘干加地盘干(十干克应)一并论的。本插件两层并列:干宫生克判落宫关系,十干克应另判天地盘两干的成象,互不替代。"},{id:"tarot-orientation",system:"tarot",dims:["overall"],gist:"逆位常见的两种读法:削弱,或转向内。",detail:"一派认为逆位是正位力量的减弱与阻塞;另一派主张逆位是同一原型的内向化、未表达。同一张逆位牌,两种读法给出的建议方向可能相反,所以牌阵解读要先把口径讲清楚。",source:"韦特体系传统;逆位读法属近代流派分歧",status:"variant",note:"逆位是否参与解读本身就有分歧(有牌阵传统完全不用逆位)。本插件按削弱加内向综合取象,并在开头声明。"},{id:"bazi-dayun-jiaoqi",system:"bazi",dims:[],gist:"交运按「三日折一年」放大到日、时:起运时刻与每步换运日期都给。",detail:"把「出生 → 起运那一侧节令」的真实间隔按 365.2422/3(约 121.7474 倍)放大,加到出生时刻上就是交运时刻;同一比例也兑现「一日折四月、一时辰折十日」。每步大运在同月同日同时刻换,闰日退到 2 月 28 日。年长取回归年 365.2422 日,故与按 360 日折算的流派会差一两天。",source:"《渊海子平》起运法(三日折一年);《三命通会》论行运",status:"variant",note:"各家对「一年折几日」「交运日是否按 360 日计」取法不一,本插件固定 365.2422 日并把口径写进结果(dayun.jiao.yearDays)。出生时刻或经度一变,交运日会前后移一两天;月柱在交节边界时尤其要复核。"},{id:"liuyao-yingqi-exact",system:"liuyao",dims:[],gist:"具体应期(哪一天应验)本插件尚未推算。",detail:"应期需要综合用神旺衰、动变、旬空出空、日月冲合多层条件,且各家取法不同。当前只给时间窗口的方向性提示(逢值 / 逢冲 / 逢合的触发支,加一个快慢方向),不给具体日期——与其给一个看起来精确、实则拍脑袋的日子,不如留白。",source:"待补:《卜筮正宗》应期章逐条实现 + 已录 128 条卦例对拍(源 138 条)",status:"todo",note:"扩展方向:用《卜筮正宗》卦例里有明确应验日期的条目做回归,先验证再输出。0.50.0 已给出触发支与快慢方向,仍不输出日期。"}];function A(B,U){return Y.filter(c=>c.system===B&&c.dims.includes(U))}function Se(B){return Y.filter(U=>U.system===B&&U.status!=="settled")}return{KNOWLEDGE:Y,knowledgeFor:A,caveatsFor:Se,STATUS_LABEL:{settled:"文本·诸家一致",variant:"文本·各家有异说",todo:"文本·未录入"},KNOWLEDGE_DISCLAIMER:"以上标签只说明典籍文本的一致程度,不表示该技法经过验证;本插件不对任何技法的预测效度作保证。"}})(),V.limits=(function(){const Y=[{id:"validity",title:"任何技法的预测效度都未经检验",text:"能被复核的只有形式层——纳甲、干支关系、十神、宫位这类可由程序重算的部分,错了能查。解释层是各派通行说法,本插件不声称它比别的说法更准,也没有做过能被别人重复的验证。"},{id:"same-chart",title:"同盘不同命,本插件不解决",text:"同一个四柱、同一张命盘对应无数人,从盘面推不出具体某一个人。这是模型的硬缺陷,不是样本不够——换个更大的样本也补不上。所以本插件给的是「这一类盘常见的结构」,不是「你会怎样」。"},{id:"advice",title:"不给医疗、法律、投资建议",text:"不做疾病诊断与用药建议,不判诉讼胜负,不做买卖与借贷决策。三类问题都有各自的专业判断标准,盘面推不出它们。"}],A={liuyao:[{id:"liuyao-no-date",title:"应期不给公历日期",text:"只给地支与快慢档(偏速/偏缓/待解/未定),不折算成「某月某日」。原因不是保守:应期可取逢值、逢冲、逢合、出空、填实多种,任一种都能事后对得上,折算成日期只是把不确定性藏进一个具体数字里。回测 15 条规则命中 51.7%,平均要给 3.55 个候选支(随机基线 29.6%)——高于随机,但撑不起一个具体日期。"},{id:"liuyao-yongshen",title:"用神多现时,不替你选",text:"卦中用神两现时,插件把候选都列出来,不代选。取哪一个直接决定断语方向,各家取舍标准不一,替选等于把一派之见说成唯一答案。"},{id:"liuyao-zhi-date",title:"「某支应事」不等于「那天会发生」",text:"地支只标方向与快慢,不承诺落点。同一支在一天里对应两个时辰、在一个月里对应多个日子,具体哪一天,本插件不判。"},{id:"liuyao-liuyue",title:"不推演流月推进后的二次变化",text:"应期按「当下一个月建 + 日辰」静态算,不模拟下一个月到来后「原来的合被冲开、原本被制住的爻复起」这类连锁。实占里有反例:用神伏藏、本来可靠日辰冲开,但进入下个月建后一冲解掉了原月建对制它之爻的合,制者复起,出伏失败,事情没成。跨月推演还没做,所以应期只能作「该留意哪几支」,不能承诺某个月份。"}],bazi:[{id:"bazi-hour-unknown",title:"时辰未知时,只给三柱,不给紫微与合盘",text:"不知道出生时辰时,本插件不排时柱,起运按日估算,并把「时柱按正午暂算」写在结果第一行。紫微(命宫由生月与生时支定)与合盘(夫妻宫、大运都依赖时支)一律不出盘——不是保守,是这两套离了时支就不成立,硬排出来只是看着像盘。"},{id:"bazi-no-event",title:"不预测具体年份的事件",text:"不判「哪年结婚」「哪年升职」「哪年发财」。岁运并临、运年反吟、伏吟这类只作变动提示、不断吉凶——这些格局在十年里会反复出现,按它们断事,等于每年都能找到一次「应验」。"},{id:"bazi-strength",title:"旺衰是分档,不是评分",text:"旺衰按五行分量与月令得令情况分档,给出的百分比是相对权重,不是命理学的定量指标。各家对「几分算旺」没有共识,本插件不把档位差当成精确结论。"},{id:"bazi-huagi",title:"化气格的真化,仍缺对拍",text:"化气格成立条件各家宽严不一(是否要求月令为化神、日主是否允许有根),本插件按从严一路判,并把条件与原文并列摆出;真化/假化的判定还没有实盘对拍集。"}],ziwei:[{id:"ziwei-feixing",title:"飞星层只报路径,不判吉凶",text:"飞星能做到单一支化逐宫追到成环、三方四正按落宫归堆,但串连与复合飞化叠上大限流年之后的力重还没定,所以只报走到哪、不判好与不好。"},{id:"ziwei-poge",title:"格局只判成立,破格条件未做",text:"34 条格局按独立谓词逐条复算过成立条件,但「什么情况下这条格局不算」各家破法不一,需先定底本,所以现在只判成不成立。"}],meihua:[{id:"meihua-waiying",title:"不取外应",text:"只按时间/数字起卦,用体用生克与互变卦推演。外应(当时的声音、来人衣着、路上所见)不纳入——那部分的解释空间几乎没有边界,纳入后任何结论都能凑出来。"}],daliuren:[{id:"daliuren-yingqi",title:"三传只给结构,应期未做",text:"四课三传按通行起法给出,天将、六亲、旺衰并列;具体应期推演尚未实现,不据此判时间。"}],qimen:[{id:"qimen-bamen",title:"八门九星入墓未做",text:"十干克应与六仪入墓已按通行口径上,八门、九星入墓各家说法不同、需逐条核,暂不实现;用神落宫与击刑入墓的联动只并列条件、不推结论。"}],tarot:[{id:"tarot-claim",title:"牌义取通行义,不做个人化解读",text:"按牌阵位置与正逆位给通行牌义,不做联想式延伸。牌阵与问题的对应关系由你确定,插件不替你判断「该抽几张」「该问什么」。"}]};function Se(se){return[...Y,...A[se]||[]]}return{UNIVERSAL_LIMITS:Y,SYSTEM_LIMITS:A,limitsFor:Se}})(),V.guide=(function(){return{GUIDE:{title:"第一次看?先分清「数」「象」「辞」",lead:"这份报告分三层。分清之后,你就知道哪一部分可以信、哪一部分要留个心眼。",layers:[{key:"shu",name:"数",sub:"坐标",text:"干支、节气、纳甲、十神、宫位——这些是算出来的坐标。换个人、换台机器算,结果应该一模一样。",hint:"报告里每个干支、每个宫位、每个局数都属于这一层:可复算,也可复查。这一层错了就是硬错。"},{key:"xiang",name:"象",sub:"关系",text:"合、冲、伏、墓、当位、承乘——坐标之间形成的形状。关系看得见,但「这段关系在人生里叫什么」是命名,各家会有分歧。",hint:"点开每条「依据」,看到的就是这一层:盘面上的事实,还没加解释。"},{key:"ci",name:"辞",sub:"判断",text:"吉凶、顺逆、应期——一句话的结论。自由度最高,也最需要你保留怀疑。",hint:"下面所有的结论都在这一层。它的效度未经检验:当参考,别当判决。"}],check:{title:"看到任何一句断语,先问三句",items:["它落在哪个坐标上(哪一柱、哪一爻、哪一宫)?","关系是什么(生、克、合、冲、伏、墓)?","这个说法是唯一读法吗?"],tail:"三问答不全,那句话就只是在给结论,没有给依据——包括本插件自己给的。"},parts:{title:"纳甲、十神、宫位,各自在干什么",rows:[["纳甲","给每一爻装上地支坐标,让卦能和日辰比较(数)"],["十神","把「生我克我」翻译成人伦关系(象到辞的接口)"],["宫位","把关系分到位置上:年月日时、十二宫(象的空间化)"]],tail:"三个都是中间件,不是知识本身:背熟十神只等于背熟一本词典,会不会读象是另一件事。"},closing:"一句话收尾:数当镜子,象当语言,辞当别人的意见——可以听,不必签收。"}}})(),V.citations=(function(){const{CLASSICS:Y,CLASSIC_BOOKS:A}=V.classics||{},{KNOWLEDGE:Se}=V["interpret-knowledge"]||{},{PATTERN_BREAK_RULES:se}=V.ziwei||{},me={ziwei:{name:"紫微斗数全书",author:"宋·陈抟(传)",base:"https://zh.wikisource.org/wiki/紫微斗數全書"},qiongtong:{name:"穷通宝鉴",author:"佚名",base:"https://www.diancang.xyz/xuanxuewushu/qiongtongbaojian/"},daliuren:{name:"大六壬大全",author:"明·郭载騋校(四库全书本)",base:"https://zh.wikisource.org/wiki/六壬大全"},qimen:{name:"奇门遁甲统宗",author:"旧题诸葛亮(传)",base:"https://www.diancang.xyz/xuanxuewushu/qimendunjiatongzong/"},meihua:{name:"梅花易数",author:"宋·邵雍(传)",base:"https://www.diancang.xyz/xuanxuewushu/meihuayishu/"},ditian:{name:"滴天髓",author:"明·京图(通行本)",base:"https://www.diancang.xyz/xuanxuewushu/ditiansui/"},liuyao:{name:"增删卜易",author:"清·野鹤老人",base:"https://zh.wikisource.org/wiki/增刪卜易"}},B=[{id:"zw-poge-sanfang",book:"ziwei",chapter:"卷三·谈星要论",quote:"及命宫星辰庙旺,三方有恶星守照破格。",plain:"命宫主星虽庙旺,三方四正见恶星也会破格。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-poge-ruge",book:"ziwei",chapter:"卷三·论人命入格",quote:"若居陷地又加杀化忌,为下格之命,不以入格而论也。",plain:"星落陷地又见煞星、化忌,就不按入格来论。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-poge-huaxiong",book:"ziwei",chapter:"卷三·论人命入格",quote:"又入格不化吉而化凶,只以本命吉凶多寡而断之。",plain:"入了格却化吉少、化凶多,只能按原局吉凶的多寡来断。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-shiyin",book:"ziwei",chapter:"卷一·增补太微赋",quote:"巨门子午二宫逢,身命逢之必贵荣,更得三方科禄照,石中隐玉是丰隆。",plain:"巨门在子午守命,要三方有化科、化禄照会,石中隐玉才成格。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-jiju-poge",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"因甲禄到寅卯宫有擎羊破格耳。",plain:"巨机本可取贵,但擎羊落宫会把格局破掉。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-riyue-jia",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"加羊陀冲守,宜僧。",plain:"日月夹命再加羊陀冲守,吉意大减。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-changqu",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"昌曲陷宫凶杀破虚誉之隆 凶杀即羊陀空劫。",plain:"昌曲落陷再逢凶杀,名声易成虚誉;这里的凶杀指羊陀空劫。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-kuiyue",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"魁钺重逢杀凑痼疾尤多 杀乃羊铃空劫。",plain:"魁钺夹命再凑煞星,贵气减等;煞指羊铃空劫。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-jiyue",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"机月同梁作吏人 命在寅申方论,加吉不论,无吉无杀亦是平常人,凶杀空劫化忌为下格。",plain:"机月同梁要在寅申论;无吉无杀只是平常,逢凶杀空劫化忌则降为下格。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-tanwu",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"贪武申宫为下格 化忌方论。",plain:"武贪在申本可论格,但带化忌才作下格论。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-huotan",book:"ziwei",chapter:"卷一·增补太微赋",quote:"火遇贪狼照命宫,封侯食禄是英雄,三方倘若无凶杀,到老应知福寿隆。",plain:"火贪照命本是贵格,前提是三方没有凶杀;见煞则破。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-luma",book:"ziwei",chapter:"卷一·诸星问答论·问天马星所主若何",quote:"如与禄存同宫,谓之禄马交驰,又曰折鞭马",plain:"禄存与天马同宫才叫禄马交驰。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-luma-kong",book:"ziwei",chapter:"卷一·诸星问答论·问天马星所主若何",quote:"逢空亡谓之死马、亡马",plain:"禄马逢空亡,称死马、亡马,奔走之力被劫。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-luma-tuo",book:"ziwei",chapter:"卷一·诸星问答论·问天马星所主若何",quote:"遇陀罗谓之折足马",plain:"禄马遇陀罗,称折足马,动而受阻。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-sihua-ji",book:"ziwei",chapter:"卷一·诸星问答论·问化忌星所主若何",quote:"如会紫府、昌曲、左右、科权禄,与忌同宫又兼四杀共处,即发财亦不佳,功名亦不成就。",plain:"吉星与化忌、四杀同处,即使发财也不好,功名难成。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-sihua-lu",book:"ziwei",chapter:"卷一·诸星问答论·问化禄星所主若何",quote:"禄为福德之神。守身命官禄之位,科权相逢必作大臣之职。",plain:"化禄主福,与科权相会可论官职。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-sihua-quan",book:"ziwei",chapter:"卷一·诸星问答论·问化权星所主若何",quote:"权星掌判生杀之神。守身命科禄相逢出将入相。",plain:"化权主掌判,与科禄相会主权位。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-sihua-ke",book:"ziwei",chapter:"卷一·诸星问答论·问化科星所主若何",quote:"科星上界应试,主掌文墨之星。守身命权禄相逢宰臣之贵。",plain:"化科主文墨名声,与权禄相会主贵。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"zw-sanfang",book:"ziwei",chapter:"卷三·谈星要论",quote:"三看迁移财帛官禄三方星辰刑冲克破。",plain:"第三步就看迁移、财帛、官禄这组三方有没有刑冲克破。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-shenming",book:"ziwei",chapter:"卷三·谈星要论",quote:"看身安命禄马不落空亡天空截空最紧,旬空次之。",plain:"看身命先看禄马有没有落空亡、天空、截空。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-daxian",book:"ziwei",chapter:"卷三·论大限十年祸福何如",quote:"如宫分星缠全吉庙旺得地,无擎羊陀罗火铃空劫者,主十年安静,人财全美。",plain:"大限宫吉星庙旺且不见羊陀火铃空劫,十年较安稳。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-miaowang",book:"ziwei",chapter:"卷三·论诸星同垣各司所宜分别富贵贫贱夭寿",quote:"天机 庙子午 旺辰酉 陷丑未",plain:"天机的庙旺陷地:子午庙、辰酉旺、丑未陷。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷三"},{id:"zw-kongjie",book:"ziwei",chapter:"卷一·诸星问答论·问天空地劫所主若何",quote:"二星守身命,遇吉则吉,遇凶则凶。如四杀冲照,轻者下贱,重者六畜之命。",plain:"空劫守身命,吉凶随会照而定;再逢四杀冲照则加重。",url:"https://zh.wikisource.org/wiki/紫微斗數全書/卷一"},{id:"smt-wangxiang",book:"sanming",chapter:"卷二·论五行旺相休囚死并寄",quote:"盛德乘时曰旺。如春木旺,旺则生火,火乃木之子,子乘父业,故火相;木用水生,生我者父母,今子嗣得时,登高明显赫之地,而生我者当知退矣,故水休。",plain:"当令得时叫旺;旺者所生为相,生旺者退为休。旺相休囚死是按四季轮转的相对状态,不是固定标签。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7531.html"},{id:"smt-shensha",book:"sanming",chapter:"卷三·总论诸神煞",quote:"神煞,古有百二十名,其说穿凿支离,造化恐不如是。",plain:"神煞名目古有百余种,说法穿凿支离;作者自己也说造化未必如此,神煞只能作旁证。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7572.html"},{id:"smt-kongwang",book:"sanming",chapter:"卷三·论空亡",quote:"故以甲旬尽处曰空亡,盖有是位而无禄,曰空;有支而无干,曰亡。",plain:"旬中十干配完还剩两支无干可配,有支无干叫亡;这一位没有禄叫空。空亡是按旬推出的虚位,不直接等于凶。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7563.html"},{id:"smt-dayun-qiyun",book:"sanming",chapter:"卷二·论大运",quote:"总十年之运气,凡三日有三十六时,乃见三百六十日为一岁之数;在一月之中有三百六十时,折除节气,算计三千六百日为一辰之十岁也。",plain:"起运的折算:三日折一年、一月折十年,按出生到节气的时间折出起运岁数;这是通行「三日折一年」的出处之一。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7536.html"},{id:"smt-liuqin",book:"sanming",chapter:"卷七·论六亲",quote:"有夫妇然后有父子,有父子然后有兄弟。六亲者,父母兄弟妻子也。",plain:"六亲指父母、兄弟、妻子;先有夫妇才有父子兄弟,取六亲以十干生克配出,再落到四柱宫位上看旺衰。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7693.html"},{id:"smt-xingchong",book:"sanming",chapter:"卷二·论三刑",quote:"《阴符经》曰:恩生于害,害生于恩;三刑生于二合,亦如六害生于六合之义。",plain:"三刑由三合与三会相叠而生,六害由六合而生:合里藏着刑害,所以见合不能只看合。",url:"https://www.diancang.xyz/xuanxuewushu/sanmingtonghui/7548.html"},{id:"qt-tiaohou",book:"qiongtong",chapter:"五行总论",quote:"北方阴极而生寒,寒生水。南方阳极而生热,热生火。",plain:"五行由方位寒热燥湿而生:北寒生水、南热生火。调候就是先看命局寒暖燥湿,再取能调和的字。",url:"https://www.diancang.xyz/xuanxuewushu/qiongtongbaojian/41024.html"},{id:"qm-yinyang",book:"qimen",chapter:"卷一·奇门秘诀总赋",quote:"阴阳二遁分顺逆,一气三元人莫测。五日都来换一元,接气超神为准的。",plain:"一年分阴阳两遁:冬至后顺布、夏至后逆布;一气分上中下三元、五日换一元,超神接气用来对齐节气与符头。取局法不同,同一时刻可能排出不同局数。",url:"https://www.diancang.xyz/xuanxuewushu/qimendunjiatongzong/41068.html"},{id:"qm-jixing",book:"qimen",chapter:"卷十一·玄机赋(中)",quote:"六仪击刑真是凶,值符天乙遇亦穷。六仪非值终无吉,吉凶轻重义相同。此际切宜遁取吉,勿于此地想成功。子三戌二寅刑四,申八辰四午离中。戌刑在未寅在巽,巽有巳兮申缓从。",plain:"六仪落到与自身相刑的宫位叫击刑:甲子戊落三宫、甲戌己落二宫、甲申庚落八宫、甲辰壬落四宫、甲午辛落九宫;甲寅癸的寅刑巳、戌刑未也各有所指。击刑是宫位条件,说明这个符号使不上力,不直接等于事情必败。",url:"https://www.diancang.xyz/xuanxuewushu/qimendunjiatongzong/41073.html"},{id:"qm-rumu",book:"qimen",chapter:"卷十一·玄机赋(中)",quote:"三奇入墓,闭塞不通,暗昧不振,诸事皆凶。乙阴木长生在午墓于戌,丙火长生在寅墓于戌,故乙丙到乾为墓。丁阴火长生在酉墓于丑,故丁到艮为墓。",plain:"按五行墓库判:乙木、丙火墓在戌(乾六宫),丁火墓在丑(艮八宫)。天盘三奇落到自己的墓宫即入墓,取象是收住、藏起来、事情压着不动;问收藏与了结时未必是坏事。",url:"https://www.diancang.xyz/xuanxuewushu/qimendunjiatongzong/41073.html"},{id:"qm-wangshuai",book:"qimen",chapter:"卷三",quote:"旺相休囚:春木相火旺水废金囚土休,夏火相土旺木废水囚金休,秋金相水旺土废火囚木休,冬水相木旺金废土囚火休。",plain:"旺相休囚按季节五行轮转:当令者旺、被当令所生者相、生当令者休、克当令者囚、被当令所克者废(死)。门、星、天盘干各按自身五行对月令,得出当下力量强弱。",url:"https://www.diancang.xyz/xuanxuewushu/qimendunjiatongzong/41070.html"},{id:"qm-men-gong",book:"qimen",chapter:"卷二",quote:"右八门最怕迫制,吉门有气益吉,无气减吉;凶门有气益凶,无气减凶。",plain:"八门怕被宫位迫制;吉门有气更吉、无气则减吉,凶门有气更凶、无气则减凶。旺衰只是加权,门与宫的生克要另算,两层并列、不互相替代。",url:"https://www.diancang.xyz/xuanxuewushu/qimendunjiatongzong/41069.html"},{id:"mh-tiyong",book:"meihua",chapter:"卷二·体用生克",quote:"体用即动静之说。体为主,用为事。应用事体及比和,则吉;体生用及克体,则不吉。",plain:"体卦代表自己、主静;用卦代表所问之事、主动。用生体或体用比和为顺,体生用(泄气)与用克体为不顺;再看互卦、变卦与旺衰定轻重。",url:"https://www.diancang.xyz/xuanxuewushu/meihuayishu/37734.html"},{id:"zs-yongshen",book:"liuyao",chapter:"卷一·用神章第八",quote:"父母爻:占父母卽以卦中之父母爻爲神。",plain:"六亲各有用神:问父母就以父母爻为用神,兄弟、妻财、子孙、官鬼也各按所问的人与事取爻。",url:"https://zh.wikisource.org/wiki/增刪卜易/8"},{id:"zs-fushen",book:"liuyao",chapter:"卷二·飛伏神章第二十八",quote:"此卦寅木妻財在二爻﹐卽以此寅木伏於姤卦亥水之下﹐姤卦二爻之亥水卽爲飛神﹐寅木妻財卽爲伏神﹐亥水而生寅木﹐謂之飛來生伏得長生﹐此用神不現﹐尋得伏神而遇生扶有用﹐亦爲用神﹐便作吉斷﹐餘仿此。",plain:"用神不上卦时,到本宫首卦里找伏神:伏在下面的叫伏神,压在它上面的叫飞神。伏神得日月或飞神生扶,才算有用。",url:"https://zh.wikisource.org/wiki/增刪卜易"},{id:"zs-yuejian",book:"liuyao",chapter:"卷一·月將章第十六",quote:"月將卽是月建又爲月令。掌一月之權,司三旬之令。",plain:"月建就是月令,掌一月的时令、管三旬的旺衰;它能扶起衰弱的爻,也能制住动爻与变爻。",url:"https://zh.wikisource.org/wiki/增刪卜易/16"},{id:"zs-yuejian-zhuli",book:"liuyao",chapter:"卷一·月將章第十六",quote:"爻之衰弱者能生之合之、比之、拱之、扶之,衰而亦旺。",plain:"月建对衰弱的爻能生、合、比、拱、扶,衰的也可以转旺;反过来对强旺的爻能冲、克、刑、破,旺的也会转衰。",url:"https://zh.wikisource.org/wiki/增刪卜易/16"},{id:"zs-richen",book:"liuyao",chapter:"卷一·日辰章第十七",quote:"日辰爲六爻之主宰,司四時之旺相。",plain:"日辰是六爻之主宰,四时都能当令,与月建同功;日冲旺相静爻为暗动,冲衰弱静爻为日破。",url:"https://zh.wikisource.org/wiki/增刪卜易/17"},{id:"zs-dongbian",book:"liuyao",chapter:"卷一·動變生克沖合章第十五",quote:"卦有動爻,動而必變,夫變出之爻能生克沖合本位之動爻,不能生克他爻,而他爻與本位之動爻,亦不能生克變爻。",plain:"动爻变出的爻,只与本位动爻发生生克冲合,不直接作用于其他爻;其他爻也不直接生克这个变爻。",url:"https://zh.wikisource.org/wiki/增刪卜易/15"},{id:"zs-liushen",book:"liuyao",chapter:"卷一·六神章第十八",quote:"諸書無不以靑龍爲吉,白虎爲凶。",plain:"旧籍多以青龙为吉、白虎为凶;本章随即用卦例说明六神只是取象的一层,不能只看它断吉凶。",url:"https://zh.wikisource.org/wiki/增刪卜易/18"},{id:"zs-liuhe",book:"liuyao",chapter:"卷一·六合章第十九",quote:"子與丑合、寅與亥合、卯與戌合、辰與酉合、巳與申合,午與未合。",plain:"六合固定六对:子丑、寅亥、卯戌、辰酉、巳申、午未;静爻逢合叫合起,动爻逢合叫合绊。",url:"https://zh.wikisource.org/wiki/增刪卜易/19"},{id:"zs-liuchong",book:"liuyao",chapter:"卷一·六沖章第二十",quote:"相沖之法有六。日月沖爻者一也,卦逢六沖二也,六合卦變六沖三也,沖變六沖四也。動爻變沖五也、爻與爻沖六也。",plain:"相冲分六种:日月冲爻、卦逢六冲、六合卦变六冲、冲变六冲、动爻变冲、爻与爻冲。冲主散,吉事不宜,凶事反而宜散。",url:"https://zh.wikisource.org/wiki/增刪卜易/20"},{id:"zs-fanyin",book:"liuyao",chapter:"卷一·反伏章第二十五",quote:"內卦反伏,內則不安。外卦反伏,外則不寧。內外反伏者,內外不寧之象也。",plain:"内卦反伏主内不安,外卦反伏主外不宁,内外都反伏则内外不宁;取象是事情反复,成而败、败而成。",url:"https://zh.wikisource.org/wiki/增刪卜易/25"},{id:"zs-fuyin",book:"liuyao",chapter:"卷一·反伏章第二十五",quote:"內卦動變伏吟,內則呻吟,外卦動變伏吟,外則憂鬱。",plain:"内卦动变伏吟主内呻吟,外卦动变伏吟主外忧郁;伏吟取停滞难伸,不像反吟那样带冲克。",url:"https://zh.wikisource.org/wiki/增刪卜易/25"},{id:"zs-jintui",book:"liuyao",chapter:"卷二·進神退神章第二十九",quote:"進神退神者﹐爻之動而化也﹐化進化退﹐吉凶禍福有喜忌之分﹐所喜者宜於化進﹐所忌者宜化退神。",plain:"进神退神是动爻化出同五行的顺次之支:化进主向前,化退主退气;喜用的宜化进,所忌的宜化退。",url:"https://zh.wikisource.org/wiki/增刪卜易"},{id:"zs-yingqi",book:"liuyao",chapter:"卷一·各門類應期總注章第又二十六",quote:"靜而逢值逢沖:如主事爻臨子水不動,後逢子日午日而應之,餘仿此。",plain:"应期先分动静:静爻在逢值或逢冲之日应,动爻在逢合或逢值之日应;其余按入墓、旬空、月破等逐条推。",url:"https://zh.wikisource.org/wiki/增刪卜易/26又3"},{id:"dl-jigong",book:"daliuren",chapter:"卷一·起例(十干寄宫)",quote:"甲课寅兮乙课辰,丙戊课巳不须论。丁己课未庚申上,辛戌壬亥是其真。癸课原来丑宫坐,分明不用四正神。",plain:"十干寄宫是四课起手:甲寄寅、乙寄辰、丙戊寄巳、丁己寄未、庚寄申、辛寄戌、壬寄亥、癸寄丑;丙戊、丁己各同宫,子午卯酉四个正位不寄。",url:"https://zh.wikisource.org/wiki/六壬大全/1"},{id:"dl-zeike",book:"daliuren",chapter:"卷一·起例(贼克法)",quote:"取课先从下贼呼,如无下贼上克初。初传之上名中次,中上加临是末居。三传既定天盘将,此是入式法第一。",plain:"九宗门取初传先看下贼上,没有下贼再看上克下;初传定后,中传取初传所乘之神,末传再顺取一位,三传齐了才布天盘天将。",url:"https://zh.wikisource.org/wiki/六壬大全/1"},{id:"dl-yuejiang",book:"daliuren",chapter:"卷二·神将释(月将)",quote:"逆布者谓之月将,其实即十二神也。",plain:"月将就是十二支神,按太阳过宫排:以登明为首逆布十二宫;起课时把月将加在占时上,顺布成天盘。",url:"https://zh.wikisource.org/wiki/六壬大全/2"},{id:"dt-yiqi-tonggen",book:"ditian",chapter:"干支总论",quote:"天全一气,不可使地德莫之载。地全三物,不可使天道莫之容。",plain:"四柱天干同属一气,还得地支能承载它;地支所藏三干若不透到天干,也显不出用处——通根与透出是一件事的两面。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153091.html",note:"《子平真诠》卷一论十干十二支注文引作《滴天髓》语,底本干支总论原文可核。"},{id:"dt-liuqin-fuqi",book:"ditian",chapter:"六亲论·夫妻",quote:"夫妻因缘宿世来,喜神有意傍天财。",plain:"看夫妻,落点在「喜神」与「财星」的相对位置:财是妻星,喜神是能护住用神的那一位。配偶这件事,看的是财星有没有被喜神照到,不是看盘里有没有财。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153092.html",note:"本句是六亲论的提纲韵语,正文各家用注解发挥,取义不一,故只作「有这一说」的原文凭据。"},{id:"dt-liuqin-zinv",book:"ditian",chapter:"六亲论·子女",quote:"子女根枝一世传,喜神看与杀相连。",plain:"子女星取官杀,但成不成器要看喜神与杀的关系:有杀无喜,是压力;有喜有杀,才谈得上传承。单见官杀不作吉断。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153092.html"},{id:"dt-liuqin-fumu",book:"ditian",chapter:"六亲论·父母",quote:"父母或降与或替,岁月所关果非细。",plain:"父母看年月两柱:位置定了,还要看这两柱是「降」(受制)还是「替」(得代),差别不小。这是把六亲落到宫位上,而不是只看印星。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153092.html"},{id:"dt-nvming-shensha",book:"ditian",chapter:"六亲论·女命章",quote:"论夫论子要安详,气静平和妇道章,三奇二德虚好语,咸池驿马半推详。",plain:"这句是古籍自己在批神煞:三奇、二德这类吉神被叫作「虚好语」(空口说好话),咸池(桃花)、驿马只能「半推详」(顶多参考一半)。反对滥用神煞不是今人的意见,原文里就有。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153092.html",note:"「三奇二德虚好语,咸池驿马半推详」是滴天髓原文对神煞的贬语,可直接支撑「神煞不主吉凶」。"},{id:"dt-hezhi-fugui",book:"ditian",chapter:"六亲论·何知章",quote:"何知其人富,财气通门户。何知其人贵,官星有理会。何知其人贫,财神反不真。何知其人贱,官星还不见。",plain:"富看财有没有「通门户」(财能流通到日主),贵看官星有没有「理会」(有制有化、有人承接)。反过来,贫是财星不真(有财而无用),贱是官星不见或不理。判词是四个可查的条件,不是形容词。",url:"https://www.diancang.xyz/xuanxuewushu/ditiansui/153092.html"}],U={...Object.fromEntries(Object.entries(A).map(([z,g])=>[z,g])),...me};function c(z){const g=B.find(G=>G.id===z)||Y.find(G=>G.id===z);if(!g)return null;const $e=U[g.book];return{...g,bookName:$e?$e.name:g.book,bookAuthor:$e?$e.author:""}}const q={"bazi-yueling-siquan":{refs:["smt-renyuan"]},"bazi-geju":{refs:["zp-yongshen"]},"bazi-suiyun":{refs:["smt-suiyun"]},"bazi-sanming-duizhao":{refs:["zp-zhenguan","smt-guansha-liu"]},"bazi-geju-chengbai":{refs:["zp-chengbai","dt-hezhi-fugui"]},"bazi-huagi-bianhua":{refs:["zp-bianhua"]},"bazi-zaji-quyong":{refs:["zp-zaji"]},"bazi-zhuanwang-yuanwen":{refs:["smt-quzhi","smt-yanshang","smt-congge","smt-runxia","smt-jiasi"]},"bazi-congge-yuanwen":{refs:["smt-congsha","smt-congcai"]},"bazi-tongguan":{refs:["dt-tongguan"]},"bazi-tonggen-tougan":{refs:["dt-yiqi-tonggen"],note:"通行说两句出自《子平真诠》卷一注文,非《滴天髓》正文;注文所引的滴天髓句见本条。"},"bazi-wangxiang":{refs:["smt-wangxiang"]},"bazi-shensha":{refs:["smt-shensha","dt-nvming-shensha"]},"bazi-tiaohou":{refs:["qt-tiaohou"]},"bazi-liuqin":{refs:["smt-liuqin","dt-liuqin-fuqi","dt-liuqin-zinv","dt-liuqin-fumu"]},"bazi-kongwang":{refs:["smt-kongwang"]},"bazi-xingchong":{refs:["smt-xingchong"]},"bazi-dayun-jiaoqi":{refs:["smt-dayun-qiyun"]},"ziwei-sanfang":{refs:["zw-sanfang"]},"ziwei-sihua":{refs:["zw-sihua-lu","zw-sihua-ji"]},"ziwei-miaowang":{refs:["zw-miaowang"]},"ziwei-daxian":{refs:["zw-daxian"]},"ziwei-shengong":{refs:["zw-shenming"]},"ziwei-kongjie":{refs:["zw-kongjie"]},"ziwei-poge":{refs:["zw-poge-ruge","zw-poge-sanfang"]},"ziwei-feixing":{status:"general",book:"紫微斗数全书 / 飞星派",chapter:"四化篇",reason:"宫干飞化属飞星派传法,非《全书》单条原文"},"ziwei-sanfang-fei":{status:"general",book:"紫微斗数全书 / 飞星派",chapter:"四化篇",reason:"三方四正同飞属飞星派读法,未定位到单条原文"},"ziwei-jichuanji":{status:"general",book:"紫微斗数全书 / 飞星派",chapter:"四化篇",reason:"忌转忌串连属飞星派读法,未定位到单条原文"},"liuyao-yongshen":{refs:["zs-yongshen"]},"liuyao-fushen":{refs:["zs-fushen"]},"liuyao-wangshuai":{refs:["zs-yuejian"]},"liuyao-yongshen-shuai":{refs:["zs-richen"]},"liuyao-quanggu-shuai":{refs:["zs-yuejian-zhuli"]},"liuyao-dongbian":{refs:["zs-dongbian"]},"liuyao-liushen":{refs:["zs-liushen"]},"liuyao-liuhe":{refs:["zs-liuhe"]},"liuyao-liuchong":{refs:["zs-liuchong"]},"liuyao-fanyin":{refs:["zs-fanyin"]},"liuyao-fuyin":{refs:["zs-fuyin"]},"liuyao-jintui":{refs:["zs-jintui"]},"liuyao-yingqi":{refs:["zs-yingqi"]},"liuyao-jintui-yong":{refs:["zs-jintui"]},"liuyao-yingqi-exact":{status:"todo",book:"增删卜易",chapter:"各門類應期總注章",reason:"逐条应期尚未实现,等 20+ 条有应验日期的卦例"},"meihua-tiyong":{refs:["mh-tiyong"]},"daliuren-sike":{refs:["dl-jigong","dl-zeike"]},"qimen-yinyang":{refs:["qm-yinyang"]},"qimen-jixing":{refs:["qm-jixing"]},"qimen-rumu":{refs:["qm-rumu"]},"qimen-wangshuai":{refs:["qm-wangshuai"]},"qimen-wangshuai-yong":{refs:["qm-men-gong"]},"qimen-gan-shengke":{status:"general",book:"奇门遁甲统宗",chapter:"卷十二·玄机赋(下)",reason:"底本有「奇仪与日干」生克条,未见单列「干与落宫」生克条;干宫取象为通行读法,不拿十神条文冒充"},"qimen-ganying":{status:"general",book:"奇门十干应克 / 奇门遁甲元灵经",chapter:"通行 100 组表 / 卷二·天盘加地盘吉凶",reason:"100 组为通行表汇编,元灵经只存甲、乙、丙三组,非单条原文"},"tarot-orientation":{status:"general",book:"韦特塔罗",chapter:"逆位读法",reason:"韦特体系无中文古籍原文,逆位读法属近代流派"}};function P(){return[...Y.map(z=>c(z.id)),...B.map(z=>c(z.id))]}function N(z,g=""){const $e=q[z];if(!$e)return{source:g,citations:[],status:"general",reason:"未建立引文索引"};if(Array.isArray($e.refs)&&$e.refs.length){const G=$e.refs.map(c).filter(Boolean),J=G.map(k=>`《${k.bookName}·${k.chapter}》${k.url}`).join(";");return{source:`${g}(原文索引:${J})`,citations:G,status:"verified"}}return{source:`${g}(${$e.status==="todo"?"待补原文":"通行说,原文待补"}:${$e.book||""}${$e.chapter?`·${$e.chapter}`:""})`,citations:[],status:$e.status||"general",reason:$e.reason||""}}function L(){return Object.entries(se).filter(([,z])=>Array.isArray(z.citationIds)&&z.citationIds.length).map(([z,g])=>({name:z,citationIds:g.citationIds,citations:g.citationIds.map(c).filter(Boolean)}))}return{CITATION_BOOKS:me,CITATIONS:B,citationOf:c,CARD_CITATIONS:q,allCitations:P,citationSourceOf:N,patternCitations:L}})(),V["ziwei-words"]=(function(){const Y={命宫:{field:"你自己、性格与选择的出发点",ask:"我是个什么样的人、遇事怎么反应",drift:"整个人的状态与主见",huaJi:"容易对自己不满意,反复琢磨「是不是还不够好」"},兄弟:{field:"手足、同辈与合作",ask:"和同辈人怎么相处",drift:"同辈之间的支持与较劲",huaJi:"同辈之间容易有拉扯,合作前先把账算清楚"},夫妻:{field:"亲密关系与伴侣",ask:"感情里怎么相处",drift:"关系的温度与相处方式",huaJi:"感情里容易反复计较,越在意越觉得累"},子女:{field:"子女、晚辈与作品",ask:"和晚辈、和自己的创作怎么相处",drift:"照顾与创造",huaJi:"对子女或作品容易操心过头,投入多而见效慢"},财帛:{field:"赚钱方式与现金流",ask:"钱从哪来、留不留得住",drift:"进项与花销",huaJi:"钱上容易反复,进得来也容易散,先管现金再谈收益"},疾厄:{field:"身体底子与情绪出口",ask:"身体哪里要多留意",drift:"作息与身体的信号",huaJi:"情绪容易往身体上走,压力最先反映在睡眠与肠胃"},迁移:{field:"出门、环境与人缘",ask:"在外发展顺不顺",drift:"外部环境与人际机会",huaJi:"在外容易遇到消耗,换环境前先把代价想清楚"},交友:{field:"朋友、同事与部属",ask:"怎么识人、怎么带人",drift:"身边的人际圈",huaJi:"容易替别人操心、被人情拖住,帮人之前先给自己留余地"},官禄:{field:"事业方向与做事方式",ask:"做什么工作、怎么做事",drift:"工作与身份感",huaJi:"工作上容易反复调整方向,先把一件事做完再谈换"},田宅:{field:"家庭、住所与积累",ask:"安家、置产与家底",drift:"居住环境与家庭气氛",huaJi:"家里的事容易牵扯精力,置产与搬迁宜缓不宜急"},福德:{field:"精神享受与内在节奏",ask:"怎么让自己舒服、怎么放松",drift:"心境、兴趣与休息",huaJi:"想得多、放不下,休息也休息不踏实"},父母:{field:"长辈、上司与文书",ask:"和长辈上级的关系、文书合约",drift:"长辈缘与合同文书",huaJi:"与长辈上级容易有隔阂,文书合约要逐条看清"}},A={紫微:{alias:"帝星",key:"尊",bright:"心里像有根定海针,遇事敢拍板,也压得住场面",dim:"容易端着架子,想法很多却不肯先低头",gift:"定方向、分主次、把人组织起来",watch:"面子与身段"},天机:{alias:"智星",key:"动",bright:"脑子快、点子多,变化里反而找得到路",dim:"想法多过行动,容易在犹豫里把时间耗掉",gift:"策划、推演、把复杂的事拆成步骤",watch:"想太多、坐不住"},太阳:{alias:"日主",key:"公",bright:"外放热心,愿意担事,也容易被看见",dim:"付出多、回报少,容易觉得不被认可",gift:"对外沟通、带头做事、把光照到别人身上",watch:"用力过度、忘了照顾自己"},武曲:{alias:"财星",key:"实",bright:"务实果决,认结果、扛得住硬活",dim:"容易只认数字,人情上显得生硬",gift:"算账、执行、把事做扎实",watch:"太硬、不给缓冲"},天同:{alias:"福星",key:"柔",bright:"脾气温和,能把紧张的气氛化开",dim:"容易贪舒服、事情拖着不动",gift:"协调、服务、让人放松下来",watch:"安逸与拖延"},廉贞:{alias:"囚星",key:"细",bright:"细腻又讲原则,做事有分寸",dim:"容易较真到钻牛角尖,情绪起伏也大",gift:"抓细节、守规矩、做需要精度的活",watch:"情绪郁结、过度执着"},天府:{alias:"库星",key:"稳",bright:"稳得住、会存会调度,是团队的压舱石",dim:"偏保守,机会来了也不敢动",gift:"守成、管资源、把局面稳住",watch:"求稳到错过时机"},太阴:{alias:"月主",key:"藏",bright:"心思细、耐得住,静下来能做深事",dim:"敏感多虑,情绪都藏在心里",gift:"研究、文案、需要长期专注的活",watch:"内耗与睡眠"},贪狼:{alias:"桃花",key:"贪",bright:"好奇、活络、人缘好,学什么都快",dim:"什么都想要,结果哪样都没做透",gift:"开拓、交际、把资源变成机会",watch:"边界与节制"},巨门:{alias:"暗星",key:"辩",bright:"口才与逻辑都好,靠说理就能服人",dim:"容易多疑,一句话能听出三层意思",gift:"谈判、教学、法务、需要辨析的活",watch:"言语是非与疑心"},天相:{alias:"印星",key:"辅",bright:"讲规矩、会协调,是让人放心的副手",dim:"容易迁就别人,委屈自己也不说",gift:"协调、执行、把流程跑顺",watch:"太在意别人怎么看"},天梁:{alias:"荫星",key:"荫",bright:"有长者气,能扛事、也愿意护着人",dim:"操心过度,替别人背了不该背的",gift:"顾问、教育、医护、替人排忧",watch:"管太多、放不下"},七杀:{alias:"将星",key:"决",bright:"果断敢冲,压力越大越顶得住",dim:"容易硬碰硬,把关系撞出裂痕",gift:"开拓、攻坚、从零打出一块地",watch:"急与硬"},破军:{alias:"耗星",key:"破",bright:"敢破敢立,旧局推得动、新局立得起",dim:"推翻了却重建不了,反复折腾",gift:"变革、重组、做从零到一的事",watch:"冲动与耗损"}},Se={紫微天府:{gist:"尊贵加稳重:既想有位置,也守得住家底,适合在体系里往上走",watch:"别把稳做成不动"},紫微贪狼:{gist:"帝星带桃花:有格局也有玩心,门路多、欲望也多",watch:"兴趣铺太开,主次容易乱"},紫微天相:{gist:"帝星配印:权力与规矩并存,做事讲体面,也讲章法",watch:"太要好看,容易被形式拖住"},紫微七杀:{gist:"帝星加将星:气魄大、手腕硬,开得了局面",watch:"压得住人也容易压伤人"},紫微破军:{gist:"帝星带耗:敢于推倒重来,一生常有大的转身",watch:"代价是先破后立,破之前先备好退路"},天机太阴:{gist:"机月同宫:心思细、筹划深,适合幕后与会动脑子的活",watch:"算得太细,反而迟迟不动手"},天机巨门:{gist:"机巨同宫:头脑快、嘴也利,论辩是强项",watch:"话多容易生是非"},天机天梁:{gist:"机梁同宫:善谋又讲原则,常是出主意又担责任的人",watch:"替人想太多,累的是自己"},太阳太阴:{gist:"日月同宫:外放与内敛同时在身上,两种节奏互相拉扯",watch:"别自己跟自己打架"},太阳巨门:{gist:"日巨同宫:靠一张嘴把事说成,适合以表达与说服为业",watch:"说话直,容易得罪人"},太阳天梁:{gist:"阳梁同宫:热心又有长者气,助人型,容易被人依赖",watch:"别把别人的事全揽过来"},武曲天府:{gist:"武府同宫:会算也会守,财务与执行双强,稳中有实",watch:"只算眼前账,容易错过长线"},武曲贪狼:{gist:"武贪同宫:务实与欲望并存,传统说三十岁以后越走越开",watch:"先把本事磨厚,别急着要结果"},武曲天相:{gist:"武相同宫:讲效率也讲规矩,适合在大机构里做执行",watch:"规矩压得太死,手脚会绑住"},武曲七杀:{gist:"武杀同宫:硬碰硬的组合,冲劲足、压力也大",watch:"成事快,耗得也快"},武曲破军:{gist:"武破同宫:能打也能拆,适合攻坚与改革",watch:"聚散都快,留不住的要认"},天同太阴:{gist:"同阴同宫:温和细腻,重感受,适合安静一点的环境",watch:"太舒服就不想动"},天同巨门:{gist:"同巨同宫:想得软、说得直,容易在亲近的人面前失控",watch:"把话说软一点"},天同天梁:{gist:"同梁同宫:有福气也有长者缘,遇事常有人替你说句话",watch:"依赖久了会长不大"},廉贞天府:{gist:"廉府同宫:精细配稳重,守得住规矩也管得住资源",watch:"过分谨慎会错过窗口"},廉贞贪狼:{gist:"廉贪同宫:欲望与原则拉扯,才艺多、诱惑也多",watch:"重心要自己定,别被带着走"},廉贞天相:{gist:"廉相同宫:讲分寸、重体面,做事有章法",watch:"被规矩绑住手脚"},廉贞七杀:{gist:"廉杀同宫:刚烈果决,抗压强,敢碰难事",watch:"硬碰硬伤的是关系"},廉贞破军:{gist:"廉破同宫:敢于破局,变动多,适合在动荡里做事",watch:"变动要有节奏,别一直重来"}},se={擎羊:{nature:"锐、直接、带冲撞",inPalace:"让这一宫的事来得急,容易有竞争与对抗",remind:"慢半拍再回应,别用人身去硬碰"},陀罗:{nature:"拖、磨、反复",inPalace:"让这一宫的事拖得久,越急越推不动",remind:"把大目标切成小段,靠节奏推进而不是靠爆发"},火星:{nature:"急、爆、来得快去得快",inPalace:"让这一宫的事突然发生,情绪也容易点着",remind:"起的当下先别做决定,隔一天再看"},铃星:{nature:"闷、记、往里烧",inPalace:"让这一宫的事闷着发酵,不说并不代表没有",remind:"把不满讲出来,比憋着省事"},地空:{nature:"抽离、落空",inPalace:"让这一宫的努力容易「看着有、抓不住」",remind:"重要的事留书面凭证,别只靠口头约定"},地劫:{nature:"耗、变动",inPalace:"让这一宫的资源容易在变动里流失",remind:"先设止损线,再谈投入"},天刑:{nature:"约束、规矩",inPalace:"这一宫容易受规则或外力约束",remind:"照流程走,别找捷径"},天姚:{nature:"吸引、暧昧",inPalace:"这一宫容易有人情与暧昧的牵扯",remind:"边界说清楚,别用含糊换方便"},咸池:{nature:"情欲、外缘",inPalace:"这一宫容易被外在的吸引牵动",remind:"分清一时心动与长期相处"},孤辰:{nature:"孤、独",inPalace:"这一宫的事常要自己扛",remind:"主动开口求援,不丢人"},寡宿:{nature:"淡、疏",inPalace:"这一宫的关系容易偏淡",remind:"关系要靠主动经营"},破碎:{nature:"碎、不整",inPalace:"这一宫的成果容易零散、难成整块",remind:"把事收尾收完整"},天哭:{nature:"忧、敏感",inPalace:"这一宫容易让人心里发紧",remind:"情绪来了先照顾好身体"},天虚:{nature:"虚、不实",inPalace:"这一宫容易雷声大雨点小",remind:"看落地证据,不看承诺"}},me=["擎羊","陀罗","火星","铃星","地空","地劫"],B={左辅:{nature:"助力、帮手",gift:"这一宫容易有人搭把手",note:"多把事交出去,别一个人扛"},右弼:{nature:"援手、缓和",gift:"这一宫容易在关键处被接住",note:"接受帮助,也记得回礼"},文昌:{nature:"文书、条理",gift:"这一宫的书面与规划能力强",note:"把想法落成文档"},文曲:{nature:"才艺、口才",gift:"这一宫的表达与感受力好",note:"用表达换机会"},天魁:{nature:"明文贵人",gift:"这一宫容易遇到明面上的提携",note:"该争取的位置直接开口"},天钺:{nature:"暗助贵人",gift:"这一宫常有人在背后帮忙",note:"人情记着,早晚用得上"},禄存:{nature:"守财、积存",gift:"这一宫的东西守得住",note:"先存后花"},天马:{nature:"动、驿马",gift:"这一宫的事常与移动、外地有关",note:"动起来比原地等更有利"},台辅:{nature:"台面、名分",gift:"这一宫容易被摆到台面上",note:"露脸的机会别推"},封诰:{nature:"封赏、认证",gift:"这一宫的资质与头衔有用",note:"该考的证早点考"},红鸾:{nature:"喜事",gift:"这一宫容易有喜庆与好消息",note:"好消息要说出来"},天喜:{nature:"喜庆、人缘",gift:"这一宫的人缘与气氛好",note:"多参加场合"},龙池:{nature:"雅、工整",gift:"这一宫有审美与工整的一面",note:"把细节做好"},凤阁:{nature:"华、体面",gift:"这一宫讲究排场与观感",note:"该有的体面别省"},三台:{nature:"地位、层级",gift:"这一宫容易有位置感",note:"按层级办事"},八座:{nature:"席位、稳定",gift:"这一宫坐得稳",note:"守住已有的位置"},恩光:{nature:"恩、被赏识",gift:"这一宫容易被赏识",note:"把成果让人看见"},天贵:{nature:"贵气、身份",gift:"这一宫带一点贵气",note:"抬头挺胸,别自轻"}},U={禄:{key:"得",gist:"顺手、有人帮,做起来不费劲"},权:{key:"掌",gist:"要自己拿主意,也容易用力过猛"},科:{key:"名",gist:"带一层体面与名声,遇事多能收得漂亮"},忌:{key:"执",gist:"容易在意、反复,是心里放不下的那一块"}},c={庙:{word:"得地",tone:"good",plain:"长处放得开,几乎是本色出演"},旺:{word:"有力",tone:"good",plain:"特点容易显出来,做事有底气"},得:{word:"尚可",tone:"neutral",plain:"能用,需要一点外力配合"},利:{word:"中平",tone:"neutral",plain:"长处与短板都在,看怎么用"},平:{word:"偏弱",tone:"neutral",plain:"不太争得到位置,宜借势"},不:{word:"不得地",tone:"bad",plain:"长处不容易使上,得多绕一步"},陷:{word:"失地",tone:"bad",plain:"容易往负面走,更需要自觉"}},q={紫府同宫:{gist:"帝星与库星同坐命宫:格局稳、底气足,天生适合做统筹",advice:"别把稳做成保守,该出手时出手"},紫府朝垣:{gist:"紫微天府会照命宫:有贵气也有实力,环境一般不会太差",advice:"靠结构做事,别只靠个人硬撑"},君臣庆会:{gist:"紫微或天府坐命,又得左辅右弼魁钺会照:有人帮、有位置",advice:"把团队搭起来,别一个人扛"},极向离明:{gist:"紫微在午守命:处在最亮的位置,格局与声势都强",advice:"光环大,注意别把人压住"},七杀朝斗:{gist:"七杀在子午守命:杀伐果断,能在压力下成事",advice:"硬气用在事上,不用在关系上"},英星入庙:{gist:"破军在子午守命:敢破敢立,常能从零打出一片",advice:"破之后要有立,别只破不立"},石中隐玉:{gist:"巨门在子午守命:本事藏在里面,要靠机会慢慢磨出来",advice:"别因为一时不被看见就放弃"},巨日同宫:{gist:"巨门太阳同宫:靠表达与说服开路,越抛头露面越有利",advice:"话多的时候注意分寸"},日月夹命:{gist:"太阳太阴分居命宫两侧:内外两种力量都来帮你",advice:"一快一慢,别自己跟自己打架"},日月对照:{gist:"太阳太阴分守命迁:外放与内敛互为表里",advice:"换环境对你是加分项"},左右夹命:{gist:"左辅右弼夹命:关键处总有人搭手",advice:"主动求助,贵人才好使力"},昌曲夹命:{gist:"文昌文曲夹命:文书、考试、表达上占便宜",advice:"把才华落到作品与证书上"},魁钺夹命:{gist:"天魁天钺夹命:明暗两路都有人提携",advice:"机会来了别客气"},三奇嘉会:{gist:"化禄化权化科会于命宫三方:三样都到位,是标准的顺局",advice:"别把顺境当常态,留一手"},双禄朝垣:{gist:"禄存与化禄同会命宫三方:进项与积累两头都有",advice:"存下来的才算数"},府相朝垣:{gist:"天府天相会于命宫三方:稳当、讲规矩,适合体系内发展",advice:"按流程走,别嫌慢"},禄马交驰:{gist:"禄存与天马同宫或对照:动中得财,越跑越有",advice:"别在原地等机会"},月朗天门:{gist:"太阴在亥守命:心思澄明,适合做需要静气的事",advice:"把敏感用在专业上,别用在揣测上"},日出扶桑:{gist:"太阳在卯守命:正当升起的位置,势头好、人也敞亮",advice:"趁势做事,别等"},机月同梁:{gist:"天机太阴天梁会命:动脑、静气、长者缘齐备,适合稳定的专业路线",advice:"少折腾,深耕一门"},武贪同行:{gist:"武曲贪狼同宫:务实与欲望并存,传统说三十岁后越走越开",advice:"先把本事磨厚,别急着要结果"},命无正曜:{gist:"命宫无主星:性格由环境与对宫塑造,适应力是你的长处",advice:"选对环境比选对方法更要紧"},杀破狼:{gist:"七杀破军贪狼会命:一生变动多、节奏快,适合在动荡里做事",advice:"把变动变成主动选择,而不是被动应付"},双禄交流:{gist:"禄存与化禄相对:财路两头通",advice:"现金流要管好,小心两头都花"},火贪铃贪:{gist:"贪狼遇火星或铃星:爆发型的组合,机会来得猛",advice:"机会来时别犹豫,走时别恋战"},火铃夹命:{gist:"火星铃星分居命宫两侧:情绪容易被点着,也容易被消耗",advice:"先把火气压一压,事就顺一半"},羊陀夹命:{gist:"禄存守命、擎羊陀罗前后夹之:位置稳,但四周都是压力",advice:"守得住就别急着动"},羊陀夹忌:{gist:"化忌与禄存同宫、羊陀夹之:传统里最需要留意的一类结构",advice:"那件事慢一点,让别人先动"},铃昌陀武:{gist:"铃星文昌陀罗武曲会于命宫三方:想法多、爱走弯路,容易自己把自己绊住",advice:"做决定前先写下来,隔一夜再定"},命里逢空:{gist:"地空地劫会命:计划常有意外的抽离,落袋才算数",advice:"留凭证、留退路"},马头带箭:{gist:"擎羊在午守命:锋芒极盛,成事快、伤人也不慢",advice:"冲劲用在攻坚,不用在争输赢"},天罗地网:{gist:"命宫在辰戌:天罗地网,走的是有限制的路",advice:"在框里做出成绩,别硬撞框"},刑囚夹印:{gist:"廉贞天相同守命宫于子午又遇擎羊:规则与冲撞同时压过来",advice:"循规蹈矩是保命符"},泛水桃花:{gist:"贪狼在子守命:才情与情缘都旺,重心容易散",advice:"给自己立一条不越的线"}},P={奴仆:"交友",奴仆宫:"交友",事业:"官禄",事业宫:"官禄"};function N(s){const t=P[String(s||"")]||String(s||"");return Y[t]||null}function L(s){return c[String(s||"")]||null}function z(s){return A[String(s||"")]||null}function g(s){const t=(Array.isArray(s)?s:[]).filter(Boolean);return t.length!==2?null:Se[t.join("")]||Se[t.slice().reverse().join("")]||null}function $e(s,t){const d=N(t),n=U[s];if(!d||!n)return"";if(s==="忌")return`化忌入${t}:${d.huaJi}`;const m={禄:`${d.field}上来路顺、有人递梯子`,权:`${d.field}上你会想自己拿主意,也容易用力过猛`,科:`${d.field}上体面与名声会帮到你`}[s];return m?`化${s}入${t}:${m}`:""}function G(s){const t=(Array.isArray(s)?s:[]).filter(m=>se[m]);if(!t.length)return"";const d=t.slice(0,3).map(m=>`${m}(${se[m].nature})${se[m].inPalace}`),n=t.length===1?se[t[0]].remind:"先处理最急的那一件,其余的会跟着松动";return`${d.join(";")}。做法上:${n}。`}function J(s){return(Array.isArray(s)?s:[]).map(t=>se[t]&&se[t].nature).filter(Boolean).join("、")}function k(s){const t=(Array.isArray(s)?s:[]).filter(d=>B[d]);return t.length?t.slice(0,3).map(d=>`${d}${B[d].gift.replace(/^这一宫/,"")}`).join(","):""}function T(s,t){const d=q[String(s||"")];return d||(t==="good"?{gist:"结构偏向有利,具体落在哪件事,要看它牵动的是哪一宫",advice:"顺势把事情做完整"}:t==="bad"?{gist:"结构偏向消耗,提示这一块值得多一分留意",advice:"先把节奏放缓,再谈取舍"}:{gist:"结构中性,成事与否更多看后天怎么用",advice:"当成提醒,不当成结论"})}return{PALACE_FIELD:Y,STAR_EXTRA:A,STAR_PAIR:Se,SHA_STAR:se,MAIN_SHA:me,FU_STAR:B,HUA_READ:U,BRIGHT_READ:c,PATTERN_READ:q,palaceFieldOf:N,brightRead:L,starExtraOf:z,starPairOf:g,huaInLine:$e,shaLineOf:G,shaNatureOf:J,fuLineOf:k,patternReadOf:T}})(),V["bazi-words"]=(function(){const Y={甲:{image:"参天之木",look:"身形多半偏修长,肩背挺,站着有股站相",temper:"直、有担当,认定的事不太会转弯",gift:"扛得起事,适合把一摊子组织起来",trap:"不会转弯,撞上南墙也硬顶"},乙:{image:"藤萝之木",look:"身形柔韧,气质亲和,不太有攻击性",temper:"柔中带韧,擅长借力,能屈能伸",gift:"协调、渗透,在缝隙里也能生长",trap:"太依赖环境,环境一换就慌"},丙:{image:"太阳之火",look:"面色偏红润,精神足,进门容易被注意到",temper:"外放热情,心里想什么脸上就写着什么",gift:"感染人、带动气氛,适合站到台前",trap:"三分钟热度,来得快去得也快"},丁:{image:"灯烛之火",look:"偏清瘦,眼神亮,动静之间有点静气",temper:"内敛细腻,认准一件事能守很久",gift:"专注、耐得住,适合做需要磨的活",trap:"敏感,容易在心里反复内耗"},戊:{image:"城墙之土",look:"骨架偏厚,给人稳当、压得住场的感觉",temper:"沉稳慢热,不轻易表态,表态了就算数",gift:"承载与守成,能把局面稳稳托住",trap:"太钝,机会过了才反应过来"},己:{image:"田园之土",look:"面目温和,身形圆润,没什么棱角",temper:"包容细致,想得多,习惯先照顾别人",gift:"经营与服务,把琐碎的事理顺",trap:"纠结,反复权衡反而错过时机"},庚:{image:"刀剑之金",look:"骨架硬朗,气场直接,说话不绕弯",temper:"果决、讲义气,眼里容不下拖泥带水",gift:"执行与开疆,难啃的骨头敢接",trap:"太刚,锋利的一面容易伤到亲近的人"},辛:{image:"珠玉之金",look:"清秀讲究,衣着细节看得出用心",temper:"精致敏锐,对分寸与体面很在意",gift:"审美与精细活,做得比说的好",trap:"挑剔,也容易被一句评价刺到"},壬:{image:"江河之水",look:"身形偏厚实,眉眼开阔,气度大",temper:"大开大合,爱自由,不喜欢被框住",gift:"统筹与流动,能把资源盘活",trap:"散漫,摊子铺开却收不回来"},癸:{image:"雨露之水",look:"清秀安静,存在感不抢,但耐看",temper:"细腻、直觉强,心事多半自己消化",gift:"感知与研究,能注意到别人漏掉的细节",trap:"多愁,遇事先退,容易错过表态的时机"}},A={正官:{role:"规则与名分",gift:"守序可靠,答应的事会做到",trap:"太在意评价,放不开手脚",love:"重承诺,但不擅长把在意说出口",work:"适合在成体系的组织里按层级上升"},七杀:{role:"压力与冲劲",gift:"抗压强、敢担事,越难越来劲",trap:"急躁,习惯用硬碰解决问题",love:"容易被有主见的人吸引,也容易互相较劲",work:"适合高挑战、要快速决断的岗位"},正财:{role:"稳定收入与责任",gift:"务实会积累,账目清楚",trap:"算得太细,不敢为机会冒一点险",love:"重实际,用行动多于言语",work:"适合按劳取酬、积累型的路径"},偏财:{role:"机会与流动资源",gift:"善抓机会、人脉活络",trap:"铺得太开,钱和精力都容易留不住",love:"大方、桃花多,边界要自己划",work:"适合业务、投资、资源整合"},食神:{role:"表达与享受",gift:"会生活,也能把喜欢的事做成产出",trap:"太舒服就懒下来,节奏一松就拖",love:"温柔会照顾人,也怕麻烦",work:"适合技术、创作、餐饮、教育"},伤官:{role:"才华与不服",gift:"点子多、敢改,能做出别人做不出的东西",trap:"嘴上不饶人,赢了道理输了关系",love:"要求高,容易挑对方的刺",work:"适合改革、创意、专业型岗位"},正印:{role:"支持与学习",gift:"有耐心、学得进,靠得住",trap:"依赖心重,想得多做得少",love:"需要被理解与照顾",work:"适合研究、文教、需要资质的岗位"},偏印:{role:"偏门与钻研",gift:"冷门的门类也能钻透",trap:"孤,想法多但不爱解释",love:"需要空间,不喜欢被管",work:"适合专精技术、冷门专业"},比肩:{role:"同伴与自我",gift:"独立、扛得住,不轻易麻烦别人",trap:"固执,什么都想亲力亲为",love:"相处像朋友多过像恋人",work:"适合并肩作战或独立负责一块"},劫财:{role:"竞争与行动",gift:"行动快、敢抢,机会面前不犹豫",trap:"冲动,容易在钱和人情上破口",love:"来去都快,需要给彼此空间",work:"适合业务冲刺、竞争型岗位"},比劫:{role:"自我与同辈",gift:"独立、扛得住,不太依赖别人",trap:"固执,什么都想自己来",love:"相处像并肩的伙伴",work:"适合独立负责一块,或与同频的人并肩"},食伤:{role:"表达与产出",gift:"有想法,也做得出东西",trap:"话多或要求高,容易得罪人",love:"重视交流,也容易挑刺",work:"适合创作、技术、教学这类要表达的岗位"},财:{role:"资源与现实",gift:"务实、会算账、抓得住机会",trap:"把安全感全押在数字上",love:"重实际,用行动多于言语",work:"适合业务、财务、资源整合"},官杀:{role:"规则与压力",gift:"守序、抗压、担得起责任",trap:"绷得太紧,习惯用硬碰解决",love:"重承诺,也容易管得太宽",work:"适合体系内按层级上升,或高压高挑战的岗位"},印:{role:"支持与学习",gift:"有耐心、学得进、靠得住",trap:"想得多做得少,依赖现成的东西",love:"需要被理解与照顾",work:"适合研究、文教、需要资质的岗位"}},Se={强:{泄:"这盘的问题是「力气有余、出口不够」:不缺劲头,缺的是把劲往哪使。先把方向定下来,比再多加一把力更管用。",制:"这盘气足又带压力:能扛事,但也容易一直绷着。学会把压力分出去,比硬顶更能长久。",耗:"这盘底子厚,适合在资源与实务上做文章:把力气换成看得见的成果,别停在想法里。"},弱:{生:"这盘底子偏薄,靠「有人托一把」最有效:找对平台、师友与环境,比自己硬撑省力得多。",比:"这盘单打独斗会累,找到同频的人并肩做,反而能把短板补上。",泄:"这盘不宜再往外耗,先收一收摊子,把根基补稳,再谈扩张。"},中:{default:"这盘五行相对均衡,没有哪一处特别极端:走哪条路都能走,靠的是选择与坚持,不是运气。"}};function se(q,P){const N=/强/.test(String(q||"")),L=/弱/.test(String(q||"")),z=Array.isArray(P)?P:[String(P||"")];if(!N&&!L)return Se.中.default;const g=N?Se.强:Se.弱;for(const $e of z){const G=/官杀/.test($e)?"制":/财/.test($e)?"耗":/食伤/.test($e)?"泄":/印/.test($e)?"生":/比劫/.test($e)?"比":"";if(G&&g[G])return g[G]}return N?g.泄:g.生}const me=[[/自刑/,"自刑:自己跟自己较劲,多半是内耗而不是外来的事"],[/三会|三合/,"三合三会:几股力并成一股,做同类的事更容易成势"],[/六合|合/,"合:人事上容易谈拢,也容易被关系绑住、脱不开身"],[/相冲|冲/,"冲:桩子会晃,变动与拉扯偏多,宜先稳住再动"],[/相刑|刑/,"刑:规矩与情绪上的摩擦,事情不大但磨人"],[/相害|害/,"害:暗处的损耗,多是说不清的不顺"],[/相破|破/,"破:本来成形的事容易散,收尾要多花一分力"]];function B(q){const P=[];for(const N of Array.isArray(q)?q:[])for(const[L,z]of me)if(L.test(N)&&!P.includes(z)){P.push(z);break}return P}function U(q){return A[String(q||"")]||null}function c(q){return Y[String(q||"")]||null}return{STEM_PORTRAIT:Y,TENGOD_PORTRAIT:A,FRAME_TONE:Se,frameToneOf:se,relationNotes:B,godPortraitOf:U,stemPortraitOf:c}})(),V.interpret=(function(){const{HEX64:Y,HEX_BY_CORE:A,TRIGRAM:Se,YAO_POSITION:se,MOVING_NATURE:me,ZIWEI_STARS:B,WUXING_INDUSTRY:U,WUXING_ORGAN:c,TENGOD_STYLE:q,LIUREN_JIANG:P,TAROT_ELEMENT_FOCUS:N,DISCLAIMER:L}=V["interpret-data"]||{},{MUTAGEN:z}=V.ziwei||{},{palaceFieldOf:g,starExtraOf:$e,starPairOf:G,brightRead:J,huaInLine:k,shaLineOf:T,shaNatureOf:s,fuLineOf:t,patternReadOf:d,MAIN_SHA:n}=V["ziwei-words"]||{},{stemPortraitOf:m,godPortraitOf:S,frameToneOf:p,relationNotes:j}=V["bazi-words"]||{},{bodyLabels:_,yongshenOf:ce}=V.liuyao||{},be=[{key:"overall",label:"整体运势"},{key:"work",label:"工作与职业选择"},{key:"career",label:"事业发展"},{key:"love",label:"爱情与感情"},{key:"health",label:"健康状况"}],Ae={bazi:"natal",ziwei:"natal",liuyao:"divination",meihua:"divination",daliuren:"divination",tarot:"card"},h={bazi:"八字",ziwei:"紫微斗数",liuyao:"六爻",meihua:"梅花易数",daliuren:"大六壬",tarot:"塔罗"},v=[{key:"general",label:"综合",dim:null,focus:""},{key:"wealth",label:"财运",dim:"work",focus:"钱财进出的落点主要看「工作与职业选择」与「事业发展」这两条。"},{key:"career",label:"事业",dim:"career",focus:"事业发展这条与你的问题最直接。"},{key:"love",label:"感情",dim:"love",focus:"感情这条与你的问题最直接。"},{key:"health",label:"健康",dim:"health",focus:"健康这条与你的问题最直接;下面只作提醒,不作任何诊断。"},{key:"study",label:"学业",dim:"career",focus:"学业与考试更贴近「事业发展」这条,讲的是长期积累与阶段进展。"},{key:"travel",label:"出行",dim:"overall",focus:"出行与迁动更贴近「整体运势」这条,看的是当下这一段的大环境。"}],le="general",ae=l=>v.find(H=>H.key===l)||v[0];function je(l){const H=w(l)?l:{},u=typeof H.question=="string"?H.question.trim().slice(0,200):"",x=ae(H.direction);return{question:u,direction:x.key,directionLabel:x.label,echo:u?`问题:${u} | 询问方向:${x.label}`:`询问方向:${x.label}`}}function ge(l,H,u){const x=Array.isArray(l)?l.slice():[],$=ae(H&&H.direction);if($.dim){const ve=x.findIndex(te=>te&&te.key===$.dim);if(ve>0){const te=x[ve];x.splice(ve,1),x.unshift(te)}if(x[0]&&x[0].key===$.dim){const te=H.question?`就你所问的「${H.question}」来看(${$.label}方向)——${$.focus}`:`按${$.label}这个方向看——${$.focus}`;x[0]=Object.assign({},x[0],{text:`${te}${x[0].text}`,focused:!0})}}let M=u||"";return H.question?M=`你问的是「${H.question}」${$.key==="general"?"。":`,方向是${$.label}。`}${M}`:$.key!=="general"&&(M=`方向是${$.label}。${M}`),{dims:x,lead:M}}const E={大吉:"外部环境对你比较配合,属于可以主动争取的阶段",吉:"整体偏顺,适合稳步推进手上的事",平:"起伏不大,更适合打基础、补短板",忌:"摩擦与消耗偏多,宜守成、减少冒进",大忌:"压力相对集中,宜降低预期、先保住基本盘"},R={大吉:"想做的事可以排进日程,别只停在想法上",吉:"按已有节奏走,把一件事做完整比开新头更划算",平:"把精力投向积累:技能、资质、人脉都算数",忌:"少做大的调整,先把手上的事收尾",大忌:"给自己留出缓冲,重要决定不妨往后放一放"},w=l=>l&&typeof l=="object",f=(l,H,u="")=>w(l)&&l[H]!=null?l[H]:u,b=(l,H="、")=>Array.isArray(l)?l.filter(Boolean).join(H):String(l||"");function F(l,H,u){if(Y[l])return{full:l,...Y[l]};const x=typeof l=="string"&&l.length>2?l.slice(2):l;if(A[x]){const ve=A[x];return{full:ve,...Y[ve]}}const $=Se[H]||{},M=Se[u]||{};return{full:l||"本卦",meaning:`${$.nature||H||""}在${M.nature||u||""}上,${$.trait||""}遇${M.trait||""}`.trim(),scene:"按上下卦的取象体会这一卦的大意"}}function C(l){const H=String(l||"");return/七杀/.test(H)?"七杀":/正官/.test(H)?"正官":/正财/.test(H)?"正财":/偏财|财格/.test(H)?"偏财":/伤官/.test(H)?"伤官":/食神|食伤/.test(H)?"食神":/正印/.test(H)?"正印":/偏印|枭/.test(H)?"偏印":/劫财/.test(H)?"劫财":/比肩|比劫/.test(H)?"比肩":/官/.test(H)?"正官":/财/.test(H)?"偏财":/印/.test(H)?"正印":""}function ee(l,H){const u=se.find(x=>x.pos===l)||se[0];return`${u.name}(${u.gist}):${u.tone}${H?";此处发动,"+(H.yinYang==="阳"?me.yang:me.yin):""}`}function Ne(l){const H=w(l.dayMaster)?l.dayMaster:{},u=w(l.strength)?l.strength:{},x=w(l.frame)?l.frame:{},$=w(x.yongshen)?x.yongshen:{},M=l.climate||(w($.climate)?$.climate:w($.tiaohou)?$.tiaohou:null),ve=w(l.wuxing)?l.wuxing:{},te=f(u,"level","中和"),Z=Array.isArray($.favor)?$.favor:[],we=Array.isArray($.avoid)?$.avoid:[],W=Array.isArray($.disputed)?$.disputed:[],tn=Array.isArray($.neutral)?$.neutral:[],Je=tn.length?`其中${tn.map(i=>`${i.element}(${i.role})`).join("、")}全局仅 ${tn.map(i=>i.weight).join("、")} 分,分量近零,按中性偏忌看;仍留在忌里,是因为行运走到这一行时照样按忌计。`:"",xe=f(x,"primaryName","未取定"),O=f(l.input,"gender","")==="male",Ge=O?"财":"官杀",he=Number(f(l.liunian?.[0],"age",NaN)),hn=Array.isArray(l.dayun?.list)?l.dayun.list:[];let Ce=null;for(const i of hn)Number.isFinite(he)&&Number(i.startAge)<=he&&(Ce=i);!Ce&&hn.length&&(Ce=hn[0]);const mn=w(Ce?.luck)?Ce.luck:{},xn=f(mn,"tier","平"),X=w(l.liunian?.[0])?l.liunian[0]:{},en=w(X.luck)?X.luck:{},fn=f(en,"tier","平"),Ze=w(x.godStats?.groups)?x.godStats.groups:{},Pe=Object.entries(Ze).sort((i,y)=>y[1]-i[1]),qe=Pe[0]?.[0]||"",jn=Pe[1]?.[0]||"",Xe=Object.entries(ve).sort((i,y)=>y[1]-i[1]),pn=Xe[0]?.[0]||"",kn=Xe[Xe.length-1]?.[0]||"",qn=Object.keys(ve).filter(i=>Number(ve[i])===0),In=Ce?hn.indexOf(Ce):-1,Mn=[],Re={甲:"木",乙:"木",丙:"火",丁:"火",戊:"土",己:"土",庚:"金",辛:"金",壬:"水",癸:"水"},sn=i=>Re[String(i||"")[0]]||"",An={子:"水",丑:"土",寅:"木",卯:"木",辰:"土",巳:"火",午:"火",未:"土",申:"金",酉:"金",戌:"土",亥:"水"};if(Ce){const i=sn(Ce.ganzhi);i&&(Z.includes(i)?Mn.push(`当前大运 ${Ce.ganzhi} 走${i},正是喜用,这十年推事情比平时省力;${qe?`可把力气放在${qe}对应的事上`:"适合把长期计划铺开"}。`):we.includes(i)?Mn.push(`当前大运 ${Ce.ganzhi} 走${i},落在忌神上,这十年更适合守成、补短板,不宜大杠杆扩张。`):Mn.push(`当前大运 ${Ce.ganzhi} 走${i},既非喜用也非忌神,属于平运,结果更多取决于你在这段里做了什么。`))}if(qn.length){const i=qn.filter(I=>we.includes(I)),y=qn.filter(I=>Z.includes(I));i.length&&Mn.push(`命局缺 ${i.join("、")},而它正是你的忌神——缺得刚好,不必刻意去补。`),y.length&&Mn.push(`命局缺 ${y.join("、")},这恰是喜用,是这盘的短板:靠环境、行业与身边人来补,比自己硬扛有效。`)}if(qe&&xe){const i=C(xe);i&&qe&&i===qe?Mn.push(`格局 ${xe} 与最重的${qe}一致,说明你的能量集中在同一条线上,长处突出、短板也集中。`):i&&Mn.push(`格局 ${xe}(偏${i})与最重的${qe}不在一条线上,内在会有两股力气拉扯:一边是格局给你的路,一边是你本能投入最多的事。`)}if(Array.isArray(l.shensha)&&l.shensha.some(i=>(i.items||[]).some(y=>y.name==="羊刃"))&&Number(Ze.官杀||0)>=1&&Mn.push('命见羊刃且官杀有力,属压力驱动型:遇强则强,但需要出口,长期憋着容易内耗;运动或竞技类爱好比"忍"更有用。'),l.pillars?.day){const y=l.input?.gender==="male"?"财":"官杀",I=Number(Ze[y]||0),ie=An[l.pillars.day.branch]||"";I>=2&&ie&&Z.includes(ie)?Mn.push(`配偶星(${y})不弱,且日支 ${l.pillars.day.branch} 属喜用,感情中有实际助益,不只看感觉。`):I===0&&Mn.push(`命局不见${y},感情多靠自己主动创造场景;日支 ${l.pillars.day.branch} 更像"对方的样子"而不是"缘分的强度"。`)}const Nn=In>=0?hn.slice(In+1,In+4):hn.slice(0,3),Ln=(...i)=>i.filter(y=>y!=null&&y!==""),Hn=[{key:"overall",label:"整体运势",text:`你的日主是${H.stem}(五行属${H.element}),命局${te}(${f(u,"score","")} 分)。用神取向偏${b(Z)},忌${b(we)}——往${b(Z)}的方向走会更省力${$.tiaohou&&$.tiaohou.note?`;调候上${$.tiaohou.note}`:""}。目前走在${f(Ce,"ganzhi","当前")}大运(${xn}),${f(X,"year","今年")}年流年${f(X,"ganzhi","")}为${fn}。`,advice:`大运看:${E[xn]||E.平};流年看:${R[fn]||R.平}。大方向定在${b(Z)}相关的领域,会比硬扛${b(we)}顺畅一些。`,evidence:Ln(`日主 ${H.stem}${H.element}·${te}`,u&&u.parts&&u.parts.season?`月令 ${u.parts.season.branch}${u.parts.season.element}`:"",`喜 ${b(Z)} / 忌 ${b(we)}`,Ce?`大运 ${Ce.ganzhi}·${xn}`:"",X&&X.ganzhi?`流年 ${X.year}${X.ganzhi}·${fn}`:"")},{key:"work",label:"工作与职业选择",text:`按喜用神看,${b(Z)}这几类方向对你更有利,可参考的行业包括:${Z.slice(0,2).map(i=>U[i]||"").filter(Boolean).join(";")||"暂未取定,可先按兴趣与能力试"}。命局主格为${xe},这类结构的人通常${q[C(xe)]||"有自己稳定的节奏"}。十神中${qe}最重(${Pe[0]?.[1]??""}),${jn}次之,说明你在${qe}所代表的事项上投入的精力最多。`,advice:`选岗位时可以偏向「${b(Z)}属性 + ${qe}对应的事务」;如果现在的工作明显偏${b(we)}且长期让你疲惫,可以参考上面方向做小幅试探,不必立刻大改。`,evidence:Ln(`主格 ${xe}`,`喜用五行 ${b(Z)}`,Pe.length?`十神 ${Pe.slice(0,3).map(([i,y])=>`${i}${y}`).join(" ")}`:"")},{key:"career",label:"事业发展",text:`${xe}的格局,配合十神里${qe}偏旺的结构,事业上更适合${qe==="财"?"靠业绩与资源积累说话":qe==="官杀"?"在有规则的组织里按层级上升":qe==="印"?"凭资质、专业与口碑取胜":qe==="食伤"?"靠作品、技术与表达打开局面":"与人并肩、共同承担的方式"}。接下来几步大运依次为:${Nn.map(i=>`${i.ganzhi}(${i.luck?.tier||"平"})`).join(" → ")||"暂未排出"},整体节奏是${Nn.length&&Nn.filter(i=>["吉","大吉"].includes(i.luck?.tier)).length>=2?"先抑后扬、后段更顺":"需要一步步积累,中间偶有起伏"}。`,advice:`把${Nn[0]?.ganzhi||"下一步"}这一步当作铺垫期,重点补${qe==="食伤"?"作品与专业深度":qe==="官杀"?"资历与组织内的信任":"可迁移的能力与资质"};遇到${b(we)}过重的年份,优先保住已有成果。`,evidence:Ln(`格局 ${xe}`,Nn.length?`后续大运 ${Nn.map(i=>i.ganzhi).join(" → ")}`:"",`当前 ${f(Ce,"ganzhi","—")}·${xn}`)},{key:"love",label:"爱情与感情",text:`${O?"男命以财星看妻缘":"女命以官杀看夫缘"},你命局中${O?"财":"官杀"}的力量为${Ze[O?"财":"官杀"]??"—"},${Number(Ze[O?"财":"官杀"]||0)>=2?"缘分出现的机会不算少":"需要自己主动创造认识人的场景"}。日支(配偶宫)为${f(l.pillars?.day,"branch","")},坐${f(l.pillars?.day,"zizuo","")},这里的信号是:${Number(Ze[O?"财":"官杀"]||0)>=2?"关系里你容易被主动靠近,但要留意筛选":"感情推进偏慢,属于需要经营的类型"}。`,advice:`不必急着要结果,先看清自己在关系里最在意什么。${Number(Ze[O?"财":"官杀"]||0)>=2?"选项多时,明确标准反而更省心":"可以把社交圈稍微扩大一点,但别为了脱单降低底线"};沟通上多说具体需求,少让对方猜。`,evidence:Ln(`${O?"财":"官杀"} 权重 ${Ze[O?"财":"官杀"]??"—"}`,`日支 ${f(l.pillars?.day,"branch","")}·${f(l.pillars?.day,"zizuo","")}`,`配偶星 ${O?"财":"官杀"}`)},{key:"health",label:"健康状况",text:`五行分布上,${pn}最旺、${kn}最弱${qn.length?`,其中${b(qn)}在命局中没有明现`:""}。按五行与身体的对应,${pn}偏旺时${c[pn]?.part||""}负担相对重(${c[pn]?.note||""});${kn}偏弱则${c[kn]?.part||""}偏弱一些,是更值得留意的部分。这只是传统命理的取象提示,不是诊断。`,advice:`建议把作息规律放在第一位——尤其是睡眠时长尽量稳定;${c[kn]?.note?kn+"对应的"+c[kn].part+"可以按体检项目关注":"按常规体检关注"}。任何不适请去看医生,别用命理结论替代检查。`,evidence:Ln(`五行 ${Object.entries(ve).map(([i,y])=>`${i}${y}`).join(" ")}`,`最旺 ${pn} / 最弱 ${kn}`,qn.length?`缺 ${b(qn)}`:"")}],_n=m(H.stem),Bn=S(qe),Dn=S(jn),cn=u.parts&&u.parts.season?u.parts.season:null,Yn=f(l.pillars?.day,"branch",""),Un=Object.entries(w(x.godStats?.byGod)?x.godStats.byGod:{}).filter(([,i])=>Number(i)>0).sort((i,y)=>y[1]-i[1]),Xn=Un[0]?Un[0][0]:"",Vn=S(Xn),Zn=(Array.isArray($.favorRoles)?$.favorRoles:[]).slice().sort((i,y)=>(Number(Ze[y])||0)-(Number(Ze[i])||0)),Fn=[`**日主**:${H.stem}${H.element}(${H.yinYang}${H.element})${cn?`生于${cn.branch}月,日主在月令「${cn.word}」`:""},命局${te}(${f(u,"score","—")} 分)${_n?`——${_n.image}之象`:""}。`,`**用神**:喜${b(Z)||"—"}(${b($.favorRoles||[])||"—"}),忌${b(we)||"—"}(${b($.avoidRoles||[])||"—"})。${tn.length?`(${b(tn.map(i=>i.element))} 近零,按中性偏忌看)`:""}${p(te,Zn)}`,`**格局**:${xe}(${f(x.primary,"evidence","")})${(Array.isArray(x.geju)?x.geju:[]).filter(i=>i.name&&i.name!==xe).length?`,另有${x.geju.map(i=>i.name).filter(i=>i&&i!==xe).join("、")}`:""}。`].join(`
|
|
69
|
+
`),ne=[`**外在取象**:${_n?`${_n.image}的日主,传统取象上${_n.look}`:"这一柱的取象词库未覆盖"}${_n?`;气质上${_n.temper}`:""}。这一层只是取象,不作定论。`,`**性格底色**:十神里${qe||"—"}最重${Pe[0]?`(${Pe[0][1]})`:""}${jn?`,${jn}次之`:""}。${Bn?`${Bn.gift};${Bn.trap}。`:""}`+(Vn&&Xn&&Xn!==qe?`具体到单颗,${Xn}最显,落在「${Vn.role}」上。`:"")+(_n?`放在${H.stem}日主身上,长处是「${_n.gift}」,容易踩的坑是「${_n.trap}」。`:""),`**事业与家庭**:${Bn?`做事上${Bn.work}`:"做事方式看喜用与时运"}${Bn?`;感情里${Bn.love}。`:"。"}日支${Yn}${f(l.pillars?.day,"zizuo","")?`坐${f(l.pillars?.day,"zizuo","")}`:""},${Number(Ze[Ge]||0)>=2?"配偶星不弱,关系里你有条件被好好对待,也要留意别把这些当成理所当然":"配偶星偏轻,感情更需要主动经营"}。${Dn?`另一面是${jn}的${Dn.role}:${Dn.gift}。`:""}`].join(`
|
|
70
|
+
`),Ie=(l.liunian||[]).slice(0,3).map(i=>{const y=w(i.luck)?i.luck:{},I=j(i.relations),ie=(y.reasons||[]).slice(0,2).join(",");return`**${i.year} ${i.ganzhi}**(${i.age}岁·${i.stemTenGod||"—"})${y.tier||"平"}:${ie||"没有特别信号,按大运的基调走"}${I.length?`;与命局的关系——${I.join(";")}`:""}。`}).join(`
|
|
71
|
+
`),rn=Ie?`先看眼前三年(大字是当年干支与十神,后面是该年的档位与理由):
|
|
72
|
+
${Ie}
|
|
73
|
+
读法:档位说的是「这一年顺不顺手」,不是「会发生什么」;年份不顺时把重要动作挪到顺的年份,比硬扛更省事。`:"流年数据未取到,暂不展开。",zn=[];Z.length&&zn.push(`把生活与工作往${b(Z)}的方向挪一点:${Z.slice(0,2).map(i=>U[i]||"").filter(Boolean).join(";")||"按喜用五行对应的行业挑"}。不必推倒重来,先从环境、圈子和日常习惯改起。`),we.length&&zn.push(`对${b(we)}保持一点自觉:不是不能碰,而是别在关键决定上给它加码——${we.includes("火")?"少在情绪最热的时候拍板":we.includes("木")?"少在想法最多的时候开工":"先把手上的事收尾再谈新的"}。`);const vn=j(l.relations&&l.relations.branches);vn.length&&zn.push(`命局里的地支关系是「${(l.relations.branches||[]).join("、")}」:${vn.join(";")}。对应到具体人事,先处理情绪,再处理事情。`),M&&M.need&&zn.push(`调候要${M.need.stem}${M.need.element}:${M.need.why}。落到日常,就是往这一类的环境、作息与节奏上靠。`);const Sn=zn.slice(0,4).map((i,y)=>`${"①②③④"[y]} ${i}`).join(`
|
|
74
|
+
`),e=[...Mn.length?[{key:"cross",label:"交叉判断",text:Mn.join(" ")}]:[],{key:"framework",label:"命局框架",text:Fn},{key:"portrait",label:"画像",text:ne},{key:"reasoning",label:"看盘顺序",text:[`① 先看月令:${u.parts&&u.parts.season?`${u.parts.season.branch}月,日主${H.element}${u.parts.season.word}(${u.parts.season.weight})`:"月令已定"},得旺衰 ${te}(${f(u,"score","—")} 分)。这一步定的是"你有没有力气"。`,`② 再定用神:身强则取泄、耗、制——喜${b(Z)}(${b($.favorRoles||[])}),忌${b(we)}(${b($.avoidRoles||[])})。这一步定的是"往哪走省力"。`,`③ 看格局:主格${xe}${(()=>{const i=(Array.isArray(x.geju)?x.geju:[]).map(y=>y.name).filter(y=>y&&y!==xe);return i.length?`,另有${i.join("、")}`:""})()}。格局与前两步同向时可信度更高;冲突时以用神为先。`,`④ 看大运:当前${f(Ce,"ganzhi","—")}(${xn})${X&&X.year?`,${X.year} 年流年${X.ganzhi}为${fn}`:""}。行运的吉凶不看名字,看它落在喜用还是忌神(下方「时间窗」给了理由)。`,"⑤ 落到维度:工作看喜用五行与十神权重;感情看配偶星与日支;健康看最旺与最弱的五行。五维度都只是这套推导的应用,不是另一套算法。"].join(`
|
|
75
|
+
`)},...l.renyuan?[(()=>{const i=l.renyuan,y=i.segments.map(Ke=>`${Ke.stem}${Ke.from}–${Ke.to}`).join(" / "),I=i.next?`,第 ${i.next.from} 日起交 ${i.next.stem}${i.next.element}`:"",ie=i.inHidden?"":` 表里的 ${i.active} 不在本柱藏干表中(属余气口径),两表各照原样,不互相改写。`,ke=i.beyond?" 你生在第 31 日以后,已超出 30 日表,按本气算,不硬分摊。":"",K=l.renyuanClassic||Wn("smt-renyuan"),re=K?`
|
|
76
|
+
原文:《${En[K.book].name}·${K.chapter}》「${K.quote}」
|
|
77
|
+
白话:${K.plain}`:"";return{key:"renyuan",label:"人元司权",text:`生于${i.month}月第 ${i.day} 日(从${i.term?i.term.name:"节"}起算,节当日为第 1 日,日差按本盘所用时刻所在日计):这一日由 **${i.active}${i.activeElement}** 司权,第 ${i.segment.from}–${i.segment.to} 日属它${I}。
|
|
78
78
|
月令这一个月里,余气、中气、本气轮值,不是整月同一个五行当值——所以「月令是什么」,还要看生在第几日。
|
|
79
|
-
**口径**:本插件固定通行 30 日表(${
|
|
80
|
-
`:""}当前大运:${f(
|
|
81
|
-
近五年流年:${
|
|
82
|
-
读法:大运管"这十年的大环境",流年管"今年的具体天气";两者打架时,以能否动到用神为准。`})()},{key:"years",label:"流年时间轴",text:
|
|
83
|
-
原文:《${En[
|
|
84
|
-
白话:${
|
|
79
|
+
**口径**:本插件固定通行 30 日表(${y});另有 7/7/16、9/3/18 等分法,三命通会此本又作 5/5/20(见下原文),各家不一。分日只作解释层的一层细节,**不改取格**:取格仍按本气、透干与会支判定。${ie}${ke}`+re}})()]:[],{key:"timeline",label:"时间窗",text:(()=>{const i=Ce&&Ce.startAge!=null?`${Ce.startAge}–${Ce.startAge+9}岁,${xn}${mn.reasons&&mn.reasons.length?`;${mn.reasons.join(",")}`:""}`:"—",y=(Nn||[]).slice(0,2).map(ke=>`${ke.ganzhi}(${ke.startAge}–${ke.startAge+9}岁,${ke.luck?.tier||"平"})`).join(" → ")||"—",I=(l.liunian||[]).slice(0,5).map(ke=>{const K=w(ke.luck)?ke.luck:{},re=(K.reasons||[]).slice(0,2).join(",");return`${ke.year} ${ke.ganzhi}·${ke.stemTenGod||""}·${K.tier||"平"}${re?`(${re})`:""}`}).join(";");return`${l.dayun&&l.dayun.jiao&&l.dayun.jiao.at?`起运交运时刻 ${l.dayun.jiao.at}(${l.dayun.jiao.frame};三日折一年,距${l.dayun.jiao.from.name} ${l.dayun.jiao.spanDays} 天)。每步大运在同月同日同时刻换,逐年日期见下方大运表「交运」列。
|
|
80
|
+
`:""}当前大运:${f(Ce,"ganzhi","—")}(${i})。后续两步:${y}。
|
|
81
|
+
近五年流年:${I||"—"}。
|
|
82
|
+
读法:大运管"这十年的大环境",流年管"今年的具体天气";两者打架时,以能否动到用神为准。`})()},{key:"years",label:"流年时间轴",text:rn},{key:"advice",label:"专业建议",text:Sn},(()=>{const i=(l.liunian||[]).filter(ie=>ie.suiyun&&Array.isArray(ie.suiyun.signals)&&ie.suiyun.signals.length),y=Cn(l),I=y?`
|
|
83
|
+
原文:《${En[y.book].name}·${y.chapter}》「${y.quote}」
|
|
84
|
+
白话:${y.plain}`:"";return{key:"suiyun",label:"岁运提示",text:i.length?i.map(ie=>{const ke=(ie.suiyun.dayun||[]).map(K=>`第${K.step}步${K.ganzhi}`).join("、");return`${ie.year} ${ie.ganzhi}(${ke||"未到起运"}):${ie.suiyun.signals.map(K=>K.detail).join(";")}`}).join(`
|
|
85
85
|
`)+`
|
|
86
|
-
读法:岁运并临、运年反吟、大运与流年的伏吟/反吟只说明干支层面重复或对冲,传统上当作「变动感较强」的信号;本插件不据此判吉凶,要落到具体年份,仍看该年是否动到用神。大运与本命四柱的伏吟/反吟整步大运都在,会连续多年出现,不当成逐年加重。`+
|
|
87
|
-
`)}]:[],{key:"quant",label:"量化口径",text:`本报告的量化只到「档位」:事业看十神权重(${
|
|
88
|
-
`),
|
|
89
|
-
${(
|
|
90
|
-
${
|
|
91
|
-
`)}`,
|
|
92
|
-
破格:${
|
|
93
|
-
依据:${
|
|
86
|
+
读法:岁运并临、运年反吟、大运与流年的伏吟/反吟只说明干支层面重复或对冲,传统上当作「变动感较强」的信号;本插件不据此判吉凶,要落到具体年份,仍看该年是否动到用神。大运与本命四柱的伏吟/反吟整步大运都在,会连续多年出现,不当成逐年加重。`+I:"近十年没有岁运并临、运年反吟或大运/流年伏吟、反吟。「岁运并临主大凶」这类说法流传很广,本插件只把它当变动提示,没有命中就不作额外解读。"}})(),{key:"checks",label:"交叉校验",text:(()=>{const i=Z.reduce((ke,K)=>ke+(Number(ve[K])||0),0),y=we.reduce((ke,K)=>ke+(Number(ve[K])||0),0),I=[];if(I.push(i<y?`喜用合计 ${i.toFixed?.(1)??i} 低于忌神合计 ${y.toFixed?.(1)??y}:原局里"顺风的条件"偏少,靠行运与外部环境补更现实,别硬扛。`:`喜用合计 ${i} 不低于忌神合计 ${y}:原局自带可用的条件,行运只是把它放大或压住。`),xn&&fn){const ke=["吉","大吉"];ke.includes(xn)&&!ke.includes(fn)?I.push("大运顺、当年逆:方向可以按大运走,具体动作挑流年的顺月做,不必因为一年不顺就推翻长期计划。"):!ke.includes(xn)&&ke.includes(fn)?I.push("大运逆、当年顺:今年适合借势处理具体事务,但不宜把长期结构性问题押在这一年解决。"):!ke.includes(xn)&&!ke.includes(fn)?I.push("大运与流年都偏逆:以守住基本盘为主,减少新增承诺。"):I.push("大运与流年同向偏顺:可以把想做但一直拖着的事排上日程。")}const ie=$.tiaohou&&$.tiaohou.need?$.tiaohou:null;return ie&&I.push(ie.clash?`调候要${ie.need.stem}${ie.need.element},扶抑不在喜用里:两套取法有分歧,本盘按调候优先——寒暖失衡时,再补强弱也难受。`:`调候要${ie.need.stem}${ie.need.element},与扶抑用神同向:取用上不打架,${ie.need.element}相关的行业与环境优先。`),I.join(" ")})()},{key:"yongshen",label:"用神与忌神",text:`喜用:${b(Z)}(对应十神:${b($.favorTenGods||$.favorRoles||[])});忌:${b(we)}(对应十神:${b($.avoidTenGods||$.avoidRoles||[])})。`+Je+`${f($,"detail","")}`},...M?[{key:"climate",label:"寒暖燥湿",text:`${M.narration}${M.need?`调候取${M.need.stem}${M.need.element},忌${M.avoidElement}${W.some(i=>i.element===M.avoidElement)?"(有争议:该行在扶抑中为喜,见用神节)":""};${M.clash?"与扶抑冲突,本盘以调候为先":W.some(i=>i.element===M.avoidElement)?"调候所忌在扶抑里为喜,两说并存":"与扶抑同向"}`:"气候平和,调候不作主取"}。`}]:[],...$.qt?[{key:"qiongtong",label:"穷通宝鉴",text:`${$.qt.label}:用神 ${$.qt.yong.join("、")}(首取 ${$.qt.primary})。原文:「${$.qt.quote}」(《穷通宝鉴》第 ${$.qt.chapter} 章${$.qt.note?";"+$.qt.note:""})`}]:[],...l.palaces?[{key:"palaces",label:"胎命身",text:`胎元 ${l.palaces.taiyuan.ganzhi}(月干进一、月支进三);${l.palaces.taixi?`胎息 ${l.palaces.taixi.ganzhi}(日干五合、日支六合);`:""}`+(l.palaces.minggong&&l.palaces.shengong?`命宫 ${l.palaces.minggong.ganzhi}、身宫 ${l.palaces.shengong.ganzhi}(生月与生时两支合数定宫,天干随六十甲子)。`:"命宫与身宫由生月与生时支合数定宫:时柱暂缺,这两宫不排。")+"四宫是读盘的辅助坐标,不单独折吉凶。"}]:[],{key:"geju",label:"格局依据",text:(Array.isArray(x.geju)?x.geju:[]).map(i=>`${i.name}(${i.kind}${i.status?`·${i.status}`:""}):${i.evidence}${Array.isArray(i.breaks)&&i.breaks.length?`;破:${i.breaks.join(";")}`:""}`).join(";")||"未取到格局"},...Array.isArray(l.classics)&&l.classics.length?[{key:"classics",label:"古籍原文",text:l.classics.map(i=>`《${En[i.book].name}·${i.chapter}》「${i.quote}」——${i.plain}`).join(`
|
|
87
|
+
`)}]:[],{key:"quant",label:"量化口径",text:`本报告的量化只到「档位」:事业看十神权重(${qe} ${Pe[0]?.[1]??"—"})、财富看财星权重(${Ze.财??0})、感情看配偶星权重(${Ge} ${Ze[Ge]??0});大运/流年用「大吉 / 吉 / 平 / 忌」四档。不换算金额、不给健康诊断——那需要地域、家庭、行业与体检数据,命盘本身推不出来。`},{key:"limits",label:"未纳入",text:'本盘没有计算:流月与流日、神煞的加权轻重、地支藏干的动态引化(合冲后再论)。取用按「调候优先、扶抑校验」;调候由月令与全局寒暖燥湿判定,并按《穷通宝鉴》120 格给出用神顺序(整理表口径,原文摘句照录,异文处已标 note);各派取法仍有分歧;真太阳时未含历史时区与夏令时。把这些补上会改变"强弱"的边际判断,所以这里只给方向,不下断语。'}],o=[{key:"overall",label:"整体",text:`${te},喜${b(Z)||"—"}、忌${b(we)||"—"}${tn.length?`(${b(tn.map(i=>i.element))} 近零·中性偏忌)`:""}`},{key:"career",label:"事业",text:`主格${xe},${qe}偏旺`},{key:"wealth",label:"财富",text:`财星权重 ${Ze.财??0}${Z.includes("金")?",喜金助财":""}`},{key:"love",label:"感情",text:`${Ge}星权重 ${Ze[Ge]??0},日支 ${f(l.pillars?.day,"branch","—")}`},{key:"rhythm",label:"节奏",text:`当前${f(Ce,"ganzhi","—")}(${xn}),${f(X,"year","")} ${f(X,"ganzhi","")}(${fn})`}],r=[{key:"dayun",title:"大运表",columns:["大运","年龄","交运","十神","档位","理由"],rows:hn.map(i=>[i.ganzhi,`${i.startAge}–${i.startAge+9}`,i.fromDate||"—",i.stemTenGod||"",i.luck?.tier||"平",(i.luck?.reasons||[]).join(",")])},{key:"liunian",title:"流年表(近十年)",columns:["年份","干支","十神","档位","与原局"],rows:(l.liunian||[]).slice(0,10).map(i=>[String(i.year),i.ganzhi,i.stemTenGod||"",i.luck?.tier||"平",(i.relations||[]).join("、")])}],a=(l.liunian||[]).filter(i=>Array.isArray(i.relations)&&i.relations.length).slice(0,10).map(i=>[String(i.year),i.relations.join("、"),`流年${i.ganzhi}与原局地支:${i.relations.join("、")}`]);return a.length&&r.push({key:"triggers",title:"触发事件表",columns:["年份","触发","依据"],rows:a}),{lead:"下面按五个维度拆开说。所有内容来自你这张命盘的结构,讲的是倾向与建议,不是预言——方向供你参考,怎么走在你自己。",dimensions:Hn,sections:e,outline:o,tables:r}}const Me=Object.keys(B);function an(l,H){return(l.palaces||[]).find(u=>u.palace===H)||null}function Te(l){if(!l)return null;const H=(l.stars||[]).find(u=>Me.includes(u.name));return H?H.name:null}function dn(l){return(l?.stars||[]).filter(H=>H.type==="煞星").map(H=>H.name)}const fe=["禄","权","科","忌"];function nn(l){const H=Array.isArray(l?.palaces)?l.palaces:[],u=new Map;for(const Z of H)for(const we of Z.stars||[])!we||!we.mutagen||u.has(we.name)||u.set(we.name,{type:we.mutagen,palace:Z.palace||null});const x=f(l,"yearGanzhi",""),$=typeof x=="string"?x.slice(0,1):"",M=z[$]||{},ve={};for(const[Z,we]of Object.entries(M))ve[we]=Z;const te=[];for(const Z of fe){let we=ve[Z]||"";if(!we){for(const[tn,Je]of u)if(Je.type===Z){we=tn;break}}if(!we)continue;const W=u.get(we);te.push({star:we,type:Z,palace:W?W.palace:null})}return te}function bn(l){return!Array.isArray(l)||!l.length?"":l.map(H=>H.palace?`${H.star}化${H.type}于${H.palace}`:`${H.star}化${H.type}(未上盘)`).join("、")}function ye(l){const H=an(l,"命宫")||(l.palaces||[])[0],u=an(l,"官禄"),x=an(l,"财帛"),$=an(l,"夫妻"),M=an(l,"疾厄"),ve=an(l,"迁移"),te=Te(H),Z=Te(ve),we=Me.includes(f(l,"lifeMaster"))?l.lifeMaster:null;let W=te||Z||we||"紫微";const tn=te?`你的命宫主星是${W}`:Z?`你的命宫无正曜,按紫微的规则借对宫(迁移)来看,主星是${W}`:`你的命宫与对宫都没有正曜,这里按命主星${W}来看`,Je=B[W]||B.紫微,xe=ne=>dn(ne).filter(Ie=>n.includes(Ie)),ze=Te(u),O=Te(x),Ge=Te($),he=Te(M),hn=ne=>(ne?.stars||[]).filter(Ie=>Ie.type==="主星"),Ce=(ne,Ie)=>(ne?.stars||[]).find(rn=>rn.name===Ie)?.brightness||"",mn=ne=>G(hn(ne).map(Ie=>Ie.name)),xn=$e(W)||{},X=J(Ce(H,W)),en=mn(H),fn=(ne,Ie)=>Ie?`${ne&&ne.tone==="bad"?Ie.dim:Ie.bright}。`:"",Ze=Number(f(l.liunian?.[0],"age",NaN));let Pe=null;for(const ne of l.palaces||[]){const Ie=ne.daxian||{};Number.isFinite(Ze)&&Number(Ie.start)<=Ze&&Ze<=Number(Ie.end)&&(Pe=ne)}const qe=Array.isArray(l.patterns)?l.patterns:[],jn=qe.length?qe.slice(0,3).map(ne=>`${ne.name}(${ne.tone==="good"?"偏吉":ne.tone==="bad"?"需留意":"中性"}:${ne.evidence})`).join(";"):"本盘未触发常见格局条目",Xe=Array.isArray(l.liunian?.[0]?.mutagen)?l.liunian[0].mutagen.slice(0,4).join("、"):"",pn=nn(l),kn=bn(pn),qn=[{key:"overall",label:"整体运势",text:`${tn}${X?`(${X.word}——${X.plain})`:""},性格底色上${Je.trait}。`+(en?`${en.gist};${en.watch}。`:"")+`本盘${jn}。当前大限走在${Pe?`${Pe.palace}(${Pe.daxian.start}–${Pe.daxian.end}岁)`:"当前阶段"},${Xe?`流年四化为${Xe},本年的变化感主要落在这几颗星上`:"流年四化信号不明显"}。`+(l.flow?`再往下一层,当前流月命宫是${l.flow.month.ganzhi},落在原局${l.flow.month.palace||"未上盘"},本月的变化更容易在这一宫代表的事情上显出来。`:"")+(kn?`另外你本命的生年四化落在:${kn}——这是你这辈子比较稳定的底色,不随某一年改变。`:""),advice:(()=>{const ne=Pe?Pe.palace:"命宫",Ie=g(ne);return`这一阶段的主题更接近「${ne}」——${Ie?Ie.field:"这一宫代表的事"}。把它当作这几年的主线,其余安排围着它让路;${xn.gift?`你最顺手的做法是${xn.gift}`:`你的优势在${Je.trait}`},但要留意${xn.watch||"用它用过了头"}。`})(),evidence:[`命宫 ${W}${te?"":"(借对宫)"}`,Pe?`大限 ${Pe.palace} ${Pe.daxian.start}–${Pe.daxian.end}岁`:"",Xe?`流年四化 ${Xe}`:"",`格局 ${qe.length} 条`].filter(Boolean)},{key:"work",label:"工作与职业选择",text:(()=>{const ne=J(Ce(u,ze)),Ie=mn(u),rn=xe(u);return`命宫${W}给你的是底层偏好:${Je.work}。官禄宫${ze?`主星为${ze}${ne?`(${ne.word})`:""},${B[ze]?.work||"有其自身的做事方式"}`:"无正曜,工作方式更多受环境与他人影响,适合配合型岗位"}。`+(Ie?`${Ie.gist};要留意${Ie.watch}。`:"")+(rn.length?`官禄宫又见${b(rn)}:${T(rn)}`:"")+`两者合起来看,你更适合${ze&&ze!==W?`用${W}的方式去做${ze}擅长的事`:"在稳定的框架里发挥自己的特点"}。`})(),advice:`挑工作时可以先看岗位内容是否匹配上面这条;如果暂时不能换,试着在现有岗位里争取靠近这部分的事务——${xn.gift?`把「${xn.gift}」这类活往自己身上揽,比硬熬更容易做出成绩`:"先做出一件拿得出手的事,比硬熬更容易被看见"}。`,evidence:[`命宫 ${W}${X?`·${X.word}`:""}`,`官禄 ${ze||"无正曜"}`,`财帛 ${O||"无正曜"}`,...xe(u).length?[`官禄煞星 ${b(xe(u))}`]:[]]},{key:"career",label:"事业发展",text:(()=>{const ne=J(Ce(x,O)),Ie=mn(x);return`财帛宫${O?`见${O}${ne?`(${ne.word})`:""},${B[O]?.trait||""}`:"无正曜"},官禄宫${ze||"无正曜"},${O&&ze?"财与事业两宫都有主星坐守,说明这两块是可以主动经营的部分":"有一宫无主星,说明该块更容易受外部条件牵动,宜借势而非强求"}。`+(Ie?`${Ie.gist}。`:"")+`大限推进上,${Pe?`目前落在${Pe.palace},这一宫管${g(Pe.palace)?.field||"这一段的事"}`:"当前阶段"},下一步会转入相邻的宫位,重心也会跟着挪。`})(),advice:`事业上建议做两件事:一是把可积累的东西(技能、资质、作品)做厚;二是${ze?`发挥${ze}的优势——${B[ze]?.trait||""}`:"找一个能带你的前辈或平台"}。遇到四化化忌的年份,先守成再谈扩张。`,evidence:[`财帛 ${O||"无正曜"}`,`官禄 ${ze||"无正曜"}`,Pe?`当前大限 ${Pe.palace}`:""].filter(Boolean)},{key:"love",label:"爱情与感情",text:(()=>{const ne=J(Ce($,Ge)),Ie=mn($),rn=xe($);return`夫妻宫${Ge?`主星为${Ge}${ne?`(${ne.word})`:""},感情上的倾向是${B[Ge]?.love||"有自己相处的节奏"}`:"无正曜,关系状态更多由对方与互动方式决定"}。`+(Ie?`${Ie.gist}。`:"")+`${rn.length?`夫妻宫同时见${b(rn)}:${T(rn)}煞星不等于定局,更多是提醒你留意沟通方式。`:"夫妻宫未见明显煞星,关系的基调相对平顺。"}`+(xn.watch?`另外,你自带的${xn.watch}这一面,在亲密关系里最容易被放大。`:"")})(),advice:`感情里${Ge?`参考${Ge}的特点:${B[Ge]?.love||""}`:"可以更主动地表达自己的需求"}。有分歧时先说清事实与感受,别急着下结论;关系的好坏取决于两个人怎么做,不取决于这张盘。`,evidence:[`夫妻宫 ${Ge||"无正曜"}`,`煞星 ${b(dn($))||"无"}`,`夫妻宫支 ${$&&$.branch?$.branch:"—"}`]},{key:"health",label:"健康状况",text:(()=>{const ne=J(Ce(M,he)),Ie=xe(M);return`疾厄宫${he?`见${he}${ne?`(${ne.word})`:""},传统取象上${B[he]?.health||"需要留意自身的薄弱环节"}`:"无正曜,身体状态更多受生活作息直接影响"}。`+(Ie.length?`同时见${b(Ie)},按星情只是「${s(Ie)}」这一层,提示这一块值得比其他部位多一分留意。`:"")+"这些都是象征性的提示,不构成任何医学判断。"})(),advice:`把${he&&B[he]?.health?.replace("留意","").replace("需要留意","")||"常规"}当作体检时重点关注的参考;真正管用的还是规律作息、适度运动与定期检查。身体不舒服请直接就医。`,evidence:[`疾厄宫 ${he||"无正曜"}`,`煞星 ${b(dn(M))||"无"}`]}],In=g("命宫"),Mn=f(l.body,"lands",""),Re=g(Mn),sn=[`命宫落在${H.branch}(${H&&H.ganzhi?H.ganzhi:"—"}),主星${W}${X?`·${X.word}`:""}——这一宫管${In?In.field:"你自己"},${xn.gift?`你身上最能用出去的是${xn.gift}`:Je.trait}。`+(xn.gift?fn(X,xn):""),en?`${en.gist};要留意的是${en.watch}。`:"",Mn?`身宫寄在${Mn}——${Re?`${Re.field}是后天更容易使上劲的地方`:"这是后天着力点"},中年以后会越来越明显。`:"",`五行局为${f(l.bureau,"name","—")},${f(l.daxian,"startAge","—")}岁起运:局定的是节奏(几步起、十年一换),不是好坏。`,`命主${f(l,"lifeMaster","—")}、身主${f(l,"bodyMaster","—")}:传统把这两颗当作整张盘的定调星,命主看底色,身主看后半程的着力点。`].filter(Boolean).join(`
|
|
88
|
+
`),An=ne=>String(ne||"").replace(/。$/,""),Nn=`十二宫从命宫逆排,每宫管一件事。看一宫不能只看本宫,还要并上它的三方四正(本宫+对宫+两个三合宫)——下面先逐宫摊开,再回到整体。
|
|
89
|
+
${(l.palaces||[]).map(ne=>{const Ie=hn(ne),rn=dn(ne),zn=(ne.stars||[]).filter(a=>a.type==="辅星"||a.type==="吉星").map(a=>a.name),vn=(ne.stars||[]).filter(a=>a.mutagen).map(a=>`${a.name}化${a.mutagen}`),Sn=(ne.selfHua||[]).map(a=>`自化${a.type}`),e=`【${ne.palace}·${ne.branch}】${Ie.length?Ie.map(a=>`${a.name}${a.brightness||""}`).join("·"):"无正曜"}`+(zn.length?`|吉 ${zn.slice(0,3).join("、")}`:"")+(rn.length?`|煞 ${rn.join("、")}`:"")+(vn.length||Sn.length?`|${[...vn,...Sn].join("、")}`:""),o=[];if(Ie.length){const a=G(Ie.map(y=>y.name)),i=$e(Ie[0].name);a?o.push(a.gist):i&&o.push(i.gift)}else{const a=Te(an(l,(ne.sanfang||[])[3]));o.push(a?`无正曜,借对宫${a}来看`:"无正曜,这一宫随环境走")}zn.length&&o.push(t(zn)),rn.length&&o.push(T(rn));for(const a of(ne.stars||[]).filter(i=>i.mutagen).slice(0,2))o.push(k(a.mutagen,ne.palace));const r=o.filter(Boolean).map(An).join(";");return`${e}
|
|
90
|
+
${r}。`}).join(`
|
|
91
|
+
`)}`,Hn=[{tone:"good",label:"有利格局"},{tone:"neutral",label:"结构提示"},{tone:"bad",label:"忌格提醒"}].map(ne=>{const Ie=qe.filter(rn=>(rn.tone||"neutral")===ne.tone);return Ie.length?{key:`pattern-${ne.tone}`,label:ne.label,tone:ne.tone==="neutral"?"watch":ne.tone,text:Ie.map(rn=>{const zn=d(rn.name,rn.tone),vn=rn.status==="broken"&&Array.isArray(rn.breaks)&&rn.breaks.length?`
|
|
92
|
+
破格:${rn.breaks.join(";")}${rn.breakRule?`(${rn.breakRule})`:""}`:"";return`**${rn.name}** ${zn.gist}
|
|
93
|
+
依据:${rn.evidence}${vn}
|
|
94
94
|
做法:${zn.advice}`}).join(`
|
|
95
|
-
`)}:null}).filter(Boolean);
|
|
96
|
-
`)||"这张盘的结构比较平,没有单点特别突出——按现有节奏走,把一件事做完整比开新头更划算。",
|
|
97
|
-
`)},{key:"timeline",label:"时间窗",text:(()=>{const
|
|
98
|
-
近五年流年:${
|
|
99
|
-
读法:大限定十年的主题,流年四化指出今年往哪边偏;两层方向相反时,以守住大限主题为主。`})()},{key:"quant",label:"量化口径",text:"紫微这边只数「宫位里有什么」:大限看落宫与四化命中数、流年看命宫与四化星数;不把星曜折算成分数,也不预测金额与疾病诊断。四化命中数只是结构计数,不等于吉凶强度。"},{key:"limits",label:"未纳入",text:"本盘没有计算:小限与大限的加权、流日流时的具体事项定位、双星组合的强弱细分,以及「三方四正一起飞」的复合飞化(这里只跟单一支化逐宫串连)。四化表取中州派常用口径,其他流派(如飞星派)结论会不同;这些不改变盘面事实,只影响轻重,所以只作方向参考。"}];if(
|
|
100
|
-
`)}),
|
|
101
|
-
`)})}const
|
|
102
|
-
`)})}{const
|
|
103
|
-
`)},{key:"limits",label:"未纳入",text:"本课没有计算:年命与行年(命上神)、神煞的加权轻重、伏吟反吟的细分,以及课体之间的互涉。三传只取九宗门里的主要取法,其他流派(如以贵神起课)结论可能不同;这些只影响轻重,不改变课面事实。"}];return{lead:"大六壬看的是一件事的来龙去脉。三传给出「发端—过程—结局」的顺序,下面按这个结构分五个维度说。",dimensions:[{key:"overall",label:"整体运势",text:`这一课${f(
|
|
104
|
-
${
|
|
105
|
-
`)}`:"本盘未踩到下面这些分歧,结论是按一派一路算下来的。",
|
|
106
|
-
${
|
|
95
|
+
`)}:null}).filter(Boolean);Hn.length||Hn.push({key:"pattern-none",label:"格局",text:"本盘未触发内置的常见格局条目。这不代表盘面平淡——格局只是把若干星位组合起个名字,没命中时按宫位与四化逐条看即可。"});const _n=[];if(xn.gift&&_n.push(`把「${xn.gift}」做成招牌:${X&&X.tone==="bad"?`${W}在这宫不得地,长处不会自己显出来,越要挑能发挥它的场子`:`${W}${X?`·${X.word}`:"在命宫"},顺着这条走最省力`}。`),Pe&&Pe.daxian){const ne=g(Pe.palace);_n.push(`这几年主线在${Pe.palace}(${Pe.daxian.start}–${Pe.daxian.end}岁):${ne?ne.field:"这一宫的事"}排前面,力气别摊平。`)}const Bn=pn.find(ne=>ne.type==="忌");if(Bn&&Bn.palace){const ne=g(Bn.palace);_n.push(`生年化忌落在${Bn.palace}:${ne?ne.huaJi:"这一块容易反复"}——别硬顶,把预期调低一点反而顺。`)}const Dn=xe(H);Dn.length&&_n.push(`命宫见${b(Dn)}:${T(Dn)}`);const cn=xe($);cn.length&&!Dn.length&&_n.push(`夫妻宫见${b(cn)}:${T(cn)}`);const Yn=_n.slice(0,4).map((ne,Ie)=>`${"①②③④"[Ie]} ${An(ne)}`).join(`
|
|
96
|
+
`)||"这张盘的结构比较平,没有单点特别突出——按现有节奏走,把一件事做完整比开新头更划算。",Un=[{key:"identity",label:"命身底色",text:sn},{key:"palaces",label:"逐宫分析",text:Nn},...Hn,{key:"advice",label:"行动建议",text:Yn},{key:"reasoning",label:"看盘顺序",text:[`① 先看命宫:${tn}${Je.trait?`,底色是「${Je.trait}」`:""}。命宫回答的是"你是谁",不是"会遇到什么"。`,`② 再看三方四正:${H&&H.sanfang?H.sanfang.join("、"):"命/财/官/迁"},会到的主星是${(()=>{const ne=(H&&H.sanfang?H.sanfang:[]).map(rn=>Te(an(l,rn))).filter(Boolean),Ie=[...new Set(ne)];return Ie.length?Ie.join("、"):"无正曜"})()}——这是你与外界打交道时的常用手法。`,kn?`③ 生年四化:${kn}。四化比星曜更能指出"你在意什么、哪里会反复"。`:"③ 生年四化:本盘四化信号不明显。",`④ 大限:${Pe?`${Pe.palace}(${Pe.daxian.start}–${Pe.daxian.end}岁)`:"当前阶段"}。紫微里大限比流年重:十年的主题定下来,流年只是其中一年的天气。`,Xe?`⑤ 流年四化:${Xe}${l.flow&&l.flow.month?`;流月命宫 ${l.flow.month.ganzhi}${l.flow.month.palace?`(${l.flow.month.palace})`:""}`:""}。`:"⑤ 流年四化:信号不明显。","⑥ 落到维度:工作看命宫与官禄的配合;感情看夫妻宫与煞星;健康看疾厄宫——五维度都是上面几步的应用。"].join(`
|
|
97
|
+
`)},{key:"timeline",label:"时间窗",text:(()=>{const ne=(l.daxianList||[]).slice().sort((Sn,e)=>Sn.ages[0]-e.ages[0]),Ie=ne.findIndex(Sn=>Number.isFinite(Ze)&&Ze>=Sn.ages[0]&&Ze<=Sn.ages[1]),zn=ne.slice(Ie>=0?Ie:0,(Ie>=0?Ie:0)+3).map(Sn=>`${Sn.palace} ${Sn.ages[0]}–${Sn.ages[1]}岁·会${(Sn.mainStars||[]).join("")||"—"}${(Sn.mutagenHits||[]).length?`·${Sn.mutagenHits.map(e=>e.star+e.type).join("")}`:""}`).join(" → "),vn=(l.liunian||[]).slice(0,5).map(Sn=>`${Sn.year} ${Sn.ganzhi} ${Sn.age}岁·命宫${Sn.lifePalace?Sn.lifePalace.palace:"—"}`).join(";");return`大限:${zn||"—"}。
|
|
98
|
+
近五年流年:${vn||"—"}。
|
|
99
|
+
读法:大限定十年的主题,流年四化指出今年往哪边偏;两层方向相反时,以守住大限主题为主。`})()},{key:"quant",label:"量化口径",text:"紫微这边只数「宫位里有什么」:大限看落宫与四化命中数、流年看命宫与四化星数;不把星曜折算成分数,也不预测金额与疾病诊断。四化命中数只是结构计数,不等于吉凶强度。"},{key:"limits",label:"未纳入",text:"本盘没有计算:小限与大限的加权、流日流时的具体事项定位、双星组合的强弱细分,以及「三方四正一起飞」的复合飞化(这里只跟单一支化逐宫串连)。四化表取中州派常用口径,其他流派(如飞星派)结论会不同;这些不改变盘面事实,只影响轻重,所以只作方向参考。"}];if(pn.length){const ne=pn.find(zn=>zn.type==="科")||null,Ie=zn=>`${zn}${String(zn).endsWith("宫")?"":"宫"}`,rn=ne?`其中化科是${ne.star}${ne.palace?`落在${Ie(ne.palace)}`:"未上盘"},`:"";Un.push({key:"sihua",label:"生年四化",text:`你出生年的天干定下四颗化星,落在:${kn}。读法上,化禄的宫位做起来比较顺手、也容易有人帮忙;化权的宫位偏向由你拿主意、但也更容易用力过猛;化科的宫位自带一层体面与贵人缘,遇到事多半能体面收场;化忌的宫位是你容易在意、也容易反复的地方。${rn}这几处只是长期倾向,落到具体某一年还要配上流年四化一起看,不必把它当成结论。`})}{const ne=l.flyChains,Ie=rn=>`${rn}${String(rn).endsWith("宫")?"":"宫"}`;if(ne){const rn=e=>{const o=ne[e];if(!o||!o.steps.length)return`${e}:命宫这一干不化${e}星`;const r=o.steps.map(a=>`${Ie(a.from)}(${a.fromStem})化${e}${a.star}→${Ie(a.to)}(${a.toBranch})`).join(";");return`${e}:${r}${o.closed?`,绕回${Ie(o.path[o.path.length-1])}成环`:""}`},zn=(l.fly||[]).flatMap(e=>(e.flies||[]).filter(o=>o.self).map(o=>`${Ie(e.palace)}(${e.stem})化${o.type}${o.star}落回本宫`)),vn=ne.忌,Sn=vn&&vn.steps.length?`忌这一条最值得盯:${Ie(vn.from)}化忌入${Ie(vn.steps[0].to)},${Ie(vn.steps[0].to)}的宫干再化忌往下一宫去,${vn.closed?`最后绕回${Ie(vn.path[vn.path.length-1])}`:"走到没有可落的星就停下"}——这条线就是你反复着力的那一圈,${vn.closed?"环越短越容易在同一组宫位上打转(传统说「忌出不去」)":"没成环表示这条力还有落点没走完"}。`:"命宫这一干化忌未上盘,忌线不成立。";Un.push({key:"fly",label:"四化飞星",text:`生年四化说的是「一出场就带着什么」,飞星四化说的是「这一宫自己会去找谁」:宫干定出四颗化星,星落到哪一宫,这一宫的力就往哪边使。从命宫出发,四条线各串一遍——${rn("禄")};${rn("权")};${rn("科")};${rn("忌")}。${Sn}另外,四化落回本宫的是自化:${zn.length?zn.join("、")+"——自己化出去又回到自己,常表现为「说得多、落得少」或一阵一阵的劲头":"本盘没有自化"}。这一层只描方向与牵引,不断吉凶:同样是化忌入某宫,落在生年忌上还是落在生年禄上,味道完全不同,得并着生年四化看。`})}}{const ne=l.flyComposite,Ie=rn=>`${rn}${String(rn).endsWith("宫")?"":"宫"}`;if(ne&&Array.isArray(ne.sources)&&ne.sources.length>=2){const rn=ne.targets.filter(Sn=>Sn.count>=2),zn=rn.length?rn.slice(0,5).map(Sn=>`${Ie(Sn.palace)}收了 ${Sn.incoming.map(e=>`${Ie(e.from)}化${e.type}${e.star}`).join("、")}`).join(";"):"四宫化出去之后没有落在同一宫,力是散开的",vn=[];ne.groups.doubleJi.length&&vn.push(`${ne.groups.doubleJi.map(Sn=>Ie(Sn.palace)).join("、")}收到两个以上的忌——同一件事被反复牵动,传统看作那一宫的事务容易拖着不放`),ne.groups.luJi.length&&vn.push(`${ne.groups.luJi.map(Sn=>Ie(Sn.palace)).join("、")}禄忌同宫:好处与在意的地方绑在一起,越想要的东西越容易反复`),ne.groups.tripleHua.length&&vn.push(`${ne.groups.tripleHua.map(Sn=>Ie(Sn.palace)).join("、")}三化以上会宫:那一宫同时被几种力牵住,常常是这张盘最忙的地方`),ne.groups.selfHua.length&&vn.push(`${ne.groups.selfHua.map(Sn=>Ie(Sn.palace)).join("、")}自化:宫干化出去又落回自己,表现为力气绕回原处`),Un.push({key:"flyComposite",label:"三方四正飞化",text:`上一节是命宫一条线往下追;这一节把命宫连同对宫与两个三合宫(${ne.sanfang.join("、")})一起飞:四宫各化禄权科忌,共 16 条飞化(星未上盘的只记星不记落宫),按落宫归堆。${zn}。${vn.length?`${vn.join(";")}。`:""}读法上,会在一处的化越多,那一宫被牵动的力道越集中;落单的飞化只说明方向,不单独取象。这一层同样只描会照与方向,不折吉凶,也没有叠大限与流年四化。`})}}if(l.flow){const ne=l.flow,Ie=zn=>`${zn.ganzhi||"—"}${zn.palace?`落${zn.palace}`:""}`,rn=zn=>(zn.mutagenHits||[]).map(vn=>`${vn.star}化${vn.type}${vn.palace?`→${vn.palace}`:""}`).join("、");Un.push({key:"flow",label:"流月 · 流日 · 流时",text:`以 ${ne.asOf.solar}(农历 ${ne.asOf.lunar},流年 ${ne.asOf.yearGanzhi},斗君 ${ne.year.doujun})为准往下推:流月命宫 ${Ie(ne.month)},四化 ${rn(ne.month)||"不明显"};流日命宫 ${Ie(ne.day)},四化 ${rn(ne.day)||"不明显"};流时命宫 ${Ie(ne.hour)},四化 ${rn(ne.hour)||"不明显"}。这三层的读法不一样:流月管的是一整个月的节奏,适合拿来做「这个月该推进还是该收」的判断;流日和流时颗粒度太细,更容易被临时因素打断,看它们不如说是在看「今明两天的情绪底色」,不必逐条对号入座。`})}const Xn=[{key:"overall",label:"整体",text:`命宫${W}${te?"":"(借对宫)"}${Je.trait?`,${Je.trait}`:""}`},{key:"career",label:"事业",text:`官禄${ze||"无正曜"}`},{key:"wealth",label:"财富",text:`财帛${O||"无正曜"}`},{key:"love",label:"感情",text:`夫妻${Ge||"无正曜"}`},{key:"rhythm",label:"节奏",text:Pe&&Pe.daxian?`当前大限${Pe.palace}(${Pe.daxian.start}–${Pe.daxian.end}岁)${l.liunian?.[0]?.year?`,${l.liunian[0].year} 流年`:""}`:"当前大限未取到"}],Vn=(l.daxianList||[]).slice().sort((ne,Ie)=>ne.ages[0]-Ie.ages[0]),Zn=[{key:"daxian",title:"大限表",columns:["大限","年龄","会主星","四化"],rows:Vn.map(ne=>[ne.palace,`${ne.ages[0]}–${ne.ages[1]}`,(ne.mainStars||[]).join("、"),(ne.mutagenHits||[]).map(Ie=>`${Ie.star}${Ie.type}→${Ie.palace}`).join("、")])},{key:"liunian",title:"流年表(近六年)",columns:["年份","干支","年龄","命宫","四化"],rows:(l.liunian||[]).slice(0,6).map(ne=>[String(ne.year),ne.ganzhi,String(ne.age),ne.lifePalace?ne.lifePalace.palace:"—",(ne.mutagen||[]).join("、")])}],Fn=Vn.flatMap(ne=>(ne.mutagenHits||[]).map(Ie=>[`${ne.palace}(${ne.ages[0]}–${ne.ages[1]}岁)`,`${Ie.star}化${Ie.type}→${Ie.palace}`,`大限${ne.palace}引动`])).slice(0,12);return Fn.length&&Zn.push({key:"triggers",title:"触发事件表(大限四化)",columns:["大限","触发","依据"],rows:Fn}),{lead:"紫微斗数看的是你与环境的互动方式。下面按五个维度拆开,讲的是性格与处境的倾向,具体怎么选仍然在你。",dimensions:qn,sections:Un,outline:Xn,tables:Zn}}function Ye({benName:l,benUpper:H,benLower:u,bianName:x,bianUpper:$,bianLower:M,movingLine:ve,moving:te}){const Z=F(l,H,u),we=[{key:"guaCi",label:"卦名与卦辞大意",text:`本卦为「${Z.full}」,卦辞大意是:${Z.meaning}。这一卦讲的是事情当下的整体走势——你可以先记住这句,后面每个维度都会回到它。`},{key:"yaoCi",label:"爻辞与动爻",text:te?ee(te.position,te):"本卦无动爻,事情处于相对静止的状态,短期内变化的动力不强,宜按现状维持。"}];if(x){const W=F(x,$,M);we.push({key:"bianGua",label:"变卦与走向",text:`动爻变化之后得到「${W.full}」,${W.meaning}。变卦往往指向事情后来的样子:从「${Z.full}」走到「${W.full}」,可以理解为局面会从${Z.scene}转为${W.scene}。`})}return we.push({key:"scene",label:"落到生活里",text:`把这一卦放进日常:${Z.scene}。${x?`而后续的方向是${F(x,$,M).scene}。`:""}你可以对照着看看,眼下哪件事最像这个描述。`}),{sections:we,ben:Z,bian:x?F(x,$,M):null}}const Fe={妻财:"钱财、收入、订单,也指男命的妻缘",官鬼:"工作、职位、上司、考核,也指压力与疾病",父母:"文书、合同、学历、长辈、房子",子孙:"下属、客户、创意、消解压力的出口",兄弟:"同事、同行、竞争者,多与破财相关"};function on(l,H){const u=w(l.ben)?l.ben:{},x=w(l.bian)?l.bian:{},$=Array.isArray(u.lines)?u.lines:[],M=$.find(X=>X.moving)||null,{sections:ve,ben:te,bian:Z}=Ye({benName:u.name,benUpper:u.upper,benLower:u.lower,bianName:x.name,bianUpper:x.upper,bianLower:x.lower,moving:M}),we=$.find(X=>X.position===u.shi),W=$.find(X=>X.position===u.ying),tn=f(u,"palaceElement",""),Je=M?.liuqin||"",xe=M?.liushen||"",ze=f(l.dayGanZhi,"name",""),O=w(l.body)?l.body:{},Ge=O&&Array.isArray(O.labels)?O.labels:_(O),he=X=>$.filter(en=>en.liuqin===X).length,hn=X=>X?`${X.position}爻${X.liuqin}${X.liushen?"·"+X.liushen:""}${X.moving?"(动)":""}`:"—",Ce=(...X)=>X.filter(en=>en!=null&&en!=="");if(ve.push({key:"liuqin",label:"六亲取用",text:`这一卦里,${Je?`动爻落在${Je}(${Fe[Je]||""})`:"没有发动的六亲"}。如果你心里有具体问题,可以对号入座:${Object.entries(Fe).map(([X,en])=>`${X}主${en.split(",")[0]}`).join(";")}。`}),ve.push({key:"reasoning",label:"看卦顺序",text:[`① 先定卦宫:本卦「${u.name||"—"}」属${String(f(u,"palace","—")).replace(/宫$/,"")}宫(${tn||"—"}),六亲由此排定——宫变了,同一个字的六亲就变了。`,`② 再看世应:世在${u.shi}爻(${we?`${we.liuqin}${we.liushen?`·${we.liushen}`:""}`:"—"}),应在${u.ying}爻(${W?`${W.liuqin}`:"—"});世代表你,应代表对方与环境。`,`③ 看动爻:${M?`${M.position}爻${M.liuqin}${M.liushen?`(${M.liushen})`:""}发动,事情的变化点在这里`:"六爻安静,短期不会有大的转折"}。`,"④ 定用神:按所问之事取六亲——问工作看官鬼、文书看父母、求财与感情(男)看妻财、健康看官鬼与子孙;用神不上卦时,看伏神或借日月。",`⑤ 看日辰:${ze||"—"}日起六神、定旬空;日辰能生克动爻,但不被爻所伤。`,`⑥ 看变卦:${x.name?`变出「${x.name}」,是事情后续的走向`:"本卦无变,以静卦论"}。以上每一步都能在下方「依据」里对上号。`].join(`
|
|
100
|
+
`)}),Ge.length){const X=Xe=>[Xe&&Xe.inner?"内卦":"",Xe&&Xe.outer?"外卦":""].filter(Boolean).join("、"),en=X(O.fanYin||{}),fn=["inner","outer"].map(Xe=>O.fanYin&&O.fanYin[Xe]&&O.fanYin[Xe].by).filter(Boolean).flat(),Ze=[];O.ben&&O.ben.chong&&Ze.push("本卦是六冲卦:六爻地支正好配成子午、寅申、辰戌三组对冲,传统读作「散」——事情起落快、成得急也散得急,急事与近病反而喜欢这股冲开的力量,拖了很久的人事则不容易凝聚。"),O.ben&&O.ben.he&&Ze.push("本卦是六合卦:六爻地支两两相合(子丑、寅亥、卯戌、辰酉、巳申、午未),传统读作「成」——容易谈拢,也容易拖住不放。"),O.bian&&O.bian.chong?Ze.push("变卦也是六冲:往后走偏「散」,收尾容易一拍两散,也可能是速战速决。"):O.bian&&O.bian.he&&Ze.push("变卦是六合:往后走偏「合」,收尾倾向于合拢、或者就这么延续下去。"),X(O.fuYin||{})&&Ze.push(`${X(O.fuYin||{})}伏吟:卦变了,纳甲地支却没变(六十四卦里只有乾与震共用子寅辰/午申戌,所以卦伏吟只会出在乾↔震互换)——传统说「伏吟主呻吟」,人想动、事情在原地打转,宜先看清楚再迈步。`),en&&Ze.push(`${en}反吟:变卦与本卦相冲,来源有两种——${fn.includes("chong")?"地支三爻全冲":""}${fn.includes("chong")&&fn.includes("pair")?",或":""}${fn.includes("pair")?"本卦之宫与变卦之宫在后天八卦上正对(乾巽、坎离、艮坤、震兑)":""}。传统说「反吟主反复」,去而复来、方案改来改去。`),O.yaoFanYin&&O.yaoFanYin.length&&Ze.push(`动爻反吟(第${O.yaoFanYin.join("、")}爻):变出的地支回头冲本爻,变化点本身在反复——动了又翻回来,等于绕一圈回到原处。`),O.yaoFuYin&&O.yaoFuYin.length&&Ze.push(`动爻伏吟(第${O.yaoFuYin.join("、")}爻):变出的地支与本爻同支,动了等于没动,想推的事会卡在同一道坎上。`);const Pe=(O.jinTui||[]).filter(Xe=>Xe.type==="进"),qe=(O.jinTui||[]).filter(Xe=>Xe.type==="退");Pe.length&&Ze.push(`化进神(第${Pe.map(Xe=>Xe.position).join("、")}爻:${Pe.map(Xe=>`${Xe.from}→${Xe.to}`).join("、")}):变出的地支与本爻同五行、且顺着往前一步,传统读作「进」——这一爻代表的人或事有后劲,往前走比退回去顺。`),qe.length&&Ze.push(`化退神(第${qe.map(Xe=>Xe.position).join("、")}爻:${qe.map(Xe=>`${Xe.from}→${Xe.to}`).join("、")}):变出的地支与本爻同五行、却倒着退一步,传统读作「退」——这一爻代表的人或事渐渐退气,别按原来的势头去推。`);const jn=l.jinTuiPower;jn&&Array.isArray(jn.lines)&&jn.lines.length&&Ze.push(`进退的力重(放回月建日辰看):${jn.lines.map(Xe=>`第${Xe.position}爻${Xe.say}`).join(";")}。进退只管方向,走不走得动看时令托不托着;用神化进为喜,忌神化进反而是忌。`),Ze.push("这些标签只说明卦体的动势,不直接定吉凶:同一支六冲,近病问的是速愈、久病问的是凶险;同一爻化进,也得看用神旺不旺、有没有月建日辰托着。"),ve.push({key:"body",label:"卦体关系",text:Ze.join(`
|
|
101
|
+
`)})}const mn=ce(l,{direction:H&&H.direction||l.useGod&&l.useGod.direction||"general",gender:l.useGod&&l.useGod.gender||"male"});if(mn&&mn.liuqin){const X=[];if(X.push(`所问方向取${mn.byShi?"世爻":mn.liuqin}为用神(${mn.ask})${mn.direction==="love"?`;感情按${mn.gender==="female"?"女命看官鬼":"男命看妻财"}取,性别未给时按男命算`:""}。`),mn.found.length)X.push(`用神在卦上:${mn.found.map(qe=>`${qe.position}爻${qe.ganzhi}${qe.element}${qe.liuqin}${qe.liushen?`·${qe.liushen}`:""}${qe.shi?"(持世)":""}${qe.ying?"(临应)":""}${qe.moving?"(发动)":""}${qe.kong?"(旬空)":""}`).join("、")}${mn.side?`,落在${mn.side}`:""}。`),mn.found.length>1&&X.push("用神两现:传统取动者、取持世者、取旬空待填者,各派权重不同;这里只把几处都列出来,不替你选哪一爻当主用。");else if(mn.fushen.length){X.push(`用神不上卦:本卦六爻里没有${mn.liuqin},按「用神不上卦则于本宫首卦内寻之」,到${String(f(u,"palace","")).replace(/宫$/,"")}宫首卦取伏神——${mn.fushen.map(jn=>`${jn.position}爻${jn.ganzhi}${jn.element},伏于飞神${jn.fei?`${jn.fei.liuqin}${jn.fei.ganzhi}${jn.fei.element}`:"—"}之下`).join(";")}。`),mn.relationSay.length&&X.push(`飞伏生克:${mn.relationSay.join(";")}。伏神要得出才算有力,藏在忌神之下且被克,则虽有如无。`);const qe=l.fushenAccess;qe&&Array.isArray(qe.items)&&qe.items.length&&(X.push(`伏神出伏的条件:${qe.items.map(jn=>jn.say).join(";")}。`),X.push("「助」与「压」只把飞伏生克、月建日辰与月破并列摆出,再归成四档(可出 / 有助有压 / 受压难出 / 未得助);不排各家优先级,旬空只标出、不并入档位,也不给应期日期。"))}else X.push(`用神不上卦,且本宫首卦里也没找到${mn.liuqin},这一问在卦面上没有直接对应物,只能借日月或改日再占。`);const en=[];O.ben&&O.ben.chong&&en.push("用神在六冲卦里:六冲主散,急事与近病借这股冲开的力量,缓事、久拖的人事则不容易凝聚"),O.ben&&O.ben.he&&en.push("用神在六合卦里:六合主成,容易谈拢,也容易黏住不放"),O.bian&&O.bian.chong?en.push("用神逢变六冲:往后走向偏散,收尾容易一拍两散,也可能是速战速决"):O.bian&&O.bian.he&&en.push("用神逢变六合:往后走向偏合,倾向于合拢或就这么延续");for(const qe of["inner","outer"]){const jn=qe==="inner"?"内卦":"外卦";O.fuYin&&O.fuYin[qe]&&en.push(`用神在${jn}伏吟:动而地支未变,想推的事卡在原地`),O.fanYin&&O.fanYin[qe]&&en.push(`用神在${jn}反吟:变卦与本卦相冲,用神这一头去而复来、定了又改`)}const fn=(O.jinTui||[]).filter(qe=>qe.type==="进"&&mn.found.some(jn=>jn.position===qe.position)),Ze=(O.jinTui||[]).filter(qe=>qe.type==="退"&&mn.found.some(jn=>jn.position===qe.position));fn.length&&en.push(`用神化进神(${fn.map(qe=>`${qe.from}→${qe.to}`).join("、")}):这一爻有后劲,顺着推比退回去顺`),Ze.length&&en.push(`用神化退神(${Ze.map(qe=>`${qe.from}→${qe.to}`).join("、")}):这一爻渐渐退气,别按原来的势头硬推`),mn.found.some(qe=>qe.kong)&&en.push("用神旬空:事情先悬着,传统说空要出空、填实才算落地"),mn.found.some(qe=>(O.yaoFanYin||[]).includes(qe.position))&&en.push("用神这一爻动而反吟:变化点本身在反复,动了又翻回来"),mn.found.some(qe=>(O.yaoFuYin||[]).includes(qe.position))&&en.push("用神这一爻动而伏吟:动了等于没动,容易卡在同一道坎上"),en.length&&X.push(`与卦体对起来看:${en.join(";")}。`);const Pe=l.useGodStrength;if(Pe&&Pe.lines&&Pe.lines.length){const qe=Pe.month&&Pe.month.branch?`月建 ${Pe.month.branch}(${Pe.month.element})`:"没有月建(未给起卦时间),只按日辰看",jn=Pe.lines.map(Xe=>{const pn=Xe.monthChong?",遭月建冲(月破)":Xe.dayChong?Xe.kong?",日辰冲空":Xe.moving?",逢日辰冲":",日辰冲而暗动":"";return`${Xe.position}爻${Xe.branch}${Xe.element}:月建${Xe.monthState}(${Xe.monthSay}),${Xe.dayRelation}(${Xe.daySay})${pn}`});X.push(`时令对用神:${qe},日辰 ${Pe.day?`${Pe.day.branch}(${Pe.day.element})`:"—"}。${jn.join(";")}。`),X.push("月建看这一段时令站在哪一边,日辰看当天那股力量是扶还是克;两处同时看,只报状态,不折成分数。")}X.push("这一层只把用神、卦体与时令对起来,不折成分数、不断成败;应期另在「应期线索」一节只给触发支与快慢。"),ve.push({key:"yongshen",label:"用神落位与卦体",text:X.join(`
|
|
102
|
+
`)})}{const X=l.yingqi;if(X&&Array.isArray(X.items)&&X.items.length){const en=X.items.map(fn=>{const Ze=[fn.monthState&&fn.monthState!=="unknown"?`月建${fn.monthState}`:"",fn.monthChong?"月破":"",fn.kong?"旬空":""].filter(Boolean).join("、");return`${fn.position}爻${fn.branch}${fn.element}${Ze?`(${Ze})`:""}:${fn.tempoSay}`});ve.push({key:"yingqi",label:"应期线索",text:`应期快慢:${X.tempoSay}。${en.join(";")}。可留意的地支:${X.triggers.map(fn=>`${fn.branch}(${fn.labels.join("、")})`).join(";")}。${X.viaFushen?"用神不上卦,这里的支取自伏神;伏神要先得出才算数。":""}这一节只把传统的「逢值、逢冲、逢合」与旬空的出空、冲空摆出来,不换算成具体日期、不排先后、也不判忌神受制;近事以日计、远事以月计,用哪把尺取决于事情本身。`})}}{const X=l.hexStrength;if(X&&Array.isArray(X.lines)&&X.lines.length){const en=X.month&&X.month.branch?`月建 ${X.month.branch}(${X.month.element})`:"没有月建(未给起卦时间)",fn=X.day&&X.day.branch?`日辰 ${X.day.branch}(${X.day.element})`:"日辰 —",Ze=X.lines.map(pn=>{const kn=pn.shi?"(世)":pn.ying?"(应)":"",qn=`${pn.moving?"·动":""}${pn.kong?"·旬空":""}`;return`${pn.position}爻${pn.liuqin?pn.liuqin:""}${pn.branch}${pn.element}${kn}${qn}:月建${pn.monthState},${pn.dayRelation}${pn.chongTag?`,${pn.chongTag}`:""}`}),qe=["旺","相","休","囚","死"].filter(pn=>X.counts[pn]).map(pn=>`${pn}${X.counts[pn]}`).join("、"),jn=X.shi?`世爻在${X.shi.position}爻(月建${X.shi.monthState},${X.shi.dayRelation})`:"",Xe=X.ying?`应爻在${X.ying.position}爻(月建${X.ying.monthState},${X.ying.dayRelation})`:"";ve.push({key:"hexStrength",label:"全卦逐爻旺衰",text:`整张卦按${en}、${fn}逐爻过一遍:${Ze.join(";")}。五态分布:${qe}——${[jn,Xe].filter(Boolean).join(",")}。气旺的爻对应的事推进起来省力,气弱或遭月破的爻对应的事宜缓;这只是六爻全貌,用神那几爻的细节仍以上一节为准,两处不冲突时再看动爻把哪一头带动。判定与用神旺衰同一套(月令五态、日辰五关系、月破/暗动/冲空),只报状态,不折成分数。`})}}return ve.push({key:"limits",label:"未纳入",text:'本卦没有计算:用神两现时该取哪一爻的权重、应期的具体日期(只给逢值/逢冲/逢合的触发支与快慢方向)、忌神受制的时点、动变连环。化进/化退的力重只按月建五态给「得令/失令」这类档位,不折成加权分数;这些都会改变"旺不旺"的判断,所以这里只给取象与方向。'}),{lead:"这一卦问的是眼下的具体事。下面先讲卦理,再分五个维度落到生活里——卦象给的是倾向,不是定论。",dimensions:[{key:"overall",label:"整体运势",text:`这一卦是「${te.full}」,${te.meaning}。${xe?`动爻带${xe},事情带一点${xe==="青龙"?"喜庆顺遂":xe==="白虎"?"压力与阻碍":xe==="朱雀"?"口舌与是非":xe==="玄武"?"不明朗、需要核实":"反复与牵扯"}的色彩。`:""}日辰为${ze},卦宫属${tn},整体更像是${te.scene}的阶段。`,advice:`${te.scene}——顺着这句做就行。${M?"既然有动爻,说明事情还在变化,先观察几天再定也不迟。":"暂无动爻,说明短期内不会有大的转折,维持现状反而是稳妥选择。"}`,evidence:Ce(`本卦 ${u.name||"—"}(${u.upper||""}/${u.lower||""})`,M?`动爻 ${hn(M)}`:"无动爻",`日辰 ${ze||"—"}`,`卦宫 ${f(u,"palace","—")}·${tn||"—"}`,Ge.length?`卦体 ${Ge.join("、")}`:"卦体 无六冲六合伏吟反吟")},{key:"work",label:"工作与职业选择",text:`问工作看官鬼与父母:本卦中${$.filter(X=>X.liuqin==="官鬼").length?`官鬼出现${$.filter(X=>X.liuqin==="官鬼").length}处,${$.find(X=>X.liuqin==="官鬼").moving?"且有发动,岗位或考核层面会有动作":"但未发动,职位层面暂时平稳"}`:"未见官鬼,工作这件事在卦中不是主要矛盾"};${$.filter(X=>X.liuqin==="父母").length?"父母(文书、合同、资质)有出现,涉及手续与材料的事要提前准备":"父母未现,手续类事务暂无明显阻碍"}。`,advice:`如果正在看机会,建议先把合同、岗位职责这些落到纸面上的东西问清楚;${M?.liuqin==="官鬼"?"动爻在官鬼,工作层面近期有变动的迹象,可以主动谈,但别先辞再找。":"工作层面暂无强动象,稳住手上的事更划算。"}`,evidence:Ce(`官鬼 ${he("官鬼")} 现`,`父母 ${he("父母")} 现`,Je?`动爻六亲 ${Je}`:"无动爻")},{key:"career",label:"事业发展",text:`世爻(代表你)在${u.shi}爻${we?`,六亲为${we.liuqin},${we.moving?"且发动":"安静未动"}`:""};应爻(代表对方与环境)在${u.ying}爻${W?`,六亲为${W.liuqin}`:""}。世应之间${we&&W?we.liuqin===W.liuqin?"同气相求,双方立场接近":"立场有别,需要多沟通":"信号不明"},${Z?`变卦「${Z.full}」提示后续走向是${Z.scene}`:"暂无变卦"}。`,advice:`事业上的建议是:${we?.moving?"你自己这边有主动变化的意思,那就把想法说出来、把动作做出来":"先不动,把手上的事做扎实"};${Z?`按${Z.scene}的方向去准备,会比被动等结果好。`:""}`,evidence:Ce(`世 ${hn(we)}`,`应 ${hn(W)}`,x.name?`变卦 ${x.name}`:"无变卦")},{key:"love",label:"爱情与感情",text:`问感情,男看妻财、女看官鬼。本卦中${$.filter(X=>X.liuqin==="妻财").length?`妻财${$.filter(X=>X.liuqin==="妻财").length}现${$.find(X=>X.liuqin==="妻财").moving?"且发动,感情层面有动静":"但安静,关系暂时平缓"}`:"妻财未现,感情不是当前卦象的重点"};${$.filter(X=>X.liuqin==="官鬼").length?"官鬼有现,对方或关系中的压力面是被看到的":"官鬼未现"}。${te.meaning},放在关系里就是${te.scene}。`,advice:`关系里${M?.liuqin==="妻财"||M?.liuqin==="官鬼"?"近期有变化的可能,适合把话说开,别憋着":"暂时平稳,可以按自己的节奏相处"}。卦象只给倾向,真正决定关系的是你们怎么沟通。`,evidence:Ce(`妻财 ${he("妻财")} 现`,`官鬼 ${he("官鬼")} 现`,`世应 ${hn(we)} / ${hn(W)}`)},{key:"health",label:"健康状况",text:`问健康,看官鬼(病)与子孙(医药、消散)。本卦中${$.filter(X=>X.liuqin==="官鬼").length?`官鬼有现${$.find(X=>X.liuqin==="官鬼").moving?"且发动,提示身体上可能有需要留意的地方":",但安静,暂无明显变化"}`:"官鬼未现,卦象未指向明显的身体问题"};${$.filter(X=>X.liuqin==="子孙").length?"子孙有现,恢复与调养的出口是有的":"子孙未现,休息与调养需要自己主动安排"}。${xe==="白虎"?"动爻带白虎,尤其别忽视突发的身体信号。":""}`,advice:`这一卦在健康上的提醒是${$.filter(X=>X.liuqin==="官鬼").length?"别硬扛,累了就休息,有机会就做一次检查":"维持现有作息即可,别自己吓自己"}。任何不适请就医,卦象不能替代诊断。`,evidence:Ce(`官鬼 ${he("官鬼")} 现`,`子孙 ${he("子孙")} 现`,xe?`动爻六神 ${xe}`:"")}],sections:ve}}function De(l){const H=w(l.ben)?l.ben:{},u=w(l.hu)?l.hu:{},x=w(l.bian)?l.bian:{},$=w(l.cuo)?l.cuo:{},M=w(l.zong)?l.zong:{},ve=w(l.bodyUse)?l.bodyUse:{},te=Array.isArray(l.lines)?l.lines:[],Z=te.find(Ce=>Ce.moving)||(Number(l.moving)?te[Number(l.moving)-1]:null),{sections:we,ben:W,bian:tn}=Ye({benName:H.name,benUpper:H.upper,benLower:H.lower,bianName:x.name,bianUpper:x.upper,bianLower:x.lower,moving:Z}),Je=f(ve.body,"element",""),xe=f(ve.use,"element",""),ze=f(ve,"relation",""),O=f(ve,"level",""),Ge=/吉/.test(O),he=/凶/.test(O);return we.splice(1,0,{key:"tiYong",label:"体用关系",text:`体卦为${f(ve.body,"trigram","")}(${Je}),代表你自己;用卦为${f(ve.use,"trigram","")}(${xe}),代表对方与环境。${ze}(${O})。梅花易数看体用生克:${Ge?"用卦对体卦有利,事情推进会相对顺":he?"用卦克体或消耗体卦,推进中会感到阻力,宜缓不宜急":"体用关系平和,事情按常态发展"}。`}),we.splice(3,0,{key:"huGua",label:"互卦与过程",text:`互卦为「${f(u,"name","")}」,${F(u.name,u.upper,u.lower).meaning}——互卦看事情中间的过程,这一段大致是这个味道。错卦「${f($,"name","")}」是换个立场看同一件事,综卦「${f(M,"name","")}」是站在对方位置看,可以参考着换个角度想。`}),{lead:"梅花易数重「体用」——你与这件事之间的关系。下面先讲卦理与体用,再分五个维度落到生活场景。",dimensions:[{key:"overall",label:"整体运势",text:`本卦「${W.full}」,${W.meaning}。体${Je}用${xe},${ze},判定为${O}。${Ge?"整体的倾向是顺的:外部环境对你不算苛刻,可以正常推进":he?"整体有阻力:不是不能做,而是要多留余量与耐心":"整体平稳,不会有大的起落"}。`,advice:`${W.scene}。${he?"建议把节奏放慢,先解决卡点再谈推进":Ge?"可以趁势把想做的事往前推一步":"按原计划走,不必刻意改变"}。`,evidence:[`本卦 ${W.full}`,`互卦 ${f(u,"name","—")}`,`变卦 ${f(x,"name","—")}`,`体${Je} / 用${xe}·${ze||"—"}`,`判定 ${O||"—"}`].filter(Boolean)},{key:"work",label:"工作与职业选择",text:`梅花里工作看用卦与体卦的生克:现在用卦${xe}${Ge?"对体卦有利,说明当下的工作环境或岗位与你的匹配度还不错":he?"与体卦相耗,说明眼下这份工作消耗感偏重":"与体卦关系平和,属于不好不坏"}。本卦${W.meaning},对应到工作里就是${W.scene}。`,advice:`${he?"如果长期觉得被消耗,可以先在内部争取调整职责,再考虑外部机会":Ge?"适合主动争取更多责任或更好的岗位":"把手上的事做好,等一个明确的信号再动"}。选工作时优先考虑让你舒服的环境,长期看比短期收益重要。`,evidence:[`体卦 ${Je}`,`用卦 ${xe}`,`体用 ${ze||"—"}`]},{key:"career",label:"事业发展",text:`变卦「${tn?tn.full:""}」代表事情的结局方向,${tn?tn.meaning:""}。互卦「${f(u,"name","")}」代表过程,${F(u.name,u.upper,u.lower).meaning}。合起来看:过程${F(u.name,u.upper,u.lower).scene},结果${tn?tn.scene:"暂不明朗"}。`,advice:`按这个结构,建议${Ge?"现在就把关键的一步迈出去":he?"先补短板、攒条件,等下一轮再动":"小步推进,边做边看"}。动爻在${f(l,"movingName","某爻")},变化点就在那里,值得重点关注。`,evidence:[`互卦 ${f(u,"name","—")}`,`变卦 ${f(x,"name","—")}`,`动爻 ${f(l,"movingName","—")}`]},{key:"love",label:"爱情与感情",text:`感情上看体用是否相合:体${Je}与用${xe}之间是${ze},${Ge?"这种组合在关系里意味着双方相处比较顺,彼此能给到支撑":he?"这种组合提示相处中有一方付出更多,需要留意平衡":"关系处在常态,没有特别的张力"}。本卦${W.meaning},放到两人之间就是${W.scene}。`,advice:`${he?"别把不满攒着,找个合适的时机说清楚;也别指望对方猜":Ge?"可以主动推进关系,做一些共同的事":"维持现在的相处节奏就好"}。卦象看的是当下的气氛,关系的走向取决于你们怎么经营。`,evidence:[`体 ${Je} / 用 ${xe}`,`体用 ${ze||"—"}`,`本卦 ${W.full}`]},{key:"health",label:"健康状况",text:`梅花里健康看体卦的强弱:体卦${f(ve.body,"trigram","")}属${Je},${he?"被用卦所耗,传统取象上提示近期精力消耗偏大":Ge?"得到生扶,精力状态相对好":"平顺,无明显偏枯"}。${c[Je]?`${Je}对应${c[Je].part},${c[Je].note}。`:""}这是取象提示,不是诊断。`,advice:`${he?"近期别硬撑,睡眠与饮食先稳住,有条件做一次常规体检":"保持现在的作息即可,顺势多动一动更好"}。身体有明确的症状请直接看医生。`,evidence:[`体卦 ${f(ve.body,"trigram","—")}属${Je}`,`用卦 ${f(ve.use,"trigram","—")}属${xe}`,`体用 ${ze||"—"}`]}],sections:we}}function Ue(l){const H=w(l.sanChuan)?l.sanChuan:{},u=w(H.chu)?H.chu:{},x=w(H.zhong)?H.zhong:{},$=w(H.mo)?H.mo:{},M=w(l.geJu)?l.geJu:{},ve=Array.isArray(l.siKe)?l.siKe:[],te=Ge=>P[Ge?.jiangFull]||P[Ge?.jiang]||"",Z=f(u,"liuQin",""),we=f($,"liuQin",""),W=!!(u.xunKong||x.xunKong||$.xunKong),tn=JSON.stringify(H),Je=Ge=>tn.includes(Ge),xe=`初${f(u,"zhi","—")} → 中${f(x,"zhi","—")} → 末${f($,"zhi","—")}`,ze=[{key:"sanChuan",label:"三传与事体走向",text:`初传${f(u,"zhi","")}(${f(u,"jiangFull","")}·${f(u,"liuQin","")}${u.xunKong?"·旬空":""}):${te(u)||"发端的信号"};中传${f(x,"zhi","")}(${f(x,"jiangFull","")}·${f(x,"liuQin","")}${x.xunKong?"·旬空":""}):${te(x)||"过程的信号"};末传${f($,"zhi","")}(${f($,"jiangFull","")}·${f($,"liuQin","")}${$.xunKong?"·旬空":""}):${te($)||"结局的信号"}。三传讲的是一件事从发端、经过到落定的过程,可以按这个顺序对照你的处境。`},{key:"geju",label:"课体与四课",text:`本课为${f(M,"name","未定")}${M.detail?`(${M.detail})`:""}。${ve.length?`四课:${ve.map((Ge,he)=>`${he+1}课 ${Ge.shang||""}上${Ge.xia||""}下`).join(" ")}`:""}`},{key:"reasoning",label:"看课顺序",text:[`① 先看月将加时:月将${f(l.yueJiang,"name","—")}${f(l.yueJiang,"zhi","")}加在${f(l,"hourZhi","—")}时上,定出天地盘——后面所有关系都从这张盘推。`,'② 再看四课:日干寄宫起一课,日支起二课,依次得三、四课;四课是"事情的四个面"。',`③ 看三传:初传${f(u,"zhi","—")}(${Z||"—"})起,中传${f(x,"zhi","—")}(${f(x,"liuQin","—")}),末传${f($,"zhi","—")}(${we||"—"})落——发端、过程、结局。`,`④ 定课体:${f(M,"name","未定")}${M.detail?`(${M.detail})`:""};课体决定这件事"以什么方式"推进,不是吉凶标签。`,'⑤ 看神将:月将、贵人与旬空决定信号强弱;旬空处多为"看着有、实则虚",须核实。',"⑥ 落到维度:工作看官鬼与青龙、朱雀;感情看六合、天后与妻财;健康看白虎与子孙——都是上面几步的应用。"].join(`
|
|
103
|
+
`)},{key:"limits",label:"未纳入",text:"本课没有计算:年命与行年(命上神)、神煞的加权轻重、伏吟反吟的细分,以及课体之间的互涉。三传只取九宗门里的主要取法,其他流派(如以贵神起课)结论可能不同;这些只影响轻重,不改变课面事实。"}];return{lead:"大六壬看的是一件事的来龙去脉。三传给出「发端—过程—结局」的顺序,下面按这个结构分五个维度说。",dimensions:[{key:"overall",label:"整体运势",text:`这一课${f(M,"name","")}${M.detail?`·${M.detail}`:""},发端在${f(u,"zhi","")}(${te(u)||""}),落定在${f($,"zhi","")}(${te($)||""})。${W?"课中有旬空,提示事情里有「看着有、实则虚」的部分,涉及承诺与数字的要核实。":"课中无旬空,事情相对实在。"}整体倾向是:${/吉|生|合/.test(te(u)+te($))?"开局与结局的象都不差,可以正常推进":/虎|蛇|勾|空/.test(te(u)+te($))?"过程中有牵绊与不明朗处,宜慢不宜快":"平顺中带一点摩擦"}。`,advice:`${W?"先把信息核实清楚,别在含糊的基础上做决定":"按你原本的计划推进即可"}。${/虎/.test(te(u))?"开局带白虎,头几天别硬碰,先观察。":""}事情的局面是动态的,这一课看的是当下这一刻的气象。`,evidence:[`课体 ${f(M,"name","—")}`,`三传 ${xe}`,`月将 ${f(l.yueJiang,"name","—")}`,W?"课中见旬空":"无旬空"]},{key:"work",label:"工作与职业选择",text:`工作看官鬼与青龙、太常:本课${Z==="官鬼"?"初传即见官鬼,事情一上来就与职位、考核或上级有关":`初传为${Z||"未取"},${te(u)||""}`}。${/青龙/.test(JSON.stringify(H))?"课中见青龙,工作层面有喜庆与进益的象":"课中未见青龙,工作层面属常态推进"};${/朱雀/.test(JSON.stringify(H))?"见朱雀,文书、沟通与口舌要留意,材料务必留底":""}`,advice:`涉及岗位与待遇的事,建议把口头承诺落成文字;${/朱雀/.test(JSON.stringify(H))?"沟通时少说满话,多留余地。":"正常沟通即可。"}选工作时优先考虑课象中显示出支撑力的方向。`,evidence:[`初传 ${f(u,"zhi","—")}·${Z||"未取"}·${te(u)||"—"}`,Je("青龙")?"见青龙":"无青龙",Je("朱雀")?"见朱雀":"无朱雀"]},{key:"career",label:"事业发展",text:`末传${f($,"zhi","")}(${we||""}·${te($)||""})主结局,${we==="官鬼"?"结局落在官鬼,事业这条线会有明确的结果或位置变化":we==="妻财"?"结局落在妻财,更多体现为收入与资源的落袋":we==="子孙"?"结局落在子孙,压力会消散,适合收尾与转向":"结局的信号相对中性"}。${$.xunKong?"末传旬空,结局有落空的可能,别把预期定得太满。":"末传不空,结果相对实在。"}`,advice:`按三传的顺序安排节奏:初传阶段先摸清情况,中传阶段处理摩擦,末传阶段收果。${$.xunKong?"对结果保留一点弹性,Plan B 提前想好。":"可以朝着末传给出的方向去准备。"}`,evidence:[`末传 ${f($,"zhi","—")}·${we||"未取"}·${te($)||"—"}`,$.xunKong?"末传旬空":"末传不空",`三传 ${xe}`]},{key:"love",label:"爱情与感情",text:`感情看妻财与天后、六合:本课${/六合/.test(JSON.stringify(H))?"见六合,有和合、契约之象,关系层面是往一起走的":"未见六合,关系层面没有明显的和合信号"};${/天后/.test(JSON.stringify(H))?"见天后,有被照顾、被回应的象":""}${/玄武/.test(JSON.stringify(H))?"见玄武,提示信息不明或有隐瞒,重要的事要当面问清":""}${/妻财/.test(JSON.stringify(H))?"课中见妻财,感情这条线是被看到的":""}。`,advice:`${/玄武/.test(JSON.stringify(H))?"关系里有看不清的地方,别猜,直接问。":"按你感受到的相处状态来判断就好。"}卦象只反映当下的气氛,关系如何取决于两个人怎么做。`,evidence:[Je("六合")?"见六合":"无六合",Je("天后")?"见天后":"无天后",Je("妻财")?"见妻财":"无妻财"]},{key:"health",label:"健康状况",text:`健康看白虎与子孙:本课${/白虎/.test(JSON.stringify(H))?"见白虎,传统取象上提示身体有需要留意的地方,尤其突发的不适别忽视":"未见白虎,卦象未指向明显的身体问题"};${/子孙/.test(JSON.stringify(H))?"见子孙,医药与调养的出口是有的,恢复的象在":"未见子孙,休息与调养需要自己主动安排"}。这些都是象征提示,不构成医学判断。`,advice:`${/白虎/.test(JSON.stringify(H))?"近期别熬夜、别硬扛,有条件做一次检查":"保持现有作息,适度运动即可"}。任何不适请就医,这一课不能替代诊断。`,evidence:[Je("白虎")?"见白虎":"无白虎",Je("子孙")?"见子孙":"无子孙",`课体 ${f(M,"name","—")}`]}],sections:ze}}function un(l){const H=Array.isArray(l.cards)?l.cards:[],u=H.length,x=H.filter(O=>O.arcana==="大阿卡纳"),$=H.filter(O=>O.upright),M=H.filter(O=>!O.upright),ve=H.filter(O=>/国王|王后|骑士|侍从/.test(String(O.name))),te={};for(const O of H)O.element&&(te[O.element]=(te[O.element]||0)+1);const Z=Object.entries(te).map(([O,Ge])=>`${O}×${Ge}`).join("、")||"分布不明",we=["火","水","风","土"].filter(O=>!te[O]),W=H.find(O=>/未来|结果|建议/.test(String(O.position)))||H[H.length-1]||null,Je=[{key:"narrative",label:"整盘连贯解读",text:`先把几张牌串成一条线来看:${H.map((O,Ge)=>{const he=O.upright?"顺":"滞";return`${O.position}(${O.positionHint||""})${O.name}${O.orientation}:${O.core||(O.keywords||[]).join("、")},这一环是${he}的`}).join(";")}。${W?`整盘的主轴是「${W.name}」(${W.position}·${W.orientation})——${W.core||""}。其余几张可以理解为这条主线在不同阶段的样貌:${H.filter(O=>O!==W).map(O=>`${O.position}的${O.name}说明${O.core||(O.keywords||[]).join("、")}`).join(",")}。`:""}所以这张牌阵讲的不是几件不相干的事,而是同一件事在不同时间位置上的样子。`},{key:"structure",label:"牌面结构",text:`${u} 张牌中有 ${x.length} 张大阿卡纳(占 ${Math.round(x.length/u*100)}%),${x.length>=Math.ceil(u/2)?"大牌过半,事情牵动的层面较深,与环境、阶段性的课题有关":"大牌不到半数,重点更偏日常层面的具体人事"}。元素分布:${Z}${we.length?`;缺${b(we)},这一块容易被忽略`:""}。正逆位 ${$.length} 正 ${M.length} 逆,${M.length>$.length?"逆位偏多,说明阻滞主要来自内部状态而非外部条件":"整体偏顺,逆位那张是全盘的关节"}。`}],xe=O=>H.find(he=>{const hn=(he.keywords||[]).join("")+String(he.core||"");return O==="love"?/爱|情感|关系|圣杯|恋人|伴侣/.test(hn)||he.domain==="情感与关系":O==="work"?/工作|事业|职场|权杖|星币|金币/.test(hn)||he.domain==="工作与事业":O==="career"?/成就|成功|目标|进展|资源/.test(hn):O==="health"?/健康|休息|疲惫|压力|疗愈/.test(hn):!0});return{lead:"塔罗是一套象征系统而不是判决。下面先给整盘的连贯解读(把几张牌串成一条线),再分五个维度落到生活里。",dimensions:[{key:"overall",label:"整体运势",text:`整盘的主轴落在「${W?W.name:"—"}」(${W?W.orientation:""}),${W?W.core||(W.keywords||[]).join("、"):""}。${M.length?`其中${b(M.map(O=>`${O.name}(${O.position})`))}是逆位,逆位不等于凶,更像那股力量还没顺过来或用力过猛,它是这张牌阵里最值得你先看的部分。`:"全部为正位,说明牌面呈现的状态与你当下的处境是通的。"}${we.length?`元素上缺${b(we)},${we.map(O=>N[O]?.area).filter(Boolean).join("、")}这一块容易被忽略。`:""}`,advice:`${M.length?`先把${M[0].name}指出的卡点处理掉(${(M[0].keywords||[]).join("、")}),暂时不要加码推进`:"按牌面呈现的节奏走"};${we.length?`补一点${we[0]}的力量:${N[we[0]]?.advice||""}`:"把注意力放在能立刻做的小事上,先动一件"}。牌是镜子,照的是你此刻的状态。`,evidence:[`牌阵 ${u} 张(${H.map(O=>O.position).join(" / ")})`,`主轴 ${W?`${W.name}·${W.position}·${W.orientation}`:"—"}`,`逆位 ${M.length} / 正位 ${$.length}`,we.length?`缺 ${b(we)}`:"五行元素齐"]},{key:"work",label:"工作与职业选择",text:`${xe("work")?`牌面上与工作最相关的是「${xe("work").name}」(${xe("work").position}·${xe("work").orientation}):${xe("work").core||(xe("work").keywords||[]).join("、")}。`:"牌面上没有明确指向工作的牌。"}${ve.length?`牌中有宫廷牌${b(ve.map(O=>O.name))},说明局面里有具体的人(也可能就是你自己的某个侧面)在起作用。`:""}${te.土?"有土元素,现实条件与资源是被这张牌阵看到的。":"缺土元素,现实条件与资源这块容易估计不足。"}`,advice:`工作上建议:${te.土?"把计划落到预算与时间表上,别停在口头":"先把现实条件摸清楚——薪资、工时、稳定性,再谈喜好"};${xe("work")&&!xe("work").upright?"这张相关牌是逆位,说明当下的不适主要来自状态而非岗位本身,可以调状态再看。":""}`,evidence:[`工作相关牌 ${xe("work")?`${xe("work").name}·${xe("work").position}·${xe("work").orientation}`:"无"}`,`宫廷牌 ${ve.length} 张`,`土元素 ${te.土||0} 张`]},{key:"career",label:"事业发展",text:`从牌阵的时间线看:${H.map(O=>`${O.position}是${O.name}${O.orientation}`).join(",")}。${x.length>=Math.ceil(u/2)?"大牌过半,事业这条线牵动的不只是岗位,还有你对自己要往哪走的判断":"变化更多发生在具体事务层面,先把眼前的项目做成"}${W?`;结局位置的「${W.name}」给出的方向是${W.core||""}`:""}。`,advice:`建议把${H[0]?.position||"最初"}这一环的课题先收尾,再往${W?.position||"结果"}的方向推进;${te.火?"火的能量在,适合主动出击一步":"缺火时别等热情来,先用流程推着自己动"}。事业发展是长线,牌面只反映当前这一段。`,evidence:[`时间线 ${H.map(O=>`${O.position}·${O.name}${O.orientation}`).join(" → ")}`,`大阿卡纳 ${x.length}/${u}`]},{key:"love",label:"爱情与感情",text:`${xe("love")?`与感情最相关的是「${xe("love").name}」(${xe("love").position}·${xe("love").orientation}):${xe("love").core||(xe("love").keywords||[]).join("、")}。`:"牌面上没有明确指向感情的牌,当下这段关系不是主要议题。"}${te.水?"有水元素,情感与感受在这件事里占的分量不轻。":"缺水元素,容易用理性压过感受,留意别忽略自己的情绪。"}`,advice:`${te.水?"先照顾好感受再谈效率:把想说的话说出口,比猜对方心思有效":"给自己留一点感受情绪的时间,别把所有事都当任务处理"};${xe("love")&&!xe("love").upright?"相关牌为逆位,提示关系里有没说开的地方,找个合适时机讲清楚。":""}关系取决于你们怎么做,牌只帮你把问题问清楚。`,evidence:[`感情相关牌 ${xe("love")?`${xe("love").name}·${xe("love").position}·${xe("love").orientation}`:"无"}`,`水元素 ${te.水||0} 张`]},{key:"health",label:"健康状况",text:`牌阵里${xe("health")?`与健康状态最贴近的是「${xe("health").name}」:${xe("health").core||(xe("health").keywords||[]).join("、")}`:"没有直接指向身体的牌"}。${M.length>=2?`${M.length} 张逆位,提示内在消耗偏大,身体往往是第一个反映出来的`:"整体状态与牌面呈现的相对一致"}${te.土||te.水?"":";缺土与水,作息与身体的基本盘容易被牺牲"}。这些是象征性的提示,不是诊断。`,advice:`${M.length>=2?"建议先把睡眠与饮食稳住,别在这个阶段额外加压":"维持现有作息,适度运动即可"};${we.length?`补${we[0]}所代表的${N[we[0]]?.area||""}:${N[we[0]]?.advice||""}`:""}身体有明确不适请就医,牌面不能替代专业意见。`,evidence:[`健康相关牌 ${xe("health")?`${xe("health").name}·${xe("health").position}`:"无"}`,`逆位 ${M.length} 张`,`元素 土${te.土||0} / 水${te.水||0}`]}],sections:Je}}const Be={bazi:Ne,ziwei:ye,liuyao:on,meihua:De,daliuren:Ue,tarot:un},{interpretQimen:de}=V["qimen-interpret"]||{},{buildAnswer:oe,buildPlain:D,buildGlossary:_e,buildFollowups:Oe,dimensionPlain:Le}=V["interpret-plain"]||{},{knowledgeFor:ue,caveatsFor:We,STATUS_LABEL:ln,KNOWLEDGE_DISCLAIMER:wn}=V["interpret-knowledge"]||{},{citationSourceOf:Pn}=V.citations||{},{limitsFor:Jn}=V.limits||{},{GUIDE:gn}=V.guide||{},{CLASSIC_BOOKS:En,suiyunClassicOf:Cn,classicOf:Wn}=V.classics||{};function Kn(l,H,u){if(!l)return l;const x=["overall","work","career","love","health"],$=he=>{const hn=x.indexOf(he);return hn<0?x.length:hn},M=new Set,ve=(l.dimensions||[]).map(he=>{const hn=Le(he.key,H,{});return{...he,...hn?{plain:hn}:{}}}),te=3;for(const he of ve.slice().sort((hn,Ce)=>$(hn.key)-$(Ce.key))){const hn=ue(H.system,he.key).filter(Ce=>!M.has(Ce.id)).slice(0,te).map(Ce=>{const mn=Pn(Ce.id,Ce.source);return{id:Ce.id,gist:Ce.gist,detail:Ce.detail,source:mn.source,citations:mn.citations,citationStatus:mn.status,citationReason:mn.reason||"",status:Ce.status,statusLabel:ln[Ce.status]||Ce.status,note:Ce.note||""}});for(const Ce of hn)M.add(Ce.id);hn.length&&(he.knowledge=hn)}const Z=[l.lead,...ve.map(he=>[he.label,he.text,he.advice,he.plain,...(he.knowledge||[]).map(hn=>hn.detail)].filter(Boolean).join("")),...(l.sections||[]).map(he=>he.text)].filter(Boolean),we=We(H.system),W=we.filter(he=>he.status!=="todo"),tn=W.filter(he=>M.has(he.id)),Je=W.filter(he=>!M.has(he.id)),xe=he=>`· ${he.gist}(${ln[he.status]||he.status})`,ze=W.length?[tn.length?`本盘涉及 ${tn.length} 处:
|
|
104
|
+
${tn.map(xe).join(`
|
|
105
|
+
`)}`:"本盘未踩到下面这些分歧,结论是按一派一路算下来的。",Je.length?`本体系另有 ${Je.length} 处通行分歧(本盘未涉及,附原注备查):
|
|
106
|
+
${Je.map(he=>`${xe(he)}${he.note?`——${he.note}`:""}`).join(`
|
|
107
107
|
`)}`:""].filter(Boolean).join(`
|
|
108
108
|
|
|
109
|
-
`):"",
|
|
109
|
+
`):"",O=[...l.sections||[]];ze&&O.push({key:"caveats",label:"这套规则有多稳",text:`下列分歧属文本层:各书写法不同,引擎总得取一派,所以本插件取了一派并在此标明。先列你这张盘踩到的,再列本体系其余通行的。
|
|
110
110
|
|
|
111
|
-
${
|
|
111
|
+
${ze}
|
|
112
112
|
|
|
113
|
-
这是「文本层」的分歧,不是谁对谁错的判定:同一现象各派解释路径不同,本插件不替它们裁决,也不据此声称哪一种说法更准。`});const
|
|
114
|
-
`)}),{...
|
|
115
|
-
`);return{text:de,question:r,system:I&&I.system||"",label:p,chars:de.length,truncated:n}}return{followup:_,READING_ORDERS:M,READING_ORDER_FALLBACK:x,readingOrderOf:g,askPrompt:ue}})(),K.trace=(function(){const{PATTERN_TONE:H}=K.ziwei||{},{yongshenOf:q,yongshenStrength:be,fushenAccess:se}=K.liuyao||{},{qimenYongshen:fe}=K["qimen-interpret"]||{},{GAN_JI_GONG:P}=K.daliuren||{},B={liuyao:"六爻",bazi:"八字",ziwei:"紫微",qimen:"奇门",daliuren:"大六壬"},u=(t,d="—")=>t==null||t===""?d:String(t),z=(t,d="—")=>(Array.isArray(t)?t.filter(n=>n!=null&&n!=="").join("、"):"")||d,_=t=>t.map(([d,n])=>({label:String(d),value:u(n)})),E=(t,d,n,h,k,y)=>({key:t,field:d,rule:u(n,""),inputs:_(h),result:u(k,""),source:u(y,"")});function M(t,d){return(Array.isArray(t)?t:[]).find(n=>n.position===d)||null}function x(t,d={}){const n=t.ben&&typeof t.ben=="object"?t.ben:{},h=Array.isArray(n.lines)?n.lines:[],k=t.bian&&typeof t.bian=="object"?t.bian:null,y=Array.isArray(t.cast&&t.cast.movingPositions)?t.cast.movingPositions:[],b=t.useGod&&typeof t.useGod=="object"?t.useGod:null,O=b&&b.direction||d.direction||"general",ie=t.useGodStrength&&typeof t.useGodStrength=="object"?t.useGodStrength:null,de=t.hexStrength&&typeof t.hexStrength=="object"?t.hexStrength:null,ze=t.fushenAccess&&typeof t.fushenAccess=="object"?t.fushenAccess:null,Ae=M(h,n.shi),we=M(h,n.ying),en=ie&&ie.month||de&&de.month||null,Pe=ie&&ie.day||de&&de.day||null,bn=E("najia","纳甲","京房纳甲:八经卦各配天干与三爻地支,内卦取前三爻、外卦取后三爻;动爻再成变卦。",[["本卦",`${u(n.name)}(上${u(n.upper)}·下${u(n.lower)})`],["动爻",y.length?`${y.join("、")}爻`:"无(静卦)"],["变卦",k?`${u(k.name)}(上${u(k.upper)}·下${u(k.lower)})`:"无"]],h.map(w=>`${w.position}爻 ${u(w.ganzhi)}${u(w.element)}`).join("|"),"京房纳甲(八宫纳甲表);实现:engine/liuyao.js · NAJIA(规则表,本仓未录入古籍章页)"),rn=E("liuqin","六亲","以卦宫五行为「我」:同我为兄弟、生我为父母、我生为子孙、克我为官鬼、我克为妻财。",[["卦宫",`${u(n.palace)}(${u(n.palaceElement)})`],["爻五行",z([...new Set(h.map(w=>w.element))])],["日干起六神",`${u(t.dayGanZhi&&t.dayGanZhi.stem)}日`]],h.map(w=>`${w.position}爻 ${u(w.liuqin)}(${u(w.element)})`).join("|"),"五行生克定六亲;取用可对读《增删卜易》卷一·用神章第八;实现:engine/liuyao.js · liuqin()"),Y=E("shiying","世应","八宫首卦世在上爻,一世至五世依次初至五爻,游魂四爻、归魂三爻;应爻与世相隔三位。",[["卦名",`${u(n.name)}(${u(n.palace)})`],["世位",`${u(n.shi)}爻`],["应位",`${u(n.ying)}爻`]],`${u(n.shi)}爻${Ae?` ${u(Ae.liuqin)}·${u(Ae.ganzhi)}${u(Ae.element)}`:""}为世,${u(n.ying)}爻${we?` ${u(we.liuqin)}·${u(we.ganzhi)}${u(we.element)}`:""}为应`,"八宫世应诀(世爻序与应爻隔三位);实现:engine/liuyao.js · SHI_POSITION(通行动诀,本仓未录入古籍章页)");let U;if(!b||!b.liuqin){const w=O==="general"?"未选询问方向(当前为综合),未取用神":"未取到用神";U=E("fushen","伏神","用神不上卦时,回本宫首卦的同位取伏神;飞伏之间只判生克与助压。",[["用神",b&&b.ask?b.ask:"未取"]],`${w};本层不适用。`,"取伏之法参《增删卜易》卷二·飛伏神章第二十八;实现:engine/liuyao.js · yongshenOf()")}else if(b.missing){const w=(b.fushen||[]).map(te=>{const $e=te.fei?`${u(te.fei.ganzhi)}${u(te.fei.element)}(${u(te.fei.liuqin)})`:"—";return`${te.position}爻 ${u(te.ganzhi)}${u(te.element)}(${u(te.liuqin)}),飞神 ${$e},${u(te.relation)}`}).join(";"),ne=ze&&Array.isArray(ze.items)?ze.items.map(te=>`${te.position}爻${u(te.verdict)}`).join("、"):"";U=E("fushen","伏神","用神不上卦时,回本宫首卦的同位取伏神;飞伏之间只判生克,再叠月建日辰给出伏条件,不换算应期。",[["用神",`${b.liuqin}(不上卦)`],["伏位",z((b.fushen||[]).map(te=>`${te.position}爻`))],["月建 / 日辰",`${u(en&&en.branch)} / ${u(Pe&&Pe.branch)}`]],`${w||"本卦无此六亲,首卦同位也未取到伏神"}${ne?`;出伏:${ne}`:""}`,"《增删卜易》卷二·飛伏神章第二十八(用神不現,尋得伏神而遇生扶有用);实现:engine/liuyao.js · fushenAccess()")}else U=E("fushen","伏神","用神已在卦上时不取伏神;伏神层只在本卦找不到用神时启用。",[["用神",b.liuqin],["在位",z((b.found||[]).map(w=>`${w.position}爻`))]],`用神 ${b.liuqin} 已在 ${z((b.found||[]).map(w=>`${w.position}爻`))},无需伏神。`,"取伏之法参《增删卜易》卷二·飛伏神章第二十八;实现:engine/liuyao.js · yongshenOf()");const j=ie&&Array.isArray(ie.lines)?ie.lines.map(w=>`${w.position}爻${u(w.branch)}${u(w.element)}:月${u(w.monthState)}·${u(w.dayRelation)}`).join(";"):"",f=E("wangsheng","旺衰","月建主这一段的旺衰(旺相休囚死),日辰看当天的生克扶压;只给状态标签,不折分数、不单独断吉凶。",[["月建",en?`${u(en.branch)}(${u(en.element)})`:"缺"],["日辰",Pe?`${u(Pe.branch)}(${u(Pe.element)})`:"缺"],["用神",b&&b.liuqin?b.liuqin:"未取"],["旬空",z(t.xunKong)]],[j?`用神:${j}${ie.labels&&ie.labels.length?`(${ie.labels.join("、")})`:""}`:"用神:未取,只看全卦",de&&de.labels&&de.labels.length?`全卦:${de.labels.join("、")}`:""].filter(Boolean).join(";"),"《增删卜易》卷一·月將章第十六、日辰章第十七;实现:engine/liuyao.js · yongshenStrength / hexagramStrength");return[bn,rn,Y,U,f]}function g(t){const d=t.strength&&typeof t.strength=="object"?t.strength:{},n=d.parts&&typeof d.parts=="object"?d.parts:{},h=n.season&&typeof n.season=="object"?n.season:{},k=t.frame&&typeof t.frame=="object"?t.frame:{},y=k.yongshen&&typeof k.yongshen=="object"?k.yongshen:{},b=k.primary&&typeof k.primary=="object"?k.primary:null,O=t.climate&&typeof t.climate=="object"?t.climate:{},ie=k.godStats&&k.godStats.groups?k.godStats.groups:{},de=E("strength","旺衰分值",u(d.method,"月令权重 + 地支藏干通根 + 天干帮扶,量化后分档。"),[["日主",t.dayMaster?`${u(t.dayMaster.stem)}(${u(t.dayMaster.element)})`:"—"],["月令",`${u(h.branch)}(${u(h.element)}·${u(h.word)},权重 ${u(h.weight)})`],["通根",`${z(n.roots)}(${u(n.rootScore)})`],["合会折根",z(n.structure,"无")],["天干帮扶 / 耗泄",`帮 ${z(n.helpers)};泄 ${z(n.drainers)}(${u(n.helpScore)})`],["虚透",z(n.virtualHelpers,"无")]],`${u(d.level)}(${u(d.score)} 分):${u(d.detail)}`,"本仓量化规则(月令权重 3/2/1/0.5/0、藏干通根、三会/三合/六合折根、虚透减半;非古籍定数);实现:engine/bazi.js · 旺衰量化"),ze=u(k.primaryName||b&&b.name,"未取格局"),Ae=z((k.geju||[]).map($e=>$e&&$e.name).filter($e=>$e&&$e!==ze),""),we=z(y.favor),en=z(y.avoid),Pe=z((y.disputed||[]).map($e=>$e&&$e.element),""),bn=z((y.neutral||[]).map($e=>$e?`${$e.element}(${$e.weight} 分)`:""),""),rn=y.tiaohou&&typeof y.tiaohou=="object"?y.tiaohou:O,Y=rn&&rn.need?rn.need:null,U=[ze==="未取格局"?ze:`主格 ${ze}${Ae?`;兼格 ${Ae}`:""}`,`喜 ${we},忌 ${en}`,bn?`中性偏忌 ${bn}(近零,仍按忌参与行运评分)`:"",Pe?`有争议 ${Pe}`:"",rn&&rn.kind?`调候 ${u(rn.kind)}${Y&&Y.element?`,取 ${u(Y.element)}`:""}${rn.avoidElement&&rn.avoidElement!=="—"?`,忌 ${u(rn.avoidElement)}`:""}`:""].filter(Boolean).join(";"),j=E("geju","格局取用",u(y.method,"先按月令与透干取格,再以扶抑为主、调候校验取用。"),[["月令格",b?`${u(b.name)}(${u(b.kind)})`:"—"],["取格依据",b?u(b.evidence):"—"],["十神分量",Object.entries(ie).map(([$e,Re])=>`${$e}${Re}`).join(" / ")||"—"],["调候",rn&&rn.kind?`${u(rn.kind)}${Y&&Y.element?` → ${u(Y.element)}`:""}`:"—"]],`${U}`,"《子平真诠》八、论用神(专求月令);调候参《穷通宝鉴》五行总论;实现:engine/geju.js · yongshenOf()"),f=t.palaces&&typeof t.palaces=="object"?t.palaces:{},w=t.pillars&&t.pillars.month?u(t.pillars.month.branch):"—",ne=t.pillars&&t.pillars.hour?u(t.pillars.hour.branch):"—",te=f.taiyuan?E("palaces","胎元与命身宫","胎元=月干进一、月支进三;胎息=日干五合、日支六合;命宫=27 减生月与生时支、取模后加二;身宫=11 加两支、取模后加二;干支并入六十甲子。",[["生月 / 生时",`${w} / ${ne}`],["胎元",`${u(f.taiyuan.ganzhi)}(月干进一、月支进三)`],["胎息",f.taixi?`${u(f.taixi.ganzhi)}(日干五合、日支六合)`:"—"],["命宫 / 身宫",`${u(f.minggong&&f.minggong.ganzhi)} / ${u(f.shengong&&f.shengong.ganzhi)}`]],`胎元 ${u(f.taiyuan.ganzhi)};${f.taixi?`胎息 ${u(f.taixi.ganzhi)};`:""}命宫 ${u(f.minggong&&f.minggong.ganzhi)};身宫 ${u(f.shengong&&f.shengong.ganzhi)}。四宫是辅助坐标,不单独折吉凶。`,"Tyme 1.5.4 四宫口径(与 ziwei.pub 704 组日期对拍);本仓未直接照录古籍章页;实现:engine/bazi.js · palaces"):null;return[de,j,...te?[te]:[]]}function ue(t){const d=Array.isArray(t.patterns)?t.patterns:[],n=Object.keys(H).length,h=t.soul&&typeof t.soul=="object"?t.soul:{},k=t.bureau&&typeof t.bureau=="object"?t.bureau:{},y=d.map(b=>`${u(b.name)}:${u(b.evidence)}`).join(";");return[E("patterns","格局命中条件",`已收录 ${n} 条格局,逐条校验命宫三方四正的星曜组合;只判结构成立与否,不折吉凶。`,[["命宫",u(h.ganzhi)],["五行局",u(k.name)],["命主 / 身主",`${u(t.lifeMaster)} / ${u(t.bodyMaster)}`],["命中数",`${d.length} / ${n}`]],d.length?`命中 ${d.length} 条:${y}`:"未命中已收录的格局条件(不表示命盘无结构,只是不在已收录清单内)。","《紫微斗数全书》卷三·论人命入格、谈星要论;实现:engine/ziwei.js · detectPatterns()")]}function I(t,d={}){const n=Array.isArray(t.palaces)?t.palaces:[],h=t.month&&typeof t.month=="object"?t.month:{},k=t.states&&typeof t.states=="object"?t.states:{},y=t.conditions&&typeof t.conditions=="object"?t.conditions:{},b=t.zhiFu&&typeof t.zhiFu=="object"?t.zhiFu:{},O=t.zhiShi&&typeof t.zhiShi=="object"?t.zhiShi:{},ie=t.ma&&typeof t.ma=="object"?t.ma:{},de=t.siZhu&&typeof t.siZhu=="object"?t.siZhu:{},ze=E("facts","盘面事实","时家转盘奇门:节气与三元定阴阳遁与局数,旬首定值符星与值使门;值符随时干落宫,八神按阴阳遁顺布或逆布。",[["四柱",`${u(de.year)} ${u(de.month)} ${u(de.day)} ${u(de.time)}`],["节气 / 局",`${u(t.jieqi)} · ${u(t.dun)}${u(t.juNumber)}局(${u(t.juMethod)})`],["旬首",u(t.xunshou)],["值符 / 值使",`${u(b.star)}落${u(b.gong)}宫 / ${u(O.gate)}落${u(O.gong)}宫`],["空亡 / 驿马",`${z(t.kongWang)} / ${u(ie.zhi)}${ie.gong?`(${ie.gong}宫)`:""}`]],n.map(le=>`${le.palace}宫 天${u(le.tianPan)}·${u(le.star)}·${u(le.gate)}·${u(le.god)}`).join("|")||"无九宫数据","《奇门遁甲统宗》卷一·奇门秘诀总赋(阴阳二遁、五日换元、超神接气);实现:engine/qimen.js · buildQimen()"),Ae=fe(t,d.direction),we=Ae.rows.filter(le=>le.palace),en=Ae.rows.filter(le=>!le.palace).map(le=>le.key),Pe=we[0]||null,bn=E("yongshen","用神落宫","按所问之事取用神:先取主用神、再取辅用神;以所落之宫的干、门、星、神整体取象,不单凭门名断事。",[["询问方向",Ae.label],["主用神",Pe?`${Pe.key} → ${Pe.palace.palace}宫`:"未上盘"],["辅用神",we.slice(1).map(le=>`${le.key} → ${le.palace.palace}宫`).join(";")||"无"],["主用神落宫",Pe?`${u(Pe.palace.star)}·${u(Pe.palace.gate)}·${u(Pe.palace.god)}·天盘${u(Pe.palace.tianPan)}`:"—"]],we.length?`${Ae.note};${we.map(le=>`${le.key} 落 ${le.palace.palace}宫(${u(le.palace.star)}·${u(le.palace.gate)}·${u(le.palace.god)})`).join(",")}`+(en.length?`;${en.join("、")} 未上盘`:""):`${Ae.label}的用神均未上盘,属未决项;先按值符落宫参照。`,"本仓用神表(按所问之事取用,非古籍原文);实现:engine/qimen-interpret.js · qimenYongshen()"),rn=["旺","相","休","囚","死"],Y=le=>rn.filter(Ze=>le&&Array.isArray(le[Ze])&&le[Ze].length).map(Ze=>`${Ze} ${le[Ze].join("、")}`).join(";")||"—",U=E("states","门/星/干旺衰","月令定五态:同月令之气为旺,月令所生为相,生月令为休,克月令为囚,月令所克为死;只判力量强弱,不合吉凶。",[["月令",`${u(h.branch)}(${u(h.element)})`],["门",Y(k.gate)],["星",Y(k.star)],["天盘干",Y(k.stem)]],`门:${Y(k.gate)};星:${Y(k.star)};天盘干:${Y(k.stem)}`,"《奇门遁甲统宗》卷三(旺相休囚);实现:engine/qimen.js · groupByState()"),j=[],f=[],w=new Map;for(const le of n){const Ze=le.gateRelation||{};Ze.type==="门迫"?j.push(`${le.palace}宫${u(le.gate)}`):Ze.type==="宫制门"&&f.push(`${le.palace}宫${u(le.gate)}`);const yn=le.stemRelation||{};le.tianPan&&yn.type&&yn.type!=="unknown"&&(w.has(yn.type)||w.set(yn.type,[]),w.get(yn.type).push(`${le.palace}宫${le.tianPan}`))}const te=["干克宫","宫克干","干生宫","宫生干","比和"].filter(le=>w.has(le)).map(le=>`${le} ${w.get(le).join("、")}`).join(";")||"—",$e=(y.jiXing||[]).map(le=>`${le.palace}宫${u(le.stem)}`),Re=(y.ruMu||[]).map(le=>`${le.palace}宫${u(le.stem)}`),Ge=(y.liuYiRuMu||[]).map(le=>`${le.palace}宫${u(le.stem)}`),ln=n.filter(le=>le.ganYing).map(le=>`${le.palace}宫 ${u(le.ganYing.tian)}加${u(le.ganYing.di)} ${u(le.ganYing.name)}`).join(";"),jn=n.filter(le=>le.kong).map(le=>`${le.palace}宫`),Sn=E("relations","宫位生克","门与宫同宫论生克:门克宫为门迫,宫克门为宫制门;天盘干对宫另论生克;击刑、入墓、空亡只作宫位条件,不单独断吉凶。",[["门迫",j.join("、")||"无"],["宫制门",f.join("、")||"无"],["天盘干 × 宫",te],["击刑 / 三奇入墓 / 六仪入墓",`${$e.join("、")||"无"} / ${Re.join("、")||"无"} / ${Ge.join("、")||"无"}`],["十干克应",ln||"—"],["空亡",jn.join("、")||"无"]],`门迫 ${j.length} 处、宫制门 ${f.length} 处;天盘干与宫:${te};击刑 ${$e.length} 处、三奇入墓 ${Re.length} 处、六仪入墓 ${Ge.length} 处、落空 ${jn.length} 宫。十干克应:${ln||"—"}。`,"《奇门遁甲统宗》卷二(八门迫制)、卷十一·玄机赋(中)(六仪击刑、三奇入墓);十干克应为本仓表;实现:engine/qimen.js · gatePalaceRelation() / stemPalaceRelation()、engine/qimen-ganying.js");return[ze,bn,U,Sn]}function D(t){const d=Array.isArray(t.pan)?t.pan:[],n=Array.isArray(t.siKe)?t.siKe:[],h=t.sanChuan&&typeof t.sanChuan=="object"?t.sanChuan:{},k=t.yueJiang&&typeof t.yueJiang=="object"?t.yueJiang:{},y=t.guiren&&typeof t.guiren=="object"?t.guiren:{},b=t.geJu&&typeof t.geJu=="object"?t.geJu:{},O=u(t.dayGanZhi,""),ie=E("tiandipan","天地盘","月将加时:中气换将,月将加于占时之上,顺布十二支成天盘;十二天将以日干昼夜贵人为起点,阳顺阴逆布于天盘。",[["日干支",O],["时支",`${u(t.hourZhi)}时`],["月将",`${u(k.zhi)}(${u(k.name)})`],["昼夜 / 贵人",`${u(t.dayNight)} / ${u(y.zhi)}(${y.reverse?"逆布":"顺布"})`]],d.map(we=>`${we.di}→${we.tian}${we.jiang?`(${u(we.jiang)})`:""}`).join("|")||"无天地盘数据","《大六壬大全》卷二·神将释(月将为十二支神,登明为首逆布);加时布盘属通行口诀,未标卷次;实现:engine/daliuren.js · tianDiPan()"),de=E("sike","四课","四课:日干寄宫取第一课,日干上神再取第二课;日支取第三课,日支上神再取第四课;每课以上下五行论生克。",[["日干 / 日支",`${u(O[0])} / ${u(O[1])}`],["日干寄宫",u(P[O[0]])],["四课",n.map(we=>`${we.position}课 ${u(we.shang)}上${u(we.xia)}下`).join(";")||"—"]],n.map(we=>`${we.position}课 ${u(we.shang)}上${u(we.xia)}下${we.jiang?`·${u(we.jiang)}`:""}:${u(we.relation)}`).join(";")||"无四课数据","《大六壬大全》卷一·起例(十干寄宫);四课余下三课按通行口诀;实现:engine/daliuren.js · siKe()"),ze=we=>we?`${u(we.position)}${u(we.zhi)}(${u(we.liuQin)}${we.xunKong?"·旬空":""},${u(we.jiang)}${we.jiangFull?`·${u(we.jiangFull)}`:""})`:"—",Ae=E("sanchuan","三传","三传:先取贼克(下贼上优先),无则比用、涉害、遥克、昴星,再八专、伏吟、返吟;初传既定,中末以天盘依次递取。",[["课体",`${u(b.name)}(${u(b.detail)})`],["初传",ze(h.chu)],["中传",ze(h.zhong)],["末传",ze(h.mo)]],`${ze(h.chu)} → ${ze(h.zhong)} → ${ze(h.mo)}`,"《大六壬大全》卷一·起例(贼克法为首法,比用、涉害、遥克、昴星、八专、伏吟、返吟依次列后);实现:engine/daliuren.js · chuan()");return[ie,de,Ae]}function p(t,d={}){if(!t||typeof t!="object")return null;let n=null;if(t.system==="liuyao"){let h=t;if(d.refresh===!0)try{const k=q(t,{direction:d.direction,gender:d.gender}),y=t.hexStrength&&t.hexStrength.month&&t.hexStrength.month.branch||t.useGodStrength&&t.useGodStrength.month&&t.useGodStrength.month.branch||null,b=t.dayGanZhi?t.dayGanZhi.branch:null;if(k.liuqin){const O=be(t,k,{monthBranch:y,dayBranch:b}),ie=se(t,k,{monthBranch:y,dayBranch:b});h={...t,useGod:k,useGodStrength:O||void 0,fushenAccess:ie||void 0}}else h={...t,useGod:void 0,useGodStrength:void 0,fushenAccess:void 0}}catch{h=t}n=x(h,d)}else t.system==="bazi"?n=g(t):t.system==="ziwei"?n=ue(t):t.system==="qimen"?n=I(t,d):t.system==="daliuren"&&(n=D(t));return n&&n.length?n:null}const T=t=>String(t??"").replace(/\\/g,"\\\\").replace(/\|/g,"\\|").replace(/\r?\n/g,"<br>");function r(t,d={}){if(!Array.isArray(t)||!t.length)return"";const n=d.system||"",k=[`# 推导链 · ${B[n]||"命盘"}`,"",`> ${t.length} 层;每层给出规则、输入、结果与出处。只读推导,不重算、不改盘面。`];return t.forEach((y,b)=>{if(!y)return;k.push("",`## ${b+1}. ${y.field||"(未命名字段)"}`,""),y.result&&k.push(`**结果**:${y.result}`,""),y.rule&&k.push(`**规则**:${y.rule}`,"");const O=Array.isArray(y.inputs)?y.inputs:[];if(O.length){k.push("| 项 | 值 |","| --- | --- |");for(const ie of O)k.push(`| ${T(ie&&ie.label)} | ${T(ie&&ie.value)} |`);k.push("")}y.source&&k.push(`**出处**:${y.source}`,"")}),`${k.join(`
|
|
113
|
+
这是「文本层」的分歧,不是谁对谁错的判定:同一现象各派解释路径不同,本插件不替它们裁决,也不据此声称哪一种说法更准。`});const Ge=we.filter(he=>he.status==="todo");return Ge.length&&O.push({key:"todo",label:"尚未实现(不猜)",text:Ge.map(he=>`· ${he.gist}${he.note?`——${he.note}`:""}`).join(`
|
|
114
|
+
`)}),{...l,dimensions:ve,sections:O,answer:l.answer||oe(H,u,{}),plain:l.plain||D(H,u,{}),followups:Oe(H,u),glossary:_e(Z,H.system),knowledgeCount:ve.reduce((he,hn)=>he+(hn.knowledge||[]).length,0),knowledgeNote:wn,caveats:we.map(he=>({id:he.id,gist:he.gist,status:he.status,statusLabel:ln[he.status]||he.status}))}}const tt={bazi:"八字(月令 · 十神 · 大运流年)",ziwei:"紫微(宫位 · 四化 · 大限流年)",liuyao:"六爻(卦宫 · 世应 · 动爻 · 日辰)",meihua:"梅花(体用 · 互卦 · 变卦)",daliuren:"六壬(月将加时 · 四课 · 三传)",qimen:"奇门(九宫 · 值符值使 · 用神)",tarot:"塔罗(牌阵 · 正逆位 · 元素)",hepan:"合盘(日主 · 夫妻宫 · 五行互补)"},et=l=>{const H=Array.isArray(l&&l.evidence)?l.evidence.length:0;return H>=3?"强":H>=2?"中":"弱"},nt=(l,H,u)=>Kn({...l,moduleType:Ae[H.system]||"natal",system:H.system,systemLabel:h[H.system]||H.system,title:"解析与详解",dimensions:(l.dimensions||[]).map(x=>({...x,confidence:x.confidence||et(x)})),sections:l.sections||[],outline:l.outline||[],tables:l.tables||[],technique:tt[H.system]||h[H.system]||H.system,disclaimer:l.disclaimer||L,limits:l.limits||Jn(H.system),guide:gn,ask:u},H,u);function it(l,H){if(!w(l)||!l.system)return null;const u=je(H);if(l.system==="qimen")return nt(de(l,H),l,u);const x=Be[l.system];if(!x)return null;let $;try{$=x(l,u)}catch(ve){return{moduleType:Ae[l.system]||"natal",system:l.system,systemLabel:h[l.system]||l.system,title:"解析与详解",lead:"这一盘的解析暂未生成,请稍后重试。",dimensions:[],sections:[],outline:[],tables:[],technique:tt[l.system]||"",disclaimer:L,error:String(ve&&ve.message),ask:u}}const M=ge($.dimensions||[],u,$.lead||"");return nt({lead:M.lead,dimensions:M.dims,sections:$.sections||[],outline:$.outline||[],tables:$.tables||[]},l,u)}return{DIMENSIONS:be,MODULE_TYPE:Ae,SYSTEM_LABEL:h,DIRECTIONS:v,DIRECTION_DEFAULT:le,dirOf:ae,hexInfo:F,interpret:it}})(),V.followup=(function(){const{ZIWEI_STARS:Y}=V["interpret-data"]||{},A=[{key:"career",label:"事业",words:["事业","工作","跳槽","升职","创业","职业","岗位","离职","加薪","面试","offer"]},{key:"wealth",label:"财富",words:["财","钱","收入","投资","买房","存款","亏","赚","分红"]},{key:"love",label:"感情",words:["感情","婚","恋","对象","分手","复合","姻缘","结婚","桃花"]},{key:"health",label:"健康",words:["健康","病","身体","手术","失眠","体检","医院"]},{key:"study",label:"学业",words:["学业","考试","学习","考研","考公","证书","升学"]},{key:"travel",label:"出行",words:["出行","搬家","旅行","出国","迁","远行"]}],Se={career:"官禄",wealth:"财帛",love:"夫妻",health:"疾厄",study:"官禄",travel:"迁移",overall:"命宫"},se=(G,J)=>{const k=String(G).match(/(20\d{2})\s*年?/);if(k)return Number(k[1]);const T=Array.isArray(J.liunian)&&J.liunian[0]?Number(J.liunian[0].year):null;return T?/明年/.test(G)?T+1:/后年/.test(G)?T+2:/去年/.test(G)?T-1:/今年|本年/.test(G)?T:null:null},me=G=>A.find(J=>J.words.some(k=>String(G).includes(k)))||null;function B(G,J){const k=se(J,G),T=me(J),s=Array.isArray(G.liunian)?G.liunian:[],t=Array.isArray(G.dayun?.list)?G.dayun.list:[],d=s.map(n=>n.year);if(k&&!s.some(n=>Number(n.year)===k))return{ok:!1,year:k,topic:T,answer:`这一盘已排的流年范围是 ${d[0]}–${d[d.length-1]},没有 ${k} 年。可以把问题改到范围内,或用 asOf 指定你想看的年份重新排盘。`,evidence:[`已排流年:${d.join("、")}`],confidence:"弱"};if(k){const n=s.find(ce=>Number(ce.year)===k),m=t.find(ce=>Number(ce.startAge)<=Number(n.age)&&Number(n.age)<=Number(ce.startAge)+9)||null,S=n.luck?.tier||"平",p=(n.luck?.reasons||[]).slice(0,3),j=(n.relations||[]).join("、"),_=T?c(G,T.key):"";return{ok:!0,year:k,topic:T,answer:`${k} 年(${n.ganzhi})流年,十神为${n.stemTenGod||"—"},档位「${S}」;所行大运 ${m?`${m.ganzhi}(${m.luck?.tier||"平"})`:"未取到"}。${p.length?`理由:${p.join(",")}。`:""}${j?`与该年地支相关的原局关系:${j}。`:""}${_}`,evidence:[`流年 ${n.year} ${n.ganzhi}·${n.stemTenGod||""}·${S}`,m?`大运 ${m.ganzhi}·${m.luck?.tier||"平"}`:"",j?`原局关系 ${j}`:"",T?`问题方向:${T.label}`:""].filter(Boolean),confidence:m&&p.length?"强":"中"}}if(T){const n={wealth:"overall",study:"work",travel:"overall"}[T.key]||T.key,m=(G.interpret?.dimensions||[]).find(S=>S.key===T.key||S.key===n);if(m){const S=G.frame&&G.frame.godStats&&G.frame.godStats.groups||{},p=T.key==="wealth"?` 财星权重 ${Number(S.财||0)}(只作结构参考,不含金额)。`:"";return{ok:!0,year:null,topic:T,answer:`按${T.label}这条线看:${m.text}${p}${m.advice?` 建议:${m.advice}`:""}`,evidence:(m.evidence||[]).slice(0,4),confidence:m.confidence||"中"}}}return{ok:!1,year:null,topic:T,answer:`这个问题里没有识别到具体的年份或方面。可以这样问:「2027 年事业怎么样」「财运如何」「感情在 2028 年」;已排流年是 ${d[0]}–${d[d.length-1]}。`,evidence:[`可问年份:${d.join("、")}`],confidence:"弱"}}function U(G,J){const k=se(J,G),T=me(J),s=Array.isArray(G.liunian)?G.liunian:[];if(k&&!s.some(t=>Number(t.year)===k))return{ok:!1,year:k,topic:T,answer:`这一盘的流年表覆盖 ${s[0]?.year}–${s[s.length-1]?.year},没有 ${k} 年;可以换一个年份,或用 asOf 指定起点重新排盘。`,evidence:[`流年表:${s.map(t=>t.year).join("、")}`],confidence:"弱"};if(k){const t=s.find(n=>Number(n.year)===k),d=t.daxian||{};return{ok:!0,year:k,topic:T,answer:`${k} 年(${t.ganzhi},${t.age} 岁)流年命宫落在「${t.lifePalace?t.lifePalace.palace:"—"}」,四化为 ${(t.mutagen||[]).join("、")||"不明显"};所行大限${d.palace?`在${d.palace}(${d.start}–${d.end} 岁)`:"未取到"}。${T?`与「${T.label}」对应的宫位信号见下条依据。`:""}`,evidence:[`流年命宫 ${t.lifePalace?t.lifePalace.palace:"—"}(${t.lifePalace?t.lifePalace.branch:"—"})`,`四化 ${(t.mutagen||[]).join("、")||"不明显"}`,d.palace?`大限 ${d.palace}·${d.start}–${d.end}岁`:""].filter(Boolean),confidence:(t.mutagen||[]).length>=3?"强":"中"}}if(T){const t=Se[T.key]||"命宫",d=(G.palaces||[]).find(n=>n.palace===t);if(d){const n=(d.stars||[]).filter(S=>S.type==="主星").map(S=>S.name),m=n.map(S=>Y[S]?.trait).filter(Boolean).slice(0,2).join(";");return{ok:!0,year:null,topic:T,answer:`「${T.label}」看${t}:主星${n.length?n.join("、"):"无正曜(借对宫)"}${m?`——${m}`:""}。宫支${d.branch},${d.stems,""}生年四化与煞星的影响需结合报告里的对应分节一起看。`,evidence:[`${t} ${d.branch}·${n.join("、")||"无正曜"}`,...(d.shensha||[]).slice(0,3)],confidence:n.length?"强":"弱"}}}return{ok:!1,year:null,topic:T,answer:"没有识别到具体年份或方面。可以问「2028 年事业」「感情怎么样」「财运在 2030 年」;也可以直接问某个宫位,如「夫妻宫」。",evidence:[],confidence:"弱"}}function c(G,J){return`这段时间可以重点对照报告里「${{career:"事业",wealth:"财富",love:"感情",health:"健康",study:"学业",travel:"出行"}[J]||"整体"}」一节看。`}function q(G,J){const k=me(J),T=Array.isArray(G.interpret?.sections)?G.interpret.sections:[],s=k?T.find(d=>d.label.includes(k.label)||d.text.includes(k.label)):null;if(s)return{ok:!0,year:null,topic:k,answer:s.text,evidence:[`引用分节:${s.label}`],confidence:"中"};const t=T[0];return{ok:!1,year:null,topic:k,answer:t?`这一盘的追问需要落到具体方面(事业 / 财富 / 感情 / 健康 / 学业 / 出行)。先看「${t.label}」这一节,或把问题说得更具体一点。`:"这一盘暂时没有可追问的分节;先看完整解析,再问具体方面。",evidence:[],confidence:"弱"}}function P(G,J){const k=String(J||"").trim(),T=G&&G.system==="bazi"?B(G,k):G&&G.system==="ziwei"?U(G,k):q(G,k);return{question:k,...T}}const N={bazi:"八字(四柱)",ziwei:"紫微斗数",liuyao:"六爻",meihua:"梅花易数",daliuren:"大六壬",qimen:"奇门遁甲",tarot:"塔罗",hepan:"合盘",chenggu:"称骨",almanac:"黄历",zeri:"择日",star:"星座",numerology:"生命数字",mbti:"十六型人格",trend:"人生 K 线",fengshui:"风水",name:"起名",convert:"公农历互转"},L=Object.freeze({bazi:["基本信息","四柱(日主/十神/藏干)","旺衰·格局·用神","合冲·神煞","起运·大运·流年","古籍依据"],ziwei:["基本信息","命宫/身宫与五行局","十二宫(主星/辅煞/四化)","格局与三方四正","大限/流年","古籍依据"],liuyao:["所问与用神","本卦/变卦(世应/动爻/六亲)","月建日辰(旺衰/空破)","应期线索","卦辞与依据"],meihua:["所问与体用","本卦/互卦/变卦","五行生克","应期与依据"],daliuren:["天地盘(月将/贵人)","四课","三传","课体与神将","依据"],qimen:["四柱与局数","九宫(星门神/天盘干)","用神落宫","门宫·干宫·十干克应","旺衰·击刑入墓","依据"],tarot:["问题与牌阵","逐牌(正逆/元素)","牌间关系","综合倾向","边界"],fengshui:["坐向与元运","运盘/山盘/向盘","旺山旺向","取象与边界"]}),z=Object.freeze(["基本信息","盘面事实","结构与关系","倾向","边界"]);function g(G){return L[G]||z}function $e(G,J={}){const k=N[G&&G.system]||G&&G.system||"未知体系",s=String(J&&J.question||"").trim()||"请先用一句白话讲清这张盘的主线,再指出最值得注意的一两处,并说明每处的具体依据。",t=Number.isFinite(J&&J.maxChars)&&J.maxChars>=400?J.maxChars:3e3,d=String(G&&G.summary||"").trim(),n=d.length>t,m=n?`${d.slice(0,t)}…(摘要已截断)`:d,S=J&&typeof J.interpret=="object"&&J.interpret||G&&typeof G.interpret=="object"&&G.interpret||null,p=String(S&&S.answer||"").trim(),j=String(S&&S.plain||"").trim(),_=[];p&&_.push(`直答:${p}`),j&&_.push(`说人话:${j}`);const be=["【命理追问】下面这张盘是命理插件刚排好的,请就着它回答我的问题;不用重新排盘,盘面字段已经够用。",`体系:${k}`,`所问:${s}`,"",..._.length?["——开场结论(插件已按同一套规则算好,开场先沿用这句;措辞可改,口径别换)——",..._,""]:[],"——盘面层次(从上到下读,别跳层)——",`${k}:${g(G&&G.system).join(" → ")}`,"先复述事实,再讲结构与时间;上一层没交代清楚,不要跳到下一层。","","——盘面摘要——",m||"(这张盘没有摘要字段,请先让我重新排一次。)","","——回答要求——","读者不懂命理。按下面的骨架答;任何一句他看不懂,就算没写完:",_.length?"1) 开头一句结论:先沿用上面的「开场结论」,再用一句不用术语的话说清这张盘的主线——只读这一句也该有收获;":"1) 开头一句结论:不用术语,一句话说清这张盘的主线,只读这一句也该有收获;","2) 第二段只复述盘面骨架:按上面的层次用 2–4 行写事实(如四柱、格局、用神、大运),不掺倾向,让读者知道后面的判断从哪来;","3) 判断最多两条,按重要性排序,每条分四行写:"," 盘面|只引盘面已有的字(具体的柱、宫或爻、字段名),不掺解释;"," 白话|把上一行的术语当场翻成日常话——调候 / 化气 / 通关 / 空亡 / 争合 这类词必须落地,一个词只翻一次,不连续堆三个以上;"," 倾向|说「更可能……」,讲清它在现实里大概意味着什么,用概率语气;"," 边界|这条在什么情况下不成立;盘面没给的,直接写「这盘里看不出来」;","4) 收尾一句「如果只记一件事」:给一条能核对、能动手的观察点,并说明它出自上面哪条盘面依据;","5) 别把传统说法当成已证实的事实:不下绝对断言,也不用「肯定」「绝对」这类词,更不写「格局很好」「运程不顺」这种没有信息的空话。"].join(`
|
|
115
|
+
`);return{text:be,question:s,system:G&&G.system||"",label:k,chars:be.length,truncated:n}}return{followup:P,READING_ORDERS:L,READING_ORDER_FALLBACK:z,readingOrderOf:g,askPrompt:$e}})(),V.trace=(function(){const{PATTERN_TONE:Y}=V.ziwei||{},{yongshenOf:A,yongshenStrength:Se,fushenAccess:se}=V.liuyao||{},{qimenYongshen:me}=V["qimen-interpret"]||{},{GAN_JI_GONG:B}=V.daliuren||{},U={liuyao:"六爻",bazi:"八字",ziwei:"紫微",qimen:"奇门",daliuren:"大六壬"},c=(t,d="—")=>t==null||t===""?d:String(t),q=(t,d="—")=>(Array.isArray(t)?t.filter(n=>n!=null&&n!=="").join("、"):"")||d,P=t=>t.map(([d,n])=>({label:String(d),value:c(n)})),N=(t,d,n,m,S,p)=>({key:t,field:d,rule:c(n,""),inputs:P(m),result:c(S,""),source:c(p,"")});function L(t,d){return(Array.isArray(t)?t:[]).find(n=>n.position===d)||null}function z(t,d={}){const n=t.ben&&typeof t.ben=="object"?t.ben:{},m=Array.isArray(n.lines)?n.lines:[],S=t.bian&&typeof t.bian=="object"?t.bian:null,p=Array.isArray(t.cast&&t.cast.movingPositions)?t.cast.movingPositions:[],j=t.useGod&&typeof t.useGod=="object"?t.useGod:null,_=j&&j.direction||d.direction||"general",ce=t.useGodStrength&&typeof t.useGodStrength=="object"?t.useGodStrength:null,be=t.hexStrength&&typeof t.hexStrength=="object"?t.hexStrength:null,Ae=t.fushenAccess&&typeof t.fushenAccess=="object"?t.fushenAccess:null,h=L(m,n.shi),v=L(m,n.ying),le=ce&&ce.month||be&&be.month||null,ae=ce&&ce.day||be&&be.day||null,je=N("najia","纳甲","京房纳甲:八经卦各配天干与三爻地支,内卦取前三爻、外卦取后三爻;动爻再成变卦。",[["本卦",`${c(n.name)}(上${c(n.upper)}·下${c(n.lower)})`],["动爻",p.length?`${p.join("、")}爻`:"无(静卦)"],["变卦",S?`${c(S.name)}(上${c(S.upper)}·下${c(S.lower)})`:"无"]],m.map(b=>`${b.position}爻 ${c(b.ganzhi)}${c(b.element)}`).join("|"),"京房纳甲(八宫纳甲表);实现:engine/liuyao.js · NAJIA(规则表,本仓未录入古籍章页)"),ge=N("liuqin","六亲","以卦宫五行为「我」:同我为兄弟、生我为父母、我生为子孙、克我为官鬼、我克为妻财。",[["卦宫",`${c(n.palace)}(${c(n.palaceElement)})`],["爻五行",q([...new Set(m.map(b=>b.element))])],["日干起六神",`${c(t.dayGanZhi&&t.dayGanZhi.stem)}日`]],m.map(b=>`${b.position}爻 ${c(b.liuqin)}(${c(b.element)})`).join("|"),"五行生克定六亲;取用可对读《增删卜易》卷一·用神章第八;实现:engine/liuyao.js · liuqin()"),E=N("shiying","世应","八宫首卦世在上爻,一世至五世依次初至五爻,游魂四爻、归魂三爻;应爻与世相隔三位。",[["卦名",`${c(n.name)}(${c(n.palace)})`],["世位",`${c(n.shi)}爻`],["应位",`${c(n.ying)}爻`]],`${c(n.shi)}爻${h?` ${c(h.liuqin)}·${c(h.ganzhi)}${c(h.element)}`:""}为世,${c(n.ying)}爻${v?` ${c(v.liuqin)}·${c(v.ganzhi)}${c(v.element)}`:""}为应`,"八宫世应诀(世爻序与应爻隔三位);实现:engine/liuyao.js · SHI_POSITION(通行动诀,本仓未录入古籍章页)");let R;if(!j||!j.liuqin){const b=_==="general"?"未选询问方向(当前为综合),未取用神":"未取到用神";R=N("fushen","伏神","用神不上卦时,回本宫首卦的同位取伏神;飞伏之间只判生克与助压。",[["用神",j&&j.ask?j.ask:"未取"]],`${b};本层不适用。`,"取伏之法参《增删卜易》卷二·飛伏神章第二十八;实现:engine/liuyao.js · yongshenOf()")}else if(j.missing){const b=(j.fushen||[]).map(C=>{const ee=C.fei?`${c(C.fei.ganzhi)}${c(C.fei.element)}(${c(C.fei.liuqin)})`:"—";return`${C.position}爻 ${c(C.ganzhi)}${c(C.element)}(${c(C.liuqin)}),飞神 ${ee},${c(C.relation)}`}).join(";"),F=Ae&&Array.isArray(Ae.items)?Ae.items.map(C=>`${C.position}爻${c(C.verdict)}`).join("、"):"";R=N("fushen","伏神","用神不上卦时,回本宫首卦的同位取伏神;飞伏之间只判生克,再叠月建日辰给出伏条件,不换算应期。",[["用神",`${j.liuqin}(不上卦)`],["伏位",q((j.fushen||[]).map(C=>`${C.position}爻`))],["月建 / 日辰",`${c(le&&le.branch)} / ${c(ae&&ae.branch)}`]],`${b||"本卦无此六亲,首卦同位也未取到伏神"}${F?`;出伏:${F}`:""}`,"《增删卜易》卷二·飛伏神章第二十八(用神不現,尋得伏神而遇生扶有用);实现:engine/liuyao.js · fushenAccess()")}else R=N("fushen","伏神","用神已在卦上时不取伏神;伏神层只在本卦找不到用神时启用。",[["用神",j.liuqin],["在位",q((j.found||[]).map(b=>`${b.position}爻`))]],`用神 ${j.liuqin} 已在 ${q((j.found||[]).map(b=>`${b.position}爻`))},无需伏神。`,"取伏之法参《增删卜易》卷二·飛伏神章第二十八;实现:engine/liuyao.js · yongshenOf()");const w=ce&&Array.isArray(ce.lines)?ce.lines.map(b=>`${b.position}爻${c(b.branch)}${c(b.element)}:月${c(b.monthState)}·${c(b.dayRelation)}`).join(";"):"",f=N("wangsheng","旺衰","月建主这一段的旺衰(旺相休囚死),日辰看当天的生克扶压;只给状态标签,不折分数、不单独断吉凶。",[["月建",le?`${c(le.branch)}(${c(le.element)})`:"缺"],["日辰",ae?`${c(ae.branch)}(${c(ae.element)})`:"缺"],["用神",j&&j.liuqin?j.liuqin:"未取"],["旬空",q(t.xunKong)]],[w?`用神:${w}${ce.labels&&ce.labels.length?`(${ce.labels.join("、")})`:""}`:"用神:未取,只看全卦",be&&be.labels&&be.labels.length?`全卦:${be.labels.join("、")}`:""].filter(Boolean).join(";"),"《增删卜易》卷一·月將章第十六、日辰章第十七;实现:engine/liuyao.js · yongshenStrength / hexagramStrength");return[je,ge,E,R,f]}function g(t){const d=t.strength&&typeof t.strength=="object"?t.strength:{},n=d.parts&&typeof d.parts=="object"?d.parts:{},m=n.season&&typeof n.season=="object"?n.season:{},S=t.frame&&typeof t.frame=="object"?t.frame:{},p=S.yongshen&&typeof S.yongshen=="object"?S.yongshen:{},j=S.primary&&typeof S.primary=="object"?S.primary:null,_=t.climate&&typeof t.climate=="object"?t.climate:{},ce=S.godStats&&S.godStats.groups?S.godStats.groups:{},be=N("strength","旺衰分值",c(d.method,"月令权重 + 地支藏干通根 + 天干帮扶,量化后分档。"),[["日主",t.dayMaster?`${c(t.dayMaster.stem)}(${c(t.dayMaster.element)})`:"—"],["月令",`${c(m.branch)}(${c(m.element)}·${c(m.word)},权重 ${c(m.weight)})`],["通根",`${q(n.roots)}(${c(n.rootScore)})`],["合会折根",q(n.structure,"无")],["天干帮扶 / 耗泄",`帮 ${q(n.helpers)};泄 ${q(n.drainers)}(${c(n.helpScore)})`],["虚透",q(n.virtualHelpers,"无")]],`${c(d.level)}(${c(d.score)} 分):${c(d.detail)}`,"本仓量化规则(月令权重 3/2/1/0.5/0、藏干通根、三会/三合/六合折根、虚透减半;非古籍定数);实现:engine/bazi.js · 旺衰量化"),Ae=c(S.primaryName||j&&j.name,"未取格局"),h=q((S.geju||[]).map(ee=>ee&&ee.name).filter(ee=>ee&&ee!==Ae),""),v=q(p.favor),le=q(p.avoid),ae=q((p.disputed||[]).map(ee=>ee&&ee.element),""),je=q((p.neutral||[]).map(ee=>ee?`${ee.element}(${ee.weight} 分)`:""),""),ge=p.tiaohou&&typeof p.tiaohou=="object"?p.tiaohou:_,E=ge&&ge.need?ge.need:null,R=[Ae==="未取格局"?Ae:`主格 ${Ae}${h?`;兼格 ${h}`:""}`,`喜 ${v},忌 ${le}`,je?`中性偏忌 ${je}(近零,仍按忌参与行运评分)`:"",ae?`有争议 ${ae}`:"",ge&&ge.kind?`调候 ${c(ge.kind)}${E&&E.element?`,取 ${c(E.element)}`:""}${ge.avoidElement&&ge.avoidElement!=="—"?`,忌 ${c(ge.avoidElement)}`:""}`:""].filter(Boolean).join(";"),w=N("geju","格局取用",c(p.method,"先按月令与透干取格,再以扶抑为主、调候校验取用。"),[["月令格",j?`${c(j.name)}(${c(j.kind)})`:"—"],["取格依据",j?c(j.evidence):"—"],["十神分量",Object.entries(ce).map(([ee,Ne])=>`${ee}${Ne}`).join(" / ")||"—"],["调候",ge&&ge.kind?`${c(ge.kind)}${E&&E.element?` → ${c(E.element)}`:""}`:"—"]],`${R}`,"《子平真诠》八、论用神(专求月令);调候参《穷通宝鉴》五行总论;实现:engine/geju.js · yongshenOf()"),f=t.palaces&&typeof t.palaces=="object"?t.palaces:{},b=t.pillars&&t.pillars.month?c(t.pillars.month.branch):"—",F=t.pillars&&t.pillars.hour?c(t.pillars.hour.branch):"—",C=f.taiyuan?N("palaces","胎元与命身宫","胎元=月干进一、月支进三;胎息=日干五合、日支六合;命宫=27 减生月与生时支、取模后加二;身宫=11 加两支、取模后加二;干支并入六十甲子。",[["生月 / 生时",`${b} / ${F}`],["胎元",`${c(f.taiyuan.ganzhi)}(月干进一、月支进三)`],["胎息",f.taixi?`${c(f.taixi.ganzhi)}(日干五合、日支六合)`:"—"],["命宫 / 身宫",`${c(f.minggong&&f.minggong.ganzhi)} / ${c(f.shengong&&f.shengong.ganzhi)}`]],`胎元 ${c(f.taiyuan.ganzhi)};${f.taixi?`胎息 ${c(f.taixi.ganzhi)};`:""}命宫 ${c(f.minggong&&f.minggong.ganzhi)};身宫 ${c(f.shengong&&f.shengong.ganzhi)}。四宫是辅助坐标,不单独折吉凶。`,"Tyme 1.5.4 四宫口径(与 ziwei.pub 704 组日期对拍);本仓未直接照录古籍章页;实现:engine/bazi.js · palaces"):null;return[be,w,...C?[C]:[]]}function $e(t){const d=Array.isArray(t.patterns)?t.patterns:[],n=Object.keys(Y).length,m=t.soul&&typeof t.soul=="object"?t.soul:{},S=t.bureau&&typeof t.bureau=="object"?t.bureau:{},p=d.map(j=>`${c(j.name)}:${c(j.evidence)}`).join(";");return[N("patterns","格局命中条件",`已收录 ${n} 条格局,逐条校验命宫三方四正的星曜组合;只判结构成立与否,不折吉凶。`,[["命宫",c(m.ganzhi)],["五行局",c(S.name)],["命主 / 身主",`${c(t.lifeMaster)} / ${c(t.bodyMaster)}`],["命中数",`${d.length} / ${n}`]],d.length?`命中 ${d.length} 条:${p}`:"未命中已收录的格局条件(不表示命盘无结构,只是不在已收录清单内)。","《紫微斗数全书》卷三·论人命入格、谈星要论;实现:engine/ziwei.js · detectPatterns()")]}function G(t,d={}){const n=Array.isArray(t.palaces)?t.palaces:[],m=t.month&&typeof t.month=="object"?t.month:{},S=t.states&&typeof t.states=="object"?t.states:{},p=t.conditions&&typeof t.conditions=="object"?t.conditions:{},j=t.zhiFu&&typeof t.zhiFu=="object"?t.zhiFu:{},_=t.zhiShi&&typeof t.zhiShi=="object"?t.zhiShi:{},ce=t.ma&&typeof t.ma=="object"?t.ma:{},be=t.siZhu&&typeof t.siZhu=="object"?t.siZhu:{},Ae=N("facts","盘面事实","时家转盘奇门:节气与三元定阴阳遁与局数,旬首定值符星与值使门;值符随时干落宫,八神按阴阳遁顺布或逆布。",[["四柱",`${c(be.year)} ${c(be.month)} ${c(be.day)} ${c(be.time)}`],["节气 / 局",`${c(t.jieqi)} · ${c(t.dun)}${c(t.juNumber)}局(${c(t.juMethod)})`],["旬首",c(t.xunshou)],["值符 / 值使",`${c(j.star)}落${c(j.gong)}宫 / ${c(_.gate)}落${c(_.gong)}宫`],["空亡 / 驿马",`${q(t.kongWang)} / ${c(ce.zhi)}${ce.gong?`(${ce.gong}宫)`:""}`]],n.map(fe=>`${fe.palace}宫 天${c(fe.tianPan)}·${c(fe.star)}·${c(fe.gate)}·${c(fe.god)}`).join("|")||"无九宫数据","《奇门遁甲统宗》卷一·奇门秘诀总赋(阴阳二遁、五日换元、超神接气);实现:engine/qimen.js · buildQimen()"),h=me(t,d.direction),v=h.rows.filter(fe=>fe.palace),le=h.rows.filter(fe=>!fe.palace).map(fe=>fe.key),ae=v[0]||null,je=N("yongshen","用神落宫","按所问之事取用神:先取主用神、再取辅用神;以所落之宫的干、门、星、神整体取象,不单凭门名断事。",[["询问方向",h.label],["主用神",ae?`${ae.key} → ${ae.palace.palace}宫`:"未上盘"],["辅用神",v.slice(1).map(fe=>`${fe.key} → ${fe.palace.palace}宫`).join(";")||"无"],["主用神落宫",ae?`${c(ae.palace.star)}·${c(ae.palace.gate)}·${c(ae.palace.god)}·天盘${c(ae.palace.tianPan)}`:"—"]],v.length?`${h.note};${v.map(fe=>`${fe.key} 落 ${fe.palace.palace}宫(${c(fe.palace.star)}·${c(fe.palace.gate)}·${c(fe.palace.god)})`).join(",")}`+(le.length?`;${le.join("、")} 未上盘`:""):`${h.label}的用神均未上盘,属未决项;先按值符落宫参照。`,"本仓用神表(按所问之事取用,非古籍原文);实现:engine/qimen-interpret.js · qimenYongshen()"),ge=["旺","相","休","囚","死"],E=fe=>ge.filter(nn=>fe&&Array.isArray(fe[nn])&&fe[nn].length).map(nn=>`${nn} ${fe[nn].join("、")}`).join(";")||"—",R=N("states","门/星/干旺衰","月令定五态:同月令之气为旺,月令所生为相,生月令为休,克月令为囚,月令所克为死;只判力量强弱,不合吉凶。",[["月令",`${c(m.branch)}(${c(m.element)})`],["门",E(S.gate)],["星",E(S.star)],["天盘干",E(S.stem)]],`门:${E(S.gate)};星:${E(S.star)};天盘干:${E(S.stem)}`,"《奇门遁甲统宗》卷三(旺相休囚);实现:engine/qimen.js · groupByState()"),w=[],f=[],b=new Map;for(const fe of n){const nn=fe.gateRelation||{};nn.type==="门迫"?w.push(`${fe.palace}宫${c(fe.gate)}`):nn.type==="宫制门"&&f.push(`${fe.palace}宫${c(fe.gate)}`);const bn=fe.stemRelation||{};fe.tianPan&&bn.type&&bn.type!=="unknown"&&(b.has(bn.type)||b.set(bn.type,[]),b.get(bn.type).push(`${fe.palace}宫${fe.tianPan}`))}const C=["干克宫","宫克干","干生宫","宫生干","比和"].filter(fe=>b.has(fe)).map(fe=>`${fe} ${b.get(fe).join("、")}`).join(";")||"—",ee=(p.jiXing||[]).map(fe=>`${fe.palace}宫${c(fe.stem)}`),Ne=(p.ruMu||[]).map(fe=>`${fe.palace}宫${c(fe.stem)}`),Me=(p.liuYiRuMu||[]).map(fe=>`${fe.palace}宫${c(fe.stem)}`),an=n.filter(fe=>fe.ganYing).map(fe=>`${fe.palace}宫 ${c(fe.ganYing.tian)}加${c(fe.ganYing.di)} ${c(fe.ganYing.name)}`).join(";"),Te=n.filter(fe=>fe.kong).map(fe=>`${fe.palace}宫`),dn=N("relations","宫位生克","门与宫同宫论生克:门克宫为门迫,宫克门为宫制门;天盘干对宫另论生克;击刑、入墓、空亡只作宫位条件,不单独断吉凶。",[["门迫",w.join("、")||"无"],["宫制门",f.join("、")||"无"],["天盘干 × 宫",C],["击刑 / 三奇入墓 / 六仪入墓",`${ee.join("、")||"无"} / ${Ne.join("、")||"无"} / ${Me.join("、")||"无"}`],["十干克应",an||"—"],["空亡",Te.join("、")||"无"]],`门迫 ${w.length} 处、宫制门 ${f.length} 处;天盘干与宫:${C};击刑 ${ee.length} 处、三奇入墓 ${Ne.length} 处、六仪入墓 ${Me.length} 处、落空 ${Te.length} 宫。十干克应:${an||"—"}。`,"《奇门遁甲统宗》卷二(八门迫制)、卷十一·玄机赋(中)(六仪击刑、三奇入墓);十干克应为本仓表;实现:engine/qimen.js · gatePalaceRelation() / stemPalaceRelation()、engine/qimen-ganying.js");return[Ae,je,R,dn]}function J(t){const d=Array.isArray(t.pan)?t.pan:[],n=Array.isArray(t.siKe)?t.siKe:[],m=t.sanChuan&&typeof t.sanChuan=="object"?t.sanChuan:{},S=t.yueJiang&&typeof t.yueJiang=="object"?t.yueJiang:{},p=t.guiren&&typeof t.guiren=="object"?t.guiren:{},j=t.geJu&&typeof t.geJu=="object"?t.geJu:{},_=c(t.dayGanZhi,""),ce=N("tiandipan","天地盘","月将加时:中气换将,月将加于占时之上,顺布十二支成天盘;十二天将以日干昼夜贵人为起点,阳顺阴逆布于天盘。",[["日干支",_],["时支",`${c(t.hourZhi)}时`],["月将",`${c(S.zhi)}(${c(S.name)})`],["昼夜 / 贵人",`${c(t.dayNight)} / ${c(p.zhi)}(${p.reverse?"逆布":"顺布"})`]],d.map(v=>`${v.di}→${v.tian}${v.jiang?`(${c(v.jiang)})`:""}`).join("|")||"无天地盘数据","《大六壬大全》卷二·神将释(月将为十二支神,登明为首逆布);加时布盘属通行口诀,未标卷次;实现:engine/daliuren.js · tianDiPan()"),be=N("sike","四课","四课:日干寄宫取第一课,日干上神再取第二课;日支取第三课,日支上神再取第四课;每课以上下五行论生克。",[["日干 / 日支",`${c(_[0])} / ${c(_[1])}`],["日干寄宫",c(B[_[0]])],["四课",n.map(v=>`${v.position}课 ${c(v.shang)}上${c(v.xia)}下`).join(";")||"—"]],n.map(v=>`${v.position}课 ${c(v.shang)}上${c(v.xia)}下${v.jiang?`·${c(v.jiang)}`:""}:${c(v.relation)}`).join(";")||"无四课数据","《大六壬大全》卷一·起例(十干寄宫);四课余下三课按通行口诀;实现:engine/daliuren.js · siKe()"),Ae=v=>v?`${c(v.position)}${c(v.zhi)}(${c(v.liuQin)}${v.xunKong?"·旬空":""},${c(v.jiang)}${v.jiangFull?`·${c(v.jiangFull)}`:""})`:"—",h=N("sanchuan","三传","三传:先取贼克(下贼上优先),无则比用、涉害、遥克、昴星,再八专、伏吟、返吟;初传既定,中末以天盘依次递取。",[["课体",`${c(j.name)}(${c(j.detail)})`],["初传",Ae(m.chu)],["中传",Ae(m.zhong)],["末传",Ae(m.mo)]],`${Ae(m.chu)} → ${Ae(m.zhong)} → ${Ae(m.mo)}`,"《大六壬大全》卷一·起例(贼克法为首法,比用、涉害、遥克、昴星、八专、伏吟、返吟依次列后);实现:engine/daliuren.js · chuan()");return[ce,be,h]}function k(t,d={}){if(!t||typeof t!="object")return null;let n=null;if(t.system==="liuyao"){let m=t;if(d.refresh===!0)try{const S=A(t,{direction:d.direction,gender:d.gender}),p=t.hexStrength&&t.hexStrength.month&&t.hexStrength.month.branch||t.useGodStrength&&t.useGodStrength.month&&t.useGodStrength.month.branch||null,j=t.dayGanZhi?t.dayGanZhi.branch:null;if(S.liuqin){const _=Se(t,S,{monthBranch:p,dayBranch:j}),ce=se(t,S,{monthBranch:p,dayBranch:j});m={...t,useGod:S,useGodStrength:_||void 0,fushenAccess:ce||void 0}}else m={...t,useGod:void 0,useGodStrength:void 0,fushenAccess:void 0}}catch{m=t}n=z(m,d)}else t.system==="bazi"?n=g(t):t.system==="ziwei"?n=$e(t):t.system==="qimen"?n=G(t,d):t.system==="daliuren"&&(n=J(t));return n&&n.length?n:null}const T=t=>String(t??"").replace(/\\/g,"\\\\").replace(/\|/g,"\\|").replace(/\r?\n/g,"<br>");function s(t,d={}){if(!Array.isArray(t)||!t.length)return"";const n=d.system||"",S=[`# 推导链 · ${U[n]||"命盘"}`,"",`> ${t.length} 层;每层给出规则、输入、结果与出处。只读推导,不重算、不改盘面。`];return t.forEach((p,j)=>{if(!p)return;S.push("",`## ${j+1}. ${p.field||"(未命名字段)"}`,""),p.result&&S.push(`**结果**:${p.result}`,""),p.rule&&S.push(`**规则**:${p.rule}`,"");const _=Array.isArray(p.inputs)?p.inputs:[];if(_.length){S.push("| 项 | 值 |","| --- | --- |");for(const ce of _)S.push(`| ${T(ce&&ce.label)} | ${T(ce&&ce.value)} |`);S.push("")}p.source&&S.push(`**出处**:${p.source}`,"")}),`${S.join(`
|
|
116
116
|
`).trimEnd()}
|
|
117
|
-
`}return{SYSTEM_LABEL:B,buildTrace:p,traceMarkdown:r}})(),K.revise=(function(){const H=[{key:"ziwei",label:"紫微",re:/紫微|斗数/},{key:"bazi",label:"八字",re:/八字|四柱/},{key:"liuyao",label:"六爻",re:/六爻|摇卦/},{key:"qimen",label:"奇门",re:/奇门/},{key:"daliuren",label:"大六壬",re:/大六壬|六壬/},{key:"tarot",label:"塔罗",re:/塔罗|抽牌/},{key:"meihua",label:"梅花",re:/梅花/},{key:"hepan",label:"合盘",re:/合盘|合婚/},{key:"almanac",label:"黄历",re:/黄历|老黄历/},{key:"zeri",label:"择日",re:/择日|挑日子/},{key:"fengshui",label:"风水",re:/风水/},{key:"name",label:"起名",re:/起名|取名/},{key:"chenggu",label:"称骨",re:/称骨/},{key:"xiaoliuren",label:"小六壬",re:/小六壬/},{key:"star",label:"星座",re:/星座/},{key:"numerology",label:"生命数字",re:/生命数字|生命灵数/},{key:"mbti",label:"MBTI",re:/mbti|人格测试|十六型/i},{key:"trend",label:"人生 K 线",re:/k\s*线|人生曲线/i},{key:"convert",label:"公农历互转",re:/农历转公历|公历转农历|公农历/}],q=[{key:"love",label:"感情",re:/感情|婚姻|恋爱|对象|夫妻/},{key:"wealth",label:"财运",re:/财运|财富|赚钱|收入|破财/},{key:"career",label:"事业",re:/事业|工作|升职|跳槽/},{key:"health",label:"健康",re:/健康|身体|疾病|病/},{key:"study",label:"学业",re:/学业|考试|考研|升学|读书/},{key:"travel",label:"出行",re:/出行|搬家|迁移|旅行|外地/}],be=/换成|改成|改为|换到|改看|再看|再看一下|换一套|排一?张|用|按|看/,se=z=>String(z||"").replace(/(出生|出生地|所在地|人)$/,"").replace(/[的了].*$/,"").trim();function fe(z){const _=String(z??"").trim(),E={},M=[],x=[];if(!_)return{text:"",patch:E,labels:M,ignored:x};if(be.test(_)){for(const I of H)if(I.re.test(_)){E.system=I.key,M.push({key:"system",label:"体系",value:I.key,display:I.label});break}}/女命|女性|换成女|改成女|女盘/.test(_)?(E.gender="female",M.push({key:"gender",label:"性别",value:"female",display:"女"})):/男命|男性|换成男|改成男|男盘/.test(_)&&(E.gender="male",M.push({key:"gender",label:"性别",value:"male",display:"男"})),/晚子时/.test(_)&&(/不换日|不换天|算当日|归当日|按当日|当天/.test(_)?(E.lateZi=!1,M.push({key:"lateZi",label:"晚子时",value:!1,display:"23:00 后仍算当日"})):/换日|算次日|归次日|按次日|第二天|次日/.test(_)&&(E.lateZi=!0,M.push({key:"lateZi",label:"晚子时",value:!0,display:"23:00 后算次日"}))),/真太阳时/.test(_)&&(/不用|不要|关闭|关掉|取消|不算/.test(_)?(E.trueSolar=!1,M.push({key:"trueSolar",label:"真太阳时",value:!1,display:"用东八区平太阳时"})):(E.trueSolar=!0,M.push({key:"trueSolar",label:"真太阳时",value:!0,display:"按出生地经度校正"}))),/夏令时/.test(_)&&(/不用|不要|关闭|关掉|取消|不校正/.test(_)?(E.dst=!1,M.push({key:"dst",label:"夏令时",value:!1,display:"不自动校正 1986–1991 夏令时"})):(E.dst=!0,M.push({key:"dst",label:"夏令时",value:!0,display:"自动校正 1986–1991 夏令时"})));const g=_.match(/出生在\s*([\u4e00-\u9fa5]{2,12})/)||_.match(/出生地(?:改成|改为|换成|换到|是|为)?\s*([\u4e00-\u9fa5]{2,12})/)||_.match(/改到\s*([\u4e00-\u9fa5]{2,12})\s*出生/);if(g){const I=se(g[1]);I.length>=2&&(E.address=I,M.push({key:"address",label:"出生地",value:I,display:I}))}const ue=_.match(/(?:看|查|问|到|到了|临近)\s*((?:19|20)\d{2})\s*年/)||_.match(/((?:19|20)\d{2})\s*年(?:的)?(?:运势|怎么样|如何|会怎样|流年)/);if(ue){const I=Number(ue[1]);E.asOf=`${I}-01-01T00:00`,M.push({key:"asOf",label:"流年基准",value:E.asOf,display:`${I} 年`})}else/(出生|生年)/.test(_)&&/(19|20)\d{2}\s*年/.test(_)&&x.push("出生年份没改:一句话改不出日与时辰,请直接传 datetime(如 1993-04-08T06:20)");for(const I of q)if(I.re.test(_)){E.direction=I.key,M.push({key:"direction",label:"询问方向",value:I.key,display:I.label});break}return/解读|详解|详细说|说人话/.test(_)&&!/不要解读|不用解读|别解读/.test(_)&&(E.withInterpret=!0,M.push({key:"withInterpret",label:"解读",value:!0,display:"附解析与详解"})),{text:_,patch:E,labels:M,ignored:x}}const P=H,B=q;function u(z,_){if(_==null)return null;if(z==="system"){const E=H.find(M=>M.key===_);return E?E.label:String(_)}if(z==="gender")return _==="female"?"女":_==="male"?"男":String(_);if(z==="direction"){const E=q.find(M=>M.key===_);return E?E.label:String(_)}if(typeof _=="boolean")return _?"开":"关";if(z==="asOf"){const E=String(_).match(/^(\d{4})/);return E?`${E[1]} 年`:String(_)}return String(_)}return{parseRevision:fe,REVISE_SYSTEMS:P,REVISE_DIRECTIONS:B,displayValue:u}})(),K.handle=(function(){const{fail:H}=K.fail||{},q="mc1.",be=new Set(["handle","trace","shadow","shadowVersion","diff","withInterpret","cross","verifyPast","rectify","events","ask","followup","question","geocode","caliber","revise"]),se=p=>p!==null&&typeof p=="object"&&!Array.isArray(p);function fe(p){if(Array.isArray(p))return`[${p.map(r=>fe(r===void 0?null:r)).join(",")}]`;if(se(p))return`{${Object.keys(p).filter(t=>p[t]!==void 0).sort().map(t=>`${JSON.stringify(t)}:${fe(p[t])}`).join(",")}}`;const T=JSON.stringify(p===void 0?null:p);return T===void 0?"null":T}function P(p){let T=2166136261;for(let r=0;r<p.length;r++)T^=p.charCodeAt(r),T=Math.imul(T,16777619)>>>0;return T.toString(16).padStart(8,"0")}const B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";function u(p){const T=[];for(const r of String(p)){let t=r.codePointAt(0);t<128?T.push(t):t<2048?T.push(192|t>>6,128|t&63):t<65536?T.push(224|t>>12,128|t>>6&63,128|t&63):T.push(240|t>>18,128|t>>12&63,128|t>>6&63,128|t&63)}return T}function z(p){let T="";for(let r=0;r<p.length;){const t=p[r];let d,n;t<128?(d=t,n=1):t<224?(d=t&31,n=2):t<240?(d=t&15,n=3):(d=t&7,n=4);for(let h=1;h<n;h++)d=d<<6|p[r+h]&63;r+=n,T+=String.fromCodePoint(d)}return T}function _(p){const T=u(p);let r="";for(let t=0;t<T.length;t+=3){const d=T[t],n=T[t+1],h=T[t+2];if(r+=B[d>>2],r+=B[(d&3)<<4|(n===void 0?0:n)>>4],n===void 0||(r+=B[(n&15)<<2|(h===void 0?0:h)>>6],h===void 0))break;r+=B[h&63]}return r}function E(p){const T=[];let r=0,t=0;for(const d of p){const n=B.indexOf(d);if(n<0)throw new Error(`不是 base64url 字符:${d}`);r=r<<6|n,t+=6,t>=8&&(t-=8,T.push(r>>t&255))}return z(T)}function M(p={}){const T={};for(const[r,t]of Object.entries(p||{}))be.has(r)||t===void 0||(T[r]=t);return T}function x(p={}){const T=M(p);if(!Object.keys(T).length)return"";const r=_(fe(T));return`${q}${r}.${P(r)}`}function g(p){if(typeof p!="string"||!p.trim())throw H("E_HANDLE","handle 必须是非空字符串;没拿到句柄时照常传 system + datetime 等原始参数即可");const T=p.trim();if(!T.startsWith(q))throw H("E_HANDLE",`handle 前缀不对(应以 ${q} 开头):句柄来自旧版本或复制不全,重新排一次盘取新的 handle`);const r=T.slice(q.length),t=r.lastIndexOf(".");if(t<=0)throw H("E_HANDLE","handle 缺少校验位:复制时可能被截断,重新取一次");const d=r.slice(0,t),n=r.slice(t+1);if(P(d)!==n)throw H("E_HANDLE","handle 校验不通过:内容被改动或截断,重新排一次盘取新的 handle");let h;try{h=JSON.parse(E(d))}catch{throw H("E_HANDLE","handle 内容无法解析(不是本插件生成的句柄),重新排一次盘取新的 handle")}if(!se(h))throw H("E_HANDLE","handle 内容不是参数对象,重新排一次盘取新的 handle");return h}function ue(p={}){if(!se(p))return p;const{handle:T,...r}=p;if(T==null||T==="")return{...r};const d={...g(T)};for(const[n,h]of Object.entries(r))h!==void 0&&(d[n]=h);return d}return{handlePayload:M,encodeHandle:x,decodeHandle:g,resolveHandle:ue,HANDLE_PREFIX:q,handleChecksum:P}})(),K.bridge=(function(){const{encodeHandle:H,decodeHandle:q,HANDLE_PREFIX:be}=K.handle||{},{askPrompt:se}=K.followup||{},fe=200,P=60,B={bazi:"八字",ziwei:"紫微",liuyao:"六爻",meihua:"梅花",daliuren:"大六壬",qimen:"奇门",hepan:"合盘",tarot:"塔罗",almanac:"黄历",zeri:"择日",chenggu:"称骨",xiaoliuren:"小六壬",star:"星座",numerology:"生命数字",mbti:"人格",trend:"人生K线",fengshui:"风水",name:"起名",convert:"农历"},u=T=>B[T]||T||"未知体系";function z(T){const r=String(T||""),t=r.indexOf("#");return t<0?r:r.slice(0,t)}function _(T){try{return encodeURIComponent(T)}catch{return""}}function E(T){try{return decodeURIComponent(T)}catch{return String(T||"")}}function M(T={},r={}){const t=r||{},n=String(t.handle||T&&T.handle||"").trim()||H(T||{});if(!n||!n.startsWith(be))return"";const h=String(t.question||"").trim().slice(0,fe),k=[`mp=${n}`];return h&&k.push(`q=${_(h)}`),`${z(t.base)}#${k.join("&")}`}function x(T){const r=String(T||"").trim();if(!r)return{ok:!1,code:"E_LINK",message:"没有链接内容:请粘贴带 #mp= 的完整链接"};let t="";const d=r.indexOf("#");if(d>=0&&r.slice(d+1).trim())t=r.slice(d+1).trim();else{const y=r.indexOf("?");y>=0&&r.slice(y+1).trim()?t=r.slice(y+1).trim():/^mp=/.test(r)&&(t=r)}if(!t)return{ok:!1,code:"E_LINK",message:"链接里没有 #mp= 片段:这不是本插件生成的深链"};const n={};for(const y of t.split("&")){if(!y)continue;const b=y.indexOf("=");if(b<=0)continue;const O=y.slice(0,b),ie=y.slice(b+1);O==="mp"?n.mp=ie:O==="q"&&(n.q=ie)}if(!n.mp)return{ok:!1,code:"E_LINK",message:"链接里没有 mp 参数(只有问题没有盘):无法还原盘面"};let h;try{h=q(n.mp)}catch(y){return{ok:!1,code:y&&y.code||"E_HANDLE",message:y&&y.message||"句柄无法解析"}}const k=n.q?E(n.q).slice(0,fe):"";return{ok:!0,handle:n.mp,args:h,question:k,system:h.system||"",label:u(h.system)}}const g=T=>{const r=/^(\d{4}-\d{1,2}-\d{1,2})[T ](\d{1,2}:\d{2})/.exec(String(T||"").trim());if(!r)return{date:"",time:""};const[t,d,n]=r[1].split("-");return{date:`${t}-${String(d).padStart(2,"0")}-${String(n).padStart(2,"0")}`,time:r[2].padStart(5,"0")}},ue=["gender","address","trueSolar","lateZi","lines"];function I(T){const r=T&&T.ok?T:null,t=r&&r.args||{},d=g(t.datetime),n={tab:t.system||"",date:d.date,time:d.time,question:r&&r.question||"",restored:[],rest:{}};n.tab&&n.restored.push("system"),d.date&&n.restored.push("datetime");for(const h of ue)t[h]===void 0||t[h]===null||(n[h]=t[h],n.restored.push(h));n.question&&n.restored.push("question");for(const[h,k]of Object.entries(t))h==="system"||h==="datetime"||ue.includes(h)||(n.rest[h]=k);return n}function D(T){const r=Object.keys(T&&T.rest||{});return r.length?`链接里还有 ${r.length} 项没填回表单(${r.join("、")}):这些只在引擎调用里生效,页面上按默认值显示。`:""}function p(T,r={}){const t=r||{},d=T||{},n=d.system||"",h=u(n),k=String(t.question||"").trim(),y=String(d.handle||"").trim();let b="";try{const we=se(d,{question:k,interpret:t.interpret});b=we&&we.text||String(d.summary||"")}catch{b=String(d.summary||"")}const O=k?k.length>P?`${k.slice(0,P)}…`:k:"(未填问题:按摘要讲主线)",ie=y?`【命理追问】${h}|${y}|问:${O}`:`【命理追问】${h}|问:${O}`,de={};y&&(de.handle=y),n&&(de.system=n),k&&(de.question=k);const ze=JSON.stringify({tool:"metaphysics",v:1,args:de},null,2),Ae=y?M({handle:y},{question:k,base:t.base}):"";return{system:n,label:h,handle:y,question:k,full:b,brief:ie,structured:ze,link:Ae}}return{LINK_MAX_QUESTION:fe,askLink:M,parseAskLink:x,formOf:I,restNote:D,askPackages:p}})(),K.index=(function(){const{buildBazi:H}=K.bazi||{},{buildLiuyao:q,tossLines:be,bodyLabels:se,yongshenOf:fe,yongshenStrength:P,fushenAccess:B,hexagramStrength:u,jinTuiPower:z,yingqiWindow:_}=K.liuyao||{},{buildZiwei:E,BRIGHTNESS:M,flowOf:x,asOfParts:g,ZIWEI_SCHOOL_DEFAULTS:ue}=K.ziwei||{},{drawTarot:I}=K.tarot||{},{buildMeihua:D}=K.meihua||{},{buildDaliuren:p}=K.daliuren||{},{buildHepan:T,tripleOf:r}=K.hepan||{},{buildZiweiHepan:t}=K["ziwei-hepan"]||{},{buildQimen:d,buildSnapshot:n}=K.qimen||{},{geocodeAddress:h,resolveAddress:k}=K.geo||{},{toJDN:y,ganzhiName:b,dayGanzhiIndex:O}=K.calendar||{},{randomOf:ie,isSeed:de}=K.random||{},{encodeHandle:ze,decodeHandle:Ae,resolveHandle:we}=K.handle||{},{askLink:en,parseAskLink:Pe,formOf:bn,restNote:rn,askPackages:Y}=K.bridge||{},{parseRevision:U,displayValue:j}=K.revise||{},{interpret:f,DIRECTIONS:w,DIRECTION_DEFAULT:ne}=K.interpret||{},{followup:te,askPrompt:$e}=K.followup||{},{crossCheck:Re,crossText:Ge,crossSection:ln}=K.crosscheck||{},{pastSignals:jn,verifyFit:Sn}=K.verify||{},{rectifyBirth:le}=K.rectify||{},{buildAlmanac:Ze}=K.almanac||{},{buildZeri:yn}=K.zeri||{},{buildChenggu:me}=K.chenggu||{},{buildXiaoliuren:Ce}=K.xiaoliuren||{},{buildStar:Fe}=K.star||{},{buildNumerology:sn}=K.numerology||{},{buildMbti:Oe,mbtiPaper:nn}=K.mbti||{},{buildConvert:dn}=K.convert||{},{classicsFor:gn,classicsText:he,suiyunClassicOf:G,classicOf:F,CLASSIC_BOOKS:re}=K.classics||{},{diffObjects:ve,summarize:Ve,sortDiffs:Q,labelOf:Ke,rootOf:De,categoryOf:Tn,formatValue:Hn,CALIBER_SWITCHES:Fn,viewRows:hn}=K.diff||{},{canonicalJson:En,fingerprintOf:Ln}=K.fingerprint||{},{buildTrend:Qn}=K.trend||{},{buildFengshui:Zn}=K.fengshui||{},{buildName:Vn}=K.name||{},{buildTrace:Kn,traceMarkdown:Xn,SYSTEM_LABEL:nt}=K.trace||{},{fail:c}=K.fail||{},{assertCivil:R}=K.validate||{},l=e=>String(e).padStart(2,"0"),S=["male","female"];function $(e,a){return a===2?e%4===0&&e%100!==0||e%400===0?29:28:[31,28,31,30,31,30,31,31,30,31,30,31][a-1]}function N(e,a=""){if(S.includes(e))return e;const s=e==null||e===""?"(未提供)":`「${e}」`;throw c("E_INPUT",`${a?a+"的":""}gender 必须是 male 或 female${s};性别决定大运/大限顺逆,不能靠默认值`)}const ye=["brightnessSchool","gengYearSihua","tianmaSchool","tiankongSchool","jiekongSchool","kuiyueSchool","tianshiTianshang","changshengSchool","lateZishi","shenzhuSchool"];function C(e){const a={};for(const s of ye)e[s]!==void 0&&(a[s]=e[s]);return e.schools&&typeof e.schools=="object"&&(a.schools=e.schools),a}function X(e){if(typeof e!="string"||!e.trim())throw c("E_INPUT","缺少 datetime(公历日期时间),例如 1990-05-12T14:30");const a=e.trim().match(/^(\d{4})-(\d{1,2})-(\d{1,2})(?:[T\s](\d{1,2}):(\d{1,2})(?::(\d{1,2}))?)?$/);if(!a)throw c("E_INPUT",`无法解析 datetime:「${e}」,请用 1990-05-12T14:30 这种格式`);const s={year:Number(a[1]),month:Number(a[2]),day:Number(a[3]),hour:Number(a[4]??0),minute:Number(a[5]??0)};if(s.month<1||s.month>12)throw c("E_INPUT",`月份超出范围:${s.month}`);const i=$(s.year,s.month);if(s.day<1||s.day>i)throw c("E_INPUT",`日期不存在:${s.year}-${s.month}-${s.day}(${s.year} 年 ${s.month} 月只有 ${i} 天)`);if(s.hour>23||s.minute>59)throw c("E_INPUT",`时间超出范围:${s.hour}:${s.minute}`);if(s.year<1600||s.year>2400)throw c("E_RANGE",`年份 ${s.year} 超出可计算范围(1600–2400)`);return(s.year<1900||s.year>2100)&&(s.precision={level:"approx",note:`ΔT 模型仅覆盖 1900–2100,${s.year} 年按端点值外推,节气与朔望时刻可能有分钟级偏差,月柱在交节前后需复核`}),s}function ce(e){const a=e.pillars,s=(Le,un)=>`${Le}:${un.ganzhi} ${un.stemTenGod?`十神 ${un.stemTenGod} `:""}藏干 ${un.hidden.map(Cn=>`${Cn.stem}(${Cn.tenGod})`).join(" ")} 纳音 ${un.nayin} 地势 ${un.dishi} 自坐 ${un.zizuo} 空亡 ${un.kongwang.join("")}`+(un.shensha&&un.shensha.length?` 神煞 ${un.shensha.join("、")}`:""),i=Object.entries(e.wuxing).map(([Le,un])=>`${Le}${un}`).join(" "),m=e.palaces?`【胎元】${e.palaces.taiyuan.ganzhi} 胎息 ${e.palaces.taixi?e.palaces.taixi.ganzhi:"—"} 命宫 ${e.palaces.minggong.ganzhi} 身宫 ${e.palaces.shengong.ganzhi}`:"",o=e.dayun.list.slice(0,8).map(Le=>`${Le.startAge}岁 ${Le.ganzhi}(${Le.stemTenGod})${Le.luck?`·${Le.luck.tier}`:""}${Le.relations&&Le.relations.length?`[${Le.relations.join("")}]`:""}`).join(" "),v=e.dayun.jiao&&e.dayun.jiao.at?`;交运 ${e.dayun.jiao.at}(${e.dayun.jiao.frame},距${e.dayun.jiao.from.name} ${e.dayun.jiao.spanDays} 天,三日折一年)`:"",V=e.jieqi.nearBoundaryMinutes<20?`
|
|
118
|
-
⚠ 出生时刻距「节」仅 ${e.jieqi.nearBoundaryMinutes} 分钟,而节气时刻本身有最多约 14 分钟的偏差,月柱与年柱建议人工复核。`:"",
|
|
119
|
-
`)+
|
|
120
|
-
`)}const
|
|
121
|
-
`)}function
|
|
122
|
-
`)}const a
|
|
123
|
-
`)}function
|
|
124
|
-
`)}function
|
|
125
|
-
`)}function
|
|
126
|
-
`)}function
|
|
127
|
-
`)},
|
|
128
|
-
`)}function
|
|
117
|
+
`}return{SYSTEM_LABEL:U,buildTrace:k,traceMarkdown:s}})(),V.revise=(function(){const Y=[{key:"ziwei",label:"紫微",re:/紫微|斗数/},{key:"bazi",label:"八字",re:/八字|四柱/},{key:"liuyao",label:"六爻",re:/六爻|摇卦/},{key:"qimen",label:"奇门",re:/奇门/},{key:"daliuren",label:"大六壬",re:/大六壬|六壬/},{key:"tarot",label:"塔罗",re:/塔罗|抽牌/},{key:"meihua",label:"梅花",re:/梅花/},{key:"hepan",label:"合盘",re:/合盘|合婚/},{key:"almanac",label:"黄历",re:/黄历|老黄历/},{key:"zeri",label:"择日",re:/择日|挑日子/},{key:"fengshui",label:"风水",re:/风水/},{key:"name",label:"起名",re:/起名|取名/},{key:"chenggu",label:"称骨",re:/称骨/},{key:"xiaoliuren",label:"小六壬",re:/小六壬/},{key:"star",label:"星座",re:/星座/},{key:"numerology",label:"生命数字",re:/生命数字|生命灵数/},{key:"mbti",label:"MBTI",re:/mbti|人格测试|十六型/i},{key:"trend",label:"人生 K 线",re:/k\s*线|人生曲线/i},{key:"convert",label:"公农历互转",re:/农历转公历|公历转农历|公农历/}],A=[{key:"love",label:"感情",re:/感情|婚姻|恋爱|对象|夫妻/},{key:"wealth",label:"财运",re:/财运|财富|赚钱|收入|破财/},{key:"career",label:"事业",re:/事业|工作|升职|跳槽/},{key:"health",label:"健康",re:/健康|身体|疾病|病/},{key:"study",label:"学业",re:/学业|考试|考研|升学|读书/},{key:"travel",label:"出行",re:/出行|搬家|迁移|旅行|外地/}],Se=/换成|改成|改为|换到|改看|再看|再看一下|换一套|排一?张|用|按|看/,se=q=>String(q||"").replace(/(出生|出生地|所在地|人)$/,"").replace(/[的了].*$/,"").trim();function me(q){const P=String(q??"").trim(),N={},L=[],z=[];if(!P)return{text:"",patch:N,labels:L,ignored:z};if(Se.test(P)){for(const G of Y)if(G.re.test(P)){N.system=G.key,L.push({key:"system",label:"体系",value:G.key,display:G.label});break}}/女命|女性|换成女|改成女|女盘/.test(P)?(N.gender="female",L.push({key:"gender",label:"性别",value:"female",display:"女"})):/男命|男性|换成男|改成男|男盘/.test(P)&&(N.gender="male",L.push({key:"gender",label:"性别",value:"male",display:"男"})),/晚子时/.test(P)&&(/不换日|不换天|算当日|归当日|按当日|当天/.test(P)?(N.lateZi=!1,L.push({key:"lateZi",label:"晚子时",value:!1,display:"23:00 后仍算当日"})):/换日|算次日|归次日|按次日|第二天|次日/.test(P)&&(N.lateZi=!0,L.push({key:"lateZi",label:"晚子时",value:!0,display:"23:00 后算次日"}))),/真太阳时/.test(P)&&(/不用|不要|关闭|关掉|取消|不算/.test(P)?(N.trueSolar=!1,L.push({key:"trueSolar",label:"真太阳时",value:!1,display:"用东八区平太阳时"})):(N.trueSolar=!0,L.push({key:"trueSolar",label:"真太阳时",value:!0,display:"按出生地经度校正"}))),/夏令时/.test(P)&&(/不用|不要|关闭|关掉|取消|不校正/.test(P)?(N.dst=!1,L.push({key:"dst",label:"夏令时",value:!1,display:"不自动校正 1986–1991 夏令时"})):(N.dst=!0,L.push({key:"dst",label:"夏令时",value:!0,display:"自动校正 1986–1991 夏令时"})));const g=P.match(/出生在\s*([\u4e00-\u9fa5]{2,12})/)||P.match(/出生地(?:改成|改为|换成|换到|是|为)?\s*([\u4e00-\u9fa5]{2,12})/)||P.match(/改到\s*([\u4e00-\u9fa5]{2,12})\s*出生/);if(g){const G=se(g[1]);G.length>=2&&(N.address=G,L.push({key:"address",label:"出生地",value:G,display:G}))}const $e=P.match(/(?:看|查|问|到|到了|临近)\s*((?:19|20)\d{2})\s*年/)||P.match(/((?:19|20)\d{2})\s*年(?:的)?(?:运势|怎么样|如何|会怎样|流年)/);if($e){const G=Number($e[1]);N.asOf=`${G}-01-01T00:00`,L.push({key:"asOf",label:"流年基准",value:N.asOf,display:`${G} 年`})}else/(出生|生年)/.test(P)&&/(19|20)\d{2}\s*年/.test(P)&&z.push("出生年份没改:一句话改不出日与时辰,请直接传 datetime(如 1993-04-08T06:20)");for(const G of A)if(G.re.test(P)){N.direction=G.key,L.push({key:"direction",label:"询问方向",value:G.key,display:G.label});break}return/解读|详解|详细说|说人话/.test(P)&&!/不要解读|不用解读|别解读/.test(P)&&(N.withInterpret=!0,L.push({key:"withInterpret",label:"解读",value:!0,display:"附解析与详解"})),{text:P,patch:N,labels:L,ignored:z}}const B=Y,U=A;function c(q,P){if(P==null)return null;if(q==="system"){const N=Y.find(L=>L.key===P);return N?N.label:String(P)}if(q==="gender")return P==="female"?"女":P==="male"?"男":String(P);if(q==="direction"){const N=A.find(L=>L.key===P);return N?N.label:String(P)}if(typeof P=="boolean")return P?"开":"关";if(q==="asOf"){const N=String(P).match(/^(\d{4})/);return N?`${N[1]} 年`:String(P)}return String(P)}return{parseRevision:me,REVISE_SYSTEMS:B,REVISE_DIRECTIONS:U,displayValue:c}})(),V.handle=(function(){const{fail:Y}=V.fail||{},A="mc1.",Se=new Set(["handle","trace","shadow","shadowVersion","diff","withInterpret","cross","verifyPast","rectify","events","ask","followup","question","geocode","caliber","revise"]),se=k=>k!==null&&typeof k=="object"&&!Array.isArray(k);function me(k){if(Array.isArray(k))return`[${k.map(s=>me(s===void 0?null:s)).join(",")}]`;if(se(k))return`{${Object.keys(k).filter(t=>k[t]!==void 0).sort().map(t=>`${JSON.stringify(t)}:${me(k[t])}`).join(",")}}`;const T=JSON.stringify(k===void 0?null:k);return T===void 0?"null":T}function B(k){let T=2166136261;for(let s=0;s<k.length;s++)T^=k.charCodeAt(s),T=Math.imul(T,16777619)>>>0;return T.toString(16).padStart(8,"0")}const U="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";function c(k){const T=[];for(const s of String(k)){let t=s.codePointAt(0);t<128?T.push(t):t<2048?T.push(192|t>>6,128|t&63):t<65536?T.push(224|t>>12,128|t>>6&63,128|t&63):T.push(240|t>>18,128|t>>12&63,128|t>>6&63,128|t&63)}return T}function q(k){let T="";for(let s=0;s<k.length;){const t=k[s];let d,n;t<128?(d=t,n=1):t<224?(d=t&31,n=2):t<240?(d=t&15,n=3):(d=t&7,n=4);for(let m=1;m<n;m++)d=d<<6|k[s+m]&63;s+=n,T+=String.fromCodePoint(d)}return T}function P(k){const T=c(k);let s="";for(let t=0;t<T.length;t+=3){const d=T[t],n=T[t+1],m=T[t+2];if(s+=U[d>>2],s+=U[(d&3)<<4|(n===void 0?0:n)>>4],n===void 0||(s+=U[(n&15)<<2|(m===void 0?0:m)>>6],m===void 0))break;s+=U[m&63]}return s}function N(k){const T=[];let s=0,t=0;for(const d of k){const n=U.indexOf(d);if(n<0)throw new Error(`不是 base64url 字符:${d}`);s=s<<6|n,t+=6,t>=8&&(t-=8,T.push(s>>t&255))}return q(T)}function L(k={}){const T={};for(const[s,t]of Object.entries(k||{}))Se.has(s)||t===void 0||(T[s]=t);return T}function z(k={}){const T=L(k);if(!Object.keys(T).length)return"";const s=P(me(T));return`${A}${s}.${B(s)}`}function g(k){if(typeof k!="string"||!k.trim())throw Y("E_HANDLE","handle 必须是非空字符串;没拿到句柄时照常传 system + datetime 等原始参数即可");const T=k.trim();if(!T.startsWith(A))throw Y("E_HANDLE",`handle 前缀不对(应以 ${A} 开头):句柄来自旧版本或复制不全,重新排一次盘取新的 handle`);const s=T.slice(A.length),t=s.lastIndexOf(".");if(t<=0)throw Y("E_HANDLE","handle 缺少校验位:复制时可能被截断,重新取一次");const d=s.slice(0,t),n=s.slice(t+1);if(B(d)!==n)throw Y("E_HANDLE","handle 校验不通过:内容被改动或截断,重新排一次盘取新的 handle");let m;try{m=JSON.parse(N(d))}catch{throw Y("E_HANDLE","handle 内容无法解析(不是本插件生成的句柄),重新排一次盘取新的 handle")}if(!se(m))throw Y("E_HANDLE","handle 内容不是参数对象,重新排一次盘取新的 handle");return m}function $e(k={}){if(!se(k))return k;const{handle:T,...s}=k;if(T==null||T==="")return{...s};const d={...g(T)};for(const[n,m]of Object.entries(s))m!==void 0&&(d[n]=m);return d}return{handlePayload:L,encodeHandle:z,decodeHandle:g,resolveHandle:$e,HANDLE_PREFIX:A,handleChecksum:B}})(),V.bridge=(function(){const{encodeHandle:Y,decodeHandle:A,HANDLE_PREFIX:Se}=V.handle||{},{askPrompt:se}=V.followup||{},me=200,B=60,U={bazi:"八字",ziwei:"紫微",liuyao:"六爻",meihua:"梅花",daliuren:"大六壬",qimen:"奇门",hepan:"合盘",tarot:"塔罗",almanac:"黄历",zeri:"择日",chenggu:"称骨",xiaoliuren:"小六壬",star:"星座",numerology:"生命数字",mbti:"人格",trend:"人生K线",fengshui:"风水",name:"起名",convert:"农历"},c=T=>U[T]||T||"未知体系";function q(T){const s=String(T||""),t=s.indexOf("#");return t<0?s:s.slice(0,t)}function P(T){try{return encodeURIComponent(T)}catch{return""}}function N(T){try{return decodeURIComponent(T)}catch{return String(T||"")}}function L(T={},s={}){const t=s||{},n=String(t.handle||T&&T.handle||"").trim()||Y(T||{});if(!n||!n.startsWith(Se))return"";const m=String(t.question||"").trim().slice(0,me),S=[`mp=${n}`];return m&&S.push(`q=${P(m)}`),`${q(t.base)}#${S.join("&")}`}function z(T){const s=String(T||"").trim();if(!s)return{ok:!1,code:"E_LINK",message:"没有链接内容:请粘贴带 #mp= 的完整链接"};let t="";const d=s.indexOf("#");if(d>=0&&s.slice(d+1).trim())t=s.slice(d+1).trim();else{const p=s.indexOf("?");p>=0&&s.slice(p+1).trim()?t=s.slice(p+1).trim():/^mp=/.test(s)&&(t=s)}if(!t)return{ok:!1,code:"E_LINK",message:"链接里没有 #mp= 片段:这不是本插件生成的深链"};const n={};for(const p of t.split("&")){if(!p)continue;const j=p.indexOf("=");if(j<=0)continue;const _=p.slice(0,j),ce=p.slice(j+1);_==="mp"?n.mp=ce:_==="q"&&(n.q=ce)}if(!n.mp)return{ok:!1,code:"E_LINK",message:"链接里没有 mp 参数(只有问题没有盘):无法还原盘面"};let m;try{m=A(n.mp)}catch(p){return{ok:!1,code:p&&p.code||"E_HANDLE",message:p&&p.message||"句柄无法解析"}}const S=n.q?N(n.q).slice(0,me):"";return{ok:!0,handle:n.mp,args:m,question:S,system:m.system||"",label:c(m.system)}}const g=T=>{const s=/^(\d{4}-\d{1,2}-\d{1,2})[T ](\d{1,2}:\d{2})/.exec(String(T||"").trim());if(!s)return{date:"",time:""};const[t,d,n]=s[1].split("-");return{date:`${t}-${String(d).padStart(2,"0")}-${String(n).padStart(2,"0")}`,time:s[2].padStart(5,"0")}},$e=["gender","address","trueSolar","lateZi","lines"];function G(T){const s=T&&T.ok?T:null,t=s&&s.args||{},d=g(t.datetime),n={tab:t.system||"",date:d.date,time:d.time,question:s&&s.question||"",restored:[],rest:{}};n.tab&&n.restored.push("system"),d.date&&n.restored.push("datetime");for(const m of $e)t[m]===void 0||t[m]===null||(n[m]=t[m],n.restored.push(m));n.question&&n.restored.push("question");for(const[m,S]of Object.entries(t))m==="system"||m==="datetime"||$e.includes(m)||(n.rest[m]=S);return n}function J(T){const s=Object.keys(T&&T.rest||{});return s.length?`链接里还有 ${s.length} 项没填回表单(${s.join("、")}):这些只在引擎调用里生效,页面上按默认值显示。`:""}function k(T,s={}){const t=s||{},d=T||{},n=d.system||"",m=c(n),S=String(t.question||"").trim(),p=String(d.handle||"").trim();let j="";try{const v=se(d,{question:S,interpret:t.interpret});j=v&&v.text||String(d.summary||"")}catch{j=String(d.summary||"")}const _=S?S.length>B?`${S.slice(0,B)}…`:S:"(未填问题:按摘要讲主线)",ce=p?`【命理追问】${m}|${p}|问:${_}`:`【命理追问】${m}|问:${_}`,be={};p&&(be.handle=p),n&&(be.system=n),S&&(be.question=S);const Ae=JSON.stringify({tool:"metaphysics",v:1,args:be},null,2),h=p?L({handle:p},{question:S,base:t.base}):"";return{system:n,label:m,handle:p,question:S,full:j,brief:ce,structured:Ae,link:h}}return{LINK_MAX_QUESTION:me,askLink:L,parseAskLink:z,formOf:G,restNote:J,askPackages:k}})(),V["plain-summary"]=(function(){const{ASK_KINDS:Y}=V["event-prompt"]||{},{PALACE_FIELD:A,GATE_MEANING:Se}=V["qimen-prompt"]||{},se=Y||{},me=A||{},B=Se||{},U={wealth:"business",career:"career",love:"love",health:"other",study:"career",travel:"action",general:"other"},c=h=>U[h]||(se[h]?h:"other"),q={木:{color:"青、绿",where:"东边、有树有水的地方",daily:"早上多出门走走"},火:{color:"红、橙、紫",where:"南边、向阳的房间",daily:"白天多晒太阳,别总待在阴冷的屋里"},土:{color:"黄、棕、米色",where:"中原地带、干爽高燥处",daily:"把作息和吃饭时间固定下来"},金:{color:"白、银、浅灰",where:"西边、通风利落的地方",daily:"把该断的事断干净,别拖"},水:{color:"黑、深蓝",where:"北边、临水处",daily:"留出独处和放空的时间"}},P={正印:"靠吸收和消化来获得安全感,习惯先想明白再动",偏印:"想得比说得多,一件事会在心里推演出很多种可能",正官:"对规矩和责任敏感,别人一句交代会变成自己的压力",七杀:"对压力和竞争敏感,遇强则强,也容易被强势的人吸引",正财:"对现实条件敏感,不太会被空话打动",偏财:"对机会敏感,愿意为看得见的回报承担风险",食神:"表达温和,喜欢把日子过得有滋味",伤官:"有自己的标准,看不上粗糙的东西,容易先挑毛病",比肩:"自我边界清楚,不太愿意被安排",劫财:"同辈之间容易较劲,也容易替朋友出头"},N={长生:"刚起步,有生机",沐浴:"不安定,容易被外界牵动",冠带:"在成形,开始要面子",临官:"正当力,能扛事",帝旺:"很足,但也容易过满",衰:"开始收力,做事偏保守",病:"使不上劲,需要借外力",死:"静态,不爱主动",墓:"收着、藏着,不爱外露",绝:"在这里使不上劲,容易觉得被压着",胎:"还在孕育,慢热",养:"在积攒,等时机"},L={紫微:"要主导、在意体面",天机:"脑子转得快,爱盘算",太阳:"愿意给出去,也容易被消耗",武曲:"务实,认结果",天同:"图安稳,怕冲突",廉贞:"要强,情绪起伏大",天府:"稳,能存住东西",太阴:"细腻,心思藏在里面",贪狼:"欲望强、多才多艺",巨门:"爱辨析,也容易生口舌",天相:"会配合,擅长讲和",天梁:"老成,愿意护着别人",七杀:"独断,敢冲",破军:"破旧立新,不安于现状"},z={庙:"得力",旺:"得力",得地:"还算得力",平:"一般",陷:"不太稳"},g=h=>[...new Set(h.filter(Boolean))],$e={寅:"初春",卯:"仲春",辰:"暮春",巳:"初夏",午:"盛夏",未:"长夏",申:"初秋",酉:"仲秋",戌:"深秋",亥:"初冬",子:"仲冬",丑:"隆冬"};function G(h,v){const le={po:[],chong:[],he:[]};for(const ae of h&&h.branches||[])!v||!String(ae).includes(v)||(/破/.test(ae)?le.po.push(ae):/冲/.test(ae)?le.chong.push(ae):/合/.test(ae)&&le.he.push(ae));return le}function J(h){const v=h.pillars||{},le=v.day||{},ae=v.month||{},je=h.dayMaster||{},ge=h.climate||{},E=h.input&&h.input.gender||"female",R=Object.entries(h.frame&&h.frame.godStats&&h.frame.godStats.groups||{}).filter(([,Be])=>Be>0).sort((Be,de)=>de[1]-Be[1]),w=h.frame&&h.frame.yongshen&&h.frame.yongshen.favorTenGods||[],f=h.frame&&h.frame.yongshen&&h.frame.yongshen.favor||[],b=h.frame&&h.frame.yongshen&&h.frame.yongshen.avoid||[],F=$e[ae.branch]||`${ae.branch}月`,C=ge.label==="寒湿"?"天寒水旺,木像冬天的藤,不是不强,是冷得伸展不开":ge.label==="燥热"?"火土偏燥,像久旱的地,需要水和湿气来松一松":"寒暖相对均衡,没有极端的偏枯",ee=ge.need&&ge.need.element||f[0]||"",Ne=`${je.stem||""}${je.element||""}日主,生在${F}${ae.branch||""}月:${C}。${ee?`最需要的是${ee}${ge.need&&ge.need.why?`——${ge.need.why}`:""}。`:""}整体${h.strength?h.strength.level:"中和"},不是极旺也不是极弱,所以${h.strength&&h.strength.level==="身弱"?"很多事要靠外部条件配合,硬扛不如借力":"撑得住,关键是别把力气用在错的地方"}。`,Me=R.slice(0,2).map(([Be])=>Be),an=[];for(const Be of Object.values(v))Be&&(Be.stemTenGod&&an.push(Be.stemTenGod),Be.hidden&&Be.hidden[0]&&Be.hidden[0].tenGod&&an.push(Be.hidden[0].tenGod));const dn=`${Me.map(Be=>{const de={印:["正印","偏印"],官杀:["正官","七杀"],食伤:["食神","伤官"],财:["正财","偏财"],比劫:["比肩","劫财"]}[Be]||[],oe=de.find(D=>an.includes(D))||de[0];return oe&&P[oe]?`${Be}偏重:${P[oe]}。`:""}).filter(Boolean).join("")}${w.length,""}`+(Me.includes("印")?"想得多是你的默认状态,好处是稳,代价是慢和累。":""),fe=E==="female"?["正官","七杀"]:["正财","偏财"],nn=E==="female"?"官杀(正官与七杀)":"财星(正财与偏财)",bn={year:"年干",month:"月干",day:"日干",hour:"时干"},ye=Object.entries(v).filter(([,Be])=>Be&&fe.includes(Be.stemTenGod)).map(([Be,de])=>`${bn[Be]}${de.stemTenGod}`),Ye=le.hidden&&le.hidden[0]&&le.hidden[0].tenGod||"",Fe=G(h.relations,le.branch),on=[];on.push(`${E==="female"?"女命":"男命"}看配偶星取${nn}${ye.length?`,${ye.join("、")}`:",盘中未透干"}${ye.length?"——摆在明处,说明这件事在你生活里是绕不开的主题":"——不显在明处,往往要靠后天遇到的人把它带出来"}。`),Ye&&on.push(`日支(配偶宫)坐${le.branch}${Ye}${le.dishi?`,日主在这里是「${le.dishi}」:${N[le.dishi]||""}`:""}。`),Fe.po.length&&on.push(`日支与另一支相破(${Fe.po.join("、")}):破不是吵架,是那种说不清、解释不明白的暗耗,容易冷处理。`),Fe.chong.length&&on.push(`日支逢冲(${Fe.chong.join("、")}):关系里变动感强,聚散、异地、节奏不一致都可能出现。`),Fe.he.length&&on.push(`日支有合(${Fe.he.join("、")}):容易被关系拴住,进去了就不太想出来。`),h.hourUnknown&&on.push("时柱暂缺,所以「子女」这一路的信息读不出,感情结论也就少了三分之一。");const De=(h.frame&&h.frame.geju||[]).map(Be=>Be.name),Ue=[];Fe.po.length&&Ue.push("破在日支:最伤人的往往不是大事,是没说开的小事。"),De.includes("伤官见官")&&Ue.push("盘里有「伤官见官」的组合:既想要稳定,又忍不了对方的毛病,这是同一件事的两面。"),Me.includes("印")&&!Me.includes("财")&&Ue.push("印重而财轻:想得多、落得少;越焦虑越容易继续想。"),Ue.length||Ue.push("这一盘没有特别尖锐的冲克,卡点更多在「节奏」上——什么时候该动,什么时候该停。");const un=[];if(ee&&q[ee]){const Be=q[ee];un.push(`多接触${ee}:${Be.color}这类颜色、${Be.where},日常可以${Be.daily}。`)}return b.length&&un.push(`少把自己放在${b.slice(0,2).join("、")}过重的环境里——不是不能碰,是别长期待在那种氛围中。`),Me.includes("印")&&un.push("给「想」设个时限:一件事想超过十分钟还没结论,就先做一个最小动作,用行动换信息。"),De.includes("伤官见官")&&un.push("把标准用在事情上,不要用在人身上;对人提要求之前,先说清你需要什么。"),{system:"bazi",title:"先看这一张:这张盘大致在说什么",chips:g([`${je.stem||""}${je.element||""}日主`,`${ae.branch||""}月`,ge.label||"",h.strength?h.strength.level:"",h.hourUnknown?"时柱暂缺":""]),lead:Ne,sections:[{h:"你的底色",t:dn||"结构比较均衡,没有一边倒的偏重。"},{h:"感情这件事",t:on.join("")},{h:"最容易卡住的地方",t:Ue.join("")}],advice:un,caveat:h.hourUnknown?"时柱暂缺:以上只据年、月、日六个字,等于全盘信息的七成左右。子女缘分、晚年走势、以及「内心最深处那一层」都读不全,结论只作参考。":"",footer:"以上都是对结构的描述,不是断语;判断好坏要结合你自己的处境。"}}function k(h){const v=h.palaces||[],le=v[0]||{},ae=h.body||{},je=(le.stars||[]).filter(Te=>Te.type==="主星"),ge=v.find(Te=>Te.isBody)||{},E=v.find(Te=>Te.palace==="夫妻")||{},R=je.map(Te=>Te.name).join("、")||"空宫(借对宫)",w=je.map(Te=>z[Te.brightness]||"").filter(Boolean)[0]||"",f=Te=>Te.filter(dn=>dn.type==="主星").map(dn=>`${dn.name}${L[dn.name]?`(${L[dn.name]})`:""}`).join(";"),b=h.patternSummary||{},F=g(b.broken||[]),C=g(b.bad||[]),ee=g([...b.good||[],...b.neutral||[]]).filter(Te=>!F.includes(Te)),Ne=E.stars||[],Me=Ne.filter(Te=>Te.type==="主星"),an=Ne.filter(Te=>Te.type==="煞星");return{system:"ziwei",title:"先看这一张:这张盘大致在说什么",chips:g([`命宫在${le.branch||""}`,R,h.bureau?h.bureau.name:"",ae.lands?`身宫落${ae.lands}`:""]),lead:`命宫在${le.branch||""},坐${R}${w?`(${w})`:""};身宫落在${ae.lands||ae.palace||"—"}。${je.length?`底色是${je.map(Te=>L[Te.name]||Te.name).join("、")}。`:"命宫无主星,性格更多由对宫与三方决定,可塑性反而大。"}${ee.length?`结构上成的是${ee.slice(0,3).join("、")}——格局只说明形状,不是吉凶判词。`:"没有完整成套的格局,这一盘更多看单颗星的性质,少看组合。"}`,sections:[{h:"你的底色",t:`${f(le.stars||[])||"命宫无主星,靠三方四正补"}。身宫落${ae.lands||"—"},说明你这辈子真正花力气的地方在${ae.lands||"那一块"}。`},{h:"感情这件事",t:`夫妻宫在${E.branch||"—"},坐${Me.map(Te=>`${Te.name}${Te.brightness?`(${z[Te.brightness]||Te.brightness})`:""}`).join("、")||"空宫(借对宫)"}。${an.length?`同宫还有${an.map(Te=>Te.name).join("、")}——关系里容易起摩擦,来得快也去得快。`:"没有明显的煞星同宫,关系相对平顺。"}`},{h:"最容易卡住的地方",t:`${F.length?`被冲破的格局有${F.join("、")}——结构还在,但成色打折;冲不等于毁,说的是它不如完好时那么顶用。`:"主要格局没有明显被冲破。"}${C.length?`另有${C.join("、")}这类忌格,只描述结构,不作吉凶断。`:""}`}],advice:[`命宫主星${je.length?`是${je.map(Te=>Te.name).join("、")},顺它的长处在做事,比硬改性格省力`:"不显,先靠环境和习惯替自己定节奏"}。`,`身宫落${ae.lands||"—"}:这块是你真正在意的地方,也是容易耗人的地方,留出余量。`],caveat:"",footer:"以上都是对结构的描述,不是断语;判断好坏要结合你自己的处境。"}}const T={旺:"当令,气最足",相:"有生机,正在起",休:"气在泄,歇着",囚:"被压着,使不上劲",死:"最弱,得靠外援"},s={官鬼:"职位、压力、管你的人和事",妻财:"钱、资源、实际回报",父母:"文书、答复、流程与长辈",子孙:"结果本身、松弛、把事情落地",兄弟:"同辈、分利、竞争"},t={日生:"日辰生它,当天有人托着",日克:"日辰克它,当天被压一头",比和:"与日辰同气,力量相当",日合:"与日辰相合,黏住了",日冲:"与日辰相冲,当天就动"};function d(h){if(!h)return"";const v=[],le=T[h.monthState]||h.monthSay||"";le&&v.push(`月令${h.monthState||""}(${le})`);const ae=t[h.dayRelation]||h.daySay||"";return ae&&v.push(ae),h.kong&&v.push("旬空——抓不实,等冲或填"),h.moving&&v.push("发动,是这件事的动因"),h.monthChong&&v.push("月破,先破后立"),v.join(";")}function n(h){const v=h.hexStrength&&h.hexStrength.lines||[];if(!v.length)return null;const le=v.find(ee=>ee.shi)||null,ae=v.find(ee=>ee.ying)||null,je=h.body||{},ge=je.ben||{},E=je.bian||{},R=h.cast&&h.cast.movingPositions||[],w=v.filter(ee=>ee.moving),f=String(h.question||"").trim(),b=g([...je.labels||[],...h.hexStrength&&h.hexStrength.labels||[]]),F=h.hexStrength&&h.hexStrength.month?h.hexStrength.month.branch:"",C=[ge.chong?"六冲卦:事情容易散、节奏快":"",ge.he?"六合卦:事情黏住、快不起来":"",je.fuYin&&(je.fuYin.inner||je.fuYin.outer)?"有伏吟:原地打转":"",je.fanYin&&(je.fanYin.inner||je.fanYin.outer)?"有反吟:来回反复":""].filter(Boolean);return{system:"liuyao",title:"先看这一卦:这卦大致在说什么",chips:g([ge.name,E.name?`变${E.name}`:"",R.length?`${R.length} 爻动`:"静卦",F?`${F}月`:""]),lead:`${f?`你问的是「${f}」。`:""}本卦「${ge.name||"—"}」${E.name?`,${R.length?`第 ${R.join("、")} 爻动`:"六爻安静"},变「${E.name}」`:""}。方向还留在「综合」,所以这一卦没有取用神——先只讲与问题无关的那几样:你(世爻)、事情(应爻)、卦体。`,sections:[{h:"代表你的是",t:le?`世爻在${le.name}(${le.branch}${le.element}·${le.liuqin}):${d(le)||"状态平稳"}。`:"这一卦取不到世爻。"},{h:"代表事情的是",t:ae?`应爻在${ae.name}(${ae.branch}${ae.element}·${ae.liuqin}):${d(ae)||"状态平稳"}。应爻说的是「事情那一头」的状态,不是你努力的程度。`:"这一卦取不到应爻。"},{h:"卦体与动爻",t:`${C.length?`${C.join(";")}。`:"没有六冲、六合、伏吟、反吟这类整体结构。"}${w.length?`动爻在${w.map(ee=>`${ee.name}(${ee.liuqin})`).join("、")}——动的地方,就是这件事会发生变化的那一环。`:"六爻安静:眼下没有明显在动的地方,说明事情的节奏还没起来。"}`}],advice:["先在上面选一个「询问方向」(工作、感情、生意、推进、择日):选完才会取用神,旺衰、应期、成败条件才有落点。",...(se.other&&se.other.reality||[]).slice(0,2)].filter(Boolean),caveat:"未指定所问之事:这一版只读世应、卦体与动爻,不判成败,也不给应期——不是算不出来,是取用神要先知道问什么。",footer:"以上是把盘面符号翻译成话,不是断语;真正的判断要看现实里那几步。"}}function m(h){const v=h.useGod||{};if(!v.liuqin)return n(h);const le=v.found||[];if(!le.length&&!v.missing)return null;const ae=String(h.question||"").trim(),je=h.useGodStrength&&h.useGodStrength.lines||[],ge=Te=>je.find(dn=>dn.position===Te)||null,R=(h.hexStrength&&h.hexStrength.lines||[]).find(Te=>Te.shi)||null,w=h.useGodStrength&&h.useGodStrength.month?h.useGodStrength.month.branch:"",f=h.dayGanZhi&&h.dayGanZhi.name||"",b=le.map(Te=>Te.name).join("、"),F=`${ae?`你问的是「${ae}」。`:"你没填具体问题,这里按「综合」取用神,结论会更粗。"}这卦里代表它的是「${v.liuqin}」(${v.ask||""}),`+(le.length?`落在${b}${le.length>1?"——两处都出现了,两个条件要一起看":""}。`:"盘中看不见它(伏藏),要等冲开或引出才有动静。")+`日辰是${f||"—"},月建是${w||"—"}。`,C=[],ee=[];for(const Te of le){const dn=ge(Te.position);dn&&(/旺|相/.test(dn.monthState||"")&&!dn.kong&&!dn.monthChong&&C.push(Te.name),(/日克|日冲/.test(dn.dayRelation||"")||dn.kong||dn.monthChong)&&ee.push(Te.name))}const Ne=le.length?C.length>ee.length?"条件偏有利":ee.length>C.length?"条件偏紧,得有外力或时间":"一半一半,取决于你怎么推":"没有可判的落点",Me=g([...(v.labels||[]).filter(Te=>/两现|伏藏|六合|六冲/.test(Te)),h.body&&h.body.ben&&h.body.ben.chong?"六冲卦:事情容易散,节奏偏快":"",h.body&&h.body.ben&&h.body.ben.he?"六合卦:事情黏住,快不起来":""]),an=g((h.yingqi&&h.yingqi.items||[]).map(Te=>Te.branch)).slice(0,4);return{system:"liuyao",title:"先看这一卦:这卦大致在说什么",chips:g([h.ben&&h.ben.name,`用神 ${v.liuqin||""}`,w?`${w}月`:"",h.yingqi?h.yingqi.tempo:""]),lead:F,sections:[{h:"代表你的是",t:R?`世爻在${R.name}(${R.branch}${R.element}·${R.liuqin}):${d(R)||"状态平稳"}。`:"这一卦的世爻取不到,先看用神那一条。"},{h:"代表这件事的是",t:le.length?le.map(Te=>`${Te.name} ${Te.ganzhi}(${Te.liuqin}):${d(ge(Te.position))||"没有明显的月日冲克"}。`).join(""):"用神伏藏:盘中看不见它,说明这件事现在还不在明面上,要等一个引子。"},{h:"成不成看哪里",t:`把用神的月令与日辰放在一起,盘面给的是「${Ne}」。${Me.length?`另有:${Me.join(";")}。`:""}`}],advice:[...(se[c(v.direction)]&&se[c(v.direction)].reality||[]).slice(0,2),an.length?`应期只看地支:${an.join("、")}——地支只是「往哪个方向等」,不是公历日期。`:""].filter(Boolean),caveat:g([le.length>1?`用神两现(${b}):本插件不替你二选一,两处条件一起看。`:"",v.missing?"用神伏藏:先看伏神与飞神的关系,再看有没有东西把它冲出来。":"","世应只说明「你」和「事」的相对位置,不直接等于吉凶。"]).join(""),footer:"以上是把盘面符号翻译成话,不是断语;真正的判断要看现实里那几步。"}}function S(h){const v=h.bodyUse;if(!v||!v.body||!v.use)return null;const le=String(h.question||"").trim();return{system:"meihua",title:"先看这一卦:方向大致在哪",chips:g([h.ben&&h.ben.name,h.bian&&`变${h.bian.name}`,v.relation?`体用 ${v.relation.split("(")[0]}`:""]),lead:`${le?`你问的是「${le}」。`:""}本卦「${h.ben&&h.ben.name}」,动在第 ${h.moving} 爻,变卦「${h.bian&&h.bian.name}」。体卦 ${v.body.trigram}(${v.body.element})代表你,用卦 ${v.use.trigram}(${v.use.element})代表这件事:${v.relation}。`,sections:[{h:"过程与结果",t:`过程看互卦「${h.hu&&h.hu.name||"—"}」,结果看变卦「${h.bian&&h.bian.name||"—"}」。梅花给的是方向,不是细节——它不会告诉你几号、多少钱。`},{h:"盘面给的分量",t:`这一卦的体用关系被标成「${v.level}」。注意:这是条件层面的判断,不是结果已经发生;条件好但不动,一样没有结果。`}],advice:["把它当「换个角度看这件事」:体用只分「谁在给、谁在耗」,剩下要你自己补具体动作。","如果要推进,先定一个最小动作(打个电话、发条消息),别等条件齐了再动。"],caveat:"梅花取象的自由度大:同一卦,不同人读出的细节可以不同。本插件只取体用生克这一层。",footer:"以上是把盘面符号翻译成话,不是断语;真正的判断要看现实里那几步。"}}function p(h){const v=h.sanChuan||{};if(!v.chu||!v.zhong||!v.mo)return null;const le=String(h.question||"").trim(),ae=ge=>`${ge.zhi}(${ge.liuQin||""}·${ge.jiangFull||""})`,je=ge=>s[ge.liuQin]?`——${s[ge.liuQin]}`:"";return{system:"daliuren",title:"先看这一课:事情怎么走到这一步",chips:g([h.geJu&&h.geJu.name,`${v.chu.zhi}→${v.mo.zhi}`,h.yueJiang&&`月将${h.yueJiang.zhi}`]),lead:`${le?`你问的是「${le}」。`:""}三传是 ${v.chu.zhi} → ${v.zhong.zhi} → ${v.mo.zhi};末传落 ${v.mo.zhi}(${v.mo.liuQin||""}·${v.mo.jiangFull||""}),课体是「${h.geJu&&h.geJu.name||"—"}」。`,sections:[{h:"起手(初传)",t:`${ae(v.chu)}${je(v.chu)}。这是事情开头的样子。`},{h:"转折(中传)",t:`${ae(v.zhong)}${je(v.zhong)}。中间会经过这一段,也是容易改道的地方。`},{h:"落点(末传)",t:`${ae(v.mo)}${je(v.mo)}。末传比初传更接近结果——但也只是「照现在这样走下去会到哪」。`}],advice:["先看初传:事情是从哪儿起的?把那个起点找出来,比猜结果有用。","中传若与初传相冲相克,说明中途会变;这时别把计划定死。"],caveat:"三传讲的是传变形态,不给具体日期;同一课不同流派对课体的命名也有差异。",footer:"以上是把盘面符号翻译成话,不是断语;真正的判断要看现实里那几步。"}}function j(h){const v=h.siZhu&&h.siZhu.day?String(h.siZhu.day)[0]:"",le=h.siZhu&&h.siZhu.time?String(h.siZhu.time)[0]:"",ae=h.palaces||[];if(!ae.length)return null;const je=C=>ae.find(ee=>ee.tianPan===C)||(h.centerPalace&&h.centerPalace.tianPan===C?h.centerPalace:null),ge=je(v),E=je(le),R=String(h.question||"").trim(),w=C=>{const ee=C&&me[C.palace]&&me[C.palace].field;return ee?ee.split(":")[0]:C?`${C.palace}宫`:"盘中取不到"},f=C=>C&&me[C.palace]&&me[C.palace].dir?`(${me[C.palace].dir})`:"",b=C=>C?`${w(C)}${f(C)}|${C.gate||"—"}·${C.star||"—"}·${C.god||"—"}`:"盘中取不到",F=C=>!C||!C.gateRelation||!C.gateRelation.type?"门与宫的关系没算到":`${C.gateRelation.type}(${C.gateRelation.note||""})`;return{system:"qimen",title:"先看这一局:条件和位置在哪",chips:g([h.ju,h.zhiFu&&`值符${h.zhiFu.star}`]),lead:`${R?`你问的是「${R}」。`:""}日干 ${v} 落在${b(ge)},时干 ${le} 落在${b(E)}——前者代表你,后者代表这件事。你这边门与宫是${F(ge)};事情那边是${F(E)}。`,sections:[{h:"你这边的条件",t:ge?`你在${me[ge.palace]?me[ge.palace].field:ge.palace+"宫"};门是${ge.gate||"—"}——${B[ge.gate]||"门名只说明形态"}。`:"日干落在中宫或取不到:中宫无门无神,按寄宫(多寄坤二)取用,读的时候要说清这是寄宫。"},{h:"事情那边的条件",t:E?`事情落在${me[E.palace]?me[E.palace].field:E.palace+"宫"};门是${E.gate||"—"}——${B[E.gate]||"门名只说明形态"}。`:"时干落在中宫或取不到,同样按寄宫看,别当成坤二本宫。"},{h:"门名不是吉凶",t:"开门主启动、生门主生长、休门主等待、伤门主损耗、杜门主隐藏——这些说的是「这件事现在是什么形态」,不是好坏判决。要看它与日干宫、时干宫的生克。"}],advice:["把「我这边」和「事情那边」的宫位对一下:两边相距越远,越需要中间人、流程或时间。","如果门名是伤门、死门,不是叫你别做,而是提醒这件事的代价和收尾要先想清楚。"],caveat:g([h.juMethodNote||"","奇门重方位与时机;本插件不给具体方位建议,只把宫位与门星神摊开。"]).join(""),footer:"以上是把盘面符号翻译成话,不是断语;真正的判断要看现实里那几步。"}}function _(h){const v=h.cards||[];if(!v.length)return null;const le=String(h.question||"").trim(),ae=v.find(je=>/现在|现况|当下|建议|核心/.test(je.position||""))||v[Math.floor(v.length/2)];return{system:"tarot",title:"先看这几张牌:它们各在说什么",chips:g([h.spread]),lead:`${le?`你问的是「${le}」。`:""}${h.spread||""}:`+v.map(je=>`${je.position}「${je.name}」${je.orientation}`).join(",")+"。",sections:v.slice(0,4).map(je=>({h:je.position,t:`「${je.name}」${je.orientation}:${(je.keywords||[]).slice(0,3).join("、")||je.core||""}。${je.positionHint||""}`})),advice:[`最值得先看的是「${ae.name}」(${ae.position}·${ae.orientation})——${(ae.keywords||[]).slice(0,3).join("、")||"它所在的位置,就是这件事现在的着力点"}。`,"把牌当镜子:它给的是看事情的角度,不是判决。看完写一句「那我下一步做什么」。"],caveat:h.systemNote||"塔罗为象征系统,牌义与元素对应存在流派差异。",footer:"以上是把盘面符号翻译成话,不是断语;真正的判断要看现实里那几步。"}}function ce(h){const v=h.score;if(!v)return null;const le=(h.dimensions||[]).filter(E=>E&&E.text),ae=E=>{const R=E&&E.dayMaster;return R?typeof R=="string"?R.replace(/日主$/,""):`${R.stem||""}${R.element||""}`:""},je=ae(h.a),ge=ae(h.b);return{system:"hepan",title:"先看这一张:你们大致怎么相处",chips:g([je&&ge?`${je} × ${ge}`:"",v.level,`${v.total}/100`]),lead:`${je&&ge?`你们是 ${je} 与 ${ge}。`:""}合盘描述的是「相处方式与互补点」,不判合不合,也不决定关系成败。整体上盘面给的是「${v.level}」(${v.total}/100——分数只是相对刻度,不是及格线)。`,sections:le.slice(0,3).map(E=>({h:E.label,t:E.text})),advice:["一起看,别一个人看完拿去判断对方:前者是对话,后者是审判。","把上面的分歧当话题清单:哪一条你们真的在意,就聊哪一条。"],caveat:h.notes&&h.notes[0]||"合盘看的是相处方式与互补点,不决定关系成败。",footer:"以上是把盘面符号翻译成话,不是断语;真正的判断要看现实里那几步。"}}function be(h){const v=h.points||[],le=h.segments||[];if(!v.length||!le.length)return null;const ae=Number.isInteger(h.meta&&h.meta.nowYear)?h.meta.nowYear:null,je=ae&&v.find(Ne=>Ne.year===ae)||null,ge=je&&le.find(Ne=>je.age>=Ne.startAge&&je.age<=Ne.endAge)||le[0],E=le[le.indexOf(ge)+1],R=v.filter(Ne=>Ne.age>=ge.startAge&&Ne.age<=ge.endAge),w=R.length?R.reduce((Ne,Me)=>Ne+Me.score,0)/R.length:0,f=v.reduce((Ne,Me)=>Ne+Me.score,0)/v.length,b=w>=f+5?"比一生平均更亮":w<=f-5?"比一生平均更闷":"与一生平均差不多",F=h.highlights&&h.highlights.best||[],C=h.highlights&&h.highlights.worst||[],ee=je?`你现在 ${je.age} 岁(${ae} 年),在「${ge.ganZhi}」这一步的第 ${je.age-ge.startAge+1} 年(${ge.startAge}–${ge.endAge} 岁)${E?`,再过 ${ge.endAge-je.age+1} 年到 ${E.startAge} 岁换「${E.ganZhi}」`:",已是最后一步"}。`:`没给当前日期(asOf),所以不标「现在在第几步」;先看第一步「${ge.ganZhi}」(${ge.startAge}–${ge.endAge} 岁)起手的样子。`;return{system:"trend",title:"先看这一条线:这些年大致什么走势",chips:g([ge.ganZhi,`${ge.startAge}–${ge.endAge} 岁`,je?`${je.age} 岁`:""]),lead:`这条线按 ${h.meta&&h.meta.toAge||v.length} 岁排到 ${v[v.length-1].year} 年,共 ${le.length} 步大运。`+ee,sections:[{h:"这一步的基调",t:`这一步里各年的平均分是 ${w.toFixed(0)},${b}(全盘平均 ${f.toFixed(0)})。分数是相对刻度,不是绝对值。`},{h:"这些年里最亮和最闷的",t:`${F.length?`高点:${F.slice(0,2).join("、")}`:"没有特别高的点"};${C.length?`低点:${C.slice(0,2).join("、")}`:"没有特别低的点"}。高点适合推进,低点适合收口。`},{h:"怎么用这条线",t:"它不是命运表,是把「顺/不顺」画成可视的起伏。真正决定走向的,是你在这几步里做了什么。"}],advice:["把下一步换运的年龄记下来:换运前后半年,通常是最容易做决定、也最容易冲动的时候。","低点年别做大额投入,高点年别只观望——这两条比记分数管用。"],caveat:"线按年岁等距绘制,实际每步大运十年;起点与交运按节气推算,出生时刻未知时按日估算。",footer:"以上是把盘面符号翻译成话,不是断语;真正的判断要看现实里那几步。"}}function Ae(h){return!h||typeof h!="object"?null:h.system==="bazi"?J(h):h.system==="ziwei"?k(h):h.system==="liuyao"?m(h):h.system==="meihua"?S(h):h.system==="daliuren"?p(h):h.system==="qimen"?j(h):h.system==="tarot"?_(h):h.system==="hepan"?ce(h):h.system==="trend"?be(h):null}return{plainSummary:Ae}})(),V.index=(function(){const{buildBazi:Y}=V.bazi||{},{buildLiuyao:A,tossLines:Se,bodyLabels:se,yongshenOf:me,yongshenStrength:B,fushenAccess:U,hexagramStrength:c,jinTuiPower:q,yingqiWindow:P}=V.liuyao||{},{buildZiwei:N,BRIGHTNESS:L,flowOf:z,asOfParts:g,ZIWEI_SCHOOL_DEFAULTS:$e}=V.ziwei||{},{drawTarot:G}=V.tarot||{},{buildMeihua:J}=V.meihua||{},{buildDaliuren:k}=V.daliuren||{},{buildHepan:T,tripleOf:s}=V.hepan||{},{buildZiweiHepan:t}=V["ziwei-hepan"]||{},{buildQimen:d,buildSnapshot:n}=V.qimen||{},{geocodeAddress:m,resolveAddress:S}=V.geo||{},{toJDN:p,ganzhiName:j,dayGanzhiIndex:_}=V.calendar||{},{randomOf:ce,isSeed:be}=V.random||{},{encodeHandle:Ae,decodeHandle:h,resolveHandle:v}=V.handle||{},{askLink:le,parseAskLink:ae,formOf:je,restNote:ge,askPackages:E}=V.bridge||{},{parseRevision:R,displayValue:w}=V.revise||{},{interpret:f,DIRECTIONS:b,DIRECTION_DEFAULT:F}=V.interpret||{},{followup:C,askPrompt:ee}=V.followup||{},{crossCheck:Ne,crossText:Me,crossSection:an}=V.crosscheck||{},{pastSignals:Te,verifyFit:dn}=V.verify||{},{rectifyBirth:fe}=V.rectify||{},{buildAlmanac:nn}=V.almanac||{},{buildZeri:bn}=V.zeri||{},{buildChenggu:ye}=V.chenggu||{},{buildXiaoliuren:Ye}=V.xiaoliuren||{},{buildStar:Fe}=V.star||{},{buildNumerology:on}=V.numerology||{},{buildMbti:De,mbtiPaper:Ue}=V.mbti||{},{buildConvert:un}=V.convert||{},{classicsFor:Be,classicsText:de,suiyunClassicOf:oe,classicOf:D,CLASSIC_BOOKS:_e}=V.classics||{},{diffObjects:Oe,summarize:Le,sortDiffs:ue,labelOf:We,rootOf:ln,categoryOf:wn,formatValue:Pn,CALIBER_SWITCHES:Jn,viewRows:gn}=V.diff||{},{canonicalJson:En,fingerprintOf:Cn}=V.fingerprint||{},{buildTrend:Wn}=V.trend||{},{buildFengshui:Kn}=V.fengshui||{},{buildName:tt}=V.name||{},{buildTrace:et,traceMarkdown:nt,SYSTEM_LABEL:it}=V.trace||{},{fail:l}=V.fail||{},{assertCivil:H}=V.validate||{},u=e=>String(e).padStart(2,"0"),x=["male","female"];function $(e,o){return o===2?e%4===0&&e%100!==0||e%400===0?29:28:[31,28,31,30,31,30,31,31,30,31,30,31][o-1]}function M(e,o=""){if(x.includes(e))return e;const r=e==null||e===""?"(未提供)":`「${e}」`;throw l("E_INPUT",`${o?o+"的":""}gender 必须是 male 或 female${r};性别决定大运/大限顺逆,不能靠默认值`)}const ve=["brightnessSchool","gengYearSihua","tianmaSchool","tiankongSchool","jiekongSchool","kuiyueSchool","tianshiTianshang","changshengSchool","lateZishi","shenzhuSchool"];function te(e){const o={};for(const r of ve)e[r]!==void 0&&(o[r]=e[r]);return e.schools&&typeof e.schools=="object"&&(o.schools=e.schools),o}function Z(e){if(typeof e!="string"||!e.trim())throw l("E_INPUT","缺少 datetime(公历日期时间),例如 1990-05-12T14:30");const o=e.trim().match(/^(\d{4})-(\d{1,2})-(\d{1,2})(?:[T\s](\d{1,2}):(\d{1,2})(?::(\d{1,2}))?)?$/);if(!o)throw l("E_INPUT",`无法解析 datetime:「${e}」,请用 1990-05-12T14:30 这种格式`);const r={year:Number(o[1]),month:Number(o[2]),day:Number(o[3]),hour:Number(o[4]??0),minute:Number(o[5]??0)};if(r.month<1||r.month>12)throw l("E_INPUT",`月份超出范围:${r.month}`);const a=$(r.year,r.month);if(r.day<1||r.day>a)throw l("E_INPUT",`日期不存在:${r.year}-${r.month}-${r.day}(${r.year} 年 ${r.month} 月只有 ${a} 天)`);if(r.hour>23||r.minute>59)throw l("E_INPUT",`时间超出范围:${r.hour}:${r.minute}`);if(r.year<1600||r.year>2400)throw l("E_RANGE",`年份 ${r.year} 超出可计算范围(1600–2400)`);return(r.year<1900||r.year>2100)&&(r.precision={level:"approx",note:`ΔT 模型仅覆盖 1900–2100,${r.year} 年按端点值外推,节气与朔望时刻可能有分钟级偏差,月柱在交节前后需复核`}),r}function we(e){const o=e.pillars,r=(Ve,$n)=>`${Ve}:${$n.ganzhi} ${$n.stemTenGod?`十神 ${$n.stemTenGod} `:""}藏干 ${$n.hidden.map(Gn=>`${Gn.stem}(${Gn.tenGod})`).join(" ")} 纳音 ${$n.nayin} 地势 ${$n.dishi} 自坐 ${$n.zizuo} 空亡 ${$n.kongwang.join("")}`+($n.shensha&&$n.shensha.length?` 神煞 ${$n.shensha.join("、")}`:""),a=Object.entries(e.wuxing).map(([Ve,$n])=>`${Ve}${$n}`).join(" "),i=e.palaces?`【胎元】${e.palaces.taiyuan.ganzhi} 胎息 ${e.palaces.taixi?e.palaces.taixi.ganzhi:"—"}`+(e.palaces.minggong?` 命宫 ${e.palaces.minggong.ganzhi}`:" 命宫 时柱暂缺,不排")+(e.palaces.shengong?` 身宫 ${e.palaces.shengong.ganzhi}`:" 身宫 时柱暂缺,不排"):"",y=e.dayun.list.slice(0,8).map(Ve=>`${Ve.startAge}岁 ${Ve.ganzhi}(${Ve.stemTenGod})${Ve.luck?`·${Ve.luck.tier}`:""}${Ve.relations&&Ve.relations.length?`[${Ve.relations.join("")}]`:""}`).join(" "),I=e.dayun.jiao&&e.dayun.jiao.at?`;交运 ${e.dayun.jiao.at}(${e.dayun.jiao.frame},距${e.dayun.jiao.from.name} ${e.dayun.jiao.spanDays} 天,三日折一年)`:"",ie=e.jieqi.nearBoundaryMinutes<20?`
|
|
118
|
+
⚠ 出生时刻距「节」仅 ${e.jieqi.nearBoundaryMinutes} 分钟,而节气时刻本身有最多约 14 分钟的偏差,月柱与年柱建议人工复核。`:"",ke={year:"年",month:"月",day:"日",hour:"时"},K=e.shensha&&e.shensha.groups&&e.shensha.groups.length?`神煞(${e.shensha.count} 见):`+e.shensha.groups.map(Ve=>`${Ve.cat}|`+Ve.items.map($n=>`${$n.name}(${$n.pillars.map(Gn=>ke[Gn]).join("")})`).join("、")).join(";"):"神煞:—",re=e.renyuan,Ke=D("smt-renyuan"),pe=re?`人元:${re.month}月第${re.day}日,${re.active}${re.activeElement}司权(${re.segments.map(Ve=>`${Ve.stem}${Ve.from}–${Ve.to}`).join(" ")})${re.beyond?";已过 30 日表,按本气算":""}${Ke?`|原文见《${_e[Ke.book].name}·${Ke.chapter}》`:""}`:"",Qe=e.frame&&e.frame.yongshen&&e.frame.yongshen.disputed||[],Tn=Qe.length?` 有争议:${Qe.map(Ve=>`${Ve.element}(${Ve.favorRole};${Ve.climate}盘调候忌${Ve.element})`).join("、")}`:"",yn=new Set(Qe.map(Ve=>Ve.element)),Q=e.frame&&e.frame.yongshen&&e.frame.yongshen.neutral||[],Ee=Q.length?` 中性偏忌:${Q.map(Ve=>`${Ve.element} ${Ve.weight} 分`).join("、")}(近零,不作实忌)`:"",He=e.frame?[`格局:${e.frame.primary?`${e.frame.primary.name}(${e.frame.primary.evidence})`:"—"}`,` ${e.frame.geju.map(Ve=>`${Ve.name}[${Ve.kind}${Ve.status?`·${Ve.status}`:""}]`).join(" ")}`,`用神:喜${e.frame.yongshen.favor.join("")}(${e.frame.yongshen.favorTenGods.join("、")}) 忌${e.frame.yongshen.avoid.join("")}(${e.frame.yongshen.avoidTenGods.join("、")})${Tn}${Ee} ${e.frame.yongshen.method}`,` ${e.frame.yongshen.detail}`,`寒暖:${e.climate?`${e.climate.label}(${(e.climate.evidence||[]).join("、")})${e.climate.need?` 调候取${e.climate.need.stem}${e.climate.need.element} 忌${e.climate.avoidElement}${yn.has(e.climate.avoidElement)?"(有争议)":""}`:""}`:"—"}`+(e.frame.yongshen.qt?` 穷通:${e.frame.yongshen.qt.month}${e.frame.yongshen.qt.stem}取${e.frame.yongshen.qt.yong.join("、")}(首取${e.frame.yongshen.qt.primary})`:""),`十神权重:${Object.entries(e.frame.godStats.groups).map(([Ve,$n])=>`${Ve}${$n}`).join(" ")}`]:[],On=e.hourUnknown===!0||!o.hour;return[`【四柱】${o.year.ganzhi} ${o.month.ganzhi} ${o.day.ganzhi}${o.hour?` ${o.hour.ganzhi}`:"(时柱暂缺)"}`,`日主:${e.dayMaster.stem}${e.dayMaster.element}(${e.dayMaster.yinYang}) 空亡:${e.kongwang.join("")}`,r("年柱",o.year),r("月柱",o.month),r("日柱",o.day),...On?[]:[r("时柱",o.hour)],`五行:${a}`,...i?[i]:[],`日主强弱:${e.strength.level}(${e.strength.score}) ${e.strength.detail}`,...He,`天干关系:${e.relations&&e.relations.stems.length?e.relations.stems.join(" "):"—"}`,`地支关系:${e.relations&&e.relations.branches.length?e.relations.branches.join(" "):"—"}`,K,`真太阳时:${e.solarTime.trueSolarText}(${e.input.geo?e.input.geo.note+";":""}${e.solarTime.note}) 晚子时:${e.input.lateZi?"23:00 后算次日":"23:00 后仍算当日"}`,`节气:上一节 ${e.jieqi.previous.name} ${e.jieqi.previous.time} 下一节 ${e.jieqi.next.name} ${e.jieqi.next.time}`,...pe?[pe]:[],`大运:${e.dayun.rule}(${e.dayun.direction}),${e.dayun.startAge.years}岁${e.dayun.startAge.months}个月起运${I}`,` ${y}`,`流年:${e.liunian.slice(0,10).map(Ve=>`${Ve.year}${Ve.ganzhi}(${Ve.stemTenGod})${Ve.luck?`·${Ve.luck.tier}`:""}`).join(" ")}`,(()=>{const Ve=e.liunian.filter(Qn=>Qn.suiyun&&Qn.suiyun.signals&&Qn.suiyun.signals.length);if(!Ve.length)return"岁运提示:近十年无岁运并临、运年反吟或大运/流年伏吟、反吟(只标干支,不判吉凶)";const $n=Qn=>`${Qn.type}${(Qn.type.startsWith("流年")||Qn.type.startsWith("大运"))&&Qn.target?`(${Qn.target})`:""}`,Gn=oe(e),at=Gn?`|古籍见《${_e[Gn.book].name}·${Gn.chapter}》`:"";return"岁运提示(只标干支变动,不判吉凶):"+Ve.map(Qn=>`${Qn.year}${Qn.ganzhi} ${Qn.suiyun.signals.map($n).join("/")}`).join(";")+at})(),"(格局、用神、行运吉凶为扶抑+简化调候的量化提示,非断语。)"].join(`
|
|
119
|
+
`)+ie}function W(e){const o=e.lunar.monthRaw||e.lunar.month,r=`${e.lunar.year}年${e.lunar.isLeap?`闰${o}`:e.lunar.month}月${e.lunar.day}日`+(e.lunar.isLeap&&e.lunar.month!==o?`(按${e.lunar.month}月起盘)`:""),a=(()=>{if(!e.schools)return"";const Qe=Object.entries({brightnessSchool:"亮度",gengYearSihua:"庚干四化",tianmaSchool:"天马",tiankongSchool:"天空",jiekongSchool:"截空",kuiyueSchool:"魁钺",tianshiTianshang:"天伤天使",changshengSchool:"长生",lateZishi:"晚子时",shenzhuSchool:"身主"}).filter(([Tn])=>e.schools[Tn]&&e.schools[Tn]!==$e[Tn]).map(([Tn,yn])=>`${yn} ${e.schools[Tn]}`);return Qe.length?`【流派】${Qe.join(" ")}`:""})(),i=pe=>pe.length?pe.map(Qe=>`${Qe.name}${Qe.mutagen?`化${Qe.mutagen}`:""}`).join(" "):"—",y=pe=>`神煞:长生(${pe.changsheng}) 博士(${pe.boshi}) 将前(${pe.jiangqian}) 岁前(${pe.suiqi})`,I=[];for(const pe of e.palaces){const Qe=pe.isSoul?"【命】":pe.isBody?"【身】":" ";I.push(` ${pe.palace} ${pe.branch} ${pe.ganzhi} ${Qe} 大限${String(pe.daxian.start).padStart(2)}-${pe.daxian.end} 小限${String(pe.xiaoxian.age).padStart(2)} ${i(pe.stars)}`),I.push(` ${y(pe.shensha)}`)}const ie=(e.liunian??[]).slice(0,6).map(pe=>` ${pe.year} ${pe.ganzhi} ${String(pe.age).padStart(2)}岁 命宫${pe.lifePalace.branch}(${pe.lifePalace.palace}) 流禄${pe.liulu} 流羊${pe.liuyang} 流陀${pe.liutuo} | ${pe.mutagen.map(Qe=>Qe.replace("化","")).join(" ")}`+(pe.mutagenHits?` 四化落宫 ${pe.mutagenHits.map(Qe=>`${Qe.star}${Qe.type}→${Qe.palace||"未上盘"}`).join("、")}`:"")+(pe.sanfangMainStars?` 三方主星 ${pe.sanfangMainStars.join("")}`:"")),ke=(e.patterns??[]).length?e.patterns.map(pe=>`${pe.name}(${pe.tone==="good"?"吉格":pe.tone==="bad"?"忌格":"中"}:${pe.evidence})`).join(";"):"无明显格局(按内置规则)",K=(e.daxianList??[]).slice(0,8).map(pe=>` ${pe.branch}宫(${pe.palace})${pe.ages[0]}-${pe.ages[1]}岁 ${pe.ganzhi} 会${pe.mainStars.join("")||"—"} 化 ${pe.mutagenHits.map(Qe=>`${Qe.star}${Qe.type}→${Qe.palace||"未上盘"}`).join("、")}`),re=(()=>{const pe=e.flyChains;if(!pe)return"";const Qe=yn=>{const Q=pe[yn];return!Q||!Q.steps.length?"":`${yn}:${Q.path.join("→")}${Q.closed?"(成环)":""}`},Tn=["禄","权","科","忌"].map(Qe).filter(Boolean).join(" ");return Tn?`【命宫飞星】${Tn}`:""})(),Ke=(()=>{const pe=e.flyComposite;if(!pe||!Array.isArray(pe.sources)||!pe.sources.length)return"";const Qe=pe.labels.length?pe.labels.join(" · "):"无同宫会聚",Tn=["禄","权","科","忌"].map(yn=>{const Q=(pe.byType&&pe.byType[yn]||[]).filter(He=>!He.self),Ee=[...new Set(Q.map(He=>String(He.to).replace(/宫$/,"")))];return Ee.length?`${yn}→${Ee.join("/")}`:""}).filter(Boolean).join(" ");return`【三方四正飞化】${pe.sanfang.join("·")}:${Qe}${Tn?` ${Tn}`:""}`})();return[`【农历】${r}(月首 ${e.lunar.monthStart}) 时支:${e.hourBranch} 年干支:${e.yearGanzhi}`,`【时刻】${e.solarTime?`${e.solarTime.civilText} → 真太阳时 ${e.solarTime.trueSolarText}${e.input.geo?"("+e.input.geo.note+")":""}`:""}`,`【命宫】${e.soul.branch}(${e.soul.ganzhi}·${e.soul.nayin}) 【身宫】${e.body.branch}(落${e.body.lands}) 【五行局】${e.bureau.name}`,`【紫微】${e.ziwei} 【天府】${e.tianfu} 【命主】${e.lifeMaster} 【身主】${e.bodyMaster}${e.bodyMasterNote?`(${e.bodyMasterSchool==="common"?"子午皆火星":"子铃午火"})`:""}`,`【大限】${e.daxian.rule},${e.daxian.startAge}岁起 【小限】${e.xiaoxianRule.direction}`,a,`【昌曲】文昌${e.changqu.wenchang.branch}(${e.changqu.wenchang.palace}${e.changqu.wenchang.mutagen?"·化"+e.changqu.wenchang.mutagen:""}) 文曲${e.changqu.wenqu.branch}(${e.changqu.wenqu.palace}${e.changqu.wenqu.mutagen?"·化"+e.changqu.wenqu.mutagen:""})`,` ${e.changqu.relation} 入命三方:${e.changqu.inSoulSanfang?"是":"否"} 吸收面:${e.changqu.absorb.label}(${e.changqu.absorb.reason})`,re,Ke,"十二宫:",...I,"大限(按起运年龄排序,前 8 限,宫干四化落宫):",...K,"流年(前 6 年,完整 12 年在结构化数据里):",...ie,`【格局】${ke}`,e.patternSummary?`【结构统计】吉格 ${e.patternSummary.good.length}、中性 ${e.patternSummary.neutral.length}、忌格 ${e.patternSummary.bad.length}${e.patternSummary.broken.length?`、破格 ${e.patternSummary.broken.length}(${e.patternSummary.broken.join("、")})`:""};${e.patternSummary.note}`:"",e.lunar.note?`注:${e.lunar.note}`:""].filter(Boolean).join(`
|
|
120
|
+
`)}const tn=["旺","相","休","囚","死"];function Je(e){const o=e.states,r=e.month;if(!o||!r)return"无月令数据";const a=i=>tn.filter(y=>i&&Array.isArray(i[y])&&i[y].length).map(y=>`${y} ${i[y].join("/")}`).join(" ");return`月令 ${r.branch}(${r.element}) 门 ${a(o.gate)||"—"} 星 ${a(o.star)||"—"} 干 ${a(o.stem)||"—"}`}function xe(e){const o=e.palaces,r=a=>`${a.palace}宫 ${a.star||"—"}/${a.gate||"—"}/${a.god||"—"}${a.kong?" 空":""}${a.ma?" 马":""}`;return[`【四柱】${e.siZhu.year} ${e.siZhu.month} ${e.siZhu.day} ${e.siZhu.time}`,`【局数】${e.ju} 节气 ${e.jieqi}(${e.jieqiTime})`,`【值符】${e.zhiFu.star}(${e.zhiFu.gong}宫) 【值使】${e.zhiShi.gate}(${e.zhiShi.gong}宫) 旬首 ${e.xunshou}`,`【空亡】${e.kongWang.join("")||"—"} 驿马 ${e.ma.zhi||"—"}(${e.ma.gong||"—"}宫)`,`【宫位条件】击刑 ${(e.conditions&&e.conditions.jiXing||[]).map(a=>`${a.palace}宫${a.stem}`).join("、")||"无"} 三奇入墓 ${(e.conditions&&e.conditions.ruMu||[]).map(a=>`${a.palace}宫${a.stem}`).join("、")||"无"} 六仪入墓 ${(e.conditions&&e.conditions.liuYiRuMu||[]).map(a=>`${a.palace}宫${a.stem}`).join("、")||"无"}`,`【十干克应】${[...o,e.centerPalace].filter(a=>a&&a.ganYing).map(a=>`${a.palace}宫 ${a.ganYing.tian}加${a.ganYing.di} ${a.ganYing.name}`).join(" ")||"—"}`,`【旺衰】${Je(e)}`,`【九宫】${o.map(r).join(" ")}`,`※ 晚子时:${e.lateZiHourMode==="next-day"?"23:00 后归次日":"23:00 后仍归当日"}(可用 lateZiHourMode / lateZi 指定)`,`※ ${e.rules[e.rules.length-1]}`].join(`
|
|
121
|
+
`)}function ze(e){if(!e||!Array.isArray(e.pairs)||!e.pairs.length)return[];const o=["【三方合盘】三对两两并列,不合成「三人总分」",...e.pairs.map(r=>`· ${r.a}–${r.b}:${r.level||"—"}(${r.total==null?"—":`${r.total}/100`})`)];return e.best&&(e.spread>=3?o.push(` 最顺:${e.best.a}–${e.best.b}(${e.best.total}/100)`+(e.hardest?`;最需磨合:${e.hardest.a}–${e.hardest.b}(${e.hardest.total}/100)`:"")):o.push(` 三对分数接近(最高与最低相差 ${e.spread} 分),不排名`)),e.focus&&e.focus.spread>=3&&o.push(` 差异最大的一维:${e.focus.label}(三对相差 ${e.focus.spread} 分)`),e.note&&o.push(`※ ${e.note}`),o}function O(e){if(e.chart==="ziwei"){const a=i=>`${i.label}:${i.score>=0?"+":""}${i.score} ${i.text}`;return[`【紫微合盘】${e.score.level}(${e.score.total}/100)`,`你 命宫 ${e.a.soul.branch}(${e.a.soulStars.join("、")||"无主星"}) 夫妻 ${e.a.spouseStars.join("、")||"无主星"} ${e.a.bureau}`,`对方 命宫 ${e.b.soul.branch}(${e.b.soulStars.join("、")||"无主星"}) 夫妻 ${e.b.spouseStars.join("、")||"无主星"} ${e.b.bureau}`,...e.dimensions.map(a),...e.interactions.map(i=>` · ${i.text}`),...ze(e.triple),...e.notes.map(i=>`※ ${i}`)].join(`
|
|
122
|
+
`)}const o=a=>`${a.label}:${a.score>=0?"+":""}${a.score} ${a.text}`,r=a=>!a||!a.solarNote?"—":`${a.longitude==null?"未含经度修正":`${a.longitude}°E`}(${a.solarNote})`;return[`【合盘】${e.score.level}(${e.score.total}/100)`,`你 ${e.a.pillars.join(" ")} 日主 ${e.a.dayMaster} 日支 ${e.a.dayBranch} ${e.a.strength||""}`,`对方 ${e.b.pillars.join(" ")} 日主 ${e.b.dayMaster} 日支 ${e.b.dayBranch} ${e.b.strength||""}`,`真太阳时:你 ${r(e.a)};对方 ${r(e.b)}`,...e.dimensions.map(o),...e.detail?[`属相:${e.detail.yearRelation.label}——${e.detail.yearRelation.text}`,`日干:${e.detail.stems.text}`,...e.detail.crossBranches&&e.detail.crossBranches.length?[`跨盘地支:${e.detail.crossBranches.map(a=>`${a.name}(${a.a}${a.b})`).join("、")}`]:[],`年命纳音:${e.detail.nayin.a} / ${e.detail.nayin.b}(${e.detail.nayin.label})——${e.detail.nayin.text}`,`吉凶象:吉 ${e.detail.tally.good} / 凶 ${e.detail.tally.bad}(${e.detail.tally.lean};分档只数象,总分以上面三维度为准)`]:[],...ze(e.triple),...e.notes.map(a=>`※ ${a}`)].join(`
|
|
123
|
+
`)}function Ge(e){const o=e.sanChuan,r=a=>`${a.zhi}(${a.jiang}${a.liuQin}${a.xunKong?"空":""})`;return[`【日时】${e.dayGanZhi}日 ${e.hourZhi}时(${e.dayNight}贵) 月将 ${e.yueJiang.name}${e.yueJiang.zhi} 节气 ${e.jieqi.name} ${e.lateZi===!1?"晚子时不换日":"晚子时换日"}`,`【三传】初 ${r(o.chu)} → 中 ${r(o.zhong)} → 末 ${r(o.mo)}`,`【四课】${e.siKe.map(a=>`${a.position}课 ${a.shang}上${a.xia}下(${a.relation}·${a.jiang})`).join(" ")}`,`【天地盘】${e.pan.map(a=>`${a.di}:${a.tian}(${a.jiang})`).join(" ")}`,`【格局】${e.geJu.name}·${e.geJu.detail}`,...e.shensha&&e.shensha.length?[`【神煞】${e.shensha.map(a=>`${a.name}${a.branch}`).join(" ")}`]:[]].join(`
|
|
124
|
+
`)}function he(e){const o=[`【起卦】${e.source}`,`【本卦】${e.ben.name}(上${e.ben.upper} 下${e.ben.lower}) 动爻:${e.movingName}`,`【互卦】${e.hu.name} 【变卦】${e.bian.name} 【错卦】${e.cuo.name} 【综卦】${e.zong.name}`,`【体用】体 ${e.bodyUse.body.trigram}${e.bodyUse.body.element} 用 ${e.bodyUse.use.trigram}${e.bodyUse.use.element} ${e.bodyUse.level}`,` ${e.bodyUse.relation}`],r=e.lines.slice().reverse().map(a=>` ${a.name} ${a.yinYang==="阳"?"━━━━━":"━━ ━━"}${a.moving?" ←动":""}`);return[...o,"【爻】",...r].join(`
|
|
125
|
+
`)}function hn(e){const o=[e.question?`【所问】${e.question}`:"(未填写提问)",`【牌阵】${e.spread}${e.castAt?` 抽牌于 ${e.castAt}`:""}`];for(const r of e.cards)o.push(` ${r.position}:${r.name}(${r.orientation}) ${r.keywords.join("、")}`);if(e.reading&&e.reading.length){o.push("【解读】");for(const r of e.reading)o.push(` ${r}`)}return o.join(`
|
|
126
|
+
`)}function Ce(e){const o=ke=>{const K=ke.lines.slice().reverse().map(re=>{const Ke=re.position===ke.shi?"世":re.position===ke.ying?"应":" ";return` ${re.name} ${Ke} ${re.symbol} ${re.ganzhi}${re.element} ${re.liuqin}/${re.liushen}`});return[`${ke.name}(${ke.palace}·${ke.palaceElement})`,...K].join(`
|
|
127
|
+
`)},r=[`起卦:${e.cast.notation.join("、")}(自下而上)`,`日辰:${e.dayGanZhi.name}`,e.xunShou?`旬首:${e.xunShou} 旬空:${(e.xunKong||[]).join("")||"—"}`:"",e.question?`所问:${e.question}`:"","本卦:",o(e.ben)];e.bian?r.push(`动爻:第 ${e.cast.movingPositions.join("、")} 爻`,"变卦(六亲以变卦自身宫论):",o(e.bian)):r.push("六爻安静,无变卦。");const a=e.body&&Array.isArray(e.body.labels)?e.body.labels:se(e.body);r.push(`卦体:${a.length?a.join(" · "):"无六冲、六合、伏吟、反吟"}`);const i=e.useGod||me(e,{});if(i&&i.liuqin){const ke=i.found.length?i.found.map(Qe=>`${Qe.position}爻${Qe.ganzhi}${Qe.element}${Qe.kong?"(空)":""}`).join("、"):i.fushen.length?i.fushen.map(Qe=>`伏 ${Qe.position}爻${Qe.ganzhi}${Qe.element}(${Qe.relation||"飞伏关系未知"})`).join("、"):"不上卦";r.push(`用神:${i.byShi?"世爻":i.liuqin}(${i.ask})→ ${ke}${i.side?`(${i.side})`:""}`);const K=i.byShi?"用神 世爻":`用神 ${i.liuqin}`,re=i.labels.filter(Qe=>Qe!==K&&!Qe.startsWith(K));re.length&&r.push(`用神联动:${re.join(" · ")}`);const Ke=e.useGodStrength;if(Ke&&Ke.labels.length){const Qe=Ke.month&&Ke.month.branch?`月建 ${Ke.month.branch}(${Ke.month.element}) `:"";r.push(`用神旺衰:${Qe}${Ke.labels.join(" · ")}`)}const pe=e.fushenAccess;pe&&Array.isArray(pe.labels)&&pe.labels.length&&r.push(`伏神出伏:${pe.labels.join(" · ")}`)}else r.push("用神:未取(未指明所问之事;用「询问方向」指定后即按六亲取用)");const y=e.hexStrength;if(y&&Array.isArray(y.labels)&&y.labels.length){const ke=y.month&&y.month.branch?`月建 ${y.month.branch}(${y.month.element}) `:"无月建(未给起卦时间) ";r.push(`全卦旺衰:${ke}${y.labels.join(" · ")}`)}const I=e.jinTuiPower;I&&Array.isArray(I.lines)&&I.lines.length&&r.push(`进退力重:${I.lines.map(ke=>`${ke.position}爻${ke.from}→${ke.to}${ke.type}·${ke.verdict}`).join(" · ")}`);const ie=e.yingqi;return ie&&Array.isArray(ie.triggers)&&ie.triggers.length&&r.push(`应期线索:${ie.tempo} · ${ie.triggers.map(ke=>`${ke.labels.join("/")}${ke.branch}`).join(" · ")}(只列地支,不出日期)`),r.filter(Boolean).join(`
|
|
128
|
+
`)}function mn(e){const o=new WeakSet,r=(a,i)=>{switch((a instanceof Number||a instanceof String||a instanceof Boolean)&&(a=a.valueOf()),a&&typeof a=="object"&&typeof a.toJSON=="function"&&(a=a.toJSON(i)),typeof a){case"string":case"boolean":return a;case"number":return Number.isFinite(a)?Object.is(a,-0)?0:a:null;case"bigint":throw new TypeError("Do not know how to serialize a BigInt");case"object":{if(a===null)return null;if(o.has(a))throw new TypeError("Converting circular structure to JSON");o.add(a);let y;if(Array.isArray(a)){y=new Array(a.length);for(let I=0;I<a.length;I++){const ie=r(a[I],String(I));y[I]=ie===void 0?null:ie}}else{y={};for(const I of Object.keys(a)){const ie=r(a[I],I);ie!==void 0&&(y[I]=ie)}}return o.delete(a),y}default:return}};return r(e,"")}const xn=new Set(["shadow","shadowVersion","diff","trace","traceError","withInterpret","cross","verifyPast","rectify","events","geocode","ask","followup","caliber","seed","asOf","handle","revise"]),X=e=>{if(e==null||e==="")return null;const o=Number(e);return Number.isFinite(o)?Number(o.toFixed(6)):null};function en(e){if(e==null||e==="")return null;try{const o=Z(e);return{y:o.year,m:o.month,d:o.day,h:o.hour,mi:o.minute,precision:o.precision}}catch{return String(e).trim()}}function fn(e={}){const o={};return e.datetime&&(o.datetime=en(e.datetime)),e.gender&&(o.gender=String(e.gender).toLowerCase()),e.longitude!==void 0?o.longitude=X(e.longitude):e.address&&(o.address=String(e.address).trim()),e.lateZi!==void 0&&(o.lateZi=e.lateZi!==!1),e.trueSolar!==void 0&&(o.trueSolar=e.trueSolar!==!1),e.dst!==void 0&&(o.dst=e.dst!==!1),o}function Ze(e){return e.lateZiHourMode==="next-day"||e.lateZi===!0?"next-day":"same-day"}function Pe(e,o){const r=String(o&&o.system||e.system||""),a=o&&o.input&&typeof o.input=="object"?o.input:null;if(r==="bazi"&&a)return{civil:a.civil,gender:a.gender,longitude:X(a.longitude),lateZi:a.lateZi!==!1,trueSolar:a.trueSolar!==!1,dst:!!(a.dst&&a.dst.applied)};if(r==="ziwei"&&a)return{civil:{year:a.year,month:a.month,day:a.day,hour:a.hour,minute:a.minute},gender:a.gender,longitude:X(a.longitude),leapMonth:a.leapMonth||"split",leapAsNext:a.leapAsNext===!0,schools:a.schools||$e,trueSolar:a.trueSolar!==!1,dst:!!(a.dst&&a.dst.applied)};if(r==="qimen")return{datetime:en(e.datetime),juMethod:e.juMethod||"chaibu",lateZiHourMode:Ze(e)};if(r==="hepan"){const y={chart:e.chart==="ziwei"?"ziwei":"bazi",a:fn({...e,datetime:e.datetime}),b:fn(e.partner||{})};return e.partner2&&(y.c=fn(e.partner2)),y}const i={};for(const[y,I]of Object.entries(e))if(!(xn.has(y)||I===void 0))if(y==="datetime")i.datetime=en(I);else if(y==="partner")i.partner=fn(I);else if(y==="gender")i.gender=String(I).toLowerCase();else{if(y==="address")continue;typeof I=="number"?i[y]=Number.isFinite(I)?Object.is(I,-0)?0:I:null:typeof I=="string"?i[y]=I.trim():i[y]=I}return r==="daliuren"&&i.lateZi===void 0&&(i.lateZi=!0),r==="tarot"&&i.count===void 0&&(i.count=3),r==="meihua"&&i.mode===void 0&&(i.mode="time"),r==="xiaoliuren"&&i.mode===void 0&&(i.mode="time"),r==="convert"&&i.mode===void 0&&(i.mode="solar2lunar"),r==="fengshui"&&i.action===void 0&&(i.action="natal"),r==="tarot"&&o&&Array.isArray(o.cards)&&o.cards.length&&(i.cards=o.cards.map(y=>`${y.name||""}|${y.upright?"正":"逆"}`)),r==="liuyao"&&o&&o.cast&&Array.isArray(o.cast.lines)&&(i.cast=o.cast.lines.join("")),i}function qe(e,o){const r=o.seed,a=!(r==null||r==="");return e==="liuyao"&&Array.isArray(o.lines)&&o.lines.length===6?{reproducible:!0}:(e==="tarot"||e==="liuyao")&&!a?{reproducible:!1,reason:"未给 seed:重算会变成另一副牌 / 另一卦"}:e==="bazi"||e==="ziwei"||e==="trend"||e==="fengshui"?{reproducible:!0,asOfPinned:!!o.asOf}:{reproducible:!0}}function jn(e={},o={}){const r=o.result||null,a=String(r&&r.system||e.system||""),i=String(o.version||typeof globalThis<"u"&&globalThis.__MP_VER||"dev");return{...Cn({system:a,params:Pe(e,r),seed:e.seed,asOf:e.asOf?String(e.asOf):null,version:i}),...qe(a,e),system:a,version:i}}const Xe=new Set(["shadow","trace","traceText","traceError","interpret","summary","classics","suiyunClassic","renyuanClassic","cross","past","rectify","followup","caliber","input","reading","knowledge","outline","sections","answer","plain","tables","glossary","caveats","lead","dimensions","moduleType","technique","disclaimer","ask","followups","knowledgeCount","title","systemLabel","handle","handleError","revision"]);function pn(e){const o={};for(const[r,a]of Object.entries(e||{}))Xe.has(r)||(o[r]=a);return o}function kn(e){return!e||!e.shadow||!e.shadow.baseId?null:{snapshot:!0,shadow:e.shadow,data:pn(e)}}function qn(e,o,r={}){const a=e&&e.shadow,i=o&&o.shadow;if(!a||!i)return{sameId:!1,total:0,reason:"缺少影子盘信息"};if(a.baseId&&i.baseId&&a.baseId!==i.baseId)return{sameId:!1,total:0,fromId:a.id,toId:i.id,fromBaseId:a.baseId,toBaseId:i.baseId,reason:"基础指纹不同,不是同一张盘"};const y=pe=>pe.snapshot===!0&&pe.data&&typeof pe.data=="object"?pe.data:pn(pe),I=Oe(y(e),y(o)),ie=ue(I.filter(pe=>ln(pe.path))).map(pe=>({path:pe.path,label:We(pe.path),from:Pn(pe.from),to:Pn(pe.to)})),ke=new Map;for(const pe of I){const Qe=wn(pe.path)||"其他";ke.set(Qe,(ke.get(Qe)||0)+1)}const K=[...ke.entries()].map(([pe,Qe])=>({name:pe,count:Qe})).sort((pe,Qe)=>Qe.count-pe.count||pe.name.localeCompare(Qe.name,"zh-Hans-CN")),re=r.fromVersion||a.version||"",Ke=r.toVersion||i.version||"";return{sameId:!0,versionChanged:re!==Ke,fromVersion:re,toVersion:Ke,total:I.length,summary:Le(I),roots:ie,categories:K,diffs:I}}function In(e={}){let o=v(e),r;if(typeof o.revise=="string"&&o.revise.trim()){const i=R(o.revise),y={...o};o={...o,...i.patch},r={text:i.text,applied:i.labels.map(I=>{const ie=y[I.key]===void 0?null:y[I.key];return{...I,from:ie,fromDisplay:w(I.key,ie)}}),ignored:i.ignored}}o.partner2===null&&(o={...o},delete o.partner2);const a=mn(Hn(o));if(a&&!a.question&&typeof o.question=="string"&&o.question.trim()&&["liuyao","meihua","daliuren","qimen","tarot","xiaoliuren"].includes(a.system)&&(a.question=o.question.trim()),a)try{const i=Sn(a);i&&(a.brief=i)}catch(i){a.briefError=String(i&&i.message||i)}if(r&&(a.revision=r),a&&a.system==="bazi"){a.classics=Be(a);const i=de(a.classics);i&&(a.summary=`${a.summary}
|
|
129
129
|
【古籍】
|
|
130
|
-
${
|
|
131
|
-
${
|
|
132
|
-
${
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
`))
|
|
137
|
-
`)}const Me=["cross","verifyPast","withInterpret","question","direction","ask","geocode","rectify","events","shadow","trace"];function Xe(e={},a={}){const s=a.system||e.system,i=a.switches||Fn[s]||[];if(!i.length)return{system:s,switches:[],affected:0,total:0};const m={...e};for(const v of Me)delete m[v];const o=i.map(v=>{const V=v.read(m),Ne=v.alt(V);let Se=[],L="",ke=null,ee=null;try{ke=On({...m,[v.key]:V}),ee=On({...m,[v.key]:Ne}),Se=ve(ke,ee)}catch(xe){L=xe&&xe.message||String(xe)}const Ue=Q(Se.filter(xe=>De(xe.path))).map(xe=>({path:xe.path,label:Ke(xe.path),from:Hn(xe.from),to:Hn(xe.to)})),An=new Map;for(const xe of Se){const Qe=Tn(xe.path)||"其他";An.set(Qe,(An.get(Qe)||0)+1)}const ae=[...An.entries()].map(([xe,Qe])=>({name:xe,count:Qe})).sort((xe,Qe)=>Qe.count-xe.count||xe.name.localeCompare(Qe.name,"zh-Hans-CN"));return{key:v.key,title:v.title,short:v.short,current:V,alt:Ne,currentLabel:v.label(V),altLabel:v.label(Ne),total:Se.length,summary:L?"":Ve(Se),views:L?[]:hn(s,ke,ee),roots:Ue,categories:ae,error:L}});return{system:s,switches:o,affected:o.filter(v=>!v.error&&v.total>0).length,total:o.reduce((v,V)=>v+V.total,0)}}const vn=["chaibu","chaoshen","zhirun"],In=[1,3,5],Nn=["same-day","next-day"];function Mn(e){if(e==null||e==="")return;const a=g(e);if(!a)throw c("E_ASOF",`无法解析 asOf:「${e}」,请用 2026-10-22T16:00 这种格式`);const{year:s,month:i,day:m}=a;if(!(i>=1&&i<=12)||!(m>=1&&m<=$(s,i)))throw c("E_ASOF",`asOf 指向的日期不存在:${e}`);return a}function _n(e={}){const a=e.system;if(a==="bazi"){const s=X(e.datetime),i=Mn(e.asOf),m=H({...s,gender:N(e.gender),longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0,lateZi:e.lateZi!==!1,trueSolar:e.trueSolar!==!1,dst:e.dst!==!1,nowYear:i?i.year:void 0});return{...m,...i?{asOf:i}:{},precision:s.precision,summary:ce(m)}}if(a==="ziwei"){const s=X(e.datetime),i=Mn(e.asOf),m=E({...s,gender:N(e.gender),leapMonth:e.leapMonth,leapAsNext:e.leapAsNext===!0,...C(e),longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0,trueSolar:e.trueSolar,dst:e.dst!==!1,asOf:i});return{...m,precision:s.precision,summary:Z(m)}}if(a==="tarot"){const s=e.count===void 0||e.count===null||e.count===""?3:Number(e.count);if(!In.includes(s))throw c("E_COUNT",`塔罗张数只能是 1 / 3 / 5,收到「${e.count}」`);if(!de(e.seed))throw c("E_INPUT",`seed 必须是数字,收到「${e.seed}」`);const i=Mn(e.asOf),m=I({count:s,question:e.question,at:e.asOf,random:ie(e.seed)});return e.seed!==void 0&&e.seed!==null&&e.seed!==""&&(m.seed=Number(e.seed)),{...m,...i?{asOf:i}:{},summary:cn(m)}}if(a==="daliuren"){const s=X(e.datetime),i=e.lateZi!==!1,m=p({...s,lateZi:i});return m.lateZi=i,{...m,precision:s.precision,summary:Ee(m)}}if(a==="qimen"){const s=X(e.datetime);if(e.juMethod!==void 0&&!vn.includes(e.juMethod))throw c("E_INPUT",`juMethod 只能是 chaibu / chaoshen / zhirun,收到「${e.juMethod}」`);const i=e.lateZiHourMode!==void 0?e.lateZiHourMode:e.lateZi===!0?"next-day":e.lateZi===!1?"same-day":void 0;if(i!==void 0&&!Nn.includes(i))throw c("E_INPUT",`lateZiHourMode 只能是 same-day / next-day,收到「${i}」`);const m=i==="next-day"?"next-day":"same-day",o=d({...s,lateZiHourMode:m,juMethod:e.juMethod});return o.lateZiHourMode=m,{...o,summary:ge(o)}}if(a==="hepan"){const s=e.partner;if(!s||typeof s!="object")throw c("E_PARTNER","合盘需要 partner:{ datetime, gender, address? },其中 partner.datetime 是对方的公历出生时间");if(!s.datetime)throw c("E_PARTNER",'缺少 partner.datetime(对方的公历出生时间),例如 partner: {"datetime":"1992-03-03T10:00","gender":"female"}');const i=e.partner2;if(i!=null){if(typeof i!="object"||Array.isArray(i))throw c("E_PARTNER","partner2 需要 { datetime, gender, address? };不想看三方就整段省略(null 视同未传)");if(!i.datetime)throw c("E_PARTNER",'缺少 partner2.datetime(第三方的公历出生时间),例如 partner2: {"datetime":"1988-09-09T08:00","gender":"male"}')}const m=e.chart==="ziwei"?"ziwei":"bazi",o=(L,ke)=>({...X(L.datetime),gender:N(L.gender,ke),trueSolar:L.trueSolar,lateZi:L.lateZi,dst:L.dst!==!1,address:typeof L.address=="string"?L.address:void 0,longitude:typeof L.longitude=="number"?L.longitude:void 0,geo:L.geo&&typeof L.geo=="object"?L.geo:void 0}),v=o(e,"你(主方)"),V=o(s,"对方"),Ne=(L,ke)=>m==="ziwei"?t({a:L,b:ke}):T({a:L,b:ke}),Se=Ne(v,V);if(i){const L=o(i,"第三方");Se.triple=r([{key:"a-b",a:"你",b:"对方",result:Se},{key:"a-c",a:"你",b:"第三方",result:Ne(v,L)},{key:"b-c",a:"对方",b:"第三方",result:Ne(V,L)}])}return{...Se,summary:A(Se)}}if(a==="meihua"){let s;try{s=D({mode:e.mode==="number"?"number":"time",datetime:e.datetime,upper:e.upper,lower:e.lower,changing:e.changing})}catch(i){throw c("E_INPUT",`梅花起卦参数不完整:${i&&i.message?i.message:i}`)}return{...s,summary:oe(s)}}if(a==="liuyao"){if(!de(e.seed))throw c("E_INPUT",`seed 必须是数字,收到「${e.seed}」`);let s;if(e.lines===void 0||e.lines===null)s=be(ie(e.seed));else{if(!Array.isArray(e.lines))throw c("E_LINES","lines 必须是数组:自下而上 6 个爻值(6 老阴 / 7 少阳 / 8 少阴 / 9 老阳)");if(e.lines.length!==6)throw c("E_LINES",`六爻需要正好 6 个爻值(自下而上),收到 ${e.lines.length} 个;留空则由引擎随机摇卦`);s=e.lines.map(Number)}let i,m=null;const o=e.datetime?X(e.datetime):Mn(e.asOf);if(o){e.datetime||(m=o);const ke=b(O(y(o.year,o.month,o.day)));i={stem:ke.stem,branch:ke.branch,name:ke.name}}let v;try{v=q({lines:s,question:e.question,dayGanZhi:i})}catch(ke){throw c("E_LINES",ke&&ke.message?ke.message:ke)}const V=fe(v,{direction:e.direction,gender:e.gender});V.liuqin&&(v.useGod=V);let Ne=null;if(o)try{Ne=(n({year:o.year,month:o.month,day:o.day,hour:o.hour,minute:o.minute}).monthGanZhi||"")[1]||null}catch{Ne=null}const Se=u(v,{monthBranch:Ne,dayBranch:v.dayGanZhi.branch});Se&&(v.hexStrength=Se);const L=z(v,{monthBranch:Ne,dayBranch:v.dayGanZhi.branch});if(L&&(v.jinTuiPower=L),V.liuqin){const ke=P(v,V,{monthBranch:Ne,dayBranch:v.dayGanZhi.branch});ke&&(v.useGodStrength=ke);const ee=B(v,V,{monthBranch:Ne,dayBranch:v.dayGanZhi.branch});ee&&(v.fushenAccess=ee);const Ue=_(v,V,{monthBranch:Ne});Ue&&(v.yingqi=Ue)}return e.seed!==void 0&&e.seed!==null&&e.seed!==""&&(v.seed=Number(e.seed)),{...v,...m?{asOf:m}:{},summary:Ie(v)}}if(a==="almanac"){const s=X(e.datetime),i=Ze({year:s.year,month:s.month,day:s.day});return{...i,summary:Rn(i)}}if(a==="zeri"){if(!(e.candidates!==void 0&&e.candidates!==null)&&(typeof e.startDate!="string"||!e.startDate.trim()))throw c("E_INPUT",'择日需要 startDate(公历 YYYY-MM-DD,起算日);可另给 days(1–60,默认 30)与 shengXiao(当事人属相)。只想比几天,改给 candidates: ["2026-12-01","2026-12-08"]');let i;try{i=yn({task:e.task,startDate:e.startDate,days:e.days,shengXiao:e.shengXiao,candidates:e.candidates})}catch(m){throw c("E_INPUT",m&&m.message||String(m))}return{...i,summary:Gn(i)}}if(a==="chenggu"){const s=X(e.datetime),i=/[T\s]\d{1,2}:\d{1,2}/.test(String(e.datetime)),m=Number.isInteger(e.hour)?e.hour:i?s.hour:null;if(m===null||m<0||m>23)throw c("E_INPUT","称骨必须给时辰:datetime 带时分(如 1990-08-15T10:00),或额外给 hour(0–23)——缺时辰四柱不齐");const o=me({year:s.year,month:s.month,day:s.day,hour:m,minute:i?s.minute:0});return{...o,summary:Pn(o)}}if(a==="convert"){const s=e.mode==="lunar2solar"?"lunar2solar":"solar2lunar";let i;if(s==="lunar2solar"){if(e.lunarYear==null||e.lunarMonth==null||e.lunarDay==null)throw c("E_INPUT","农历转公历需要 lunarYear / lunarMonth / lunarDay(闰月另加 isLeapMonth: true)");i=dn({mode:s,lunarYear:Number(e.lunarYear),lunarMonth:Number(e.lunarMonth),lunarDay:Number(e.lunarDay),isLeapMonth:e.isLeapMonth===!0})}else{const m=X(e.datetime);i=dn({mode:s,year:m.year,month:m.month,day:m.day})}return{...i,summary:Bn(i)}}if(a==="xiaoliuren"){const s=e.datetime?X(e.datetime):null,i=Ce({mode:e.mode==="number"?"number":"time",date:typeof e.date=="string"&&e.date.trim()?e.date:s?`${s.year}-${s.month}-${s.day}`:void 0,hour:Number.isInteger(e.hour)?e.hour:s&&/[T\s]\d{1,2}:\d{1,2}/.test(String(e.datetime))?s.hour:void 0,num1:e.num1,num2:e.num2,num3:e.num3,question:e.question});return{...i,summary:tn(i)}}if(a==="star"){const s=X(e.datetime),i=Fe({year:s.year,month:s.month,day:s.day});return{...i,summary:Un(i)}}if(a==="numerology"){const s=X(e.datetime),i=sn({year:s.year,month:s.month,day:s.day});return{...i,summary:Jn(i)}}if(a==="mbti"){if(e.answers===void 0||e.answers===null){const i=nn();return{...i,summary:Dn(i)}}const s=Oe({answers:e.answers});return{...s,summary:Wn(s)}}if(a==="trend"){const s=X(e.datetime),i=Qn({...s,gender:N(e.gender),toAge:e.toAge,lateZi:e.lateZi!==!1,trueSolar:e.trueSolar!==!1,dst:e.dst!==!1,longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0});return{...i,precision:s.precision,summary:et(i)}}if(a==="fengshui"){const s=e.action==="advise"?"advise":e.action==="xuankong"?"xuankong":"natal";if(s==="xuankong"){const o=Zn({action:s,sitting:e.sitting,facing:e.facing,...e.period!==void 0?{period:e.period}:{},...Number.isInteger(e.fortuneYear)?{fortuneYear:e.fortuneYear}:{},...typeof e.sittingOffset=="number"?{sittingOffset:e.sittingOffset}:{},...typeof e.sittingDegree=="number"?{sittingDegree:e.sittingDegree}:{},...typeof e.facingOffset=="number"?{facingOffset:e.facingOffset}:{},...typeof e.facingDegree=="number"?{facingDegree:e.facingDegree}:{},...typeof e.fortuneDate=="string"?{fortuneDate:e.fortuneDate}:{},...typeof e.fortuneTime=="string"?{fortuneTime:e.fortuneTime}:{},dst:e.dst!==!1});return{...o,summary:W(o)}}if(s==="advise"){const o=Zn({action:s,sitting:e.sitting,facing:e.facing,...e.datetime?X(e.datetime):{},...e.gender==="male"||e.gender==="female"?{gender:e.gender}:{},dst:e.dst!==!1});return{...o,summary:W(o)}}const i=X(e.datetime),m=Zn({action:"natal",year:i.year,month:i.month,day:i.day,gender:N(e.gender),fortuneYear:Number.isInteger(e.fortuneYear)?e.fortuneYear:void 0,dst:e.dst!==!1});return{...m,summary:W(m)}}if(a==="name"){const s=e.action==="generate"?"generate":"assess",i=e.datetime?X(e.datetime):Number.isInteger(e.year)&&Number.isInteger(e.month)&&Number.isInteger(e.day)?{year:e.year,month:e.month,day:e.day,...Number.isInteger(e.hour)?{hour:e.hour}:{},...Number.isInteger(e.minute)?{minute:e.minute}:{}}:{},m=Vn({action:s,surname:e.surname,givenName:e.givenName,limit:e.limit,charElements:e.charElements&&typeof e.charElements=="object"?e.charElements:void 0,strokeOverrides:e.strokeOverrides&&typeof e.strokeOverrides=="object"?e.strokeOverrides:void 0,surnameStrokes:e.surnameStrokes&&typeof e.surnameStrokes=="object"?e.surnameStrokes:void 0,...i,...e.gender==="male"||e.gender==="female"?{gender:e.gender}:{},...e.datetime?{lateZi:e.lateZi!==!1,trueSolar:e.trueSolar!==!1,dst:e.dst!==!1,longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0}:{}});return{...m,summary:qe(m)}}throw a?c("E_SYSTEM",`未知体系「${a}」,可选:bazi(四柱八字)、ziwei(紫微斗数)、liuyao(六爻)、meihua(梅花易数)、daliuren(大六壬)、qimen(奇门遁甲)、hepan(合盘)、tarot(塔罗)、almanac(黄历)、zeri(择日)、chenggu(称骨)、xiaoliuren(小六壬)、star(星座)、numerology(生命数字)、mbti(十六型人格问卷)、trend(人生 K 线)、fengshui(风水)、name(起名)、convert(公农历互转)。`):c("E_INPUT","缺少 system,可选:bazi(四柱八字)、ziwei(紫微斗数)、liuyao(六爻)、meihua(梅花易数)、daliuren(大六壬)、qimen(奇门遁甲)、hepan(合盘)、tarot(塔罗)、almanac(黄历)、zeri(择日)、chenggu(称骨)、xiaoliuren(小六壬)、star(星座)、numerology(生命数字)、mbti(十六型人格问卷)、trend(人生 K 线)、fengshui(风水)、name(起名)、convert(公农历互转)。")}function Rn(e){const a=e.ganzhi,s=e.jieQi&&e.jieQi.next?` 下一节:${e.jieQi.next.name} ${e.jieQi.next.date}`:"",i=e.dayGod?`值日:${e.dayGod.name}(${e.dayGod.type}·${e.dayGod.luck})`:"",m=e.xiu?`二十八宿:${e.xiu.name}宿(${e.xiu.luck}·${e.xiu.zheng}·${e.xiu.animal})`:"",o=e.taiShen?`胎神:${e.taiShen}`:"",v=e.positions?`吉神方位:喜神${e.positions.xiShen||"—"} 财神${e.positions.caiShen||"—"} 福神${e.positions.fuShen?e.positions.fuShen.dir:"—"} 阳贵${e.positions.yangGui?e.positions.yangGui.dir:"—"} 阴贵${e.positions.yinGui?e.positions.yinGui.dir:"—"}`:"",V=e.lucky?`吉配生肖:六合${e.lucky.liuhe||"—"} 三合${(e.lucky.sanhe||[]).join("、")||"—"}`:"",Ne=e.nayin&&e.nayin.day?`日柱纳音:${e.nayin.day.name}`:"",Se=(e.hours||[]).map(L=>`${L.zhi}${L.ganZhi.slice(0,1)}·${L.shen}${L.luck==="吉"?"吉":"凶"}`).join(" ");return[`【黄历】${e.meta.date} ${e.meta.weekday} ${e.lunar.text}`,`干支:${a.year}年 ${a.month}月 ${a.day}日 属${a.shengXiao}`,...e.meta.boundaryNote?[` ${e.meta.boundaryNote}`]:[],`建除:${e.zhiXing}日 冲:${e.chong.text}${e.chong.sha?`(${e.chong.sha})`:""} ${i}`,[m,Ne,o].filter(Boolean).join(" "),`宜:${e.yi.join("、")}`,`忌:${e.ji.join("、")}`,v,V,Se?`时辰吉凶:${Se}`:"",`节气:上一节 ${e.jieQi.prev?`${e.jieQi.prev.name} ${e.jieQi.prev.date}`:"—"}${s}`,e.dailyHexagram?`每日一卦:${e.dailyHexagram.name} ${e.dailyHexagram.meaning||""}`:"",`口径:${e.meta.scope}`].filter(Boolean).join(`
|
|
138
|
-
`)
|
|
139
|
-
`)}function Pn(e){const a=e.song||{};return[`【称骨】${e.input.solar} ${e.lunar.text}`,`四项:${e.weights.year.label} ${e.weights.month.label} ${e.weights.day.label} ${e.weights.hour.label}`,`合计:${e.total.label}(${e.verdict.band})`,`歌诀(${e.total.label}):${a.text||"—"}`,`释义:${a.plain||"—"}`,`分档白话:${e.verdict.text}`,"口径:骨重与歌诀为通行本口径(各版本歌诀有异文),释义为白话自撰,属民俗娱乐参考。"].join(`
|
|
140
|
-
`)}function
|
|
141
|
-
`)}function
|
|
130
|
+
${i}`);const y=oe(a);if(y&&(a.suiyunClassic={...y,bookName:_e[y.book].name}),a.renyuan){const I=D("smt-renyuan");I&&(a.renyuanClassic={...I,bookName:_e[I.book].name})}}if(a&&a.precision&&a.precision.level==="approx"&&a.summary&&(a.summary=`⚠ ${a.precision.note}
|
|
131
|
+
${a.summary}`),a&&(a.system==="bazi"||a.system==="ziwei")&&a.input&&a.input.longitude==null&&a.summary&&(a.summary=`⚠ 未提供出生地或经度:按东八区平太阳时排盘,时柱可能与本命盘相差一个时辰;海外出生请先把当地时间换算成东八区标准时。
|
|
132
|
+
${a.summary}`),a&&a.system==="bazi"&&a.hourUnknown&&a.summary&&(a.summary=`时柱按正午暂算,涉及时柱的结论仅供参考
|
|
133
|
+
${a.summary}`),a&&a.system==="trend"&&a.hourUnknown&&a.summary&&(a.summary=`时柱暂缺:起运与大运按日估算,仅供参考
|
|
134
|
+
${a.summary}`),o.withInterpret&&(a.interpret=f(a,{question:typeof o.question=="string"?o.question:"",direction:typeof o.direction=="string"?o.direction:"general"})),o.cross===!0&&o.hourUnknown===!0&&(a.crossSkipped="HOUR_UNKNOWN"),o.cross===!0&&o.hourUnknown!==!0&&(a.system==="bazi"||a.system==="ziwei")){const y={...Z(o.datetime),gender:M(o.gender),longitude:typeof o.longitude=="number"?o.longitude:void 0,address:typeof o.address=="string"?o.address:void 0,geo:o.geo&&typeof o.geo=="object"?o.geo:void 0,trueSolar:o.trueSolar!==!1,dst:o.dst!==!1},I=Ln(o.asOf),ie=a.system==="bazi"?N({...y,leapMonth:o.leapMonth,leapAsNext:o.leapAsNext===!0,...te(o),asOf:I}):Y({...y,lateZi:o.lateZi!==!1,nowYear:I?I.year:void 0});a.cross=Ne(a.system==="bazi"?a:ie,a.system==="ziwei"?a:ie),a.interpret&&a.interpret.sections.push(an(a.cross))}if(Number.isInteger(o.verifyPast)&&o.verifyPast>0&&a.system==="bazi"){const i=Math.min(Math.max(o.verifyPast,1),10),y=Number(a.liunianFrom)-i,I=Y({...Z(o.datetime),gender:M(o.gender),lateZi:o.lateZi!==!1,trueSolar:o.trueSolar!==!1,longitude:typeof o.longitude=="number"?o.longitude:void 0,address:typeof o.address=="string"?o.address:void 0,geo:o.geo&&typeof o.geo=="object"?o.geo:void 0,dst:o.dst!==!1,nowYear:y});a.past={rows:Te(I,Number(a.liunianFrom)-1),years:i,until:Number(a.liunianFrom)-1}}if(o.rectify===!0&&a.system==="bazi"){const i=Z(o.datetime);a.rectify=fe({base:{year:i.year,month:i.month,day:i.day,minute:i.minute},gender:M(o.gender),events:Array.isArray(o.events)?o.events:[],hours:Array.isArray(o.rectifyHours)?o.rectifyHours:void 0,lateZi:o.lateZi!==!1,trueSolar:o.trueSolar!==!1,dst:o.dst!==!1,longitude:typeof o.longitude=="number"?o.longitude:void 0,address:typeof o.address=="string"?o.address:void 0,geo:o.geo&&typeof o.geo=="object"?o.geo:void 0})}if(typeof o.ask=="string"&&o.ask.trim()&&(a.followup=C(a,o.ask)),o.trace===!0)try{const i=et(a,{direction:o.direction,gender:o.gender});i&&(a.trace=i,a.traceText=nt(i,{system:a.system}))}catch(i){a.traceError=String(i&&i.message||i)}if(o.shadow===!0)try{a.shadow=jn(o,{result:a,version:o.shadowVersion})}catch(i){a.shadow={error:String(i&&i.message||i)}}try{const i=Ae(o);i&&(a.handle=i)}catch(i){a.handleError=String(i&&i.message||i)}return a}function Mn(e){if(!e)return"";const o=[`【${e.title||"解析与详解"}】${e.ask&&e.ask.echo?e.ask.echo:""}`];e.answer&&o.push(`▶ ${e.ask&&e.ask.question?"先答所问":"先看结论"}:${e.answer}`),e.plain&&o.push(`▶ 说人话:${e.plain}`),e.lead&&o.push(e.lead),Array.isArray(e.outline)&&e.outline.length&&o.push("一页读懂:"+e.outline.map(r=>`${r.label}·${r.text}`).join(" ")),e.error&&o.push(`⚠ 解析生成失败:${e.error}(上方盘面数据本身可用)`);for(const r of e.dimensions||[]){const a=Array.isArray(r.evidence)&&r.evidence.length?`
|
|
135
|
+
依据:${r.evidence.join(";")}${r.confidence?` 置信度:${r.confidence}`:""}`:"",i=r.plain?`(${r.plain})`:"",y=(r.knowledge||[]).map(I=>`
|
|
136
|
+
规则·${I.gist}〔${I.statusLabel}〕${I.detail} 出处:${I.source}${I.note?` 注:${I.note}`:""}`).join("");o.push(`${r.label}:${i}${r.text}${r.advice?` 建议:${r.advice}`:""}${a}${y}`)}for(const r of e.sections||[])o.push(`${r.label}:${r.text}`);for(const r of e.tables||[])!Array.isArray(r.rows)||!r.rows.length||(o.push(`【${r.title}】`),o.push([r.columns.join(" | "),...r.rows.map(a=>a.join(" | "))].join(`
|
|
137
|
+
`)));return Array.isArray(e.followups)&&e.followups.length&&o.push("还可以这样追问:"+e.followups.map(r=>`「${r}」`).join(" ")),Array.isArray(e.glossary)&&e.glossary.length&&o.push("名词解释:"+e.glossary.map(r=>`${r.term}=${r.plain}`).join(" ")),Array.isArray(e.limits)&&e.limits.length&&o.push("【本插件不回答什么】"+e.limits.map(r=>`${r.title}——${r.text}`).join(`
|
|
138
|
+
`)),e.disclaimer&&o.push(e.disclaimer),o.join(`
|
|
139
|
+
`)}const Re=["cross","verifyPast","withInterpret","question","direction","ask","geocode","rectify","events","shadow","trace"];function sn(e={},o={}){const r=o.system||e.system,a=o.switches||Jn[r]||[];if(!a.length)return{system:r,switches:[],affected:0,total:0};const i={...e};for(const I of Re)delete i[I];const y=a.map(I=>{const ie=I.read(i),ke=I.alt(ie);let K=[],re="",Ke=null,pe=null;try{Ke=In({...i,[I.key]:ie}),pe=In({...i,[I.key]:ke}),K=Oe(Ke,pe)}catch(Q){re=Q&&Q.message||String(Q)}const Qe=ue(K.filter(Q=>ln(Q.path))).map(Q=>({path:Q.path,label:We(Q.path),from:Pn(Q.from),to:Pn(Q.to)})),Tn=new Map;for(const Q of K){const Ee=wn(Q.path)||"其他";Tn.set(Ee,(Tn.get(Ee)||0)+1)}const yn=[...Tn.entries()].map(([Q,Ee])=>({name:Q,count:Ee})).sort((Q,Ee)=>Ee.count-Q.count||Q.name.localeCompare(Ee.name,"zh-Hans-CN"));return{key:I.key,title:I.title,short:I.short,current:ie,alt:ke,currentLabel:I.label(ie),altLabel:I.label(ke),total:K.length,summary:re?"":Le(K),views:re?[]:gn(r,Ke,pe),roots:Qe,categories:yn,error:re}});return{system:r,switches:y,affected:y.filter(I=>!I.error&&I.total>0).length,total:y.reduce((I,ie)=>I+ie.total,0)}}const An=["chaibu","chaoshen","zhirun"],Rn=[1,3,5],Nn=["same-day","next-day"];function Ln(e){if(e==null||e==="")return;const o=g(e);if(!o)throw l("E_ASOF",`无法解析 asOf:「${e}」,请用 2026-10-22T16:00 这种格式`);const{year:r,month:a,day:i}=o;if(!(a>=1&&a<=12)||!(i>=1&&i<=$(r,a)))throw l("E_ASOF",`asOf 指向的日期不存在:${e}`);return o}function Hn(e={}){const o=e.system;if(o==="bazi"){const r=Z(e.datetime),a=Ln(e.asOf),i=Y({...r,gender:M(e.gender),longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0,lateZi:e.lateZi!==!1,trueSolar:e.trueSolar!==!1,dst:e.dst!==!1,nowYear:a?a.year:void 0,hourUnknown:e.hourUnknown===!0});return{...i,...a?{asOf:a}:{},precision:r.precision,summary:we(i)}}if(o==="ziwei"){if(e.hourUnknown===!0)throw l("HOUR_UNKNOWN","紫微必须有出生时刻:命宫由生月与生时支定,时支未知则整盘不成立。请补上出生时刻,或改用八字三柱模式只看年/月/日。");const r=Z(e.datetime),a=Ln(e.asOf),i=N({...r,gender:M(e.gender),leapMonth:e.leapMonth,leapAsNext:e.leapAsNext===!0,...te(e),longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0,trueSolar:e.trueSolar,dst:e.dst!==!1,asOf:a});return{...i,precision:r.precision,summary:W(i)}}if(o==="tarot"){const r=e.count===void 0||e.count===null||e.count===""?3:Number(e.count);if(!Rn.includes(r))throw l("E_COUNT",`塔罗张数只能是 1 / 3 / 5,收到「${e.count}」`);if(!be(e.seed))throw l("E_INPUT",`seed 必须是数字,收到「${e.seed}」`);const a=Ln(e.asOf),i=G({count:r,question:e.question,at:e.asOf,random:ce(e.seed)});return e.seed!==void 0&&e.seed!==null&&e.seed!==""&&(i.seed=Number(e.seed)),{...i,...a?{asOf:a}:{},summary:hn(i)}}if(o==="daliuren"){const r=Z(e.datetime),a=e.lateZi!==!1,i=k({...r,lateZi:a});return i.lateZi=a,{...i,precision:r.precision,summary:Ge(i)}}if(o==="qimen"){const r=Z(e.datetime);if(e.juMethod!==void 0&&!An.includes(e.juMethod))throw l("E_INPUT",`juMethod 只能是 chaibu / chaoshen / zhirun,收到「${e.juMethod}」`);const a=e.lateZiHourMode!==void 0?e.lateZiHourMode:e.lateZi===!0?"next-day":e.lateZi===!1?"same-day":void 0;if(a!==void 0&&!Nn.includes(a))throw l("E_INPUT",`lateZiHourMode 只能是 same-day / next-day,收到「${a}」`);const i=a==="next-day"?"next-day":"same-day",y=d({...r,lateZiHourMode:i,juMethod:e.juMethod});return y.lateZiHourMode=i,{...y,summary:xe(y)}}if(o==="hepan"){if(e.hourUnknown===!0||e.partner&&e.partner.hourUnknown===!0)throw l("HOUR_UNKNOWN","合盘需要双方都有出生时刻:夫妻宫与大运都依赖时支。请补齐时刻后再看,或用八字三柱模式各自看年/月/日。");const r=e.partner;if(!r||typeof r!="object")throw l("E_PARTNER","合盘需要 partner:{ datetime, gender, address? },其中 partner.datetime 是对方的公历出生时间");if(!r.datetime)throw l("E_PARTNER",'缺少 partner.datetime(对方的公历出生时间),例如 partner: {"datetime":"1992-03-03T10:00","gender":"female"}');const a=e.partner2;if(a!=null){if(typeof a!="object"||Array.isArray(a))throw l("E_PARTNER","partner2 需要 { datetime, gender, address? };不想看三方就整段省略(null 视同未传)");if(!a.datetime)throw l("E_PARTNER",'缺少 partner2.datetime(第三方的公历出生时间),例如 partner2: {"datetime":"1988-09-09T08:00","gender":"male"}')}const i=e.chart==="ziwei"?"ziwei":"bazi",y=(re,Ke)=>({...Z(re.datetime),gender:M(re.gender,Ke),trueSolar:re.trueSolar,lateZi:re.lateZi,dst:re.dst!==!1,address:typeof re.address=="string"?re.address:void 0,longitude:typeof re.longitude=="number"?re.longitude:void 0,geo:re.geo&&typeof re.geo=="object"?re.geo:void 0}),I=y(e,"你(主方)"),ie=y(r,"对方"),ke=(re,Ke)=>i==="ziwei"?t({a:re,b:Ke}):T({a:re,b:Ke}),K=ke(I,ie);if(a){const re=y(a,"第三方");K.triple=s([{key:"a-b",a:"你",b:"对方",result:K},{key:"a-c",a:"你",b:"第三方",result:ke(I,re)},{key:"b-c",a:"对方",b:"第三方",result:ke(ie,re)}])}return{...K,summary:O(K)}}if(o==="meihua"){let r;try{r=J({mode:e.mode==="number"?"number":"time",datetime:e.datetime,upper:e.upper,lower:e.lower,changing:e.changing})}catch(a){throw l("E_INPUT",`梅花起卦参数不完整:${a&&a.message?a.message:a}`)}return{...r,summary:he(r)}}if(o==="liuyao"){if(!be(e.seed))throw l("E_INPUT",`seed 必须是数字,收到「${e.seed}」`);let r;if(e.lines===void 0||e.lines===null)r=Se(ce(e.seed));else{if(!Array.isArray(e.lines))throw l("E_LINES","lines 必须是数组:自下而上 6 个爻值(6 老阴 / 7 少阳 / 8 少阴 / 9 老阳)");if(e.lines.length!==6)throw l("E_LINES",`六爻需要正好 6 个爻值(自下而上),收到 ${e.lines.length} 个;留空则由引擎随机摇卦`);r=e.lines.map(Number)}let a,i=null;const y=e.datetime?Z(e.datetime):Ln(e.asOf);if(y){e.datetime||(i=y);const Ke=j(_(p(y.year,y.month,y.day)));a={stem:Ke.stem,branch:Ke.branch,name:Ke.name}}let I;try{I=A({lines:r,question:e.question,dayGanZhi:a})}catch(Ke){throw l("E_LINES",Ke&&Ke.message?Ke.message:Ke)}const ie=me(I,{direction:e.direction,gender:e.gender});ie.liuqin&&(I.useGod=ie);let ke=null;if(y)try{ke=(n({year:y.year,month:y.month,day:y.day,hour:y.hour,minute:y.minute}).monthGanZhi||"")[1]||null}catch{ke=null}const K=c(I,{monthBranch:ke,dayBranch:I.dayGanZhi.branch});K&&(I.hexStrength=K);const re=q(I,{monthBranch:ke,dayBranch:I.dayGanZhi.branch});if(re&&(I.jinTuiPower=re),ie.liuqin){const Ke=B(I,ie,{monthBranch:ke,dayBranch:I.dayGanZhi.branch});Ke&&(I.useGodStrength=Ke);const pe=U(I,ie,{monthBranch:ke,dayBranch:I.dayGanZhi.branch});pe&&(I.fushenAccess=pe);const Qe=P(I,ie,{monthBranch:ke});Qe&&(I.yingqi=Qe)}return e.seed!==void 0&&e.seed!==null&&e.seed!==""&&(I.seed=Number(e.seed)),{...I,...i?{asOf:i}:{},summary:Ce(I)}}if(o==="almanac"){const r=Z(e.datetime),a=nn({year:r.year,month:r.month,day:r.day});return{...a,summary:_n(a)}}if(o==="zeri"){if(!(e.candidates!==void 0&&e.candidates!==null)&&(typeof e.startDate!="string"||!e.startDate.trim()))throw l("E_INPUT",'择日需要 startDate(公历 YYYY-MM-DD,起算日);可另给 days(1–60,默认 30)与 shengXiao(当事人属相)。只想比几天,改给 candidates: ["2026-12-01","2026-12-08"]');let a;try{a=bn({task:e.task,startDate:e.startDate,days:e.days,shengXiao:e.shengXiao,candidates:e.candidates})}catch(i){throw l("E_INPUT",i&&i.message||String(i))}return{...a,summary:Bn(a)}}if(o==="chenggu"){const r=Z(e.datetime),a=/[T\s]\d{1,2}:\d{1,2}/.test(String(e.datetime)),i=Number.isInteger(e.hour)?e.hour:a?r.hour:null;if(i===null||i<0||i>23)throw l("E_INPUT","称骨必须给时辰:datetime 带时分(如 1990-08-15T10:00),或额外给 hour(0–23)——缺时辰四柱不齐");const y=ye({year:r.year,month:r.month,day:r.day,hour:i,minute:a?r.minute:0});return{...y,summary:Dn(y)}}if(o==="convert"){const r=e.mode==="lunar2solar"?"lunar2solar":"solar2lunar";let a;if(r==="lunar2solar"){if(e.lunarYear==null||e.lunarMonth==null||e.lunarDay==null)throw l("E_INPUT","农历转公历需要 lunarYear / lunarMonth / lunarDay(闰月另加 isLeapMonth: true)");a=un({mode:r,lunarYear:Number(e.lunarYear),lunarMonth:Number(e.lunarMonth),lunarDay:Number(e.lunarDay),isLeapMonth:e.isLeapMonth===!0})}else{const i=Z(e.datetime);a=un({mode:r,year:i.year,month:i.month,day:i.day})}return{...a,summary:Un(a)}}if(o==="xiaoliuren"){const r=e.datetime?Z(e.datetime):null,a=Ye({mode:e.mode==="number"?"number":"time",date:typeof e.date=="string"&&e.date.trim()?e.date:r?`${r.year}-${r.month}-${r.day}`:void 0,hour:Number.isInteger(e.hour)?e.hour:r&&/[T\s]\d{1,2}:\d{1,2}/.test(String(e.datetime))?r.hour:void 0,num1:e.num1,num2:e.num2,num3:e.num3,question:e.question});return{...a,summary:cn(a)}}if(o==="star"){const r=Z(e.datetime),a=Fe({year:r.year,month:r.month,day:r.day});return{...a,summary:Yn(a)}}if(o==="numerology"){const r=Z(e.datetime),a=on({year:r.year,month:r.month,day:r.day});return{...a,summary:Xn(a)}}if(o==="mbti"){if(e.answers===void 0||e.answers===null){const a=Ue();return{...a,summary:Zn(a)}}const r=De({answers:e.answers});return{...r,summary:Vn(r)}}if(o==="trend"){const r=Z(e.datetime),a=e.asOf?Ln(e.asOf):void 0,i=Wn({...r,nowYear:a?a.year:void 0,gender:M(e.gender),toAge:e.toAge,lateZi:e.lateZi!==!1,trueSolar:e.trueSolar!==!1,dst:e.dst!==!1,longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0,hourUnknown:e.hourUnknown===!0});return{...i,...e.hourUnknown===!0?{hourUnknown:!0,hourPrecision:"day"}:{},precision:r.precision,summary:Fn(i)}}if(o==="fengshui"){const r=e.action==="advise"?"advise":e.action==="xuankong"?"xuankong":"natal";if(r==="xuankong"){const y=Kn({action:r,sitting:e.sitting,facing:e.facing,...e.period!==void 0?{period:e.period}:{},...Number.isInteger(e.fortuneYear)?{fortuneYear:e.fortuneYear}:{},...typeof e.sittingOffset=="number"?{sittingOffset:e.sittingOffset}:{},...typeof e.sittingDegree=="number"?{sittingDegree:e.sittingDegree}:{},...typeof e.facingOffset=="number"?{facingOffset:e.facingOffset}:{},...typeof e.facingDegree=="number"?{facingDegree:e.facingDegree}:{},...typeof e.fortuneDate=="string"?{fortuneDate:e.fortuneDate}:{},...typeof e.fortuneTime=="string"?{fortuneTime:e.fortuneTime}:{},dst:e.dst!==!1});return{...y,summary:ne(y)}}if(r==="advise"){const y=Kn({action:r,sitting:e.sitting,facing:e.facing,...e.datetime?Z(e.datetime):{},...e.gender==="male"||e.gender==="female"?{gender:e.gender}:{},dst:e.dst!==!1});return{...y,summary:ne(y)}}const a=Z(e.datetime),i=Kn({action:"natal",year:a.year,month:a.month,day:a.day,gender:M(e.gender),fortuneYear:Number.isInteger(e.fortuneYear)?e.fortuneYear:void 0,dst:e.dst!==!1});return{...i,summary:ne(i)}}if(o==="name"){const r=e.action==="generate"?"generate":"assess",a=e.datetime?Z(e.datetime):Number.isInteger(e.year)&&Number.isInteger(e.month)&&Number.isInteger(e.day)?{year:e.year,month:e.month,day:e.day,...Number.isInteger(e.hour)?{hour:e.hour}:{},...Number.isInteger(e.minute)?{minute:e.minute}:{}}:{},i=tt({action:r,surname:e.surname,givenName:e.givenName,limit:e.limit,charElements:e.charElements&&typeof e.charElements=="object"?e.charElements:void 0,strokeOverrides:e.strokeOverrides&&typeof e.strokeOverrides=="object"?e.strokeOverrides:void 0,surnameStrokes:e.surnameStrokes&&typeof e.surnameStrokes=="object"?e.surnameStrokes:void 0,...a,...e.gender==="male"||e.gender==="female"?{gender:e.gender}:{},...e.datetime?{lateZi:e.lateZi!==!1,trueSolar:e.trueSolar!==!1,dst:e.dst!==!1,longitude:typeof e.longitude=="number"?e.longitude:void 0,address:typeof e.address=="string"?e.address:void 0,geo:e.geo&&typeof e.geo=="object"?e.geo:void 0}:{}});return{...i,summary:Ie(i)}}throw o?l("E_SYSTEM",`未知体系「${o}」,可选:bazi(四柱八字)、ziwei(紫微斗数)、liuyao(六爻)、meihua(梅花易数)、daliuren(大六壬)、qimen(奇门遁甲)、hepan(合盘)、tarot(塔罗)、almanac(黄历)、zeri(择日)、chenggu(称骨)、xiaoliuren(小六壬)、star(星座)、numerology(生命数字)、mbti(十六型人格问卷)、trend(人生 K 线)、fengshui(风水)、name(起名)、convert(公农历互转)。`):l("E_INPUT","缺少 system,可选:bazi(四柱八字)、ziwei(紫微斗数)、liuyao(六爻)、meihua(梅花易数)、daliuren(大六壬)、qimen(奇门遁甲)、hepan(合盘)、tarot(塔罗)、almanac(黄历)、zeri(择日)、chenggu(称骨)、xiaoliuren(小六壬)、star(星座)、numerology(生命数字)、mbti(十六型人格问卷)、trend(人生 K 线)、fengshui(风水)、name(起名)、convert(公农历互转)。")}function _n(e){const o=e.ganzhi,r=e.jieQi&&e.jieQi.next?` 下一节:${e.jieQi.next.name} ${e.jieQi.next.date}`:"",a=e.dayGod?`值日:${e.dayGod.name}(${e.dayGod.type}·${e.dayGod.luck})`:"",i=e.xiu?`二十八宿:${e.xiu.name}宿(${e.xiu.luck}·${e.xiu.zheng}·${e.xiu.animal})`:"",y=e.taiShen?`胎神:${e.taiShen}`:"",I=e.positions?`吉神方位:喜神${e.positions.xiShen||"—"} 财神${e.positions.caiShen||"—"} 福神${e.positions.fuShen?e.positions.fuShen.dir:"—"} 阳贵${e.positions.yangGui?e.positions.yangGui.dir:"—"} 阴贵${e.positions.yinGui?e.positions.yinGui.dir:"—"}`:"",ie=e.lucky?`吉配生肖:六合${e.lucky.liuhe||"—"} 三合${(e.lucky.sanhe||[]).join("、")||"—"}`:"",ke=e.nayin&&e.nayin.day?`日柱纳音:${e.nayin.day.name}`:"",K=(e.hours||[]).map(re=>`${re.zhi}${re.ganZhi.slice(0,1)}·${re.shen}${re.luck==="吉"?"吉":"凶"}`).join(" ");return[`【黄历】${e.meta.date} ${e.meta.weekday} ${e.lunar.text}`,`干支:${o.year}年 ${o.month}月 ${o.day}日 属${o.shengXiao}`,...e.meta.boundaryNote?[` ${e.meta.boundaryNote}`]:[],`建除:${e.zhiXing}日 冲:${e.chong.text}${e.chong.sha?`(${e.chong.sha})`:""} ${a}`,[i,ke,y].filter(Boolean).join(" "),`宜:${e.yi.join("、")}`,`忌:${e.ji.join("、")}`,I,ie,K?`时辰吉凶:${K}`:"",`节气:上一节 ${e.jieQi.prev?`${e.jieQi.prev.name} ${e.jieQi.prev.date}`:"—"}${r}`,e.dailyHexagram?`每日一卦:${e.dailyHexagram.name} ${e.dailyHexagram.meaning||""}`:"",`口径:${e.meta.scope}`].filter(Boolean).join(`
|
|
140
|
+
`)}function Bn(e){const o=e.compare&&e.compare.mode==="candidates",r=o?`【择日·${e.meta.task}】候选 ${e.meta.days} 天:${e.meta.candidates.join("、")}${e.meta.shengXiao?` 当事人属${e.meta.shengXiao}`:"(未给属相,未做冲煞排除)"}`:`【择日·${e.meta.task}】${e.meta.startDate} 起 ${e.meta.days} 天${e.meta.shengXiao?` 当事人属${e.meta.shengXiao}`:"(未给属相,未做冲煞排除)"}`,a=e.days.slice().sort((y,I)=>I.score-y.score).slice(0,o?12:5).map(y=>`· ${y.date} ${y.weekday} ${y.verdict}(${y.score}分) 宜${y.yi.slice(0,3).join("/")} ${y.reasons.join(";")||"无特别加减分"}`),i=o?e.compare.best?`这一组里最优:${e.compare.best.date}(${e.compare.best.score}分,${e.compare.best.verdict})`+(e.compare.best.ties.length>1?`;同分:${e.compare.best.ties.filter(y=>y!==e.compare.best.date).join("、")}`:""):"这一组都因冲属相被排除,没有可用的日子":`推荐日:${e.best.length?e.best.join("、"):"本期无(都不够推荐分)"}`;return[r,i,`推荐日:${e.best.length?e.best.join("、"):"无"}`,`可用日:${e.usable.length?e.usable.join("、"):"无"}`,`回避日:${e.avoid.length?e.avoid.slice(0,6).join("、"):"无"}`,o?"候选日逐日:":"逐日排序:",...a,...o?[`比较口径:${e.compare.note}`]:[],`口径:${e.meta.scope}`].join(`
|
|
141
|
+
`)}function Dn(e){const o=e.song||{};return[`【称骨】${e.input.solar} ${e.lunar.text}`,`四项:${e.weights.year.label} ${e.weights.month.label} ${e.weights.day.label} ${e.weights.hour.label}`,`合计:${e.total.label}(${e.verdict.band})`,`歌诀(${e.total.label}):${o.text||"—"}`,`释义:${o.plain||"—"}`,`分档白话:${e.verdict.text}`,"口径:骨重与歌诀为通行本口径(各版本歌诀有异文),释义为白话自撰,属民俗娱乐参考。"].join(`
|
|
142
|
+
`)}function cn(e){return[`【小六壬·${e.meta.mode}】${e.meta.question?`所问:${e.meta.question}`:""}`,e.meta.originText,`落宫:${e.steps.join(" → ")}`,`断语:${e.result.palace}(${e.result.luck}) ${e.result.text}`].join(`
|
|
143
|
+
`)}function Yn(e){return[`【星座】${e.meta.date} ${e.sign.name}(${e.sign.element}·守护星${e.sign.planet})`,`区间:${e.sign.range} 关键词:${e.sign.keywords} 契合:${e.sign.compatible}`,`当日基调:${e.daily.tone}`,e.daily.dims.map(o=>`· ${o.name}:${"★".repeat(o.stars)}${"☆".repeat(5-o.stars)} ${o.text}`).join(`
|
|
142
144
|
`),`幸运色:${e.daily.luckyColor} 幸运数字:${e.daily.luckyNumber}`,"口径:当日基调由日期哈希确定性生成(同日同结果),纯娱乐向。"].join(`
|
|
143
|
-
`)}function
|
|
144
|
-
`)}function
|
|
145
|
-
倾向:${
|
|
146
|
-
课题:${
|
|
147
|
-
`)}function
|
|
148
|
-
${
|
|
149
|
-
`)}`:"";return[`【十六型人格】${e.type}(${
|
|
150
|
-
`)}function
|
|
151
|
-
`)}function
|
|
145
|
+
`)}function Un(e){const o=e.ganzhi;return[`【公农历转换·${e.meta.mode==="lunar2solar"?"农历 → 公历":"公历 → 农历"}】${e.lunar.text} ⇄ ${e.solar.text} ${e.meta.weekday}`,`干支:${o.year}年 ${o.month}月 ${o.day}日 属${o.shengXiao}${o.springYear&&o.springYear!==o.year?`(春节界为${o.springYear}年)`:""}`,...e.meta.note?[`注:${e.meta.note}`]:[],`口径:${e.meta.scope}`].join(`
|
|
146
|
+
`)}function Xn(e){return[`【生命数字】${e.meta.date}(西方数字学,与八字/紫微不可互证)`,...e.parts.map(o=>`${o.name}:${o.number}(${o.meaning.title}) ${o.meaning.keywords}
|
|
147
|
+
倾向:${o.meaning.tendency}
|
|
148
|
+
课题:${o.meaning.lesson}`)].join(`
|
|
149
|
+
`)}function Vn(e){const o=e.dims.map(i=>{const y=i.picked===i.left?i.leftSay:i.rightSay,I=Math.round(i.pct*100);return`${i.left}/${i.right} 取 ${i.picked}(${i.strength} ${I}%,净分 ${i.sum}) ${y}`}),r=e.profile,a=Array.isArray(r.stack)&&r.stack.length?r.stack.map((i,y)=>`${y===0?"主导 ":""}${i.code}`).join(" → ")+`
|
|
150
|
+
${r.stack.map(i=>`${i.code}:${i.say}`).join(`
|
|
151
|
+
`)}`:"";return[`【十六型人格】${e.type}(${r.title})· ${r.keywords} 已答 ${e.answered}/${e.total} 题`,`一句:${r.oneLine}`,"【四维】",...o,`【优势】${r.strengths.join(";")}`,`【留意】${r.blindspots.join(";")}`,`【课题】${r.growth}`,`【认知功能】${a}`,`【工作】${r.work}`,`【关系】${r.love}`,`【学习】${r.study}`,`注:${e.note}`].join(`
|
|
152
|
+
`)}function Zn(e){return[`【十六型人格问卷】${e.total} 题,每题按 1(完全不像我)到 5(很像我)打分`,...e.questions.map(o=>`${o.no}. ${o.text}`),`请把 ${e.total} 个分数按顺序交给 answers(如 [4,2,5,3,…]);可以跳过某些题(填 null),至少答 12 题。`,`注:${e.note}`].join(`
|
|
153
|
+
`)}function Fn(e){const o=e.meta.strength,r=e.meta.dayMaster,a=r&&typeof r=="object"?`${r.stem}(${r.element})`:String(r||"");return[`【人生 K 线】${e.meta.birth} ${e.meta.gender} 日主 ${a} 旺衰 ${o.level}(${o.score})`,e.meta.boundaryNote?`※ ${e.meta.boundaryNote}`:"",`【大运分段】${e.segments.map(i=>`${i.ganZhi} ${i.startAge}-${i.endAge}岁`).join(" ")}`,`【走势】${Array.isArray(e.sparkline)?e.sparkline.join(" "):e.sparkline}`,...e.highlights&&e.highlights.best&&e.highlights.best.length?[`【关键年】最佳 ${e.highlights.best.join(";")}${e.highlights.worst&&e.highlights.worst.length?`
|
|
152
154
|
最需留意 ${e.highlights.worst.join(";")}`:""}`]:[],`※ ${e.disclaimer}`].filter(Boolean).join(`
|
|
153
|
-
`)}function
|
|
154
|
-
`)}if(e.meta.action==="advise"){const
|
|
155
|
-
`)}const
|
|
156
|
-
`)}function
|
|
157
|
-
`);const
|
|
158
|
-
`)}function
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
${
|
|
173
|
-
`
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
155
|
+
`)}function ne(e){if(e.meta.action==="xuankong"){const r=e.meta.period,a=K=>{const re=e.palaces.find(Ke=>Ke.palace===K);return`${K}${re.yun}/${re.shan}/${re.xiang}`},i=K=>K.map(a).join(" "),y=e.wangShanWangXiang,I=e.meta.jianXiang,ie=e.timeFlying,ke=ie?`【年月日时】${[["year","年"],["month","月"],["day","日"],["hour","时"]].filter(([K])=>ie[K]).map(([K,re])=>`${re}${ie[K].centerName}${ie[K].fly?`·${ie[K].fly}`:""}`).join(" ")}${ie.meta&&ie.meta.note?`(${ie.meta.note})`:""}`:"";return[`【玄空】${e.meta.periodLabel}${I&&I.active?"·替卦":"·下卦"} 坐 ${e.meta.sitting} 向 ${e.meta.facing}`,...I&&I.active?[`【替卦】${I.note}`]:[],`【入中】山盘 ${e.meta.shanCenter.star}${e.meta.shanCenter.name}(${e.meta.shanCenter.fly},${e.meta.shanCenter.basis}${e.meta.shanCenter.mode==="替卦"?`;原运星 ${e.meta.shanCenter.original}${e.meta.shanCenter.replaced?",已替":",用替而未替"}`:""});向盘 ${e.meta.xiangCenter.star}${e.meta.xiangCenter.name}(${e.meta.xiangCenter.fly},${e.meta.xiangCenter.basis}${e.meta.xiangCenter.mode==="替卦"?`;原运星 ${e.meta.xiangCenter.original}${e.meta.xiangCenter.replaced?",已替":",用替而未替"}`:""})`,`【九宫】${i(["巽","离","坤"])}|${i(["震","中","兑"])}|${i(["艮","坎","乾"])}`,`【当运】山星${r}到${e.dangYun.shan.text};向星${r}到${e.dangYun.xiang.text}`,`【表法】${y.byTable===null?"替卦不套正向表;":""}${y.table.length?y.table.join("、"):"无"};${y.note}`,`【合十】山星合十 ${e.heshi.shan.join("、")||"无"};向星合十 ${e.heshi.xiang.join("、")||"无"}`,...ke?[ke]:[],...e.meta.note?[`※ ${e.meta.note}`]:[],`※ ${e.disclaimer}`].join(`
|
|
156
|
+
`)}if(e.meta.action==="advise"){const r=e.mingMatch?[`【命宅配】${e.mingMatch.text}`]:[`※ ${e.meta.birthNote||"未提供生辰,未做命宅配。"}`];return[`【宅卦】坐 ${e.meta.sitting} 向 ${e.meta.facing} ${e.meta.houseGua}宅(${e.meta.houseGroup})`,`【八星】${e.houseStars.map(a=>`${a.star}·${a.direction}${a.palace?`(${a.palace})`:""}`).join(" ")}`,`【门】${e.layout.door}`,`【灶】${e.layout.stove}`,`【床】${e.layout.bed}`,`【厕】${e.layout.toilet}`,...r,`※ ${e.disclaimer}`].join(`
|
|
157
|
+
`)}const o=e.mingGua;return[`【命卦】${o.num}${o.gua}(${o.group}) 方位 ${o.direction}`,`【四吉】${e.luckyDirections.map(r=>`${r.star}·${r.direction}${r.palace?`(${r.palace})`:""}`).join(" ")}`,`【四凶】${e.unluckyDirections.map(r=>`${r.star}·${r.direction}`).join(" ")}`,...e.yearlyFlying?[`【${e.meta.fortuneYear} 年九宫飞星】中宫 ${e.yearlyFlying.centerName};${e.yearlyFlying.palaces.filter(r=>r.palace!=="中").map(r=>`${r.palace}${r.name}`).join(" ")}`]:[`※ ${e.meta.note||""}`],`※ ${e.disclaimer}`].filter(Boolean).join(`
|
|
158
|
+
`)}function Ie(e){if(e.action==="generate")return[`【候选名】姓 ${e.surname}(${e.gender},喜用 ${e.bazi.favorable.join("、")})${e.bazi.basis}`,...e.candidates.map(ie=>{const ke=ie.wuge&&ie.wuge.available?` 五格 ${ie.wuge.summary}`:"",K=ie.phonetics&&ie.phonetics.available?` 音韵 ${ie.phonetics.level}(${ie.phonetics.tonePattern})`:"";return`${ie.rank}. ${ie.name} ${ie.chars.map(re=>`${re.char}(${re.element})${re.meaning}`).join(" ")}${ke}${K}`}),...e.notes.map(ie=>`※ ${ie}`)].join(`
|
|
159
|
+
`);const o=ie=>ie.source==="lib"?"字库":ie.source==="user"?"用户指定":"未收录",r=ie=>{const ke=ie.element==="未收录"?"未收录(不猜五行)":`${ie.element}(${o(ie)})`,K=ie.favorable===!0?"合喜用":ie.favorable===!1?"不合喜用":"不判",re=ie.suggest&&ie.suggest.length?` 可换:${ie.suggest.map(Ke=>`${Ke.char}(${Ke.element})`).join("、")}`:"";return`· ${ie.char}:${ke}|${K}|${ie.meaning}${re}`},a=e.wuge,i=a&&a.available?`【五格】${a.strokes.map(ie=>`${ie.char}${ie.strokes}画`).join("+")}|${a.summary}|三才 ${a.sancai.text}`:`【五格】${a?a.reason:"未算"}`,y=e.phonetics,I=y&&y.available?`【音韵】${y.chars.map(ie=>`${ie.char}${ie.py}${ie.tone}`).join(" ")}|声调 ${y.tonePattern}|${y.level}${y.issues.length?`:${y.issues.map(ie=>ie.text).join(";")}`:""}`:`【音韵】${y?y.reason:"未算"}`;return[`【名字评估】${e.fullName}`,...e.chars.map(r),e.bazi?`【八字】日主 ${e.bazi.dayMaster&&e.bazi.dayMaster.stem?`${e.bazi.dayMaster.stem}(${e.bazi.dayMaster.element})`:e.bazi.dayMaster},旺衰 ${e.bazi.strength.level}(${e.bazi.strength.score}),${e.bazi.basis}`:"",i,I,`【结论】${e.verdict}`,...e.notes.map(ie=>`※ ${ie}`)].filter(Boolean).join(`
|
|
160
|
+
`)}function rn(e){const o=e.summary??JSON.stringify(e,null,2),r=`
|
|
161
|
+
`,i=[(e.brief?["【先说结论】"+e.brief.lead].concat((e.brief.sections||[]).map(y=>[" ",y.h,":",y.t].join(""))).concat((e.brief.advice||[]).length?[" 可以试着做的:"+e.brief.advice.map(y=>String(y).replace(/。$/,"")).join(";")+"。"]:[]).concat(e.brief.caveat?[" ※ "+e.brief.caveat]:[]).join(r)+r:"")+o];if(e.shadow&&e.shadow.id){const y=e.shadow;i.push(`【影子盘】${y.id}(同参数同 ID;版本 ${y.version})
|
|
162
|
+
基础指纹 ${y.baseId}(不含版本,跨版本可比对)`+(y.reproducible===!1?`
|
|
163
|
+
⚠ 不可复算:${y.reason}`:"")+(y.reproducible===!0&&y.asOfPinned===!1&&(y.system==="bazi"||y.system==="ziwei")?`
|
|
164
|
+
提示:未固定 asOf,流年/流月随「此刻」变化;要比对请传 asOf。`:""))}if(e.revision&&((e.revision.applied||[]).length||(e.revision.ignored||[]).length)){const y=e.revision,I=(y.applied||[]).map(ie=>`${ie.label}:${ie.fromDisplay==null?"(未设)":ie.fromDisplay} → ${ie.display}`);i.push(`【改参】${y.text}${I.length?`
|
|
165
|
+
${I.join(";")}`:`
|
|
166
|
+
没有识别到可改的参数,仍按原参数排盘`}`+((y.ignored||[]).length?`
|
|
167
|
+
未处理:${y.ignored.join(";")}`:""))}if(typeof e.handle=="string"&&e.handle&&i.push(`【排盘句柄】${e.handle}
|
|
168
|
+
追问同一张盘:传 handle + 增量参数(asOf / direction / question,或换 system 看另一套盘),不必重报出生信息。`),Array.isArray(e.trace)&&e.trace.length&&i.push(`【推导链】${it[e.system]||e.system} · ${e.trace.length} 层
|
|
169
|
+
`+e.trace.map((y,I)=>`${I+1}. ${y.field}|${y.result}
|
|
170
|
+
规则:${y.rule} 出处:${y.source}`).join(`
|
|
171
|
+
`)),e.interpret){const y=Mn(e.interpret);y&&i.push(y)}if(e.cross&&i.push(`【八字 × 紫微 交叉验证】
|
|
172
|
+
${Me(e.cross)}`),e.caliber&&Array.isArray(e.caliber.switches)&&e.caliber.switches.length){const y=e.caliber;i.push(`【口径对照】同一组输入,只换一个口径(不判哪套更准,也不改盘面)
|
|
173
|
+
`+y.switches.map(I=>{if(I.error)return`· ${I.title}:未能对照(${I.error})`;if(!I.total)return`· ${I.title}:${I.currentLabel} → ${I.altLabel},本盘无变化`;const ie=(Array.isArray(I.views)?I.views:[]).filter(K=>K.changed),ke=ie.length?`
|
|
174
|
+
并排:${ie.map(K=>`${K.label} ${K.current} → ${K.alt}`).join(";")}`:"";return`· ${I.title}:${I.currentLabel} → ${I.altLabel}
|
|
175
|
+
${I.summary}${ke}`}).join(`
|
|
176
|
+
`))}if(e.followup){const y=e.followup;i.push(`【追问】${y.question}
|
|
177
|
+
${y.answer}${y.evidence&&y.evidence.length?`
|
|
178
|
+
依据:${y.evidence.join(";")} 置信度:${y.confidence}`:""}`)}if(e.past&&Array.isArray(e.past.rows)&&e.past.rows.length&&i.push(`【验前事】过去 ${e.past.years} 年的流年信号(只读,不改盘)
|
|
179
|
+
`+e.past.rows.map(y=>`· ${y.year} ${y.ganzhi} · ${y.theme}(${y.tier}${y.tenGod?`,${y.tenGod}`:""})`).join(`
|
|
177
180
|
`)+`
|
|
178
|
-
用法:在面板里勾「准 / 不准 / 不确定」后算贴合度;贴合度低时先核对出生时间、时区与晚子时口径。`),e.rectify&&Array.isArray(e.rectify.candidates)){const
|
|
179
|
-
`+
|
|
181
|
+
用法:在面板里勾「准 / 不准 / 不确定」后算贴合度;贴合度低时先核对出生时间、时区与晚子时口径。`),e.rectify&&Array.isArray(e.rectify.candidates)){const y=e.rectify;i.push(`【生时校正】候选时辰 ${y.candidates.length} 个(固定规则打分,只缩小范围)
|
|
182
|
+
`+y.candidates.slice(0,8).map(I=>`· ${I.label} 时柱 ${I.hourGanzhi} / 日柱 ${I.dayGanzhi} · 命中 ${I.hits}/${I.total}`).join(`
|
|
180
183
|
`)+`
|
|
181
|
-
${
|
|
184
|
+
${y.note}`)}return i.filter(Boolean).join(`
|
|
182
185
|
|
|
183
|
-
`)}const{buildEventPrompt:zn,ASK_KINDS:
|
|
186
|
+
`)}const{buildEventPrompt:zn,ASK_KINDS:vn}=V["event-prompt"]||{},{plainSummary:Sn}=V["plain-summary"]||{};return{interpret:f,DIRECTIONS:b,DIRECTION_DEFAULT:F,BRIGHTNESS:L,flowOf:z,geocodeAddress:m,resolveAddress:S,buildBazi:Y,buildLiuyao:A,tossLines:Se,followup:C,askPrompt:ee,pastSignals:Te,verifyFit:dn,rectifyBirth:fe,crossCheck:Ne,crossText:Me,crossSection:an,buildAlmanac:nn,buildZeri:bn,buildChenggu:ye,buildXiaoliuren:Ye,buildStar:Fe,buildNumerology:on,buildConvert:un,buildTrend:Wn,buildFengshui:Kn,buildName:tt,buildTrace:et,traceMarkdown:nt,encodeHandle:Ae,decodeHandle:h,resolveHandle:v,askLink:le,parseAskLink:ae,formOf:je,restNote:ge,askPackages:E,buildEventPrompt:zn,ASK_KINDS:vn,parseDateTime:Z,chartFingerprint:jn,shadowSnapshot:kn,shadowDiff:qn,compute:In,interpretText:Mn,caliberCompare:sn,renderText:rn}})(),{Engine:V.index}}});
|