PageSourceSearch

https://hskwin.com/assets/index-OHHn4fSG.js

js hskwin.com collected 2026-10-03 22:01:43 UTC 919,027 bytes, 382 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pricing-C-wOkn27.js","assets/runtime-Dk8KAH2V.js","assets/header-BjnSnrUi.js","assets/avatar-BSd1MDdt.js","assets/button-C5Nzi3u2.js","assets/utils-DXalBF5w.js","assets/useOpenInteractionType-D99WLwyO.js","assets/owner-Bv75eiQG.js","assets/react-dom-MQnNwxuR.js","assets/with-selector-Cbuzh-FS.js","assets/dropdown-menu-DwvVo171.js","assets/getPseudoElementBounds-DGEtv9ea.js","assets/Separator-BqgwtoFg.js","assets/useControlled-B4eM7_bn.js","assets/check-2IGgRwiK.js","assets/createLucideIcon-DgNZOqx9.js","assets/chevron-right-CwzJLUuI.js","assets/navigation-C7qn1Qpb.js","assets/chevron-down-DhiVGBRi.js","assets/locale-selector-BOor9kg8.js","assets/languages-nFUhJyrX.js","assets/locale-DUxS4vNF.js","assets/use-user-permissions-U6QNv7nc.js","assets/api-client-kpMfuE4c.js","assets/common_systems_admin-eZvN1jrW.js","assets/shield-frXF0WqH.js","assets/x-CihHChCQ.js","assets/config-CwbY2DU1.js","assets/common_sign_sign_in_title-COucY71N.js","assets/common_sign_sign_out_title-Dfic8V8f.js","assets/hsk_nav_mock_tests-cDSIg4D9.js","assets/pricing-CuqZ8Vtm.js","assets/gift-DMglo0qf.js","assets/track-Cr7sgvtp.js","assets/mistakes-print-B10MExh1.js","assets/review-item-B80mW9Yk.js","assets/DialogTrigger-DQTr0UiL.js","assets/lock-Dm0uf4yS.js","assets/sitting-gate-OOYKP6Xs.js","assets/clock-BJnZHOwm.js","assets/headphones-NDgfu8Ou.js","assets/mic-DFtPd5Op.js","assets/notebook-pen-B829Syu1.js","assets/pen-line-DgUml1ER.js","assets/play-D296oU8n.js","assets/rotate-ccw-wN2wJtBR.js","assets/hsk_result_study_next-BoBb9oKL.js","assets/hsk_dash_wrong_times-9M-QmXan.js","assets/hsk_dash_mistakes-Bm9zJ3It.js","assets/hsk_exam_saving-_18kOjbq.js","assets/hsk-levels-Cab8YJyw.js","assets/page-shell-CDyP1Ihe.js","assets/common_systems_home-B3mD2sM4.js","assets/hsk_levels_pass-DQJhh3RL.js","assets/hsk_levels_characters-cqQYhoQP.js","assets/hsk_levels_no_papers-DOR4wblt.js","assets/hsk_levels_papers_with_sample-IM_Ztzzq.js","assets/hsk_levels_time-NBaaH6xa.js","assets/hsk_levels_words-UDS38eCQ.js","assets/hsk_leveltest_start-B4mM-aL6.js","assets/hsk-exam-dates-2026-BsGJBZzt.js","assets/useMutation-DS473amc.js","assets/countdown-BRRUKTlE.js","assets/bell-ring-DjT_EWWC.js","assets/list-C1y_y2Ec.js","assets/exam-calendar-B_ja6hnq.js","assets/hsk_reminder_removed-CURCcAjO.js","assets/hsk-3-0-status-V0nHohI_.js","assets/route-Y9K_A7_Z.js","assets/input-DXND7wWo.js","assets/useField-DeK6DCIO.js","assets/app-layout-Dj4TcYEP.js","assets/useRender-BhqxJcsP.js","assets/separator-DutelFb8.js","assets/sheet-DrrbBluO.js","assets/calendar-clock-CPuUlRLg.js","assets/clipboard-list-Du5Zgs94.js","assets/coins-B50NG1qf.js","assets/image-uploader-B8efDRX8.js","assets/image-Bt0LtcRA.js","assets/refresh-cw-Bcxehtyf.js","assets/label-DEcWCoI5.js","assets/textarea-CZe82rMM.js","assets/hsk_dash_plan-BJcM57av.js","assets/hsk_dash_results-CxCFlZdi.js","assets/settings_nav_overview-BB7F7_b5.js","assets/route-BYFeSU2W.js","assets/route-E86Zzcsl.js","assets/arrow-left-Bk7JvkPe.js","assets/mdx-components-D33LbTeY.js","assets/routes-BWyB9G96.js","assets/book-open-DbJK8vGP.js","assets/layers-B9oHWL5H.js","assets/volume-2-2qpTafxq.js","assets/hsk_quickstart_unsure_title-DsQJCJT6.js","assets/hsk_report_seal_glyph-Cr69FPAW.js","assets/hsk_report_pass_probability-DhW-bcvB.js","assets/vocabulary-DL5EEo6N.js","assets/vocab-compare-BoAOxw9a.js","assets/hsk_vocab_source_note-Da3tSt6X.js","assets/tools-CjeBg0Hb.js","assets/stories-CchxloCo.js","assets/story-reader-DKQ1K9w0.js","assets/chevron-left-BwSuqr_-.js","assets/minus-C7Whlycl.js","assets/pause-BOaeWl1W.js","assets/vocab-audio-client--t-9EKw9.js","assets/vocab-review-DDtdI10T.js","assets/story-spec-pSrKqNUq.js","assets/hsk_stories_level_empty-BxlhtPaD.js","assets/hsk_stories_chars-BoF1diPT.js","assets/hsk_stories_level_stories-eokViqQo.js","assets/reading-pJ6amP6m.js","assets/hsk_reading_part_questions-BF8oLxCg.js","assets/mock-test-CAW6SINW.js","assets/panda-Dm3s9bq9.js","assets/hsk_levels_graded-DrEw0Ra2.js","assets/hsk_levels_questions-CwL3ke1u.js","assets/-level-copy-Btl7NvOR.js","assets/hskk-BHbijrch.js","assets/-sections-Cxg67oEX.js","assets/flashcards-CmxdDj7k.js","assets/blog-Dy04WNjl.js","assets/posts-DBA28tOA.
1js","assets/_level-4Ulujqz-.js","assets/switch-BYDc0qtK.js","assets/useAriaLabelledBy-DiFJKKnz.js","assets/download-DDmXa63B.js","assets/search-DQg9qD0v.js","assets/shuffle-BnSgTfIT.js","assets/vocab-audio--Uz24Y76.js","assets/score-calculator-CyoeE0ZZ.js","assets/level-test-Brav4Nx1.js","assets/hsk-registration-reminder-PKcj3Veo.js","assets/external-link-DrsGhj8l.js","assets/common_sign_continue_google-CYGmYNqw.js","assets/_attemptId-D4H_OKOP.js","assets/seal-CqzYXHl4.js","assets/start-paper-button-CsYwTEs2.js","assets/hsk_exam_view_result-BSsptx-X.js","assets/hsk_result_review-Ct6YMQRv.js","assets/hsk_result_transcript-CLPtodSN.js","assets/_level-Ddb0oklt.js","assets/level-tabs-BfNDS1JN.js","assets/writing-CLuEi3uq.js","assets/quota-notice-0bPZeL03.js","assets/speaking-BvqwnotC.js","assets/recorder-9unj9cA9.js","assets/hsk_speaking_stop-DbZLNa4N.js","assets/_paper--3zTWf7_.js","assets/_band-CQ22W9Eg.js","assets/_level-BBbtNrgu.js","assets/list-ordered-yqL9CyEB.js","assets/_attemptId-aO9AAsi7.js","assets/exam-answer-sheet-BXHI34Kc.js","assets/use-exam-assets-DOqUTHMU.js","assets/hsk_exam_resume-ByPOgzzq.js","assets/_slug-CIDc2YpX.js","assets/markdown-content-DNXgolvQ.js","assets/verify-email-8Ux16-JI.js","assets/auth-shell-CpVuZN5X.js","assets/eye-B_zgWVt2.js","assets/field-BIJ5Ok8N.js","assets/common_sign_back_to_sign_in-0VIpocAO.js","assets/sign-up-DUSQiovn.js","assets/useForm-DmGAqkrl.js","assets/social-buttons-5LAjZDQz.js","assets/hsk_stories_chapter_of-D06rQdiV.js","assets/form-field-BzQ6mL0m.js","assets/common_sign_email_title-Cwz-2tkP.js","assets/common_sign_show_password-B-GAy5Vi.js","assets/common_sign_invite_code_title-f3kLZRGw.js","assets/common_sign_password_too_short-t6u20M-R.js","assets/sign-in-Xp7Vc3fN.js","assets/common_sign_bubble_in_text-Bpe6Csbi.js","assets/reset-password-B5ywjGzu.js","assets/common_sign_forgot_password_title-MT2piphI.js","assets/redeem-invite-C5GXwt8P.js","assets/forgot-password-C3iyvnBQ.js","assets/auth-callback-DMH7939Q.js","assets/settings-BEeNuhC3.js","assets/calendar-days-CZSHIrXp.js","assets/tickets-C95xZM82.js","assets/data-table--m8BTGxE.js","assets/message-square-BBlBqrhr.js","assets/badge-BvuJKFm6.js","assets/card-C4pNqxuU.js","assets/dynamic-C8OAXYEp.js","assets/results-B2RrlT1k.js","assets/profile-Be8ltGKJ.js","assets/payments-DIMKBwtQ.js","assets/mistakes-v5KKq-8I.js","assets/exam-plan-DPG5Slha.js","assets/credits-B7reSqDN.js","assets/billing-CQiyJLgk.js","assets/circle-x-CGESzgrS.js","assets/ellipsis-DSkfMVsU.js","assets/pencil-D8WG8InA.js","assets/apikeys-CdM9hYkR.js","assets/copy-BOzPolRh.js","assets/trash-2-C8_L-o-y.js","assets/admin-BxxklK5p.js","assets/users-JvT-Z2mv.js","assets/checkbox-DtvZFIsV.js","assets/time-rvEkvbfN.js","assets/tickets-CcO2ddlh.js","assets/subscriptions-DURkvhq6.js","assets/settings-COoeOhV_.js","assets/select--56OSrsp.js","assets/roles-DD4RkWDP.js","assets/admin_permissions_no_permissions-p9sAprf_.js","assets/posts-uuWiNRqc.js","assets/permissions-B31Rh2Hr.js","assets/payments-BJQRlfs6.js","assets/invite-codes-CfTS-dEQ.js","assets/credits-Bj2j1Ht9.js","assets/categories-CUurm6tk.js","assets/_level-CsoHxijs.js","assets/hsk_stories_stat_coverage-B04Hx7As.js","assets/_level--8P_7VOG.js","assets/paper-pdf-notice-DqLrvDh1.js","assets/_level-BJoQzk4B2.js","assets/_paper-0TLUI9Qb.js","assets/_slug-Dj5tJNXu.js","assets/story-progress-LguTX8zG.js","assets/_chapter-B3Xh807U.js"])))=>i.map(i=>d[i]);
2import{c as e,d as t,f as n,i as r,l as i,n as a,o,r as s,s as c,t as l,u}from"./runtime-Dk8KAH2V.js";import{t as d}from"./react-dom-MQnNwxuR.js";import{i as f,n as p,r as m,t as h}from"./createServerFn-Dw0--dHf.js";import{A as g,B as _,C as v,D as y,E as b,F as x,H as S,I as C,L as ee,M as te,N as ne,O as w,P as re,R as ie,S as ae,T as oe,U as se,V as ce,_ as le,a as T,b as E,c as ue,d as de,f as fe,g as pe,h as me,i as D,j as he,k as ge,l as _e,m as ve,n as ye,o as be,p as xe,s as Se,t as Ce,u as we,v as Te,w as Ee,x as De,y as Oe,z as ke}from"./navigation-C7qn1Qpb.js";import{a as Ae,i as je,r as Me,t as Ne}from"./redirect-DCb_aIiF.js";import{n as Pe,t as Fe}from"./qss-CuvTgpZA.js";import{n as Ie,r as Le,t as Re}from"./matchContext-BdsU06AA.js";import{C as ze,D as Be,O as Ve,S as He,_ as Ue,a as We,b as Ge,c as Ke,d as qe,g as Je,h as Ye,k as Xe,l as Ze,m as Qe,r as $e,v as et,w as tt,x as nt}from"./api-client-kpMfuE4c.js";import{n as rt,t as it}from"./useMutation-DS473amc.js";import{t as O}from"./preload-helper-zJ_50EbN.js";import{t as k}from"./config-CwbY2DU1.js";import{i as at,n as ot}from"./locale-DUxS4vNF.js";import{a as st,i as ct,n as lt,o as ut,r as dt,t as ft}from"./track-Cr7sgvtp.js";import{t as pt}from"./createLucideIcon-DgNZOqx9.js";import{t as mt}from"./x-CihHChCQ.js";import{t as ht}
vendor: 177,894 bytes, lines 2-10
2from"./common_systems_home-B3mD2sM4.js";import{t as gt}from"./button-C5Nzi3u2.js";import{t as _t}from"./utils-DXalBF5w.js";import{a as vt,c as yt,i as bt,n as xt,o as St,r as Ct,s as wt,t as Tt}from"./DialogTrigger-DQTr0UiL.js";var Et=u((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,re());else{var t=n(l);t!==null&&oe(x,t.startTime-e)}}var S=!1,C=-1,ee=5,te=-1;function ne(){return g?!0:!(e.unstable_now()-te<ee)}function w(){if(g=!1,S){var t=e.unstable_now();te=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&ne());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&oe(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?re():S=!1}}}var re;if(typeof y==`function`)re=function(){y(w)};else if(typeof MessageChannel<`u`){var ie=new MessageChannel,ae=ie.port2;ie.port1.onmessage=w,re=function(){ae.postMessage(null)}}else re=function(){_(w,0)};function oe(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):ee=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,oe(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,re()))),r},e.unstable_shouldYield=ne,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),Dt=u(((e,t)=>{t.exports=Et()})),Ot=u((e=>{var t=Dt(),n=i(),r=d();function a(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function o(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function s(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function c(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function u(e){if(s(e)!==e)throw Error(a(188))}function f(e){var t=e.alternate;if(!t){if(t=s(e),t===null)throw Error(a(188));return t===e?e:null}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var o=i.alternate;if(o===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return u(i),e;if(o===r)return u(i),t;o=o.sibling}throw Error(a(188))}if(n.return!==r.return)n=i,r=o;else{for(var c=!1,l=i.child;l;){if(l===n){c=!0,n=i,r=o;break}if(l===r){c=!0,r=i,n=o;break}l=l.sibling}if(!c){for(l=o.child;l;){if(l===n){c=!0,n=o,r=i;break}if(l===r){c=!0,r=o,n=i;break}l=l.sibling}if(!c)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(n.tag!==3)throw Error(a(188));return n.stateNode.current===n?e:t}function p(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=p(e),t!==null)return t;e=e.sibling}return null}var m=Object.assign,h=Symbol.for(`react.element`),g=Symbol.for(`react.transitional.element`),_=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),S=Symbol.for(`react.context`),C=Symbol.for(`react.forward_ref`),ee=Symbol.for(`react.suspense`),te=Symbol.for(`react.suspense_list`),ne=Symbol.for(`react.memo`),w=Symbol.for(`react.lazy`),re=Symbol.for(`react.activity`),ie=Symbol.for(`react.memo_cache_sentinel`),ae=Symbol.iterator;function oe(e){return typeof e!=`object`||!e?null:(e=ae&&e[ae]||e[`@@iterator`],typeof e==`function`?e:null)}var se=Symbol.for(`react.client.reference`);function ce(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===se?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case v:return`Fragment`;case b:return`Profiler`;case y:return`StrictMode`;case ee:return`Suspense`;case te:return`SuspenseList`;case re:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case _:return`Portal`;case S:return e.displayName||`Context`;case x:return(e._context.displayName||`Context`)+`.Consumer`;case C:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case ne:return t=e.displayName||null,t===null?ce(e.type)||`Memo`:t;case w:t=e._payload,e=e._init;try{return ce(e(t))}catch{}}return null}var le=Array.isArray,T=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ue={pending:!1,data:null,method:null,action:null},de=[],fe=-1;function pe(e){return{current:e}}function me(e){0>fe||(e.current=de[fe],de[fe]=null,fe--)}function D(e,t){fe++,de[fe]=e.current,e.current=t}var he=pe(null),ge=pe(null),_e=pe(null),ve=pe(null);function ye(e,t){switch(D(_e,t),D(ge,e),D(he,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Jd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Jd(t),e=Yd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}me(he),D(he,e)}function be(){me(he),me(ge),me(_e)}function xe(e){e.memoizedState!==null&&D(ve,e);var t=he.current,n=Yd(t,e.type);t!==n&&(D(ge,e),D(he,n))}function Se(e){ge.current===e&&(me(he),me(ge)),ve.current===e&&(me(ve),ap._currentValue=ue)}var Ce,we;function Te(e){if(Ce===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Ce=t&&t[1]||``,we=-1<e.stack.indexOf(`
3    at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
4`+Ce+e+we}var Ee=!1;function De(e,t){if(!e||Ee)return``;Ee=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
5`),l=s.split(`
6`);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
7`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{Ee=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Te(n):``}function Oe(e,t){switch(e.tag){case 26:case 27:case 5:return Te(e.type);case 16:return Te(`Lazy`);case 13:return e.child!==t&&t!==null?Te(`Suspense Fallback`):Te(`Suspense`);case 19:return Te(`SuspenseList`);case 0:case 15:return De(e.type,!1);case 11:return De(e.type.render,!1);case 1:return De(e.type,!0);case 31:return Te(`Activity`);default:return``}}function ke(e){try{var t=``,n=null;do t+=Oe(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
8Error generating stack: `+e.message+`
9`+e.stack}}var Ae=Object.prototype.hasOwnProperty,je=t.unstable_scheduleCallback,Me=t.unstable_cancelCallback,Ne=t.unstable_shouldYield,Pe=t.unstable_requestPaint,Fe=t.unstable_now,Ie=t.unstable_getCurrentPriorityLevel,Le=t.unstable_ImmediatePriority,Re=t.unstable_UserBlockingPriority,ze=t.unstable_NormalPriority,Be=t.unstable_LowPriority,Ve=t.unstable_IdlePriority,He=t.log,Ue=t.unstable_setDisableYieldValue,We=null,Ge=null;function Ke(e){if(typeof He==`function`&&Ue(e),Ge&&typeof Ge.setStrictMode==`function`)try{Ge.setStrictMode(We,e)}catch{}}var qe=Math.clz32?Math.clz32:Xe,Je=Math.log,Ye=Math.LN2;function Xe(e){return e>>>=0,e===0?32:31-(Je(e)/Ye|0)|0}var Ze=256,Qe=262144,$e=4194304;function et(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function tt(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=et(n))):i=et(o):i=et(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=et(n))):i=et(o)):i=et(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function nt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function rt(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function it(){var e=$e;return $e<<=1,!($e&62914560)&&($e=4194304),e}function O(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function k(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function at(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-qe(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&ot(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function ot(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-qe(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function st(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-qe(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function ct(e,t){var n=t&-t;return n=n&42?1:lt(n),(n&(e.suspendedLanes|t))===0?n:0}function lt(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function ut(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function dt(){var e=E.p;return e===0?(e=window.event,e===void 0?32:xp(e.type)):e}function ft(e,t){var n=E.p;try{return E.p=e,t()}finally{E.p=n}}var pt=Math.random().toString(36).slice(2),mt=`__reactFiber$`+pt,ht=`__reactProps$`+pt,gt=`__reactContainer$`+pt,_t=`__reactEvents$`+pt,vt=`__reactListeners$`+pt,yt=`__reactHandles$`+pt,bt=`__reactResources$`+pt,xt=`__reactMarker$`+pt;function St(e){delete e[mt],delete e[ht],delete e[_t],delete e[vt],delete e[yt]}function Ct(e){var t=e[mt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[gt]||n[mt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=vf(e);e!==null;){if(n=e[mt])return n;e=vf(e)}return t}e=n,n=e.parentNode}return null}function wt(e){if(e=e[mt]||e[gt]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Tt(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(a(33))}function Et(e){var t=e[bt];return t||=e[bt]={hoistableStyles:new Map,hoistableScripts:new Map},t}function Ot(e){e[xt]=!0}var kt=new Set,At={};function jt(e,t){Mt(e,t),Mt(e+`Capture`,t)}function Mt(e,t){for(At[e]=t,e=0;e<t.length;e++)kt.add(t[e])}var Nt=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),Pt={},Ft={};function It(e){return Ae.call(Ft,e)?!0:Ae.call(Pt,e)?!1:Nt.test(e)?Ft[e]=!0:(Pt[e]=!0,!1)}function Lt(e,t,n){if(It(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}function Rt(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function zt(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function Bt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Vt(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Ht(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ut(e){if(!e._valueTracker){var t=Vt(e)?`checked`:`value`;e._valueTracker=Ht(e,t,``+e[t])}}function Wt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Vt(e)?e.checked?`true`:`false`:e.value),e=r,e===n?!1:(t.setValue(e),!0)}function Gt(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var Kt=/[\n"\\]/g;function qt(e){return e.replace(Kt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Jt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Bt(t)):e.value!==``+Bt(t)&&(e.value=``+Bt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Xt(e,o,Bt(n)):Xt(e,o,Bt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Bt(s):e.removeAttribute(`name`)}function Yt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Ut(e);return}n=n==null?``:``+Bt(n),t=t==null?n:``+Bt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Ut(e)}function Xt(e,t,n){t===`number`&&Gt(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Zt(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+Bt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Qt(e,t,n){if(t!=null&&(t=``+Bt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+Bt(n)}function $t(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(a(92));if(le(r)){if(1<r.length)throw Error(a(93));r=r[0]}n=r}n??=``,t=n}n=Bt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Ut(e)}function en(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var tn=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function nn(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||tn.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function rn(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(a(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var i in t)r=t[i],t.hasOwnProperty(i)&&n[i]!==r&&nn(e,i,r)}else for(var o in t)t.hasOwnProperty(o)&&nn(e,o,t[o])}function an(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var on=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),sn=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function cn(e){return sn.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function ln(){}var un=null;function dn(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var fn=null,pn=null;function mn(e){var t=wt(e);if(t&&(e=t.stateNode)){var n=e[ht]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Jt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+qt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var i=r[ht]||null;if(!i)throw Error(a(90));Jt(r,i.value,i.defaultValue,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&Wt(r)}break a;case`textarea`:Qt(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Zt(e,!!n.multiple,t,!1)}}}var hn=!1;function gn(e,t,n){if(hn)return e(t,n);hn=!0;try{return e(t)}finally{if(hn=!1,(fn!==null||pn!==null)&&(Du(),fn&&(t=fn,e=pn,pn=fn=null,mn(t),e)))for(t=0;t<e.length;t++)mn(e[t])}}function _n(e,t){var n=e.stateNode;if(n===null)return null;var r=n[ht]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=!(e===`button`||e===`input`||e===`select`||e===`textarea`)),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(a(231,t,typeof n));return n}var vn=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),yn=!1;if(vn)try{var bn={};Object.defineProperty(bn,"passive",{get:function(){yn=!0}}),window.addEventListener(`test`,bn,bn),window.removeEventListener(`test`,bn,bn)}catch{yn=!1}var xn=null,Sn=null,Cn=null;function wn(){if(Cn)return Cn;var e,t=Sn,n=t.length,r,i=`value`in xn?xn.value:xn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return Cn=i.slice(e,1<r?1-r:void 0)}function Tn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function En(){return!0}function Dn(){return!1}function On(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?En:Dn,this.isPropagationStopped=Dn,this}return m(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=En)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=En)},persist:function(){},isPersistent:En}),t}var kn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},An=On(kn),jn=m({},kn,{view:0,detail:0}),Mn=On(jn),Nn,Pn,Fn,In=m({},jn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:qn,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==Fn&&(Fn&&e.type===`mousemove`?(Nn=e.screenX-Fn.screenX,Pn=e.screenY-Fn.screenY):Pn=Nn=0,Fn=e),Nn)},movementY:function(e){return`movementY`in e?e.movementY:Pn}}),Ln=On(In),Rn=On(m({},In,{dataTransfer:0})),zn=On(m({},jn,{relatedTarget:0})),Bn=On(m({},kn,{animationName:0,elapsedTime:0,pseudoElement:0})),Vn=On(m({},kn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Hn=On(m({},kn,{data:0})),Un={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Wn={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},Gn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Kn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Gn[e])?!!t[e]:!1}function qn(){return Kn}var Jn=On(m({},jn,{key:function(e){if(e.key){var t=Un[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=Tn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Wn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:qn,charCode:function(e){return e.type===`keypress`?Tn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?Tn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Yn=On(m({},In,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Xn=On(m({},jn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:qn})),Zn=On(m({},kn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Qn=On(m({},In,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),$n=On(m({},kn,{newState:0,oldState:0})),er=[9,13,27,32],tr=vn&&`CompositionEvent`in window,nr=null;vn&&`documentMode`in document&&(nr=document.documentMode);var rr=vn&&`TextEvent`in window&&!nr,ir=vn&&(!tr||nr&&8<nr&&11>=nr),ar=` `,A=!1;function j(e,t){switch(e){case`keyup`:return er.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function or(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var sr=!1;function cr(e,t){switch(e){case`compositionend`:return or(t);case`keypress`:return t.which===32?(A=!0,ar):null;case`textInput`:return e=t.data,e===ar&&A?null:e;default:return null}}function lr(e,t){if(sr)return e===`compositionend`||!tr&&j(e,t)?(e=wn(),Cn=Sn=xn=null,sr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return ir&&t.locale!==`ko`?null:t.data;default:return null}}var ur={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function dr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!ur[e.type]:t===`textarea`}function fr(e,t,n,r){fn?pn?pn.push(r):pn=[r]:fn=r,t=Nd(t,`onChange`),0<t.length&&(n=new An(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var pr=null,mr=null;function hr(e){Ed(e,0)}function gr(e){if(Wt(Tt(e)))return e}function _r(e,t){if(e===`change`)return t}var vr=!1;if(vn){var yr;if(vn){var br=`oninput`in document;if(!br){var xr=document.createElement(`div`);xr.setAttribute(`oninput`,`return;`),br=typeof xr.oninput==`function`}yr=br}else yr=!1;vr=yr&&(!document.documentMode||9<document.documentMode)}function Sr(){pr&&(pr.detachEvent(`onpropertychange`,Cr),mr=pr=null)}function Cr(e){if(e.propertyName===`value`&&gr(mr)){var t=[];fr(t,mr,e,dn(e)),gn(hr,t)}}function wr(e,t,n){e===`focusin`?(Sr(),pr=t,mr=n,pr.attachEvent(`onpropertychange`,Cr)):e===`focusout`&&Sr()}function Tr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return gr(mr)}function Er(e,t){if(e===`click`)return gr(t)}function Dr(e,t){if(e===`input`||e===`change`)return gr(t)}function Or(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var kr=typeof Object.is==`function`?Object.is:Or;function Ar(e,t){if(kr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!Ae.call(t,i)||!kr(e[i],t[i]))return!1}return!0}function jr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Mr(e,t){var n=jr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=jr(n)}}function Nr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Nr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Pr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Gt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Gt(e.document)}return t}function Fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Ir=vn&&`documentMode`in document&&11>=document.documentMode,Lr=null,Rr=null,zr=null,Br=!1;function Vr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Br||Lr==null||Lr!==Gt(r)||(r=Lr,`selectionStart`in r&&Fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),zr&&Ar(zr,r)||(zr=r,r=Nd(Rr,`onSelect`),0<r.length&&(t=new An(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Lr)))}function Hr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var M={animationend:Hr(`Animation`,`AnimationEnd`),animationiteration:Hr(`Animation`,`AnimationIteration`),animationstart:Hr(`Animation`,`AnimationStart`),transitionrun:Hr(`Transition`,`TransitionRun`),transitionstart:Hr(`Transition`,`TransitionStart`),transitioncancel:Hr(`Transition`,`TransitionCancel`),transitionend:Hr(`Transition`,`TransitionEnd`)},Ur={},N={};vn&&(N=document.createElement(`div`).style,`AnimationEvent`in window||(delete M.animationend.animation,delete M.animationiteration.animation,delete M.animationstart.animation),`TransitionEvent`in window||delete M.transitionend.transition);function Wr(e){if(Ur[e])return Ur[e];if(!M[e])return e;var t=M[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in N)return Ur[e]=t[n];return e}var Gr=Wr(`animationend`),Kr=Wr(`animationiteration`),qr=Wr(`animationstart`),Jr=Wr(`transitionrun`),Yr=Wr(`transitionstart`),Xr=Wr(`transitioncancel`),Zr=Wr(`transitionend`),Qr=new Map,$r=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);$r.push(`scrollEnd`);function ei(e,t){Qr.set(e,t),jt(t,[e])}var ti=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},ni=[],ri=0,ii=0;function ai(){for(var e=ri,t=ii=ri=0;t<e;){var n=ni[t];ni[t++]=null;var r=ni[t];ni[t++]=null;var i=ni[t];ni[t++]=null;var a=ni[t];if(ni[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&li(n,i,a)}}function oi(e,t,n,r){ni[ri++]=e,ni[ri++]=t,ni[ri++]=n,ni[ri++]=r,ii|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function si(e,t,n,r){return oi(e,t,n,r),ui(e)}function ci(e,t){return oi(e,null,null,t),ui(e)}function li(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-qe(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function ui(e){if(50<vu)throw vu=0,yu=null,Error(a(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var di={};function fi(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function pi(e,t,n,r){return new fi(e,t,n,r)}function mi(e){return e=e.prototype,!(!e||!e.isReactComponent)}function hi(e,t){var n=e.alternate;return n===null?(n=pi(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&65011712,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function gi(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function _i(e,t,n,r,i,o){var s=0;if(r=e,typeof e==`function`)mi(e)&&(s=1);else if(typeof e==`string`)s=Xf(e,n,he.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case re:return e=pi(31,n,t,i),e.elementType=re,e.lanes=o,e;case v:return vi(n.children,i,o,t);case y:s=8,i|=24;break;case b:return e=pi(12,n,t,i|2),e.elementType=b,e.lanes=o,e;case ee:return e=pi(13,n,t,i),e.elementType=ee,e.lanes=o,e;case te:return e=pi(19,n,t,i),e.elementType=te,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case S:s=10;break a;case x:s=9;break a;case C:s=11;break a;case ne:s=14;break a;case w:s=16,r=null;break a}s=29,n=Error(a(130,e===null?`null`:typeof e,``)),r=null}return t=pi(s,n,t,i),t.elementType=e,t.type=r,t.lanes=o,t}function vi(e,t,n,r){return e=pi(7,e,r,t),e.lanes=n,e}function yi(e,t,n){return e=pi(6,e,null,t),e.lanes=n,e}function bi(e){var t=pi(18,null,null,0);return t.stateNode=e,t}function xi(e,t,n){return t=pi(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Si=new WeakMap;function Ci(e,t){if(typeof e==`object`&&e){var n=Si.get(e);return n===void 0?(t={value:e,source:t,stack:ke(t)},Si.set(e,t),t):n}return{value:e,source:t,stack:ke(t)}}var wi=[],Ti=0,Ei=null,Di=0,Oi=[],ki=0,Ai=null,ji=1,Mi=``;function Ni(e,t){wi[Ti++]=Di,wi[Ti++]=Ei,Ei=e,Di=t}function Pi(e,t,n){Oi[ki++]=ji,Oi[ki++]=Mi,Oi[ki++]=Ai,Ai=e;var r=ji;e=Mi;var i=32-qe(r)-1;r&=~(1<<i),n+=1;var a=32-qe(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,ji=1<<32-qe(t)+i|n<<i|r,Mi=a+e}else ji=1<<a|n<<i|r,Mi=e}function Fi(e){e.return!==null&&(Ni(e,1),Pi(e,1,0))}function Ii(e){for(;e===Ei;)Ei=wi[--Ti],wi[Ti]=null,Di=wi[--Ti],wi[Ti]=null;for(;e===Ai;)Ai=Oi[--ki],Oi[ki]=null,Mi=Oi[--ki],Oi[ki]=null,ji=Oi[--ki],Oi[ki]=null}function Li(e,t){Oi[ki++]=ji,Oi[ki++]=Mi,Oi[ki++]=Ai,ji=t.id,Mi=t.overflow,Ai=e}var Ri=null,P=null,F=!1,zi=null,Bi=!1,Vi=Error(a(519));function Hi(e){throw Ji(Ci(Error(a(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Vi}function Ui(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[mt]=e,t[ht]=r,n){case`dialog`:G(`cancel`,t),G(`close`,t);break;case`iframe`:case`object`:case`embed`:G(`load`,t);break;case`video`:case`audio`:for(n=0;n<wd.length;n++)G(wd[n],t);break;case`source`:G(`error`,t);break;case`img`:case`image`:case`link`:G(`error`,t),G(`load`,t);break;case`details`:G(`toggle`,t);break;case`input`:G(`invalid`,t),Yt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:G(`invalid`,t);break;case`textarea`:G(`invalid`,t),$t(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||zd(t.textContent,n)?(r.popover!=null&&(G(`beforetoggle`,t),G(`toggle`,t)),r.onScroll!=null&&G(`scroll`,t),r.onScrollEnd!=null&&G(`scrollend`,t),r.onClick!=null&&(t.onclick=ln),t=!0):t=!1,t||Hi(e,!0)}function Wi(e){for(Ri=e.return;Ri;)switch(Ri.tag){case 5:case 31:case 13:Bi=!1;return;case 27:case 3:Bi=!0;return;default:Ri=Ri.return}}function Gi(e){if(e!==Ri)return!1;if(!F)return Wi(e),F=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!==`form`&&n!==`button`)||Xd(e.type,e.memoizedProps)),n=!n),n&&P&&Hi(e),Wi(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(317));P=_f(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(317));P=_f(e)}else t===27?(t=P,af(e.type)?(e=gf,gf=null,P=e):P=t):P=Ri?hf(e.stateNode.nextSibling):null;return!0}function Ki(){P=Ri=null,F=!1}function qi(){var e=zi;return e!==null&&(iu===null?iu=e:iu.push.apply(iu,e),zi=null),e}function Ji(e){zi===null?zi=[e]:zi.push(e)}var Yi=pe(null),Xi=null,Zi=null;function Qi(e,t,n){D(Yi,t._currentValue),t._currentValue=n}function $i(e){e._currentValue=Yi.current,me(Yi)}function ea(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function ta(e,t,n,r){var i=e.child;for(i!==null&&(i.return=e);i!==null;){var o=i.dependencies;if(o!==null){var s=i.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=i;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),ea(o.return,n,e),r||(s=null);break a}o=c.next}}else if(i.tag===18){if(s=i.return,s===null)throw Error(a(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),ea(s,n,e),s=null}else s=i.child;if(s!==null)s.return=i;else for(s=i;s!==null;){if(s===e){s=null;break}if(i=s.sibling,i!==null){i.return=s.return,s=i;break}s=s.return}i=s}}function na(e,t,n,r){e=null;for(var i=t,o=!1;i!==null;){if(!o){if(i.flags&524288)o=!0;else if(i.flags&262144)break}if(i.tag===10){var s=i.alternate;if(s===null)throw Error(a(387));if(s=s.memoizedProps,s!==null){var c=i.type;kr(i.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(i===ve.current){if(s=i.alternate,s===null)throw Error(a(387));s.memoizedState.memoizedState!==i.memoizedState.memoizedState&&(e===null?e=[ap]:e.push(ap))}i=i.return}e!==null&&ta(t,e,n,r),t.flags|=262144}function ra(e){for(e=e.firstContext;e!==null;){if(!kr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ia(e){Xi=e,Zi=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function aa(e){return sa(Xi,e)}function oa(e,t){return Xi===null&&ia(e),sa(e,t)}function sa(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Zi===null){if(e===null)throw Error(a(308));Zi=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Zi=Zi.next=t;return n}var ca=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},la=t.unstable_scheduleCallback,ua=t.unstable_NormalPriority,da={$$typeof:S,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function fa(){return{controller:new ca,data:new Map,refCount:0}}function pa(e){e.refCount--,e.refCount===0&&la(ua,function(){e.controller.abort()})}var ma=null,ha=0,ga=0,_a=null;function va(e,t){if(ma===null){var n=ma=[];ha=0,ga=vd(),_a={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return ha++,t.then(ya,ya),t}function ya(){if(--ha===0&&ma!==null){_a!==null&&(_a.status=`fulfilled`);var e=ma;ma=null,ga=0,_a=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function ba(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var xa=T.S;T.S=function(e,t){su=Fe(),typeof t==`object`&&t&&typeof t.then==`function`&&va(e,t),xa!==null&&xa(e,t)};var Sa=pe(null);function Ca(){var e=Sa.current;return e===null?B.pooledCache:e}function wa(e,t){t===null?D(Sa,Sa.current):D(Sa,t.pool)}function Ta(){var e=Ca();return e===null?null:{parent:da._currentValue,pool:e}}var Ea=Error(a(460)),Da=Error(a(474)),Oa=Error(a(542)),ka={then:function(){}};function Aa(e){return e=e.status,e===`fulfilled`||e===`rejected`}function ja(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(ln,ln),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Fa(e),e;default:if(typeof t.status==`string`)t.then(ln,ln);else{if(e=B,e!==null&&100<e.shellSuspendCounter)throw Error(a(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,Fa(e),e}throw Na=t,Ea}}function Ma(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(Na=e,Ea):e}}var Na=null;function Pa(){if(Na===null)throw Error(a(459));var e=Na;return Na=null,e}function Fa(e){if(e===Ea||e===Oa)throw Error(a(483))}var Ia=null,La=0;function Ra(e){var t=La;return La+=1,Ia===null&&(Ia=[]),ja(Ia,e,t)}function za(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Ba(e,t){throw t.$$typeof===h?Error(a(525)):(e=Object.prototype.toString.call(t),Error(a(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function Va(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function i(e,t){return e=hi(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=yi(n,e.mode,r),t.return=e,t):(t=i(t,n),t.return=e,t)}function l(e,t,n,r){var a=n.type;return a===v?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===a||typeof a==`object`&&a&&a.$$typeof===w&&Ma(a)===t.type)?(t=i(t,n.props),za(t,n),t.return=e,t):(t=_i(n.type,n.key,n.props,null,e.mode,r),za(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=xi(n,e.mode,r),t.return=e,t):(t=i(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,a){return t===null||t.tag!==7?(t=vi(n,e.mode,r,a),t.return=e,t):(t=i(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=yi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case g:return n=_i(t.type,t.key,t.props,null,e.mode,n),za(n,t),n.return=e,n;case _:return t=xi(t,e.mode,n),t.return=e,t;case w:return t=Ma(t),f(e,t,n)}if(le(t)||oe(t))return t=vi(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Ra(t),n);if(t.$$typeof===S)return f(e,oa(e,t),n);Ba(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case g:return n.key===i?l(e,t,n,r):null;case _:return n.key===i?u(e,t,n,r):null;case w:return n=Ma(n),p(e,t,n,r)}if(le(n)||oe(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Ra(n),r);if(n.$$typeof===S)return p(e,t,oa(e,n),r);Ba(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case g:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case _:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case w:return r=Ma(r),m(e,t,n,r,i)}if(le(r)||oe(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,Ra(r),i);if(r.$$typeof===S)return m(e,t,n,oa(t,r),i);Ba(t,r)}return null}function h(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),F&&Ni(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return F&&Ni(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),F&&Ni(i,h),l}function y(i,s,c,l){if(c==null)throw Error(a(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),F&&Ni(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return F&&Ni(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),F&&Ni(i,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===v&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case g:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===v){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===w&&Ma(l)===r.type){n(e,r.sibling),c=i(r,o.props),za(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===v?(c=vi(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=_i(o.type,o.key,o.props,null,e.mode,c),za(c,o),c.return=e,e=c)}return s(e);case _:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=i(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=xi(o,e.mode,c),c.return=e,e=c}return s(e);case w:return o=Ma(o),b(e,r,o,c)}if(le(o))return h(e,r,o,c);if(oe(o)){if(l=oe(o),typeof l!=`function`)throw Error(a(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Ra(o),c);if(o.$$typeof===S)return b(e,r,oa(e,o),c);Ba(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,o),c.return=e,e=c):(n(e,r),c=yi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{La=0;var i=b(e,t,n,r);return Ia=null,i}catch(t){if(t===Ea||t===Oa)throw t;var a=pi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ha=Va(!0),Ua=Va(!1),Wa=!1;function Ga(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ka(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function qa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ja(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,z&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ui(e),li(e,null,n),t}return oi(e,r,t,n),ui(e)}function Ya(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,st(e,n)}}function Xa(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Za=!1;function Qa(){if(Za){var e=_a;if(e!==null)throw e}}function $a(e,t,n,r){Za=!1;var i=e.updateQueue;Wa=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(H&f)===f:(r&f)===f){f!==0&&f===ga&&(Za=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=m({},d,f);break a;case 2:Wa=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Ql|=o,e.lanes=o,e.memoizedState=d}}function eo(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function to(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)eo(n[e],t)}var no=pe(null),ro=pe(0);function io(e,t){e=Xl,D(ro,e),D(no,t),Xl=e|t.baseLanes}function ao(){D(ro,Xl),D(no,no.current)}function oo(){Xl=ro.current,me(no),me(ro)}var so=pe(null),co=null;function lo(e){var t=e.alternate;D(ho,ho.current&1),D(so,e),co===null&&(t===null||no.current!==null||t.memoizedState!==null)&&(co=e)}function uo(e){D(ho,ho.current),D(so,e),co===null&&(co=e)}function fo(e){e.tag===22?(D(ho,ho.current),D(so,e),co===null&&(co=e)):po(e)}function po(){D(ho,ho.current),D(so,so.current)}function mo(e){me(so),co===e&&(co=null),me(ho)}var ho=pe(0);function go(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||ff(n)||pf(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var _o=0,I=null,L=null,vo=null,yo=!1,bo=!1,xo=!1,So=0,Co=0,wo=null,To=0;function Eo(){throw Error(a(321))}function Do(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!kr(e[n],t[n]))return!1;return!0}function Oo(e,t,n,r,i,a){return _o=a,I=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,T.H=e===null||e.memoizedState===null?Gs:Ks,xo=!1,a=n(r,i),xo=!1,bo&&(a=Ao(t,n,r,i)),ko(e),a}function ko(e){T.H=Ws;var t=L!==null&&L.next!==null;if(_o=0,vo=L=I=null,yo=!1,Co=0,wo=null,t)throw Error(a(300));e===null||lc||(e=e.dependencies,e!==null&&ra(e)&&(lc=!0))}function Ao(e,t,n,r){I=e;var i=0;do{if(bo&&(wo=null),Co=0,bo=!1,25<=i)throw Error(a(301));if(i+=1,vo=L=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}T.H=qs,o=t(n,r)}while(bo);return o}function jo(){var e=T.H,t=e.useState()[0];return t=typeof t.then==`function`?Ro(t):t,e=e.useState()[0],(L===null?null:L.memoizedState)!==e&&(I.flags|=1024),t}function Mo(){var e=So!==0;return So=0,e}function No(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function Po(e){if(yo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}yo=!1}_o=0,vo=L=I=null,bo=!1,Co=So=0,wo=null}function Fo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return vo===null?I.memoizedState=vo=e:vo=vo.next=e,vo}function Io(){if(L===null){var e=I.alternate;e=e===null?null:e.memoizedState}else e=L.next;var t=vo===null?I.memoizedState:vo.next;if(t!==null)vo=t,L=e;else{if(e===null)throw I.alternate===null?Error(a(467)):Error(a(310));L=e,e={memoizedState:L.memoizedState,baseState:L.baseState,baseQueue:L.baseQueue,queue:L.queue,next:null},vo===null?I.memoizedState=vo=e:vo=vo.next=e}return vo}function Lo(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Ro(e){var t=Co;return Co+=1,wo===null&&(wo=[]),e=ja(wo,e,t),t=I,(vo===null?t.memoizedState:vo.next)===null&&(t=t.alternate,T.H=t===null||t.memoizedState===null?Gs:Ks),e}function zo(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return Ro(e);if(e.$$typeof===S)return aa(e)}throw Error(a(438,String(e)))}function Bo(e){var t=null,n=I.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=I.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=Lo(),I.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=ie;return t.index++,n}function Vo(e,t){return typeof t==`function`?t(e):t}function Ho(e){return Uo(Io(),L,e)}function Uo(e,t,n){var r=e.queue;if(r===null)throw Error(a(311));r.lastRenderedReducer=n;var i=e.baseQueue,o=r.pending;if(o!==null){if(i!==null){var s=i.next;i.next=o.next,o.next=s}t.baseQueue=i=o,r.pending=null}if(o=e.baseState,i===null)e.memoizedState=o;else{t=i.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(_o&f)===f:(H&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===ga&&(d=!0);else if((_o&p)===p){u=u.next,p===ga&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,I.lanes|=p,Ql|=p;f=u.action,xo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,I.lanes|=f,Ql|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!kr(o,e.memoizedState)&&(lc=!0,d&&(n=_a,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return i===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Wo(e){var t=Io(),n=t.queue;if(n===null)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,o=t.memoizedState;if(i!==null){n.pending=null;var s=i=i.next;do o=e(o,s.action),s=s.next;while(s!==i);kr(o,t.memoizedState)||(lc=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Go(e,t,n){var r=I,i=Io(),o=F;if(o){if(n===void 0)throw Error(a(407));n=n()}else n=t();var s=!kr((L||i).memoizedState,n);if(s&&(i.memoizedState=n,lc=!0),i=i.queue,gs(Jo.bind(null,r,i,e),[e]),i.getSnapshot!==t||s||vo!==null&&vo.memoizedState.tag&1){if(r.flags|=2048,ds(9,{destroy:void 0},qo.bind(null,r,i,n,t),null),B===null)throw Error(a(349));o||_o&127||Ko(r,t,n)}return n}function Ko(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=I.updateQueue,t===null?(t=Lo(),I.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function qo(e,t,n,r){t.value=n,t.getSnapshot=r,Yo(t)&&Xo(e)}function Jo(e,t,n){return n(function(){Yo(t)&&Xo(e)})}function Yo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!kr(e,n)}catch{return!0}}function Xo(e){var t=ci(e,2);t!==null&&Su(t,e,2)}function Zo(e){var t=Fo();if(typeof e==`function`){var n=e;if(e=n(),xo){Ke(!0);try{n()}finally{Ke(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:e},t}function Qo(e,t,n,r){return e.baseState=n,Uo(e,L,typeof r==`function`?r:Vo)}function $o(e,t,n,r,i){if(Vs(e))throw Error(a(485));if(e=t.action,e!==null){var o={payload:i,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};T.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,es(t,o)):(o.next=n.next,t.pending=n.next=o)}}function es(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=T.T,o={};T.T=o;try{var s=n(i,r),c=T.S;c!==null&&c(o,s),ts(e,t,s)}catch(n){rs(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),T.T=a}}else try{a=n(i,r),ts(e,t,a)}catch(n){rs(e,t,n)}}function ts(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){ns(e,t,n)},function(n){return rs(e,t,n)}):ns(e,t,n)}function ns(e,t,n){t.status=`fulfilled`,t.value=n,is(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,es(e,n)))}function rs(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,is(t),t=t.next;while(t!==r)}e.action=null}function is(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function as(e,t){return t}function os(e,t){if(F){var n=B.formState;if(n!==null){a:{var r=I;if(F){if(P){b:{for(var i=P,a=Bi;i.nodeType!==8;){if(!a){i=null;break b}if(i=hf(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){P=hf(i.nextSibling),r=i.data===`F!`;break a}}Hi(r)}r=!1}r&&(t=n[0])}}return n=Fo(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:as,lastRenderedState:t},n.queue=r,n=Rs.bind(null,I,r),r.dispatch=n,r=Zo(!1),a=Bs.bind(null,I,!1,r.queue),r=Fo(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=$o.bind(null,I,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function ss(e){return cs(Io(),L,e)}function cs(e,t,n){if(t=Uo(e,t,as)[0],e=Ho(Vo)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=Ro(t)}catch(e){throw e===Ea?Oa:e}else r=t;t=Io();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(I.flags|=2048,ds(9,{destroy:void 0},ls.bind(null,i,n),null)),[r,a,e]}function ls(e,t){e.action=t}function us(e){var t=Io(),n=L;if(n!==null)return cs(t,n,e);Io(),t=t.memoizedState,n=Io();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function ds(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=I.updateQueue,t===null&&(t=Lo(),I.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function fs(){return Io().memoizedState}function ps(e,t,n,r){var i=Fo();I.flags|=e,i.memoizedState=ds(1|t,{destroy:void 0},n,r===void 0?null:r)}function ms(e,t,n,r){var i=Io();r=r===void 0?null:r;var a=i.memoizedState.inst;L!==null&&r!==null&&Do(r,L.memoizedState.deps)?i.memoizedState=ds(t,a,n,r):(I.flags|=e,i.memoizedState=ds(1|t,a,n,r))}function hs(e,t){ps(8390656,8,e,t)}function gs(e,t){ms(2048,8,e,t)}function _s(e){I.flags|=4;var t=I.updateQueue;if(t===null)t=Lo(),I.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function vs(e){var t=Io().memoizedState;return _s({ref:t,nextImpl:e}),function(){if(z&2)throw Error(a(440));return t.impl.apply(void 0,arguments)}}function ys(e,t){return ms(4,2,e,t)}function bs(e,t){return ms(4,4,e,t)}function xs(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Ss(e,t,n){n=n==null?null:n.concat([e]),ms(4,4,xs.bind(null,t,e),n)}function Cs(){}function ws(e,t){var n=Io();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&Do(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ts(e,t){var n=Io();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&Do(t,r[1]))return r[0];if(r=e(),xo){Ke(!0);try{e()}finally{Ke(!1)}}return n.memoizedState=[r,t],r}function Es(e,t,n){return n===void 0||_o&1073741824&&!(H&261930)?e.memoizedState=t:(e.memoizedState=n,e=xu(),I.lanes|=e,Ql|=e,n)}function Ds(e,t,n,r){return kr(n,t)?n:no.current===null?!(_o&42)||_o&1073741824&&!(H&261930)?(lc=!0,e.memoizedState=n):(e=xu(),I.lanes|=e,Ql|=e,t):(e=Es(e,n,r),kr(e,t)||(lc=!0),e)}function Os(e,t,n,r,i){var a=E.p;E.p=a!==0&&8>a?a:8;var o=T.T,s={};T.T=s,Bs(e,!1,t,n);try{var c=i(),l=T.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?zs(e,t,ba(c,r),bu(e)):zs(e,t,r,bu(e))}catch(n){zs(e,t,{then:function(){},status:`rejected`,reason:n},bu())}finally{E.p=a,o!==null&&s.types!==null&&(o.types=s.types),T.T=o}}function ks(){}function As(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=js(e).queue;Os(e,i,t,ue,n===null?ks:function(){return Ms(e),n(r)})}function js(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ue,baseState:ue,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:ue},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ms(e){var t=js(e);t.next===null&&(t=e.alternate.memoizedState),zs(e,t.next.queue,{},bu())}function Ns(){return aa(ap)}function Ps(){return Io().memoizedState}function Fs(){return Io().memoizedState}function Is(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=bu();e=qa(n);var r=Ja(t,e,n);r!==null&&(Su(r,t,n),Ya(r,t,n)),t={cache:fa()},e.payload=t;return}t=t.return}}function Ls(e,t,n){var r=bu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Vs(e)?Hs(t,n):(n=si(e,t,n,r),n!==null&&(Su(n,e,r),Us(n,t,r)))}function Rs(e,t,n){zs(e,t,n,bu())}function zs(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Vs(e))Hs(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,kr(s,o))return oi(e,t,i,0),B===null&&ai(),!1}catch{}if(n=si(e,t,i,r),n!==null)return Su(n,e,r),Us(n,t,r),!0}return!1}function Bs(e,t,n,r){if(r={lane:2,revertLane:vd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Vs(e)){if(t)throw Error(a(479))}else t=si(e,n,r,2),t!==null&&Su(t,e,2)}function Vs(e){var t=e.alternate;return e===I||t!==null&&t===I}function Hs(e,t){bo=yo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Us(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,st(e,n)}}var Ws={readContext:aa,use:zo,useCallback:Eo,useContext:Eo,useEffect:Eo,useImperativeHandle:Eo,useLayoutEffect:Eo,useInsertionEffect:Eo,useMemo:Eo,useReducer:Eo,useRef:Eo,useState:Eo,useDebugValue:Eo,useDeferredValue:Eo,useTransition:Eo,useSyncExternalStore:Eo,useId:Eo,useHostTransitionStatus:Eo,useFormState:Eo,useActionState:Eo,useOptimistic:Eo,useMemoCache:Eo,useCacheRefresh:Eo};Ws.useEffectEvent=Eo;var Gs={readContext:aa,use:zo,useCallback:function(e,t){return Fo().memoizedState=[e,t===void 0?null:t],e},useContext:aa,useEffect:hs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),ps(4194308,4,xs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ps(4194308,4,e,t)},useInsertionEffect:function(e,t){ps(4,2,e,t)},useMemo:function(e,t){var n=Fo();t=t===void 0?null:t;var r=e();if(xo){Ke(!0);try{e()}finally{Ke(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Fo();if(n!==void 0){var i=n(t);if(xo){Ke(!0);try{n(t)}finally{Ke(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ls.bind(null,I,e),[r.memoizedState,e]},useRef:function(e){var t=Fo();return e={current:e},t.memoizedState=e},useState:function(e){e=Zo(e);var t=e.queue,n=Rs.bind(null,I,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Cs,useDeferredValue:function(e,t){return Es(Fo(),e,t)},useTransition:function(){var e=Zo(!1);return e=Os.bind(null,I,e.queue,!0,!1),Fo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=I,i=Fo();if(F){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),B===null)throw Error(a(349));H&127||Ko(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,hs(Jo.bind(null,r,o,e),[e]),r.flags|=2048,ds(9,{destroy:void 0},qo.bind(null,r,o,n,t),null),n},useId:function(){var e=Fo(),t=B.identifierPrefix;if(F){var n=Mi,r=ji;n=(r&~(1<<32-qe(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=So++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=To++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:Ns,useFormState:os,useActionState:os,useOptimistic:function(e){var t=Fo();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Bs.bind(null,I,!0,n),n.dispatch=t,[e,t]},useMemoCache:Bo,useCacheRefresh:function(){return Fo().memoizedState=Is.bind(null,I)},useEffectEvent:function(e){var t=Fo(),n={impl:e};return t.memoizedState=n,function(){if(z&2)throw Error(a(440));return n.impl.apply(void 0,arguments)}}},Ks={readContext:aa,use:zo,useCallback:ws,useContext:aa,useEffect:gs,useImperativeHandle:Ss,useInsertionEffect:ys,useLayoutEffect:bs,useMemo:Ts,useReducer:Ho,useRef:fs,useState:function(){return Ho(Vo)},useDebugValue:Cs,useDeferredValue:function(e,t){return Ds(Io(),L.memoizedState,e,t)},useTransition:function(){var e=Ho(Vo)[0],t=Io().memoizedState;return[typeof e==`boolean`?e:Ro(e),t]},useSyncExternalStore:Go,useId:Ps,useHostTransitionStatus:Ns,useFormState:ss,useActionState:ss,useOptimistic:function(e,t){return Qo(Io(),L,e,t)},useMemoCache:Bo,useCacheRefresh:Fs};Ks.useEffectEvent=vs;var qs={readContext:aa,use:zo,useCallback:ws,useContext:aa,useEffect:gs,useImperativeHandle:Ss,useInsertionEffect:ys,useLayoutEffect:bs,useMemo:Ts,useReducer:Wo,useRef:fs,useState:function(){return Wo(Vo)},useDebugValue:Cs,useDeferredValue:function(e,t){var n=Io();return L===null?Es(n,e,t):Ds(n,L.memoizedState,e,t)},useTransition:function(){var e=Wo(Vo)[0],t=Io().memoizedState;return[typeof e==`boolean`?e:Ro(e),t]},useSyncExternalStore:Go,useId:Ps,useHostTransitionStatus:Ns,useFormState:us,useActionState:us,useOptimistic:function(e,t){var n=Io();return L===null?(n.baseState=e,[e,n.queue.dispatch]):Qo(n,L,e,t)},useMemoCache:Bo,useCacheRefresh:Fs};qs.useEffectEvent=vs;function Js(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:m({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Ys={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=bu(),i=qa(r);i.payload=t,n!=null&&(i.callback=n),t=Ja(e,i,r),t!==null&&(Su(t,e,r),Ya(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=bu(),i=qa(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Ja(e,i,r),t!==null&&(Su(t,e,r),Ya(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=bu(),r=qa(n);r.tag=2,t!=null&&(r.callback=t),t=Ja(e,r,n),t!==null&&(Su(t,e,n),Ya(t,e,n))}};function Xs(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!Ar(n,r)||!Ar(i,a):!0}function Zs(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ys.enqueueReplaceState(t,t.state,null)}function Qs(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=m({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function $s(e){ti(e)}function ec(e){console.error(e)}function tc(e){ti(e)}function nc(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function rc(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function ic(e,t,n){return n=qa(n),n.tag=3,n.payload={element:null},n.callback=function(){nc(e,t)},n}function ac(e){return e=qa(e),e.tag=3,e}function oc(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){rc(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){rc(t,n,r),typeof i!=`function`&&(uu===null?uu=new Set([this]):uu.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function sc(e,t,n,r,i){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&na(t,n,i,!0),n=so.current,n!==null){switch(n.tag){case 31:case 13:return co===null?Pu():n.alternate===null&&Zl===0&&(Zl=3),n.flags&=-257,n.flags|=65536,n.lanes=i,r===ka?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Qu(e,r,i)),!1;case 22:return n.flags|=65536,r===ka?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Qu(e,r,i)),!1}throw Error(a(435,n.tag))}return Qu(e,r,i),Pu(),!1}if(F)return t=so.current,t===null?(r!==Vi&&(t=Error(a(423),{cause:r}),Ji(Ci(t,n))),e=e.current.alternate,e.flags|=65536,i&=-i,e.lanes|=i,r=Ci(r,n),i=ic(e.stateNode,r,i),Xa(e,i),Zl!==4&&(Zl=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=i,r!==Vi&&(e=Error(a(422),{cause:r}),Ji(Ci(e,n)))),!1;var o=Error(a(520),{cause:r});if(o=Ci(o,n),ru===null?ru=[o]:ru.push(o),Zl!==4&&(Zl=2),t===null)return!0;r=Ci(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=i&-i,n.lanes|=e,e=ic(n.stateNode,r,e),Xa(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(uu===null||!uu.has(o))))return n.flags|=65536,i&=-i,n.lanes|=i,i=ac(i),oc(i,e,n,r),Xa(n,i),!1}n=n.return}while(n!==null);return!1}var cc=Error(a(461)),lc=!1;function uc(e,t,n,r){t.child=e===null?Ua(t,null,n,r):Ha(t,e.child,n,r)}function dc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return ia(t),r=Oo(e,t,n,o,a,i),s=Mo(),e!==null&&!lc?(No(e,t,i),Fc(e,t,i)):(F&&s&&Fi(t),t.flags|=1,uc(e,t,r,i),t.child)}function fc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!mi(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,pc(e,t,a,r,i)):(e=_i(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!Ic(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?Ar:n,n(o,r)&&e.ref===t.ref)return Fc(e,t,i)}return t.flags|=1,e=hi(a,r),e.ref=t.ref,e.return=t,t.child=e}function pc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(Ar(a,r)&&e.ref===t.ref)if(lc=!1,t.pendingProps=r=a,Ic(e,i))e.flags&131072&&(lc=!0);else return t.lanes=e.lanes,Fc(e,t,i)}return xc(e,t,n,r,i)}function mc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return gc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&wa(t,a===null?null:a.cachePool),a===null?ao():io(t,a),fo(t);else return r=t.lanes=536870912,gc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&wa(t,null),ao(),po(t)):(wa(t,a.cachePool),io(t,a),po(t),t.memoizedState=null);return uc(e,t,i,n),t.child}function hc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function gc(e,t,n,r,i){var a=Ca();return a=a===null?null:{parent:da._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&wa(t,null),ao(),fo(t),e!==null&&na(e,t,r,!0),t.childLanes=i,null}function _c(e,t){return t=Ac({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function vc(e,t,n){return Ha(t,e.child,null,n),e=_c(t,t.pendingProps),e.flags|=2,mo(t),t.memoizedState=null,e}function yc(e,t,n){var r=t.pendingProps,i=(t.flags&128)!=0;if(t.flags&=-129,e===null){if(F){if(r.mode===`hidden`)return e=_c(t,r),t.lanes=536870912,hc(null,e);if(uo(t),(e=P)?(e=df(e,Bi),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ai===null?null:{id:ji,overflow:Mi},retryLane:536870912,hydrationErrors:null},n=bi(e),n.return=t,t.child=n,Ri=t,P=null)):e=null,e===null)throw Hi(t);return t.lanes=536870912,null}return _c(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(uo(t),i)if(t.flags&256)t.flags&=-257,t=vc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(a(558));else if(lc||na(e,t,n,!1),i=(n&e.childLanes)!==0,lc||i){if(r=B,r!==null&&(s=ct(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,ci(e,s),Su(r,e,s),cc;Pu(),t=vc(e,t,n)}else e=o.treeContext,P=hf(s.nextSibling),Ri=t,F=!0,zi=null,Bi=!1,e!==null&&Li(t,e),t=_c(t,r),t.flags|=4096;return t}return e=hi(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function bc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(a(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function xc(e,t,n,r,i){return ia(t),n=Oo(e,t,n,r,void 0,i),r=Mo(),e!==null&&!lc?(No(e,t,i),Fc(e,t,i)):(F&&r&&Fi(t),t.flags|=1,uc(e,t,n,i),t.child)}function Sc(e,t,n,r,i,a){return ia(t),t.updateQueue=null,n=Ao(t,r,n,i),ko(e),r=Mo(),e!==null&&!lc?(No(e,t,a),Fc(e,t,a)):(F&&r&&Fi(t),t.flags|=1,uc(e,t,n,a),t.child)}function Cc(e,t,n,r,i){if(ia(t),t.stateNode===null){var a=di,o=n.contextType;typeof o==`object`&&o&&(a=aa(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Ys,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Ga(t),o=n.contextType,a.context=typeof o==`object`&&o?aa(o):di,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Js(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Ys.enqueueReplaceState(a,a.state,null),$a(t,r,a,i),Qa(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=Qs(n,s);a.props=c;var l=a.context,u=n.contextType;o=di,typeof u==`object`&&u&&(o=aa(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Zs(t,a,r,o),Wa=!1;var f=t.memoizedState;a.state=f,$a(t,r,a,i),Qa(),l=t.memoizedState,s||f!==l||Wa?(typeof d==`function`&&(Js(t,n,d,r),l=t.memoizedState),(c=Wa||Xs(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Ka(e,t),o=t.memoizedProps,u=Qs(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=di,typeof l==`object`&&l&&(c=aa(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Zs(t,a,r,c),Wa=!1,f=t.memoizedState,a.state=f,$a(t,r,a,i),Qa();var p=t.memoizedState;o!==d||f!==p||Wa||e!==null&&e.dependencies!==null&&ra(e.dependencies)?(typeof s==`function`&&(Js(t,n,s,r),p=t.memoizedState),(u=Wa||Xs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&ra(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,bc(e,t),r=(t.flags&128)!=0,a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Ha(t,e.child,null,i),t.child=Ha(t,null,n,i)):uc(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Fc(e,t,i),e}function wc(e,t,n,r){return Ki(),t.flags|=256,uc(e,t,n,r),t.child}var Tc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Ec(e){return{baseLanes:e,cachePool:Ta()}}function Dc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=tu),e}function Oc(e,t,n){var r=t.pendingProps,i=!1,o=(t.flags&128)!=0,s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:(ho.current&2)!=0),s&&(i=!0,t.flags&=-129),s=(t.flags&32)!=0,t.flags&=-33,e===null){if(F){if(i?lo(t):po(t),(e=P)?(e=df(e,Bi),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ai===null?null:{id:ji,overflow:Mi},retryLane:536870912,hydrationErrors:null},n=bi(e),n.return=t,t.child=n,Ri=t,P=null)):e=null,e===null)throw Hi(t);return pf(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,i?(po(t),i=t.mode,c=Ac({mode:`hidden`,children:c},i),r=vi(r,i,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=Ec(n),r.childLanes=Dc(e,s,n),t.memoizedState=Tc,hc(null,r)):(lo(t),kc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(lo(t),t.flags&=-257,t=jc(e,t,n)):t.memoizedState===null?(po(t),c=r.fallback,i=t.mode,r=Ac({mode:`visible`,children:r.children},i),c=vi(c,i,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Ha(t,e.child,null,n),r=t.child,r.memoizedState=Ec(n),r.childLanes=Dc(e,s,n),t.memoizedState=Tc,t=hc(null,r)):(po(t),t.child=e.child,t.flags|=128,t=null);else if(lo(t),pf(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(a(419)),r.stack=``,r.digest=s,Ji({value:r,source:null,stack:null}),t=jc(e,t,n)}else if(lc||na(e,t,n,!1),s=(n&e.childLanes)!==0,lc||s){if(s=B,s!==null&&(r=ct(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,ci(e,r),Su(s,e,r),cc;ff(c)||Pu(),t=jc(e,t,n)}else ff(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,P=hf(c.nextSibling),Ri=t,F=!0,zi=null,Bi=!1,e!==null&&Li(t,e),t=kc(t,r.children),t.flags|=4096);return t}return i?(po(t),c=r.fallback,i=t.mode,l=e.child,u=l.sibling,r=hi(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=vi(c,i,n,null),c.flags|=2):c=hi(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,hc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=Ec(n):(i=c.cachePool,i===null?i=Ta():(l=da._currentValue,i=i.parent===l?i:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:i}),r.memoizedState=c,r.childLanes=Dc(e,s,n),t.memoizedState=Tc,hc(e.child,r)):(lo(t),n=e.child,e=n.sibling,n=hi(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function kc(e,t){return t=Ac({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Ac(e,t){return e=pi(22,e,null,t),e.lanes=0,e}function jc(e,t,n){return Ha(t,e.child,null,n),e=kc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Mc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),ea(e.return,t,n)}function Nc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function Pc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=ho.current,s=(o&2)!=0;if(s?(o=o&1|2,t.flags|=128):o&=1,D(ho,o),uc(e,t,r,n),r=F?Di:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Mc(e,n,t);else if(e.tag===19)Mc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&go(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Nc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&go(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Nc(t,!0,n,null,a,r);break;case`together`:Nc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Fc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Ql|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(na(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(a(153));if(t.child!==null){for(e=t.child,n=hi(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=hi(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Ic(e,t){return(e.lanes&t)===0?(e=e.dependencies,!!(e!==null&&ra(e))):!0}function Lc(e,t,n){switch(t.tag){case 3:ye(t,t.stateNode.containerInfo),Qi(t,da,e.memoizedState.cache),Ki();break;case 27:case 5:xe(t);break;case 4:ye(t,t.stateNode.containerInfo);break;case 10:Qi(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,uo(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(lo(t),e=Fc(e,t,n),e===null?null:e.sibling):Oc(e,t,n):(lo(t),t.flags|=128,null);lo(t);break;case 19:var i=(e.flags&128)!=0;if(r=(n&t.childLanes)!==0,r||=(na(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return Pc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),D(ho,ho.current),r)break;return null;case 22:return t.lanes=0,mc(e,t,n,t.pendingProps);case 24:Qi(t,da,e.memoizedState.cache)}return Fc(e,t,n)}function Rc(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)lc=!0;else{if(!Ic(e,n)&&!(t.flags&128))return lc=!1,Lc(e,t,n);lc=!!(e.flags&131072)}else lc=!1,F&&t.flags&1048576&&Pi(t,Di,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Ma(t.elementType),t.type=e,typeof e==`function`)mi(e)?(r=Qs(e,r),t.tag=1,t=Cc(null,t,e,r,n)):(t.tag=0,t=xc(null,t,e,r,n));else{if(e!=null){var i=e.$$typeof;if(i===C){t.tag=11,t=dc(null,t,e,r,n);break a}else if(i===ne){t.tag=14,t=fc(null,t,e,r,n);break a}}throw t=ce(e)||e,Error(a(306,t,``))}}return t;case 0:return xc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,i=Qs(r,t.pendingProps),Cc(e,t,r,i,n);case 3:a:{if(ye(t,t.stateNode.containerInfo),e===null)throw Error(a(387));r=t.pendingProps;var o=t.memoizedState;i=o.element,Ka(e,t),$a(t,r,null,n);var s=t.memoizedState;if(r=s.cache,Qi(t,da,r),r!==o.cache&&ta(t,[da],n,!0),Qa(),r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=wc(e,t,r,n);break a}else if(r!==i){i=Ci(Error(a(424)),t),Ji(i),t=wc(e,t,r,n);break a}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(P=hf(e.firstChild),Ri=t,F=!0,zi=null,Bi=!0,n=Ua(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Ki(),r===i){t=Fc(e,t,n);break a}uc(e,t,r,n)}t=t.child}return t;case 26:return bc(e,t),e===null?(n=If(t.type,null,t.pendingProps,null))?t.memoizedState=n:F||(n=t.type,e=t.pendingProps,r=qd(_e.current).createElement(n),r[mt]=t,r[ht]=e,Vd(r,n,e),Ot(r),t.stateNode=r):t.memoizedState=If(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return xe(t),e===null&&F&&(r=t.stateNode=yf(t.type,t.pendingProps,_e.current),Ri=t,Bi=!0,i=P,af(t.type)?(gf=i,P=hf(r.firstChild)):P=i),uc(e,t,t.pendingProps.children,n),bc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&F&&((i=r=P)&&(r=lf(r,t.type,t.pendingProps,Bi),r===null?i=!1:(t.stateNode=r,Ri=t,P=hf(r.firstChild),Bi=!1,i=!0)),i||Hi(t)),xe(t),i=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,Xd(i,o)?r=null:s!==null&&Xd(i,s)&&(t.flags|=32),t.memoizedState!==null&&(i=Oo(e,t,jo,null,null,n),ap._currentValue=i),bc(e,t),uc(e,t,r,n),t.child;case 6:return e===null&&F&&((e=n=P)&&(n=uf(n,t.pendingProps,Bi),n===null?e=!1:(t.stateNode=n,Ri=t,P=null,e=!0)),e||Hi(t)),null;case 13:return Oc(e,t,n);case 4:return ye(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ha(t,null,r,n):uc(e,t,r,n),t.child;case 11:return dc(e,t,t.type,t.pendingProps,n);case 7:return uc(e,t,t.pendingProps,n),t.child;case 8:return uc(e,t,t.pendingProps.children,n),t.child;case 12:return uc(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,Qi(t,t.type,r.value),uc(e,t,r.children,n),t.child;case 9:return i=t.type._context,r=t.pendingProps.children,ia(t),i=aa(i),r=r(i),t.flags|=1,uc(e,t,r,n),t.child;case 14:return fc(e,t,t.type,t.pendingProps,n);case 15:return pc(e,t,t.type,t.pendingProps,n);case 19:return Pc(e,t,n);case 31:return yc(e,t,n);case 22:return mc(e,t,n,t.pendingProps);case 24:return ia(t),r=aa(da),e===null?(i=Ca(),i===null&&(i=B,o=fa(),i.pooledCache=o,o.refCount++,o!==null&&(i.pooledCacheLanes|=n),i=o),t.memoizedState={parent:r,cache:i},Ga(t),Qi(t,da,i)):((e.lanes&n)!==0&&(Ka(e,t),$a(t,null,null,n),Qa()),i=e.memoizedState,o=t.memoizedState,i.parent===r?(r=o.cache,Qi(t,da,r),r!==i.cache&&ta(t,[da],n,!0)):(i={parent:r,cache:r},t.memoizedState=i,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=i),Qi(t,da,r))),uc(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(a(156,t.tag))}function zc(e){e.flags|=4}function Bc(e,t,n,r,i){if((t=(e.mode&32)!=0)&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(ju())e.flags|=8192;else throw Na=ka,Da}else e.flags&=-16777217}function Vc(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Zf(t))if(ju())e.flags|=8192;else throw Na=ka,Da}function Hc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:it(),e.lanes|=t,nu|=t)}function Uc(e,t){if(!F)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function R(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Wc(e,t,n){var r=t.pendingProps;switch(Ii(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return R(t),null;case 1:return R(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),$i(da),be(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Gi(t)?zc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,qi())),R(t),null;case 26:var i=t.type,o=t.memoizedState;return e===null?(zc(t),o===null?(R(t),Bc(t,i,null,r,n)):(R(t),Vc(t,o))):o?o===e.memoizedState?(R(t),t.flags&=-16777217):(zc(t),R(t),Vc(t,o)):(e=e.memoizedProps,e!==r&&zc(t),R(t),Bc(t,i,e,r,n)),null;case 27:if(Se(t),n=_e.current,i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&zc(t);else{if(!r){if(t.stateNode===null)throw Error(a(166));return R(t),null}e=he.current,Gi(t)?Ui(t,e):(e=yf(i,r,n),t.stateNode=e,zc(t))}return R(t),null;case 5:if(Se(t),i=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&zc(t);else{if(!r){if(t.stateNode===null)throw Error(a(166));return R(t),null}if(o=he.current,Gi(t))Ui(t,o);else{var s=qd(_e.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,i);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,i);break;default:switch(i){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,i);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,i);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}o[mt]=t,o[ht]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Vd(o,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&zc(t)}}return R(t),Bc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&zc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=_e.current,Gi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=Ri,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[mt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||zd(e.nodeValue,n)),e||Hi(t,!0)}else e=qd(e).createTextNode(r),e[mt]=t,t.stateNode=e}return R(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Gi(t),n!==null){if(e===null){if(!r)throw Error(a(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(557));e[mt]=t}else Ki(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;R(t),e=!1}else n=qi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(mo(t),t):(mo(t),null);if(t.flags&128)throw Error(a(558))}return R(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Gi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(a(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(a(317));i[mt]=t}else Ki(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;R(t),i=!1}else i=qi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(mo(t),t):(mo(t),null)}return mo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Hc(t,t.updateQueue),R(t),null);case 4:return be(),e===null&&kd(t.stateNode.containerInfo),R(t),null;case 10:return $i(t.type),R(t),null;case 19:if(me(ho),r=t.memoizedState,r===null)return R(t),null;if(i=(t.flags&128)!=0,o=r.rendering,o===null)if(i)Uc(r,!1);else{if(Zl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=go(e),o!==null){for(t.flags|=128,Uc(r,!1),e=o.updateQueue,t.updateQueue=e,Hc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)gi(n,e),n=n.sibling;return D(ho,ho.current&1|2),F&&Ni(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Fe()>cu&&(t.flags|=128,i=!0,Uc(r,!1),t.lanes=4194304)}else{if(!i)if(e=go(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Hc(t,e),Uc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!F)return R(t),null}else 2*Fe()-r.renderingStartTime>cu&&n!==536870912&&(t.flags|=128,i=!0,Uc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(R(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Fe(),e.sibling=null,n=ho.current,D(ho,i?n&1|2:n&1),F&&Ni(t,r.treeForkCount),e);case 22:case 23:return mo(t),oo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(R(t),t.subtreeFlags&6&&(t.flags|=8192)):R(t),n=t.updateQueue,n!==null&&Hc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&me(Sa),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),$i(da),R(t),null;case 25:return null;case 30:return null}throw Error(a(156,t.tag))}function Gc(e,t){switch(Ii(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return $i(da),be(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Se(t),null;case 31:if(t.memoizedState!==null){if(mo(t),t.alternate===null)throw Error(a(340));Ki()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(mo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));Ki()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return me(ho),null;case 4:return be(),null;case 10:return $i(t.type),null;case 22:case 23:return mo(t),oo(),e!==null&&me(Sa),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return $i(da),null;case 25:return null;default:return null}}function Kc(e,t){switch(Ii(t),t.tag){case 3:$i(da),be();break;case 26:case 27:case 5:Se(t);break;case 4:be();break;case 31:t.memoizedState!==null&&mo(t);break;case 13:mo(t);break;case 19:me(ho);break;case 10:$i(t.type);break;case 22:case 23:mo(t),oo(),e!==null&&me(Sa);break;case 24:$i(da)}}function qc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){W(t,t.return,e)}}function Jc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){W(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){W(t,t.return,e)}}function Yc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{to(t,n)}catch(t){W(e,e.return,t)}}}function Xc(e,t,n){n.props=Qs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){W(e,t,n)}}function Zc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){W(e,t,n)}}function Qc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){W(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){W(e,t,n)}else n.current=null}function $c(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){W(e,e.return,t)}}function el(e,t,n){try{var r=e.stateNode;Hd(r,e.type,n,t),r[ht]=t}catch(t){W(e,e.return,t)}}function tl(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&af(e.type)||e.tag===4}function nl(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||tl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&af(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function rl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=ln));else if(r!==4&&(r===27&&af(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(rl(e,t,n),e=e.sibling;e!==null;)rl(e,t,n),e=e.sibling}function il(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&af(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(il(e,t,n),e=e.sibling;e!==null;)il(e,t,n),e=e.sibling}function al(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Vd(t,r,n),t[mt]=e,t[ht]=n}catch(t){W(e,e.return,t)}}var ol=!1,sl=!1,cl=!1,ll=typeof WeakSet==`function`?WeakSet:Set,ul=null;function dl(e,t){if(e=e.containerInfo,Gd=mp,e=Pr(e),Fr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=s+i),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Kd={focusedElem:e,selectionRange:n},mp=!1,ul=t;ul!==null;)if(t=ul,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,ul=e;else for(;ul!==null;){switch(t=ul,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)i=e[n],i.ref.impl=i.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,i=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=Qs(n.type,i);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){W(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)cf(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:cf(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(a(163))}if(e=t.sibling,e!==null){e.return=t.return,ul=e;break}ul=t.return}}function fl(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Dl(e,n),r&4&&qc(5,n);break;case 1:if(Dl(e,n),r&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){W(n,n.return,e)}else{var i=Qs(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){W(n,n.return,e)}}r&64&&Yc(n),r&512&&Zc(n,n.return);break;case 3:if(Dl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{to(e,t)}catch(e){W(n,n.return,e)}}break;case 27:t===null&&r&4&&al(n);case 26:case 5:Dl(e,n),t===null&&r&4&&$c(n),r&512&&Zc(n,n.return);break;case 12:Dl(e,n);break;case 31:Dl(e,n),r&4&&vl(e,n);break;case 13:Dl(e,n),r&4&&yl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=td.bind(null,n),mf(e,n))));break;case 22:if(r=n.memoizedState!==null||ol,!r){t=t!==null&&t.memoizedState!==null||sl,i=ol;var a=sl;ol=r,(sl=t)&&!a?kl(e,n,(n.subtreeFlags&8772)!=0):Dl(e,n),ol=i,sl=a}break;case 30:break;default:Dl(e,n)}}function pl(e){var t=e.alternate;t!==null&&(e.alternate=null,pl(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&St(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var ml=null,hl=!1;function gl(e,t,n){for(n=n.child;n!==null;)_l(e,t,n),n=n.sibling}function _l(e,t,n){if(Ge&&typeof Ge.onCommitFiberUnmount==`function`)try{Ge.onCommitFiberUnmount(We,n)}catch{}switch(n.tag){case 26:sl||Qc(n,t),gl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:sl||Qc(n,t);var r=ml,i=hl;af(n.type)&&(ml=n.stateNode,hl=!1),gl(e,t,n),bf(n.stateNode),ml=r,hl=i;break;case 5:sl||Qc(n,t);case 6:if(r=ml,i=hl,ml=null,gl(e,t,n),ml=r,hl=i,ml!==null)if(hl)try{(ml.nodeType===9?ml.body:ml.nodeName===`HTML`?ml.ownerDocument.body:ml).removeChild(n.stateNode)}catch(e){W(n,t,e)}else try{ml.removeChild(n.stateNode)}catch(e){W(n,t,e)}break;case 18:ml!==null&&(hl?(e=ml,of(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Bp(e)):of(ml,n.stateNode));break;case 4:r=ml,i=hl,ml=n.stateNode.containerInfo,hl=!0,gl(e,t,n),ml=r,hl=i;break;case 0:case 11:case 14:case 15:Jc(2,n,t),sl||Jc(4,n,t),gl(e,t,n);break;case 1:sl||(Qc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Xc(n,t,r)),gl(e,t,n);break;case 21:gl(e,t,n);break;case 22:sl=(r=sl)||n.memoizedState!==null,gl(e,t,n),sl=r;break;default:gl(e,t,n)}}function vl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Bp(e)}catch(e){W(t,t.return,e)}}}function yl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Bp(e)}catch(e){W(t,t.return,e)}}function bl(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new ll),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new ll),t;default:throw Error(a(435,e.tag))}}function xl(e,t){var n=bl(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=nd.bind(null,e,t);t.then(r,r)}})}function Sl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(af(c.type)){ml=c.stateNode,hl=!1;break a}break;case 5:ml=c.stateNode,hl=!1;break a;case 3:case 4:ml=c.stateNode.containerInfo,hl=!0;break a}c=c.return}if(ml===null)throw Error(a(160));_l(o,s,i),ml=null,hl=!1,o=i.alternate,o!==null&&(o.return=null),i.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)wl(t,e),t=t.sibling}var Cl=null;function wl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:Sl(t,e),Tl(e),r&4&&(Jc(3,e,e.return),qc(3,e),Jc(5,e,e.return));break;case 1:Sl(t,e),Tl(e),r&512&&(sl||n===null||Qc(n,n.return)),r&64&&ol&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var i=Cl;if(Sl(t,e),Tl(e),r&512&&(sl||n===null||Qc(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null)if(r===null)if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,i=i.ownerDocument||i;b:switch(r){case`title`:o=i.getElementsByTagName(`title`)[0],(!o||o[xt]||o[mt]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=i.createElement(r),i.head.insertBefore(o,i.querySelector(`head > title`))),Vd(o,r,n),o[mt]=e,Ot(o),r=o;break a;case`link`:var s=Jf(`link`,`href`,i).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=i.createElement(r),Vd(o,r,n),i.head.appendChild(o);break;case`meta`:if(s=Jf(`meta`,`content`,i).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=i.createElement(r),Vd(o,r,n),i.head.appendChild(o);break;default:throw Error(a(468,r))}o[mt]=e,Ot(o),r=o}e.stateNode=r}else Yf(i,e.type,e.stateNode);else e.stateNode=Uf(i,r,e.memoizedProps);else o===r?r===null&&e.stateNode!==null&&el(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?Yf(i,e.type,e.stateNode):Uf(i,r,e.memoizedProps))}break;case 27:Sl(t,e),Tl(e),r&512&&(sl||n===null||Qc(n,n.return)),n!==null&&r&4&&el(e,e.memoizedProps,n.memoizedProps);break;case 5:if(Sl(t,e),Tl(e),r&512&&(sl||n===null||Qc(n,n.return)),e.flags&32){i=e.stateNode;try{en(i,``)}catch(t){W(e,e.return,t)}}r&4&&e.stateNode!=null&&(i=e.memoizedProps,el(e,i,n===null?i:n.memoizedProps)),r&1024&&(cl=!0);break;case 6:if(Sl(t,e),Tl(e),r&4){if(e.stateNode===null)throw Error(a(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){W(e,e.return,t)}}break;case 3:if(qf=null,i=Cl,Cl=Cf(t.containerInfo),Sl(t,e),Cl=i,Tl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Bp(t.containerInfo)}catch(t){W(e,e.return,t)}cl&&(cl=!1,El(e));break;case 4:r=Cl,Cl=Cf(e.stateNode.containerInfo),Sl(t,e),Tl(e),Cl=r;break;case 12:Sl(t,e),Tl(e);break;case 31:Sl(t,e),Tl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,xl(e,r)));break;case 13:Sl(t,e),Tl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(ou=Fe()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,xl(e,r)));break;case 22:i=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=ol,d=sl;if(ol=u||i,sl=d||l,Sl(t,e),sl=d,ol=u,Tl(e),r&8192)a:for(t=e.stateNode,t._visibility=i?t._visibility&-2:t._visibility|1,i&&(n===null||l||ol||sl||Ol(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,i)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){W(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=i?``:l.memoizedProps}catch(e){W(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;i?sf(m,!0):sf(l.stateNode,!1)}catch(e){W(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,xl(e,n))));break;case 19:Sl(t,e),Tl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,xl(e,r)));break;case 30:break;case 21:break;default:Sl(t,e),Tl(e)}}function Tl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(tl(r)){n=r;break}r=r.return}if(n==null)throw Error(a(160));switch(n.tag){case 27:var i=n.stateNode;il(e,nl(e),i);break;case 5:var o=n.stateNode;n.flags&32&&(en(o,``),n.flags&=-33),il(e,nl(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;rl(e,nl(e),s);break;default:throw Error(a(161))}}catch(t){W(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function El(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;El(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Dl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)fl(e,t.alternate,t),t=t.sibling}function Ol(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Jc(4,t,t.return),Ol(t);break;case 1:Qc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Xc(t,t.return,n),Ol(t);break;case 27:bf(t.stateNode);case 26:case 5:Qc(t,t.return),Ol(t);break;case 22:t.memoizedState===null&&Ol(t);break;case 30:Ol(t);break;default:Ol(t)}e=e.sibling}}function kl(e,t,n){for(n&&=(t.subtreeFlags&8772)!=0,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:kl(i,a,n),qc(4,a);break;case 1:if(kl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){W(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)eo(c[i],s)}catch(e){W(r,r.return,e)}}n&&o&64&&Yc(a),Zc(a,a.return);break;case 27:al(a);case 26:case 5:kl(i,a,n),n&&r===null&&o&4&&$c(a),Zc(a,a.return);break;case 12:kl(i,a,n);break;case 31:kl(i,a,n),n&&o&4&&vl(i,a);break;case 13:kl(i,a,n),n&&o&4&&yl(i,a);break;case 22:a.memoizedState===null&&kl(i,a,n),Zc(a,a.return);break;case 30:break;default:kl(i,a,n)}t=t.sibling}}function Al(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&pa(n))}function jl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&pa(e))}function Ml(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Nl(e,t,n,r),t=t.sibling}function Nl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:Ml(e,t,n,r),i&2048&&qc(9,t);break;case 1:Ml(e,t,n,r);break;case 3:Ml(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&pa(e)));break;case 12:if(i&2048){Ml(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){W(t,t.return,e)}}else Ml(e,t,n,r);break;case 31:Ml(e,t,n,r);break;case 13:Ml(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?Ml(e,t,n,r):(a._visibility|=2,Pl(e,t,n,r,(t.subtreeFlags&10256)!=0||!1)):a._visibility&2?Ml(e,t,n,r):Fl(e,t),i&2048&&Al(o,t);break;case 24:Ml(e,t,n,r),i&2048&&jl(t.alternate,t);break;default:Ml(e,t,n,r)}}function Pl(e,t,n,r,i){for(i&&=(t.subtreeFlags&10256)!=0||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Pl(a,o,s,c,i),qc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Pl(a,o,s,c,i)):u._visibility&2?Pl(a,o,s,c,i):Fl(a,o),i&&l&2048&&Al(o.alternate,o);break;case 24:Pl(a,o,s,c,i),i&&l&2048&&jl(o.alternate,o);break;default:Pl(a,o,s,c,i)}t=t.sibling}}function Fl(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Fl(n,r),i&2048&&Al(r.alternate,r);break;case 24:Fl(n,r),i&2048&&jl(r.alternate,r);break;default:Fl(n,r)}t=t.sibling}}var Il=8192;function Ll(e,t,n){if(e.subtreeFlags&Il)for(e=e.child;e!==null;)Rl(e,t,n),e=e.sibling}function Rl(e,t,n){switch(e.tag){case 26:Ll(e,t,n),e.flags&Il&&e.memoizedState!==null&&Qf(n,Cl,e.memoizedState,e.memoizedProps);break;case 5:Ll(e,t,n);break;case 3:case 4:var r=Cl;Cl=Cf(e.stateNode.containerInfo),Ll(e,t,n),Cl=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Il,Il=16777216,Ll(e,t,n),Il=r):Ll(e,t,n));break;default:Ll(e,t,n)}}function zl(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Bl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];ul=r,Ul(r,e)}zl(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Vl(e),e=e.sibling}function Vl(e){switch(e.tag){case 0:case 11:case 15:Bl(e),e.flags&2048&&Jc(9,e,e.return);break;case 3:Bl(e);break;case 12:Bl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Hl(e)):Bl(e);break;default:Bl(e)}}function Hl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];ul=r,Ul(r,e)}zl(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Jc(8,t,t.return),Hl(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Hl(t));break;default:Hl(t)}e=e.sibling}}function Ul(e,t){for(;ul!==null;){var n=ul;switch(n.tag){case 0:case 11:case 15:Jc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:pa(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,ul=r;else a:for(n=e;ul!==null;){r=ul;var i=r.sibling,a=r.return;if(pl(r),r===n){ul=null;break a}if(i!==null){i.return=a,ul=i;break a}ul=a}}}var Wl={getCacheForType:function(e){var t=aa(da),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return aa(da).controller.signal}},Gl=typeof WeakMap==`function`?WeakMap:Map,z=0,B=null,V=null,H=0,U=0,Kl=null,ql=!1,Jl=!1,Yl=!1,Xl=0,Zl=0,Ql=0,$l=0,eu=0,tu=0,nu=0,ru=null,iu=null,au=!1,ou=0,su=0,cu=1/0,lu=null,uu=null,du=0,fu=null,pu=null,mu=0,hu=0,gu=null,_u=null,vu=0,yu=null;function bu(){return z&2&&H!==0?H&-H:T.T===null?dt():vd()}function xu(){if(tu===0)if(!(H&536870912)||F){var e=Qe;Qe<<=1,!(Qe&3932160)&&(Qe=262144),tu=e}else tu=536870912;return e=so.current,e!==null&&(e.flags|=32),tu}function Su(e,t,n){(e===B&&(U===2||U===9)||e.cancelPendingCommit!==null)&&(ku(e,0),Eu(e,H,tu,!1)),k(e,n),(!(z&2)||e!==B)&&(e===B&&(!(z&2)&&($l|=n),Zl===4&&Eu(e,H,tu,!1)),ud(e))}function Cu(e,t,n){if(z&6)throw Error(a(327));var r=!n&&(t&127)==0&&(t&e.expiredLanes)===0||nt(e,t),i=r?Lu(e,t):Fu(e,t,!0),o=r;do{if(i===0){Jl&&!r&&Eu(e,t,0,!1);break}else{if(n=e.current.alternate,o&&!Tu(n)){i=Fu(e,t,!1),o=!1;continue}if(i===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;i=ru;var l=c.current.memoizedState.isDehydrated;if(l&&(ku(c,s).flags|=256),s=Fu(c,s,!1),s!==2){if(Yl&&!l){c.errorRecoveryDisabledLanes|=o,$l|=o,i=4;break a}o=iu,iu=i,o!==null&&(iu===null?iu=o:iu.push.apply(iu,o))}i=s}if(o=!1,i!==2)continue}}if(i===1){ku(e,0),Eu(e,t,0,!0);break}a:{switch(r=e,o=i,o){case 0:case 1:throw Error(a(345));case 4:if((t&4194048)!==t)break;case 6:Eu(r,t,tu,!ql);break a;case 2:iu=null;break;case 3:case 5:break;default:throw Error(a(329))}if((t&62914560)===t&&(i=ou+300-Fe(),10<i)){if(Eu(r,t,tu,!ql),tt(r,0,!0)!==0)break a;mu=t,r.timeoutHandle=$d(wu.bind(null,r,n,iu,lu,au,t,tu,$l,nu,ql,o,`Throttled`,-0,0),i);break a}wu(r,n,iu,lu,au,t,tu,$l,nu,ql,o,null,-0,0)}}break}while(1);ud(e)}function wu(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:ln},Rl(t,a,d);var m=(a&62914560)===a?ou-Fe():(a&4194048)===a?su-Fe():0;if(m=ep(d,m),m!==null){mu=a,e.cancelPendingCommit=m(Wu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),Eu(e,a,o,!l);return}}Wu(e,t,a,n,r,i,o,s,c)}function Tu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!kr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Eu(e,t,n,r){t&=~eu,t&=~$l,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-qe(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&ot(e,n,t)}function Du(){return z&6?!0:(dd(0,!1),!1)}function Ou(){if(V!==null){if(U===0)var e=V.return;else e=V,Zi=Xi=null,Po(e),Ia=null,La=0,e=V;for(;e!==null;)Kc(e.alternate,e),e=e.return;V=null}}function ku(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,ef(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),mu=0,Ou(),B=e,V=n=hi(e.current,null),H=t,U=0,Kl=null,ql=!1,Jl=nt(e,t),Yl=!1,nu=tu=eu=$l=Ql=Zl=0,iu=ru=null,au=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-qe(r),a=1<<i;t|=e[i],r&=~a}return Xl=t,ai(),n}function Au(e,t){I=null,T.H=Ws,t===Ea||t===Oa?(t=Pa(),U=3):t===Da?(t=Pa(),U=4):U=t===cc?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Kl=t,V===null&&(Zl=1,nc(e,Ci(t,e.current)))}function ju(){var e=so.current;return e===null?!0:(H&4194048)===H?co===null:(H&62914560)===H||H&536870912?e===co:!1}function Mu(){var e=T.H;return T.H=Ws,e===null?Ws:e}function Nu(){var e=T.A;return T.A=Wl,e}function Pu(){Zl=4,ql||(H&4194048)!==H&&so.current!==null||(Jl=!0),!(Ql&134217727)&&!($l&134217727)||B===null||Eu(B,H,tu,!1)}function Fu(e,t,n){var r=z;z|=2;var i=Mu(),a=Nu();(B!==e||H!==t)&&(lu=null,ku(e,t)),t=!1;var o=Zl;a:do try{if(U!==0&&V!==null){var s=V,c=Kl;switch(U){case 8:Ou(),o=6;break a;case 3:case 2:case 9:case 6:so.current===null&&(t=!0);var l=U;if(U=0,Kl=null,Vu(e,s,c,l),n&&Jl){o=0;break a}break;default:l=U,U=0,Kl=null,Vu(e,s,c,l)}}Iu(),o=Zl;break}catch(t){Au(e,t)}while(1);return t&&e.shellSuspendCounter++,Zi=Xi=null,z=r,T.H=i,T.A=a,V===null&&(B=null,H=0,ai()),o}function Iu(){for(;V!==null;)zu(V)}function Lu(e,t){var n=z;z|=2;var r=Mu(),i=Nu();B!==e||H!==t?(lu=null,cu=Fe()+500,ku(e,t)):Jl=nt(e,t);a:do try{if(U!==0&&V!==null){t=V;var o=Kl;b:switch(U){case 1:U=0,Kl=null,Vu(e,t,o,1);break;case 2:case 9:if(Aa(o)){U=0,Kl=null,Bu(t);break}t=function(){U!==2&&U!==9||B!==e||(U=7),ud(e)},o.then(t,t);break a;case 3:U=7;break a;case 4:U=5;break a;case 7:Aa(o)?(U=0,Kl=null,Bu(t)):(U=0,Kl=null,Vu(e,t,o,7));break;case 5:var s=null;switch(V.tag){case 26:s=V.memoizedState;case 5:case 27:var c=V;if(s?Zf(s):c.stateNode.complete){U=0,Kl=null;var l=c.sibling;if(l!==null)V=l;else{var u=c.return;u===null?V=null:(V=u,Hu(u))}break b}}U=0,Kl=null,Vu(e,t,o,5);break;case 6:U=0,Kl=null,Vu(e,t,o,6);break;case 8:Ou(),Zl=6;break a;default:throw Error(a(462))}}Ru();break}catch(t){Au(e,t)}while(1);return Zi=Xi=null,T.H=r,T.A=i,z=n,V===null?(B=null,H=0,ai(),Zl):0}function Ru(){for(;V!==null&&!Ne();)zu(V)}function zu(e){var t=Rc(e.alternate,e,Xl);e.memoizedProps=e.pendingProps,t===null?Hu(e):V=t}function Bu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Sc(n,t,t.pendingProps,t.type,void 0,H);break;case 11:t=Sc(n,t,t.pendingProps,t.type.render,t.ref,H);break;case 5:Po(t);default:Kc(n,t),t=V=gi(t,Xl),t=Rc(n,t,Xl)}e.memoizedProps=e.pendingProps,t===null?Hu(e):V=t}function Vu(e,t,n,r){Zi=Xi=null,Po(t),Ia=null,La=0;var i=t.return;try{if(sc(e,i,t,n,H)){Zl=1,nc(e,Ci(n,e.current)),V=null;return}}catch(t){if(i!==null)throw V=i,t;Zl=1,nc(e,Ci(n,e.current)),V=null;return}t.flags&32768?(F||r===1?e=!0:Jl||H&536870912?e=!1:(ql=e=!0,(r===2||r===9||r===3||r===6)&&(r=so.current,r!==null&&r.tag===13&&(r.flags|=16384))),Uu(t,e)):Hu(t)}function Hu(e){var t=e;do{if(t.flags&32768){Uu(t,ql);return}e=t.return;var n=Wc(t.alternate,t,Xl);if(n!==null){V=n;return}if(t=t.sibling,t!==null){V=t;return}V=t=e}while(t!==null);Zl===0&&(Zl=5)}function Uu(e,t){do{var n=Gc(e.alternate,e);if(n!==null){n.flags&=32767,V=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){V=e;return}V=e=n}while(e!==null);Zl=6,V=null}function Wu(e,t,n,r,i,o,s,c,l){e.cancelPendingCommit=null;do Yu();while(du!==0);if(z&6)throw Error(a(327));if(t!==null){if(t===e.current)throw Error(a(177));if(o=t.lanes|t.childLanes,o|=ii,at(e,n,o,s,c,l),e===B&&(V=B=null,H=0),pu=t,fu=e,mu=n,hu=o,gu=i,_u=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,rd(ze,function(){return Xu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=(t.flags&13878)!=0,t.subtreeFlags&13878||r){r=T.T,T.T=null,i=E.p,E.p=2,s=z,z|=4;try{dl(e,t,n)}finally{z=s,E.p=i,T.T=r}}du=1,Gu(),Ku(),qu()}}function Gu(){if(du===1){du=0;var e=fu,t=pu,n=(t.flags&13878)!=0;if(t.subtreeFlags&13878||n){n=T.T,T.T=null;var r=E.p;E.p=2;var i=z;z|=4;try{wl(t,e);var a=Kd,o=Pr(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&Nr(s.ownerDocument.documentElement,s)){if(c!==null&&Fr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=Mr(s,h),v=Mr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}mp=!!Gd,Kd=Gd=null}finally{z=i,E.p=r,T.T=n}}e.current=t,du=2}}function Ku(){if(du===2){du=0;var e=fu,t=pu,n=(t.flags&8772)!=0;if(t.subtreeFlags&8772||n){n=T.T,T.T=null;var r=E.p;E.p=2;var i=z;z|=4;try{fl(e,t.alternate,t)}finally{z=i,E.p=r,T.T=n}}du=3}}function qu(){if(du===4||du===3){du=0,Pe();var e=fu,t=pu,n=mu,r=_u;t.subtreeFlags&10256||t.flags&10256?du=5:(du=0,pu=fu=null,Ju(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(uu=null),ut(n),t=t.stateNode,Ge&&typeof Ge.onCommitFiberRoot==`function`)try{Ge.onCommitFiberRoot(We,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=T.T,i=E.p,E.p=2,T.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{T.T=t,E.p=i}}mu&3&&Yu(),ud(e),i=e.pendingLanes,n&261930&&i&42?e===yu?vu++:(vu=0,yu=e):vu=0,dd(0,!1)}}function Ju(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,pa(t)))}function Yu(){return Gu(),Ku(),qu(),Xu()}function Xu(){if(du!==5)return!1;var e=fu,t=hu;hu=0;var n=ut(mu),r=T.T,i=E.p;try{E.p=32>n?32:n,T.T=null,n=gu,gu=null;var o=fu,s=mu;if(du=0,pu=fu=null,mu=0,z&6)throw Error(a(331));var c=z;if(z|=4,Vl(o.current),Nl(o,o.current,s,n),z=c,dd(0,!1),Ge&&typeof Ge.onPostCommitFiberRoot==`function`)try{Ge.onPostCommitFiberRoot(We,o)}catch{}return!0}finally{E.p=i,T.T=r,Ju(e,t)}}function Zu(e,t,n){t=Ci(n,t),t=ic(e.stateNode,t,2),e=Ja(e,t,2),e!==null&&(k(e,2),ud(e))}function W(e,t,n){if(e.tag===3)Zu(e,e,n);else for(;t!==null;){if(t.tag===3){Zu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(uu===null||!uu.has(r))){e=Ci(n,e),n=ac(2),r=Ja(t,n,2),r!==null&&(oc(n,r,t,e),k(r,2),ud(r));break}}t=t.return}}function Qu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Gl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Yl=!0,i.add(n),e=$u.bind(null,e,t,n),t.then(e,e))}function $u(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,B===e&&(H&n)===n&&(Zl===4||Zl===3&&(H&62914560)===H&&300>Fe()-ou?!(z&2)&&ku(e,0):eu|=n,nu===H&&(nu=0)),ud(e)}function ed(e,t){t===0&&(t=it()),e=ci(e,t),e!==null&&(k(e,t),ud(e))}function td(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ed(e,n)}function nd(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}r!==null&&r.delete(t),ed(e,n)}function rd(e,t){return je(e,t)}var id=null,ad=null,od=!1,sd=!1,cd=!1,ld=0;function ud(e){e!==ad&&e.next===null&&(ad===null?id=ad=e:ad=ad.next=e),sd=!0,od||(od=!0,_d())}function dd(e,t){if(!cd&&sd){cd=!0;do for(var n=!1,r=id;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-qe(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,gd(r,a))}else a=H,a=tt(r,r===B?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||nt(r,a)||(n=!0,gd(r,a));r=r.next}while(n);cd=!1}}function fd(){pd()}function pd(){sd=od=!1;var e=0;ld!==0&&Qd()&&(e=ld);for(var t=Fe(),n=null,r=id;r!==null;){var i=r.next,a=md(r,t);a===0?(r.next=null,n===null?id=i:n.next=i,i===null&&(ad=n)):(n=r,(e!==0||a&3)&&(sd=!0)),r=i}du!==0&&du!==5||dd(e,!1),ld!==0&&(ld=0)}function md(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-qe(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=rt(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=B,n=H,n=tt(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(U===2||U===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&Me(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||nt(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&Me(r),ut(n)){case 2:case 8:n=Re;break;case 32:n=ze;break;case 268435456:n=Ve;break;default:n=ze}return r=hd.bind(null,e),n=je(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&Me(r),e.callbackPriority=2,e.callbackNode=null,2}function hd(e,t){if(du!==0&&du!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Yu()&&e.callbackNode!==n)return null;var r=H;return r=tt(e,e===B?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(Cu(e,r,t),md(e,Fe()),e.callbackNode!=null&&e.callbackNode===n?hd.bind(null,e):null)}function gd(e,t){if(Yu())return null;Cu(e,t,!0)}function _d(){nf(function(){z&6?je(Le,fd):pd()})}function vd(){if(ld===0){var e=ga;e===0&&(e=Ze,Ze<<=1,!(Ze&261888)&&(Ze=256)),ld=e}return ld}function yd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:cn(``+e)}function bd(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function xd(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=yd((i[ht]||null).action),o=r.submitter;o&&(t=(t=o[ht]||null)?yd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new An(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(ld!==0){var e=o?bd(i,o):new FormData(i);As(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?bd(i,o):new FormData(i),As(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var Sd=0;Sd<$r.length;Sd++){var Cd=$r[Sd];ei(Cd.toLowerCase(),`on`+(Cd[0].toUpperCase()+Cd.slice(1)))}ei(Gr,`onAnimationEnd`),ei(Kr,`onAnimationIteration`),ei(qr,`onAnimationStart`),ei(`dblclick`,`onDoubleClick`),ei(`focusin`,`onFocus`),ei(`focusout`,`onBlur`),ei(Jr,`onTransitionRun`),ei(Yr,`onTransitionStart`),ei(Xr,`onTransitionCancel`),ei(Zr,`onTransitionEnd`),Mt(`onMouseEnter`,[`mouseout`,`mouseover`]),Mt(`onMouseLeave`,[`mouseout`,`mouseover`]),Mt(`onPointerEnter`,[`pointerout`,`pointerover`]),Mt(`onPointerLeave`,[`pointerout`,`pointerover`]),jt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),jt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),jt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),jt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),jt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),jt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var wd=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),Td=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(wd));function Ed(e,t){t=(t&4)!=0;for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ti(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ti(e)}i.currentTarget=null,a=c}}}}function G(e,t){var n=t[_t];n===void 0&&(n=t[_t]=new Set);var r=e+`__bubble`;n.has(r)||(Ad(t,e,2,!1),n.add(r))}function Dd(e,t,n){var r=0;t&&(r|=4),Ad(n,e,r,t)}var Od=`_reactListening`+Math.random().toString(36).slice(2);function kd(e){if(!e[Od]){e[Od]=!0,kt.forEach(function(t){t!==`selectionchange`&&(Td.has(t)||Dd(t,!1,e),Dd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Od]||(t[Od]=!0,Dd(`selectionchange`,!1,t))}}function Ad(e,t,n,r){switch(xp(t)){case 2:var i=hp;break;case 8:i=gp;break;default:i=_p}n=i.bind(null,t,n,e),i=void 0,!yn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function jd(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var o=r.tag;if(o===3||o===4){var c=r.stateNode.containerInfo;if(c===i)break;if(o===4)for(o=r.return;o!==null;){var l=o.tag;if((l===3||l===4)&&o.stateNode.containerInfo===i)return;o=o.return}for(;c!==null;){if(o=Ct(c),o===null)return;if(l=o.tag,l===5||l===6||l===26||l===27){r=a=o;continue a}c=c.parentNode}}r=r.return}gn(function(){var r=a,i=dn(n),o=[];a:{var c=Qr.get(e);if(c!==void 0){var l=An,u=e;switch(e){case`keypress`:if(Tn(n)===0)break a;case`keydown`:case`keyup`:l=Jn;break;case`focusin`:u=`focus`,l=zn;break;case`focusout`:u=`blur`,l=zn;break;case`beforeblur`:case`afterblur`:l=zn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=Ln;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=Rn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Xn;break;case Gr:case Kr:case qr:l=Bn;break;case Zr:l=Zn;break;case`scroll`:case`scrollend`:l=Mn;break;case`wheel`:l=Qn;break;case`copy`:case`cut`:case`paste`:l=Vn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Yn;break;case`toggle`:case`beforetoggle`:l=$n}var d=(t&4)!=0,f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=_n(m,p),g!=null&&d.push(Md(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),o.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==un&&(u=n.relatedTarget||n.fromElement)&&(Ct(u)||u[gt]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?Ct(u):null,u!==null&&(f=s(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=Ln,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Yn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:Tt(l),h=u==null?c:Tt(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,Ct(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=Pd,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&Fd(o,c,l,d,!1),u!==null&&f!==null&&Fd(o,f,u,d,!0)}}a:{if(c=r?Tt(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=_r;else if(dr(c))if(vr)v=Dr;else{v=Tr;var y=wr}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&an(r.elementType)&&(v=_r):v=Er;if(v&&=v(e,r)){fr(o,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&Xt(c,`number`,c.value)}switch(y=r?Tt(r):window,e){case`focusin`:(dr(y)||y.contentEditable===`true`)&&(Lr=y,Rr=r,zr=null);break;case`focusout`:zr=Rr=Lr=null;break;case`mousedown`:Br=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Br=!1,Vr(o,n,i);break;case`selectionchange`:if(Ir)break;case`keydown`:case`keyup`:Vr(o,n,i)}var b;if(tr)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else sr?j(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(ir&&n.locale!==`ko`&&(sr||x!==`onCompositionStart`?x===`onCompositionEnd`&&sr&&(b=wn()):(xn=i,Sn=`value`in xn?xn.value:xn.textContent,sr=!0)),y=Nd(r,x),0<y.length&&(x=new Hn(x,e,null,n,i),o.push({event:x,listeners:y}),b?x.data=b:(b=or(n),b!==null&&(x.data=b)))),(b=rr?cr(e,n):lr(e,n))&&(x=Nd(r,`onBeforeInput`),0<x.length&&(y=new Hn(`onBeforeInput`,`beforeinput`,null,n,i),o.push({event:y,listeners:x}),y.data=b)),xd(o,e,r,n,i)}Ed(o,t)})}function Md(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Nd(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=_n(e,n),i!=null&&r.unshift(Md(e,i,a)),i=_n(e,t),i!=null&&r.push(Md(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Pd(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Fd(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=_n(n,a),l!=null&&o.unshift(Md(n,l,c))):i||(l=_n(n,a),l!=null&&o.push(Md(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Id=/\r\n?/g,Ld=/\u0000|\uFFFD/g;function Rd(e){return(typeof e==`string`?e:``+e).replace(Id,`
10`).replace(Ld,``)}function zd(e,t){return t=Rd(t),Rd(e)===t}function K(e,t,n,r,i,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||en(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&en(e,``+r);break;case`className`:Rt(e,`class`,r);break;case`tabIndex`:Rt(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:Rt(e,n,r);break;case`style`:rn(e,r,o);break;case`data`:if(t!==`object`){Rt(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=cn(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}else typeof o==`function`&&(n===`formAction`?(t!==`input`&&K(e,t,`name`,i.name,i,null),K(e,t,`formEncType`,i.formEncType,i,null),K(e,t,`formMethod`,i.formMethod,i,null),K(e,t,`formTarget`,i.formTarget,i,null)):(K(e,t,`encType`,i.encType,i,null),K(e,t,`method`,i.method,i,null),K(e,t,`target`,i.target,i,null)));if(r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=cn(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=ln);break;case`onScroll`:r!=null&&G(`scroll`,e);break;case`onScrollEnd`:r!=null&&G(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(a(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(a(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=cn(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:G(`beforetoggle`,e),G(`toggle`,e),Lt(e,`popover`,r);break;case`xlinkActuate`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:zt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:zt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:zt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:zt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:Lt(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=on.get(n)||n,Lt(e,n,r))}}function Bd(e,t,n,r,i,o){switch(n){case`style`:rn(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(a(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(a(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?en(e,r):(typeof r==`number`||typeof r==`bigint`)&&en(e,``+r);break;case`onScroll`:r!=null&&G(`scroll`,e);break;case`onScrollEnd`:r!=null&&G(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=ln);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!At.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(i=n.endsWith(`Capture`),t=n.slice(2,i?n.length-7:void 0),o=e[ht]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,i),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,i);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):Lt(e,n,r)}}}function Vd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:G(`error`,e),G(`load`,e);var r=!1,i=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:i=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(a(137,t));default:K(e,t,o,s,n,null)}}i&&K(e,t,`srcSet`,n.srcSet,n,null),r&&K(e,t,`src`,n.src,n,null);return;case`input`:G(`invalid`,e);var c=o=s=i=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:i=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(a(137,t));break;default:K(e,t,r,d,n,null)}}Yt(e,o,c,l,u,s,i,!1);return;case`select`:for(i in G(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(i)&&(c=n[i],c!=null))switch(i){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:K(e,t,i,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Zt(e,!!r,n,!0):Zt(e,!!r,t,!1);return;case`textarea`:for(s in G(`invalid`,e),o=i=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:i=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(a(91));break;default:K(e,t,s,c,n,null)}$t(e,r,i,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:K(e,t,l,r,n,null)}return;case`dialog`:G(`beforetoggle`,e),G(`toggle`,e),G(`cancel`,e),G(`close`,e);break;case`iframe`:case`object`:G(`load`,e);break;case`video`:case`audio`:for(r=0;r<wd.length;r++)G(wd[r],e);break;case`image`:G(`error`,e),G(`load`,e);break;case`details`:G(`toggle`,e);break;case`embed`:case`source`:case`link`:G(`error`,e),G(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(a(137,t));default:K(e,t,u,r,n,null)}return;default:if(an(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Bd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&K(e,t,c,r,n,null))}function Hd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var i=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||K(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:i=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(a(137,t));break;default:m!==f&&K(e,t,p,m,r,f)}}Jt(e,s,c,l,u,d,o,i);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||K(e,t,o,null,r,l)}for(i in r)if(o=r[i],l=n[i],r.hasOwnProperty(i)&&(o!=null||l!=null))switch(i){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&K(e,t,i,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Zt(e,!!n,n?[]:``,!1):Zt(e,!!n,t,!0)):Zt(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(i=n[c],n.hasOwnProperty(c)&&i!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:K(e,t,c,null,r,i)}for(s in r)if(i=r[s],o=n[s],r.hasOwnProperty(s)&&(i!=null||o!=null))switch(s){case`value`:p=i;break;case`defaultValue`:m=i;break;case`children`:break;case`dangerouslySetInnerHTML`:if(i!=null)throw Error(a(91));break;default:i!==o&&K(e,t,s,i,r,o)}Qt(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:K(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:K(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&K(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(a(137,t));break;default:K(e,t,u,p,r,m)}return;default:if(an(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Bd(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Bd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&K(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||K(e,t,f,p,r,m)}function Ud(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Wd(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Ud(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Ud(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Gd=null,Kd=null;function qd(e){return e.nodeType===9?e:e.ownerDocument}function Jd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Yd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Xd(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Zd=null;function Qd(){var e=window.event;return e&&e.type===`popstate`?e===Zd?!1:(Zd=e,!0):(Zd=null,!1)}var $d=typeof setTimeout==`function`?setTimeout:void 0,ef=typeof clearTimeout==`function`?clearTimeout:void 0,tf=typeof Promise==`function`?Promise:void 0,nf=typeof queueMicrotask==`function`?queueMicrotask:tf===void 0?$d:function(e){return tf.resolve(null).then(e).catch(rf)};function rf(e){setTimeout(function(){throw e})}function af(e){return e===`head`}function of(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Bp(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)bf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,bf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[xt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&bf(e.ownerDocument.body);n=i}while(n);Bp(t)}function sf(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8)if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++;n=r}while(n)}function cf(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:cf(n),St(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function lf(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r)if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e;else if(!e[xt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=hf(e.nextSibling),e===null)break}return null}function uf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=hf(e.nextSibling),e===null))return null;return e}function df(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=hf(e.nextSibling),e===null))return null;return e}function ff(e){return e.data===`$?`||e.data===`$~`}function pf(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function mf(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function hf(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var gf=null;function _f(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return hf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function vf(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function yf(e,t,n){switch(t=qd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(a(452));return e;case`head`:if(e=t.head,!e)throw Error(a(453));return e;case`body`:if(e=t.body,!e)throw Error(a(454));return e;default:throw Error(a(451))}}function bf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);St(e)}var xf=new Map,Sf=new Set;function Cf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var wf=E.d;E.d={f:Tf,r:Ef,D:kf,C:Af,L:jf,m:Mf,X:Pf,S:Nf,M:Ff};function Tf(){var e=wf.f(),t=Du();return e||t}function Ef(e){var t=wt(e);t!==null&&t.tag===5&&t.type===`form`?Ms(t):wf.r(e)}var Df=typeof document>`u`?null:document;function Of(e,t,n){var r=Df;if(r&&typeof t==`string`&&t){var i=qt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),Sf.has(i)||(Sf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Vd(t,`link`,e),Ot(t),r.head.appendChild(t)))}}function kf(e){wf.D(e),Of(`dns-prefetch`,e,null)}function Af(e,t){wf.C(e,t),Of(`preconnect`,e,t)}function jf(e,t,n){wf.L(e,t,n);var r=Df;if(r&&e&&t){var i=`link[rel="preload"][as="`+qt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+qt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+qt(n.imageSizes)+`"]`)):i+=`[href="`+qt(e)+`"]`;var a=i;switch(t){case`style`:a=Lf(e);break;case`script`:a=Vf(e)}xf.has(a)||(e=m({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),xf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Rf(a))||t===`script`&&r.querySelector(Hf(a))||(t=r.createElement(`link`),Vd(t,`link`,e),Ot(t),r.head.appendChild(t)))}}function Mf(e,t){wf.m(e,t);var n=Df;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+qt(r)+`"][href="`+qt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Vf(e)}if(!xf.has(a)&&(e=m({rel:`modulepreload`,href:e},t),xf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Hf(a)))return}r=n.createElement(`link`),Vd(r,`link`,e),Ot(r),n.head.appendChild(r)}}}function Nf(e,t,n){wf.S(e,t,n);var r=Df;if(r&&e){var i=Et(r).hoistableStyles,a=Lf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Rf(a)))s.loading=5;else{e=m({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=xf.get(a))&&Gf(e,n);var c=o=r.createElement(`link`);Ot(c),Vd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Wf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Pf(e,t){wf.X(e,t);var n=Df;if(n&&e){var r=Et(n).hoistableScripts,i=Vf(e),a=r.get(i);a||(a=n.querySelector(Hf(i)),a||(e=m({src:e,async:!0},t),(t=xf.get(i))&&Kf(e,t),a=n.createElement(`script`),Ot(a),Vd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Ff(e,t){wf.M(e,t);var n=Df;if(n&&e){var r=Et(n).hoistableScripts,i=Vf(e),a=r.get(i);a||(a=n.querySelector(Hf(i)),a||(e=m({src:e,async:!0,type:`module`},t),(t=xf.get(i))&&Kf(e,t),a=n.createElement(`script`),Ot(a),Vd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function If(e,t,n,r){var i=(i=_e.current)?Cf(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Lf(n.href),n=Et(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Lf(n.href);var o=Et(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(Rf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),xf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},xf.set(e,n),o||Bf(i,e,n,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Vf(n),n=Et(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function Lf(e){return`href="`+qt(e)+`"`}function Rf(e){return`link[rel="stylesheet"][`+e+`]`}function zf(e){return m({},e,{"data-precedence":e.precedence,precedence:null})}function Bf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Vd(t,`link`,n),Ot(t),e.head.appendChild(t))}function Vf(e){return`[src="`+qt(e)+`"]`}function Hf(e){return`script[async]`+e}function Uf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+qt(n.href)+`"]`);if(r)return t.instance=r,Ot(r),r;var i=m({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Ot(r),Vd(r,`style`,i),Wf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Lf(n.href);var o=e.querySelector(Rf(i));if(o)return t.state.loading|=4,t.instance=o,Ot(o),o;r=zf(n),(i=xf.get(i))&&Gf(r,i),o=(e.ownerDocument||e).createElement(`link`),Ot(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Vd(o,`link`,r),t.state.loading|=4,Wf(o,n.precedence,e),t.instance=o;case`script`:return o=Vf(n.src),(i=e.querySelector(Hf(o)))?(t.instance=i,Ot(i),i):(r=n,(i=xf.get(o))&&(r=m({},n),Kf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),Ot(i),Vd(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Wf(r,n.precedence,e));return t.instance}function Wf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Gf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Kf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var qf=null;function Jf(e,t,n){if(qf===null){var r=new Map,i=qf=new Map;i.set(n,r)}else i=qf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[xt]||a[mt]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Yf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Xf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Zf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Qf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Lf(r.href),a=t.querySelector(Rf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=tp.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,Ot(a);return}a=t.ownerDocument||t,r=zf(r),(i=xf.get(i))&&Gf(r,i),a=a.createElement(`link`),Ot(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Vd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=tp.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var $f=0;function ep(e,t){return e.stylesheets&&e.count===0&&rp(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&rp(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&$f===0&&($f=62500*Wd());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&rp(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>$f?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function tp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)rp(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var np=null;function rp(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,np=new Map,t.forEach(ip,e),np=null,tp.call(e))}function ip(e,t){if(!(t.state.loading&4)){var n=np.get(e);if(n)var r=n.get(null);else{n=new Map,np.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=tp.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var ap={$$typeof:S,Provider:null,Consumer:null,_currentValue:ue,_currentValue2:ue,_threadCount:0};function op(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=O(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=O(0),this.hiddenUpdates=O(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function sp(e,t,n,r,i,a,o,s,c,l,u,d){return e=new op(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=pi(3,null,null,t),e.current=a,a.stateNode=e,t=fa(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Ga(a),e}function cp(e){return e?(e=di,e):di}function lp(e,t,n,r,i,a){i=cp(i),r.context===null?r.context=i:r.pendingContext=i,r=qa(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Ja(e,r,t),n!==null&&(Su(n,e,t),Ya(n,e,t))}function up(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function dp(e,t){up(e,t),(e=e.alternate)&&up(e,t)}function fp(e){if(e.tag===13||e.tag===31){var t=ci(e,67108864);t!==null&&Su(t,e,67108864),dp(e,67108864)}}function pp(e){if(e.tag===13||e.tag===31){var t=bu();t=lt(t);var n=ci(e,t);n!==null&&Su(n,e,t),dp(e,t)}}var mp=!0;function hp(e,t,n,r){var i=T.T;T.T=null;var a=E.p;try{E.p=2,_p(e,t,n,r)}finally{E.p=a,T.T=i}}function gp(e,t,n,r){var i=T.T;T.T=null;var a=E.p;try{E.p=8,_p(e,t,n,r)}finally{E.p=a,T.T=i}}function _p(e,t,n,r){if(mp){var i=vp(r);if(i===null)jd(e,t,r,yp,n),Ap(e,r);else if(Mp(i,e,t,n,r))r.stopPropagation();else if(Ap(e,r),t&4&&-1<kp.indexOf(e)){for(;i!==null;){var a=wt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=et(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-qe(o);s.entanglements[1]|=c,o&=~c}ud(a),!(z&6)&&(cu=Fe()+500,dd(0,!1))}}break;case 31:case 13:s=ci(a,2),s!==null&&Su(s,a,2),Du(),dp(a,2)}if(a=vp(r),a===null&&jd(e,t,r,yp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else jd(e,t,r,null,n)}}function vp(e){return e=dn(e),bp(e)}var yp=null;function bp(e){if(yp=null,e=Ct(e),e!==null){var t=s(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=c(t),e!==null)return e;e=null}else if(n===31){if(e=l(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return yp=e,null}function xp(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(Ie()){case Le:return 2;case Re:return 8;case ze:case Be:return 32;case Ve:return 268435456;default:return 32}default:return 32}}var Sp=!1,Cp=null,wp=null,Tp=null,Ep=new Map,Dp=new Map,Op=[],kp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Ap(e,t){switch(e){case`focusin`:case`focusout`:Cp=null;break;case`dragenter`:case`dragleave`:wp=null;break;case`mouseover`:case`mouseout`:Tp=null;break;case`pointerover`:case`pointerout`:Ep.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:Dp.delete(t.pointerId)}}function jp(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=wt(t),t!==null&&fp(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Mp(e,t,n,r,i){switch(t){case`focusin`:return Cp=jp(Cp,e,t,n,r,i),!0;case`dragenter`:return wp=jp(wp,e,t,n,r,i),!0;case`mouseover`:return Tp=jp(Tp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return Ep.set(a,jp(Ep.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,Dp.set(a,jp(Dp.get(a)||null,e,t,n,r,i)),!0}return!1}function Np(e){var t=Ct(e.target);if(t!==null){var n=s(t);if(n!==null){if(t=n.tag,t===13){if(t=c(n),t!==null){e.blockedOn=t,ft(e.priority,function(){pp(n)});return}}else if(t===31){if(t=l(n),t!==null){e.blockedOn=t,ft(e.priority,function(){pp(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Pp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=vp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);un=r,n.target.dispatchEvent(r),un=null}else return t=wt(n),t!==null&&fp(t),e.blockedOn=n,!1;t.shift()}return!0}function Fp(e,t,n){Pp(e)&&n.delete(t)}function Ip(){Sp=!1,Cp!==null&&Pp(Cp)&&(Cp=null),wp!==null&&Pp(wp)&&(wp=null),Tp!==null&&Pp(Tp)&&(Tp=null),Ep.forEach(Fp),Dp.forEach(Fp)}function Lp(e,n){e.blockedOn===n&&(e.blockedOn=null,Sp||(Sp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Ip)))}var Rp=null;function zp(e){Rp!==e&&(Rp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Rp===e&&(Rp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(bp(r||n)===null)continue;break}var a=wt(n);a!==null&&(e.splice(t,3),t-=3,As(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Bp(e){function t(t){return Lp(t,e)}Cp!==null&&Lp(Cp,e),wp!==null&&Lp(wp,e),Tp!==null&&Lp(Tp,e),Ep.forEach(t),Dp.forEach(t);for(var n=0;n<Op.length;n++){var r=Op[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Op.length&&(n=Op[0],n.blockedOn===null);)Np(n),n.blockedOn===null&&Op.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[ht]||null;if(typeof a==`function`)o||zp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[ht]||null)s=o.formAction;else if(bp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),zp(n)}}}function Vp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Hp(e){this._internalRoot=e}Up.prototype.render=Hp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(a(409));var n=t.current;lp(n,bu(),e,t,null,null)},Up.prototype.unmount=Hp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;lp(e.current,2,null,e,null,null),Du(),t[gt]=null}};function Up(e){this._internalRoot=e}Up.prototype.unstable_scheduleHydration=function(e){if(e){var t=dt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Op.length&&t!==0&&t<Op[n].priority;n++);Op.splice(n,0,e),n===0&&Np(e)}};var Wp=n.version;if(Wp!==`19.2.5`)throw Error(a(527,Wp,`19.2.5`));E.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(a(188)):(e=Object.keys(e).join(`,`),Error(a(268,e)));return e=f(t),e=e===null?null:p(e),e=e===null?null:e.stateNode,e};var Gp={bundleType:0,version:`19.2.5`,rendererPackageName:`react-dom`,currentDispatcherRef:T,reconcilerVersion:`19.2.5`};
10if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Kp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Kp.isDisabled&&Kp.supportsFiber)try{We=Kp.inject(Gp),Ge=Kp}catch{}}e.hydrateRoot=function(e,t,n){if(!o(e))throw Error(a(299));var r=!1,i=``,s=$s,c=ec,l=tc,u=null;return n!=null&&(!0===n.unstable_strictMode&&(r=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onUncaughtError!==void 0&&(s=n.onUncaughtError),n.onCaughtError!==void 0&&(c=n.onCaughtError),n.onRecoverableError!==void 0&&(l=n.onRecoverableError),n.formState!==void 0&&(u=n.formState)),t=sp(e,1,!0,t,n??null,r,i,u,s,c,l,Vp),t.context=cp(null),n=t.current,r=bu(),r=lt(r),i=qa(r),i.callback=null,Ja(n,i,r),n=r,t.current.lanes=n,k(t,n),ud(t),e[gt]=t.current,kd(e),new Up(t)}})),kt=u(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=Ot()})),At=Mt(JSON.parse),jt=Nt(JSON.stringify,JSON.parse);function Mt(e){return t=>{t[0]===`?`&&(t=t.substring(1));let n=Fe(t);for(let t in n){let r=n[t];if(typeof r==`string`)try{n[t]=e(r)}catch{}}return n}}function Nt(e,t){let n=typeof t==`function`;function r(r){if(typeof r==`object`&&r)try{return e(r)}catch{}else if(n&&typeof r==`string`)try{return t(r),e(r)}catch{}return r}return e=>{let t=Pe(e,r);return t?`?${t}`:``}}var Pt=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},Ft=e=>e.stores.matchesId.get().some(t=>e.stores.matchStores.get(t)?.get()._forcePending),It=(e,t)=>!!(e.preload&&!e.router.stores.matchStores.has(t)),Lt=(e,t,n=!0)=>{let r={...e.router.options.context??{}},i=n?t:t-1;for(let t=0;t<=i;t++){let n=e.matches[t];if(!n)continue;let i=e.router.getMatch(n.id);
10i&&Object.assign(r,i.__routeContext,i.__beforeLoadContext)}return r},Rt=(e,t)=>{if(!e.matches.length)return;let n=t.routeId,r=e.matches.findIndex(t=>t.routeId===e.router.routeTree.id),i=r>=0?r:0,a=n?e.matches.findIndex(e=>e.routeId===n):e.firstBadMatchIndex??e.matches.length-1;a<0&&(a=i);for(let t=a;t>=0;t--){let n=e.matches[t];if(e.router.looseRoutesById[n.routeId].options.notFoundComponent)return t}return n?a:i},zt=(e,t,n)=>{if(!(!Ne(n)&&!je(n)))throw Ne(n)&&n.redirectHandled&&!n.options.reloadDocument?n:(t&&(t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0,t._nonReactive.error=n,e.updateMatch(t.id,r=>({...r,status:Ne(n)?`redirected`:je(n)?`notFound`:r.status===`pending`?`success`:r.status,context:Lt(e,t.index),isFetching:!1,error:n})),je(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()),Ne(n)&&(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n)),n)},Bt=(e,t)=>
10{let n=e.router.getMatch(t);return!!(!n||n._nonReactive.dehydrated)},Vt=(e,t,n)=>{let r=Lt(e,n);e.updateMatch(t,e=>({...e,context:r}))},Ht=(e,t,n)=>{let{id:r,routeId:i}=e.matches[t],a=e.router.looseRoutesById[i];if(n instanceof Promise)throw n;e.firstBadMatchIndex??=t,zt(e,e.router.getMatch(r),n);try{a.options.onError?.(n)}catch(t){n=t,zt(e,e.router.getMatch(r),n)}e.updateMatch(r,e=>(e._nonReactive.beforeLoadPromise?.resolve(),e._nonReactive.beforeLoadPromise=void 0,e._nonReactive.loadPromise?.resolve(),{...e,error:n,status:`error`,isFetching:!1,updatedAt:Date.now(),abortController:new AbortController})),!e.preload&&!Ne(n)&&!je(n)&&(e.serialError??=n)},Ut=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;let i=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!It(e,t)&&(n.options.loader||n.options.beforeLoad||en(n))&&typeof i==`number`&&i!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent)){let t=setTimeout(()=>{Pt(e)},i);r._nonReactive.pendingTimeout=t}},Wt=(e,t,n)=>{let r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;Ut(e,t,n,r);let i=()=>{let n=e.router.getMatch(t);n.preload&&(n.status===`redirected`||n.status===`notFound`)&&zt(e,n,n.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(i):i()},Gt=(e,t,n,r)=>{let i=e.router.getMatch(t),a=i._nonReactive.loadPromise;i._nonReactive.loadPromise=he(()=>{a?.resolve(),a=void 0});let{paramsError:o,searchError:s}=i;o&&Ht(e,n,o),s&&Ht(e,n,s),Ut(e,t,r,i);let c=new AbortController,l=!1,u=()=>{l||(l=!0,e.updateMatch(t,e=>({...e,isFetching:`beforeLoad`,fetchCount:e.fetchCount+1,abortController:c})))},d=()=>{i._nonReactive.beforeLoadPromise?.resolve(),i._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,e=>({...e,isFetching:!1}))};if(!r.options.beforeLoad){e.router.batch(()=>{u(),d()});return}i._nonReactive.beforeLoadPromise=he();let f={...Lt(e,n,!1),...i.__routeContext},{search:p,params:m,cause:h}=i,g=It(e,t),v={search:p,abortController:c,params:m,preload:g,context:f,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:g?`preload`:h,matches:e.matches,routeId:r.id,...e.router.options.additionalContext},y=r=>{if(r===void 0){e.router.batch(()=>{u(),d()});return}(Ne(r)||je(r))&&(u(),Ht(e,n,r)),e.router.batch(()=>{u(),e.updateMatch(t,e=>({...e,__beforeLoadContext:r})),d()})},b;try{if(b=r.options.beforeLoad(v),_(b))return u(),b.catch(t=>{Ht(e,n,t)}).then(y)}catch(t){u(),Ht(e,n,t)}y(b)},Kt=(e,t)=>{let{id:n,routeId:r}=e.matches[t],i=e.router.looseRoutesById[r],a=()=>s(),o=()=>Gt(e,n,t,i),s=()=>{if(Bt(e,n))return;let t=Wt(e,n,i);return _(t)?t.then(o):o()};return a()},qt=(e,t,n)=>{let r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;let i={ssr:e.router.options.ssr,matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(i),n.options.scripts?.(i),n.options.headers?.(i)]).then(([e,t,n])=>({meta:e?.meta,links:e?.links,headScripts:e?.scripts,headers:n,scripts:t,styles:e?.styles}))},Jt=(e,t,n,r,i)=>{let a=t[r-1],{params:o,loaderDeps:s,abortController:c,cause:l}=e.router.getMatch(n),u=Lt(e,r),d=It(e,n);return{params:o,deps:s,preload:!!d,parentMatchPromise:a,abortController:c,context:u,location:e.location,navigate:t=>e.router.navigate({...t,_fromLocation:e.location}),cause:d?`preload`:l,route:i,...e.router.options.additionalContext}},Yt=async(e,t,n,r,i)=>{try{let a=e.router.getMatch(n);try{$t(i);let o=i.options.loader,s=typeof o==`function`?o:o?.handler,c=s?.(Jt(e,t,n,r,i)),l=!!s&&_(c);if((l||i._lazyPromise||i._componentsPromise||i.options.head||i.options.scripts||i.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(n,e=>({...e,isFetching:`loader`})),s){let t=l?await c:c;zt(e,e.router.getMatch(n),t),t!==void 0&&e.updateMatch(n,e=>({...e,loaderData:t}))}i._lazyPromise&&await i._lazyPromise;let u=a._nonReactive.minPendingPromise;u&&await u,i._componentsPromise&&await i._componentsPromise,e.updateMatch(n,t=>({...t,error:void 0,context:Lt(e,r),status:`success`,isFetching:!1,updatedAt:Date.now()}))}catch(t){let o=t;if(o?.name===`AbortError`){if(a.abortController.signal.aborted){a._nonReactive.loaderPromise?.resolve(),a._nonReactive.loaderPromise=void 0;return}e.updateMatch(n,t=>
10({...t,status:t.status===`pending`?`success`:t.status,isFetching:!1,context:Lt(e,r)}));return}let s=a._nonReactive.minPendingPromise;s&&await s,je(t)&&await i.options.notFoundComponent?.preload?.(),zt(e,e.router.getMatch(n),t);try{i.options.onError?.(t)}catch(t){o=t,zt(e,e.router.getMatch(n),t)}!Ne(o)&&!je(o)&&await $t(i,[`errorComponent`]),e.updateMatch(n,t=>({...t,error:o,context:Lt(e,r),status:`error`,isFetching:!1}))}}catch(t){let r=e.router.getMatch(n);r&&(r._nonReactive.loaderPromise=void 0),zt(e,r,t)}},Xt=async(e,t,n)=>{async function r(r,a,c,l,d){let f=Date.now()-a.updatedAt,p=r?d.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:d.options.staleTime??e.router.options.defaultStaleTime??0,m=d.options.shouldReload,h=typeof m==`function`?m(Jt(e,t,i,n,d)):m,{status:g,invalid:_}=l,v=f>=p&&(!!e.forceStaleReload||l.cause===`enter`||c!==void 0&&c!==l.id);o=g===`success`&&(_||(h??v)),r&&d.options.preload===!1||(o&&!e.sync&&u?(s=!0,(async()=>{try{await Yt(e,t,i,n,d);let r=e.router.getMatch(i);r._nonReactive.loaderPromise?.resolve(),r._nonReactive.loadPromise?.resolve(),r._nonReactive.loaderPromise=void 0,r._nonReactive.loadPromise=void 0}catch(t){Ne(t)&&await e.router.navigate(t.options)}})()):g!==`success`||o?await Yt(e,t,i,n,d):Vt(e,i,n))}let{id:i,routeId:a}=e.matches[n],o=!1,s=!1,c=e.router.looseRoutesById[a],l=c.options.loader,u=((typeof l==`function`?void 0:l?.staleReloadMode)??e.router.options.defaultStaleReloadMode)!==`blocking`;if(Bt(e,i)){if(!e.router.getMatch(i))return e.matches[n];Vt(e,i,n)}else{let t=e.router.getMatch(i),o=e.router.stores.matchesId.get()[n],s=(o&&e.router.stores.matchStores.get(o)||null)?.routeId===a?o:e.router.stores.matches.get().find(e=>e.routeId===a)?.id,l=It(e,i);if(t._nonReactive.loaderPromise){if(t.status===`success`&&!e.sync&&!t.preload&&u)return t;await t._nonReactive.loaderPromise;let n=e.router.getMatch(i),a=n._nonReactive.error||n.error;a&&zt(e,n,a),n.status===`pending`&&await r(l,t,s,n,c)}else{let n=l&&!e.router.stores.matchStores.has(i),a=e.router.getMatch(i);a._nonReactive.loaderPromise=he(),n!==a.preload&&e.updateMatch(i,e=>({...e,preload:n})),await r(l,t,s,a,c)}}let d=e.router.getMatch(i);s||(d._nonReactive.loaderPromise?.resolve(),d._nonReactive.loadPromise?.resolve(),d._nonReactive.loadPromise=void 0),clearTimeout(d._nonReactive.pendingTimeout),d._nonReactive.pendingTimeout=void 0,s||(d._nonReactive.loaderPromise=void 0),d._nonReactive.dehydrated=void 0;let f=s?d.isFetching:!1;return f!==d.isFetching||d.invalid!==!1?(e.updateMatch(i,e=>({...e,isFetching:f,invalid:!1})),e.router.getMatch(i)):d};async function Zt(e){let t=e,n=[];Ft(t.router)&&Pt(t);let r;for(let e=0;e<t.matches.length;e++){try{let n=Kt(t,e);_(n)&&await n}catch(e){if(Ne(e))throw e;if(je(e))r=e;else if(!t.preload)throw e;break}if(t.serialError||t.firstBadMatchIndex!=null)break}let i=t.firstBadMatchIndex??t.matches.length,a=r&&!t.preload?Rt(t,r):void 0,o=r&&t.preload?0:a===void 0?i:Math.min(a+1,i),s,c;for(let e=0;e<o;e++)n.push(Xt(t,n,e));try{await Promise.all(n)}catch{let e=await Promise.allSettled(n);for(let t of e){if(t.status!==`rejected`)continue;let e=t.reason;if(Ne(e))throw e;je(e)?s??=e:c??=e}if(c!==void 0)throw c}let l=s??(r&&!t.preload?r:void 0),u=t.firstBadMatchIndex===void 0?t.matches.length-1:t.firstBadMatchIndex;if(!l&&r&&t.preload)return t.matches;if(l){let e=Rt(t,l);e===void 0&&w();let n=t.matches[e],r=t.router.looseRoutesById[n.routeId],i=t.router.options?.defaultNotFoundComponent;!r.options.notFoundComponent&&i&&(r.options.notFoundComponent=i),l.routeId=n.routeId;let a=n.routeId===t.router.routeTree.id;t.updateMatch(n.id,e=>({...e,...a?{status:`success`,globalNotFound:!0,error:void 0}:{status:`notFound`,error:l},isFetching:!1})),u=e,await $t(r,[`notFoundComponent`])}else if(!t.preload){let e=t.matches[0];e.globalNotFound||t.router.getMatch(e.id)?.globalNotFound&&t.updateMatch(e.id,e=>({...e,globalNotFound:!1,error:void 0}))}if(t.serialError&&t.firstBadMatchIndex!==void 0){let e=t.router.looseRoutesById[t.matches[t.firstBadMatchIndex].routeId];await $t(e,[`errorComponent`])}for(let e=0;e<=u;e++){let{id:n,routeId:r}=t.matches[e],i=t.router.looseRoutesById[r];try{let e=qt(t,n,i);if(e){let r=await e;t.updateMatch(n,e=>({...e,...r}))}}catch(e){console.error(`Error executing head for route ${r}:`,e)}}let d=Pt(t);if(_(d)&&await d,l)throw l;if(t.serialError&&!t.preload&&!t.onReady)throw t.serialError;return t.matches}function Qt(e,t){let n=t.map(t=>
10e.options[t]?.preload?.()).filter(Boolean);if(n.length!==0)return Promise.all(n)}function $t(e,t=tn){!e._lazyLoaded&&e._lazyPromise===void 0&&(e.lazyFn?e._lazyPromise=e.lazyFn().then(t=>{let{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0);let n=()=>e._componentsLoaded?void 0:t===tn?(()=>{if(e._componentsPromise===void 0){let t=Qt(e,tn);t?e._componentsPromise=t.then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0}):e._componentsLoaded=!0}return e._componentsPromise})():Qt(e,t);return e._lazyPromise?e._lazyPromise.then(n):n()}function en(e){for(let t of tn)if(e.options[t]?.preload)return!0;return!1}var tn=[`component`,`errorComponent`,`pendingComponent`,`notFoundComponent`];function nn(e){return{input:({url:t})=>{for(let n of e)t=an(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=on(e[n],t);return t}}}function rn(e){let t=Te(e.basepath),n=`/${t}`,r=e.caseSensitive?n:n.toLowerCase(),i=`${r}/`;return{input:({url:t})=>{let a=e.caseSensitive?t.pathname:t.pathname.toLowerCase();return a===r?t.pathname=`/`:a.startsWith(i)&&(t.pathname=t.pathname.slice(n.length)),t},output:({url:e})=>(e.pathname=pe([`/`,t,e.pathname]),e)}}function an(e,t){let n=e?.input?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function on(e,t){let n=e?.output?.({url:t});if(n){if(typeof n==`string`)return new URL(n);if(n instanceof URL)return n}return t}function sn(e,t){let{createMutableStore:n,createReadonlyStore:r,batch:i,init:a}=t,o=new Map,s=new Map,c=new Map,l=n(e.status),u=n(e.loadedAt),d=n(e.isLoading),f=n(e.isTransitioning),p=n(e.location),m=n(e.resolvedLocation),h=n(e.statusCode),g=n(e.redirect),_=n([]),v=n([]),b=n([]),x=r(()=>cn(o,_.get())),S=r(()=>cn(s,v.get())),C=r(()=>cn(c,b.get())),ee=r(()=>_.get()[0]),te=r(()=>_.get().some(e=>o.get(e)?.get().status===`pending`)),ne=r(()=>({locationHref:p.get().href,resolvedLocationHref:m.get()?.href,status:l.get()})),w=r(()=>({status:l.get(),loadedAt:u.get(),isLoading:d.get(),isTransitioning:f.get(),matches:x.get(),location:p.get(),resolvedLocation:m.get(),statusCode:h.get(),redirect:g.get()})),re=y(64);function ie(e){let t=re.get(e);return t||(t=r(()=>{let t=_.get();for(let n of t){let t=o.get(n);if(t&&t.routeId===e)return t.get()}}),re.set(e,t)),t}let ae={status:l,loadedAt:u,isLoading:d,isTransitioning:f,location:p,resolvedLocation:m,statusCode:h,redirect:g,matchesId:_,pendingIds:v,cachedIds:b,matches:x,pendingMatches:S,cachedMatches:C,firstId:ee,hasPending:te,matchRouteDeps:ne,matchStores:o,pendingMatchStores:s,cachedMatchStores:c,__store:w,getRouteMatchStore:ie,setMatches:oe,setPending:se,setCached:ce};oe(e.matches),a?.(ae);function oe(e){ln(e,o,_,n,i)}function se(e){ln(e,s,v,n,i)}function ce(e){ln(e,c,b,n,i)}return ae}function cn(e,t){let n=[];for(let r of t){let t=e.get(r);t&&n.push(t.get())}return n}function ln(e,t,n,r,i){let a=e.map(e=>e.id),o=new Set(a);i(()=>{for(let e of t.keys())o.has(e)||t.delete(e);for(let n of e){let e=t.get(n.id);if(!e){let e=r(n);e.routeId=n.routeId,t.set(n.id,e);continue}e.routeId=n.routeId,e.get()!==n&&e.set(n)}g(n.get(),a)||n.set(a)})}var un=`__TSR_index`,dn=`popstate`,fn=`beforeunload`;function pn(e){let t=e.getLocation(),n=new Set,r=r=>{t=e.getLocation(),n.forEach(e=>e({location:t,action:r}))},i=n=>{e.notifyOnIndexChange??!0?r(n):t=e.getLocation()},a=async({task:n,navigateOpts:r,...i})=>{if(r?.ignoreBlocker??!1){n();return}let a=e.getBlockers?.()??[],o=i.type===`PUSH`||i.type===`REPLACE`;if(typeof document<`u`&&a.length&&o)for(let n of a){let r=_n(i.path,i.state);if(await n.blockerFn({currentLocation:t,nextLocation:r,action:i.type})){e.onBlocked?.();return}}n()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:e=>(n.add(e),()=>{n.delete(e)}),push:(n,i,o)=>{let s=t.state[un];i=mn(s+1,i),a({task:()=>{e.pushState(n,i),r({type:`PUSH`})},navigateOpts:o,type:`PUSH`,path:n,state:i})},replace:(n,i,o)=>{let s=t.state[un];i=mn(s,i),a({task:()=>{e.replaceState(n,i),r({type:`REPLACE`})},navigateOpts:o,type:`REPLACE`,path:n,state:i})},go:(t,n)=>{a({task:()=>{e.go(t),i({type:`GO`,index:t})},navigateOpts:n,type:`GO`})},back:t=>{a({task:()=>{e.back(t?.ignoreBlocker??!1),i({type:`BACK`})},navigateOpts:t,type:`BACK`})},forward:t=>{a({task:()=>{e.forward(t?.ignoreBlocker??!1),i({type:`FORWARD`})},navigateOpts:t,type:`FORWARD`})},canGoBack:()=>t.state[un]!==0,createHref:t=>e.createHref(t),block:t=>{if(!e.setBlockers)return()=>{};let n=e.getBlockers?.()??[];return e.setBlockers([...n,t]),()=>{let n=e.getBlockers?.()??[];e.setBlockers?.(n.filter(e=>e!==t))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function mn(e,t){t||={};let n=vn();return{...t,key:n,__TSR_key:n,[un]:e}}function hn(e){let t=e?.window??(typeof document<`u`?window:void 0),n=t.history.pushState,r=t.history.replaceState,i=[],a=()=>i,o=e=>i=e,s=e?.createHref??(e=>e),c=e?.parseLocation??(()=>_n(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){let e=vn();t.history.replaceState({[un]:0,key:e,__TSR_key:e},``)}let l=c(),u,d=!1,f=!1,p=!1,m=!1,h=()=>l,g,_,v=()=>{g&&(C._ignoreSubscribers=!0,(g.isPush?t.history.pushState:t.history.replaceState)(g.state,``,g.href),C._ignoreSubscribers=!1,g=void 0,_=void 0,u=void 0)},y=(e,t,n)=>{let r=s(t);_||(u=l),l=_n(t,n),g={href:r,state:n,isPush:g?.isPush||e===`push`},_||=Promise.resolve().then(()=>v())},b=e=>{l=c(),C.notify({type:e})},x=async()=>
10{if(f){f=!1;return}let e=c(),n=e.state[un]-l.state[un],r=n===1,i=n===-1,o=!r&&!i||d;d=!1;let s=o?`GO`:i?`BACK`:`FORWARD`,u=o?{type:`GO`,index:n}:{type:i?`BACK`:`FORWARD`};if(p)p=!1;else{let n=a();if(typeof document<`u`&&n.length){for(let r of n)if(await r.blockerFn({currentLocation:l,nextLocation:e,action:s})){f=!0,t.history.go(1),C.notify(u);return}}}l=c(),C.notify(u)},S=e=>{if(m){m=!1;return}let t=!1,n=a();if(typeof document<`u`&&n.length)for(let e of n){let n=e.enableBeforeUnload??!0;if(n===!0){t=!0;break}if(typeof n==`function`&&n()===!0){t=!0;break}}if(t)return e.preventDefault(),e.returnValue=``},C=pn({getLocation:h,getLength:()=>t.history.length,pushState:(e,t)=>y(`push`,e,t),replaceState:(e,t)=>y(`replace`,e,t),back:e=>(e&&(p=!0),m=!0,t.history.back()),forward:e=>{e&&(p=!0),m=!0,t.history.forward()},go:e=>{d=!0,t.history.go(e)},createHref:e=>s(e),flush:v,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(fn,S,{capture:!0}),t.removeEventListener(dn,x)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:a,setBlockers:o,notifyOnIndexChange:!1});return t.addEventListener(fn,S,{capture:!0}),t.addEventListener(dn,x),t.history.pushState=function(...e){let r=n.apply(t.history,e);return C._ignoreSubscribers||b(`PUSH`),r},t.history.replaceState=function(...e){let n=r.apply(t.history,e);return C._ignoreSubscribers||b(`REPLACE`),n},C}function gn(e){let t=e.replace(/[\x00-\x1f\x7f]/g,``);return t.startsWith(`//`)&&(t=`/`+t.replace(/^\/+/,``)),t}function _n(e,t){let n=gn(e),r=n.indexOf(`#`),i=n.indexOf(`?`),a=vn();return{href:n,pathname:n.substring(0,r>0?i>0?Math.min(r,i):r:i>0?i:n.length),hash:r>-1?n.substring(r):``,search:i>-1?n.slice(i,r===-1?void 0:r):``,state:t||{[un]:0,key:a,__TSR_key:a}}}function vn(){return(Math.random()+1).toString(36).substring(7)}function yn(e){return e instanceof Error?{name:e.name,message:e.message}:{data:e}}function bn(e,t){let n=t,r=e;return{fromLocation:n,toLocation:r,pathChanged:n?.pathname!==r.pathname,hrefChanged:n?.href!==r.href,hashChanged:n?.hash!==r.hash}}var xn=new WeakMap,Sn=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.routeBranchCache=new WeakMap,this.startTransition=e=>e(),this.update=e=>{let t=this.options,n=this.basepath??t?.basepath??`/`,r=this.basepath===void 0,i=t?.rewrite;if(this.options={...t,...e},this.isServer=this.options.isServer??typeof document>`u`,this.protocolAllowlist=new Set(this.options.protocolAllowlist),this.options.pathParamsAllowedCharacters&&(this.pathParamsDecoder=ve(this.options.pathParamsAllowedCharacters)),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.history=hn()),this.origin=this.options.origin,this.origin||(window?.origin&&window.origin!==`null`?this.origin=window.origin:this.origin=`http://localhost`),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let e;this.resolvePathCache=y(1e3),e=this.buildRouteTree(),this.setRoutes(e)}if(!this.stores&&this.latestLocation){let e=this.getStoreConfig(this);this.batch=e.batch,this.stores=sn(Tn(this.latestLocation),e),Gn(this)}let a=!1,o=this.options.basepath??`/`,s=this.options.rewrite;if(r||n!==o||i!==s){this.basepath=o;let e=[],t=Te(o);t&&t!==`/`&&e.push(rn({basepath:o})),s&&e.push(s),this.rewrite=e.length===0?void 0:e.length===1?e[0]:nn(e),this.history&&this.updateLatestLocation(),a=!0}a&&this.stores&&this.stores.location.set(this.latestLocation),typeof window<`u`&&`CSS`in window&&typeof window.CSS?.supports==`function`&&(this.isViewTransitionTypesSupported=window.CSS.supports(`selector(:active-view-transition-type(a))`))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{let e=b(this.routeTree,this.options.caseSensitive,(e,t)=>{e.init({originalIndex:t})});return this.options.routeMasks&&oe(this.options.routeMasks,e.processedTree),e},this.subscribe=(e,t)=>
10{let n={eventType:e,fn:t};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{this.subscribers.forEach(t=>{t.eventType===e.type&&t.fn(e)})},this.parseLocation=(e,t)=>{let n=({pathname:e,search:n,hash:r,href:i,state:a})=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(e)){let i=this.options.parseSearch(n),o=this.options.stringifySearch(i);return{href:e+o+r,publicHref:e+o+r,pathname:te(e).path,external:!1,searchStr:o,search:S(t?.search,i),hash:te(r.slice(1)).path,state:se(t?.state,a)}}let o=new URL(i,this.origin),s=an(this.rewrite,o),c=this.options.parseSearch(s.search),l=this.options.stringifySearch(c);return s.search=l,{href:s.href.replace(s.origin,``),publicHref:i,pathname:te(s.pathname).path,external:!!this.rewrite&&s.origin!==this.origin,searchStr:l,search:S(t?.search,c),hash:te(s.hash.slice(1)).path,state:se(t?.state,a)}},r=n(e),{__tempLocation:i,__tempKey:a}=r.state;if(i&&(!a||a===this.tempLocationKey)){let e=n(i);return e.state.key=r.state.key,e.state.__TSR_key=r.state.__TSR_key,delete e.state.__tempLocation,{...e,maskedLocation:r}}return r},this.resolvePathWithBase=(e,t)=>le({base:e,to:t.includes(`//`)?xe(t):t,trailingSlash:this.options.trailingSlash,cache:this.resolvePathCache}),this.matchRoutes=(e,t,n)=>typeof e==`string`?this.matchRoutesInternal({pathname:e,search:t},n):this.matchRoutesInternal(e,t),this.getMatchedRoutes=e=>Dn({pathname:e,routesById:this.routesById,processedTree:this.processedTree}),this.cancelMatch=e=>{let t=this.getMatch(e);t&&(t.abortController.abort(),clearTimeout(t._nonReactive.pendingTimeout),t._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{this.stores.pendingIds.get().forEach(e=>{this.cancelMatch(e)}),this.stores.matchesId.get().forEach(e=>{if(this.stores.pendingMatchStores.has(e))return;let t=this.stores.matchStores.get(e)?.get();t&&(t.status===`pending`||t.isFetching===`loader`)&&this.cancelMatch(e)})},this.buildLocation=e=>{let t=(t={})=>{let n=t._fromLocation||this.pendingBuiltLocation||this.latestLocation,r=this.matchRoutesLightweight(n);t.from;let i=t.unsafeRelative===`path`?n.pathname:t.from??r.fullPath,a=t.to?`${t.to}`:void 0,o=r.search,s=Object.assign(Object.create(null),r.params),c=a?.charCodeAt(0)===47?`/`:this.resolvePathWithBase(i,`.`),l=a?this.resolvePathWithBase(c,a):c,u=t.params===!1||t.params===null?Object.create(null):(t.params??!0)===!0?s:Object.assign(s,C(t.params,s)),d=this.routesByPath[E(l)],f;if(d)f=this.getRouteBranch(d);else if(l.includes(`$`))f=[];else{let e=this.getMatchedRoutes(l);f=e.matchedRoutes,this.options.notFoundRoute&&(!e.foundRoute||e.foundRoute.path!==`/`&&e.routeParams[`**`])&&(f=[...f,this.options.notFoundRoute])}if(f.length&&ee(u))for(let e of f){let t=e.options.params?.stringify??e.options.stringifyParams;if(t)try{Object.assign(u,t(u))}catch{}}let p=e.leaveParams?l:te(me({path:l,params:u,decoder:this.pathParamsDecoder,server:this.isServer}).interpolatedPath).path,m=o;if(e._includeValidateSearch&&this.options.search?.strict){let e={};f.forEach(t=>{if(t.options.validateSearch)try{Object.assign(e,En(t.options.validateSearch,{...e,...m}))}catch{}}),m=e}m=On({search:m,dest:t,destRoutes:f,_includeValidateSearch:e._includeValidateSearch}),m=S(o,m);let h=this.options.stringifySearch(m),g=t.hash===!0?n.hash:t.hash?C(t.hash,n.hash):void 0,_=g?`#${g}`:``,v=t.state===!0?n.state:t.state?C(t.state,n.state):{};v=se(n.state,v);let y=`${p}${h}${_}`,b,x,ne=!1;if(this.rewrite){let e=new URL(y,this.origin),t=on(this.rewrite,e);b=e.href.replace(e.origin,``),t.origin===this.origin?x=t.pathname+t.search+t.hash:(x=t.href,ne=!0)}else b=re(y),x=b;return{publicHref:x,href:b,pathname:p,search:m,searchStr:h,state:v,hash:g??``,external:ne,unmaskOnReload:t.unmaskOnReload}},n=(n={},r)=>{let i=t(n),a=r?t(r):void 0;if(!a){let n=Object.create(null);if(this.options.routeMasks){let o=ae(i.pathname,this.processedTree);if(o){Object.assign(n,o.rawParams);let{from:i,params:s,...c}=o.route,l=s===!1||s===null?Object.create(null):(s??!0)===!0?n:Object.assign(n,C(s,n));r={from:e.from,...c,params:l},a=t(r)}}}return a&&(i.maskedLocation=a),i};return e.mask?n(e,{from:e.from,...e.mask}):n(e)},this.commitLocation=async({viewTransition:e,ignoreBlocker:t,...n})=>{let r,i=()=>{let e=[`key`,`__TSR_key`,`__TSR_index`,`__hashScrollIntoViewOptions`];
10e.forEach(e=>{n.state[e]=this.latestLocation.state[e]});let t=ne(n.state,this.latestLocation.state);return e.forEach(e=>{delete n.state[e]}),t},a=E(this.latestLocation.href)===E(n.href),o=this.commitLocationPromise;if(this.commitLocationPromise=he(()=>{o?.resolve(),o=void 0}),a&&i())this.load();else{let{maskedLocation:i,hashScrollIntoView:a,...o}=n;i&&(o={...i,state:{...i.state,__tempKey:void 0,__tempLocation:{...o,search:o.searchStr,state:{...o.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(o.unmaskOnReload??this.options.unmaskOnReload??!1)&&(o.state.__tempKey=this.tempLocationKey)),o.state.__hashScrollIntoViewOptions=a??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=e,r=n.replace?`REPLACE`:`PUSH`,this.history[r===`REPLACE`?`replace`:`push`](o.publicHref,o.state,{ignoreBlocker:t})}return this.resetNextScroll=n.resetScroll??!0,this.history.subscribers.size||this.load(r?{action:{type:r}}:void 0),this.commitLocationPromise},this.buildAndCommitLocation=({replace:e,resetScroll:t,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:i,href:a,...o}={})=>{if(a){let t=this.history.location.state.__TSR_index,n=_n(a,{__TSR_index:e?t:t+1}),r=new URL(n.pathname,this.origin);o.to=an(this.rewrite,r).pathname,o.search=this.options.parseSearch(n.search),o.hash=n.hash.slice(1)}let s=this.buildLocation({...o,_includeValidateSearch:!0});this.pendingBuiltLocation=s;let c=this.commitLocation({...s,viewTransition:r,replace:e,resetScroll:t,hashScrollIntoView:n,ignoreBlocker:i});return Promise.resolve().then(()=>{this.pendingBuiltLocation===s&&(this.pendingBuiltLocation=void 0)}),c},this.navigate=async({to:e,reloadDocument:t,href:n,publicHref:r,...i})=>{let a=!1;if(n)try{new URL(`${n}`),a=!0}catch{}if(a&&!t&&(t=!0),t){if(e!==void 0||!n){let t=this.buildLocation({to:e,...i});n??=t.publicHref,r??=t.publicHref}let t=!a&&r?r:n;if(ie(t,this.protocolAllowlist))return Promise.resolve();if(!i.ignoreBlocker){let e=this.history.getBlockers?.()??[];for(let t of e)if(t?.blockerFn&&await t.blockerFn({currentLocation:this.latestLocation,nextLocation:this.latestLocation,action:`PUSH`}))return Promise.resolve()}return i.replace?window.location.replace(t):window.location.href=t,Promise.resolve()}return this.buildAndCommitLocation({...i,href:n,to:e,_isNavigate:!0})},this.beforeLoad=()=>{this.cancelMatches(),this.updateLatestLocation();let e=this.matchRoutes(this.latestLocation),t=this.stores.cachedMatches.get().filter(t=>!e.some(e=>e.id===t.id));this.batch(()=>{this.stores.status.set(`pending`),this.stores.statusCode.set(200),this.stores.isLoading.set(!0),this.stores.location.set(this.latestLocation),this.stores.setPending(e),this.stores.setCached(t)})},this.load=async e=>{let t=e?.action?.type,n,r,i,a=this.stores.resolvedLocation.get()??this.stores.location.get();for(i=new Promise(o=>{this.startTransition(async()=>{try{this.beforeLoad(),t?xn.set(this.latestLocation,t):xn.delete(this.latestLocation);let n=this.latestLocation,r=bn(n,this.stores.resolvedLocation.get());this.stores.redirect.get()||this.emit({type:`onBeforeNavigate`,...r}),this.emit({type:`onBeforeLoad`,...r}),await Zt({router:this,sync:e?.sync,forceStaleReload:a.href===n.href,matches:this.stores.pendingMatches.get(),location:n,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let e=null,t=null,n=null,r=null;this.batch(()=>{let i=this.stores.pendingMatches.get(),a=i.length,o=this.stores.matches.get();e=a?o.filter(e=>!this.stores.pendingMatchStores.has(e.id)):null;let s=new Set;for(let e of this.stores.pendingMatchStores.values())e.routeId&&s.add(e.routeId);let c=new Set;for(let e of this.stores.matchStores.values())e.routeId&&c.add(e.routeId);t=a?o.filter(e=>!s.has(e.routeId)):null,n=a?i.filter(e=>!c.has(e.routeId)):null,r=a?i.filter(e=>c.has(e.routeId)):o,this.stores.isLoading.set(!1),this.stores.loadedAt.set(Date.now()),a&&(this.stores.setMatches(i),this.stores.setPending([]),this.stores.setCached([...this.stores.cachedMatches.get(),...e.filter(e=>e.status!==`error`&&e.status!==`notFound`&&e.status!==`redirected`)]),this.clearExpiredCache())});for(let[e,i]of[[t,`onLeave`],[n,`onEnter`],[r,`onStay`]])if(e)for(let t of e)this.looseRoutesById[t.routeId].options[i]?.(t)})})}})}catch(e){Ne(e)?(n=e,this.navigate({...n.options,replace:!0,ignoreBlocker:!0})):je(e)&&(r=e);let t=n?n.status:r?404:this.stores.matches.get().some(e=>e.status===`error`)?500:200;this.batch(()=>{this.stores.statusCode.set(t),this.stores.redirect.set(n)})}this.latestLoadPromise===i&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),o()})}),this.latestLoadPromise=i,await i;this.latestLoadPromise&&i!==this.latestLoadPromise;)await this.latestLoadPromise;let o;this.hasNotFoundMatch()?o=404:this.stores.matches.get().some(e=>e.status===`error`)&&(o=500),o!==void 0&&this.stores.statusCode.set(o)},this.startViewTransition=e=>{let t=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,t&&typeof document<`u`&&`startViewTransition`in document&&typeof document.startViewTransition==`function`){let n;if(typeof t==`object`&&this.isViewTransitionTypesSupported){let r=this.latestLocation,i=this.stores.resolvedLocation.get(),a=typeof t.types==`function`?t.types(bn(r,i)):t.types;if(a===!1){e();return}n={update:e,types:a}}else n=e;document.startViewTransition(n)}else e()},this.updateMatch=(e,t)=>{this.startTransition(()=>
10{let n=this.stores.pendingMatchStores.get(e);if(n){n.set(t);return}let r=this.stores.matchStores.get(e);if(r){r.set(t);return}let i=this.stores.cachedMatchStores.get(e);if(i){let n=t(i.get());n.status===`redirected`?this.stores.cachedMatchStores.delete(e)&&this.stores.cachedIds.set(t=>t.filter(t=>t!==e)):i.set(n)}})},this.getMatch=e=>this.stores.cachedMatchStores.get(e)?.get()??this.stores.pendingMatchStores.get(e)?.get()??this.stores.matchStores.get(e)?.get(),this.invalidate=e=>{let t=t=>e?.filter?.(t)??!0?{...t,invalid:!0,...e?.forcePending||t.status===`error`||t.status===`notFound`?{status:`pending`,error:void 0}:void 0}:t;return this.batch(()=>{this.stores.setMatches(this.stores.matches.get().map(t)),this.stores.setCached(this.stores.cachedMatches.get().map(t)),this.stores.setPending(this.stores.pendingMatches.get().map(t))}),this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.getParsedLocationHref=e=>e.publicHref||`/`,this.resolveRedirect=e=>{let t=e.headers.get(`Location`);if(!e.options.href||e.options._builtLocation){let t=e.options._builtLocation??this.buildLocation(e.options),n=this.getParsedLocationHref(t);e.options.href=n,e.headers.set(`Location`,n)}else if(t)try{let n=new URL(t);if(this.origin&&n.origin===this.origin){let t=n.pathname+n.search+n.hash;e.options.href=t,e.headers.set(`Location`,t)}}catch{}if(e.options.href&&!e.options._builtLocation&&ie(e.options.href,this.protocolAllowlist))throw Error(`Redirect blocked: unsafe protocol`);return e.headers.get(`Location`)||e.headers.set(`Location`,e.options.href),e},this.clearCache=e=>{let t=e?.filter;t===void 0?this.stores.setCached([]):this.stores.setCached(this.stores.cachedMatches.get().filter(e=>!t(e)))},this.clearExpiredCache=()=>{let e=Date.now();this.clearCache({filter:t=>{let n=this.looseRoutesById[t.routeId];if(!n.options.loader)return!0;let r=(t.preload?n.options.preloadGcTime??this.options.defaultPreloadGcTime:n.options.gcTime??this.options.defaultGcTime)??300*1e3;return t.status===`error`?!0:e-t.updatedAt>=r}})},this.loadRouteChunk=$t,this.preloadRoute=async e=>{let t=e._builtLocation??this.buildLocation(e),n=this.matchRoutes(t,{throwOnError:!0,preload:!0,dest:e}),r=new Set([...this.stores.matchesId.get(),...this.stores.pendingIds.get()]),i=new Set([...r,...this.stores.cachedIds.get()]),a=n.filter(e=>!i.has(e.id));if(a.length){let e=this.stores.cachedMatches.get();this.stores.setCached([...e,...a])}try{return n=await Zt({router:this,matches:n,location:t,preload:!0,updateMatch:(e,t)=>{r.has(e)?n=n.map(n=>n.id===e?t(n):n):this.updateMatch(e,t)}}),n}catch(e){if(Ne(e))return e.options.reloadDocument?void 0:await this.preloadRoute({...e.options,_fromLocation:t});je(e)||console.error(e);return}},this.matchRoute=(e,t)=>{let n={...e,to:e.to?this.resolvePathWithBase(e.from||``,e.to):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n);if(t?.pending&&this.stores.status.get()!==`pending`)return!1;let i=(t?.pending===void 0?!this.stores.isLoading.get():t.pending)?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),a=Ee(r.pathname,t?.caseSensitive??!1,t?.fuzzy??!1,i.pathname,this.processedTree);return!a||e.params&&!ne(a.rawParams,e.params,{partial:!0})?!1:t?.includeSearch??!0?ne(i.search,r.search,{partial:!0})?a.rawParams:!1:a.rawParams},this.hasNotFoundMatch=()=>this.stores.matches.get().some(e=>e.status===`notFound`||e.globalNotFound),this.getStoreConfig=t,this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??`fuzzy`,stringifySearch:e.stringifySearch??jt,parseSearch:e.parseSearch??At,protocolAllowlist:e.protocolAllowlist??ge}),typeof document<`u`&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.stores.__store.get()}setRoutes({routesById:e,routesByPath:t,processedTree:n}){this.routesById=e,this.routesByPath=t,this.processedTree=n;let r=this.options.notFoundRoute;r&&(r.init({originalIndex:99999999999}),this.routesById[r.id]=r)}getRouteBranch(e){let t=this.routeBranchCache.get(e);return t||(t=De(e),this.routeBranchCache.set(e,t)),t}get looseRoutesById(){return this.routesById}getParentContext(e){return e?.id?e.context??this.options.context??void 0:this.options.context??void 0}matchRoutesInternal(e,t){let n=this.getMatchedRoutes(e.pathname),{foundRoute:r,routeParam
10s:i}=n,{matchedRoutes:a}=n,o=!1;(r?r.path!==`/`&&i[`**`]:E(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:o=!0);let s=o?An(this.options.notFoundMode,a):void 0,c=Array(a.length),l=new Map;for(let e of this.stores.matchStores.values())e.routeId&&l.set(e.routeId,e.get());for(let n=0;n<a.length;n++){let r=a[n],o=c[n-1],u,d,f;{let n=o?.search??e.search,i=o?._strictSearch??void 0;try{let e=En(r.options.validateSearch,{...n})??void 0;u={...n,...e},d={...i,...e},f=void 0}catch(e){let r=e;if(e instanceof Cn||(r=new Cn(e.message,{cause:e})),t?.throwOnError)throw r;u=n,d={},f=r}}let p=r.options.loaderDeps?.({search:u})??``,m=p?JSON.stringify(p):``,{interpolatedPath:h,usedParams:g}=me({path:r.fullPath,params:i,decoder:this.pathParamsDecoder,server:this.isServer}),_=r.id+h+m,v=this.getMatch(_),y=l.get(r.id),b=v?._strictParams??g,x;if(!v)try{jn(r,b)}catch(e){if(x=je(e)||Ne(e)?e:new wn(e.message,{cause:e}),t?.throwOnError)throw x}Object.assign(i,b);let C=y?`stay`:`enter`,ee;if(v)ee={...v,cause:C,params:y?.params??i,_strictParams:b,search:S(y?y.search:v.search,u),_strictSearch:d};else{let e=r.options.loader||r.options.beforeLoad||r.lazyFn||en(r)?`pending`:`success`;ee={id:_,ssr:r.options.ssr,index:n,routeId:r.id,params:y?.params??i,_strictParams:b,pathname:h,updatedAt:Date.now(),search:y?S(y.search,u):u,_strictSearch:d,searchError:void 0,status:e,isFetching:!1,error:void 0,paramsError:x,__routeContext:void 0,_nonReactive:{loadPromise:he()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:C,loaderDeps:y?se(y.loaderDeps,p):p,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:r.options.staticData||{},fullPath:r.fullPath}}t?.preload||(ee.globalNotFound=s===r.id),ee.searchError=f;let te=this.getParentContext(o);ee.context={...te,...ee.__routeContext,...ee.__beforeLoadContext},c[n]=ee}for(let t=0;t<c.length;t++){let n=c[t],r=this.looseRoutesById[n.routeId],a=this.getMatch(n.id),o=l.get(n.routeId);if(n.params=o?S(o.params,i):i,!a){let i=c[t-1],a=this.getParentContext(i);if(r.options.context){let t={deps:n.loaderDeps,params:n.params,context:a??{},location:e,navigate:t=>this.navigate({...t,_fromLocation:e}),buildLocation:this.buildLocation,cause:n.cause,abortController:n.abortController,preload:!!n.preload,matches:c,routeId:r.id};n.__routeContext=r.options.context(t)??void 0}n.context={...a,...n.__routeContext,...n.__beforeLoadContext}}}return c}matchRoutesLightweight(e){let{matchedRoutes:t,routeParams:n}=this.getMatchedRoutes(e.pathname),r=ce(t),i={...e.search};for(let e of t)try{Object.assign(i,En(e.options.validateSearch,i))}catch{}let a=ce(this.stores.matchesId.get()),o=a&&this.stores.matchStores.get(a)?.get(),s=o&&o.routeId===r.id&&o.pathname===e.pathname,c;if(s)c=o.params;else{let e=Object.assign(Object.create(null),n);for(let n of t)try{jn(n,e)}catch{}c=e}return{matchedRoutes:t,fullPath:r.fullPath,search:i,params:c}}},Cn=class extends Error{},wn=class extends Error{};function Tn(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:`idle`,resolvedLocation:void 0,location:e,matches:[],statusCode:200}}function En(e,t){if(e==null)return{};if(`~standard`in e){let n=e[`~standard`].validate(t);if(n instanceof Promise)throw new Cn(`Async validation not supported`);if(n.issues)throw new Cn(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return`parse`in e?e.parse(t):typeof e==`function`?e(t):{}}function Dn({pathname:e,routesById:t,processedTree:n}){let r=Object.create(null),i=E(e),a,o=v(i,n,!0);return o&&(a=o.route,Object.assign(r,o.rawParams)),{matchedRoutes:o?.branch||[t.__root__],routeParams:r,foundRoute:a}}function On({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){return kn(n)(e,t,r??!1)}function kn(e){let t={dest:null,_includeValidateSearch:!1,middlewares:[]};for(let n of e)`search`in n.options?n.options.search?.middlewares&&t.middlewares.push(...n.options.search.middlewares):(n.options.preSearchFilters||n.options.postSearchFilters)&&t.middlewares.push(({search:e,next:t})=>{let r=e;
10`preSearchFilters`in n.options&&n.options.preSearchFilters&&(r=n.options.preSearchFilters.reduce((e,t)=>t(e),e));let i=t(r);return`postSearchFilters`in n.options&&n.options.postSearchFilters?n.options.postSearchFilters.reduce((e,t)=>t(e),i):i}),n.options.validateSearch&&t.middlewares.push(({search:e,next:r})=>{let i=r(e);if(!t._includeValidateSearch)return i;try{return{...i,...En(n.options.validateSearch,i)??void 0}}catch{return i}});t.middlewares.push(({search:e})=>{let n=t.dest;return n.search?n.search===!0?e:C(n.search,e):{}});let n=(e,t,r)=>{if(e>=r.length)return t;let i=r[e];return i({search:t,next:t=>n(e+1,t,r)})};return function(e,r,i){return t.dest=r,t._includeValidateSearch=i,n(0,e,t.middlewares)}}function An(e,t){if(e!==`root`)for(let e=t.length-1;e>=0;e--){let n=t[e];if(n.children)return n.id}return Le}function jn(e,t){let n=e.options.params?.parse??e.options.parseParams;if(n){let e=n(t);if(e===!1)throw Error(`Route params.parse returned false for a matched route`);Object.assign(t,e)}}function Mn(){try{return sessionStorage}catch{return}}var Nn=`tsr-scroll-restoration-v1_3`,Pn=Mn();function Fn(){try{return JSON.parse(Pn?.getItem(`tsr-scroll-restoration-v1_3`)||`{}`)}catch{return{}}}function In(){try{Pn?.setItem(Nn,JSON.stringify(Ln))}catch{}}var Ln=Fn(),Rn=`data-scroll-restoration-id`,zn=e=>e.state.__TSR_key||e.href;function Bn(e){let t=e.getAttribute(Rn);if(t)return`[${Rn}="${t}"]`;let n=``,r=e,i;for(;i=r.parentNode;){let e=1,t=r;for(;t=t.previousElementSibling;)e++;let a=`${r.localName}:nth-child(${e})`;n=n?`${a} > ${n}`:a,r=i}return n}var Vn=!1,Hn=`window`;function Un(e){try{return typeof e==`function`?e():document.querySelector(e)}catch{}}function Wn(e){let t=[];for(let n of e){if(n===Hn)continue;let e=Un(n);e&&t.push(e)}return t}function Gn(e,t){if((t??e.options.scrollRestoration)&&(e.isScrollRestoring=!0),e.isScrollRestorationSetup)return;e.isScrollRestorationSetup=!0,Vn=!1;let n=e.options.getScrollRestorationKey||zn,r=new Map,i=(e,t,n)=>{let i=r.get(e)||{};i.scrollX=t,i.scrollY=n,r.set(e,i)};history.scrollRestoration=`manual`;let a=t=>{if(!(Vn||!e.isScrollRestoring))if(t.target===document)i(Hn,scrollX,scrollY);else{let e=t.target;i(e,e.scrollLeft,e.scrollTop)}},o=t=>{if(!e.isScrollRestoring)return;let n=Ln[t]||={};for(let[e,t]of r)e===Hn?n[Hn]=t:e.isConnected&&(n[Bn(e)]=t)};document.addEventListener(`scroll`,a,!0),e.subscribe(`onBeforeLoad`,e=>{e.fromLocation&&o(n(e.fromLocation)),r.clear()}),addEventListener(`pagehide`,()=>{o(n(e.stores.resolvedLocation.get()??e.stores.location.get())),In()}),e.subscribe(`onRendered`,t=>{let i=e.options.scrollRestorationBehavior,a=e.options.scrollToTopSelectors,o=e.resetNextScroll,s;if(r.clear(),o||(e.resetNextScroll=!0),typeof e.options.scrollRestoration==`function`&&!e.options.scrollRestoration({location:e.latestLocation}))return;let c=n(t.toLocation),l=t.fromLocation&&n(t.fromLocation);if(e.isScrollRestoring&&l&&l!==c){let e=Ln[l];if(e){let t=Ln[c];for(let n in e){if(n===Hn){if(o)continue}else{let e=Un(n);if(!e||o&&a&&(s??=Wn(a),s.includes(e)))continue}t||=Ln[c]={},t[n]??=e[n]}}}Vn=!0;try{let n=t.toLocation.hash,r=t.toLocation.state.__hashScrollIntoViewOptions??!0,l=!1;if(o){let o=xn.get(t.toLocation),u=n&&r&&(o===`PUSH`||o===`REPLACE`),d=e.isScrollRestoring?Ln[c]:void 0;if(d)for(let e in d){let{scrollX:t,scrollY:n}=d[e];if(e===Hn){if(u)continue;scrollTo({top:n,left:t,behavior:i}),l=!0}else{let r=Un(e);r&&(r.scrollLeft=t,r.scrollTop=n)}}if(!l&&!n){let e={top:0,left:0,behavior:i};if(scrollTo(e),a){s??=Wn(a);for(let t of s)t.scrollTo(e)}}}!l&&n&&r&&document.getElementById(n)?.scrollIntoView(r)}finally{Vn=!1}})}var Kn=Symbol.for(`TSR_DEFERRED_PROMISE`);function qn(e,t){let n=e;return n[Kn]?n:(n[Kn]={status:`pending`},n.then(e=>{n[Kn].status=`success`,n[Kn].data=e}).catch(e=>{n[Kn].status=`error`,n[Kn].error={data:(t?.serializeError??yn)(e),__isServerError:!0}}),n)}function Jn(e,t){if(e)return typeof e==`string`?e:e[t]}function Yn(e){return e?.scriptFormat??`module`}function Xn(e,t,n){let r=Zn(t),i=Jn(n,`script`)??r.crossOrigin;return{...Yn(e)===`iife`?{rel:`preload`,as:`script`}:{rel:`modulepreload`},href:r.href,...i?{crossOrigin:i}:{}}}function Zn(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}function Qn(e,t){if(t.length===0)return;if(t.length===1){e.push(t[0]);return}let n=new Set;for(let r of t){let t=JSON.stringify(r);n.has(t)||(n.add(t),e.push(r))}}function $n(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}var er=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=e=>{this.originalIndex=e.originalIndex;let t=this.options,n=!t?.path&&!t?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=Le
10:this.parentRoute||w();let r=n?Le:t?.path;r&&r!==`/`&&(r=Oe(r));let i=t?.id||r,a=n?Le:pe([this.parentRoute.id===`__root__`?``:this.parentRoute.id,i]);r===`__root__`&&(r=`/`),a!==`__root__`&&(a=pe([`/`,a]));let o=a===`__root__`?`/`:pe([this.parentRoute.fullPath,r]);this._path=r,this._id=a,this._fullPath=o,this._to=E(o)},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),typeof e==`object`&&e&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.redirect=e=>Me({from:this.fullPath,...e}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw Error(`Route cannot have both an 'id' and a 'path' option.`)}},tr=class extends er{constructor(e){super(e)}},nr=m({key:`$TSS/serverfn`,test:e=>typeof e!=`function`||!(f in e)?!1:!!e[f],toSerializable:({serverFnMeta:e})=>({functionId:e.id}),fromSerializable:({functionId:e})=>p(e)});function rr(e){return e.replaceAll(`\0`,`/`).replaceAll(`�`,`/`)}function ir(e,t){e.id=t.i,e.__beforeLoadContext=t.b,e.loaderData=t.l,e.status=t.s,e.ssr=t.ssr,e.updatedAt=t.u,e.error=t.e,t.g!==void 0&&(e.globalNotFound=t.g)}async function ar(e){window.$_TSR||w();let t=e.options.serializationAdapters;if(t?.length){let e=new Map;t.forEach(t=>{e.set(t.key,t.fromSerializable)}),window.$_TSR.t=e,window.$_TSR.buffer.forEach(e=>e())}window.$_TSR.initialized=!0,window.$_TSR.router||w();let n=window.$_TSR.router;n.matches.forEach(e=>{e.i=rr(e.i)}),n.lastMatchId&&=rr(n.lastMatchId);let{manifest:r,dehydratedData:i,lastMatchId:a}=n;e.ssr={manifest:r};let o=document.querySelector(`meta[property="csp-nonce"]`)?.content;e.options.ssr={nonce:o},await e.options.hydrate?.(i);let s=e.matchRoutes(e.stores.location.get()),c=Promise.all(s.map(t=>e.loadRouteChunk(e.looseRoutesById[t.routeId])));function l(t){let n=e.looseRoutesById[t.routeId].options.pendingMinMs??e.options.defaultPendingMinMs;if(n){let r=he();t._nonReactive.minPendingPromise=r,t._forcePending=!0,setTimeout(()=>{r.resolve(),e.updateMatch(t.id,e=>(e._nonReactive.minPendingPromise=void 0,{...e,_forcePending:void 0}))},n)}}function u(t){let n=e.looseRoutesById[t.routeId];n&&(n.options.ssr=t.ssr)}let d;s.forEach(e=>{let t=n.matches.find(t=>t.i===e.id);if(!t){e._nonReactive.dehydrated=!1,e.ssr=!1,u(e);return}ir(e,t),u(e),e._nonReactive.dehydrated=e.ssr!==!1,(e.ssr===`data-only`||e.ssr===!1)&&d===void 0&&(d=e.index,l(e))}),e.stores.setMatches(s);let f=e.stores.matches.get(),p=e.stores.location.get();await Promise.all(f.map(async t=>{try{let n=e.looseRoutesById[t.routeId],r=f[t.index-1]?.context??e.options.context;if(n.options.context){let i={deps:t.loaderDeps,params:t.params,context:r??{},location:p,navigate:t=>e.navigate({...t,_fromLocation:p}),buildLocation:e.buildLocation,cause:t.cause,abortController:t.abortController,preload:!1,matches:s,routeId:n.id};t.__routeContext=n.options.context(i)??void 0}t.context={...r,...t.__routeContext,...t.__beforeLoadContext};let i={ssr:e.options.ssr,matches:f,match:t,params:t.params,loaderData:t.loaderData},a=await n.options.head?.(i),o=await n.options.scripts?.(i);t.meta=a?.meta,t.links=a?.links,t.headScripts=a?.scripts,t.styles=a?.styles,t.scripts=o}catch(e){if(je(e))t.error={isNotFound:!0},console.error(`NotFound error during hydration for routeId: ${t.routeId}`,e);else throw t.error=e,console.error(`Error during hydration for route ${t.routeId}:`,e),e}}));let m=s[s.length-1].id!==a;if(!s.some(e=>e.ssr===!1)&&!m)return s.forEach(e=>{e._nonReactive.dehydrated=void 0}),e.stores.resolvedLocation.set(e.stores.location.get()),c;let h=Promise.resolve().then(()=>e.load()).catch(e=>{console.error(`Error during router hydration:`,e)});if(m){let t=s[1];t||w(),l(t),t._displayPending=!0,t._nonReactive.displayPendingPromise=h,h.then(()=>{e.batch(()=>{e.stores.status.get()===`pending`&&(e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())),e.updateMatch(t.id,e=>({...e,_displayPending:void 0,displayPendingPromise:void 0}))})})}return c}
10var A=n(i(),1),j=e();function or({promise:e}){if(we)return we(e);let t=qn(e);if(t[Kn].status===`pending`)throw t;if(t[Kn].status===`error`)throw t[Kn].error;return t[Kn].data}function sr(e){let t=(0,j.jsx)(cr,{...e});return e.fallback?(0,j.jsx)(A.Suspense,{fallback:e.fallback,children:t}):t}function cr(e){let t=or(e);return e.children(t)}function lr(e){let t=e.errorComponent??dr;return(0,j.jsx)(ur,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?A.createElement(t,{error:n,reset:r}):e.children})}var ur=class extends A.Component{constructor(...e){super(...e),this.state={error:null}}static getDerivedStateFromProps(e,t){let n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:null}:{resetKey:n}}static getDerivedStateFromError(e){return{error:e}}reset(){this.setState({error:null})}componentDidCatch(e,t){this.props.onCatch&&this.props.onCatch(e,t)}render(){return this.props.children({error:this.state.error,reset:()=>{this.reset()}})}};function dr({error:e}){let[t,n]=A.useState(!1);return(0,j.jsxs)(`div`,{style:{padding:`.5rem`,maxWidth:`100%`},children:[(0,j.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`.5rem`},children:[(0,j.jsx)(`strong`,{style:{fontSize:`1rem`},children:`Something went wrong!`}),(0,j.jsx)(`button`,{style:{appearance:`none`,fontSize:`.6em`,border:`1px solid currentColor`,padding:`.1rem .2rem`,fontWeight:`bold`,borderRadius:`.25rem`},onClick:()=>n(e=>!e),children:t?`Hide Error`:`Show Error`})]}),(0,j.jsx)(`div`,{style:{height:`.25rem`}}),t?(0,j.jsx)(`div`,{children:(0,j.jsx)(`pre`,{style:{fontSize:`.7em`,border:`1px solid red`,borderRadius:`.25rem`,padding:`.3rem`,color:`red`,overflow:`auto`},children:e.message?(0,j.jsx)(`code`,{children:e.message}):null})}):null]})}var fr=(e=>(e[e.None=0]=`None`,e[e.Mutable=1]=`Mutable`,e[e.Watching=2]=`Watching`,e[e.RecursedCheck=4]=`RecursedCheck`,e[e.Recursed=8]=`Recursed`,e[e.Dirty=16]=`Dirty`,e[e.Pending=32]=`Pending`,e))(fr||{});function pr({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function mr(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var hr=[],gr=0,{link:_r,unlink:vr,propagate:yr,checkDirty:br,shallowPropagate:xr}=pr({update(e){return e._update()},notify(e){hr[Cr++]=e,e.flags&=~fr.Watching},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=fr.Mutable|fr.Dirty,Dr(e))}}),Sr=0,Cr=0,wr,Tr=0;function Er(e){try{++Tr,e()}finally{--Tr||Or()}}function Dr(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=vr(n,e)}
10function Or(){if(!(Tr>0)){for(;Sr<Cr;){let e=hr[Sr];hr[Sr++]=void 0,e.notify()}Sr=0,Cr=0}}function kr(e,t){let n=typeof e==`function`,r=e,i={_snapshot:n?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:n?fr.None:fr.Mutable,get(){return wr!==void 0&&_r(i,wr,gr),i._snapshot},subscribe(e){let t=mr(e),n={current:!1},r=Ar(()=>{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=wr,o=t?.compare??Object.is;if(n)wr=i,++gr,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=fr.Mutable|fr.RecursedCheck);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{wr=a,n&&(i.flags&=~fr.RecursedCheck),Dr(i)}}};return n?(i.flags=fr.Mutable|fr.Dirty,i.get=function(){let e=i.flags;if(e&fr.Dirty||e&fr.Pending&&br(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&xr(e)}}else e&fr.Pending&&(i.flags=e&~fr.Pending);return wr!==void 0&&_r(i,wr,gr),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(yr(e),xr(e),Or())}},i}function Ar(e){let t=()=>{let t=wr;wr=n,++gr,n.depsTail=void 0,n.flags=fr.Watching|fr.RecursedCheck;try{return e()}finally{wr=t,n.flags&=~fr.RecursedCheck,Dr(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:fr.Watching|fr.RecursedCheck,notify(){let e=this.flags;e&fr.Dirty||e&fr.Pending&&br(this.deps,this)?t():this.flags=fr.Watching},stop(){this.flags=fr.None,this.depsTail=void 0,Dr(this)}};return t(),n}var jr={get:()=>void 0,subscribe:()=>({unsubscribe:()=>{}})};function Mr(e){let t=be(),n=A.useContext(e.from?Re:Ie),r=e.from??n,i=r?e.from?t.stores.getRouteMatchStore(r):t.stores.matchStores.get(r):void 0,a=A.useRef(void 0);return T(i??jr,n=>{if((e.shouldThrow??!0)&&!n&&w(),n===void 0)return;let r=e.select?e.select(n):n;if(e.structuralSharing??t.options.defaultStructuralSharing){let e=se(a.current,r);return a.current=e,e}return r})}function Nr(e){return Mr({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function Pr(e){let{select:t,...n}=e;return Mr({...n,select:e=>t?t(e.loaderDeps):e.loaderDeps})}function Fr(e){return Mr({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{let n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function Ir(e){return Mr({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Lr(e){let t=be();return A.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function Rr(e){return Mr({...e,select:t=>e.select?e.select(t.context):t.context})}var zr=class extends er{constructor(e){super(e),this.useMatch=e=>Mr({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>Rr({...e,from:this.id}),this.useSearch=e=>Ir({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>Fr({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>Pr({...e,from:this.id}),this.useLoaderData=e=>Nr({...e,from:this.id}),this.useNavigate=()=>Lr({from:this.fullPath}),this.Link=A.forwardRef((e,t)=>(0,j.jsx)(D,{ref:t,from:this.fullPath,...e}))}};function Br(e){return new zr(e)}var Vr=class extends tr{constructor(e){super(e),this.useMatch=e=>Mr({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>Rr({...e,from:this.id}),this.useSearch=e=>Ir({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>Fr({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>Pr({...e,from:this.id}),this.useLoaderData=e=>Nr({...e,from:this.id}),this.useNavigate=()=>Lr({from:this.fullPath}),this.Link=A.forwardRef((e,t)=>(0,j.jsx)(D,{ref:t,from:this.fullPath,...e}))}};function Hr(e){return new Vr(e)}function M(e){return new Ur(e,{silent:!0}).createRoute}var Ur=class{constructor(e,t){this.path=e,this.createRoute=e=>{let t=Br(e);return t.isRoot=!1,t},this.silent=t?.silent}};function N(e,t){let n,r,i,a,o=()=>(n||=e().then(e=>{n=void 0,r=e[t??`default`]}).catch(e=>{if(i=e,ke(i)&&i instanceof Error&&typeof window<`u`&&typeof sessionStorage<`u`){let e=`tanstack_router_reload:${i.message}`;sessionStorage.getItem(e)||(sessionStorage.setItem(e,`1`),a=!0)}}),n),s=function(e){if(a)throw window.location.reload(),new Promise(()=>{});if(i)throw i;if(!r)if(we)we(o());else throw o();return A.createElement(r,e)};return s.preload=o,s}function Wr(e){let t=be(),n=`not-found-${T(t.stores.location,e=>e.pathname)}-${T(t.stores.status,e=>e)}`;return(0,j.jsx)(lr,{getResetKey:()=>n,onCatch:(t,n)=>{if(je(t))e.onCatch?.(t,n);else throw t},errorComponent:({error:t})=>{if(je(t))return e.fallback?.(t);throw t},children:e.children})}function Gr(){return(0,j.jsx)(`p`,{children:`Not Found`})}function Kr(e){return(0,j.jsx)(j.Fragment,{children:e.children})}function qr(e,t,n){return t.options.notFoundComponent?(0,j.jsx)(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?(0,j.jsx)(e.options.defaultNotFoundComponent,{...n}):(0,j.jsx)(Gr,{})}
10var Jr=A.memo(function({matchId:e}){let t=be(),n=t.stores.matchStores.get(e);n||w();let r=T(t.stores.loadedAt,e=>e),i=T(n,e=>e);return(0,j.jsx)(Yr,{router:t,matchId:e,resetKey:r,matchState:A.useMemo(()=>{let e=i.routeId,n=t.routesById[e].parentRoute?.id;return{routeId:e,ssr:i.ssr,_displayPending:i._displayPending,parentRouteId:n}},[i._displayPending,i.routeId,i.ssr,t.routesById])})});function Yr({router:e,matchId:t,resetKey:n,matchState:r}){let i=e.routesById[r.routeId],a=i.options.pendingComponent??e.options.defaultPendingComponent,o=a?(0,j.jsx)(a,{}):null,s=i.options.errorComponent??e.options.defaultErrorComponent,c=i.options.onCatch??e.options.defaultOnCatch,l=i.isRoot?i.options.notFoundComponent??e.options.notFoundRoute?.options.component:i.options.notFoundComponent,u=r.ssr===!1||r.ssr===`data-only`,d=(!i.isRoot||i.options.wrapInSuspense||u)&&(i.options.wrapInSuspense??a??(i.options.errorComponent?.preload||u))?A.Suspense:Kr,f=s?lr:Kr,p=l?Wr:Kr;return(0,j.jsxs)(i.isRoot?i.options.shellComponent??Kr:Kr,{children:[(0,j.jsx)(Ie.Provider,{value:t,children:(0,j.jsx)(d,{fallback:o,children:(0,j.jsx)(f,{getResetKey:()=>n,errorComponent:s||dr,onCatch:(e,t)=>{if(je(e))throw e.routeId??=r.routeId,e;c?.(e,t)},children:(0,j.jsx)(p,{fallback:e=>{if(e.routeId??=r.routeId,!l||e.routeId&&e.routeId!==r.routeId||!e.routeId&&!i.isRoot)throw e;return A.createElement(l,e)},children:u||r._displayPending?(0,j.jsx)(ue,{fallback:o,children:(0,j.jsx)(Zr,{matchId:t})}):(0,j.jsx)(Zr,{matchId:t})})})})}),r.parentRouteId===`__root__`?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(Xr,{resetKey:n}),(e.options.scrollRestoration,null)]}):null]})}function Xr({resetKey:e}){let t=be(),n=A.useRef(void 0);return de(()=>{let e=t.latestLocation.href;(n.current===void 0||n.current!==e)&&(t.emit({type:`onRendered`,...bn(t.stores.location.get(),t.stores.resolvedLocation.get())}),n.current=e)},[t.latestLocation.state.__TSR_key,e,t]),null}var Zr=A.memo(function({matchId:e}){let t=be(),n=(e,n)=>t.getMatch(e.id)?._nonReactive[n]??e._nonReactive[n],r=t.stores.matchStores.get(e);r||w();let i=T(r,e=>e),a=i.routeId,o=t.routesById[a],s=A.useMemo(()=>{let e=(t.routesById[a].options.remountDeps??t.options.defaultRemountDeps)?.({routeId:a,loaderDeps:i.loaderDeps,params:i._strictParams,search:i._strictSearch});return e?JSON.stringify(e):void 0},[a,i.loaderDeps,i._strictParams,i._strictSearch,t.options.defaultRemountDeps,t.routesById]),c=A.useMemo(()=>{let e=o.options.component??t.options.defaultComponent;return e?(0,j.jsx)(e,{},s):(0,j.jsx)(Qr,{})},[s,o.options.component,t.options.defaultComponent]);if(i._displayPending)throw n(i,`displayPendingPromise`);if(i._forcePending)throw n(i,`minPendingPromise`);if(i.status===`pending`){let e=o.options.pendingMinMs??t.options.defaultPendingMinMs;if(e){let n=t.getMatch(i.id);if(n&&!n._nonReactive.minPendingPromise){let t=he();n._nonReactive.minPendingPromise=t,setTimeout(()=>{t.resolve(),n._nonReactive.minPendingPromise=void 0},e)}}throw n(i,`loadPromise`)}if(i.status===`notFound`)return je(i.error)||w(),qr(t,o,i.error);if(i.status===`redirected`)throw Ne(i.error)||w(),n(i,`loadPromise`);if(i.status===`error`)throw i.error;return c}),Qr=A.memo(function(){let e=be(),t=A.useContext(Ie),n,r=!1,i;{let a=t?e.stores.matchStores.get(t):void 0;[n,r]=T(a,e=>[e?.routeId,e?.globalNotFound??!1]),i=T(e.stores.matchesId,e=>e[e.findIndex(e=>e===t)+1])}let a=n?e.routesById[n]:void 0,o=e.options.defaultPendingComponent?(0,j.jsx)(e.options.defaultPendingComponent,{}):null;if(r)return a||w(),qr(e,a,void 0);if(!i)return null;let s=(0,j.jsx)(Jr,{matchId:i});return n===`__root__`?(0,j.jsx)(A.Suspense,{fallback:o,children:s}):s});function $r(){let e=be(),t=A.useRef({router:e,mounted:!1}),[n,r]=A.useState(!1),i=T(e.stores.isLoading,e=>e),a=T(e.stores.hasPending,e=>e),o=fe(i),s=i||n||a,c=fe(s),l=i||a,u=fe(l);return e.startTransition=e=>{r(!0),A.startTransition(()=>{e(),r(!1)})},A.useEffect(()=>{let t=e.history.subscribe(e.load),n=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return E(e.latestLocation.publicHref)!==E(n.publicHref)&&e.commitLocation({...n,replace:!0}),()=>{t()}},[e,e.history]),de(()=>{typeof window<`u`&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(e){console.error(e)}})())},[e]),de(()=>{o&&!i&&e.emit({type:`onLoad`,...bn(e.stores.location.get(),e.stores.resolvedLocation.get())})},[o,e,i]),de(()=>{u&&!l&&e.emit({type:`onBeforeRouteMount`,...bn(e.stores.location.get(),e.stores.resolvedLocation.get())})},[l,u,e]),de(()=>{if(c&&!s){let t=bn(e.stores.location.get(),e.stores.resolvedLocation.get());e.emit({type:`onResolved`,...t}),Er(()=>{e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())})}},[s,c,e]),null}function ei(){let e=be(),t=e.routesById.__root__.options.pendingComponent??e.options.defaultPendingComponent,n=t?(0,j.jsx)(t,{}):null,r=(0,j.jsxs)(typeof document<`u`&&e.ssr?Kr:A.Suspense,{fallback:n,children:[(0,j.jsx)($r,{}),(0,j.jsx)(ti,{})]});return e.options.InnerWrap?(0,j.jsx)(e.options.InnerWrap,{children:r}):r}function ti(){let e=be(),t=T(e.stores.firstId,e=>e),n=T(e.stores.loadedAt,e=>e),r=t?(0,j.jsx)(Jr,{matchId:t}):null;return(0,j.jsx)(Ie.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:(0,j.jsx)(lr,{getResetKey:()=>n,errorComponent:dr,onCatch:void 0,children:r})})}var ni=e=>({createMutableStore:kr,createReadonlyStore:kr,batch:Er}),ri=e=>
10new ii(e),ii=class extends Sn{constructor(e){super(e,ni)}};function ai({router:e,children:t,...n}){ee(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,j.jsx)(Se.Provider,{value:e,children:t});return e.options.Wrap?(0,j.jsx)(e.options.Wrap,{children:r}):r}function oi({router:e,...t}){return(0,j.jsx)(ai,{router:e,...t,children:(0,j.jsx)(ei,{})})}function si(e){let t=be({warn:e?.router===void 0}),n=e?.router||t,r=(0,A.useRef)(void 0);return T(n.stores.__store,t=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){let n=se(r.current,e.select(t));return r.current=n,n}return e.select(t)}return t})}function ci(e,t){if(t)for(let[n,r]of Object.entries(t))n!==`suppressHydrationWarning`&&r!==void 0&&r!==!1&&e.setAttribute(n,typeof r==`boolean`?``:String(r))}function li(e){let{attrs:t,children:n,nonce:r,preventScriptHoist:i}=e;switch(e.tag){case`title`:return(0,j.jsx)(`title`,{...t,suppressHydrationWarning:!0,children:n});case`meta`:return(0,j.jsx)(`meta`,{...t,suppressHydrationWarning:!0});case`link`:return(0,j.jsx)(`link`,{...t,precedence:t?.precedence??(t?.rel===`stylesheet`?`default`:void 0),nonce:r,suppressHydrationWarning:!0});case`style`:return e.inlineCss,(0,j.jsx)(`style`,{...t,dangerouslySetInnerHTML:{__html:n},nonce:r});case`script`:return(0,j.jsx)(ui,{attrs:t,preventScriptHoist:i,children:n});default:return null}}function ui({attrs:e,children:t,preventScriptHoist:n}){be();let r=_e(),i=typeof e?.type==`string`&&e.type!==``&&e.type!==`text/javascript`&&e.type!==`module`;if(A.useEffect(()=>{if(!i){if(e?.src){let t=(()=>{try{let t=document.baseURI||window.location.href;return new URL(e.src,t).href}catch{return e.src}})();for(let e of document.querySelectorAll(`script[src]`))if(e.src===t)return;let n=document.createElement(`script`);return ci(n,e),document.head.appendChild(n),()=>n.remove()}if(typeof t==`string`){let n=typeof e?.type==`string`?e.type:`text/javascript`,r=typeof e?.nonce==`string`?e.nonce:void 0;for(let e of document.querySelectorAll(`script:not([src])`)){if(!(e instanceof HTMLScriptElement))continue;let i=e.getAttribute(`type`)??`text/javascript`,a=e.getAttribute(`nonce`)??void 0;if(e.textContent===t&&i===n&&a===r)return}let i=document.createElement(`script`);return i.textContent=t,ci(i,e),document.head.appendChild(i),()=>i.remove()}}},[e,t,i]),i&&typeof t==`string`)return(0,j.jsx)(`script`,{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}});if(!r){if(e?.src)return(0,j.jsx)(`script`,{...e,suppressHydrationWarning:!0});if(typeof t==`string`)return(0,j.jsx)(`script`,{...e,dangerouslySetInnerHTML:{__html:t},suppressHydrationWarning:!0})}return null}var di=e=>{let t=be(),n=t.options.ssr?.nonce,r=T(t.stores.matches,e=>e.map(e=>e.meta).filter(e=>e!==void 0),ne),i=A.useMemo(()=>{let e=[],t={},i;for(let a=r.length-1;a>=0;a--){let o=r[a];for(let r=o.length-1;r>=0;r--){let a=o[r];if(a)if(a.title)i||={tag:`title`,children:a.title};else if(`script:ld+json`in a)try{let t=JSON.stringify(a[`script:ld+json`]);e.push({tag:`script`,attrs:{type:`application/ld+json`},children:x(t)})}catch{}else{let r=a.name??a.property;if(r){if(t[r])continue;t[r]=!0}e.push({tag:`meta`,attrs:{...a,nonce:n}})}}}return i&&e.push(i),n&&e.push({tag:`meta`,attrs:{property:`csp-nonce`,content:n}}),e.reverse(),e},[r,n]),a=T(t.stores.matches,e=>e.flatMap(e=>e.links??[]).filter(e=>e!==void 0).map(e=>({tag:`link`,attrs:{...e,nonce:n}})),ne),o=T(t.stores.matches,r=>{let i=t.ssr?.manifest,a=[];return i?(r.forEach(t=>{i.routes[t.routeId]?.css?.forEach(t=>{let r=$n(t);a.push({tag:`link`,attrs:{rel:`stylesheet`,...r,crossOrigin:Jn(e,`stylesheet`)??r.crossOrigin,suppressHydrationWarning:!0,nonce:n}})})}),i.inlineStyle&&a.push({tag:`style`,attrs:{...i.inlineStyle.attrs,nonce:n},children:i.inlineStyle.children,inlineCss:!0}),a):a},ne),s=T(t.stores.matches,r=>{let i=[],a=t.ssr?.manifest;return a&&r.forEach(t=>{a.routes[t.routeId]?.preloads?.forEach(t=>{i.push({tag:`link`,attrs:{...Xn(a,t,e),nonce:n}})})}),i},ne),c=T(t.stores.matches,e=>e.flatMap(e=>e.styles??[]).filter(e=>e!==void 0).map(({children:e,...t})=>({tag:`style`,attrs:{...t,nonce:n},children:e})),ne),l=T(t.stores.matches,e=>e.flatMap(e=>e.headScripts??[]).filter(e=>e!==void 0).map(({children:e,...t})=>({tag:`script`,attrs:{...t,nonce:n},children:e})),ne),u=[];return Qn(u,i),u.push(...s),Qn(u,a),u.push(...o),Qn(u,c),Qn(u,l),u};function fi(e){let t=di(e.assetCrossOrigin),n=be().options.ssr?.nonce;return(0,j.jsx)(j.Fragment,{children:t.map(e=>(0,A.createElement)(li,{...e,key:`tsr-meta-${JSON.stringify(e)}`,nonce:n}))})}var pi=()=>{let e=be(),t=e.options.ssr?.nonce,n=n=>{let r=[],i=e.ssr?.manifest;if(!i)return[];for(let e of n){let n=i.routes[e.routeId]?.scripts;if(n)for(let e of n)r.push({tag:`script`,attrs:{...e.attrs,nonce:t},children:e.children,...typeof e.attrs?.src==`string`?{preventScriptHoist:!0}:{}})}return r},r=e=>e.map(e=>
10e.scripts).flat(1).filter(Boolean).map(({children:e,...n})=>({tag:`script`,attrs:{...n,suppressHydrationWarning:!0,nonce:t},children:e})),i=T(e.stores.matches,n,ne);return mi(e,T(e.stores.matches,r,ne),i)};function mi(e,t,n){let r=[...t,...n];return(0,j.jsx)(j.Fragment,{children:r.map((e,t)=>(0,A.createElement)(li,{...e,key:`tsr-scripts-${e.tag}-${t}`}))})}var hi=class extends Xe{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new rt({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=gi(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=gi(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=gi(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}else return!0}runNext(e){let t=gi(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>
vendor: 4,180 bytes, line 10
10t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){Ye.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>Ge(t,e))}findAll(e={}){return this.getAll().filter(t=>Ge(e,t))}notify(e){Ye.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return Ye.batch(()=>Promise.all(e.map(e=>e.continue().catch(He))))}};function gi(e){return e.options.scope?.id}var _i=class extends Xe{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??et(r,t),a=this.get(i);return a||(a=new qe({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){Ye.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>nt(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>nt(e,t)):t}notify(e){Ye.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){Ye.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){Ye.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},vi=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new _i,this.#t=e.mutationCache||new hi,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=Ve.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=Qe.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(tt(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=Je(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return Ye.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;Ye.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return Ye.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=Ye.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(He).catch(He)}invalidateQueries(e,t={}){return Ye.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=Ye.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(He)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(He)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(tt(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(He).catch(He)}
10fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(He).catch(He)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return Qe.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(Ue(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{ze(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(Ue(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{ze(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=et(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===Be&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},yi=(e,t,n,r,i,a,o,s)=>{let c=document.documentElement,l=[`light`,`dark`];function u(t){(Array.isArray(e)?e:[e]).forEach(e=>{let n=e===`class`,r=n&&a?i.map(e=>a[e]||e):i;n?(c.classList.remove(...r),c.classList.add(a&&a[t]?a[t]:t)):c.setAttribute(e,t)}),d(t)}function d(e){s&&l.includes(e)&&(c.style.colorScheme=e)}function f(){return window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}if(r)u(r);else try{let e=localStorage.getItem(t)||n;u(o&&e===`system`?f():e)}catch{}},bi=[`light`,`dark`],xi=`(prefers-color-scheme: dark)`,Si=typeof window>`u`,Ci=A.createContext(void 0),wi={setTheme:e=>{},themes:[]},Ti=()=>A.useContext(Ci)??wi,Ei=e=>A.useContext(Ci)?A.createElement(A.Fragment,null,e.children):A.createElement(Oi,{...e}),Di=[`light`,`dark`],Oi=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:n=!0,enableColorScheme:r=!0,storageKey:i=`theme`,themes:a=Di,defaultTheme:o=n?`system`:`light`,attribute:s=`data-theme`,value:c,children:l,nonce:u,scriptProps:d})=>{let[f,p]=A.useState(()=>Ai(i,o)),[m,h]=A.useState(()=>f===`system`?Mi():f),g=c?Object.values(c):a,_=A.useCallback(e=>{let i=e;if(!i)return;e===`system`&&n&&(i=Mi());let a=c?c[i]:i,l=t?ji(u):null,d=document.documentElement,f=e=>{e===`class`?(d.classList.remove(...g),a&&d.classList.add(a)):e.startsWith(`data-`)&&(a?d.setAttribute(e,a):d.removeAttribute(e))};if(Array.isArray(s)?s.forEach(f):f(s),r){let e=bi.includes(o)?o:null,t=bi.includes(i)?i:e;d.style.colorScheme=t}l?.()},[u]),v=A.useCallback(e=>{let t=typeof e==`function`?e(f):e;p(t);try{localStorage.setItem(i,t)}catch{}},[f]),y=A.useCallback(t=>{h(Mi(t)),f===`system`&&n&&!e&&_(`system`)},[f,e]);A.useEffect(()=>{let e=window.matchMedia(xi);return e.addListener(y),y(e),()=>e.removeListener(y)},[y]),A.useEffect(()=>{let e=e=>{e.key===i&&(e.newValue?p(e.newValue):v(o))};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[v]),A.useEffect(()=>{_(e??f)},[e,f]);let b=A.useMemo(()=>({theme:f,setTheme:v,forcedTheme:e,resolvedTheme:f===`system`?m:f,themes:n?[...a,`system`]:a,systemTheme:n?m:void 0}),[f,v,e,m,n,a]);return A.createElement(Ci.Provider,{value:b},A.createElement(ki,{forcedTheme:e,storageKey:i,attribute:s,enableSystem:n,enableColorScheme:r,defaultTheme:o,value:c,themes:a,nonce:u,scriptProps:d}),l)},ki=A.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:r,enableColorScheme:i,defaultTheme:a,value:o,themes:s,nonce:c,scriptProps:l})=>{let u=JSON.stringify([n,t,a,e,s,o,r,i]).slice(1,-1);return A.createElement(`script`,{...l,suppressHydrationWarning:!0,nonce:typeof window>`u`?c:``,dangerouslySetInnerHTML:{__html:`(${yi.toString()})(${u})`}})}),Ai=(e,t)=>{if(Si)return;let n;try{n=localStorage.getItem(e)||void 0}catch{}return n||t},ji=e=>{let t=document.createElement(`style`);return e&&t.setAttribute(`nonce`,e),t.appendChild(document.createTextNode(`*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}`)),document.head.appendChild(t),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(t)},1)}},Mi=e=>(e||=window.matchMedia(xi),e.matches?`dark`:`light`);function Ni(){return new vi({defaultOptions:{queries:{staleTime:3e4,retry:1,refetchOnWindowFocus:!1}}})}var Pi;function Fi(){return typeof window>`u`?Ni():(Pi||=Ni(),Pi)}function Ii(e,t){return o(`${k.app_url}${e}`,{locale:t}).href}var Li=`/imgs/og/default.png`;function Ri(e){let t=ot[e]??ot.en;return[{property:`og:type`,content:`website`},{property:`og:site_name`,content:k.app_name},{property:`og:locale`,content:t},...Object.values(ot).filter(e=>e!==t).map(e=>({property:`og:locale:alternate`,content:e})),{property:`og:image`,content:`${k.app_url}${Li}`},{property:`og:image:width`,content:`1200`},{property:`og:image:height`,content:`630`},{property:`og:image:alt`,content:`${k.app_name} — HSK 3.0 mock tests, vocabulary and reading`},{name:`twitter:card`,content:`summary_large_image`}]}function P({title:e,description:t,url:n,image:r,imageAlt:i,locale:a}){let o=`${k.app_url}${r}`,s=ot[a]??ot.en;return[{property:`og:type`,content:`website`},{property:`og:site_name`,content:k.app_name},{property:`og:title`,content:e},{property:`og:description`,content:t},{property:`og:url`,content:n},{property:`og:locale`,content:s},...Object.values(ot).filter(e=>e!==s).map(e=>({property:`og:locale:alternate`,content:e})),{property:`og:image`,content:o},{property:`og:image:width`,content:`1200`},{property:`og:image:height`,content:`630`},{property:`og:image:alt`,content:i},{name:`twitter:card`,content:`summary_large_image`},{name:`twitter:title`,content:e},{name:`twitter:description`,content:t},{name:`twitter:image`,content:o},{name:`twitter:image:alt`,content:i}]}function F(e,t){return{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{name:k.app_name,path:`/`},...t].map((t,n)=>({"@type":`ListItem`,position:n+1,name:t.name,item:Ii(t.path,e)}))}}function zi(e){return{"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:e.map(e=>
10({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}}))}}function Bi(e,t){return[{rel:`canonical`,href:Ii(e,t)},...r.map(t=>({rel:`alternate`,hrefLang:t,href:Ii(e,t)})),{rel:`alternate`,hrefLang:`x-default`,href:Ii(e,`en`)}]}function Vi({code:e}){return e?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`meta`,{name:`google-adsense-account`,content:e}),(0,j.jsx)(`script`,{id:`adsbygoogle-loader`,async:!0,src:`https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=${e}`,crossOrigin:`anonymous`})]}):null}var Hi=`1.6.2`;function Ui(){let e=Object.getOwnPropertyDescriptor(Error,`stackTraceLimit`);return e===void 0?Object.isExtensible(Error):Object.prototype.hasOwnProperty.call(e,`writable`)?e.writable:e.set!==void 0}function Wi(e){let t=e.split(`
11    at `);return t.length<=1?e:(t.splice(1,1),t.join(`
12    at `))}function Gi(e,t){class n extends e{#e;constructor(...e){if(Ui()){let t=Error.stackTraceLimit;Error.stackTraceLimit=0,super(...e),Error.stackTraceLimit=t}else super(...e);let t=Error().stack;t&&(this.#e=Wi(t.replace(/^Error/,this.name)))}get errorStack(){return this.#e}}return Object.defineProperty(n.prototype,"constructor",{get(){return t},enumerable:!1,configurable:!0}),n}var Ki={OK:200,CREATED:201,ACCEPTED:202,NO_CONTENT:204,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,TEMPORARY_REDIRECT:307,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,"I'M_A_TEAPOT":418,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE:431,UNAVAILABLE_FOR_LEGAL_REASONS:451,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511};Gi(class extends Error{constructor(e=`INTERNAL_SERVER_ERROR`,t=void 0,n={},r=typeof e==`number`?e:Ki[e]){super(t?.message,t?.cause?{cause:t.cause}:void 0),this.status=e,this.body=t,this.headers=n,this.statusCode=r,this.name=`APIError`,this.status=e,this.headers=n,this.statusCode=r,this.body=t}},Error);var qi=class extends Error{constructor(e,t){super(e,t),this.name=`BetterAuthError`,this.message=e,this.stack=``}},Ji=!1;function Yi(){return typeof window<`u`&&`IdentityCredential`in window}var Xi={dismissed:[`credential_returned`,`cancel_called`],skipped:[`user_cancel`,`tap_outside`]},Zi=e=>({id:`one-tap`,version:Hi,fetchPlugins:[{id:`fedcm-signout-handle`,name:`FedCM Sign-Out Handler`,hooks:{async onResponse(t){t.request.url.toString().includes(`/sign-out`)&&(e.promptOptions?.fedCM===!1||!Yi()||navigator.credentials.preventSilentAccess())}}}],getActions:(t,n)=>({oneTap:async(n,r)=>{if(Ji){console.warn(`A Google One Tap request is already in progress. Please wait.`);return}if(typeof window>`u`||!window.document){console.warn(`Google One Tap is only available in browser environments`);return}if(n?.button){await Qi();let i=typeof n.button.container==`string`?document.querySelector(n.button.container):n.button.container;if(!i){console.error(`Google One Tap: Button container not found`,n.button.container);return}async function a(e){await t(`/one-tap/callback`,{method:`POST`,body:{idToken:e},...n?.fetchOptions,...r}),(!n?.fetchOptions&&!r||n?.callbackURL)&&(window.location.href=n?.callbackURL??`/`)}let{autoSelect:o,cancelOnTapOutside:s,context:c}=n??{},l=c??e.context??`signin`,u=e.promptOptions?.fedCM!==!1;window.google?.accounts.id.initialize({client_id:e.clientId,callback:async e=>{try{await a(e.credential)}catch(e){console.error(`Error during button callback:`,e)}},auto_select:o,cancel_on_tap_outside:s,context:l,ux_mode:n?.uxMode||`popup`,nonce:n?.nonce,itp_supp
12ort:!0,use_fedcm_for_prompt:u,...e.additionalOptions}),window.google?.accounts.id.renderButton(i,n.button.config??{type:`icon`});return}async function i(e){await t(`/one-tap/callback`,{method:`POST`,body:{idToken:e},...n?.fetchOptions,...r}),(!n?.fetchOptions&&!r||n?.callbackURL)&&(window.location.href=n?.callbackURL??`/`)}let{autoSelect:a,cancelOnTapOutside:o,context:s}=n??{},c=s??e.context??`signin`;Ji=!0;try{await Qi(),await new Promise((t,r)=>{let s=!1,l=e.promptOptions?.baseDelay??1e3,u=e.promptOptions?.maxAttempts??5,d=e.promptOptions?.fedCM!==!1;window.google?.accounts.id.initialize({client_id:e.clientId,callback:async e=>{s=!0;try{await i(e.credential),t()}catch(e){console.error(`Error during One Tap callback:`,e),r(e)}},auto_select:a,cancel_on_tap_outside:o,context:c,ux_mode:n?.uxMode||`popup`,nonce:n?.nonce,itp_support:!0,use_fedcm_for_prompt:d,...e.additionalOptions});let f=e=>{s||window.google?.accounts.id.prompt(r=>{if(!s)if(r.isDismissedMoment?.()){let i=r.getDismissedReason?.();if(Xi.dismissed.includes(i)){n?.onPromptNotification?.(r),t();return}if(e<u){let t=2**e*l;setTimeout(()=>f(e+1),t)}else n?.onPromptNotification?.(r),t()}else if(r.isSkippedMoment?.()){let i=r.getSkippedReason?.();if(!i||Xi.skipped.includes(i)){n?.onPromptNotification?.(r),t();return}if(e<u){let t=2**e*l;setTimeout(()=>f(e+1),t)}else n?.onPromptNotification?.(r),t()}else r.isNotDisplayed?.()&&(n?.onPromptNotification?.(r),t())})};f(0)})}catch(e){throw console.error(`Error during Google One Tap flow:`,e),e}finally{Ji=!1}}}),getAtoms(e){return{}}}),Qi=()=>new Promise((e,t)=>{if(window.googleScriptInitialized){e();return}let n=document.createElement(`script`);n.src=`https://accounts.google.com/gsi/client`,n.async=!0,n.defer=!0,n.onload=()=>{window.googleScriptInitialized=!0,e()},n.onerror=()=>{t(Error(`Failed to load Google Identity Services script`))},document.head.appendChild(n)}),$i=[],ea=0,ta=4,na=0,ra=e=>{let t=[],n={get(){return n.lc||n.listen(()=>{})(),n.value},init:e,lc:0,listen(e){return n.lc=t.push(e),()=>{for(let t=ea+ta;t<$i.length;)$i[t]===e?$i.splice(t,ta):t+=ta;let r=t.indexOf(e);~r&&(t.splice(r,1),--n.lc||n.off())}},notify(e,r){na++;let i=!$i.length;for(let i of t)$i.push(i,n.value,e,r);if(i){for(ea=0;ea<$i.length;ea+=ta)$i[ea]($i[ea+1],$i[ea+2],$i[ea+3]);$i.length=0}},off(){},set(e){let t=n.value;t!==e&&(n.value=e,n.notify(t))},subscribe(e){let t=n.listen(e);return e(n.value),t},value:e};return n},ia=5,aa=6,oa=10,sa=(e,t,n,r)=>(e.events=e.events||{},e.events[n+oa]||(e.events[n+oa]=r(t=>{e.events[n].reduceRight((e,t)=>(t(e),e),{shared:{},...t})})),e.events[n]=e.events[n]||[],e.events[n].push(t),()=>{let r=e.events[n],i=r.indexOf(t);r.splice(i,1),r.length||(delete e.events[n],e.events[n+oa](),delete e.events[n+oa])}),ca=1e3,la=(e,t)=>sa(e,n=>{let r=t(n);r&&e.events[aa].push(r)},ia,t=>{let n=e.listen;e.listen=(...r)=>(!e.lc&&!e.active&&(e.active=!0,t()),n(...r));let r=e.off;return e.events[aa]=[],e.off=()=>{r(),setTimeout(()=>{if(e.active&&!e.lc){e.active=!1;for(let t of e.events[aa])t();e.events[aa]=[]}},ca)},()=>{e.listen=n,e.off=r}});function ua(e,t,n){let r=new Set(t).add(void 0);return e.listen((e,t,i)=>{r.has(i)&&n(e,t,i)})}var da=()=>typeof window>`u`,fa=(e,t,n,r)=>{let i=ra({data:null,error:null,isPending:!0,isRefetching:!1,refetch:e=>a(e)}),a=async e=>new Promise(a=>{let o=typeof r==`function`?r({data:i.get().data,error:i.get().error,isPending:i.get().isPending}):r;n(t,{...o,query:{...o?.query,...e?.query},async onSuccess(e){i.set({data:e.data,error:null,isPending:!1,isRefetching:!1,refetch:i.value.refetch}),await o?.onSuccess?.(e)},async onError(e){let{request:t}=e,n=typeof t.retry==`number`?t.retry:t.retry?.attempts,r=t.retryAttempt||0;if(n&&r<n)return;let a=e.error.status===401;i.set({error:e.error,data:a?null:i.get().data,isPending:!1,isRefetching:!1,refetch:i.value.refetch}),await o?.onError?.(e)},async onRequest(e){let t=i.get();i.set({isPending:t.data===null,data:t.data,error:null,isRefetching:!0,refetch:i.value.refetch}),await o?.onRequest?.(e)}}).catch(e=>{i.set({error:e,data:i.get().data,isPending:!1,isRefetching:!1,refetch:i.value.refetch})}).finally(()=>{a(void 0)})});e=Array.isArray(e)?e:[e];let o=!1;for(let t of e)t.subscribe(async()=>{da()||(o?await a():la(i,()=>{let e=setTimeout(async()=>{o||=(await a(),!0)},0);return()=>{i.off(),t.off(),clearTimeout(e)}}))});return i},pa=Object.create(null),ma=e=>({}),ha=new Proxy(pa,{get(e,t){return ma()[t]??pa[t]},has(e,t){return t in ma()||t in pa},set(e,t,n){let r=ma(!0);return r[t]=n,!0},deleteProperty(e,t){if(!t)return!1;let n=ma(!0);return delete n[t],!0},ownKeys(){let e=ma(!0);return Object.keys(e)}});function ga(e,t){return typeof process<`u`?{}[e]??t:typeof Deno<`u`?Deno.env.get(e)??t:typeof Bun<`u`?Bun.env[e]??t:t}Object.freeze({get BETTER_AUTH_SECRET(){return ga(`BETTER_AUTH_SECRET`)},get AUTH_SECRET(){return ga(`AUTH_SECRET`)},get BETTER_AUTH_TELEMETRY(){return ga(`BETTER_AUTH_TELEMETRY`)},get BETTER_AUTH_TELEMETRY_ID(){return ga(`BETTER_AUTH_TELEMETRY_ID`)},get NODE_ENV(){return ga(`NODE_ENV`,`development`)},get PACKAGE_VERSION(){return ga(`PACKAGE_VERSION`,`0.0.0`)},get BETTER_AUTH_TELEMETRY_ENDPOINT(){return ga(`BETTER_AUTH_TELEMETRY_ENDPOINT`,``)}});function _a(e){try{return(new URL(e).pathname.replace(/\/+$/,``)||`/`)!==`/`}catch{throw new qi(`Invalid base URL: ${e}. Please provide a valid base URL.`)}}function va(e){try{let t=new URL(e);if(t.protocol!==`http:`&&t.protocol!==`https:`)throw new qi(`Invalid base URL: ${e}. URL must include 'http://' or 'https://'`)}catch(t){throw t instanceof qi?t:new qi(`Invalid base URL: ${e}. Please provide a valid base URL.`,{cause:t})}}function ya(e,t=`/api/auth`){if(va(e),_a(e))return e;let n=e.replace(/\/+$/,``);return!t||t===`/`?n:(t=t.startsWith(`/`)?t:`/${t}`,`${n}${t}`)}function ba(e,t){return!e||e.trim()===``?!1:t===`proto`?e===`http`||e===`https`:t===`host`?[/\.\./,/\0/,/[\s]/,/^[.]/,/[<>'"]/,/javascript:/i,/file:/i,/data:/i].some(t=>t.test(e))?!1:/^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*(:[0-9]{1,5})?$/.test(e)||/^(\d{1,3}\.){3}\d{1,3}(:[0-9]{1,5})?$/.test(e)||/^\[[0-9a-fA-F:]+\](:[0-9]{1,5})?$/.test(e)||/^localhost(:[0-9]{1,5})?$/i.test(e):!1}function xa(e,t,n,r,i){if(e)return ya(e,t);if(r!==!1){let e=ha.BETTER_AUTH_URL||ha.NEXT_PUBLIC_BETTER_AUTH_URL||ha.PUBLIC_BETTER_AUTH_URL||ha.NUXT_PUBLIC_BETTER_AUTH_URL||ha.NUXT_PUBLIC_AUTH_URL||(ha.BASE_URL===`/`?void 0:ha.BASE_URL);if(e)return ya(e,t)}let a=n?.headers.get(`x-forwarded-host`),o=n?.headers.get(`x-forwarded-proto`);if(a&&o&&i&&ba(o,`proto`)&&ba(a,`host`))try{return ya(`${o}://${a}`,t)}catch{}if(n){let e=Sa(n.url);if(!e)throw new qi(`Could not get origin from request. Please provide a valid base URL.`);return ya(e,t)}if(typeof window<`u`&&window.location)return ya(window.location.origin,t)}function Sa(e){try{let t=new URL(e);return t.origin===`null`?null:t.origin}catch{return null}}var Ca={proto:/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,constructor:/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,protoShort:/"__proto__"\s*:/,constructorShort:/"constructor"\s*:/},wa=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/,Ta={true:!0,false:!1,null:null,undefined:void 0,nan:NaN,infinity:1/0,"-infinity":-1/0},Ea=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,7}))?(?:Z|([+-])(\d{2}):(\d{2}))$/;function Da(e){return e instanceof Date&&!isNaN(e.getTime())}function Oa(e){let t=Ea.exec(e);if(!t)return null;let[,n,r,i,a,o,s,c,l,u,d]=t,f=new Date(Date.UTC(parseInt(n,10),parseInt(r,10)-1,parseInt(i,10),parseInt(a,10),parseInt(o,10),parseInt(s,10),c?parseInt(c.padEnd(3,`0`),10):0));if(l){let e=(parseInt(u,10)*60+parseInt(d,10))*(l===`+`?-1:1);f.setUTCMinutes(f.getUTCMinutes()+e)}return Da(f)?f:null}function ka(e,t={}){let{strict:n=!1,warnings:r=!1,reviver:i,parseDates:a=!0}=t;if(typeof e!=`string`)return e;let o=e.trim();if(o.length>0&&o[0]===`"`&&o.endsWith(`"`)&&!o.slice(1,-1).includes(`"`))return o.slice(1,-1);let s=o.toLowerCase();if(s.length<=9&&s in Ta)return Ta[s];if(!wa.test(o)){if(n)throw SyntaxError(`[better-json] Invalid JSON`);return e}if(Object.entries(Ca).some(([e,t])=>{let n=t.test(o);return n&&r&&console.warn(`[better-json] Detected potential prototype pollution attempt using ${e} pattern`),n})&&n)throw Error(`[better-json] Potential prototype pollution attempt detected`);try{return JSON.parse(o,(e,t)=>{if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t){r&&console.warn(`[better-json] Dropping "${e}" key to prevent prototype pollution`);return}if(a&&typeof t==`string`){let e=Oa(t);if(e)return e}return i?i(e,t):t})}catch(t){if(n)throw t;return e}}function Aa(e,t={strict:!0}){return ka(e,t)}var ja={id:`redirect`,name:`Redirect`,hooks:{onSuccess(e){if(e.data?.url&&e.data?.redirect&&typeof window<`u`&&window.location&&window.location)try{window.location.href=e.data.url}catch{}}}},Ma=Symbol.for(`better-auth:broadcast-channel`),Na=()=>Math.floor(Date.now()/1e3),Pa=class{listeners=new Set;name;constructor(e=`better-auth.message`){this.name=e}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}post(e){if(!(typeof window>`u`))try{localStorage.setItem(this.name,JSON.stringify({...e,timestamp:Na()}))}catch{}}setup(){if(typeof window>`u`||window.addEventListener===void 0)return()=>{};let e=e=>{if(e.key!==this.name)return;let t=JSON.parse(e.newValue??`{}`);
12t?.event!==`session`||!t?.data||this.listeners.forEach(e=>e(t))};return window.addEventListener(`storage`,e),()=>{window.removeEventListener(`storage`,e)}}};function Fa(e=`better-auth.message`){return globalThis[Ma]||(globalThis[Ma]=new Pa(e)),globalThis[Ma]}var Ia=Symbol.for(`better-auth:focus-manager`),La=class{listeners=new Set;subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setFocused(e){this.listeners.forEach(t=>t(e))}setup(){if(typeof window>`u`||typeof document>`u`||window.addEventListener===void 0)return()=>{};let e=()=>{document.visibilityState===`visible`&&this.setFocused(!0)};return document.addEventListener(`visibilitychange`,e,!1),()=>{document.removeEventListener(`visibilitychange`,e,!1)}}};function Ra(){return globalThis[Ia]||(globalThis[Ia]=new La),globalThis[Ia]}var za=Symbol.for(`better-auth:online-manager`),Ba=class{listeners=new Set;isOnline=typeof navigator<`u`?navigator.onLine:!0;subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setOnline(e){this.isOnline=e,this.listeners.forEach(t=>t(e))}setup(){if(typeof window>`u`||window.addEventListener===void 0)return()=>{};let e=()=>this.setOnline(!0),t=()=>this.setOnline(!1);return window.addEventListener(`online`,e,!1),window.addEventListener(`offline`,t,!1),()=>{window.removeEventListener(`online`,e,!1),window.removeEventListener(`offline`,t,!1)}}};function Va(){return globalThis[za]||(globalThis[za]=new Ba),globalThis[za]}var Ha=()=>Math.floor(Date.now()/1e3);function Ua(e){return typeof e==`object`&&e&&`data`in e&&`error`in e?e:{data:e,error:null}}var Wa=5;function Ga(e){let{sessionAtom:t,sessionSignal:n,$fetch:r,options:i={}}=e,a=i.sessionOptions?.refetchInterval??0,o=i.sessionOptions?.refetchOnWindowFocus??!0,s=i.sessionOptions?.refetchWhenOffline??!1,c={lastSync:0,lastSessionRequest:0,cachedSession:void 0},l=()=>s||Va().isOnline,u=e=>{if(!l())return;if(e?.event===`storage`){c.lastSync=Ha(),n.set(!n.get());return}let i=t.get(),a=()=>{c.lastSessionRequest=Ha(),r(`/get-session`).then(async e=>{let{data:a,error:o}=Ua(e);if(a?.needsRefresh)try{let e=await r(`/get-session`,{method:`POST`});({data:a,error:o}=Ua(e))}catch{}let s=a?.session&&a?.user?a:null;t.set({...i,data:s,error:o}),c.lastSync=Ha(),n.set(!n.get())}).catch(()=>{})};if(e?.event===`poll`){a();return}if(e?.event===`visibilitychange`){if(Ha()-c.lastSessionRequest<Wa)return;c.lastSessionRequest=Ha()}if(e?.event===`visibilitychange`){a();return}(i?.data===null||i?.data===void 0)&&(c.lastSync=Ha(),n.set(!n.get()))},d=e=>{Fa().post({event:`session`,data:{trigger:e},clientId:Math.random().toString(36).substring(7)})},f=()=>{a&&a>0&&(c.pollInterval=setInterval(()=>{t.get()?.data&&u({event:`poll`})},a*1e3))},p=()=>{c.unsubscribeBroadcast=Fa().subscribe(()=>{u({event:`storage`})})},m=()=>{o&&(c.unsubscribeFocus=Ra().subscribe(()=>{u({event:`visibilitychange`})}))},h=()=>{c.unsubscribeOnline=Va().subscribe(e=>{e&&u({event:`visibilitychange`})})};return{init:()=>{f(),p(),m(),h(),Fa().setup(),Ra().setup(),Va().setup()},cleanup:()=>{c.pollInterval&&=(clearInterval(c.pollInterval),void 0),c.unsubscribeBroadcast&&=(c.unsubscribeBroadcast(),void 0),c.unsubscribeFocus&&=(c.unsubscribeFocus(),void 0),c.unsubscribeOnline&&=(c.unsubscribeOnline(),void 0),c.lastSync=0,c.lastSessionRequest=0,c.cachedSession=void 0},triggerRefetch:u,broadcastSessionUpdate:d}}function Ka(e,t){let n=ra(!1),r=fa(n,`/get-session`,e,{method:`GET`}),i=()=>{};return la(r,()=>{let a=Ga({sessionAtom:r,sessionSignal:n,$fetch:e,options:t});return a.init(),i=a.broadcastSessionUpdate,()=>{a.cleanup()}}),{session:r,$sessionSignal:n,broadcastSessionUpdate:e=>i(e)}}function qa(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function Ja(e,t,n=`.`,r){if(!qa(t))return Ja(e,{},n,r);let i={...t};for(let t of Object.keys(e)){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(Array.isArray(a)&&Array.isArray(i[t])?i[t]=[...a,...i[t]]:qa(a)&&qa(i[t])?i[t]=Ja(a,i[t],(n?`${n}.`:``)+t.toString(),r):i[t]=a))}return i}function Ya(e){return(...t)=>t.reduce((t,n)=>Ja(t,n,``,e),{})}var Xa=Ya(),Za=Object.defineProperty,Qa=Object.defineProperties,$a=Object.getOwnPropertyDescriptors,eo=Object.getOwnPropertySymbols,to=Object.prototype.hasOwnProperty,no=Object.prototype.propertyIsEnumerable,ro=(e,t,n)=>t in e?Za(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,io=(e,t)=>{for(var n in t||={})to.call(t,n)&&ro(e,n,t[n]);if(eo)for(var n of eo(t))no.call(t,n)&&ro(e,n,t[n]);return e},ao=(e,t)=>
12Qa(e,$a(t)),oo=class extends Error{constructor(e,t,n){super(t||e.toString(),{cause:n}),this.status=e,this.statusText=t,this.error=n,Error.captureStackTrace(this,this.constructor)}},so=async(e,t)=>{let n=t||{},r={onRequest:[t?.onRequest],onResponse:[t?.onResponse],onSuccess:[t?.onSuccess],onError:[t?.onError],onRetry:[t?.onRetry]};if(!t||!t?.plugins)return{url:e,options:n,hooks:r};for(let i of t?.plugins||[]){if(i.init){let r=await i.init?.call(i,e.toString(),t);n=r.options||n,e=r.url}r.onRequest.push(i.hooks?.onRequest),r.onResponse.push(i.hooks?.onResponse),r.onSuccess.push(i.hooks?.onSuccess),r.onError.push(i.hooks?.onError),r.onRetry.push(i.hooks?.onRetry)}return{url:e,options:n,hooks:r}},co=class{constructor(e){this.options=e}shouldAttemptRetry(e,t){return this.options.shouldRetry?Promise.resolve(e<this.options.attempts&&this.options.shouldRetry(t)):Promise.resolve(e<this.options.attempts)}getDelay(){return this.options.delay}},lo=class{constructor(e){this.options=e}shouldAttemptRetry(e,t){return this.options.shouldRetry?Promise.resolve(e<this.options.attempts&&this.options.shouldRetry(t)):Promise.resolve(e<this.options.attempts)}getDelay(e){return Math.min(this.options.maxDelay,this.options.baseDelay*2**e)}};function uo(e){if(typeof e==`number`)return new co({type:`linear`,attempts:e,delay:1e3});switch(e.type){case`linear`:return new co(e);case`exponential`:return new lo(e);default:throw Error(`Invalid retry strategy`)}}var fo=async e=>{let t={},n=async e=>typeof e==`function`?await e():e;if(e?.auth){if(e.auth.type===`Bearer`){let r=await n(e.auth.token);if(!r)return t;t.authorization=`Bearer ${r}`}else if(e.auth.type===`Basic`){let[r,i]=await Promise.all([n(e.auth.username),n(e.auth.password)]);if(!r||!i)return t;t.authorization=`Basic ${btoa(`${r}:${i}`)}`}else if(e.auth.type===`Custom`){let[r,i]=await Promise.all([n(e.auth.prefix),n(e.auth.value)]);if(!i)return t;t.authorization=`${r??``} ${i}`}}return t},po=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function mo(e){let t=e.headers.get(`content-type`),n=new Set([`image/svg`,`application/xml`,`application/xhtml`,`application/html`]);if(!t)return`json`;let r=t.split(`;`).shift()||``;return po.test(r)?`json`:n.has(r)||r.startsWith(`text/`)?`text`:`blob`}function ho(e){try{return JSON.parse(e),!0}catch{return!1}}function go(e){if(e===void 0)return!1;let t=typeof e;return t===`string`||t===`number`||t===`boolean`||t===null?!0:t===`object`?Array.isArray(e)?!0:e.buffer?!1:e.constructor&&e.constructor.name===`Object`||typeof e.toJSON==`function`:!1}function _o(e){try{return JSON.parse(e)}catch{return e}}function I(e){return typeof e==`function`}function L(e){if(e?.customFetchImpl)return e.customFetchImpl;if(typeof globalThis<`u`&&I(globalThis.fetch))return globalThis.fetch;if(typeof window<`u`&&I(window.fetch))return window.fetch;throw Error(`No fetch implementation found`)}async function vo(e){let t=new Headers(e?.headers),n=await fo(e);for(let[e,r]of Object.entries(n||{}))t.set(e,r);if(!t.has(`content-type`)){let n=yo(e?.body);n&&t.set(`content-type`,n)}return t}function yo(e){return go(e)?`application/json`:null}function bo(e){if(!e?.body)return null;let t=new Headers(e?.headers);if(go(e.body)&&!t.has(`content-type`)){for(let[t,n]of Object.entries(e?.body))n instanceof Date&&(e.body[t]=n.toISOString());return JSON.stringify(e.body)}return t.has(`content-type`)&&t.get(`content-type`)===`application/x-www-form-urlencoded`&&go(e.body)?new URLSearchParams(e.body).toString():e.body}function xo(e,t){if(t?.method)return t.method.toUpperCase();if(e.startsWith(`@`)){let n=e.split(`@`)[1]?.split(`/`)[0];return To.includes(n)?n.toUpperCase():t?.body?`POST`:`GET`}return t?.body?`POST`:`GET`}function So(e,t){let n;return!e?.signal&&e?.timeout&&(n=setTimeout(()=>t?.abort(),e?.timeout)),{abortTimeout:n,clearTimeout:()=>{n&&clearTimeout(n)}}}var Co=class e extends Error{constructor(t,n){super(n||JSON.stringify(t,null,2)),this.issues=t,Object.setPrototypeOf(this,e.prototype)}};async function wo(e,t){let n=await e[`~standard`].validate(t);if(n.issues)throw new Co(n.issues);return n.value}var To=[`get`,`post`,`put`,`patch`,`delete`],Eo=e=>({id:`apply-schema`,name:`Apply Schema`,version:`1.0.0`,async init(t,n){let r=e.plugins?.find(e=>
12e.schema?.config?t.startsWith(e.schema.config.baseURL||``)||t.startsWith(e.schema.config.prefix||``):!1)?.schema||e.schema;if(r){let e=t;r.config?.prefix&&e.startsWith(r.config.prefix)&&(e=e.replace(r.config.prefix,``),r.config.baseURL&&(t=t.replace(r.config.prefix,r.config.baseURL))),r.config?.baseURL&&e.startsWith(r.config.baseURL)&&(e=e.replace(r.config.baseURL,``));let i=r.schema[e];if(i){let e=ao(io({},n),{method:i.method,output:i.output});return n?.disableValidation||(e=ao(io({},e),{body:i.input?await wo(i.input,n?.body):n?.body,params:i.params?await wo(i.params,n?.params):n?.params,query:i.query?await wo(i.query,n?.query):n?.query})),{url:t,options:e}}}return{url:t,options:n}}}),Do=e=>{async function t(t,n){let r=ao(io(io({},e),n),{plugins:[...e?.plugins||[],Eo(e||{}),...n?.plugins||[]]});if(e?.catchAllError)try{return await ko(t,r)}catch(e){return{data:null,error:{status:500,statusText:`Fetch Error`,message:`Fetch related error. Captured by catchAllError option. See error property for more details.`,error:e}}}return await ko(t,r)}return t};function Oo(e,t){let{baseURL:n,params:r,query:i}=t||{query:{},params:{},baseURL:``},a=e.startsWith(`http`)?e.split(`/`).slice(0,3).join(`/`):n||``;if(e.startsWith(`@`)){let t=e.toString().split(`@`)[1].split(`/`)[0];To.includes(t)&&(e=e.replace(`@${t}/`,`/`))}a.endsWith(`/`)||(a+=`/`);let[o,s]=e.replace(a,``).split(`?`),c=new URLSearchParams(s);for(let[e,t]of Object.entries(i||{})){if(t==null)continue;let n;if(typeof t==`string`)n=t;else if(Array.isArray(t)){for(let n of t)c.append(e,n);continue}else n=JSON.stringify(t);c.set(e,n)}if(r)if(Array.isArray(r)){let e=o.split(`/`).filter(e=>e.startsWith(`:`));for(let[t,n]of e.entries()){let e=r[t];o=o.replace(n,e)}}else for(let[e,t]of Object.entries(r))o=o.replace(`:${e}`,String(t));o=o.split(`/`).map(encodeURIComponent).join(`/`),o.startsWith(`/`)&&(o=o.slice(1));let l=c.toString();return l=l.length>0?`?${l}`.replace(/\+/g,`%20`):``,a.startsWith(`http`)?new URL(`${o}${l}`,a):`${a}${o}${l}`}var ko=async(e,t)=>{let{hooks:n,url:r,options:i}=await so(e,t),a=L(i),o=new AbortController,s=i.signal??o.signal,c=Oo(r,i),l=bo(i),u=await vo(i),d=xo(r,i),f=ao(io({},i),{url:c,headers:u,body:l,method:d,signal:s});for(let e of n.onRequest)if(e){let t=await e(f);typeof t==`object`&&t&&(f=t)}(`pipeTo`in f&&typeof f.pipeTo==`function`||typeof t?.body?.pipe==`function`)&&(`duplex`in f||(f.duplex=`half`));let{clearTimeout:p}=So(i,o),m=await a(f.url,f);p();let h={response:m,request:f};for(let e of n.onResponse)if(e){let n=await e(ao(io({},h),{response:t?.hookOptions?.cloneResponse?m.clone():m}));n instanceof Response?m=n:typeof n==`object`&&n&&(m=n.response)}if(m.ok){if(f.method===`HEAD`)return{data:``,error:null};let e=mo(m),r={data:null,response:m,request:f};if(e===`json`||e===`text`){let e=await m.text();r.data=await(f.jsonParser??_o)(e)}else r.data=await m[e]();f?.output&&f.output&&!f.disableValidation&&(r.data=await wo(f.output,r.data));for(let e of n.onSuccess)e&&await e(ao(io({},r),{response:t?.hookOptions?.cloneResponse?m.clone():m}));return t?.throw?r.data:{data:r.data,error:null}}let g=t?.jsonParser??_o,_=await m.text(),v=ho(_),y=v?await g(_):null,b={response:m,responseText:_,request:f,error:ao(io({},y),{status:m.status,statusText:m.statusText})};for(let e of n.onError)e&&await e(ao(io({},b),{response:t?.hookOptions?.cloneResponse?m.clone():m}));if(t?.retry){let r=uo(t.retry),i=t.retryAttempt??0;if(await r.shouldAttemptRetry(i,m)){for(let e of n.onRetry)e&&await e(h);let a=r.getDelay(i);return await new Promise(e=>setTimeout(e,a)),await ko(e,ao(io({},t),{retryAttempt:i+1}))}}if(t?.throw)throw new oo(m.status,m.statusText,v?y:_);return{data:null,error:ao(io({},y),{status:m.status,statusText:m.statusText})}},Ao=e=>{if(typeof process>`u`)return;let t=e??`/api/auth`;if({}.NEXT_PUBLIC_AUTH_URL)return{}.NEXT_PUBLIC_AUTH_URL;if(typeof window>`u`){if({}.NEXTAUTH_URL)try{return{}.NEXTAUTH_URL}catch{}if({}.VERCEL_URL)try{let e={}.VERCEL_URL.startsWith(`http`)?``:`https://`;return`${new URL(`${e}${{}.VERCEL_URL}`).origin}${t}`}catch{}}},jo=(e,t)=>{let n=`credentials`in Request.prototype,r=xa(e?.baseURL,e?.basePath,void 0,t)??Ao(e?.basePath)??`/api/auth`,i=e?.plugins?.flatMap(e=>e.fetchPlugins).filter(e=>e!==void 0)||[],a={id:`lifecycle-hooks`,name:`lifecycle-hooks`,hooks:{onSuccess:e?.fetchOptions?.onSuccess,onError:e?.fetchOptions?.onError,onRequest:e?.fetchOptions?.onRequest,onResponse:e?.fetchOptions?.onResponse}},{onSuccess:o,onError:s,onRequest:c,onResponse:l,...u}=e?.fetchOptions||{},d=Do({baseURL:r,...n?{credentials:`include`}:{},method:`GET`,jsonParser(e){return e?Aa(e,{strict:!1}):null},customFetchImpl:fetch,...u,plugins:[a,...u.plugins||[],...e?.disableDefaultFetchPlugins?[]:[ja],...i]}),{$sessionSignal:f,session:p,broadcastSessionUpdate:m}=Ka(d,e),h=e?.plugins||[],g={},_={$sessionSignal:f,session:p}
12,v={"/sign-out":`POST`,"/revoke-sessions":`POST`,"/revoke-other-sessions":`POST`,"/delete-user":`POST`},y=[{signal:`$sessionSignal`,matcher(e){return e===`/sign-out`||e===`/update-user`||e===`/update-session`||e===`/sign-up/email`||e===`/sign-in/email`||e===`/delete-user`||e===`/verify-email`||e===`/revoke-sessions`||e===`/revoke-session`||e===`/change-email`},callback(e){e===`/sign-out`?m(`signout`):(e===`/update-user`||e===`/update-session`)&&m(`updateUser`)}}];for(let e of h)e.getAtoms&&Object.assign(_,e.getAtoms?.(d)),e.pathMethods&&Object.assign(v,e.pathMethods),e.atomListeners&&y.push(...e.atomListeners);let b={notify:e=>{_[e].set(!_[e].get())},listen:(e,t)=>{_[e].subscribe(t)},atoms:_};for(let t of h)t.getActions&&(g=Xa(t.getActions?.(d,b,e)??{},g));return{get baseURL(){return r},pluginsActions:g,pluginsAtoms:_,pluginPathMethods:v,atomListeners:y,$fetch:d,$store:b}};function Mo(e){return typeof e==`object`&&!!e&&`get`in e&&typeof e.get==`function`&&`lc`in e&&typeof e.lc==`number`}function No(e,t,n){let r=t[e],{fetchOptions:i,query:a,...o}=n||{};return r||(i?.method?i.method:o&&Object.keys(o).length>0?`POST`:`GET`)}function Po(e,t,n,r,i){function a(o=[]){return new Proxy(function(){},{get(t,n){if(typeof n!=`string`||n===`then`||n===`catch`||n===`finally`)return;let r=[...o,n],i=e;for(let e of r)if(i&&typeof i==`object`&&e in i)i=i[e];else{i=void 0;break}return typeof i==`function`||Mo(i)?i:a(r)},apply:async(e,a,s)=>{let c=`/`+o.map(e=>e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)).join(`/`),l=s[0]||{},u=s[1]||{},{query:d,fetchOptions:f,...p}=l,m={...u,...f},h=No(c,n,l);return await t(c,{...m,body:h===`GET`?void 0:{...p,...m?.body||{}},query:d||m?.query,method:h,async onSuccess(e){if(await m?.onSuccess?.(e),!i||m.disableSignal)return;let t=i.filter(e=>e.matcher(c));if(!t.length)return;let n=new Set;for(let e of t){let t=r[e.signal];if(!t)return;if(n.has(e.signal))continue;n.add(e.signal);let i=t.get();setTimeout(()=>{t.set(!i)},10),e.callback?.(c)}}})}})}return a()}function Fo(e,t={}){let n=(0,A.useRef)(e.get()),{keys:r,deps:i=[e,r]}=t,a=(0,A.useCallback)(t=>{let i=e=>{n.current!==e&&(n.current=e,t())};return i(e.value),r?.length?ua(e,r,i):e.listen(i)},i),o=()=>n.current;return(0,A.useSyncExternalStore)(a,o,o)}function Io(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Lo(e){return`use${Io(e)}`}function Ro(e){let{pluginPathMethods:t,pluginsActions:n,pluginsAtoms:r,$fetch:i,$store:a,atomListeners:o}=jo(e),s={};for(let[e,t]of Object.entries(r))s[Lo(e)]=()=>Fo(t);return Po({...n,...s,$fetch:i,$store:a},i,t,r,o)}var zo=typeof window<`u`?window.location.origin:`https://hskwin.com`,Bo=Ro({baseURL:zo}),{signIn:Vo,signUp:Ho,signOut:Uo,useSession:Wo,requestPasswordReset:Go,resetPassword:Ko}=Bo;function qo(e){return Ro({baseURL:zo,plugins:e.google_client_id&&e.google_one_tap_enabled===`true`?[Zi({clientId:e.google_client_id,autoSelect:!1,cancelOnTapOutside:!1,context:`signin`,promptOptions:{baseDelay:1e3,maxAttempts:1}})]:[]})}var Jo=600*1e3,Yo=`hskwin.signed-up.`;function Xo(){let{data:e}=Wo();return(0,A.useEffect)(()=>{let t=e?.user;if(!t?.id||!t.createdAt)return;let n=new Date(t.createdAt).getTime();if(!Number.isFinite(n)||Date.now()-n>Jo)return;let r=`${Yo}${t.id}`;try{if(localStorage.getItem(r))return;localStorage.setItem(r,`1`)}catch{}st(ft.signup)},[e?.user]),null}var Zo=20*1e3,Qo=360*60*1e3,$o=[0,1e4,3e4,6e4];function es(){let{data:e}=Wo(),t=(0,A.useRef)(!1);return(0,A.useEffect)(()=>{if(t.current||!e?.user)return;let n=ct();if(!n)return;let r=Date.now()-n.at;if(r>Qo){lt();return}if(r<Zo)return;t.current=!0;let i=[],a={plan:n.plan,provider:n.provider,source:n.source,price:n.price},o=async e=>{let t=`free`;try{t=(await $e(`/api/user/entitlements`))?.plan??`free`}catch{}if(t&&t!==`free`){lt(),st(ft.purchase,{...a,plan:t},{amount:n.price,currency:n.currency});return}let r=e+1;if(r<$o.length){i.push(setTimeout(()=>void o(r),$o[r]-$o[e]));return}lt(),st(ft.checkoutAbandoned,a)};return o(0),()=>i.forEach(clearTimeout)},[e?.user]),null}function ts({measurementId:e}){return e?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`script`,{id:`ga-loader`,src:`https://www.googletagmanager.com/gtag/js?i
12d=${e}`,async:!0}),(0,j.jsx)(`script`,{id:`ga-init`,async:!0,dangerouslySetInnerHTML:{__html:`window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','${e}');`}})]}):null}var ns=`/js/pa-Gp-UXqhzhNfgJc1hBjAuM.js`;function rs({pathname:e}){return(0,A.useEffect)(()=>{let e=window;if(!e.plausible){let t=function(...e){(t.q=t.q||[]).push(e)};e.plausible=t}if(e.plausible.o={endpoint:`/api/e`,autoCapturePageviews:!1},!document.getElementById(`plausible-loader`)){let e=document.createElement(`script`);e.id=`plausible-loader`,e.src=ns,e.defer=!0,document.head.appendChild(e)}},[]),(0,A.useEffect)(()=>{window.plausible?.(`pageview`,{u:window.location.href})},[e]),null}var is=function(e){return e.ONE_TIME=`one-time`,e.SUBSCRIPTION=`subscription`,e.RENEW=`renew`,e}({}),as=function(e){return e.ONE_TIME=`one-time`,e.DAY=`day`,e.WEEK=`week`,e.MONTH=`month`,e.YEAR=`year`,e}({});function os(e){let t=Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+2,0);return new Date(t+864e5-1e3).toISOString().replace(`.000`,``)}var ss={"hskwin-monthly":{productId:`hskwin-monthly`,productName:`Monthly`,planName:`Monthly`,description:`HSKWin Monthly — full access, cancel anytime`,type:is.SUBSCRIPTION,priceInCents:599,currency:`usd`,credits:0,plan:{name:`Monthly`,interval:as.MONTH,intervalCount:1}},"hskwin-lifetime":{productId:`hskwin-lifetime`,productName:`Lifetime`,planName:`Lifetime`,description:`HSKWin Lifetime — one payment, every level, no renewal`,type:is.ONE_TIME,priceInCents:7999,currency:`usd`,credits:0,offer:{priceInCents:5999,endsAt:os}}};function cs(e,t=new Date){let{offer:n,...r}=e;if(!n)return r;let i=n.endsAt(t);return t.getTime()>Date.parse(i)?r:{...r,priceInCents:n.priceInCents,listPriceInCents:e.priceInCents,offerEndsAt:i}}function ls(e,t){if(!e)return null;let n=ss[e];return n?cs(n,t):null}function us(e){return Object.values(ss).map(t=>cs(t,e))}var ds=`buy_from`;function fs(e,t,n){let[r,i=``]=e.split(`?`),a=new URLSearchParams(i);return a.set(`buy`,t),a.set(ds,n),`${r||`/`}?${a.toString()}`}function ps(e,t,n){return`/sign-in?redirect=${encodeURIComponent(fs(e,t,n))}`}var ms=n(d(),1);function hs(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var gs=e=>{switch(e){case`success`:return ys;case`info`:return xs;case`warning`:return bs;case`error`:return Ss;default:return null}},_s=Array(12).fill(0),vs=({visible:e,className:t})=>A.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},A.createElement(`div`,{className:`sonner-spinner`},_s.map((e,t)=>A.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),ys=A.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},A.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),bs=A.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},A.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),xs=A.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},A.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),Ss=A.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},A.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),Cs=A.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,
12width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},A.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),A.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),ws=()=>{let[e,t]=A.useState(document.hidden);return A.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},Ts=1,Es=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:Ts++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>
12this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],A.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(Os(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!A.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!A.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!A.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!A.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||Ts++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Ds=(e,t)=>{let n=t?.id||Ts++;return Es.addToast({title:e,...t,id:n}),n},Os=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,ks=Object.assign(Ds,{success:Es.success,info:Es.info,warning:Es.warning,error:Es.error,custom:Es.custom,message:Es.message,promise:Es.promise,dismiss:Es.dismiss,loading:Es.loading},{getHistory:()=>Es.toasts,getToasts:()=>Es.getActiveToasts()});hs(`
vendor: 14,859 bytes, line 12
12[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
12`);function As(e){return e.label!==void 0}var js=3,Ms=`24px`,Ns=`16px`,Ps=4e3,Fs=356,Is=14,Ls=45,Rs=200;function zs(...e){return e.filter(Boolean).join(` `)}function Bs(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var Vs=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:p,style:m,cancelButtonStyle:h,actionButtonStyle:g,className:_=``,descriptionClassName:v=``,duration:y,position:b,gap:x,expandByDefault:S,classNames:C,icons:ee,closeButtonAriaLabel:te=`Close toast`}=e,[ne,w]=A.useState(null),[re,ie]=A.useState(null),[ae,oe]=A.useState(!1),[se,ce]=A.useState(!1),[le,T]=A.useState(!1),[E,ue]=A.useState(!1),[de,fe]=A.useState(!1),[pe,me]=A.useState(0),[D,he]=A.useState(0),ge=A.useRef(n.duration||y||Ps),_e=A.useRef(null),ve=A.useRef(null),ye=c===0,be=c+1<=o,xe=n.type,Se=n.dismissible!==!1,Ce=n.className||``,we=n.descriptionClassName||``,Te=A.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),Ee=A.useMemo(()=>n.closeButton??p,[n.closeButton,p]),De=A.useMemo(()=>n.duration||y||Ps,[n.duration,y]),Oe=A.useRef(0),ke=A.useRef(0),Ae=A.useRef(0),je=A.useRef(null),[Me,Ne]=b.split(`-`),Pe=A.useMemo(()=>
12s.reduce((e,t,n)=>n>=Te?e:e+t.height,0),[s,Te]),Fe=ws(),Ie=n.invert||t,Le=xe===`loading`;ke.current=A.useMemo(()=>Te*x+Pe,[Te,Pe]),A.useEffect(()=>{ge.current=De},[De]),A.useEffect(()=>{oe(!0)},[]),A.useEffect(()=>{let e=ve.current;if(e){let t=e.getBoundingClientRect().height;return he(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),A.useLayoutEffect(()=>{if(!ae)return;let e=ve.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,he(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[ae,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let Re=A.useCallback(()=>{ce(!0),me(ke.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},Rs)},[n,d,a,ke]);A.useEffect(()=>{if(n.promise&&xe===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||Fe?(()=>{if(Ae.current<Oe.current){let e=new Date().getTime()-Oe.current;ge.current-=e}Ae.current=new Date().getTime()})():ge.current!==1/0&&(Oe.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),Re()},ge.current)),()=>clearTimeout(e)},[u,i,n,xe,Fe,Re]),A.useEffect(()=>{n.delete&&(Re(),n.onDismiss==null||n.onDismiss.call(n,n))},[Re,n.delete]);function ze(){return ee?.loading?A.createElement(`div`,{className:zs(C?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":xe===`loading`},ee.loading):A.createElement(vs,{className:zs(C?.loader,n?.classNames?.loader),visible:xe===`loading`})}let Be=n.icon||ee?.[xe]||gs(xe);return A.createElement(`li`,{tabIndex:0,ref:ve,className:zs(_,Ce,C?.toast,n?.classNames?.toast,C?.default,C?.[xe],n?.classNames?.[xe]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":ae,"data-promise":!!n.promise,"data-swiped":de,"data-removed":se,"data-visible":be,"data-y-position":Me,"data-x-position":Ne,"data-index":c,"data-front":ye,"data-swiping":le,"data-dismissible":Se,"data-type":xe,"data-invert":Ie,"data-swipe-out":E,"data-swipe-direction":re,"data-expanded":!!(u||S&&ae),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${se?pe:ke.current}px`,"--initial-height":S?`auto`:`${D}px`,...m,...n.style},onDragEnd:()=>{T(!1),w(null),je.current=null},onPointerDown:e=>{e.button!==2&&(Le||!Se||(_e.current=new Date,me(ke.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(T(!0),je.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(E||!Se)return;je.current=null;let e=Number(ve.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(ve.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-_e.current?.getTime(),i=ne===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=Ls||a>.11){me(ke.current),n.onDismiss==null||n.onDismiss.call(n,n),ie(ne===`x`?e>0?`right`:`left`:t>0?`down`:`up`),Re(),ue(!0);return}else{var o,s;(o=ve.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=ve.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}fe(!1),T(!1),w(null)},onPointerMove:t=>{var n,r;if(!je.current||!Se||window.getSelection()?.toString().length>0)return;let i=t.clientY-je.current.y,a=t.clientX-je.current.x,o=e.swipeDirections??Bs(b);!ne&&(Math.abs(a)>1||Math.abs(i)>1)&&w(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(ne===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)<Math.abs(i)?e:i}}else if(ne===`x`&&(o.includes(`left`)||o.includes(`right`)))if(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)<Math.abs(a)?e:a}(Math.abs(s.x)>0||Math.abs(s.y)>0)&&fe(!0),(n=ve.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=ve.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},Ee&&!n.jsx&&xe!==`loading`?A.createElement(`button`,{"aria-label":te,"data-disabled":Le,"data-close-button":!0,onClick:Le||!Se?()=>{}:()=>{Re(),n.onDismiss==null||n.onDismiss.call(n,n)},className:zs(C?.closeButton,n?.classNames?.closeButton)},ee?.close??Cs):null,(xe||n.icon||n.promise)&&n.icon!==null&&(ee?.[xe]!==null||n.icon)?A.createElement(`div`,{"data-icon":``,className:zs(C?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||ze():null,n.type===`loading`?null:Be):null,A.createElement(`div`,{"data-content":``,className:zs(C?.content,n?.classNames?.content)},A.createElement(`div`,{"data-title":``,className:zs(C?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?A.createElement(`div`,{"data-description":``,className:zs(v,we,C?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),A.isValidElement(n.cancel)?n.c
12ancel:n.cancel&&As(n.cancel)?A.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||h,onClick:e=>{As(n.cancel)&&Se&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),Re())},className:zs(C?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,A.isValidElement(n.action)?n.action:n.action&&As(n.action)?A.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||g,onClick:e=>{As(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&Re())},className:zs(C?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function Hs(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function Us(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?Ns:Ms;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var Ws=A.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:f,duration:p,style:m,visibleToasts:h=js,toastOptions:g,dir:_=Hs(),gap:v=Is,icons:y,containerAriaLabel:b=`Notifications`}=e,[x,S]=A.useState([]),C=A.useMemo(()=>n?x.filter(e=>e.toasterId===n):x.filter(e=>!e.toasterId),[x,n]),ee=A.useMemo(()=>Array.from(new Set([i].concat(C.filter(e=>e.position).map(e=>e.position)))),[C,i]),[te,ne]=A.useState([]),[w,re]=A.useState(!1),[ie,ae]=A.useState(!1),[oe,se]=A.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),ce=A.useRef(null),le=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),T=A.useRef(null),E=A.useRef(!1),ue=A.useCallback(e=>{S(t=>(t.find(t=>t.id===e.id)?.delete||Es.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return A.useEffect(()=>Es.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{S(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{ms.flushSync(()=>{S(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[x]),A.useEffect(()=>{if(d!==`system`){se(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?se(`dark`):se(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{se(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{se(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),A.useEffect(()=>{x.length<=1&&re(!1)},[x]),A.useEffect(()=>{let e=e=>{if(a.every(t=>e[t]||e.code===t)){var t;re(!0),(t=ce.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===ce.current||ce.current?.contains(document.activeElement))&&re(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),A.useEffect(()=>{if(ce.current)return()=>{T.current&&(T.current.focus({preventScroll:!0}),T.current=null,E.current=!1)}},[ce.current]),A.createElement(`section`,{ref:t,"aria-label":`${b} ${le}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},ee.map((t,n)=>{let[i,a]=t.split(`-`);return C.length?A.createElement(`ol`,{key:t,dir:_===`auto`?Hs():_,tabIndex:-1,ref:ce,className:c,"data-sonner-toaster":!0,"data-sonner-theme":oe,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${te[0]?.height||0}px`,"--width":`${Fs}px`,"--gap":`${v}px`,...m,...Us(l,u)},onBlur:e=>{E.current&&!e.currentTarget.contains(e.relatedTarget)&&(E.current=!1,T.current&&=(T.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`fal
12se`||E.current||(E.current=!0,T.current=e.relatedTarget)},onMouseEnter:()=>re(!0),onMouseMove:()=>re(!0),onMouseLeave:()=>{ie||re(!1)},onDragEnd:()=>re(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||ae(!0)},onPointerUp:()=>ae(!1)},C.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>A.createElement(Vs,{key:n.id,icons:y,index:i,toast:n,defaultRichColors:f,duration:g?.duration??p,className:g?.className,descriptionClassName:g?.descriptionClassName,invert:r,visibleToasts:h,closeButton:g?.closeButton??s,interacting:ie,position:t,style:g?.style,unstyled:g?.unstyled,classNames:g?.classNames,cancelButtonStyle:g?.cancelButtonStyle,actionButtonStyle:g?.actionButtonStyle,closeButtonAriaLabel:g?.closeButtonAriaLabel,removeToast:ue,toasts:C.filter(e=>e.position==n.position),heights:te.filter(e=>e.position==n.position),setHeights:ne,expandByDefault:o,gap:v,expanded:w,swipeDirections:e.swipeDirections}))):null}))});function Gs(){return Ke({queryKey:[`public-config`],queryFn:()=>$e(`/api/config/public`,{cache:`no-store`}),staleTime:0})}var Ks=[`stripe`,`creem`,`waffo`,`paypal`,`alipay`,`wechat`];function qs(){let{data:e}=Gs(),t=Ks.filter(t=>(e??{})[`${t}_enabled`]===`true`),[n,r]=(0,A.useState)(null),[i,a]=(0,A.useState)(null),o=it({mutationFn:e=>We(`/api/payment/checkout`,{product_id:e.productId,payment_provider:e.provider,redirect:e.redirect}),onSuccess:(e,t)=>{if(e?.checkout_url){let n=ls(t.productId),r=(n?.priceInCents??0)/100,i=(n?.currency??`usd`).toUpperCase(),a=n?.planName??t.productId,o=t.provider??`default`;st(ft.checkoutStarted,{plan:a,provider:o,source:t.source,price:r}),dt({plan:a,provider:o,price:r,currency:i,source:t.source,at:Date.now()}),window.location.href=e.checkout_url}else ks.error(`Checkout is not configured yet.`)},onError:e=>ks.error(e.message),onSettled:e=>{e?.checkout_url||(a(null),r(null))}});return{start:e=>{if(t.length>1){r(e);return}o.mutate({...e,provider:t[0]})},busy:o.isPending||o.isSuccess,choosing:n!==null,providerModal:{open:n!==null,onOpenChange:e=>{!e&&!o.isPending&&r(null)},providers:t,loadingProvider:i,onSelect:e=>{n&&(a(e),o.mutate({...n,provider:e}))}}}}var Js=pt(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),Ys=pt(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Xs=pt(`credit-card`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`5`,rx:`2`,key:`ynyp8z`}],[`line`,{x1:`2`,x2:`22`,y1:`10`,y2:`10`,key:`1b3vmo`}]]),Zs=pt(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Qs=pt(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),$s=pt(`octagon-x`,[[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z`,key:`2d38gg`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]),ec=pt(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),tc=pt(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),nc=pt(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),rc=()=>`Product updates, guides, and engineering notes from the team.`,ic=()=>`来自团队的产品动态、使用指南与工程笔记。`,ac=()=>`Cập nhật sản phẩm, hướng dẫn và ghi chú kỹ thuật từ đội ngũ.`,oc=()=>`อัปเดตผลิตภัณฑ์ คู่มือการใช้งาน และบันทึกด้านเทคนิคจากทีมงาน`,sc=((e={},t={})=>{let n=t.locale??s();return n===`en`?rc(e):n===`zh`?ic(e):n===`vi`?ac(e):oc(e)}),cc=()=>`Blog`,lc=()=>`博客`,uc=()=>`Blog`,dc=()=>`บล็อก`,fc=((e={},t={})=>{let n=t.locale??s();return n===`en`?cc(e):n===`zh`?lc(e):n===`vi`?uc(e):dc(e)}),pc=()=>`HSK mock tests on the 2026 HSK 3.0 syllabus: timed exams, instant scores, explanations and AI writing marks. Your first full mock is free, and so is the level test.`,mc=()=>`按 2026 HSK 3.0 大纲编写的 HSK 模拟考:真实计时、交卷秒出分、逐题解析、AI 作文批改。第一次完整模考免费,定级测试也免费。`,hc=()=>`Đề thi thử HSK theo khung 2026 HSK 3.0: thi có tính giờ, chấm điểm ngay, giải thích chi tiết và chấm bài viết bằng AI. Bài thi thử đầy đủ đầu tiên miễn phí, bài kiểm tra trình độ cũng miễn phí.`,gc=()=>`ข้อสอบจำลอง HSK ตามหลักสูตร HSK 3.0 ปี 2026: จับเวลาจริง แสดงคะแนนทันทีที่ส่งคำตอบ พร้อมเฉลยละเอียดและการตรวจงานเขียนด้วย AI ข้อสอบจำลองเต็มชุดแรกฟรี รวมถึงแบบทดสอบวัดระดับก็ฟรีเช่นกัน`,_
12c=((e={},t={})=>{let n=t.locale??s();return n===`en`?pc(e):n===`zh`?mc(e):n===`vi`?hc(e):gc(e)}),vc=()=>`HSK 3.0 Mock Test — 2026 HSK Practice Tests, Scored Instantly | HSKWin`,yc=()=>`HSK 3.0 模拟考 — 2026 HSK 练习卷,秒出成绩 | HSKWin`,bc=()=>`Đề Thi Thử HSK 3.0 — Luyện Thi HSK 2026, Chấm Điểm Ngay | HSKWin`,xc=()=>`ข้อสอบจำลอง HSK 3.0 — แบบฝึกหัด HSK 2026 ให้คะแนนทันที | HSKWin`,Sc=((e={},t={})=>{let n=t.locale??s();return n===`en`?vc(e):n===`zh`?yc(e):n===`vi`?bc(e):xc(e)}),Cc=()=>`Last updated`,wc=()=>`最近更新`,Tc=()=>`Cập nhật lần cuối`,Ec=()=>`อัปเดตล่าสุด`,Dc=((e={},t={})=>{let n=t.locale??s();return n===`en`?Cc(e):n===`zh`?wc(e):n===`vi`?Tc(e):Ec(e)}),Oc=()=>`Choose payment method`,kc=()=>`选择支付方式`,Ac=()=>`Chọn phương thức thanh toán`,jc=()=>`เลือกวิธีการชำระเงิน`,Mc=((e={},t={})=>{let n=t.locale??s();return n===`en`?Oc(e):n===`zh`?kc(e):n===`vi`?Ac(e):jc(e)}),Nc=()=>`Pick how you'd like to pay.`,Pc=()=>`选择你想使用的支付渠道。`,Fc=()=>`Chọn cách bạn muốn thanh toán.`,Ic=()=>`เลือกช่องทางที่คุณต้องการใช้ชำระเงิน`,Lc=((e={},t={})=>{let n=t.locale??s();return n===`en`?Nc(e):n===`zh`?Pc(e):n===`vi`?Fc(e):Ic(e)}),Rc=e=>`${e?.plan} — ${e?.price}`,zc=e=>`${e?.plan} — ${e?.price}`,Bc=e=>`${e?.plan} — ${e?.price}`,Vc=e=>`${e?.plan} — ${e?.price}`,Hc=((e,t={})=>{let n=t.locale??s();return n===`en`?Rc(e):n===`zh`?zc(e):n===`vi`?Bc(e):Vc(e)}),Uc=e=>`${e?.plan}`,R=e=>`${e?.plan}`,Wc=e=>`${e?.plan}`,Gc=e=>`${e?.plan}`,Kc=((e,t={})=>{let n=t.locale??s();return n===`en`?Uc(e):n===`zh`?R(e):n===`vi`?Wc(e):Gc(e)}),qc=()=>`Score my speaking`,Jc=()=>`评测我的口语`,Yc=()=>`Chấm điểm phần nói của tôi`,Xc=()=>`ให้คะแนนการพูดของฉัน`,Zc=((e={},t={})=>{let n=t.locale??s();return n===`en`?qc(e):n===`zh`?Jc(e):n===`vi`?Yc(e):Xc(e)}),Qc=()=>`Flashcards`,$c=()=>`抽认卡`,el=()=>`Flashcard`,tl=()=>`แฟลชการ์ด`,nl=((e={},t={})=>{let n=t.locale??s();return n===`en`?Qc(e):n===`zh`?$c(e):n===`vi`?el(e):tl(e)}),rl=e=>`${e?.label} flashcards: drill the ${e?.count} words HSK 3.0 adds at this level, with pinyin, meaning and audio. Twenty cards free, no account.`,il=e=>`${e?.label}抽认卡:练 HSK 3.0 大纲在这一级新增的 ${e?.count} 个词,带拼音、释义和发音。前 20 张免费,无需注册。`,al=e=>`Flashcard ${e?.label}: luyện ${e?.count} từ mà HSK 3.0 thêm vào ở cấp này, kèm pinyin, nghĩa và audio. 20 thẻ miễn phí, không cần tài khoản.`,ol=e=>`แฟลชการ์ด${e?.label}: ฝึกคำศัพท์ ${e?.count} คำที่ HSK 3.0 เพิ่มเข้ามาในระดับนี้ พร้อมพินอิน ความหมาย และเสียงอ่าน ใช้ฟรี 20 ใบ ไม่ต้องสมัครสมาชิก`,sl=((e,t={})=>{let n=t.locale??s();return n===`en`?rl(e):n===`zh`?il(e):n===`vi`?al(e):ol(e)}),cl=()=>`HSK flashcards for every level of the 3.0 syllabus: 11,000 words with pinyin, meaning and audio, dealt twenty at a time and spaced out. Free, no account.`,ll=()=>`HSK 3.0 全部九级的抽认卡:11,000 个词,带拼音、释义和发音,每轮 20 张、按间隔重复。免费,无需注册。`,ul=()=>`Flashcard HSK cho mọi cấp trong khung chương trình 3.0: 11.000 từ kèm pinyin, nghĩa và audio, chia thành từng lượt 20 thẻ và lặp lại giãn cách. Miễn phí, không cần tài khoản.`,dl=()=>`แฟลชการ์ด HSK ทุกระดับตามหลักสูตร 3.0: คำศัพท์ 11,000 คำ พร้อมพินอิน ความหมาย และเสียงอ่าน แจกครั้งละ 20 ใบแบบเว้นระยะ ฟรี ไม่ต้องสมัครสมาชิก`,fl=((e={},t={})=>{let n=t.locale??s();return n===`en`?cl(e):n===`zh`?ll(e):n===`vi`?ul(e):dl(e)}
12),pl=()=>`HSK Flashcards — All 9 Levels, 20 Cards Free | HSKWin`,ml=()=>`HSK 抽认卡 — 九个级别,前 20 张免费 | HSKWin`,hl=()=>`Flashcard HSK — Đủ 9 Cấp, 20 Thẻ Miễn Phí | HSKWin`,gl=()=>`แฟลชการ์ด HSK — ครบทั้ง 9 ระดับ ใช้ฟรี 20 ใบ | HSKWin`,_l=((e={},t={})=>{let n=t.locale??s();return n===`en`?pl(e):n===`zh`?ml(e):n===`vi`?hl(e):gl(e)}),vl=e=>`${e?.label} Flashcards — Drill ${e?.count} Words Free | HSKWin`,yl=e=>`${e?.label}抽认卡 — ${e?.count} 词免费开练 | HSKWin`,bl=e=>`Flashcard ${e?.label} — Luyện ${e?.count} Từ Miễn Phí | HSKWin`,xl=e=>`แฟลชการ์ด${e?.label} — ฝึกคำศัพท์ ${e?.count} คำฟรี | HSKWin`,Sl=((e,t={})=>{let n=t.locale??s();return n===`en`?vl(e):n===`zh`?yl(e):n===`vi`?bl(e):xl(e)}),Cl=()=>`HSK 1–6 do. Levels 2, 4 and 6 start at 9:00 in the morning; levels 1, 3 and 5 at 1:30 in the afternoon. HSK 7–9 has its own dates and is computer-based only.`,wl=()=>`HSK 1–6 级是同一天考:2、4、6 级上午 9:00 开考,1、3、5 级下午 1:30 开考。HSK 7–9 级单独安排日期,而且只有机考。`,Tl=()=>`HSK 1–6 có. Cấp 2, 4 và 6 thi lúc 9:00 sáng; cấp 1, 3 và 5 thi lúc 1:30 chiều. HSK 7–9 có lịch thi riêng và chỉ thi trên máy tính.`,El=()=>`HSK 1–6 สอบวันเดียวกัน โดยระดับ 2, 4 และ 6 เริ่มสอบ 9:00 น. ส่วนระดับ 1, 3 และ 5 เริ่มสอบ 13:30 น. ส่วน HSK 7–9 มีวันสอบของตัวเองและสอบผ่านคอมพิวเตอร์เท่านั้น`,Dl=((e={},t={})=>{let n=t.locale??s();return n===`en`?Cl(e):n===`zh`?wl(e):n===`vi`?Tl(e):El(e)}),Ol=()=>`Do all levels sit on the same day?`,kl=()=>`所有级别都在同一天考吗?`,Al=()=>`Tất cả các cấp có thi cùng một ngày không?`,jl=()=>`ทุกระดับสอบวันเดียวกันไหม?`,Ml=((e={},t={})=>{let n=t.locale??s();return n===`en`?Ol(e):n===`zh`?kl(e):n===`vi`?Al(e):jl(e)}),Nl=()=>`Then you can't take that date. Pick the next one in the table; there is a sitting most months.`,Pl=()=>`那这一场就报不上了,只能选表里的下一场。基本上每个月都有一场。`,Fl=()=>`Vậy thì bạn không thể thi vào ngày đó nữa. Hãy chọn kỳ thi tiếp theo trong bảng; hầu như tháng nào cÅ©ng có một kỳ thi.`,Il=()=>`แสดงว่าคุณสมัครสอบรอบนั้นไม่ทันแล้ว ให้เลือกรอบถัดไปในตาราง โดยปกติมีเปิดสอบเกือบทุกเดือน`,Ll=((e={},t={})=>{let n=t.locale??s();return n===`en`?Nl(e):n===`zh`?Pl(e):n===`vi`?Fl(e):Il(e)}),Rl=()=>`What if I miss the deadline?`,zl=()=>`错过报名截止日怎么办?`,Bl=()=>`Nếu tôi lỡ hạn đăng ký thì sao?`,Vl=()=>`ถ้าพลาดวันปิดรับสมัครล่ะ?`,Hl=((e={},t={})=>{let n=t.locale??s();return n===`en`?Rl(e):n===`zh`?zl(e):n===`vi`?Bl(e):Vl(e)}),Ul=()=>`On chinesetest.cn, the official site of Chinese Testing International (CTI). You choose a test centre and pay the fee there.`,Wl=()=>`在汉考国际(CTI)的官方网站 chinesetest.cn 报名,选考点、交费都在那里完成。`,Gl=()=>`Trên chinesetest.cn, trang web chính thức cá»§a Chinese Testing International (CTI). Bạn chọn điểm thi và đóng lệ phí ngay tại đó.`,z=()=>`สมัครได้ที่ chinesetest.cn เว็บไซต์ทางการของ Chinese Testing International (CTI) คุณเลือกสนามสอบและชำระค่าธรรมเนียมที่นั่น`,B=((e={},t={})=>{let n=t.locale??s();return n===`en`?Ul(e):n===`zh`?Wl(e):n===`vi`?Gl(e):z(e)}),V=()=>`Where do I register?`,H=()=>`在哪里报名?`,U=()=>`Tôi đăng ký ở đâu?`,Kl=()=>`สมัครสอบได้ที่ไหน?`,ql=((e={},t={})=>{let n=t.locale??s();return n===`en`?V(e):n===`zh`?H(e):n===`vi`?U(e):Kl(e)}),Jl=()=>`Sometimes. A test centre can move or cancel a sitting. Your admission ticket has the final word, and we update this page when CTI announces a change.`,Yl=()=>`偶尔会。考点可能调整或取消某一场,一切以准考证为准;CTI 公布变动后,我们会更新这一页。`,Xl=()=>`Đôi khi có. Một điểm thi có thể dời hoặc há»§y một kỳ thi. Giấy báo dá»± thi cá»§a bạn mới là căn cứ cuối cùng, và chúng tôi sẽ cập nhật trang này khi CTI thông báo thay đổi.`,Zl=()=>`บางครั้งก็มีการเปลี่ยนแปลง สนามสอบอาจเลื่อนหรือยกเลิกบางรอบสอบได้ ให้ยึดตามบัตรประจำตัวผู้เข้าสอบเป็นหลัก และเราจะอัปเดตหน้านี้เมื่อ CTI ประกาศความเปลี่ยนแปลง`,Ql=((e={},t={})=>{let n=t.locale??s();return n===`en`?Jl(e):n===`zh`?Yl(e):n===`vi`?Xl(e):Zl(e)}),$l=()=>`Can the date change?`,eu=()=>`考试日期会变吗?`,tu=()=>`Ngày thi có thể thay đổi không?`,nu=()=>`วันสอบเปลี่ยนได้ไหม?`,ru=((e={},t={})=>{let n=t.locale??s();return n===`en`?$l(e):n===`zh`?eu(e):n===`vi`?tu(e):nu(e)}),iu=()=>`When is the next HSK exam? Every remaining 2026 sitting, which levels sit in the morning and which in the afternoon, paper and computer registration deadlines, and a free email reminder.`,au=()=>`下一场 HSK 什么时候考?2026 年剩余全部考期、各级别上午还是下午开考、ç
12º¸ç¬”和机考报名截止日,还可以免费设置邮件提醒。`,ou=()=>`Kỳ thi HSK tiếp theo là khi nào? Toàn bộ các kỳ thi còn lại trong năm 2026, cấp nào thi sáng, cấp nào thi chiều, hạn đăng ký thi giấy và thi máy tính, cùng dịch vụ nhắc lịch qua email miễn phí.`,su=()=>`การสอบ HSK ครั้งถัดไปคือเมื่อไร? รวมทุกรอบสอบที่เหลือในปี 2026 ระดับไหนสอบเช้าหรือบ่าย กำหนดปิดรับสมัครทั้งแบบกระดาษและคอมพิวเตอร์ พร้อมระบบแจ้งเตือนทางอีเมลฟรี`,cu=((e={},t={})=>{let n=t.locale??s();return n===`en`?iu(e):n===`zh`?au(e):n===`vi`?ou(e):su(e)}),lu=()=>`HSK Exam Dates 2026: Next Test, Levels and Registration Deadlines | HSKWin`,uu=()=>`2026 å¹´ HSK 考试时间:下一场考试、各级别场次与报名截止日 | HSKWin`,du=()=>`Lịch Thi HSK 2026: Kỳ Thi Tiếp Theo, Các Cấp Và Hạn Đăng Ký | HSKWin`,fu=()=>`ตารางสอบ HSK ปี 2026: รอบสอบถัดไป ระดับ และกำหนดปิดรับสมัคร | HSKWin`,pu=((e={},t={})=>{let n=t.locale??s();return n===`en`?lu(e):n===`zh`?uu(e):n===`vi`?du(e):fu(e)}),mu=()=>`Levels 7–9 already run on 3.0. For levels 1–6, CTI published the new syllabus in November 2025 with a July 2026 implementation date, but has not announced a switch date for the regular sittings — so most 1–6 exams in 2026 are still 2.0. Check your registration record, and see our status page for what is confirmed.`,hu=()=>`7–9 级已经按 3.0 运行。1–6 级方面,CTI 于 2025 å¹´ 11 月发布新大纲、实施日期为 2026 å¹´ 7 月,但至今未公布常规考试的换考日期,因此 2026 年多数 1–6 级考试仍是 2.0。请核对你的报名记录,并查看我们的状态页了解已确认的部分。`,gu=()=>`Các cấp 7–9 đã áp dụng chuẩn 3.0. Với cấp 1–6, CTI công bố đại cương mới vào tháng 11/2025 với mốc áp dụng là tháng 7/2026, nhưng chưa thông báo ngày chuyển đổi cho các kỳ thi thường kỳ — nên phần lớn kỳ thi cấp 1–6 trong năm 2026 vẫn theo chuẩn 2.0. Hãy kiểm tra thông tin đăng ký cá»§a bạn, và xem trang trạng thái cá»§a chúng tôi để biết những gì đã được xác nhận.`,_u=()=>`ระดับ 7–9 ใช้หลักสูตร 3.0 อยู่แล้ว ส่วนระดับ 1–6 นั้น CTI ประกาศหลักสูตรใหม่เมื่อเดือนพฤศจิกายน 2025 โดยกำหนดวันบังคับใช้เป็นเดือนกรกฎาคม 2026 แต่ยังไม่ประกาศวันเปลี่ยนสำหรับรอบสอบปกติ ดังนั้นการสอบระดับ 1–6 ส่วนใหญ่ในปี 2026 จึงยังคงเป็น 2.0 ตรวจสอบข้อมูลการสมัครสอบของคุณ และดูหน้าสถานะของเราสำหรับข้อมูลที่ยืนยันแล้ว`,vu=((e={},t={})=>{let n=t.locale??s();return n===`en`?mu(e):n===`zh`?hu(e):n===`vi`?gu(e):_u(e)}),yu=()=>`CTI published the 3.0 syllabus for levels 1–6 in November 2025 with a July 2026 implementation date, but has not announced which sitting is the first to use it. Until it does, treat a 1–6 exam booked in 2026 as 2.0 unless your registration record says otherwise.`,bu=()=>`CTI 于 2025 å¹´ 11 月发布了一到六级的 3.0 大纲,注明 2026 å¹´ 7 月实施,但没有公布从哪一场考试开始启用。在此之前,除非报名信息另有说明,2026 年报考的一到六级仍按 2.0 准备。`,xu=()=>
12`CTI đã công bố đại cương 3.0 cho các cấp 1–6 vào tháng 11/2025, với mốc áp dụng là tháng 7/2026, nhưng chưa cho biết kỳ thi nào sẽ áp dụng đầu tiên. Cho đến khi có thông báo, hãy coi kỳ thi cấp 1–6 đăng ký trong năm 2026 là theo chuẩn 2.0, trừ khi thông tin đăng ký của bạn ghi khác.`,Su=()=>`CTI ประกาศหลักสูตร 3.0 สำหรับระดับ 1–6 เมื่อเดือนพฤศจิกายน 2025 โดยกำหนดวันบังคับใช้เป็นเดือนกรกฎาคม 2026 แต่ยังไม่ประกาศว่ารอบสอบใดจะเป็นรอบแรกที่ใช้หลักสูตรนี้ จนกว่าจะมีประกาศ ให้ถือว่าการสอบระดับ 1–6 ที่จองในปี 2026 เป็น 2.0 เว้นแต่ข้อมูลการสมัครสอบของคุณจะระบุไว้เป็นอย่างอื่น`,Cu=((e={},t={})=>{let n=t.locale??s();return n===`en`?yu(e):n===`zh`?bu(e):n===`vi`?xu(e):Su(e)}),wu=()=>`No, and deliberately so. Official past papers are CTI copyright, and HSK 3.0 has no past papers at all. Every paper here is written against the published 3.0 syllabus, and each level page states exactly what it was built from.`,Tu=()=>`不是,而且是故意不做。官方真题版权归 CTI,而 HSK 3.0 本来就没有真题。这里每一套卷都依据已公布的 3.0 大纲编写,每个级别页都写明了出题依据。`,Eu=()=>`Không, và đó là chủ ý. Đề thi thật thuộc bản quyền của CTI, còn HSK 3.0 thì hoàn toàn chưa có đề thi thật nào được công bố. Mọi đề trên trang này đều được biên soạn theo đúng đại cương 3.0 đã công bố, và mỗi trang cấp độ đều ghi rõ đề được xây dựng dựa trên nguồn nào.`,Du=()=>`ไม่ใช่ และตั้งใจให้เป็นเช่นนั้น ข้อสอบเก่าฉบับทางการเป็นลิขสิทธิ์ของ CTI และ HSK 3.0 เองก็ยังไม่มีข้อสอบเก่าเลย ทุกชุดข้อสอบที่นี่เขียนขึ้นตามหลักสูตร 3.0 ที่ประกาศแล้ว และหน้าของแต่ละระดับระบุไว้ชัดเจนว่าอ้างอิงจากอะไร`,Ou=((e={},t={})=>{let n=t.locale??s();return n===`en`?wu(e):n===`zh`?Tu(e):n===`vi`?Eu(e):Du(e)}),ku=()=>`Not to preview one. Every paper on the site shows the first question of each section, with the answer key, the explanation and the line of 原文 it rests on, with no account and no card. To sit a whole paper you need a free account, and your first full mock is free: the real clock, instant scoring, AI writing marking and the pass-probability report. Every account gets one. After that, timed mocks come with Monthly or Lifetime.`,Au=()=>`预览不需要。站上每一套卷都能看每一项的第一题,附答案、解析,以及作为依据的那句原文,不用注册也不用付款。完整做一套卷需要一个免费账号,而且第一次完整模考免费:真实计时、即时出分、AI 作文批改和通过概率报告都有。每个账号一次;之后的计时模考需要月付或终身会员。`,ju=()=>`Nếu chỉ để xem thử thì không. Mọi đề thi trên trang đều hiện câu hỏi đầu tiên của mỗi phần, kèm đáp án, giải thích và đoạn 原文 làm căn cứ — không cần tài khoản, không cần thẻ thanh toán. Để làm trọn một đề, bạn cần một tài khoản miễn phí, và lượt thi thử đầy đủ đầu tiên hoàn toàn miễn phí: tính giờ thật, chấm điểm ngay, AI chấm bài viết và báo cáo xác suất đạt. Mỗi tài khoản được một lượt như vậy. Sau đó, các lượt thi thử có tính giờ cần gói Hàng tháng hoặc Trọn đời.`,Mu=()=>`ดูตัวอย่างไม่ต้องสมัคร ทุกชุดข้อสอบในเว็บไซต์นี้แสดงข้อแรกของแต่ละส่วน พร้อมเฉลย คำอธิบาย และบรรทัดต้นฉบับ (原文) ที่ใช้อ้างอิง โดยไม่ต้องสมัครสมาชิกหรือผูกบัตร ส่วนการทำข้อสอบเต็มชุดต้องมีบัญชีฟ
12รี และข้อสอบจำลองเต็มชุดแรกของคุณฟรี: จับเวลาจริง ให้คะแนนทันที ตรวจงานเขียนด้วย AI และรายงานโอกาสสอบผ่าน ทุกบัญชีได้รับสิทธิ์นี้ 1 ครั้ง หลังจากนั้นข้อสอบจำลองแบบจับเวลาต้องสมัครแผนรายเดือนหรือตลอดชีพ`,Nu=((e={},t={})=>{let n=t.locale??s();return n===`en`?ku(e):n===`zh`?Au(e):n===`vi`?ju(e):Mu(e)}),Pu=()=>`It scores the three dimensions the exam's raters use — content, language, structure — and shows you the sentence behind every deduction, so you can check its reasoning rather than trust a number. If you disagree with a mark you can flag it.`,Fu=()=>`它按大纲评分的三个维度打分(内容完成度、语言、结构),并把每一处扣分对应的原句指出来,所以你可以核对它的依据,而不是只能相信一个数字。不认同某处判定可以标记反馈。`,Iu=()=>`Hệ thống chấm theo ba tiêu chí mà giám khảo thật sử dụng — nội dung, ngôn ngữ, cấu trúc — và chỉ ra đúng câu bị trừ điểm, để bạn có thể kiểm tra lý do thay vì chỉ tin vào một con số. Nếu không đồng ý với một điểm chấm nào đó, bạn có thể báo lại.`,Lu=()=>`ระบบให้คะแนนตามสามมิติที่กรรมการข้อสอบใช้จริง — เนื้อหา ภาษา โครงสร้าง — และแสดงประโยคที่เป็นเหตุผลของการหักคะแนนทุกจุด คุณจึงตรวจสอบเหตุผลได้เอง ไม่ใช่แค่เชื่อตัวเลข หากไม่เห็นด้วยกับคะแนนใด ก็สามารถแจ้งได้`,Ru=((e={},t={})=>{let n=t.locale??s();return n===`en`?Pu(e):n===`zh`?Fu(e):n===`vi`?Iu(e):Lu(e)}),zu=()=>`It is an estimate from your results, weighted by section, against the pass line for your level. It is not a promise. It is the number that tells you whether to keep practising or book the exam.`,Bu=()=>`它是根据你的作答结果、按分区加权后与该级别及格线比较得出的估计值。它不是承诺,而是帮你判断该继续练还是可以去报名的那个数字。`,Vu=()=>`Đây là con số ước tính từ kết quả của bạn, có trọng số theo từng phần, so với điểm đạt của cấp bạn đang thi. Đây không phải là một lời hứa. Đó là con số giúp bạn quyết định nên luyện thêm hay đã có thể đăng ký thi thật.`,Hu=()=>`เป็นค่าประมาณจากผลคะแนนของคุณ ถ่วงน้ำหนักตามแต่ละส่วน เทียบกับเกณฑ์ผ่านของระดับนั้น ๆ ไม่ใช่การรับประกัน แต่เป็นตัวเลขที่บอกคุณว่าควรฝึกต่อหรือพร้อมสมัครสอบแล้ว`,Uu=((e={},t={})=>{let n=t.locale??s();return n===`en`?zu(e):n===`zh`?Bu(e):n===`vi`?Vu(e):Hu(e)}),Wu=()=>`Ask within 7 days and we refund it. No form and no conditions — an email is enough. If you tell us what was missing we will read it, but that is not something you have to do to get your money back.`,Gu=()=>`7 天内说一声就退。不用填表、没有条件,一封邮件就够。愿意告诉我们缺了什么,我们会认真看,但那不是退款的前提。`,Ku=()=>`Yêu cầu trong vòng 7 ngày, chúng tôi sẽ hoàn tiền. Không cần điền form, không điều kiện gì cả — chỉ cần một email. Nếu bạn muốn cho chúng tôi biết điều gì còn thiếu thì chúng tôi sẽ đọc, nhưng đó không phải là điều bắt buộc để được hoàn tiền.`,qu=()=>`แจ้งเราภายใน 7 วัน แล้วเราคืนเงินให้ ไม่ต้องกรอกแบบฟอร์มและไม่มีเงื่อนไข แค่ส่งอีเมลก็พอ หากบอกเราว่าขาดอะไรไป เราจะอ่านและนำไปปรับปรุง แต่นั่นไม่ใช่เงื่อนไขที่ต้องทำเพื่อขอคืนเงิน`,Ju=((e={},t={})=>{let n=t.locale??s();return n===`en`?Wu(e):n===`zh`?Gu(e):n===`vi`?Ku(e):qu(e)}),Yu=()=>`Free sites are paid for by ads, and most of them still serve HSK 2.0 papers — which is why their level numbers no longer match what CTI published for 2026. HSKWin has no ads and is built on the 3.0 syllabus: nine levels, the current question types, instant scoring with an explanation on every question, AI writing marking and the full word lists. Every paper is free to read in full, answers and explanations included, so you can compare the two before paying anything.`,Xu=()=>`免费站靠广告养着,而且大多数仍在发 HSK 2.0 的卷——这也是它们的级别号已经对不上 CTI 为 2026 年发布的标准的原因。HSKWin 没有广告,建在 3.0 大纲上:九个级别、现行题型、即时出分且每题有解析,另有 AI 写作批改和完整词表。站上每一套卷都能免费看全,答案与解析都在,可以先比一比再决定要不要付钱。`,Zu=()=>`Các trang miễn phí sống nhờ quảng cáo, và phần lớn vẫn đang dùng đề HSK 2.0 — đó là lý do số cấp của họ không còn khớp với chuẩn CTI công bố cho năm 2026. HSKWin không có quảng cáo và được xây dựng theo đúng đại cương 3.0: đủ chín cấp, đúng dạng câu hỏi hiện hành, chấm điểm ngay kèm giải thích cho từng câu, AI chấm bài viết và đầy đủ danh sách từ vựng. Mọi đề thi đều có thể đọc trọn vẹn miễn phí, kèm đáp án và giải thích, để bạn so sánh trước khi trả bất kỳ khoản nào.`,W=()=>`เว็บไซต์ฟรีอยู่ได้ด้วยโฆษณา และส่วนใหญ่ยังใช้ข้อสอบ HSK 2.0 อยู่ — ซึ่งเป็นเหตุผลที่หมายเลขระดับของพวกเขาไม่ตรงกับที่ CTI ประกาศสำหรับปี 2026 อีกต่อไป HSKWin ไม่มีโฆษณาและสร้างขึ้นตามหลักสูตร 3.0: ครบเก้าระดับ รูปแบบข้อสอบปัจจุบัน ให้คะแนนทันทีพร้อมคำอธิบายทุกข้อ อีกทั้งมีการตรวจงานเขียนด้วย AI และคลังคำศัพท์ครบชุด ทุกชุดข้อสอบอ่านได้ฟรีเต็มรูปแบบ รวมเฉลยและคำอธิบาย คุณจึงเปรียบเทียบได้ก่อนจ่ายเงินจริง`,Qu=((e={},t={})=>{let n=t.locale??s();return n===`en`?Yu(e):n===`zh`?Xu(e):n===`vi`?Zu(e):W(e)}),$u=()=>`Yes. The level test is free and needs no account, every HSK practice test here can be previewed free, and every account gets one full timed mock free, with its score. The question-by-question review, and more timed mocks, come with a plan.`,ed=()=>`有。水平测试免费且不用注册;每一套 HSK 模拟卷都能免费预览;每个账号还能免费完整考一次计时模考,交卷出分。逐题解析和更多计时模考需要开通会员。`,td=()=>`Có. Bài kiểm tra xếp lớp miễn phí và không cần tài khoản, mọi đề luyện HSK trên trang đều có thể xem thử miễn phí, và mỗi tài khoản được một lượt thi thử đầy đủ có tính giờ miễn phí, 
12có chấm điểm. Bài chữa từng câu và các lượt thi tính giờ tiếp theo đi kèm gói trả phí.`,nd=()=>`มี แบบทดสอบวัดระดับฟรีและไม่ต้องสมัครสมาชิก ข้อสอบจำลอง HSK ทุกชุดที่นี่ดูตัวอย่างได้ฟรี และทุกบัญชียังได้ทำข้อสอบจำลองแบบจับเวลาเต็มชุดฟรี 1 ครั้ง พร้อมคะแนน ส่วนเฉลยรายข้อและข้อสอบจับเวลาเพิ่มเติมมาพร้อมแผนสมาชิก`,rd=((e={},t={})=>{let n=t.locale??s();return n===`en`?$u(e):n===`zh`?ed(e):n===`vi`?td(e):nd(e)}),id=()=>`Most people sit HSK 3 or 4 first: 3 is the level that starts reading and writing at length, and 4 is the one universities and employers usually name. If you are not sure, the free level test places you in about three minutes, and the levels page sets out what each level is expected to do.`,ad=()=>`多数人第一次考三级或四级:三级开始要求成段地读和写,四级则是高校和用人单位最常提的那一档。拿不准的话,免费定级测试约 3 分钟就能给出结果,等级页也写清了每一级的要求。`,od=()=>`Hầu hết mọi người thi HSK 3 hoặc 4 trước tiên: cấp 3 là cấp bắt đầu yêu cầu đọc và viết dài hơn, còn cấp 4 là cấp mà các trường đại học và nhà tuyển dụng thường nhắc đến. Nếu chưa chắc nên chọn cấp nào, bài kiểm tra xếp lớp miễn phí chỉ mất khoảng ba phút để xác định, và trang các cấp độ nêu rõ yêu cầu của từng cấp.`,sd=()=>`คนส่วนใหญ่เริ่มสอบ HSK 3 หรือ 4 ก่อน: ระดับ 3 เป็นระดับที่เริ่มต้องอ่านและเขียนเป็นย่อหน้า ส่วนระดับ 4 เป็นระดับที่มหาวิทยาลัยและนายจ้างมักระบุถึง หากยังไม่แน่ใจ แบบทดสอบวัดระดับฟรีใช้เวลาประมาณสามนาทีก็บอกผลได้ และหน้าระดับต่าง ๆ ก็อธิบายไว้ว่าแต่ละระดับคาดหวังอะไร`,cd=((e={},t={})=>{let n=t.locale??s();return n===`en`?id(e):n===`zh`?ad(e):n===`vi`?od(e):sd(e)}),ld=()=>`Frequently Asked Questions`,ud=()=>`常见问题`,dd=()=>`Câu hỏi thường gặp`,fd=()=>`คำถามที่พบบ่อย`,pd=((e={},t={})=>{let n=t.locale??s();return n===`en`?ld(e):n===`zh`?ud(e):n===`vi`?dd(e):fd(e)}),md=()=>`Everything you need to know about HSKWin`,hd=()=>`关于 HSKWin,你需要知道的一切`,gd=()=>`Mọi điều bạn cần biết về HSKWin`,_d=()=>`ทุกสิ่งที่คุณควรรู้เกี่ยวกับ HSKWin`,vd=((e={},t={})=>{let n=t.locale??s();return n===`en`?md(e):n===`zh`?hd(e):n===`vi`?gd(e):_d(e)}),yd=()=>`HSK levels explained`,bd=()=>`HSK 等级说明`,xd=()=>`Giải thích các cấp độ HSK`,Sd=()=>`อธิบายระดับ HSK`,Cd=((e={},t={})=>{let n=t.locale??s();return n===`en`?yd(e):n===`zh`?bd(e):n===`vi`?xd(e):Sd(e)}),wd=()=>`Preview the papers`,Td=()=>`试看试卷`,Ed=()=>`Xem thử các đề thi`,G=()=>`ดูตัวอย่างข้อสอบ`,Dd=((e={},t={})=>{let n=t.locale??s();return n===`en`?wd(e):n===`zh`?Td(e):n===`vi`?Ed(e):G(e)}),Od=()=>`Is my exam HSK 2.0 or HSK 3.0?`,kd=()=>`我考的是 HSK 2.0 还是 3.0?`,Ad=()=>`Kỳ thi của tôi là HSK 2.0 hay HSK 3.0?`,jd=()=>`การสอบของฉันเป็น HSK 2.0 หรือ 3.0?`,Md=((e={},t={})=>{let n=t.locale??s();return n===`en`?Od(e):n===`zh`?kd(e):n===`vi`?Ad(e):jd(e)}),Nd=()=>`When will HSK 1–6 switch to HSK 3.0?`,Pd=()=>`HSK 一级到六级什么时候切到 3.0?`,Fd=()=>`Khi nào HSK 1–6 chuyển sang HSK 3.0?`,Id=()=>`HSK ระดับ 1–6 จะเปลี่ยนไปใช้ 3.0 เมื่อไร?`,Ld=((e={},t={})=>{let n=t.locale??s();return n===`en`?Nd(e):n===`zh`?Pd(e):n===`vi`?Fd(e):Id(e)}),Rd=()=>`Are these real past papers?`,zd=()=>
12`这些是真题吗?`,K=()=>`Đây có phải là đề thi thật không?`,Bd=()=>`นี่คือข้อสอบเก่าจริงหรือไม่?`,Vd=((e={},t={})=>{let n=t.locale??s();return n===`en`?Rd(e):n===`zh`?zd(e):n===`vi`?K(e):Bd(e)}),Hd=()=>`Do I need an account to try a mock test?`,Ud=()=>`试做模拟考需要注册吗?`,Wd=()=>`Tôi có cần tài khoản để thử làm đề thi thử không?`,Gd=()=>`ต้องสมัครสมาชิกก่อนลองทำข้อสอบจำลองไหม?`,Kd=((e={},t={})=>{let n=t.locale??s();return n===`en`?Hd(e):n===`zh`?Ud(e):n===`vi`?Wd(e):Gd(e)}),qd=()=>`How accurate is the AI writing mark?`,Jd=()=>`AI 作文批改准吗?`,Yd=()=>`AI chấm bài viết chính xác đến mức nào?`,Xd=()=>`การตรวจงานเขียนด้วย AI แม่นยำแค่ไหน?`,Zd=((e={},t={})=>{let n=t.locale??s();return n===`en`?qd(e):n===`zh`?Jd(e):n===`vi`?Yd(e):Xd(e)}),Qd=()=>`What does the pass probability mean?`,$d=()=>`通过概率是什么意思?`,ef=()=>`Xác suất đạt nghĩa là gì?`,tf=()=>`โอกาสสอบผ่านหมายถึงอะไร?`,nf=((e={},t={})=>{let n=t.locale??s();return n===`en`?Qd(e):n===`zh`?$d(e):n===`vi`?ef(e):tf(e)}),rf=()=>`What if I pay and it is not what I expected?`,af=()=>`付了钱发现不是我要的,怎么办?`,of=()=>`Nếu tôi đã trả tiền nhưng không như mong đợi thì sao?`,sf=()=>`ถ้าจ่ายเงินแล้วไม่ตรงกับที่คาดหวังล่ะ?`,cf=((e={},t={})=>{let n=t.locale??s();return n===`en`?rf(e):n===`zh`?af(e):n===`vi`?of(e):sf(e)}),lf=()=>`How is this different from the free HSK mock test sites?`,uf=()=>`这跟免费的 HSK 模考网站有什么不同?`,df=()=>`Trang này khác gì với các trang thi thử HSK miễn phí khác?`,ff
12=()=>`ต่างจากเว็บไซต์ข้อสอบจำลอง HSK ฟรีอื่น ๆ อย่างไร?`,pf=((e={},t={})=>{let n=t.locale??s();return n===`en`?lf(e):n===`zh`?uf(e):n===`vi`?df(e):ff(e)}),mf=()=>`Do you offer free HSK practice tests?`,hf=()=>`有免费的 HSK 练习卷吗?`,gf=()=>`Có đề luyện thi HSK miễn phí không?`,_f=()=>`มีข้อสอบฝึกหัด HSK แบบฟรีไหม?`,vf=((e={},t={})=>{let n=t.locale??s();return n===`en`?mf(e):n===`zh`?hf(e):n===`vi`?gf(e):_f(e)}),yf=()=>`Which HSK level should I take?`,bf=()=>`我该考哪个 HSK 等级?`,xf=()=>`Tôi nên thi cấp HSK nào?`,Sf=()=>`ฉันควรสอบ HSK ระดับไหน?`,Cf=((e={},t={})=>{let n=t.locale??s();return n===`en`?yf(e):n===`zh`?bf(e):n===`vi`?xf(e):Sf(e)}),wf=()=>`Find out in 3 minutes`,Tf=()=>`3 分钟测出来`,Ef=()=>`Tìm hiểu chỉ trong 3 phút`,Df=()=>`หาคำตอบได้ใน 3 นาที`,Of=((e={},t={})=>{let n=t.locale??s();return n===`en`?wf(e):n===`zh`?Tf(e):n===`vi`?Ef(e):Df(e)}),kf=e=>`Protect your exam fee. An HSK registration costs $65–75 a sitting. For ${e?.price} once, Lifetime tells you where you stand before exam day, at this level and every level after.`,Af=e=>`别浪费报名费。HSK 每次报名要 $65–75。终身会员只需一次 ${e?.price},考前就知道自己的水平,这一级和以后每一级都适用。`,jf=e=>`Bảo vệ lệ phí thi của bạn. Đăng ký thi HSK tốn $65–75 mỗi lần. Chỉ với ${e?.price} một lần duy nhất, gói Trọn đời cho bạn biết mình đang ở đâu trước ngày thi, ở cấp độ này và mọi cấp độ sau đó.`,Mf=e=>`ปกป้องค่าธรรมเนียมสอบของคุณ การสมัครสอบ HSK แต่ละครั้งมีค่าใช้จ่าย $65–75 จ่ายเพียง ${e?.price} ครั้งเดียว แผนตลอดชีพจะบอกคุณว่าคุณอยู่ระดับไหนก่อนถึงวันสอบ ทั้งระดับนี้และทุกระดับต่อจากนี้`,Nf=((e,t={})=>{let n=t.locale??s();return n===`en`?kf(e):n===`zh`?Af(e):n===`vi`?jf(e):Mf(e)}),Pf=()=>`Free`,Ff=()=>`免费`,If=()=>`Miễn phí`,Lf=()=>`ฟรี`,Rf=((e={},t={})=>{let n=t.locale??s();return n===`en`?Pf(e):n===`zh`?Ff(e):n===`vi`?If(e):Lf(e)}),zf=()=>`HSKWin pricing: simple and transparent`,Bf=()=>`HSKWin 价格:简单、透明`,Vf=()=>`Bảng giá HSKWin: đơn giản và minh bạch`,Hf=()=>`ราคาของ HSKWin: เรียบง่ายและโปร่งใส`,Uf=((e={},t={})=>{let n=t.locale??s();
12return n===`en`?zf(e):n===`zh`?Bf(e):n===`vi`?Vf(e):Hf(e)}),Wf=e=>`HSK Level ${e?.n}`,Gf=e=>`HSK ${e?.n} 级`,Kf=e=>`HSK Cấp ${e?.n}`,qf=e=>`HSK ระดับ ${e?.n}`,Jf=((e,t={})=>{let n=t.locale??s();return n===`en`?Wf(e):n===`zh`?Gf(e):n===`vi`?Kf(e):qf(e)}),Yf=()=>`See plans`,Xf=()=>`查看套餐`,Zf=()=>`Xem các gói`,Qf=()=>`ดูแผนสมาชิก`,$f=((e={},t={})=>{let n=t.locale??s();return n===`en`?Yf(e):n===`zh`?Xf(e):n===`vi`?Zf(e):Qf(e)}),ep=()=>`HSK reading practice, level by level`,tp=()=>`HSK 阅读练习,逐级列出`,np=()=>`Luyện đọc hiểu HSK theo từng cấp độ`,rp=()=>`แบบฝึกหัดการอ่าน HSK แยกตามระดับ`,ip=((e={},t={})=>{let n=t.locale??s();return n===`en`?ep(e):n===`zh`?tp(e):n===`vi`?np(e):rp(e)}),ap=e=>`${e?.label} reading practice`,op=e=>`${e?.label} 阅读练习`,sp=e=>`Luyện đọc hiểu ${e?.label}`,cp=e=>`แบบฝึกหัดการอ่าน ${e?.label}`,lp=((e,t={})=>{let n=t.locale??s();return n===`en`?ap(e):n===`zh`?op(e):n===`vi`?sp(e):cp(e)}),up=e=>`What the ${e?.label} reading section asks: ${e?.questions} questions in ${e?.minutes} minutes for ${e?.score} marks, and how they split across the parts. Graded ${e?.label} reading passages are on the way; the full mock paper runs the section today.`,dp=e=>`${e?.label} 阅读部分考什么:${e?.minutes} 分钟 ${e?.questions} 题、${e?.score} 分,各大题如何划分。分级阅读短文即将上线;完整模拟卷现在就能跑这一部分。`,fp=e=>`Phần đọc hiểu ${e?.label} yêu cầu gì: ${e?.questions} câu trong ${e?.minutes} phút cho ${e?.score} điểm, và cách chia thành các phần. Các bài đọc ${e?.label} phân cấp độ sắp ra mắt; đề thi thá»­ đầy đủ đã có sẵn phần này ngay hôm nay.`,pp=e=>`ส่วนการอ่าน ${e?.label} ถามอะไรบ้าง: ${e?.questions} ข้อ ใน ${e?.minutes} นาที ${e?.score} คะแนน และแบ่งเป็นแต่ละส่วนอย่างไร บทความการอ่านแบ่งระดับ ${e?.label} กำลังจะมา ส่วนข้อสอบจำลองเต็มชุดมีส่วนนี้ให้ทำได้แล้ววันนี้`,mp=((e,t={})=>{let n=t.locale??s();return n===`en`?up(e):n===`zh`?dp(e):n===`vi`?fp(e):pp(e)}),hp=()=>`HSK reading practice by level: how many questions each level asks, how long you get, how the section is split into parts, and where to sit a full timed reading section today. Built to the 2026 HSK 3.0 syllabus.`,gp=()=>`HSK 各级别阅读练习:每级考多少题、给多少分钟、各大题怎么分,以及现在就能在哪做一整套计时阅读。依据 2026 å¹´ HSK 3.0 大纲。`,_p=()=>`Luyện đọc hiểu HSK theo cấp độ: mỗi cấp có bao nhiêu câu hỏi, thời gian làm bài, cách chia phần, và nÆ¡i để làm ngay một phần đọc hiểu đầy đủ, có tính giờ. Xây dá»±ng theo khung chương trình HSK 3.0 năm 2026.`,vp=()=>`แบบฝึกหัดการอ่าน HSK แยกตามระดับ: แต่ละระดับมีกี่ข้อ ให้เวลาเท่าไร แบ่งเป็นกี่ส่วน และตอนนี้ทำข้อสอบการอ่านแบบจับเวลาเต็มชุดได้ที่ไหน อิงตามหลักสูตร HSK 3.0 ปี 2026`,yp=((e={},t={})=>{let n=t.locale??s();return n===`en`?hp(e):n===`zh`?gp(e):n===`vi`?_p(e):vp(e)}),bp=()=>`HSK Reading Practice — Every Level, HSK 3.0 Format | HSKWin`,xp=()=>`HSK 阅读练习:各级别题型与结构 | HSKWin`,Sp=()=>`Luyện Đọc Hiểu HSK — Mọi Cấp Độ, Chuẩn HSK 3.0 | HSKWin`,Cp=()=>`แบบฝึกหัดการอ่าน HSK — ครบทุกระดับ ตามรูปแบบ HSK 3.0 | HSKWin`,wp=((e={},t={})=>{let n=t.locale??s();return n===`en`?bp(e):n===`zh`?xp(e):n===`vi`?Sp(e):Cp(e)}),Tp=e=>`${e?.label} Reading Practice — ${e?.questions} Questions, ${e?.minutes} Minutes | HSKWin`,Ep=e=>`${e?.label} 阅读练习:${e?.questions} 题 / ${e?.minutes} 分钟 | HSKWin`,Dp=e=>`Luyện Đọc Hiểu ${e?.label} — ${e?.questions} Câu, ${e?.minutes} Phút | HSKWin`,Op=e=>`แบบฝึกหัดการอ่าน ${e?.label} — ${e?.questions} ข้อ ${e?.minutes} นาที | HSKWin`,kp=((e,t={})=>{let n=t.locale??s();return n===`en`?Tp(e):n===`zh`?Ep(e):n===`vi`?Dp(e):Op(e)}),Ap=()=>`Reading practice`,jp=()=>`阅读练习`,Mp=()=>`Luyện đọc hiểu`,Np=()=>`แบบฝึกหัดการอ่าน`,Pp=((e={},t={})=>{let n=t.locale??s();return n===`en`?Ap(e):n===`zh`?jp(e):n===`vi`?Mp(e):Np(e)}),Fp=()=>`Every HSK 2026 registration deadline, how to register on chinesetest.cn, the fee, and a free email reminder before registration closes.`,Ip=()=>`免费的 HSK 报名提醒:报名截止前一周、前一天和考前一周各发一封邮件。登录后选好场次就行。`,Lp=()=>`Toàn bộ hạn đăng ký HSK 2026, cách đăng ký trên chinesetest.cn, lệ phí thi, và lời nhắc email miễn phí trước khi hết hạn đăng ký.`,Rp=()=>`กำหนดปิดรับสมัคร HSK ทุกรอบในปี 2026 วิธีสมัครสอบที่ chinesetest.cn ค่าธรรมเนียม และระบบแจ้งเตือนทางอีเมลà¸
12Ÿà¸£à¸µà¸à¹ˆà¸­à¸™à¸›à¸´à¸”รับสมัคร`,zp=((e={},t={})=>{let n=t.locale??s();return n===`en`?Fp(e):n===`zh`?Ip(e):n===`vi`?Lp(e):Rp(e)}),Bp=()=>`HSK Registration: 2026 Deadlines & How to Register | HSKWin`,Vp=()=>`HSK 报名提醒:截止前邮件通知 | HSKWin`,Hp=()=>`Đăng Ký Thi HSK: Hạn Chót 2026 & Cách Đăng Ký | HSKWin`,Up=()=>`การสมัครสอบ HSK: กำหนดปิดรับสมัครปี 2026 และวิธีสมัคร | HSKWin`,Wp=((e={},t={})=>{let n=t.locale??s();return n===`en`?Bp(e):n===`zh`?Vp(e):n===`vi`?Hp(e):Up(e)}),Gp=()=>`What learners say about HSKWin`,Kp=()=>`使用者怎么评价 HSKWin`,qp=()=>`Học viên nói gì về HSKWin`,Jp=()=>`ผู้เรียนพูดถึง HSKWin อย่างไร`,Yp=((e={},t={})=>{let n=t.locale??s();return n===`en`?Gp(e):n===`zh`?Kp(e):n===`vi`?qp(e):Jp(e)}),Xp=()=>`From people preparing for a 2026 sitting with HSKWin, and from a few who have already sat one.`,Zp=()=>`来自正在用 HSKWin 备考 2026 年考试的人,也有几位已经考完了。`,Qp=()=>`Từ những người đang ôn thi kỳ 2026 cùng HSKWin, và từ một vài người đã thi xong.`,$p=()=>`จากผู้ที่กำลังเตรียมสอบรอบปี 2026 ด้วย HSKWin และจากบางคนที่สอบไปแล้ว`,em=((e={},t={})=>{let n=t.locale??s();return n===`en`?Xp(e):n===`zh`?Zp(e):n===`vi`?Qp(e):$p(e)}),tm=()=>`Dakar · passed HSK 4 in March 2026`,nm=()=>`达喀尔 · 2026 å¹´ 3 月通过 HSK 4`,rm=()=>`Dakar · đậu HSK 4 vào tháng 3/2026`,im=()=>`ดาการ์ · สอบผ่าน HSK 4 ในเดือนมีนาคม 2026`,am=((e={},t={})=>{let n=t.locale??s();return n===`en`?tm(e):n===`zh`?nm(e):n===`vi`?rm(e):im(e)}),om=()=>`Amara Diallo`,sm=()=>`Amara Diallo`,cm=()=>`Amara Diallo`,lm=()=>`Amara Diallo`,um=((e={},t={})=>{let n=t.locale??s();return n===`en`?om(e):n===`zh`?sm(e):n===`vi`?cm(e):lm(e)}),dm=()=>`I had registered for HSK 3 on the strength of a free quiz. The placement test here put me at 4.1 and split it out — my grammar was two levels behind my vocabulary. I moved my registration up.`,fm=()=>`我本来凭一个免费小测报了 HSK 3。这里的定级测试给出 4.1,还把差距拆开给我看:语法比词汇落后两级。我把报名往上改了。`,pm=()=>`Tôi đã đăng ký thi HSK 3 chỉ dá»±a vào một bài quiz miễn phí. Bài kiểm tra xếp lớp ở đây cho tôi mức 4.1 và tách rõ ra — ngữ pháp cá»§a tôi kém từ vá»±ng tới hai cấp. Tôi đã đổi sang đăng ký cấp cao hÆ¡n.`,mm=()=>`ฉันสมัครสอบ HSK 3 ไปแล้วจากผลแบบทดสอบสั้น ๆ ฟรี แต่แบบทดสอบวัดระดับที่นี่ให้ผลเป็น 4.1 และแยกให้เห็นด้วยว่าไวยากรณ์ของฉันตามหลังคำศัพท์อยู่สองระดับ ฉันเลยเปลี่ยนไปสมัครระดับที่สูงขึ้น`,hm=((e={},t={})=>{let n=t.locale??s();return n===`en`?dm(e):n===`zh`?fm(e):n===`vi`?pm(e):mm(e)}),gm=()=>`Kraków · preparing for HSK 5`,_m=()=>`克拉科夫 · 备考 HSK 5`,vm=()=>`Kraków · đang ôn thi HSK 5`,ym=()=>`คราคุฟ · กำลังเตรียมสอบ HSK 5`,bm=((e={},t={})=>{let n=t.locale??s();return n===`en`?gm(e):n===`zh`?_m(e):n===`vi`?vm(e):ym(e)}),xm=()=>`Tomasz Wójcik`,Sm=()=>`Tomasz Wójcik`,Cm=()=>`Tomasz Wójcik`,wm=()=>`Tomasz Wójcik`,Tm=((e={},t={})=>{let n=t.locale??s();return n===`en`?xm(e):n===`zh`?Sm(e):n===`vi`?Cm(e):wm(e)}),Em=()=>`The clock is the part other sites leave out. Untimed I can finish HSK 5 reading; with the section clock running I lost the last passage twice before I learned to let one go.`,Dm=()=>`别家省掉的恰恰是计时。不计时,HSK 5 阅读我做得完;分区计时一开,最后一篇我连丢两次,后来才学会该放就放。`,Om=()=>`Phần đồng hồ đếm giờ là thứ mà các trang khác bỏ qua. Không tính giờ thì tôi làm xong phần đọc HSK 5; nhưng khi đồng hồ từng phần chạy, tôi mất bài đọc cuối hai lần liền trước khi học được cách bỏ qua một câu khi cần.`,km=()=>`การจับเวลาคือสิ่งที่เว็บอื่นมักตัดออกไป ถ้าไม่จับเวลา ฉันทำการอ่าน HSK 5 เสร็จได้ทัน แต่พอเปิดจับเวลาแยกตามส่วน ฉันเสียบทความสุดท้ายไปสองครั้งก่อนจะเรียนรู้ว่าเมื่อไรควรปล่อยผ่าน`,Am=((e={},t={})=>{let n=t.locale??s();return n===`en`?Em(e):n===`zh`?Dm(e):n===`vi`?Om(e):km(e)}),jm=()=>`Osaka · preparing for HSK 7–9`,Mm=()=>`大阪 · 备考 HSK 7–9`,Nm=()=>`Osaka · đang ôn thi HSK 7–9`,Pm=()=>`โอซาก้า · กำลังเตรียมสอบ HSK 7–9`,Fm=((e={},t={})=>{let n=t.locale??s();return n===`en`?jm(e):n===`zh`?Mm(e):n===`vi`?Nm(e):Pm(e)}),Im=()=>`Kenji Morita`,Lm=()=>`Kenji Morita`,Rm=()=>`Kenji Morita`,zm=()=>`Kenji Morita`,Bm=((e={},t={})=>{let n=t.locale??s();return n===`en`?Im(e):n===`zh`?Lm(e):n===`vi`?Rm(e):zm(e)}),Vm=()=>`7–9 is already a 3.0 paper, so the old 2.0 material was costing me time. The writing feedback here quotes my own sentence and names which of the three dimensions it cost me.`,Hm=()=>`7–9 考的已经是 3.0 的卷子,旧的 2.0 材料只是在花我的时间。这里的作文反馈会引用我自己的句子,并说清扣的是三个维度里的哪一个。`,Um=()=>`7–9 vốn đã là đề 3.0, nên tài liệu 2.0 cÅ© chỉ tổ mất thời gian cá»§a tôi. Phần nhận xét bài viết ở đây trích chính câu cá»§a tôi và chỉ rõ nó bị trừ điểm ở tiêu chí nào trong ba tiêu chí.`,Wm=()=>`ระดับ 7–9 เป็นข้อสอบ 3.0 อยู่แล้ว ดังนั้นเนื้อหา 2.0 เก่า ๆ มีแต่จะเสียเวลาฉันเปล่า ๆ คำแนะนำการเขียนที่นี่จะยกประโยคของฉันเองมาอ้างอิง และบอกว่าถูกหักคะแนนจากมิติไหนในสามมิตินั้น`,Gm=((e={},t={})=>{let n=t.locale??s();return n===`en`?Vm(e):n===`zh`?Hm(e):n===`vi`?Um(e):Wm(e)}),Km=()=>`Bogotá · passed HSK 3 in June 2026`,qm=()=>`波哥大 · 2026 å¹´ 6 月通过 HSK 3`,Jm=()=>`Bogotá · đậu HSK 3 vào tháng 6/2026`,Ym=()=>`โบโกตา · สอบผ่าน HSK 3 ในเดือนมิถุนายน 202
126`,Xm=((e={},t={})=>{let n=t.locale??s();return n===`en`?Km(e):n===`zh`?qm(e):n===`vi`?Jm(e):Ym(e)}),Zm=()=>`Sofía Ramírez`,Qm=()=>`Sofía Ramírez`,$m=()=>`Sofía Ramírez`,eh=()=>`Sofía Ramírez`,th=((e={},t={})=>{let n=t.locale??s();return n===`en`?Zm(e):n===`zh`?Qm(e):n===`vi`?$m(e):eh(e)}),nh=()=>`The HSK 3.0 word list is free to browse, which is how I started using it at all — twenty flashcards on the bus, and the ones I miss come back without me organising anything.`,rh=()=>`HSK 3.0 词表可以免费浏览,我才真正用起来——公交车上二十张闪卡,答错的会自己回来,我什么都不用安排。`,ih=()=>`Danh sách từ vựng HSK 3.0 xem miễn phí, nhờ vậy tôi mới bắt đầu dùng nó — hai mươi thẻ từ trên xe buýt, và những từ tôi sai sẽ tự quay lại mà tôi không phải sắp xếp gì cả.`,ah=()=>`คลังคำศัพท์ HSK 3.0 ดูได้ฟรี นั่นคือจุดที่ทำให้ฉันเริ่มใช้งานจริงจัง — ยี่สิบแฟลชการ์ดบนรถเมล์ และคำที่ตอบผิดก็วนกลับมาเองโดยที่ฉันไม่ต้องจัดการอะไรเลย`,oh=((e={},t={})=>{let n=t.locale??s();return n===`en`?nh(e):n===`zh`?rh(e):n===`vi`?ih(e):ah(e)}),sh=()=>`Bengaluru · passed HSK 5 in June 2026`,ch=()=>`班加罗尔 · 2026 年 6 月通过 HSK 5`,lh=()=>`Bengaluru · đậu HSK 5 vào tháng 6/2026`,uh=()=>`เบงกาลูรู · สอบผ่าน HSK 5 ในเดือนมิถุนายน 2026`,dh=((e={},t={})=>{let n=t.locale??s();return n===`en`?sh(e):n===`zh`?ch(e):n===`vi`?lh(e):uh(e)}),fh=()=>`Priya Nair`,ph=()=>`Priya Nair`,mh=()=>`Priya Nair`,hh=()=>`Priya Nair`,gh=((e={},t={})=>{let n=t.locale??s();return n===`en`?fh(e):n===`zh`?ph(e):n===`vi`?mh(e):hh(e)}),_h=()=>`What I open most is the mistake book. Four papers in it was obvious that half my losses were one question type, not “reading” in general.`,vh=()=>`我打开最多的是错题本。做完四套卷就很清楚:我丢的分有一半集中在同一种题型,而不是笼统的「阅读不行」。`,yh=()=>`Thứ tôi mở nhiều nhất là sổ tay lỗi sai. Sau bốn đề, đã rõ ràng là hơn nửa số điểm mất đến từ một dạng câu hỏi cụ thể, chứ không phải “đọc hiểu” nói chung.`,bh=()=>`สิ่งที่ฉันเปิดดูบ่อยที่สุดคือสมุดข้อผิดพลาด ทำไปสี่ชุดก็เห็นชัดว่าคะแนนที่เสียไปครึ่งหนึ่งอยู่ที่โจทย์รูปแบบเดียว ไม่ใช่ "การอ่านไม่เก่ง" แบบกว้าง ๆ`,xh=((e={},t={})=>{let n=t.locale??s();return n===`en`?_h(e):n===`zh`?vh(e):n===`vi`?yh(e):bh(e)}),Sh=()=>`Dublin · preparing for HSK 6`,Ch=()=>`都柏林 · 备考 HSK 6`,wh=()=>`Dublin · đang ôn thi HSK 6`,Th=()=>`ดับลิน · กำลังเตรียมสอบ HSK 6`,Eh=((e={},t={})=>{let n=t.locale??s();return n===`en`?Sh(e):n===`zh`?Ch(e):n===`vi`?wh(e):Th(e)}),Dh=()=>`Liam O'Connor`,Oh=()=>`Liam O'Connor`,kh=()=>`Liam O'Connor`,Ah=()=>`Liam O'Connor`,jh=((e={},t={})=>{let n=t.locale??s();return n===`en`?Dh(e):n===`zh`?Oh(e):n===`vi`?kh(e):Ah(e)}),Mh=()=>`Listening plays once and there is no replay button, which annoyed me until I thought about the real hall. The explanations are why I stayed: on a fill-the-blank I missed, it pointed at the clause that defines the word.`,Nh=()=>`听力只播一遍,也没有重播键,一开始让我很烦——想想真考场就明白了。留下我的是解析:一道我做错的选词填空,它指出空后面那半句就是释义。`,Ph=()=>`Bài nghe chỉ phát một lần và không có nút phát lại, lúc đầu tôi thấy khó chịu cho đến khi nghĩ đến phòng thi thật. Phần giải thích mới là lý do tôi ở lại: với một câu điền từ tôi làm sai, nó chỉ ra đúng mệnh đề định nghĩa từ đó.`,Fh=()=>`การฟังเล่นแค่ครั้งเดียวและไม่มีปุ่มเล่นซ้ำ ซึ่งกวนใจฉันมากจนกระทั่งได้คิดถึงห้องสอบจริง สิ่งที่ทำให้ฉันอยู่ต่อคือคำอธิบาย: ข้อเติมคำที่ฉันตอบผิดข้อหนึ่ง มันชี้ไปที่อนุประโยคที่นิยามคำนั้นไว้พอดี`,Ih=((e={},t={})=>{let n=t.locale??s();return n===`en`?Mh(e):n===`zh`?Nh(e):n===`vi`?Ph(e):Fh(e)}),Lh=e=>`${e?.rating} out of ${e?.best} stars`,Rh=e=>`${e?.best} 分中的 ${e?.rating} 分`,zh=e=>`${e?.rating} trên ${e?.best} sao`,Bh=e=>`${e?.rating} จาก ${e?.best} ดาว`,Vh=((e,t={})=>{let n=t.locale??s();return n===`en`?Lh(e):n===`zh`?Rh(e):n===`vi`?zh(e):Bh(e)}),Hh=()=>`The audio didn’t load. Tap Listen to try again.`,Uh=()=>`音频没有加载成功,点“朗读”再试一次。`,Wh=()=>`Âm thanh chưa tải được. Nhấn Nghe để thử lại.`,Gh=()=>`เสียงโหลดไม่สำเร็จ แตะ "ฟัง" เพื่อลองใหม่`,Kh=((e={},t={})=>{let n=t.locale??s();return n===`en`?Hh(e):n===`zh`?Uh(e):n===`vi`?Wh(e):Gh(e)}),qh=()=>`above this story’s level`,Jh=()=>`超出本故事级别`,Yh=()=>`vượt cấp độ của truyện này`,Xh=()=>`สูงกว่าระดับของนิทานเรื่องนี้`,Zh=((e={},t={})=>{let n=t.locale??s();return n===`en`?qh(e):n===`zh`?Jh(e):n===`vi`?Yh(e):Xh(e)}),Qh=()=>`Close`,$h=()=>`关闭`,eg=()=>`Đóng`,tg=()=>`ปิด`,ng=((e={},t={})=>{let n=t.locale??s();return n===`en`?Qh(e):n===`zh`?$h(e):n===`vi`?eg(e):tg(e)}),rg=()=>`Its pinyin, meaning and HSK level appear here. The ← and → keys move between words.`,ig=()=>`它的拼音、释义和 HSK 等级会显示在这里。用 ← → 键可以在词之间移动。`,ag=()=>`Pinyin, nghĩa và cấp độ HSK của từ sẽ hiện ở đây. Dùng phím ← và → để chuyển giữa các từ.`,og=()=>`พินอิน ความหมาย และระดับ HSK จะแสดงที่นี่ ใช้ปุ่ม ← และ → เพื่อเลื่อนระหว่างคำ`,sg=((e={},t={})=>{let n=t.locale??s();return n===`en`?rg(e):n===`zh`?ig(e):n===`vi`?ag(e):og(e)}),cg=()=>`Tap any word`,lg=()=>`点任意一个词`,ug=()=>`Chạm vào một từ bất kỳ`,dg=()=>`แตะคำใดก็ได้`,fg=((e={},t={})=>{let n=t.locale??s();return n===`en`?cg(e):n===`zh`?lg(e):n===`vi`?ug(e):dg(e)}),pg=()=>`Hide translation`,mg=()=>`收起翻译`,hg=()=>`Ẩn bản dịch`,gg=()=>`ซ่อนคำแปล`,_g=((e={},t={})=>{let n=t.locale??s();return n===`en`?pg(e):n===`zh`?mg(e):n===`vi`?hg(e):gg(e)}),vg=()=>`Name`,yg=()=>`人名/地名`,bg=()=>`Tên người/địa danh`,xg=()=>`ชื่อคน/สถานที่`,Sg=((e={},t={})=>{let n=t.locale??s();return n===`en`?vg(e):n===`zh`?yg(e):n===`vi`?bg(e):xg(e)}),Cg=()=>`Next word`,wg=()=>`下一个词`,Tg=()=>`Từ tiếp theo`,Eg=()=>`คำถัดไป`,Dg=((e={},t={})=>{let n=t.locale??s();return n===`en`?Cg(e):n===`zh`?wg(e):n===`vi`?Tg(e):Eg(e)}),Og=()=>`Not on the HSK list`,kg=()=>`不在 HSK 大纲内`,Ag=()=>`Không có trong danh sách HSK`,jg=()=>`ไม่อยู่ในรายการหลักสูตร HSK`,Mg=((e={},t={})=>{let n=t.locale??s();return n===`en`?Og(e):n===`zh`?kg(e):n===`vi`?Ag(e):jg(e)}),Ng=()=>
12`Previous word`,Pg=()=>`上一个词`,Fg=()=>`Từ trước đó`,Ig=()=>`คำก่อนหน้า`,Lg=((e={},t={})=>{let n=t.locale??s();return n===`en`?Ng(e):n===`zh`?Pg(e):n===`vi`?Fg(e):Ig(e)}),Rg=()=>`Save to flashcards`,zg=()=>`加入闪卡`,Bg=()=>`Lưu vào flashcard`,Vg=()=>`บันทึกลงแฟลชการ์ด`,Hg=((e={},t={})=>{let n=t.locale??s();return n===`en`?Rg(e):n===`zh`?zg(e):n===`vi`?Bg(e):Vg(e)}),Ug=()=>`In your flashcards`,Wg=()=>`已在闪卡中`,Gg=()=>`Đã có trong flashcard của bạn`,Kg=()=>`อยู่ในแฟลชการ์ดของคุณแล้ว`,qg=((e={},t={})=>{let n=t.locale??s();return n===`en`?Ug(e):n===`zh`?Wg(e):n===`vi`?Gg(e):Kg(e)}),Jg=()=>`Translate sentence`,Yg=()=>`翻译整句`,Xg=()=>`Dịch câu`,Zg=()=>`แปลประโยค`,Qg=((e={},t={})=>{let n=t.locale??s();return n===`en`?Jg(e):n===`zh`?Yg(e):n===`vi`?Xg(e):Zg(e)}),$g=e=>`Chapter ${e?.n} of ${e?.total} of 《${e?.story}》 (${e?.en}), a graded ${e?.label} Chinese story: ${e?.chars} characters with tap-to-look-up pinyin and meaning, sentence translations and questions.`,e_=e=>`《${e?.story}》(${e?.en})第 ${e?.n} 章,共 ${e?.total} 章,${e?.label} 中文分级故事:${e?.chars} 字,点词看拼音和释义,配整句翻译和阅读理解题。`,t_=e=>`Chương ${e?.n} trong ${e?.total} chương của 《${e?.story}》 (${e?.en}), một truyện tiếng Trung phân cấp ${e?.label}: ${e?.chars} ký tự, chạm để tra pinyin và nghĩa, kèm dịch câu và câu hỏi.`,n_=e=>`บทที่ ${e?.n} จาก ${e?.total} ของ 《${e?.story}》 (${e?.en}) นิทานภาษาจีนแบ่งระดับ ${e?.label}: ${e?.chars} ตัวอักษร แตะคำเพื่อดูพินอินและความหมาย พร้อมคำแปลประโยคและคำถาม`,r_=((e,t={})=>{let n=t.locale??s();return n===`en`?$g(e):n===`zh`?e_(e):n===`vi`?t_(e):n_(e)}),i_=e=>`${e?.story} · Chapter ${e?.n}: ${e?.chapter} — ${e?.label} Story | HSKWin`,a_=e=>`${e?.story} · 第 ${e?.n} 章:${e?.chapter}——${e?.label} 分级故事 | HSKWin`,o_=e=>`${e?.story} · Chương ${e?.n}: ${e?.chapter} — Truyện ${e?.label} | HSKWin`,s_=e=>`${e?.story} · บทที่ ${e?.n}: ${e?.chapter} — นิทาน ${e?.label} | HSKWin`,c_=((e,t={})=>{let n=t.locale??s();return n===`en`?i_(e):n===`zh`?a_(e):n===`vi`?o_(e):s_(e)}),l_=()=>`Right.`,u_=()=>`答对了。`,d_=()=>`Chính xác.`,f_=()=>`ถูกต้อง`,p_=((e={},t={})=>{let n=t.locale??s();return n===`en`?l_(e):n===`zh`?u_(e):n===`vi`?d_(e):f_(e)}),m_=()=>`Yes. Every story and every chapter — the word lookup, the translations, the narration and the questions — is free. You read them signed in to a free account; no card, no trial. The opening above works without one, so you can try the reader first. Words you save go into the same flashcard deck as the vocabulary pages, kept in your browser.`,h_=()=>`免费。每一篇、每一章,连同点词查询、翻译、朗读和理解题,全部免费,只需登录一个免费账号阅读;不用绑卡,也没有试用期。上面的试读不登录也能点,可以先试试阅读器。你保存的词会进入和词汇页同一套闪卡,存在你的浏览器里。`,g_=()=>`Có. Mọi truyện và mọi chương — tra từ, bản dịch, lời đọc và câu hỏi — đều miễn phí. Bạn cần đăng nhập bằng tài khoản miễn phí để đọc; không cần thẻ thanh toán, không có bản dùng thử. Phần mở đầu ở trên không cần đăng nhập, để bạn thử trình đọc trước. Các từ bạn lưu sẽ vào cùng bộ flashcard với trang từ vựng, lưu ngay trên trình duyệt của bạn.`,__=()=>`ฟรี ทุกเรื่องและทุกบท — รวมถึงการค้นหาคำ คำแปล การอ่านออกเสียง และคำถาม — ฟรีทั้งหมด คุณอ่านได้เมื่อเข้าสู่ระบบด้วยบัญชีฟ
12รี ไม่ต้องผูกบัตร ไม่มีช่วงทดลองใช้ ส่วนเปิดเรื่องด้านบนใช้ได้โดยไม่ต้องเข้าสู่ระบบ คุณจึงลองใช้เครื่องมืออ่านได้ก่อน คำที่คุณบันทึกไว้จะเข้าชุดแฟลชการ์ดเดียวกับหน้าคำศัพท์ เก็บไว้ในเบราว์เซอร์ของคุณ`,v_=((e={},t={})=>{let n=t.locale??s();return n===`en`?m_(e):n===`zh`?h_(e):n===`vi`?g_(e):__(e)}),y_=()=>`The level you are preparing for, if most sentences make sense on the first read. If you are tapping more than a word or two per sentence, drop a level: easy reading done often beats hard reading done rarely. The level test places you in three minutes.`,b_=()=>`如果大多数句子第一遍就能读懂,就读你备考的级别。如果每句话要点两个以上的词,就降一级:常读容易的,胜过偶尔读难的。水平测试三分钟就能帮你定级。`,x_=()=>`Hãy đọc đúng cấp độ bạn đang ôn thi, nếu phần lớn câu bạn hiểu ngay từ lần đọc đầu. Nếu mỗi câu bạn phải tra hơn một, hai từ, hãy chọn cấp thấp hơn: đọc dễ thường xuyên tốt hơn đọc khó thỉnh thoảng. Bài kiểm tra trình độ chỉ mất ba phút để xác định cấp độ phù hợp.`,S_=()=>`อ่านระดับที่คุณกำลังเตรียมสอบ หากส่วนใหญ่ของประโยคเข้าใจได้ตั้งแต่อ่านครั้งแรก หากคุณต้องแตะคำมากกว่าหนึ่งหรือสองคำต่อประโยค ให้ลดลงหนึ่งระดับ: อ่านของง่ายบ่อย ๆ ดีกว่าอ่านของยากนาน ๆ ครั้ง แบบทดสอบวัดระดับใช้เวลาสามนาทีก็บอกระดับของคุณได้`,C_=((e={},t={})=>{let n=t.locale??s();return n===`en`?y_(e):n===`zh`?b_(e):n===`vi`?x_(e):S_(e)}),w_=()=>`HSK 3.0 — the syllabus published in November 2025. Its levels are larger than 2.0’s: HSK 3.0 level 3 is 1,000 words, where 2.0 level 3 was 600. If you are sitting a 2.0 paper, read about one level below your exam.`,T_=()=>`HSK 3.0——2025 年 11 月发布的考试大纲。3.0 每一级的词量都比 2.0 大:3.0 的三级是 1,000 词,2.0 的三级是 600 词。如果你考的是 2.0 试卷,大约读比考试低一级的故事。`,E_=()=>`HSK 3.0 — đại cương công bố tháng 11 năm 2025. Các cấp độ của 3.0 rộng hơn 2.0: cấp 3 của HSK 3.0 có 1.000 từ, trong khi cấp 3 của 2.0 chỉ có 600 từ. Nếu bạn thi theo đề 2.0, hãy đọc truyện ở cấp thấp hơn kỳ thi của bạn khoảng một bậc.`,D_=()=>`HSK 3.0 — หลักสูตรที่ประกาศเมื่อเดือนพฤศจิกายน 2025 แต่ละระดับของ 3.0 มีขนาดใหญ่กว่า 2.0: ระดับ 3 ของ HSK 3.0 มี 1,000 คำ ขณะที่ระดับ 3 ของ 2.0 มีเพียง 600 คำ หากคุณกำลังจะสอบข้อสอบ 2.0 ให้อ่านนิทานที่ต่ำกว่าระดับสอบของคุณประมาณหนึ่งระดับ`,O_=((e={},t={})=>{let n=t.locale??s();return n===`en`?w_(e):n===`zh`?T_(e):n===`vi`?E_(e):D_(e)}),k_=()=>`One per level today, from HSK 1 to HSK 7–9, with more being written. Each level page lists what is there.`,A_=()=>`目前每个级别一篇,从 HSK 1 到 HSK 7–9,更多的正在写。每个级别页都会列出现有的故事。`,j_=()=>`Hiện mỗi cấp độ có một truyện, từ HSK 1 đến HSK 7–9, và còn nhiều truyện đang được viết thêm. Mỗi trang cấp độ liệt 
12kê đầy đủ các truyện đang có.`,M_=()=>`ตอนนี้มีระดับละหนึ่งเรื่อง ตั้งแต่ HSK 1 ถึง HSK 7–9 และกำลังเขียนเพิ่มอีก แต่ละหน้าระดับจะแสดงรายการที่มีอยู่`,N_=((e={},t={})=>{let n=t.locale??s();return n===`en`?k_(e):n===`zh`?A_(e):n===`vi`?j_(e):M_(e)}),P_=()=>`Every word can be heard: tap it and press the speaker. Recorded narration of whole chapters is not there yet.`,F_=()=>`每个词都能听:点开它,按喇叭。整章的朗读录音暂时还没有。`,I_=()=>`Mọi từ đều có thể nghe: chạm vào từ rồi bấm biểu tượng loa. Bản thu âm đọc trọn chương thì chưa có.`,L_=()=>`ทุกคำฟังได้: แตะคำนั้นแล้วกดปุ่มลำโพง ส่วนการอ่านออกเสียงทั้งบทที่บันทึกไว้ล่วงหน้ายังไม่มี`,R_=((e={},t={})=>{let n=t.locale??s();return n===`en`?P_(e):n===`zh`?F_(e):n===`vi`?I_(e):L_(e)}),z_=()=>`You should, eventually. But at HSK 3 or 4 a news article or a novel has too many unknown words to read — you end up decoding one sentence at a time. Graded stories are the bridge: real reading, at a level where it works.`,B_=()=>`迟早应该读。但在 HSK 3、4 级,一篇新闻或一本小说里的生词太多,读起来只能一句一句地“解码”。分级故事就是中间那座桥:真正的阅读,而且难度刚好。`,V_=()=>`Rồi bạn cũng nên đọc thật. Nhưng ở trình độ HSK 3 hay 4, một bài báo hay một cuốn tiểu thuyết có quá nhiều từ lạ khiến bạn chỉ có thể "giải mã" từng câu một. Truyện phân cấp chính là cầu nối: đọc thật sự, ở mức độ vừa sức.`,H_=()=>`ในที่สุดคุณควรอ่าน แต่ในระดับ HSK 3 หรือ 4 บทความข่าวหรือนิยายมีคำที่ไม่รู้จักมากเกินไป จนคุณต้อง "ถอดรหัส" ทีละประโยค นิทานแบ่งระดับคือสะพานเชื่อม: การอ่านจริงในระดับที่พอดีกับคุณ`,U_=((e={},t={})=>{let n=t.locale??s();return n===`en`?z_(e):n===`zh`?B_(e):n===`vi`?V_(e):H_(e)}),W_=()=>`Are the stories free?`,G_=()=>`故事免费吗?`,K_=()=>`Truyện có miễn phí không?`,q_=()=>`นิทานฟรีไหม?`,J_=((e={},t={})=>{let n=t.locale??s();return n===`en`?W_(e):n===`zh`?G_(e):n===`vi`?K_(e):q_(e)}),Y_=()=>`Which level should I read?`,X_=()=>`我该读哪一级?`,Z_=()=>`Tôi nên đọc cấp độ nào?`,Q_=()=>`ฉันควรอ่านระดับไหน?`,$_=((e={},t={})=>{let n=t.locale??s();return n===`en`?Y_(e):n===`zh`?X_(e):n===`vi`?Z_(e):Q_(e)}),ev=()=>`Are they written for HSK 3.0 or HSK 2.0?`,tv=()=>`故事是按 HSK 3.0 还是 2.0 写的?`,nv=()=>`Truyện được viết theo HSK 3.0 hay HSK 2.0?`,rv=()=>`เขียนตาม HSK 3.0 หรือ HSK 2.0?`,iv=((e={},t={})=>{let n=t.locale??s();return n===`en`?ev(e):n===`zh`?tv(e):n===`vi`?nv(e):rv(e)}),av=()=>`How many stories are there?`,ov=()=>`现在有多少篇故事?`,sv=()=>`Hiện có bao nhiêu truyện?`,cv=()=>`มีนิทานทั้งหมดกี่เรื่อง?`,lv=((e={},t={})=>{let n=t.locale??s();return n===`en`?av(e):n===`zh`?ov(e):n===`vi`?sv(e):cv(e)}),uv=()=>`Is there audio?`,dv=()=>`有音频吗?`,fv=()=>`Có audio không?`,pv=()=>`มีเสียงประกอบไหม?`,mv=((e={},t={})=>{let n=t.locale??s();return n===`en`?uv(e):n===`zh`?dv(e):n===`vi`?fv(e):pv(e)}),hv=()=>`Why not just read real Chinese?`,gv=()=>`为什么不直接读真实的中文材料?`,_v=()=>`Sao không đọc tiếng Trung thật luôn?`,vv=()=>`ทำไมไม่อ่านภาษาจีนของจริงไปเลย?`,yv=((e={},t={})=>{let n=t.locale??s();return n===`en`?hv(e):n===`zh`?gv(e):n===`vi`?_v(e):vv(e)}),bv=()=>`Not quite.`,xv=()=>`不太对。`,Sv=()=>`Chưa đúng.`,Cv=()=>`ยังไม่ค่อยถูก`,wv=((e={},t={})=>{let n=t.locale??s();return n===`en`?bv(e):n===`zh`?xv(e):n===`vi`?Sv(e):Cv(e)}),Tv=()=>`Larger text`,Ev=()=>`字号调大`,Dv=()=>`Chữ to hơn`,Ov=()=>`ขยายตัวอักษร`,kv=((e={},t={})=>{let n=t.locale??s();return n===`en`?Tv(e):n===`zh`?Ev(e):n===`vi`?Dv(e):Ov(e)}),Av=e=>`Free ${e?.label} Chinese stories written inside the HSK 3.0 word list, in short chapters with tap-to-look-up pinyin and meaning, sentence translations and questions.`,jv=e=>`免费的 ${e?.label} 中文故事,按 HSK 3.0 词表写成,分章阅读,点词看拼音和释义,配整句翻译和阅读理解题。`,Mv=e=>`Truyện tiếng Trung ${e?.label} miễn phí, viết trong phạm vi từ vựng HSK 3.0, chia thành các chương ngắn, chạm để tra pinyin và nghĩa, kèm dịch câu và câu hỏi.`,Nv=e=>`นิทานภาษาจีน ${e?.label} ฟรี เขียนขึ้นภายในคลังคำศัพท์ HSK 3.0 แบ่งเป็นบทสั้น ๆ แตะคำเพื่อดูพินอินและความหมาย พร้อมคำแปลประโยคและคำถาม`,Pv=((e,t={})=>{let n=t.locale??s();return n===`en`?Av(e):n===`zh`?jv(e):n===`vi`?Mv(e):Nv(e)}),Fv=e=>`${e?.label} Stories — Graded Chinese Reading, Tap Any Word | HSKWin`,Iv=e=>`${e?.label} 分级故事——中文分级阅读,点词即查 | HSKWin`,Lv=e=>`Truyện ${e?.label} — Đọc tiếng Trung phân cấp, chạm để tra từ | HSKWin`,Rv=e=>`นิทาน ${e?.label} — การอ่านภาษาจีนแบ่งระดับ แตะคำใดก็ได้ | HSKWin`,zv=((e,t={})=>{let n=t.locale??s();return n===`en`?Fv(e):n===`zh`?Iv(e):n===`vi`?Lv(e):Rv(e)}),Bv=e=>`${e?.label} Stories`,Vv=e=>`${e?.label} 分级故事`,Hv=e=>`Truyện ${e?.label}`,Uv=e=>`นิทาน ${e?.label}`,Wv=((e,t={})=>{let n=t.locale??s();return n===`en`?Bv(e):n===`zh`?Vv(e):n===`vi`?Hv(e):Uv(e)}),Gv=()=>`Listen`,Kv=()=>`朗读`,qv=()=>`Nghe`,Jv=()=>`ฟัง`,Yv=((e={},t={})=>{let n=t.locale??s();return n===`en`?Gv(e):n===`zh`?Kv(e):n===`vi`?qv(e):Jv(e)}),Xv=()=>`Resume`,Zv=()=>`继续`,Qv=()=>`Tiếp tục`,$v=()=>`เล่นต่อ`,ey=((e={},t={})=>{let n=t.locale??s();return n===`en`?Xv(e):n===`zh`?Zv(e):n===`vi`?Qv(e):$v(e)}
12),ty=e=>`Words you looked up (${e?.count})`,ny=e=>`查过的词(${e?.count})`,ry=e=>`Từ bạn đã tra (${e?.count})`,iy=e=>`คำที่คุณค้นแล้ว (${e?.count})`,ay=((e,t={})=>{let n=t.locale??s();return n===`en`?ty(e):n===`zh`?ny(e):n===`vi`?ry(e):iy(e)}),oy=()=>`None yet. Tap a word you don’t know.`,sy=()=>`还没有。点一个你不认识的词试试。`,cy=()=>`Chưa có từ nào. Hãy chạm vào một từ bạn chưa biết.`,ly=()=>`ยังไม่มี ลองแตะคำที่คุณไม่รู้จัก`,uy=((e={},t={})=>{let n=t.locale??s();return n===`en`?oy(e):n===`zh`?sy(e):n===`vi`?cy(e):ly(e)}),dy=()=>`Free graded Chinese stories for every HSK level, written inside the HSK 3.0 word list. Tap any word for pinyin, meaning and audio, translate sentences, and save words to flashcards.`,fy=()=>`免费的 HSK 分级中文故事,每个级别都按 HSK 3.0 词表写成。点任意一个词看拼音、释义、发音;整句翻译;生词一键加入闪卡。`,py=()=>`Truyện tiếng Trung phân cấp miễn phí cho mọi bậc HSK, viết trong phạm vi từ vá»±ng HSK 3.0. Chạm vào từ bất kỳ để xem pinyin, nghÄ©a và nghe phát âm, dịch câu, và lưu từ vào flashcard.`,my=()=>`นิทานภาษาจีนแบ่งระดับฟรีสำหรับทุกระดับ HSK เขียนขึ้นภายในคลังคำศัพท์ HSK 3.0 แตะคำใดก็ได้เพื่อดูพินอิน ความหมาย และเสียงอ่าน แปลประโยค และบันทึกคำลงแฟลชการ์ด`,hy=((e={},t={})=>{let n=t.locale??s();return n===`en`?dy(e):n===`zh`?fy(e):n===`vi`?py(e):my(e)}),gy=()=>`Learn Chinese Through Stories — Graded HSK 1–9 Stories, Tap Any Word | HSKWin`,_y=()=>`读故事学中文——HSK 1–9 分级故事,点词即查 | HSKWin`,vy=()=>`Học tiếng Trung qua truyện — Truyện phân cấp HSK 1–9, chạm để tra từ | HSKWin`,yy=()=>`เรียนภาษาจีนผ่านนิทาน — นิทานแบ่งระดับ HSK 1–9 แตะคำใดก็ได้ | HSKWin`,by=((e={},t={})=>{let n=t.locale??s();return n===`en`?gy(e):n===`zh`?_y(e):n===`vi`?vy(e):yy(e)}),xy=e=>`${e?.count} min`,Sy=e=>`${e?.count} 分钟`,Cy=e=>`${e?.count} phút`,wy=e=>`${e?.count} นาที`,Ty=((e,t={})=>{let n=t.locale??s();return n===`en`?xy(e):n===`zh`?Sy(e):n===`vi`?Cy(e):wy(e)}),Ey=()=>`Stories`,Dy=()=>`分级故事`,Oy=()=>`Truyện`,ky=()=>`นิทาน`,Ay=((e={},t={})=>{let n=t.locale??s();return n===`en`?Ey(e):n===`zh`?Dy(e):n===`vi`?Oy(e):ky(e)}),jy=()=>`Pause`,My=()=>`暂停`,Ny=()=>`Tạm dừng`,Py=()=>`หยุดชั่วคราว`,Fy=((e={},t={})=>{let n=t.locale??s();return n===`en`?jy(e):n===`zh`?My(e):n===`vi`?Ny(e):Py(e)}),Iy=()=>`Pinyin`,Ly=()=>`拼音`,Ry=()=>`Pinyin`,zy=()=>`พินอิน`,By=((e={},t={})=>{let n=t.locale??s();return n===`en`?Iy(e):n===`zh`?Ly(e):n===`vi`?Ry(e):zy(e)}),Vy=()=>`Play sentence`,Hy=()=>`朗读这一句`,Uy=()=>`Phát câu này`,Wy=()=>`อ่านออกเสียงประโยคนี้`,Gy=((e={},t={})=>{let n=t.locale??s();return n===`en`?Vy(e):n===`zh`?Hy(e):n===`vi`?Uy(e):Wy(e)}),Ky=()=>`Answer from the chapter. Tap any word in a question to look it up.`,qy=()=>`根据本章内容作答。题目里的词也可以点开查。`,Jy=()=>`Trả lời dá»±a trên nội dung chương. Chạm vào bất kỳ từ nào trong câu hỏi để tra nghÄ©a.`,Yy=()=>`ตอบคำถามจากเนื้อหาในบทนี้ แตะคำใดในคำถามก็ได้เพื่อค้นหาความหมาย`,Xy=((e={},t={})=>{let n=t.locale??s();return n===`en`?Ky(e):n===`zh`?qy(e):n===`vi`?Jy(e):Yy(e)}),Zy=()=>`Check your understanding`,Qy=()=>`检查一下你的理解`,$y=()=>`Kiểm tra mức độ hiểu bài`,eb=()=>`ตรวจสอบความเข้าใจของคุณ`,tb=((e={},t={})=>{let n=t.locale??s();return n===`en`?Zy(e):n===`zh`?Qy(e):n===`vi`?$y(e):eb(e)}),nb=()=>`Save all to flashcards`,rb=()=>`全部加入闪卡`,ib=()=>`Lưu tất cả vào flashcard`,ab=()=>`บันทึกทั้งหมดลงแฟลชการ์ด`,ob=((e={},t={})=>{let n=t.locale??s();return n===`en`?nb(e):n===`zh`?rb(e):n===`vi`?ib(e):ab(e)}),sb=()=>`All saved to flashcards`,cb=()=>`已全部加入闪卡`,lb=()=>`Đã lưu tất cả vào flashcard`,ub=()=>`บันทึกลงแฟลชการ์ดทั้งหมดแล้ว`,db=((e={},t={})=>{let n=t.locale??s();return n===`en`?sb(e):n===`zh`?cb(e):n===`vi`?lb(e):ub(e)}),fb=()=>`Smaller text`,pb=()=>`字号调小`,mb=()=>`Chữ nhỏ hÆ¡n`,hb=()=>`ย่อตัวอักษร`,gb=((e={},t={})=>{let n=t.locale??s();return n===`en`?fb(e):n===`zh`?pb(e):n===`vi`?mb(e):hb(e)}),_b=()=>`Reading speed`,vb=()=>`语速`,yb=()=>`Tốc độ đọc`,bb=()=>`ความเร็วในการอ่าน`,xb=((e={},t={})=>{let n=t.locale??s();return n===`en`?_b(e):n===`zh`?vb(e):n===`vi`?yb(e):bb(e)}),Sb=e=>`${e?.zh} (${e?.en}) — ${e?.label} Chinese Story | HSKWin`,Cb=e=>`${e?.zh}(${e?.en})——${e?.label} 中文分级故事 | HSKWin`,wb=e=>`${e?.zh} (${e?.en}) — Truyện tiếng Trung ${e?.label} | HSKWin`,Tb=e=>`${e?.zh} (${e?.en}) — นิทานภาษาจีน ${e?.label} | HSKWin`,Eb=((e,t={})=>{let n=t.locale??s();return n===`en`?Sb(e):n===`zh`?Cb(e):n===`vi`?wb(e):Tb(e)}),Db=()=>`Story text. Click any word to look it up; the arrow keys move between words.`,Ob=()=>`故事正文。点击任意词语查看释义;方向键可在词语之间移动。`,kb=()=>`Nội dung truyện. Nhấp vào từ bất kỳ để tra nghÄ©a; dùng phím mÅ©i tên để chuyển giữa các từ.`,Ab=()=>`เนื้อเรื่อง คลิกคำใดก็ได้เพื่อค้นหาความหมาย ใช้ปุ่มลูกศรเพื่อเลื่อนระหว่างคำ`,jb=((e={},t={})=>{let n=t.locale??s();return n===`en`?Db(e):n===`zh`?Ob(e):n===`vi`?kb(e):Ab(e)}),Mb=()=>`Text size`,Nb=()=>`字号`,Pb=()=>`Cỡ chữ`,Fb=()=>`ขนาดตัวอักษร`,Ib=((e={},t={})=>{let n=t.locale??s();return n===`en`?Mb(e):n===`zh`?Nb(e):n===`vi`?Pb(e):Fb(e)}),Lb=()=>`Learn Chinese Through Stories`,Rb=()=>`读故事学中文`,zb=()=>`Học tiếng Trung qua truyện`,Bb=()=>`เรียนภาษาจีนผ่านนิทาน`,Vb=((e={},t={})=>{let n=t.locale??s();return n===`en`?Lb(e):n===`zh`?Rb(e):n===`vi`?zb(e):Bb(e)}),Hb=()=>`HSK 3.0 vocabulary lists for all 9 levels: the 11,000 words of the official syllabus, with pinyin, part of speech, English meanings and audio. Free.`,Ub=()=>`HSK 3.0 词汇表,覆盖全部 9 个级别:官方考试大纲的 11,000 个词,附拼音、词性、英文释义和发音,按级别分页,免费浏览。`,Wb=()=>`Danh sách từ vá»±ng HSK 3.0 cho cả 9 cấp độ: 11.000 từ trong đại cương chính thức, kèm pinyin, từ loại, nghÄ©a tiếng Anh và audio. Miá»
12…n phí.`,Gb=()=>`รายการคำศัพท์ HSK 3.0 สำหรับทั้ง 9 ระดับ: คำศัพท์ 11,000 คำจากหลักสูตรทางการ พร้อมพินอิน ชนิดของคำ ความหมายภาษาอังกฤษ และเสียงอ่าน ฟรี`,Kb=((e={},t={})=>{let n=t.locale??s();return n===`en`?Hb(e):n===`zh`?Ub(e):n===`vi`?Wb(e):Gb(e)}),qb=()=>`HSK 3.0 Vocabulary Lists — All 9 Levels | HSKWin`,Jb=()=>`HSK 3.0 词汇表 — 1–9 级全部词汇 | HSKWin`,Yb=()=>`Danh Sách Từ Vá»±ng HSK 3.0 — Đủ 9 Cấp Độ | HSKWin`,Xb=()=>`รายการคำศัพท์ HSK 3.0 — ครบทั้ง 9 ระดับ | HSKWin`,Zb=((e={},t={})=>{let n=t.locale??s();return n===`en`?qb(e):n===`zh`?Jb(e):n===`vi`?Yb(e):Xb(e)}),Qb=e=>`${e?.label} Vocabulary List — ${e?.count} Words with Pinyin & Audio | HSKWin`,$b=e=>`${e?.label}词汇表 — ${e?.count} 词,带拼音和发音 | HSKWin`,ex=e=>`Danh Sách Từ Vá»±ng ${e?.label} — ${e?.count} Từ Kèm Pinyin & Audio | HSKWin`,tx=e=>`รายการคำศัพท์ ${e?.label} — ${e?.count} คำ พร้อมพินอินและเสียงอ่าน | HSKWin`,nx=((e,t={})=>{let n=t.locale??s();return n===`en`?Qb(e):n===`zh`?$b(e):n===`vi`?ex(e):tx(e)}),rx=()=>`Play pronunciation`,ix=()=>`朗读`,ax=()=>`Nghe phát âm`,ox=()=>`เล่นเสียงอ่าน`,sx=((e={},t={})=>{let n=t.locale??s();return n===`en`?rx(e):n===`zh`?ix(e):n===`vi`?ax(e):ox(e)}),cx=()=>`HSK 3.0 vocabulary lists: 11,000 words across 9 levels`,lx=()=>`HSK 3.0 词汇表:9 个级别,11,000 个词`,ux=()=>`Danh sách từ vá»±ng HSK 3.0: 11.000 từ trải đều 9 cấp độ`,dx=()=>`รายการคำศัพท์ HSK 3.0: 11,000 คำ ครอบคลุม 9 ระดับ`,fx=((e={},t={})=>{let n=t.locale??s();return n===`en`?cx(e):n===`zh`?lx(e):n===`vi`?ux(e):dx(e)}),px=()=>`Listening`,mx=()=>`听力`,hx=()=>`Nghe`,gx=()=>`การฟัง`,_x=((e={},t={})=>{let n=t.locale??s();return n===`en`?px(e):n===`zh`?mx(e):n===`vi`?hx(e):gx(e)}),vx=()=>`Reading`,yx=()=>`阅读`,bx=()=>`Đọc`,xx=()=>`การอ่าน`,Sx=((e={},t={})=>{let n=t.locale??s();return n===`en`?vx(e):n===`zh`?yx(e):n===`vi`?bx(e):xx(e)}),Cx=()=>`Writing`,wx=()=>`书写`,Tx=()=>`Viết`,Ex=()=>`การเขียน`,Dx=((e={},t={})=>{let n=t.locale??s();return n===`en`?Cx(e):n===`zh`?wx(e):n===`vi`?Tx(e):Ex(e)}),Ox=()=>`Translation`,kx=()=>`翻译`,Ax=()=>`Dịch`,jx=()=>`การแปล`,Mx=((e={},t={})=>{let n=t.locale??s();return n===`en`?Ox(e):n===`zh`?kx(e):n===`vi`?Ax(e):jx(e)}),Nx=()=>`Speaking`,Px=()=>`口语`,Fx=()=>`Nói`,Ix=()=>`การพูด`,Lx=((e={},t={})=>{let n=t.locale??s();return n===`en`?Nx(e):n===`zh`?Px(e):n===`vi`?Fx(e):Ix(e)}),Rx=e=>`HSK ${e?.level} Mock Test Paper ${e?.n}`,zx=e=>`HSK(${e?.level}级)全真模拟题${e?.n}`,Bx=e=>`Đề thi thá»­ HSK ${e?.level} – Đề ${e?.n}`,Vx=e=>`ข้อสอบจำลอง HSK ระดับ ${e?.level} – ชุดที่ ${e?.n}`,Hx=((e,t={})=>{let n=t.locale??s();return n===`en`?Rx(e):n===`zh`?zx(e):n===`vi`?Bx(e):Vx(e)}),Ux=()=>`Read HSKWin in English?`,Wx=()=>`要用中文浏览 HSKWin 吗?`,Gx=()=>`Xem HSKWin bằng tiếng Việt?`,Kx=()=>`ดู HSKWin เป็นภาษาไทยไหม?`,qx=((e={},t={})=>{let n=t.locale??s();return n===`en`?Ux(e):n===`zh`?Wx(e):n===`vi`?Gx(e):Kx(e)}),Jx=()=>`Switch to English`,Yx=()=>`切换到中文`,Xx=()=>`Chuyển sang tiếng Việt`,Zx=()=>`เปลี่ยนเป็นภาษาไทย`,Qx=((e={},t={})=>{let n=t.locale??s();
12return n===`en`?Jx(e):n===`zh`?Yx(e):n===`vi`?Xx(e):Zx(e)}),$x=()=>`No thanks`,eS=()=>`不用了`,tS=()=>`Không, cảm ơn`,nS=()=>`ไม่เป็นไร`,rS=((e={},t={})=>{let n=t.locale??s();return n===`en`?$x(e):n===`zh`?eS(e):n===`vi`?tS(e):nS(e)}),iS=()=>`HSK 3.0 Mock Test`,aS=()=>`HSK 3.0 模拟考`,oS=()=>`Đề thi thử HSK 3.0`,sS=()=>`ข้อสอบจำลอง HSK 3.0`,cS=((e={},t={})=>{let n=t.locale??s();return n===`en`?iS(e):n===`zh`?aS(e):n===`vi`?oS(e):sS(e)}),lS=e=>`Level ${e?.n}`,uS=e=>`${e?.n} 级`,dS=e=>`Cấp ${e?.n}`,fS=e=>`ระดับ ${e?.n}`,pS=((e,t={})=>{let n=t.locale??s();return n===`en`?lS(e):n===`zh`?uS(e):n===`vi`?dS(e):fS(e)}),mS=e=>`${e?.label} Mock Test Online — Timed, Scored & Explained | HSKWin`,hS=e=>`${e?.label} 模拟考在线 — 真实计时、即时出分、逐题解析 | HSKWin`,gS=e=>`${e?.label} — Đề Thi Thử Trực Tuyến, Tính Giờ Thật, Có Chấm Điểm & Giải Thích | HSKWin`,_S=e=>`ข้อสอบจำลอง ${e?.label} ออนไลน์ — จับเวลาจริง ให้คะแนน พร้อมเฉลย | HSKWin`,vS=((e,t={})=>{let n=t.locale??s();return n===`en`?mS(e):n===`zh`?hS(e):n===`vi`?gS(e):_S(e)}),yS=e=>`Sit the ${e?.label} mock test online on the real ${e?.minutes}-minute clock, scored instantly. Built for HSK 3.0 ${e?.word}, with a free preview of every part.`,bS=e=>`在线做 ${e?.label} 模拟考,按真实 ${e?.minutes} 分钟计时,交卷即出分。专为 HSK 3.0 ${e?.word}编写,每一项的第一题及解析可免费试做。`,xS=e=>`Làm đề thi thử ${e?.label} trực tuyến với đồng hồ tính giờ thật ${e?.minutes} phút, ra điểm ngay lập tức. Biên soạn theo HSK 3.0 ${e?.word}, có bản xem trước miễn phí cho mỗi phần.`,SS=e=>`ทำข้อสอบจำลอง ${e?.label} ออนไลน์ด้วยเวลาจริง ${e?.minutes} นาที ให้คะแนนทันที จัดทำตาม HSK 3.0 ${e?.word} พร้อมตัวอย่างฟรีในทุกส่วน`,CS=((e,t={})=>{let n=t.locale??s();return n===`en`?yS(e):n===`zh`?bS(e):n===`vi`?xS(e):SS(e)}),wS=e=>`${e?.label} mock tests for HSK 3.0 are coming. See what the 2026 syllabus fixes: a ${e?.words}-word target, a ${e?.minutes}-minute exam, the question types in order and how they are scored.`,TS=e=>`${e?.label} 模拟考(HSK 3.0)即将上线。先查看 2026 年大纲规定的 ${e?.words} 词、${e?.minutes} 分钟考试时长、题型顺序与计分方式。`,ES=e=>`Đề thi thử ${e?.label} theo HSK 3.0 sắp ra mắt. Xem trước những gì giáo trình 2026 đã quy định: mục tiêu ${e?.words} từ, thời gian thi ${e?.minutes} phút, thứ tự dạng câu hỏi và cách tính điểm.`,DS=e=>`ข้อสอบจำลอง ${e?.label} ตาม HSK 3.0 กำลังจะมา ดูสิ่งที่หลักสูตรปี 2026 กำหนดไว้: เป้าหมายคำศัพท์ ${e?.words} คำ เวลาสอบ ${e?.minutes} นาที ลำดับรูปแบบคำถาม และวิธีให้คะแนน`,OS=((e,t={})=>{let n=t.locale??s();return n===`en`?wS(e):n===`zh`?TS(e):n===`vi`?ES(e):DS(e)}),kS=e=>`${e?.label} mock test`,AS=e=>`${e?.label} 模拟考`,jS=e=>`Đề thi thử ${e?.label}`,MS=e=>`ข้อสอบจำลอง ${e?.label}`,NS=((e,t={})=>{let n=t.locale??s();return n===`en`?kS(e):n===`zh`?AS(e):n===`vi`?jS(e):MS(e)}),PS=e=>`How long is the ${e?.L} exam?`,FS=e=>`${e?.L} 考试要多长时间?`,IS=e=>`Kỳ thi ${e?.L} kéo dài bao lâu?`,LS=e=>`ข้อสอบ ${e?.L} ใช้เวลานานแค่ไหน`,RS=((e,t={})=>{let n=t.locale??s();return n===`en`?PS(e):n===`zh`?FS(e):n===`vi`?IS(e):LS(e)}),zS=e=>`About ${e?.minutes} minutes, including the time to fill in your details: ${e?.times}.`,BS=e=>`约 ${e?.minutes} 分钟,含填写个人信息的时间:${e?.times}。`,VS=e=>`Khoảng ${e?.minutes} phút, đã tính cả thời gian điền thông tin cá nhân: ${e?.times}.`,HS=e=>`ประมาณ ${e?.minutes} นาที รวมเวลากรอกข้อมูลส่วนตัว: ${e?.times}`,US=((e,t={})=>{let n=t.locale??s();return n===`en`?zS(e):n===`zh`?BS(e):n===`vi`?VS(e):HS(e)}),WS=e=>` The speaking test is sat separately and takes about ${e?.speaking} minutes more.`,GS=e=>`口语考试另外单独进行,约 ${e?.speaking} 分钟。`,KS=e=>` Phần thi nói được tổ chức riêng, mất thêm khoảng ${e?.speaking} phút.`,qS=e=>` การสอบพูดจะจัดแยกต่างหาก ใช้เวลาเพิ่มอีกประมาณ ${e?.speaking} นาที`,JS=((e,t={})=>{let n=t.locale??s();return n===`en`?WS(e):n===`zh`?GS(e):n===`vi`?KS(e):qS(e)}),YS=e=>`How many questions are on ${e?.L}?`,XS=e=>`${e?.L}
12 一共有多少道题?`,ZS=e=>`${e?.L} có bao nhiêu câu hỏi?`,QS=e=>`${e?.L} มีกี่ข้อ`,$S=((e,t={})=>{let n=t.locale??s();return n===`en`?YS(e):n===`zh`?XS(e):n===`vi`?ZS(e):QS(e)}),eC=e=>`${e?.count} questions: ${e?.counts}.`,tC=e=>`${e?.count} 题:${e?.counts}。`,nC=e=>`${e?.count} câu: ${e?.counts}.`,rC=e=>`${e?.count} ข้อ: ${e?.counts}`,iC=((e,t={})=>{let n=t.locale??s();return n===`en`?eC(e):n===`zh`?tC(e):n===`vi`?nC(e):rC(e)}),aC=e=>`What score do I need to pass ${e?.L}?`,oC=e=>`${e?.L} 考多少分算通过?`,sC=e=>`Cần bao nhiêu điểm để đạt ${e?.L}?`,cC=e=>`ต้องได้คะแนนเท่าไรถึงจะผ่าน ${e?.L}`,lC=((e,t={})=>{let n=t.locale??s();return n===`en`?aC(e):n===`zh`?oC(e):n===`vi`?sC(e):cC(e)}),uC=e=>`There is no pass mark. The paper is out of ${e?.total}, and your result places you at level 7, 8 or 9.`,dC=e=>`没有合格线。满分 ${e?.total},成绩决定你落在七级、八级还是九级。`,fC=e=>`Không có điểm đạt/rớt. Bài thi có tổng điểm ${e?.total}, kết quả sẽ xếp bạn vào cấp 7, 8 hoặc 9.`,pC=e=>`ไม่มีเกณฑ์ผ่าน ข้อสอบเต็ม ${e?.total} คะแนน ผลคะแนนจะจัดคุณเข้าสู่ระดับ 7, 8 หรือ 9`,mC=((e,t={})=>{let n=t.locale??s();return n===`en`?uC(e):n===`zh`?dC(e):n===`vi`?fC(e):pC(e)}),hC=e=>`${e?.pass} out of ${e?.total}, which is 60% of the total. Each section is marked out of 100.`,gC=e=>`满分 ${e?.total},${e?.pass} 分合格,即总分的 60%。每个部分满分 100。`,_C=e=>`${e?.pass} trên tổng ${e?.total} điểm, tức 60% tổng điểm. Mỗi phần tính điểm trên thang 100.`,vC=e=>`${e?.pass} จาก ${e?.total} คะแนน คิดเป็น 60% ของคะแนนเต็ม แต่ละส่วนเต็ม 100 คะแนน`,yC=((e,t={})=>{let n=t.locale??s();return n===`en`?hC(e):n===`zh`?gC(e):n===`vi`?_C(e):vC(e)}),bC=()=>`Is it free to use?`,xC=()=>`可以免费使用吗?`,SC=()=>`Có miễn phí không?`,CC=()=>`ใช้ฟรีได้ไหม`,wC=((e={},t={})=>{let n=t.locale??s();return n===`en`?bC(e):n===`zh`?xC(e):n===`vi`?SC(e):CC(e)}),TC=()=>`Previewing any paper — the first question of each section, with the answer and explanation — is free and needs no account. Every account can also sit one whole paper on the clock free and get its score; the question-by-question review and more sittings are part of a paid plan.`,EC=()=>`每套卷都能免费预览:每一项(听力、阅读等)的第一题,含答案和解析,不用注册。每个账号还能按真实计时免费完整考一套并拿到分数;逐题解析和更多次计时模考属于付费套餐。`,DC=()=>`Xem trước bất kỳ đề nào cũng miễn phí và không cần tài khoản — câu đầu tiên của mỗi phần, kèm đáp án và giải thích. Mỗi tài khoản còn được làm trọn một đề theo giờ thi thật miễn phí và nhận điểm; bài chữa từng câu và các lượt thi tiếp theo là một phần của gói trả phí.`,OC=()=>`ดูตัวอย่างข้อสอบชุดใดก็ได้ฟรีโดยไม่ต้องมีบัญชี — ข้อแรกของแต่ละส่วน พร้อมเฉลยและคำอธิบาย ทุกบัญชียังทำข้อสอบเต็มชุดแบบจับเวลาจริงได้ฟรี 1 ครั้งพร้อมคะแนน ส่วนเฉลยรายข้อและการสอบครั้งต่อไปอยู่ในแพ็กเกจแบบชำระเงิน`,kC=((e={},t={})=>{let n=t.locale??s();return n===`en`?TC(e):n===`zh`?EC(e):n===`vi`?DC(e):OC(e)}),AC=()=>`Can I sit the same paper twice?`,jC=()=>`同一套卷可以做两次吗?`,MC=()=>`Tôi có thể làm lại cùng một đề không?`,NC=()=>`ทำข้อสอบชุดเดิมซ้ำได้ไหม`,PC=((e={},t={})=>{let n=t.locale??s();return n===`en`?AC(e):n===`zh`?jC(e):n===`vi`?MC(e):NC(e)}),FC=()=>`Yes. Sitting a paper again starts a fresh attempt and uses one sitting from your plan. Going back to a sitting you left unfinished does not.`,IC=()=>`可以。再做一次会开一场新的考试,占用套餐里的一次模考;回到之前没做完的那一场继续,不算新的一次。`,LC=()=>`Có. Làm lại một đề sẽ bắt đầu một lượt thi mới và tính vào số lượt trong gói của bạn; quay lại một lượt thi dang dở thì không tính là lượt mới.`,RC=()=>`ได้ การทำข้อสอบซ้ำจะเริ่มการสอบใหม่และนับเป็นหนึ่งครั้งในแพ็กเกจของคุณ ส่วนการกลับไปทำต่อจากครั้งที่ค้างไว้ไม่นับเป็นครั้งใหม่`,zC=((e={},t={})=>{let n=t.locale??s();return n===`en`?FC(e):n===`zh`?IC(e):n===`vi`?LC(e):RC(e)}),BC=e=>`Does it include the ${e?.L} speaking test?`,VC=e=>`包括 ${e?.L} 口语考试吗?`,HC=e=>`Có bao gồm phần thi nói của ${e?.L} không?`,UC=e=>`รวมการสอบพูดของ ${e?.L} ด้วยไหม`,WC=((e,t={})=>{let n=t.locale??s();return n===`en`?BC(e):n===`zh`?VC(e):n===`vi`?HC(e):UC(e)}),GC=e=>`No. Under HSK 3.0 the ${e?.speaking}-minute speaking test is registered with the written exam but sat separately, so the papers here cover the written exam. Speaking can be practised and scored on its own.`,KC=e=>`不包括。HSK 3.0 下,约 ${e?.speaking} 分钟的口语考试和笔试一起报名、分开考,这里的卷子对应的是笔试。口语可以在口语练习里单独练、单独评分。`,qC=e=>`Không. Theo HSK 3.0, phần thi nói khoảng ${e?.speaking} phút được đăng ký cùng bài thi viết nhưng thi riêng, nên các đề ở đây chỉ là bài thi viết. Bạn có thể luyện và chấm điểm phần nói riêng.`,JC=e=>`ไม่รวม ภายใต้ HSK 3.0 การสอบพูดประมาณ ${e?.speaking} นาที ลงทะเบียนพร้อมข้อสอบข้อเขียนแต่สอบแยกกัน ข้อสอบที่นี่ครอบคลุมเฉพาะข้อเขียน ส่วนการพูดสามารถฝึกและให้คะแนนแยกต่างหากได้`,YC=((e,t={})=>{let n=t.locale??s();return n===`en`?GC(e):n===`zh`?KC(e):n===`vi`?qC(e):JC(e)}),XC=()=>`Does it include the speaking section?`,ZC=()=>`包括口语部分吗?`,QC=()=>`Có bao gồm phần thi nói không?`,$C=()=>`รวมส่วนการพูดด้วยไหม`,ew=((e={},t={})=>{let n=t.locale??s();return n===`en`?XC(e):n===`zh`?ZC(e):n===`vi`?QC(e):$C(e)}),tw=()=>`Yes. Speaking is one of the five sections of the 7–9 paper and is sat in the same session. Your answers are transcribed and marked against a rubric; the recording is not kept.`,nw=()=>
12`包括。口语是 7–9 级这套卷的五个部分之一,在同一场考试里完成。你的回答会被转写成文字,再按评分标准批改,录音不会保存。`,rw=()=>`Có. Phần nói là một trong năm phần của đề 7–9 và được thi trong cùng một buổi. Câu trả lời của bạn sẽ được chuyển thành văn bản rồi chấm theo tiêu chí; bản ghi âm không được lưu lại.`,iw=()=>`รวม การพูดเป็นหนึ่งในห้าส่วนของข้อสอบระดับ 7–9 และสอบในคราวเดียวกัน คำตอบของคุณจะถูกถอดเป็นข้อความแล้วตรวจตามเกณฑ์ ไม่มีการเก็บบันทึกเสียงไว้`,aw=((e={},t={})=>{let n=t.locale??s();return n===`en`?tw(e):n===`zh`?nw(e):n===`vi`?rw(e):iw(e)}),ow=()=>`Are these official past papers?`,sw=()=>`这些是官方真题吗?`,cw=()=>`Đây có phải đề thi chính thức không?`,lw=()=>`นี่คือข้อสอบจริงของทางการหรือไม่`,uw=((e={},t={})=>{let n=t.locale??s();return n===`en`?ow(e):n===`zh`?sw(e):n===`vi`?cw(e):lw(e)}),dw=()=>`No. CTI has not released any HSK 3.0 past papers, so these are practice papers written to the 3.0 syllabus and to the structure of CTI’s official sample paper.`,fw=()=>`不是。汉考国际没有公开发布过 HSK 3.0 的真题,所以这些是按 3.0 大纲、依照官方样卷的结构编写的练习卷。`,pw=()=>`Không. Hán Ban chưa công bố đề thi thật nào của HSK 3.0, nên đây là các đề luyện tập được biên soạn theo giáo trình 3.0 và cấu trúc đề mẫu chính thức.`,mw=()=>`ไม่ใช่ ฮั่นปั้นยังไม่ได้เผยแพร่ข้อสอบจริงของ HSK 3.0 ข้อสอบเหล่านี้จึงเป็นข้อสอบฝึกฝนที่จัดทำตามหลักสูตร 3.0 และโครงสร้างข้อสอบตัวอย่างที่เป็นทางการ`,hw=((e={},t={})=>{let n=t.locale??s();return n===`en`?dw(e):n===`zh`?fw(e):n===`vi`?pw(e):mw(e)}),gw=e=>`${e?.title} — Free Question Preview | HSKWin`,_w=e=>`${e?.title} — 免费预览部分题目与解析 | HSKWin`,vw=e=>`${e?.title} — Xem Trước Miễn Phí Một Số Câu Hỏi | HSKWin`,yw=e=>`${e?.title} — ดูตัวอย่างข้อสอบบางข้อฟรี | HSKWin`,bw=((e,t={})=>{let n=t.locale??s();return n===`en`?gw(e):n===`zh`?_w(e):n===`vi`?vw(e):yw(e)}),xw=e=>`${e?.summary} Built to the 2026 HSK 3.0 syllabus. The first question of each section is free to try, with the answer and explanation, no account needed; sit the timed mock for the full paper.`,Sw=e=>`${e?.summary} 依据 2026 年 HSK 3.0 大纲编写。每一项的第一题可免费试做并查看答案和解析,不用注册;完整作答请进入计时模考。`,Cw=e=>`${e?.summary} Biên soạn theo giáo trình HSK 3.0 năm 2026. Câu đầu tiên của mỗi phần được xem trước miễn phí, kèm đáp án và giải thích, không cần tài khoản; hãy vào phần thi thử tính giờ để làm trọn đề.`,ww=e=>`${e?.summary} จัดทำตามหลักสูตร HSK 3.0 ปี 2026 ข้อแรกของแต่ละส่วนสามารถลองทำได้ฟรี พร้อมเฉลยและคำอธิบาย ไม่ต้องมีบัญชี ส่วนการทำเต็มชุดให้เข้าไปที่ข้อสอบจำลองแบบจับเวลา`,Tw=((e,t={})=>{let n=t.locale??s();return n===`en`?xw(e):n===`zh`?Sw(e):n===`vi`?Cw(e):ww(e)}),Ew=()=>`HSK Mock Test Online — Timed, Scored, All 9 Levels | HSKWin`,Dw=()=>`HSK 模拟考在线 — 真实计时、即时出分,1–9 级 | HSKWin`,Ow=()=>`Đề Thi Thử HSK Trực Tuyến — Tính Giờ, Có Điểm, Đủ 9 Cấp | HSKWin`,kw=()=>`ข้อสอบจำลอง HSK ออนไลน์ — จับเวลา ให้คะแนน ครบ 9 ระดับ | HSKWin`,Aw=((e={},t={})=>{let n=t.locale??s();return n===`en`?Ew(e):n===`zh`?Dw(e):n===`vi`?Ow(e):kw(e)}),jw=()=>`Sit an HSK mock test online under real exam timing and get an instant score. Built for HSK 3.0, levels 1–9 — every question, answer and explanation on the page.`,Mw=()=>`在线做 HSK 模拟考,按真实考试计时,交卷即出分。专为 HSK 3.0 一至九级编写,每道题、答案和解析都在页面上。`,Nw=()=>`Làm đề thi thử HSK trực tuyến theo đúng thời gian thi thật và nhận điểm ngay lập tức. Biên soạn cho HSK 3.0, cấp 1–9 — mọi câu hỏi, đáp án và giải thích đều có trên trang.`,Pw=()=>`ทำข้อสอบจำลอง HSK ออนไลน์ตามเวลาสอบจริงและรับคะแนนทันที จัดทำสำหรับ HSK 3.0 ระดับ 1–9 — ทุกข้อคำถาม คำตอบ และคำอธิบายอยู่ในหน้าเดียว`,Fw=((e={},t={})=>{let n=t.locale??s();return n===`en`?jw(e):n===`zh`?Mw(e):n===`vi`?Nw(e):Pw(e)}),Iw=e=>`${e?.label} mock test`,Lw=e=>`${e?.label} 模拟考`,Rw=e=>`Đề thi thử ${e?.label}`,zw=e=>`ข้อสอบจำลอง ${e?.label}`,Bw=((e,t={})=>{let n=t.locale??s();return n===`en`?Iw(e):n===`zh`?Lw(e):n===`vi`?Rw(e):zw(e)}),Vw=()=>`Which HSK level should I sit?`,Hw=()=>`我该考哪一级?`,Uw=()=>`Tôi nên thi cấp độ nào?`,Ww=()=>`ฉันควรสอบระดับไหน`,Gw=((e={},t={})=>{let n=t.locale??s();return n===`en`?Vw(e):n===`zh`?Hw(e):n===`vi`?Uw(e):Ww(e)}),Kw=()=>`If you are not sure, take the ten-question placement test first. It estimates your level from vocabulary and grammar and sends you to the paper that matches.`,qw=()=>`不确定的话,先做十道题的定级测试。它根据词汇和语法估计你的水平,再把你带到对应级别的卷子。`,Jw=()=>`Nếu chưa chắc chắn, hãy làm bài kiểm tra xếp lớp mười câu trước. Nó ước tính trình độ của bạn dựa trên từ vựng và ngữ pháp, rồi đưa bạn đến đề phù hợp.`,Yw=()=>`หากยังไม่แน่ใจ ให้ลองทำแบบทดสอบวัดระดับสิบข้อก่อน ระบบจะประเมินระดับของคุณจากคำศัพท์และไวยากรณ์ แล้วพาไปยังข้อสอบที่เหมาะสม`,Xw=((e={},t={})=>{let n=t.locale??s();return n===`en`?Kw(e):n===`zh`?qw(e):n===`vi`?Jw(e):Yw(e)}),Zw=()=>`Are these official HSK past papers?`,Qw=()=>
12`这些是 HSK 官方真题吗?`,$w=()=>`Đây có phải đề thi HSK chính thức không?`,eT=()=>`นี่คือข้อสอบ HSK จริงของทางการหรือไม่`,tT=((e={},t={})=>{let n=t.locale??s();return n===`en`?Zw(e):n===`zh`?Qw(e):n===`vi`?$w(e):eT(e)}),nT=()=>`No. CTI has not released any HSK 3.0 past papers, so these are practice papers written to the 3.0 syllabus and to the structure of CTI’s official sample papers.`,rT=()=>`不是。汉考国际没有公开发布过 HSK 3.0 的真题,所以这里的卷子是按 3.0 大纲、依照官方样卷的结构编写的练习卷。`,iT=()=>`Không. Hán Ban chưa công bố đề thi thật nào cá»§a HSK 3.0, nên các đề ở đây là đề luyện tập được biên soạn theo giáo trình 3.0 và cấu trúc đề mẫu chính thức.`,aT=()=>`ไม่ใช่ ฮั่นปั้นยังไม่ได้เผยแพร่ข้อสอบจริงของ HSK 3.0 ข้อสอบที่นี่จึงเป็นข้อสอบฝึกฝนที่จัดทำตามหลักสูตร 3.0 และโครงสร้างข้อสอบตัวอย่างที่เป็นทางการ`,oT=((e={},t={})=>{let n=t.locale??s();return n===`en`?nT(e):n===`zh`?rT(e):n===`vi`?iT(e):aT(e)}),sT=()=>`Is it free?`,cT=()=>`可以免费使用吗?`,lT=()=>`Có miễn phí không?`,uT=()=>`ใช้ฟรีได้ไหม`,dT=((e={},t={})=>{let n=t.locale??s();return n===`en`?sT(e):n===`zh`?cT(e):n===`vi`?lT(e):uT(e)}),fT=()=>`Previewing any paper — the first question of each section, with the answer and explanation — is free and needs no account. Every account can also sit one whole paper on the clock free and get its score; the question-by-question review and more sittings are part of a paid plan. One piece of writing practice a day is marked free.`,pT=()=>`每套卷都能免费预览:每一项(听力、阅读等)的第一题,含答案和解析,不用注册。每个账号还能按真实计时免费完整考一套并拿到分数;逐题解析和更多次计时模考属于付费套餐。写作练习每天可以免费批改一篇。`,mT=()=>`Xem trước bất kỳ đề nào cÅ©ng miễn phí và không cần tài khoản — câu đầu tiên cá»§a mỗi phần, kèm đáp án và giải thích. Mỗi tài khoản còn được làm trọn một đề theo giờ thi thật miễn phí và nhận điểm; bài chữa từng câu và các lượt thi tiếp theo là một phần cá»§a gói trả phí. Mỗi ngày được chấm miễn phí một bài luyện viết.`,hT=()=>`ดูตัวอย่างข้อสอบชุดใดก็ได้ฟรีโดยไม่ต้องมีบัญชี — ข้อแรกของแต่ละส่วน พร้อมเฉลยและคำอธิบาย ทุกบัญชียังทำข้อสอบเต็มชุดแบบจับเวลาจริงได้ฟรี 1 ครั้งพร้อมคะแนน ส่วนเฉลยรายข้อและการสอบครั้งต่อไปอยู่ในแพ็กเกจแบบชำระเงิน ฝึกเขียนได้รับการตรวจฟรีวันละหนึ่งชิ้น`,gT=((e={},t={})=>{let n=t.locale??s();return n===`en`?fT(e):n===`zh`?pT(e):n===`vi`?mT(e):hT(e)}),_T=()=>`How long does a paper take?`,vT=()=>`一套卷要做多久?`,yT=()=>`Một đề thi mất bao lâu?`,bT=()=>`ข้อสอบหนึ่งชุดใช้เวลานานแค่ไหน`,xT=((e={},t={})=>{let n=t.locale??s();return n===`en`?_T(e):n===`zh`?vT(e):n===`vi`?yT(e):bT(e)}),ST=e=>`As long as the real exam: ${e?.times}.`,CT=e=>`和正式考试一样长:${e?.times}。`,wT=e=>`Bằng đúng thời gian cá»§a kỳ thi thật: ${e?.times}.`,TT=e=>`นานเท่ากับการสอบจริง: ${e?.times}`,ET=((e,t={})=>{let n=t.locale??s();return n===`en`?ST(e):n===`zh`?CT(e):n===`vi`?wT(e):TT(e)}),DT=()=>`Can I pause a timed paper?`,OT=()=>`计时模考可以暂停吗?`,kT=()=>`Có thể tạm dừng bài thi tính giờ không?`,AT=()=>`หยุดข้อสอบแบบจับเวลาชั่วคราวได้ไหม`,jT=((e={},t={})=>{let n=t.locale??s();return n===`en`?DT(e):n===`zh`?OT(e):n===`vi`?kT(e):AT(e)}),MT=()=>`No. As in the exam, each section’s clock keeps running on the server. If your connection drops you can go back to the sitting and carry on, and it does not use another sitting.`,NT=()=>`不能。和正式考试一样,每个部分的时钟在服务器上一直走。网络断了可以回到这场考试接着做,不会多占一次模考。`,PT=()=>`Không. Giống như trong kỳ thi thật, đồng hồ cá»§a mỗi phần luôn chạy trên máy chá»
12§. Nếu mất kết nối, bạn có thể quay lại lượt thi đó để tiếp tục, và nó không tính là một lượt thi mới.`,FT=()=>`ไม่ได้ เหมือนในข้อสอบจริง เวลาของแต่ละส่วนจะเดินอยู่บนเซิร์ฟเวอร์ตลอด หากการเชื่อมต่อขาดหาย คุณสามารถกลับไปทำต่อจากการสอบครั้งนั้นได้ และจะไม่นับเป็นการสอบครั้งใหม่`,IT=((e={},t={})=>{let n=t.locale??s();return n===`en`?MT(e):n===`zh`?NT(e):n===`vi`?PT(e):FT(e)}),LT=()=>`HSK Levels Explained — All 9 Levels, Vocabulary, Pass Marks, CEFR | HSKWin`,RT=()=>`HSK Levels Explained — All 9 Levels, Vocabulary, Pass Marks, CEFR | HSKWin`,zT=()=>`Giải Thích Các Cấp Độ HSK — Đủ 9 Cấp, Từ Vá»±ng, Điểm Đạt, CEFR | HSKWin`,BT=()=>`อธิบายระดับ HSK — ครบ 9 ระดับ คำศัพท์ เกณฑ์ผ่าน เทียบ CEFR | HSKWin`,VT=((e={},t={})=>{let n=t.locale??s();return n===`en`?LT(e):n===`zh`?RT(e):n===`vi`?zT(e):BT(e)}),HT=()=>`Every HSK level compared: vocabulary size, characters, exam length, pass mark and CEFR equivalent, under the HSK 3.0 three-band nine-level standard. Plus a free 5-minute placement test.`,UT=()=>`Every HSK level compared: vocabulary size, characters, exam length, pass mark and CEFR equivalent, under the HSK 3.0 three-band nine-level standard. Plus a free 5-minute placement test.`,WT=()=>`So sánh mọi cấp độ HSK: lượng từ vá»±ng, số chữ Hán, độ dài kỳ thi, điểm đạt và mức tương đương CEFR, theo chuẩn ba bậc chín cấp cá»§a HSK 3.0. Kèm bài kiểm tra xếp lớp miễn phí 5 phút.`,GT=()=>`เปรียบเทียบทุกระดับ HSK: ขนาดคำศัพท์ จำนวนตัวอักษร ความยาวข้อสอบ เกณฑ์ผ่าน และเทียบเท่า CEFR ตามมาตรฐานสามกลุ่มเก้าระดับของ HSK 3.0 พร้อมแบบทดสอบวัดระดับฟรี 5 นาที`,KT=((e={},t={})=>{let n=t.locale??s();return n===`en`?HT(e):n===`zh`?UT(e):n===`vi`?WT(e):GT(e)}),qT=()=>`HSK 3.0 status — what is confirmed, what is not`,JT=()=>`HSK 3.0 status — what is confirmed, what is not`,YT=()=>`Tình trạng HSK 3.0 — điều gì đã được xác nhận, điều gì chưa`,XT=()=>`สถานะ HSK 3.0 — สิ่งที่ยืนยันแล้วและสิ่งที่ยังไม่ยืนยัน`,ZT=((e={},t={})=>{let n=t.locale??s();return n===`en`?qT(e):n===`zh`?JT(e):n===`vi`?YT(e):XT(e)}),QT=()=>`HSK 3.0 Status — What’s Confirmed, What’s Not (Live Tracker) | HSKWin`,$T=()=>`HSK 3.0 Status — What’s Confirmed, What’s Not (Live Tracker) | HSKWin`,eE=()=>`Tình trạng HSK 3.0 — Xác nhận & Chưa xác nhận (Cập nhật trá»±c tiếp) | HSKWin`,tE=()=>`สถานะ HSK 3.0 — ยืนยันแล้วและยังไม่ยืนยัน (ติดตามสด) | HSKWin`,nE=((e={},t={})=>{let n=t.locale??s();return n===`en`?QT(e):n===`zh`?$T(e):n===`vi`?eE(e):tE(e)}),rE=()=>`Live tracker of the HSK 2.0 → 3.0 switch: what CTI has published, what it has not announced, and which version your sitting will use. Dated facts with official sources.`,iE=()=>`Live tracker of the HSK 2.0 → 3.0 switch: what CTI has published, what it has not announced, and which version your sitting will use. Dated facts with official sources.`,aE=()=>`Theo dõi trá»±c tiếp quá trình chuyển đổi HSK 2.0 → 3.0: những gì CTI đã công bố, những gì chưa công bố, và kỳ thi cá»§a bạn sẽ dùng phiên bản nào. Các sá»± kiện có ngày tháng kèm nguồn chính thức.`,oE=()=>`ติดตามการเปลี่ยนผ่าน HSK 2.0 → 3.0 แบบเรียลไทม์ สิ่งที่ CTI ประกาศแล้ว สิ่งที่ยังไม่ประกาศ และสอบของคุณจะใช้เวอร์ชันไหน พร้อมข้อมูลระบุวันที่และแหล่งที่มาอย่างเป็นทางการ`,sE=((e={},t={})=>{let n=t.locale??s();return n===`en`?rE(e):n===`zh`?iE(e):n===`vi`?aE(e):oE(e)}),cE=()=>`HSK 3.0 Vocabulary`,lE=()=>`HSK 3.0 词汇`,uE=()=>`Từ vá»±ng HSK 3.0`,dE=()=>`คำศัพท์ HSK 3.0`,fE=((e={},t={})=>{let n=t.locale??s();return n===`en`?cE(e):n===`zh`?lE(e):n===`vi`?uE(e):dE(e)}),pE=e=>` vocabulary — ${e?.count} words to learn`,mE=e=>`级词汇 — 要背的 ${e?.count} 个词`,hE=e=>` — từ vá»±ng gồm ${e?.count} từ cần học`,gE=e=>` — คำศัพท์ ${e?.count} คำที่ต้องเรียน`,_E=((e,t={})=>{let n=t.locale??s();return n===`en`?pE(e):n===`zh`?mE(e):n===`vi`?hE(e):gE(e)}),vE=()=>`HSK 1 vocabulary list: all 300 words of the HSK 3.0 syllabus, with pinyin, part of speech, English meanings and audio. Drill 20 free, no account.`,yE=()=>`HSK 一级词汇表:HSK 3.0 大纲一级全部 300 词,附拼音、词性、英文释义和发音。前 20 张抽认卡免费,无需注册。`,bE=()=>`Danh sách từ vá»±ng HSK 1: đầy đủ 300 từ cá»§a đại cương HSK 3.0, kèm pinyin, từ loại, nghÄ©a tiếng Anh và audio. Luyện thẻ ghi nhớ 20 từ đầu miễn phí, không cần tài khoản.`,xE=()=>`รายการคำศัพท์ HSK 1: คำศัพท์ทั้งหมด 300 คำตามหลักสูตร HSK 3.0 พร้อมพินอิน ชนิดของคำ ความหมายภาษาอังกฤษ และเสียงอ่าน ฝึกแฟลชการ์ด 20 คำแรกฟรี ไม่ต้องสมัครสมาชิก`,SE=((e={},t={})=>{let n=t.locale??s();return n===`en`?vE(e):n===`zh`?yE(e):n===`vi`?bE(e):xE(e)}),CE=()=>`HSK 2 vocabulary list: the 200 words HSK 2 adds under HSK 3.0, 500 in all, with pinyin, part of speech, meanings and audio. Drill 20 free, no account.`,wE=()=>`HSK 二级词汇表:HSK 3.0 二级新增 200 词,累计 500 词,附拼音、词性、英文释义和发音。前 20 张抽认卡免费,无需注册。`,TE=()=>`Danh sách từ vá»±ng HSK 2: 200 từ mà HSK 2 thêm vào theo HSK 3.0, tổng cộng 500 từ, kèm pinyin, từ loại, nghÄ©a và audio. Luyện thẻ ghi nhớ 20 từ đầu miễn phí, không cần tài khoản.`,EE=()=>`รายการคำศัพท์ HSK 2: คำศัพท์ 200 คำที่ HSK 2 เพิ่มเข้ามาตาม HSK 3.0 รวมทั้งหมด 500 คำ พร้อมพินอิน ชนิดของคำ ความหมาย และเสียงอ่าน ฝึกแฟลชการ์ด 20 คำแรกฟรี ไม่ต้องสมัครสมาชิก`,DE=((e={},t={})=>{let n=t.locale??s();return n===`en`?CE(e):n===`zh`?wE(e):n===`vi`?TE(e):EE(e)}),OE=()=>`HSK 3 vocabulary list: the 500 new words of HSK 3.0 Level 3 (1,000 in total), with pinyin, part of speech, meanings and audio. Drill 20 free.`,kE=()=>`HSK 三级词汇表:HSK 3.0 三级新增 500 词,累计 1,000 词,附拼音、词性、释义和发音,可按拼音首字母查找。前 20 张抽认卡免费。`,AE=()=>`Danh sách từ vá»±ng HSK 3: 500 từ mới cá»§a HSK 3.0 cấp 3 (tổng cộng 1.000 từ), kèm pinyin, từ loại, nghÄ©a và audio. Luyện thẻ ghi nhớ 20 từ đầu miễn phí.`,jE=()=>`รายการคำศัพท์ HSK 3: คำศัพท์ใหม่ 500 คำของ HSK 3.0 ระดับ 3 (รวมทั้งหมด 1,000 คำ) พร้อมพินอิน ชนิดของคำ ความหมาย และเสียงอ่าน ฝึกแฟลชการ์ด 20 คำแรกฟรี`,ME=((e={},t={})=>{let n=t.locale??s();return n===`en`?OE(e):n===`zh`?kE(e):n===`vi`?AE(e):jE(e)}),NE=()=>`HSK 4 vocabulary list: 1,000 new words under HSK 3.0, 2,000 in total, each with pinyin, part of speech, an English meaning and audio. Drill 20 free.`,PE=()=>`HSK 四级词汇表:HSK 3.0 四级新增 1,000 词,累计 2,000 词。拼音、词性、英文释义、发音一页看全,前 20 张抽认卡免费。`,FE=()=>`Danh sách từ vá»±ng HSK 4: 1.000 từ mới theo HSK 3.0, tổng cộng 2.000 từ, mỗi từ kèm pinyin, từ loại, nghÄ©a tiếng Anh và audio. Luyện thẻ ghi nhớ 20 từ đầu miễn phí.`,IE=()=>`รายการคำศัพท์ HSK 4: คำศัพท์ใหม่ 1,000 คำตาม HSK 3.0 รวมทั้งหมด 2,000 คำ แต่ละคำพร้อมพินอิน ชนิดของคำ ความหมายภาษาอังกฤษ และเสียงอ่าน ฝึกแฟลชการ์ด 20 คำแรกฟรี`,LE=((e={},t={})=>{let n=t.locale??s();return n===`en`?NE(e):n===`zh`?PE(e):n===`vi`?FE(e):IE(e)}),RE=()=>`HSK 5 vocabulary list: all 1,600 words HSK 3.0 adds at Level 5 (3,600 in total), with pinyin, part of speech, meanings and audio. Drill 20 free.`,zE=()=>`HSK 五级词汇表:HSK 3.0 五级新增 1,600 词,累计 3,600 词,附拼音、词性、释义和发音,按拼音首字母索引。前 20 张抽认卡免费。`,BE=()=>`Danh sách từ vá»±ng HSK 5: toàn bộ 1.600 từ mà HSK 3.0 thêm ở cấp 5 (tổng cộng 3.600 từ), kèm pinyin, từ loại, nghÄ©a và audio. Luyện thẻ ghi nhớ 20 từ đầu miễn phí.`,VE=()=>`รายการคำศัพท์ HSK 5: คำศัพท์ทั้งหมด 1,600 คำที่ HSK 3.0 เพิ่มในระดับ 5 (รวมทั้งหมด 3,600 คำ) พร้อมพินอิน ชนิดของคำ ความหมาย และเสียงอ่าน ฝึกแฟลชการ์ด 20 คำแรกฟรี`,HE=((e={},t={})=>{let n=t.locale??s();return n===`en`?RE(e):n===`zh`?zE(e):n===`vi`?BE(e):VE(e)}),UE=()=>`HSK 6 vocabulary list: the 1,800 words Level 6 adds under HSK 3.0, 5,400 in all, with pinyin, part of speech, meanings and audio. Drill 20 free.`,WE=()=>`HSK 六级词汇表:HSK 3.0 六级新增 1,800 词,累计 5,400 词,附拼音、词性、英文释义和发音。前 20 张抽认卡免费,无需注册。`,GE=()=>`Danh sách từ vá»±ng HSK 6: 1.800 từ mà cấp 6 thêm vào theo HSK 3.0, tổng cộng 5.400 từ, kèm pinyin, từ loại, nghÄ©a và audio. Luyện thẻ ghi nhớ 20 từ đầu miễn phí, không cần tài khoản.`,KE=()=>`รายการคำศัพท์ HSK 6: คำศัพท์ 1,800 คำที่ระดับ 6 เพิ่มเข้ามาตาม HSK 3.0 รวมทั้งหมด 5,400 คำ พร้อมพินอิน ชนิดของคำ ความหมายภาษาอังกฤษ และเสียงอ่าน ฝึกแฟลชการ์ด 20 คำแรกฟรี ไม่ต้องสมัครสมาชิก`,qE=((e={},t={})=>{let n=t.locale??s();return n===`en`?UE(e):n===`zh`?WE(e):n===`vi`?GE(e):KE(e)}),JE=()=>`HSK 7–9 vocabulary list: 5,600 advanced words from the HSK 3.0 syllabus, 11,000 in all, with pinyin, part of speech, meanings and audio. Free to browse.`,YE=()=>
12`HSK 七–九级词汇表:HSK 3.0 大纲高等 5,600 词,累计 11,000 词,附拼音、词性、英文释义和发音,免费浏览,按拼音首字母索引。`,XE=()=>`Danh sách từ vá»±ng HSK 7–9: 5.600 từ nâng cao theo đại cương HSK 3.0, tổng cộng 11.000 từ, kèm pinyin, từ loại, nghÄ©a và audio. Xem miễn phí.`,ZE=()=>`รายการคำศัพท์ HSK 7–9: คำศัพท์ระดับสูง 5,600 คำจากหลักสูตร HSK 3.0 รวมทั้งหมด 11,000 คำ พร้อมพินอิน ชนิดของคำ ความหมาย และเสียงอ่าน เรียกดูได้ฟรี`,QE=((e={},t={})=>{let n=t.locale??s();return n===`en`?JE(e):n===`zh`?YE(e):n===`vi`?XE(e):ZE(e)}),$E=()=>`The level numbers carried over; the word lists behind them did not. Each pair of bars is the number of words a level expects by the end of it — under HSK 2.0, and under the HSK 3.0 syllabus these lists follow.`,eD=()=>`级别编号沿用了下来,背后的词表却变了。每组横条是到该级别为止需要掌握的累计词量:上面是 HSK 2.0,下面是这里词表依据的 HSK 3.0 大纲。`,tD=()=>`Số hiệu cấp độ được giữ nguyên, nhưng danh sách từ đằng sau đã thay đổi. Mỗi cặp cột là số từ cần nắm tính đến hết cấp đó — bên trên là HSK 2.0, bên dưới là đại cương HSK 3.0 mà các danh sách này tuân theo.`,nD=()=>`หมายเลขระดับยังคงเดิม แต่รายการคำศัพท์เบื้องหลังเปลี่ยนไป แท่งกราฟแต่ละคู่คือจำนวนคำที่ต้องรู้เมื่อจบระดับนั้น — ด้านบนคือ HSK 2.0 ด้านล่างคือหลักสูตร HSK 3.0 ที่รายการเหล่านี้ยึดตาม`,rD=((e={},t={})=>{let n=t.locale??s();return n===`en`?$E(e):n===`zh`?eD(e):n===`vi`?tD(e):nD(e)}),iD=()=>`Not in the chart: HSK 7–9, which HSK 2.0 never had. It adds 5,600 words on top of HSK 6 — 11,000 in all, against HSK 2.0’s ceiling of 5,000.`,aD=()=>`图里没有画 HSK 七–九级,因为 HSK 2.0 没有这几级:它在六级之上再加 5,600 词,累计 11,000 词,而 HSK 2.0 的上限是 5,000 词。`,oD=()=>`Không có trong biểu đồ: HSK 7–9, cấp mà HSK 2.0 chưa từng có. Nó thêm 5.600 từ trên nền HSK 6 — tổng cộng 11.000 từ, so với mức trần 5.000 từ cá»§a HSK 2.0.`,sD=()=>`ไม่มีในกราฟ: HSK 7–9 ซึ่ง HSK 2.0 ไม่เคยมี โดยเพิ่มคำศัพท์ 5,600 คำบน HSK 6 — รวมทั้งหมด 11,000 คำ เทียบกับเพดาน 5,000 คำของ HSK 2.0`,cD=((e={},t={})=>{let n=t.locale??s();return n===`en`?iD(e):n===`zh`?aD(e):n===`vi`?oD(e):sD(e)}),lD=()=>`The lower levels grew most. HSK 1 doubles, from 150 words to 300, and HSK 2 to 4 each ask for two-thirds more than before.`,uD=()=>`低级别涨得最多:HSK 一级从 150 词翻倍到 300 词,二到四级各比旧版多出三分之二。`,dD=()=>`Các cấp thấp tăng nhiều nhất. HSK 1 tăng gấp đôi, từ 150 lên 300 từ, còn HSK 2 đến 4 mỗi cấp đều yêu cầu nhiều hÆ¡n khoảng hai phần ba so với trước.`,fD=()=>`ระดับล่างเพิ่มขึ้นมากที่สุด HSK 1 เพิ่มขึ้นเป็นสองเท่า จาก 150 เป็น 300 คำ ส่วน HSK 2 ถึง 4 แต่ละระดับต้องการคำศัพท์มากขึ้นราวสองในสามจากเดิม`,pD=((e={},t={})=>{let n=t.locale??s();return n===`en`?lD(e):n===`zh`?uD(e):n===`vi`?dD(e):fD(e)}),mD=()=>`HSK 6 barely moved: 5,000 words then, 5,400 now. Level 6 itself adds 1,800 new words where HSK 2.0 added 2,500 — the load has shifted down to the levels below.`,hD=()=>`六级几乎没变:旧版 5,000 词,新版 5,400 词。六级本身新增 1,800 词,比 HSK 2.0 的 2,500 词还少——词汇量往前面的级别æ
12Œªäº†ã€‚`,gD=()=>`HSK 6 gần như không đổi: trước đây 5.000 từ, nay 5.400 từ. Bản thân cấp 6 thêm 1.800 từ mới, trong khi HSK 2.0 thêm 2.500 từ — khối lượng đã dồn xuống các cấp thấp hÆ¡n.`,_D=()=>`HSK 6 แทบไม่เปลี่ยน: เดิม 5,000 คำ ปัจจุบัน 5,400 คำ ตัวระดับ 6 เองเพิ่มคำใหม่ 1,800 คำ ขณะที่ HSK 2.0 เพิ่ม 2,500 คำ — ภาระถูกย้ายลงไปยังระดับที่ต่ำกว่า`,vD=((e={},t={})=>{let n=t.locale??s();return n===`en`?mD(e):n===`zh`?hD(e):n===`vi`?gD(e):_D(e)}),yD=()=>`HSK 7–9 is new. It adds 5,600 words above HSK 6, for 11,000 in all — more than twice the old ceiling.`,bD=()=>`七–九级是新增的:在六级之上再加 5,600 词,累计 11,000 词,是旧版上限的两倍多。`,xD=()=>`HSK 7–9 là cấp hoàn toàn mới. Nó thêm 5.600 từ trên nền HSK 6, tổng cộng 11.000 từ — hÆ¡n gấp đôi mức trần cÅ©.`,SD=()=>`HSK 7–9 เป็นของใหม่ โดยเพิ่มคำศัพท์ 5,600 คำเหนือ HSK 6 รวมทั้งหมด 11,000 คำ — มากกว่าเพดานเดิมกว่าสองเท่า`,CD=((e={},t={})=>{let n=t.locale??s();return n===`en`?yD(e):n===`zh`?bD(e):n===`vi`?xD(e):SD(e)}),wD=()=>`The 3.0 lists were compiled from the 2021 standard rather than extended from the old ones, so an HSK 2.0 list for a level is not simply the first part of the new one. Learn from the 3.0 list for the level you are sitting.`,TD=()=>`3.0 词表是依据 2021 年的等级标准重新编的,不是在旧词表后面续写,所以旧版某一级的词表并不是新词表的前半部分。考哪一级,就背那一级的 3.0 词表。`,ED=()=>`Danh sách 3.0 được biên soạn lại từ tiêu chuẩn năm 2021, không phải nối dài từ danh sách cÅ©, nên danh sách HSK 2.0 cá»§a một cấp không phải là phần đầu cá»§a danh sách mới. Hãy học theo danh sách 3.0 cá»§a cấp bạn sẽ thi.`,DD=()=>`รายการ 3.0 รวบรวมขึ้นใหม่จากมาตรฐานปี 2021 ไม่ได้ต่อยอดจากรายการเก่า ดังนั้นรายการ HSK 2.0 ของระดับหนึ่งจึงไม่ใช่ส่วนแรกของรายการใหม่ ให้เรียนจากรายการ 3.0 ของระดับที่คุณจะสอบ`,OD=((e={},t={})=>{let n=t.locale??s();return n===`en`?wD(e):n===`zh`?TD(e):n===`vi`?ED(e):DD(e)}),kD=e=>`HSK 1 is where the list starts: ${e?.added} words, the first ${e?.added} of the syllabus’s ${e?.syllabusTotal}.`,AD=e=>`HSK 一级是词表的起点:${e?.added} 个词,也就是整份大纲 ${e?.syllabusTotal} 词里的前 ${e?.added} 个。`,jD=e=>`HSK 1 là điểm khởi đầu cá»§a danh sách: ${e?.added} từ, chính là ${e?.added} từ đầu tiên trong tổng số ${e?.syllabusTotal} từ cá»§a đại cương.`,MD=e=>`HSK 1 คือจุดเริ่มต้นของรายการคำศัพท์: ${e?.added} คำ ซึ่งเป็น ${e?.added} คำแรกจากทั้งหมด ${e?.syllabusTotal} คำในหลักสูตร`,ND=((e,t={})=>{let n=t.locale??s();return n===`en`?kD(e):n===`zh`?AD(e):n===`vi`?jD(e):MD(e)}),PD=e=>`${e?.label} adds ${e?.added} words to the HSK 3.0 syllabus — ${e?.pct}% of all ${e?.syllabusTotal} — and brings the total you need to ${e?.total}.`,FD=e=>`${e?.label}在 HSK 3.0 大纲里新增 ${e?.added} 个词,占全部 ${e?.syllabusTotal} 词的 ${e?.pct}%,学完这一级累计需要掌握 ${e?.total} 个词。`,ID=e=>`${e?.label} thêm ${e?.added} từ vào đại cương HSK 3.0 — chiếm ${e?.pct}% trong tổng số ${e?.syllabusTotal} từ — nâng tổng số từ cần nắm lên ${e?.total}.`,LD=e=>`${e?.label} เพิ่มคำศัพท์ ${e?.added} คำเข้าสู่หลักสูตร HSK 3.0 — คิดเป็น ${e?.pct}% จากทั้งหมด ${e?.syllabusTotal} คำ — ทำให้ยอดรวมที่ต้องเรียนรู้เพิ่มเป็น ${e?.total} คำ`,RD=((e,t={})=>{let n=t.locale??s();return n===`en`?PD(e):n===`zh`?FD(e):n===`vi`?ID(e):LD(e)}),zD=e=>`${e?.commonCount} of them (${e?.pct}%) are among the most common words in everyday Chinese — roughly one in every ten thousand words you meet. The most common at this level:`,BD=e=>`其中 ${e?.commonCount} 个词(${e?.pct}%)属于日常汉语里最常用的一批——大约每一万个词里就出现一次。这一级里最常用的是:`,VD=e=>`Trong đó ${e?.commonCount} từ (${e?.pct}%) nằm trong nhóm từ thông dụng nhất tiếng Trung hàng ngày — khoảng một trên mười nghìn từ bạn gặp. Những từ thông dụng nhất ở cấp này:`,HD=e=>`ในจำนวนนี้ ${e?.commonCount} คำ (${e?.pct}%) อยู่ในกลุ่มคำที่ใช้บ่อยที่สุดในภาษาจีนที่ใช้ในชีวิตประจำวัน — ประมาณหนึ่งครั้งในหนึ่งหมื่นคำที่คุณพบเจอ คำที่ใช้บ่อยที่สุดในระดับนี้:`,UD=((e,t={})=>{let n=t.locale??s();return n===`en`?zD(e):n===`zh`?BD(e):n===`vi`?VD(e):HD(e)}),WD=e=>`HSK 2.0 had nothing above level 6, and its top level stopped at ${e?.ceiling} words. HSK 3.0’s Levels 7–9 add ${e?.added} words on top of HSK 6’s ${e?.belowTotal} — ${e?.total}
12 in all, ${e?.times} times the old ceiling.`,GD=e=>`HSK 2.0 最高只到六级,六级累计 ${e?.ceiling} 词就是它的顶。HSK 3.0 的七–九级在六级 ${e?.belowTotal} 词之上再加 ${e?.added} 词,累计 ${e?.total} 词,是旧版上限的 ${e?.times} 倍。`,KD=e=>`HSK 2.0 không có cấp nào trên cấp 6, và cấp cao nhất của nó dừng ở ${e?.ceiling} từ. Các cấp 7–9 của HSK 3.0 thêm ${e?.added} từ vào trên nền ${e?.belowTotal} từ của HSK 6 — tổng cộng ${e?.total} từ, gấp ${e?.times} lần mức trần cũ.`,qD=e=>`HSK 2.0 ไม่มีระดับใดสูงกว่าระดับ 6 และระดับสูงสุดของมันหยุดอยู่ที่ ${e?.ceiling} คำ ระดับ 7–9 ของ HSK 3.0 เพิ่มคำศัพท์ ${e?.added} คำเข้าไปบน ${e?.belowTotal} คำของ HSK 6 — รวมทั้งหมด ${e?.total} คำ มากกว่าเพดานเดิม ${e?.times} เท่า`,JD=((e,t={})=>{let n=t.locale??s();return n===`en`?WD(e):n===`zh`?GD(e):n===`vi`?KD(e):qD(e)}),YD=e=>`Under HSK 2.0, ${e?.label} added ${e?.oldAdded} words, for ${e?.oldTotal} in total. The HSK 3.0 syllabus adds ${e?.added} at Level ${e?.slug} — fewer than before — yet expects ${e?.total} by the end of it, ${e?.diff} more in total, because more of the load now sits in the levels below.`,XD=e=>`HSK 2.0 的${e?.label}新增 ${e?.oldAdded} 词,累计 ${e?.oldTotal} 词。HSK 3.0 大纲在${e?.label}新增 ${e?.added} 词,比旧版少,但累计要求 ${e?.total} 词,反而多了 ${e?.diff} 词——更多的词挪到了前面的级别。`,ZD=e=>`Theo HSK 2.0, ${e?.label} thêm ${e?.oldAdded} từ, tổng cộng ${e?.oldTotal} từ. Đại cương HSK 3.0 thêm ${e?.added} từ ở Cấp ${e?.slug} — ít hơn trước — nhưng lại yêu cầu tổng ${e?.total} từ tính đến hết cấp đó, nhiều hơn ${e?.diff} từ, vì phần lớn khối lượng đã dồn xuống các cấp thấp hơn.`,QD=e=>`ภายใต้ HSK 2.0 ${e?.label} เพิ่มคำศัพท์ ${e?.oldAdded} คำ รวมเป็น ${e?.oldTotal} คำ หลักสูตร HSK 3.0 เพิ่ม ${e?.added} คำในระดับ ${e?.slug} — น้อยกว่าเดิม — แต่กลับต้องการรวม ${e?.total} คำเมื่อจบระดับนั้น มากกว่าเดิม ${e?.diff} คำ เพราะภาระส่วนใหญ่ถูกย้ายไปอยู่ในระดับที่ต่ำกว่า`,$D=((e,t={})=>{let n=t.locale??s();return n===`en`?YD(e):n===`zh`?XD(e):n===`vi`?ZD(e):QD(e)}),eO=e=>`Under HSK 2.0, ${e?.label} added ${e?.oldAdded} words, for ${e?.oldTotal} in total. The HSK 3.0 syllabus adds ${e?.added} at Level ${e?.slug} and expects ${e?.total} by the end of it — ${e?.diff} more words in total, ${e?.times} times the old list.`,tO=e=>`HSK 2.0 的${e?.label}新增 ${e?.oldAdded} 词,累计 ${e?.oldTotal} 词。HSK 3.0 大纲在${e?.label}新增 ${e?.added} 词,累计要求 ${e?.total} 词:总量多了 ${e?.diff} 词,是旧版的 ${e?.times} 倍。`,nO=e=>`Theo HSK 2.0, ${e?.label} thêm ${e?.oldAdded} từ, tổng cộng ${e?.oldTotal} từ. Đại cương HSK 3.0 thêm ${e?.added} từ ở Cấp ${e?.slug} và yêu cầu tổng ${e?.total} từ tính đến hết cấp đó — nhiều hơn ${e?.diff} từ, gấp ${e?.times} lần danh sách cũ.`,rO=e=>`ภายใต้ HSK 2.0 ${e?.label} เพิ่มคำศัพท์ ${e?.oldAdded} คำ รวมเป็น ${e?.oldTotal} คำ หลักสูตร HSK 3.0 เพิ่ม ${e?.added} คำในระดับ ${e?.slug} และต้องการรวม ${e?.total} คำเมื่อจบระดับนั้น — มากกว่าเดิม ${e?.diff} คำ มากกว่ารายการเก่า ${e?.times} เท่า`,iO=((e,t={})=>{let n=t.locale??s();return n===`en`?eO(e):n===`zh`?tO(e):n===`vi`?nO(e):rO(e)}),aO=e=>`${e?.n} weeks`,oO=e=>`${e?.n} 周`,sO=e=>`${e?.n} tuần`,cO=e=>`${e?.n} สัปดาห์`,lO=((e,t={})=>{let n=t.locale??s();return n===`en`?aO(e):n===`zh`?oO(e):n===`vi`?sO(e):cO(e)}),uO=e=>`${e?.n} months`,dO=e=>`${e?.n} 个月`,fO=e=>`${e?.n} tháng`,pO=e=>`${e?.n} เดือน`,mO=((e,t={})=>{let n=t.locale??s();return n===`en`?uO(e):n===`zh`?dO(e):n===`vi`?fO(e):pO(e)}),hO=()=>`Is HSK 3.0 the same as HSK Level 3?`,gO=()=>`HSK 3.0 和 HSK 三级是一回事吗?`,_O=()=>`HSK 3.0 có giống HSK cấp 3 không?`,vO=()=>`HSK 3.0 กับ HSK ระดับ 3 คือสิ่งเดียวกันไหม?`,yO=((e={},t={})=>{let n=t.locale??s();return n===`en`?hO(e):n===`zh`?gO(e):n===`vi`?_O(e):vO(e)}),bO=()=>` — the one this page lists`,xO=()=>`,也就是本页列的这一级`,SO=()=>
12` — cấp mà trang này liệt kê`,CO=()=>` — ซึ่งเป็นระดับที่หน้านี้แสดง`,wO=((e={},t={})=>{let n=t.locale??s();return n===`en`?bO(e):n===`zh`?xO(e):n===`vi`?SO(e):CO(e)}),TO=e=>`No. HSK 3.0 is the version of the exam: CTI published its syllabus in November 2025, in force from July 2026. HSK Level 3 is one of the nine levels inside it${e?.note}. This page is the HSK 3.0 list for ${e?.levelPhrase}; HSKWin tracks when each level’s sittings switch to 3.0 on its status page.`,EO=e=>`不是。HSK 3.0 指考试的版本:汉考国际 2025 年 11 月发布新考试大纲,2026 年 7 月起实施。HSK 三级是这个版本里九个级别中的一级${e?.note}。本页是 HSK 3.0 版本下${e?.levelPhrase}的词表;各级考试什么时候换成 3.0,HSKWin 在换考进度页上持续跟踪。`,DO=e=>`Không. HSK 3.0 là phiên bản của kỳ thi: CTI công bố đại cương mới vào tháng 11/2025, áp dụng từ tháng 7/2026. HSK cấp 3 là một trong chín cấp độ của phiên bản này${e?.note}. Trang này là danh sách từ vựng HSK 3.0 cho ${e?.levelPhrase}; HSKWin theo dõi liên tục thời điểm mỗi cấp chuyển sang thi theo 3.0 trên trang tiến độ chuyển đổi.`,OO=e=>`ไม่ใช่ HSK 3.0 คือเวอร์ชันของการสอบ: CTI ประกาศหลักสูตรใหม่ในเดือนพฤศจิกายน 2025 มีผลบังคับใช้ตั้งแต่เดือนกรกฎาคม 2026 HSK ระดับ 3 เป็นหนึ่งในเก้าระดับของเวอร์ชันนี้${e?.note} หน้านี้คือรายการคำศัพท์ HSK 3.0 สำหรับ${e?.levelPhrase} HSKWin ติดตามความคืบหน้าว่าแต่ละระดับจะเปลี่ยนไปสอบตามหลักสูตร 3.0 เมื่อใดในหน้าติดตามความคืบหน้า`,kO=((e,t={})=>{let n=t.locale??s();return n===`en`?TO(e):n===`zh`?EO(e):n===`vi`?DO(e):OO(e)}),AO=()=>`HSK 3.0 status tracker`,jO=()=>`HSK 3.0 换考进度`,MO=()=>`Theo dõi tiến độ chuyển đổi HSK 3.0`,NO=()=>`ติดตามความคืบหน้าการเปลี่ยนไปใช้ HSK 3.0`,PO=((e={},t={})=>{let n=t.locale??s();return n===`en`?AO(e):n===`zh`?jO(e):n===`vi`?MO(e):NO(e)}),FO=e=>`How long does it take to learn the ${e?.count} ${e?.label} words?`,IO=e=>`背完${e?.label}的 ${e?.count} 个词要多久?`,LO=e=>`Học ${e?.count} từ của ${e?.label} mất bao lâu?`,RO=e=>`ต้องใช้เวลานานแค่ไหนในการเรียนคำศัพท์ ${e?.count} คำของ ${e?.label}?`,zO=((e,t={})=>{let n=t.locale??s();return n===`en`?FO(e):n===`zh`?IO(e):n===`vi`?LO(e):RO(e)}),BO=e=>`At one round of 20 new words a day — the pace the flashcards deal them — you meet all ${e?.count} in about ${e?.days} days. They then bring each word back after a day, three days, a week and three weeks, so the last ones need about three more weeks to settle: roughly ${e?.span} in all.`,VO=e=>`按每天一轮 20 个新词——也就是抽认卡的节奏——${e?.count} 个词大约 ${e?.days} 天能全部见一遍。之后每个词会在 1 天、3 天、1 周、3 周后再出现,最后一批词还要三周左右才算巩固,合计大约 ${e?.span}。`,HO=e=>`Với nhịp độ 20 từ mới mỗi ngày — tốc độ thẻ ghi nhớ đưa ra — bạn sẽ gặp đủ ${e?.count} từ trong khoảng ${e?.days} ngày. Sau đó mỗi từ quay lại sau 1 ngày, 3 ngày, 1 tuần và 3 tuần, nên những từ cuối cùng cần thêm khoảng ba tuần nữa để ghi nhớ chắc: tổng cộng khoảng ${e?.span}.`,UO=e=>`ด้วยจังหวะ 20 คำใหม่ต่อวัน — ความเร็วที่แฟลชการ์ดจัดสรรให้ — คุณจะเจอครบ ${e?.count} คำในเวลาประมาณ ${e?.days} วัน จากนั้นแต่ละคำจะกลับมาอีกครั้งหลังจาก 1 วัน 3 วัน 1 สัปดาห์ และ 3 สัปดาห์ ดังนั้นคำชุดสุดท้ายจึงต้องใช้เวลาอีกประมาณสามสัปดาห์กว่าจะจำได้แม่น รวมทั้งหมดประมาณ ${e?.span}`,WO=((e,t={})=>{let n=t.locale??s();return n===`en`?BO(e):n===`zh`?VO(e):n===`vi`?HO(e):UO(e)}),GO=e=>
12`Do I need the ${e?.range} words as well?`,KO=e=>`还要掌握${e?.range}的词吗?`,qO=e=>`Tôi có cần học thêm từ của ${e?.range} không?`,JO=e=>`ต้องเรียนคำศัพท์ของ${e?.range}ด้วยไหม?`,YO=((e,t={})=>{let n=t.locale??s();return n===`en`?GO(e):n===`zh`?KO(e):n===`vi`?qO(e):JO(e)}),XO=e=>`Yes. Each level’s list only adds to the ones below it, and the exam assumes all of them: ${e?.label} expects ${e?.total} words in total — the ${e?.added} on this page plus ${e?.prev} from ${e?.range}. Switch the list to “with earlier levels” to see them together.`,ZO=e=>`要。每一级的词表只列新增的词,考试默认你已经掌握前面所有级别:${e?.label}累计要求 ${e?.total} 词——本页的 ${e?.added} 词,加上${e?.range}的 ${e?.prev} 词。把词表切到「含前面级别」就能放在一起看。`,QO=e=>`Có. Danh sách mỗi cấp chỉ liệt kê từ mới thêm vào, và kỳ thi mặc định bạn đã nắm tất cả các cấp trước đó: ${e?.label} yêu cầu tổng cộng ${e?.total} từ — ${e?.added} từ trên trang này cộng với ${e?.prev} từ của ${e?.range}. Chuyển danh sách sang “gồm cả các cấp trước” để xem chung.`,$O=e=>`ใช่ รายการคำศัพท์แต่ละระดับจะแสดงเฉพาะคำที่เพิ่มเข้ามาใหม่ และข้อสอบถือว่าคุณเชี่ยวชาญทุกระดับก่อนหน้านี้แล้ว: ${e?.label} ต้องการคำศัพท์รวม ${e?.total} คำ — ${e?.added} คำในหน้านี้ บวกกับ ${e?.prev} คำจาก${e?.range} สลับรายการเป็น “รวมระดับก่อนหน้า” เพื่อดูพร้อมกัน`,ek=((e,t={})=>{let n=t.locale??s();return n===`en`?XO(e):n===`zh`?ZO(e):n===`vi`?QO(e):$O(e)}),tk=e=>`Why do other lists give a different word count for ${e?.label}?`,nk=e=>`为什么别处的${e?.label}词汇量和这里不一样?`,rk=e=>`Vì sao các danh sách khác đưa ra số từ khác cho ${e?.label}?`,ik=e=>`ทำไมรายการอื่นถึงให้จำนวนคำศัพท์ของ ${e?.label} ไม่ตรงกับที่นี่?`,ak=((e,t={})=>{let n=t.locale??s();return n===`en`?tk(e):n===`zh`?nk(e):n===`vi`?rk(e):ik(e)}),ok=e=>`Two counts circulate for HSK 7–9: ${e?.standard} words in the 2021 standard (GF0025-2021), and ${e?.total} in the exam syllabus CTI published in November 2025, which this list follows. HSK 2.0 stopped at level 6 and ${e?.ceiling} words. The papers are written from the syllabus, so it is the list to learn.`,sk=e=>`七–九级流传的数字有两个:2021 年《国际中文教育中文水平等级标准》(GF0025-2021)是 ${e?.standard} 词;汉考国际 2025 年 11 月发布的考试大纲——也就是本页词表的依据——是 ${e?.total} 词。HSK 2.0 最高只到六级、${e?.ceiling} 词。试卷按考试大纲命题,所以要背的是这一份。`,ck=e=>`Có hai con số được lưu truyền cho HSK 7–9: ${e?.standard} từ theo tiêu chuẩn năm 2021 (GF0025-2021), và ${e?.total} từ theo đại cương thi mà CTI công bố tháng 11/2025 — đại cương mà danh sách này tuân theo. HSK 2.0 dừng ở cấp 6 với ${e?.ceiling} từ. Đề thi được soạn theo đại cương, nên đây mới là danh sách cần học.`,lk=e=>`มีตัวเลขที่แพร่หลายอยู่สองชุดสำหรับ HSK 7–9: ${e?.standard} คำตามมาตรฐานปี 2021 (GF0025-2021) และ ${e?.total} คำตามหลักสูตรสอบที่ CTI ประกาศเมื่อเดือนพฤศจิกายน 2025 ซึ่งเป็นหลักสูตรที่รายการนี้ยึดตาม HSK 2.0 หยุดอยู่ที่ระดับ 6 และ ${e?.ceiling} คำ ข้อสอบเขียนขึ้นจากหลักสูตร ดังนั้นนี่จึงเป็นรายการที่ควรใช้เรียน`,uk=((e,t={})=>{let n=t.locale??s();return n===`en`?ok(e):n===`zh`?sk(e):n===`vi`?ck(e):lk(e)}),dk=e=>`Three counts circulate. The old HSK 2.0 asked for ${e?.oldTotal} words by the end of ${e?.label}. The 2021 standard (GF0025-2021) gives ${e?.standard} — the figure many sites still quote. The exam syllabus CTI published in November 2025, which this list follows, gives ${e?.total}. The papers are written from the syllabus, so it is the list to learn.`,fk=e=>`流传的数字有三个:旧版 HSK 2.0 到${e?.label}累计 ${e?.oldTotal} 词;2021 年的《等级标准》(GF0025-2021)是 ${e?.standard}
12 词,很多网站引用的就是它;汉考国际 2025 年 11 月发布的考试大纲——本页词表的依据——是 ${e?.total} 词。试卷按考试大纲命题,所以要背的是这一份。`,pk=e=>`Có ba con số được lưu truyền. HSK 2.0 cũ yêu cầu ${e?.oldTotal} từ tính đến hết ${e?.label}. Tiêu chuẩn năm 2021 (GF0025-2021) đưa ra ${e?.standard} — con số nhiều trang web vẫn trích dẫn. Đại cương thi mà CTI công bố tháng 11/2025, mà danh sách này tuân theo, đưa ra ${e?.total}. Đề thi được soạn theo đại cương, nên đây mới là danh sách cần học.`,mk=e=>`มีตัวเลขที่แพร่หลายอยู่สามชุด HSK 2.0 แบบเก่าต้องการ ${e?.oldTotal} คำเมื่อจบ ${e?.label} มาตรฐานปี 2021 (GF0025-2021) ให้ตัวเลข ${e?.standard} คำ — ตัวเลขที่หลายเว็บไซต์ยังคงอ้างอิง หลักสูตรสอบที่ CTI ประกาศเมื่อเดือนพฤศจิกายน 2025 ซึ่งรายการนี้ยึดตาม ให้ตัวเลข ${e?.total} คำ ข้อสอบเขียนขึ้นจากหลักสูตร ดังนั้นนี่จึงเป็นรายการที่ควรใช้เรียน`,hk=((e,t={})=>{let n=t.locale??s();return n===`en`?dk(e):n===`zh`?fk(e):n===`vi`?pk(e):mk(e)}),gk=()=>`No. HSK 3.0 is the version of the exam: CTI published its syllabus in November 2025, in force from July 2026, and it runs from Level 1 to Level 9. HSK Level 3 is one of those levels. HSKWin tracks when each level’s sittings switch to 3.0 on its status page.`,_k=()=>`不是。HSK 3.0 指考试的版本:汉考国际 2025 年 11 月发布新考试大纲,2026 年 7 月起实施,分一到九级。HSK 三级只是其中一级。各级考试什么时候换成 3.0,HSKWin 在换考进度页上持续跟踪。`,vk=()=>`Không. HSK 3.0 là phiên bản của kỳ thi: CTI công bố đại cương mới vào tháng 11/2025, áp dụng từ tháng 7/2026, gồm chín cấp từ 1 đến 9. HSK cấp 3 chỉ là một trong số đó. HSKWin theo dõi liên tục thời điểm mỗi cấp chuyển sang thi theo 3.0 trên trang tiến độ chuyển đổi.`,yk=()=>`ไม่ใช่ HSK 3.0 คือเวอร์ชันของการสอบ: CTI ประกาศหลักสูตรใหม่ในเดือนพฤศจิกายน 2025 มีผลบังคับใช้ตั้งแต่เดือนกรกฎาคม 2026 มีทั้งหมดเก้าระดับตั้งแต่ระดับ 1 ถึง 9 HSK ระดับ 3 เป็นเพียงหนึ่งในนั้น HSKWin ติดตามความคืบหน้าว่าแต่ละระดับจะเปลี่ยนไปสอบตามหลักสูตร 3.0 เมื่อใดในหน้าติดตามความคืบหน้า`,bk=((e={},t={})=>{let n=t.locale??s();return n===`en`?gk(e):n===`zh`?_k(e):n===`vi`?vk(e):yk(e)}),xk=()=>`Why do some sites say HSK 3.0 has 11,092 words?`,Sk=()=>`为什么有的网站说 HSK 3.0 有 11,092 个词?`,Ck=()=>`Vì sao một số trang nói HSK 3.0 có 11.092 từ?`,wk=()=>`ทำไมบางเว็บไซต์บอกว่า HSK 3.0 มี 11,092 คำ?`,Tk=((e={},t={})=>{let n=t.locale??s();return n===`en`?xk(e):n===`zh`?Sk(e):n===`vi`?Ck(e):wk(e)}),Ek=e=>`That is the count in the 2021 standard (GF0025-2021), a language-ability benchmark. The exam syllabus CTI published in November 2025 is what the exam actually tests — ${e?.total} words — and it is the one these lists follow.`,Dk=e=>`那是 2021 年《国际中文教育中文水平等级标准》(GF0025-2021)的数字,它是语言能力标准。汉考国际 2025 年 11 月发布的考试大纲才是考试实际考查的范围,共 ${e?.total} 词,这里的词表依据的就是它。`,Ok=e=>`Đó là con số trong tiêu chuẩn năm 2021 (GF0025-2021), một chuẩn năng lực ngôn ngữ. Đại cương thi mà CTI công bố tháng 11/2025 mới là phạm vi kỳ thi thực sự kiểm tra — ${e?.total} từ — và các danh sách ở đây tuân theo đại cương đó.`,kk=e=>`นั่นคือตัวเลขในมาตรฐานปี 2021 (GF0025-2021) ซึ่งเป็นเกณฑ์วัดความสามารถทางภาษา ส่วนหลักสูตรสอบที่ CTI ประกาศเมื่อเดือนพฤศจิกายน 2025 คือขอบเขตที่ข้อสอบใช้ทดสอบจริง — ${e?.total} คำ — และรายการคำศัพท์ที่นี่ยึดตามหลักสูตรนั้น`,Ak=((e,t={})=>{let n=t.locale??s();return n===`en`?Ek(e):n===`zh`?Dk(e):n===`vi`?Ok(e):kk(e)}),jk=()=>`Does each level’s list include the levels below it?`,Mk=()=>`每一级的词表包含前面级别的词吗?`,Nk=()=>`Danh sách của mỗi cấp có bao gồm các cấp thấp hơn không?`,Pk=()=>`รายการคำศัพท์ของแต่ละระดับรวมระดับที่ต่ำกว่าด้วยหรือไม่?`,Fk=((e={},t={})=>{let n=t.locale??s();return n===`en`?jk(e):n===`zh`?Mk(e):n===`vi`?Nk(e):Pk(e)}),Ik=()=>`No. Each level page lists only the words that level adds, so the nine levels add up to exactly 11,000 with no repeats. The exam assumes everything below your level; switch a list to “with earlier levels” to see them together.`,Lk=()=>`不包含。每一级页面只列这一级新增的词,所以九个级别加起来正好是 11,000 词、没有重复。考试默认你掌握前面所有级别,在词表上切到「含前面级别」可以一起看。`,Rk=()=>`Không. Mỗi trang cấp chỉ liệt kê những từ cấp đó thêm vào, nên chín cấp cộng lại đúng bằng 11.000 từ, không trùng lặp. Kỳ thi mặc định bạn đã nắm mọi thứ ở các cấp thấp hơn; chuyển danh sách sang “gồm cả các cấp trước” để xem chung.`,zk=()=>`ไม่รวม แต่ละหน้าระดับจะแสดงเฉพาะคำที่ระดับนั้นเพิ่มเข้ามา ดังนั้นเก้าระดับรวมกันจึงเท่ากับ 11,000 คำพอดีโดยไม่ซ้ำกัน ข้อสอบถือว่าคุณเชี่ยวชาญทุกอย่างในระดับที่ต่ำกว่าแล้ว สลับรายการเป็น “รวมระดับก่อนหน้า” เพื่อดูพร้อมก
12ัน`,Bk=((e={},t={})=>{let n=t.locale??s();return n===`en`?Ik(e):n===`zh`?Lk(e):n===`vi`?Rk(e):zk(e)}),Vk=()=>`HSK 3.0 vocabulary`,Hk=()=>`HSK 3.0 词汇`,Uk=()=>`Từ vá»±ng HSK 3.0`,Wk=()=>`คำศัพท์ HSK 3.0`,Gk=((e={},t={})=>{let n=t.locale??s();return n===`en`?Vk(e):n===`zh`?Hk(e):n===`vi`?Uk(e):Wk(e)}),Kk=e=>`${e?.label} vocabulary`,qk=e=>`${e?.label}词汇`,Jk=e=>`Từ vá»±ng ${e?.label}`,Yk=e=>`คำศัพท์ ${e?.label}`,Xk=((e,t={})=>{let n=t.locale??s();return n===`en`?Kk(e):n===`zh`?qk(e):n===`vi`?Jk(e):Yk(e)}),Zk=e=>`${e?.label} vocabulary list`,Qk=e=>`${e?.label}词汇表`,$k=e=>`Danh sách từ vá»±ng ${e?.label}`,eA=e=>`รายการคำศัพท์ ${e?.label}`,tA=((e,t={})=>{let n=t.locale??s();return n===`en`?Zk(e):n===`zh`?Qk(e):n===`vi`?$k(e):eA(e)}),nA=()=>`HSKK Speaking Practice — Record and Get AI Scored Instantly | HSKWin`,rA=()=>`HSKK 口语练习——录音即得 AI 评分 | HSKWin`,iA=()=>`Luyện nói HSKK — Ghi âm và được AI chấm điểm ngay | HSKWin`,aA=()=>`ฝึกพูด HSKK — อัดเสียงแล้วให้ AI ให้คะแนนทันที | HSKWin`,oA=((e={},t={})=>{let n=t.locale??s();return n===`en`?nA(e):n===`zh`?rA(e):n===`vi`?iA(e):aA(e)}),sA=()=>`Practise HSKK speaking in your browser. Record an answer and get intelligibility, tone, fluency and pace measured from your own audio, with sentence-level feedback. Works on phones, no app.`,cA=()=>`在浏览器里练 HSKK 口语。录下回答,即可从你自己的录音中测出清晰度、声调、流利度和语速,并逐句给出反馈。手机也能用,无需下载 App。`,lA=()=>`Luyện nói HSKK ngay trên trình duyệt. Ghi âm câu trả lời và nhận đánh giá về độ rõ ràng, thanh điệu, độ trôi chảy và tốc độ từ chính bản ghi âm cá»§a bạn, kèm nhận xét theo từng câu. Dùng được trên điện thoại, không cần cài ứng dụng.`,uA=()=>`ฝึกพูด HSKK ได้ในเบราว์เซอร์ อัดเสียงคำตอบแล้วรับการวัดความชัดเจน วรรณยุกต์ ความคล่อง และจังหวะการพูดจากเสียงของคุณเอง พร้อมคำแนะนำรายประโยค ใช้งานได้บนมือถือ ไม่ต้องติดตั้งแอป`,dA=((e={},t={})=>{let n=t.locale??s();return n===`en`?sA(e):n===`zh`?cA(e):n===`vi`?lA(e):uA(e)}),fA=()=>`HSK Writing Practice — Exam-Style Questions with AI Marking | HSKWin`,pA=()=>`HSK 写作练习——真题风格题目,AI 批改 | HSKWin`,mA=()=>`Luyện viết HSK — Đề bài theo phong cách thi thật, AI chấm điểm | HSKWin`,hA=()=>`ฝึกเขียน HSK — โจทย์สไตล์ข้อสอบจริง ให้ AI ตรวจให้คะแนน | HSKWin`,gA=((e={},t={})=>{let n=t.locale??s();return n===`en`?fA(e):n===`zh`?pA(e):n===`vi`?mA(e):hA(e)}),_A=()=>`Exam-style HSK writing questions for HSK 3 to 7–9, written to the HSK 3.0 syllabus, each with a model answer. Write your answer and get it scored out of the task’s full marks, with a short examiner’s comment.`,vA=()=>`按 HSK 3.0 大纲编写的 HSK 写作练习题,覆盖 HSK 3 到 7–9 级,每题附范文。写完即按该题满分给分,并附简短的考官点评。`,yA=()=>`Đề viết theo phong cách thi HSK cho các cấp từ HSK 3 đến 7–9, biên soạn theo đại cương HSK 3.0, mỗi đề kèm bài mẫu. Viết câu trả lời cá»§a bạn và nhận điểm trên tổng điểm cá»§a đề, kèm nhận xét ngắn từ giám khảo.`,bA=()=>`โจทย์เขียนสไตล์ข้อสอบ HSK สำหรับระดับ HSK 3 ถึง 7–9 เขียนตามหลักสูตร HSK 3.0 แต่ละข้อมีคำตอบตัวอย่าง เขียนคำตอบของคุณแล้วรับคะแนนเทียบà¸
12à¸±à¸šà¸„ะแนนเต็มของข้อนั้น พร้อมความเห็นสั้นๆ จากผู้ตรวจข้อสอบ`,xA=((e={},t={})=>{let n=t.locale??s();return n===`en`?_A(e):n===`zh`?vA(e):n===`vi`?yA(e):bA(e)}),SA=()=>`HSK Level Test — Find Your HSK Level in 3 Minutes | HSKWin`,CA=()=>`HSK 水平测试——3 分钟测出你的 HSK 级别 | HSKWin`,wA=()=>`Bài Kiểm Tra Trình Độ HSK — Xác Định Cấp Độ HSK Cá»§a Bạn Trong 3 Phút | HSKWin`,TA=()=>`แบบทดสอบวัดระดับ HSK — หาระดับ HSK ของคุณใน 3 นาที | HSKWin`,EA=((e={},t={})=>{let n=t.locale??s();return n===`en`?SA(e):n===`zh`?CA(e):n===`vi`?wA(e):TA(e)}),DA=()=>`Free adaptive HSK placement test across all nine HSK 3.0 levels. Ten questions, three minutes, four question formats — not just flashcards. Get an estimated level and which skill to fix first.`,OA=()=>`免费的 HSK 自适应定级测试,覆盖 HSK 3.0 全部九个级别。十道题,三分钟,四种题型——不只是单词卡。给出预估级别,并指出最需要提高的能力。`,kA=()=>`Bài kiểm tra xếp cấp HSK thích ứng miễn phí, trải khắp cả chín cấp độ HSK 3.0. Mười câu hỏi, ba phút, bốn dạng câu hỏi — không chỉ là thẻ từ vá»±ng. Nhận cấp độ ước tính và kỹ năng cần cải thiện trước tiên.`,AA=()=>`แบบทดสอบวัดระดับ HSK แบบปรับระดับอัตโนมัติ ฟรี ครอบคลุมทั้งเก้าระดับของ HSK 3.0 สิบข้อ สามนาที สี่รูปแบบคำถาม — ไม่ใช่แค่บัตรคำศัพท์ รับระดับโดยประมาณและทักษะที่ควรแก้ไขก่อน`,jA=((e={},t={})=>{let n=t.locale??s();return n===`en`?DA(e):n===`zh`?OA(e):n===`vi`?kA(e):AA(e)}),MA=()=>`Free HSK Tools — Level Test, Score Calculator, Exam Reminder | HSKWin`,NA=()=>`HSK 免费工具:水平测试、分数计算器、报名提醒 | HSKWin`,PA=()=>`Công Cụ HSK Miễn Phí — Kiểm Tra Trình Độ, Tính Điểm, Nhắc Lịch Thi | HSKWin`,FA=()=>`เครื่องมือ HSK ฟรี — ทดสอบระดับ คำนวณคะแนน แจ้งเตือนสอบ | HSKWin`,IA=((e={},t={})=>{let n=t.locale??s();return n===`en`?MA(e):n===`zh`?NA(e):n===`vi`?PA(e):FA(e)}),LA=()=>`Three free HSK tools from HSKWin: a placement test for which level to sit, a score calculator with the pass marks, and a registration reminder.`,RA=()=>`HSKWin 的三个免费 HSK 工具:几分钟测出该考哪一级,算总分对照合格线,以及报名截止提醒。`,zA=()=>`Ba công cụ HSK miễn phí từ HSKWin: bài kiểm tra xếp cấp, công cụ tính điểm kèm điểm đạt, và nhắc lịch đăng ký thi.`,BA=()=>`เครื่องมือ HSK ฟรีสามอย่างจาก HSKWin: แบบทดสอบวัดระดับ เครื่องคำนวณคะแนนพร้อมเกณฑ์ผ่าน และการแจ้งเตือนปิดรับสมัคร`,VA=((e={},t={})=>{let n=t.locale??s();return n===`en`?LA(e):n===`zh`?RA(e):n===`vi`?zA(e):BA(e)}),HA=e=>`Part ${e?.n}`,UA=e=>`第${e?.n}部分`,WA=e=>`Phần ${e?.n}`,GA=e=>`ส่วนที่ ${e?.n}`,KA=((e,t={})=>{let n=t.locale??s();return n===`en`?HA(e):n===`zh`?UA(e):n===`vi`?WA(e):GA(e)}),qA=e=>`${e?.questions} questions, about ${e?.minutes} minutes — the full HSK ${e?.level} paper.`,JA=e=>`共${e?.questions}题,约${e?.minutes}分钟,完整模拟HSK ${e?.level}考试。`,YA=e=>`${e?.questions} câu, khoảng ${e?.minutes} phút — đề HSK ${e?.level} đầy đủ.`,XA=e=>`${e?.questions} ข้อ ประมาณ ${e?.minutes} นาที — ข้อสอบ HSK ${e?.level} ฉบับเต็ม`,ZA=((e,t={})=>{let n=t.locale??s();return n===`en`?qA(e):n===`zh`?JA(e):n===`vi`?YA(e):XA(e)});function QA({...e}){return(0,j.jsx)(Ct,{"data-slot":`dialog`,...e})}function $A({...e}){return(0,j.jsx)(Tt,{"data-slot":`dialog-trigger`,...e})}function ej({...e}){return(0,j.jsx)(bt,{"data-slot":`dialog-portal`,...e})}function tj({className:e,...t}){return(0,j.jsx)(yt,{"data-slot":`dialog-overlay`,className:_t(`fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,e),...t})}function nj({className:e,children:t,showCloseButton:n=!0,...r}){return(0,j.jsxs)(ej,{children:[(0,j.jsx)(tj,{}),(0,j.jsxs)(vt,{"data-slot":`dialog-content`,className:_t(`fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 roun
12ded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-lg data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...r,children:[t,n&&(0,j.jsxs)(wt,{"data-slot":`dialog-close`,render:(0,j.jsx)(gt,{variant:`ghost`,className:`absolute top-2 right-2`,size:`icon-sm`}),children:[(0,j.jsx)(mt,{}),(0,j.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function rj({className:e,...t}){return(0,j.jsx)(`div`,{"data-slot":`dialog-header`,className:_t(`flex flex-col gap-2`,e),...t})}function ij({className:e,showCloseButton:t=!1,children:n,...r}){return(0,j.jsxs)(`div`,{"data-slot":`dialog-footer`,className:_t(`-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end`,e),...r,children:[n,t&&(0,j.jsx)(wt,{render:(0,j.jsx)(gt,{variant:`outline`}),children:`Close`})]})}function aj({className:e,...t}){return(0,j.jsx)(xt,{"data-slot":`dialog-title`,className:_t(`text-base leading-none font-medium`,e),...t})}function oj({className:e,...t}){return(0,j.jsx)(St,{"data-slot":`dialog-description`,className:_t(`text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,e),...t})}var sj={stripe:`Stripe`,creem:`Creem`,waffo:`Waffo`,paypal:`PayPal`,alipay:`Alipay`,wechat:`WeChat Pay`};function cj({open:e,onOpenChange:t,providers:n,loadingProvider:r,onSelect:i,planName:a,price:o}){return(0,j.jsx)(QA,{open:e,onOpenChange:t,children:(0,j.jsxs)(nj,{className:`sm:max-w-md`,children:[(0,j.jsxs)(rj,{children:[(0,j.jsx)(aj,{children:Mc()}),(0,j.jsx)(oj,{children:a?o?Hc({plan:a,price:o}):Kc({plan:a}):Lc()})]}),(0,j.jsx)(`div`,{className:`mt-2 space-y-2`,children:n.map(e=>(0,j.jsxs)(gt,{variant:`outline`,className:`h-12 w-full justify-start gap-3`,disabled:!!r,onClick:()=>i(e),children:[r===e?(0,j.jsx)(Qs,{className:`size-4 animate-spin`}):(0,j.jsx)(Xs,{className:`size-4`}),(0,j.jsx)(`span`,{children:sj[e]})]},e))})]})})}function lj(){let{data:e,isPending:t}=Wo(),n=qs(),r=(0,A.useRef)(!1);return(0,A.useEffect)(()=>{if(r.current||t||!e?.user)return;let i=new URLSearchParams(window.location.search),a=i.get(`buy`);if(!a||!ls(a))return;r.current=!0;let o=i.get(`buy_from`)||`resume`;i.delete(`buy`),i.delete(ds);let s=i.toString(),c=`${window.location.pathname}${s?`?${s}`:``}${window.location.hash}`;window.history.replaceState(window.history.state,``,c),n.start({productId:a,redirect:c,source:o})},[e?.user,t]),(0,j.jsx)(cj,{...n.providerModal})}function uj({websiteId:e}){return e?(0,j.jsx)(`script`,{id:`crisp-widget`,async:!0,dangerouslySetInnerHTML:{__html:`window.$crisp=[];window.CRISP_WEBSITE_ID="${e}";(function(){var d=document;var s=d.createElement("script");s.src="https://client.crisp.chat/l.js";s.async=1;d.getElementsByTagName("head")[0].appendChild(s);})();`}}):null}function dj({propertyId:e,widgetId:t}){return!e||!t?null:(0,j.jsx)(`script`,{id:`tawk-widget`,async:!0,dangerouslySetInnerHTML:{__html:`var Tawk_API=Tawk_API||{},Tawk_LoadStart=new Date();(function(){var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];s1.async=true;s1.src="https://embed.tawk.to/${e}/${t}";s1.charset="UTF-8";s1.setAttribute("crossorigin","*");s0.parentNode.insertBefore(s1,s0);})();`}})}function fj({crispWebsiteId:e,tawkPropertyId:t,tawkWidgetId:n}){return(0,j.jsxs)(j.Fragment,{children:[e?(0,j.jsx)(uj,{websiteId:e}):null,t&&n?(0,j.jsx)(dj,{propertyId:t,widgetId:n}):null]})}var pj=/^\/(sign-in|sign-up|verify-email|forgot-password|reset-password|auth-callback)(\/|\?|#|$)/;function mj(e){if(!e)return null;let t=e;if(!t.startsWith(`/`)||t.startsWith(`//`)){let e=typeof window<`u`?window.location.origin:``;if(!e)return null;try{let n=new URL(t,e);if(n.origin!==e)return null;t=n.pathname+n.search+n.hash}catch{return null}}return pj.test(t)?null:t}var hj=[`javascript`,`data`,`vbscript`,`blob`,`file`];function gj(e){return!e||!/^[a-z][a-z0-9+.-]*:/i.test(e)||/^https?:/i.test(e)?!1:!hj.includes(_j(e))}function _j(e){let t=/^([a-z][a-z0-9+.-]*):/i.exec(e);return t?t[1].toLowerCase():``}function vj(e,t){if(!gj(e)||!t)return!1;let n=_j(e);return t.split(`,`).map(e=>
12e.trim().toLowerCase()).filter(Boolean).includes(n)}function yj(e){let{redirect:t,callbackUrl:n,fallback:r=`/settings`}=e;return gj(t)?`/auth-callback?redirect=${encodeURIComponent(t)}`:mj(n)||mj(t)||r}function bj(e=`/`){return typeof window>`u`?e:`${l(window.location.pathname)}${window.location.search}`}function xj(){let{data:e,isPending:t}=Wo(),{data:n}=Gs(),r=(0,A.useRef)(!1);return(0,A.useEffect)(()=>{r.current||n&&(t||e?.user||n.google_one_tap_enabled!==`true`||!n.google_client_id||(r.current=!0,qo(n).oneTap?.({callbackURL:bj(`/`),onPromptNotification:()=>{}}).catch(()=>{})))},[n,e,t]),null}function Sj(e){typeof navigator>`u`||!navigator.sendBeacon||navigator.sendBeacon(`/api/user/locale`,JSON.stringify({locale:e}))}var Cj=`hskwin.lang-suggest`;function wj({pathname:e}){let[t,n]=(0,A.useState)(null);return(0,A.useEffect)(()=>{if(s()!==`en`||/^\/(exam|admin)\b/.test(e))return;try{if(localStorage.getItem(Cj))return}catch{return}let t=(navigator.languages??[navigator.language]).map(e=>e.toLowerCase().split(`-`)[0]).find(e=>at(e));t&&t!==`en`&&at(t)&&n(t)},[e]),t?(0,j.jsxs)(`div`,{role:`dialog`,"aria-label":qx({},{locale:t}),lang:t,className:`bg-card border-border fixed bottom-4 left-1/2 z-50 flex w-[min(94vw,30rem)] -translate-x-1/2 items-center gap-3 rounded-2xl border py-2.5 pr-2 pl-4 text-sm shadow-[0_10px_30px_-12px_rgba(24,34,27,0.35)]`,children:[(0,j.jsx)(`span`,{className:`min-w-0 flex-1 font-medium`,children:qx({},{locale:t})}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>{Sj(t),c(t)},className:`bg-primary text-primary-foreground shrink-0 rounded-full px-3.5 py-1.5 text-[0.8rem] font-semibold`,children:Qx({},{locale:t})}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>{try{localStorage.setItem(Cj,`1`)}catch{}n(null)},"aria-label":rS({},{locale:t}),className:`text-muted-foreground hover:bg-accent grid size-8 shrink-0 place-items-center rounded-full`,children:(0,j.jsx)(mt,{className:`size-4`})})]}):null}function Tj(){let e=si({select:e=>e.location.href});return(0,A.useEffect)(()=>{if(typeof window>`u`||window.self===window.top)return;let t=e=>{try{window.parent.postMessage(e,`*`)}catch{}};t({type:`shipany-preview:navigate`,path:e});let n=()=>{let e=new Set;for(let t of Array.from(document.querySelectorAll(`a[href]`)))try{let n=new URL(t.href,window.location.href);if(n.origin!==window.location.origin)continue;if(e.add(n.pathname+n.search),e.size>=50)break}catch{}e.size&&t({type:`shipany-preview:links`,links:[...e].sort()})},r=setTimeout(n,600),i=setTimeout(n,2500);return()=>{clearTimeout(r),clearTimeout(i)}},[e]),null}function Ej(){let e=si({select:e=>{let t={present:[]};for(let n of e.matches){for(let e of n.meta??[]){if(!e)continue;typeof e.title==`string`&&(t.title=e.title);let n=e.name??e.property;n&&(t.present.push(n),n===`description`&&typeof e.content==`string`&&(t.description=e.content))}for(let e of n.links??[])e?.rel===`canonical`&&typeof e.href==`string`&&(t.canonical=e.href)}return JSON.stringify(t)}}),{title:t,description:n,canonical:r,present:i}=JSON.parse(e),a=new Set(i),o=[],s=(e,t,n)=>{n&&!a.has(t)&&o.push([e,t,n])};return s(`property`,`og:title`,t),s(`property`,`og:description`,n),s(`property`,`og:url`,r),s(`name`,`twitter:title`,t),s(`name`,`twitter:description`,n),(0,j.jsx)(j.Fragment,{children:o.map(([e,t,n])=>(0,j.jsx)(`meta`,{[e]:t,content:n},t))})}var Dj=({...e})=>{let{theme:t=`system`}=Ti();return(0,j.jsx)(Ws,{theme:t,className:`toaster group`,icons:{success:(0,j.jsx)(Ys,{className:`size-4`}),info:(0,j.jsx)(Zs,{className:`size-4`}),warning:(0,j.jsx)(nc,{className:`size-4`}),error:(0,j.jsx)($s,{className:`size-4`}),loading:(0,j.jsx)(Qs,{className:`size-4 animate-spin`})},style:{"--normal-bg":`var(--popover)`,"--normal-text":`var(--popover-foreground)`,"--normal-border":`var(--border)`,"--border-radius":`var(--radius)`},toastOptions:{classNames:{toast:`cn-toast`}},...e})},Oj=h().handler(p(`cbd81923ae1249d4c007f69579597cf1e79f1f7b8675cc608ba82e8926b5bb59`)),q=Hr({loader:()=>Oj(),head:()=>({meta:[{charSet:`utf-8`},{name:`viewport`,content:`width=device-width, initial-scale=1`},{title:k.app_name},{name:`description`,content:k.app_description}
12,...Ri(s())],links:[{rel:`icon`,href:`/favicon.svg`,type:`image/svg+xml`},{rel:`apple-touch-icon`,href:`/favicon.svg`}]}),component:kj,shellComponent:Aj,notFoundComponent:jj,errorComponent:Mj});function kj(){let e=q.useLoaderData(),t=ye(),n=ut(t);return(0,j.jsxs)(Ze,{client:Fi(),children:[(0,j.jsxs)(Ei,{attribute:`class`,forcedTheme:`light`,enableColorScheme:!0,children:[(0,j.jsx)(Qr,{}),(0,j.jsx)(Tj,{}),(0,j.jsx)(Dj,{position:`top-center`,richColors:!0}),(0,j.jsx)(xj,{}),e?.gaId&&n?(0,j.jsx)(ts,{measurementId:e.gaId}):null,n?(0,j.jsx)(rs,{pathname:t}):null,n?(0,j.jsx)(Xo,{}):null,n?(0,j.jsx)(es,{}):null,(0,j.jsx)(lj,{}),(0,j.jsx)(wj,{pathname:t}),e?.adsenseCode?(0,j.jsx)(Vi,{code:e.adsenseCode}):null,(0,j.jsx)(fj,{crispWebsiteId:e?.crispWebsiteId||void 0,tawkPropertyId:e?.tawkPropertyId||void 0,tawkWidgetId:e?.tawkWidgetId||void 0})]}),!1]})}function Aj({children:e}){return(0,j.jsxs)(`html`,{lang:s(),suppressHydrationWarning:!0,children:[(0,j.jsxs)(`head`,{children:[(0,j.jsx)(fi,{}),(0,j.jsx)(Ej,{})]}),(0,j.jsxs)(`body`,{className:`font-sans antialiased`,children:[e,(0,j.jsx)(pi,{})]})]})}function jj(){return(0,j.jsxs)(`div`,{className:`bg-background text-foreground flex min-h-screen flex-col items-center justify-center gap-6 px-6 py-16 text-center`,children:[(0,j.jsx)(`img`,{src:`/imgs/panda/panda-bamboo.webp`,alt:``,width:617,height:617,className:`w-40 max-w-full`}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h1`,{className:`font-display text-3xl font-semibold tracking-tight`,children:`404`}),(0,j.jsx)(`p`,{className:`text-muted-foreground mt-2`,children:`This page isn’t here. These are:`})]}),(0,j.jsx)(`nav`,{className:`flex flex-wrap justify-center gap-x-5 gap-y-2 text-sm`,children:[[`/mock-test`,`Mock tests`],[`/hsk-3-0-status`,`HSK 3.0 status`],[`/tools/level-test`,`Find your level`],[`/`,`Home`]].map(([e,t])=>(0,j.jsx)(`a`,{href:e,className:`text-bamboo font-bold underline decoration-2 underline-offset-4`,children:t},e))})]})}function Mj({error:e,reset:t}){return(0,j.jsxs)(`div`,{className:`bg-background text-foreground flex min-h-screen flex-col items-center justify-center gap-4`,children:[(0,j.jsx)(`h1`,{className:`text-4xl font-bold`,children:`Oops`}),(0,j.jsx)(`p`,{className:`text-muted-foreground`,children:`Something went wrong. Please try again.`}),!1,(0,j.jsx)(`button`,{type:`button`,onClick:t,className:`text-sm underline underline-offset-4`,children:`Try again`})]})}function Nj(e,t=`usd`,{whole:n=!1}={}){return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t.toUpperCase(),...n&&e%100==0&&{maximumFractionDigits:0}}).format(e/100)}function Pj(e,t){let n=ls(`hskwin-monthly`,t),r=ls(`hskwin-lifetime`,t),i=r.listPriceInCents;return{monthly:Nj(n.priceInCents,n.currency),lifetime:Nj(r.priceInCents,r.currency),lifetimeList:i?Nj(i,r.currency):void 0,lifetimeSave:i?Nj(i-r.priceInCents,r.currency,{whole:!0}):void 0,lifetimeMonths:Math.round(r.priceInCents/n.priceInCents),monthlyPerMock:Nj(Math.round(n.priceInCents/3),n.currency,{whole:!0}),offerEnds:r.offerEndsAt?new Date(r.offerEndsAt).toLocaleDateString(e,{month:`long`,day:`numeric`,timeZone:`UTC`}):void 0}}var Fj=M(`/pricing`)({loader:()=>({locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,n=e=>o(`${k.app_url}/pricing`,{locale:e}).href;return{meta:[{title:Uf({},{locale:t})},{name:`description`,content:Nf({price:Pj(t).lifetime},{locale:t})}],links:[{rel:`canonical`,href:n(t)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:n(e)})),{rel:`alternate`,hrefLang:`x-default`,href:n(`en`)}]}},component:N(()=>O(()=>import(`./pricing-C-wOkn27.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33])),`component`)}),Ij=M(`/mistakes-print`)({head:()=>({meta:[{name:`robots`,content:`noindex, nofollow`}]}),component:N(()=>O(()=>import(`./mistakes-print-B10MExh1.js`),__vite__mapDeps([34,1,4,5,23,17,8,9,35,36,6,7,14,15,32,37,38,39,40,41,42,43,44,45,26,33,46,47,48,49])),`component`)}),Lj=h().handler(p(`2e60f20be617caf3defcc57988c89ec48182a7e04a435221fbc1a1a83a5a9b6d`)),Rj=h().handler(p(`a3d5ded018d397f9280f8109179d8f68f803d8bae1c4ade13f6b9b9e96b4e9de`)),zj=h().handler(p(`1fd620f0dd086e5bad87ea9d45743c0c616a0c2e370844c9b5997eec291a6327`)),Bj=h().handler(p(`e80bac57090b139f5b415c0c34fcb28d437f9355414529e0c994a85ca9529f70`)),Vj=h().handler(p(`4bc2e66a0bc3c29b81953beaf23479be75f8d617106be465cdcd6c639972e9d5`)),Hj=h({method:`POST`}).handler(p(`c4224c1e757121bf198b8e1ac17064222742e622639670bed9c98f2861844273`)),Uj=h().handler(p(`2cc220ad9dfb8a3388b11cabb2b1a0e7764d8b2bb6db3df2140b2afb850b80f5`)),Wj=h().handler(p(`93d6b3e4b93bc1a32130f0c8d9ea814b5242101130497e9af711d8109da9fe31`)),Gj=h().handler(p(`60e4ee10e545560d937b9e2a38385fd0765d3c303a70788096fe7fad1c39f9c1`)),Kj=h().handler(p(`e3368ac80fb9b94c93ff60ea7b60b598f91032af58da5015cf968183c689f1ac`)),qj=h().handler(p(`bde5982b9276af2e550282ce8
1267e4d3a6862583df78df51e2afaecdb76d1b249`)),Jj=M(`/hsk-levels`)({loader:async()=>({...await Rj(),locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,n=t.startsWith(`zh`)||t.startsWith(`en`),i=e=>o(`${k.app_url}/hsk-levels`,{locale:e}).href;return{meta:[{title:n?`HSK Levels Explained — All 9 Levels, Vocabulary, Pass Marks, CEFR | HSKWin`:VT({},{locale:t})},{name:`description`,content:n?`Every HSK level compared: vocabulary size, characters, exam length, pass mark and CEFR equivalent, under the HSK 3.0 three-band nine-level standard. Plus a free 5-minute placement test.`:KT({},{locale:t})}],links:[{rel:`canonical`,href:i(t)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:i(e)})),{rel:`alternate`,hrefLang:`x-default`,href:i(`en`)}]}},component:N(()=>O(()=>import(`./hsk-levels-Cab8YJyw.js`),__vite__mapDeps([50,1,17,8,9,2,3,4,5,6,7,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,51,52,53,54,55,56,57,58,59])),`component`)}),Yj=()=>O(()=>import(`./hsk-exam-dates-2026-BsGJBZzt.js`),__vite__mapDeps([60,1,4,5,23,61,17,8,9,62,15,63,64,2,3,6,7,10,11,12,13,14,16,18,19,20,21,22,24,25,26,27,28,29,30,65,66,51,52])),Xj=`/hsk-exam-dates-2026`,Zj=M(`/hsk-exam-dates-2026`)({loader:async()=>({sittings:await zj({data:{upcomingOnly:!0}}),locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,n=e=>o(`${k.app_url}${Xj}`,{locale:e}).href,i={"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:[[Ml,Dl],[Hl,Ll],[ql,B],[ru,Ql]].map(([e,n])=>({"@type":`Question`,name:e({},{locale:t}),acceptedAnswer:{"@type":`Answer`,text:n({},{locale:t})}}))};return{meta:[{title:pu({},{locale:t})},{name:`description`,content:cu({},{locale:t})}],links:[{rel:`canonical`,href:n(t)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:n(e)})),{rel:`alternate`,hrefLang:`x-default`,href:n(`en`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify(i)}]}},component:N(Yj,`component`)}),Qj=M(`/hsk-3-0-status`)({loader:async()=>({...await Bj(),locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,n=e?.updatedAt??new Date().toISOString(),i=e=>o(`${k.app_url}/hsk-3-0-status`,{locale:e}).href,a={"@context":`https://schema.org`,"@type":`Article`,headline:ZT({},{locale:t}),dateModified:n,datePublished:`2026-08-13`,author:{"@type":`Organization`,name:`HSKWin`},about:{"@type":`Thing`,name:`HSK 3.0`}};return{meta:[{title:nE({},{locale:t})},{name:`description`,content:sE({},{locale:t})}],links:[{rel:`canonical`,href:i(t)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:i(e)})),{rel:`alternate`,hrefLang:`x-default`,href:i(`en`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify(a)}]}},component:N(()=>O(()=>import(`./hsk-3-0-status-V0nHohI_.js`),__vite__mapDeps([67,1,4,5,61,23,17,8,9,2,3,6,7,10,11,12,13,14,15,16,18,19,20,21,22,24,25,26,27,28,29,30,51,52])),`component`)}),$j=M(`/settings`)({component:N(()=>O(()=>import(`./route-Y9K_A7_Z.js`),__vite__mapDeps([68,1,4,5,69,70,7,8,13,71,3,6,9,10,11,12,14,15,16,72,23,17,20,22,73,74,36,26,21,29,75,76,77,42,78,79,80,81,82,27,52,48,83,84,85])),`component`)}),eM=M(`/admin`)({component:N(()=>O(()=>import(`./route-BYFeSU2W.js`),__vite__mapDeps([86,1,71,3,4,5,6,7,8,9,10,11,12,13,14,15,16,69,70,72,23,17,20,22,73,74,36,26,21,29,24,25,27,52])),`component`)}),tM=M(`/(pages)`)({component:N(()=>O(()=>import(`./route-E86Zzcsl.js`),__vite__mapDeps([87,1,17,8,9,88,15,89,5])),`component`)});function nM({items:e,className:t}){return(0,j.jsx)(`div`,{className:_t(`border-border bg-card divide-border divide-y overflow-hidden rounded-xl border px-6 shadow-[0_1px_2px_rgba(24,34,27,0.04),0_10px_24px_-18px_rgba(24,34,27,0.2)]`,t),children:e.map(e=>(0,j.jsxs)(`details`,{className:`group`,children:[(0,j.jsxs)(`summary`,{className:`flex cursor-pointer list-none items-center gap-5 py-4 text-[1.02rem] font-semibold [&::-webkit-details-marker]:hidden`,children:[(0,j.jsx)(`h3`,{className:`text-[1.02rem] font-semibold`,children:e.q}),(0,j.jsx)(`span`,{"aria-hidden":!0,className:`border-input text-primary ml-auto grid size-[26px] shrink-0 place-items-center rounded-full border transition-transform group-open:rotate-45`,children:(0,j.jsx)(ec,{className:`size-3.5`,strokeWidth:2.4})})]}),(0,j.jsxs)(`div`,{className:`pb-5`,children:[(0,j.jsx)(`p`,{className:`text-muted-foreground max-w-[70ch] text-[0.94rem] leading-relaxed`,children:e.a}),e.href?(0,j.jsxs)(Ce,{href:e.href,className:`text-primary group/link mt-3 inline-flex items-center gap-1.5 text-[0.9rem] font-semibold hover:underline hover:underline-offset-4`,children:[e.linkLabel,(0,j.jsx)(Js,{className:`size-3.5 shrink-0 transition-transform group-hover/link:translate-x-0.5`})]}):null]})]},e.q))})}var rM=()=>[{q:Md(),a:vu()},{q:Ld(),a:Cu()},{q:vf(),a:rd(),href:`/mock-test`,linkLabel:Dd()},{q:Kd(),a:Nu()},{q:Vd(),a:Ou()},{q:pf(),a:Qu()},{q:Cf(),a:cd(),href:`/hsk-levels`,linkLabel:Cd()},{q:Zd(),a:Ru()},{q:nf(),a:Uu()},{q:cf(),a:Ju()}];function iM(){let e=rM();return(0,j.jsx)(`section`,{className:`bg-band py-14 sm:py-20`,children:(0,j.jsxs)(`div`,{className:`mx-auto w-full max-w-6xl px-5 sm:px-8`,children:[(0,j.jsxs)(`div`,{className:`flex items-end justify-between gap-8`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`h2`,{className:`font-display text-[clamp(1.45rem,1.05rem+1.2vw,1.75rem)] leading-[1.18] font-bold tracking-[-0.02em] text-balance`,children:pd()}),(0,j.jsx)(`p`,{className:`text-muted-foreground mt-2.5 max-w-[58ch] text-[1.02rem] text-pretty`,children:vd()})]}),(0,j.jsx)(`img`,{src:`/imgs/panda/panda-think.webp`,alt:``,width:617,height:617,loading:`lazy`,decoding:`async`,className:`-mb-1 hidden w-[112px] shrink-0 sm:block`})]}),(0,j.jsx)(nM,{items:e,className:`mt-8`})]})})}var aM=()=>[{avatar:`amara`,name:um(),meta:am(),text:hm(),rating:5},{avatar:`tomasz`,name:Tm(),meta:bm(),text:Am(),rating:5},{avatar:`priya`,name:gh(),meta:dh(),text:xh(),rating:5},{avatar:`kenji`,name:Bm(),meta:Fm(),text:Gm(),rating:5}
12,{avatar:`sofia`,name:th(),meta:Xm(),text:oh(),rating:5},{avatar:`liam`,name:jh(),meta:Eh(),text:Ih(),rating:5}];function oM({rating:e}){return(0,j.jsx)(`p`,{className:`mt-3 flex items-center gap-0.5`,"aria-label":Vh({rating:e,best:5}),children:Array.from({length:5},(t,n)=>(0,j.jsx)(tc,{"aria-hidden":!0,className:n<e?`fill-primary text-primary size-[15px]`:`text-border fill-border size-[15px]`},n))})}function sM(){return(0,j.jsx)(`section`,{className:`py-14 sm:py-20`,children:(0,j.jsxs)(`div`,{className:`mx-auto w-full max-w-6xl px-5 sm:px-8`,children:[(0,j.jsx)(`h2`,{className:`font-display text-[clamp(1.45rem,1.05rem+1.2vw,1.75rem)] leading-[1.18] font-bold tracking-[-0.02em] text-balance`,children:Yp()}),(0,j.jsx)(`p`,{className:`text-muted-foreground mt-2.5 max-w-[66ch] text-[1.02rem]`,children:em()}),(0,j.jsx)(`ul`,{className:`mt-8 grid gap-5 md:grid-cols-2 lg:grid-cols-3`,children:aM().map(e=>(0,j.jsx)(`li`,{className:`border-border bg-card flex flex-col rounded-xl border p-6 shadow-[0_1px_2px_rgba(24,34,27,0.04),0_10px_24px_-18px_rgba(24,34,27,0.2)]`,children:(0,j.jsxs)(`figure`,{className:`m-0 flex flex-col`,children:[(0,j.jsxs)(`figcaption`,{className:`flex items-center gap-3`,children:[(0,j.jsx)(`img`,{src:`/imgs/reviews/${e.avatar}
12.webp`,alt:``,width:42,height:42,loading:`lazy`,decoding:`async`,className:`bg-bamboo-soft size-[42px] shrink-0 rounded-full object-cover`}),(0,j.jsxs)(`span`,{className:`min-w-0`,children:[(0,j.jsx)(`span`,{className:`font-display block text-[0.9rem] leading-tight font-bold`,children:e.name}),(0,j.jsx)(`span`,{className:`text-muted-foreground mt-0.5 block text-[0.8rem] leading-snug`,children:e.meta})]})]}),(0,j.jsx)(oM,{rating:e.rating}),(0,j.jsx)(`blockquote`,{className:`text-muted-foreground mt-2.5 text-[0.94rem] leading-relaxed text-pretty`,children:e.text})]})},e.name))})]})})}var cM=M(`/`)({loader:async()=>{let{speakingPapers:e,...t}=await Rj();return{...t,locale:s()}},head:({loaderData:e})=>{let t=e?.locale??`en`,n=e=>o(`${k.app_url}/`,{locale:e}).href,i={"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:rM().map(e=>({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}}))},a=`${k.app_url}/#hskwin`,s=aM(),c={"@type":`SoftwareApplication`,"@id":a,name:k.app_name},l={"@context":`https://schema.org`,"@type":`SoftwareApplication`,"@id":a,name:k.app_name,url:n(t),applicationCategory:`EducationalApplication`,applicationSubCategory:`HSK mock test and Chinese exam preparation`,operatingSystem:`Web browser`,inLanguage:r,description:_c({},{locale:t}),publisher:{"@type":`Organization`,name:k.app_name},offers:[{"@type":`Offer`,name:Rf({},{locale:t}),price:`0`,priceCurrency:`USD`},...us().map(e=>({"@type":`Offer`,name:e.planName,price:(e.priceInCents/100).toFixed(2),priceCurrency:e.currency.toUpperCase(),...e.offerEndsAt&&{priceValidUntil:e.offerEndsAt.slice(0,10)},category:e.type===is.SUBSCRIPTION?`Subscription`:`One-time`}))],aggregateRating:{"@type":`AggregateRating`,ratingValue:(s.reduce((e,t)=>e+t.rating,0)/s.length).toFixed(1),reviewCount:s.length,bestRating:`5`,worstRating:`1`},review:s.map(e=>({"@type":`Review`,itemReviewed:c,author:{"@type":`Person`,name:e.name},reviewRating:{"@type":`Rating`,ratingValue:String(e.rating),bestRating:`5`,worstRating:`1`},reviewBody:e.text}))};return{meta:[{title:Sc({},{locale:t})},{name:`description`,content:_c({},{locale:t})}],links:[{rel:`canonical`,href:n(t)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:n(e)})),{rel:`alternate`,hrefLang:`x-default`,href:n(`en`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify(i)},{type:`application/ld+json`,children:JSON.stringify(l)}]}},component:N(()=>O(()=>import(`./routes-BWyB9G96.js`),__vite__mapDeps([90,1,4,5,17,8,9,15,62,63,64,2,3,6,7,10,11,12,13,14,16,18,19,20,21,22,23,24,25,26,27,28,29,30,65,91,75,76,92,43,80,93,31,32,33,55,94,95,96,46])),`component`)}),lM={1:{words:300,common:180},2:{words:200,common:96},3:{words:500,common:195},4:{words:1e3,common:322},5:{words:1600,common:309},6:{words:1800,common:79},"7-9":{words:5600,common:51}},J=e=>e*60,uM=[{level:1,slug:`1`,label:`HSK 1`,labelZh:`HSK 一级`,band:`beginner`,words:500,vocabWords:300,characters:300,durationSec:J(40),totalScore:200,passScore:120,sections:[{code:`listening`,nameEn:`Listening`,nameZh:`听力`,maxScore:100,durationSec:J(12)},{code:`reading`,nameEn:`Reading`,nameZh:`阅读`,maxScore:100,durationSec:J(20)}],cefr:`A1`,canDoEn:`Handle greetings, numbers, dates and the simplest daily exchanges.`,canDoZh:`能完成问候、数字、日期等最基础的日常交流。`,canDoVi:`Xử lý được lời chào, số đếm, ngày tháng và các giao tiếp hằng ngày đơn giản nhất.`,canDoTh:`รับมือกับการทักทาย ตัวเลข วันที่ และบทสนทนาในชีวิตประจำวันที่ง่ายที่สุดได้`},{level:2,slug:`2`,label:`HSK 2`,labelZh:`HSK 二级`,band:`beginner`,words:1272,vocabWords:200,characters:600,durationSec:J(60),totalScore:300,passScore:180,sections:[{code:`listening`,nameEn:`Listening`,nameZh:`听力`,maxScore:100,durationSec:J(17)},{code:`reading`,nameEn:`Reading`,nameZh:`阅读`,maxScore:100,durationSec:J(25)},{code:`writing`,nameEn:`Writing`,nameZh:`书写`,maxScore:100,durationSec:J(10)}],cefr:`A2`,canDoEn:`Talk about routine, shopping, travel and immediate needs.`,canDoZh:`能就日常起居、购物、出行等熟悉话题进行简单交流。`,canDoVi:`Nói được về sinh hoạt thường ngày, mua sắm, đi lại và các nhu cầu trước mắt.`,canDoTh:`พูดคุยเรื่องกิจวัตรประจำวัน การซื้อของ การเดินทาง และความต้องการเฉพาะหน้าได้`},{level:3,slug:`3`,label:`HSK 3`,labelZh:`HSK 三级`,band:`beginner`,words:2245,vocabWords:500,characters:900,durationSec:J(83),speakingSec:J(15),totalScore:300,passScore:180,sections:[{code:`listening`,nameEn:`Listening`,nameZh:`听力`,maxScore:100,durationSec:J(23)},{code:`reading`,nameEn:`Reading`,nameZh:`阅读`,maxScore:100,durationSec:J(30)}
12,{code:`writing`,nameEn:`Writing`,nameZh:`书写`,maxScore:100,durationSec:J(20)}],cefr:`B1`,canDoEn:`Cope with most situations while travelling or studying in Chinese.`,canDoZh:`能应对在中国旅行、学习中遇到的大部分情况。`,canDoVi:`Ứng phó được với hầu hết các tình huống khi du lịch hoặc học tập bằng tiếng Trung.`,canDoTh:`รับมือกับสถานการณ์ส่วนใหญ่ขณะท่องเที่ยวหรือเรียนโดยใช้ภาษาจีนได้`},{level:4,slug:`4`,label:`HSK 4`,labelZh:`HSK 四级`,band:`intermediate`,words:3245,vocabWords:1e3,characters:1200,durationSec:J(85),speakingSec:J(20),totalScore:300,passScore:180,sections:[{code:`listening`,nameEn:`Listening`,nameZh:`听力`,maxScore:100,durationSec:J(20)},{code:`reading`,nameEn:`Reading`,nameZh:`阅读`,maxScore:100,durationSec:J(30)},{code:`writing`,nameEn:`Writing`,nameZh:`写作`,maxScore:100,durationSec:J(25)}],cefr:`B1+`,canDoEn:`Discuss a broad range of topics and communicate fluently with native speakers. The usual bar for university admission and scholarships.`,canDoZh:`能就较广泛话题进行讨论,与母语者较流利地交流。留学与奖学金常见的门槛。`,canDoVi:`Thảo luận được nhiều chủ đề và giao tiếp khá trôi chảy với người bản ngữ. Mức chuẩn thường gặp để du học và xin học bổng.`,canDoTh:`สนทนาหัวข้อที่หลากหลายและสื่อสารกับเจ้าของภาษาได้อย่างคล่องแคล่ว เกณฑ์ที่ใช้กันทั่วไปสำหรับการเข้าเรียนต่อและขอทุนการศึกษา`},{level:5,slug:`5`,label:`HSK 5`,labelZh:`HSK 五级`,band:`intermediate`,words:4316,vocabWords:1600,characters:1500,durationSec:J(110),speakingSec:J(23),totalScore:300,passScore:180,sections:[{code:`listening`,nameEn:`Listening`,nameZh:`听力`,maxScore:100,durationSec:J(25)},{code:`reading`,nameEn:`Reading`,nameZh:`阅读`,maxScore:100,durationSec:J(35)},{code:`writing`,nameEn:`Writing`,nameZh:`写作`,maxScore:100,durationSec:J(40)}],cefr:`B2`,canDoEn:`Read Chinese newspapers and magazines, follow films, and give a full speech.`,canDoZh:`能读懂中文报刊、看懂影视节目,并用中文进行较完整的演讲。`,canDoVi:`Đọc được báo và tạp chí tiếng Trung, xem hiểu phim ảnh, và trình bày một bài phát biểu tương đối hoàn chỉnh.`,canDoTh:`อ่านหนังสือพิมพ์และนิตยสารภาษาจีน ดูภาพยนตร์รู้เรื่อง และกล่าวสุนทรพจน์แบบค่อนข้างสมบูรณ์ได้`},{level:6,slug:`6`,label:`HSK 6`,labelZh:`HSK 六级`,band:`intermediate`,words:5456,vocabWords:1800,characters:1800,durationSec:J(125),speakingSec:J(23),totalScore:300,passScore:180,sections:[{code:`listening`,nameEn:`Listening`,nameZh:`听力`,maxScore:100,durationSec:J(30)},{code:`reading`,nameEn:`Reading`,nameZh:`阅读`,maxScore:100,durationSec:J(40)},{code:`writing`,nameEn:`Writing`,nameZh:`写作`,maxScore:100,durationSec:J(45)}],cefr:`C1`,canDoEn:`Understand written and spoken Chinese with ease and express yourself fluently in writing and speech.`,canDoZh:`能轻松理解听到或读到的中文信息,以口头或书面形式流利表达。`,canDoVi:`Hiểu tiếng Trung viết và nói một cách dễ dàng, diễn đạt trôi chảy bằng cả văn viết lẫn lời nói.`,canDoTh:`เข้าใจข้อมูลภาษาจีนทั้งที่ได้ยินและได้อ่านอย่างง่ายดาย และแสดงออกได้อย่างคล่องแคล่วทั้งการพูดและการเขียน`},{level:7,slug:`7-9`,label:`HSK 7–9`,labelZh:`HSK 七–九级`,band:`advanced`,words:11092,vocabWords:5600,characters:3e3,durationSec:J(210),totalScore:500,passScore:null,sections:[{code:`listening`,nameEn:`Listening`,nameZh:`听力`,maxScore:100,durationSec:J(30)}
12,{code:`reading`,nameEn:`Reading`,nameZh:`阅读`,maxScore:100,durationSec:J(60)},{code:`writing`,nameEn:`Writing`,nameZh:`书写`,maxScore:100,durationSec:J(55)},{code:`translation`,nameEn:`Translation`,nameZh:`翻译`,maxScore:100,durationSec:J(41)},{code:`speaking`,nameEn:`Speaking`,nameZh:`口语`,maxScore:100,durationSec:J(24)}],cefr:`C1–C2`,canDoEn:`Work, research or teach in Chinese. One computer-based paper, graded into bands 7, 8 or 9.`,canDoZh:`能用中文从事工作、研究或教学。一套机考卷,按 7 / 8 / 9 三级定档。`,canDoVi:`Làm việc, nghiên cứu hoặc giảng dạy bằng tiếng Trung. Một bài thi trên máy tính, được xếp vào bậc 7, 8 hoặc 9.`,canDoTh:`ทำงาน วิจัย หรือสอนโดยใช้ภาษาจีนได้ ข้อสอบเดียวที่ทำผ่านคอมพิวเตอร์ แบ่งระดับเป็น 7, 8 หรือ 9`}],dM=[{band:`beginner`,slug:`beginner`,label:`HSKK Beginner`,labelZh:`HSKK 初级`,pairsWith:`HSK 1–2`,durationSec:J(17),totalScore:100,passScore:60,parts:[{nameEn:`Listen and repeat`,nameZh:`听后重复`,count:15},{nameEn:`Listen and answer`,nameZh:`听后回答`,count:10},{nameEn:`Answer the question`,nameZh:`回答问题`,count:2}]},{band:`intermediate`,slug:`intermediate`,label:`HSKK Intermediate`,labelZh:`HSKK 中级`,pairsWith:`HSK 3–4`,durationSec:J(23),totalScore:100,passScore:60,parts:[{nameEn:`Listen and repeat`,nameZh:`听后重复`,count:10},{nameEn:`Describe the picture`,nameZh:`看图说话`,count:2},{nameEn:`Answer the question`,nameZh:`回答问题`,count:2}]},{band:`advanced`,slug:`advanced`,label:`HSKK Advanced`,labelZh:`HSKK 高级`,pairsWith:`HSK 5–6`,durationSec:J(25),totalScore:100,passScore:60,parts:[{nameEn:`Listen and retell`,nameZh:`听后复述`,count:3},{nameEn:`Read aloud`,nameZh:`朗读`,count:1},{nameEn:`Answer the question`,nameZh:`回答问题`,count:2}]}];function fM(e){return uM.find(t=>t.level===e)}function pM(e){return e>=7?`7-9`:String(e)}function mM(e){return uM.find(t=>t.slug===e)}function hM(e,t=`en`){let n=Math.round(e/60),r=Math.floor(n/60),i=n%60,a=t.slice(0,2).toLowerCase();return a===`zh`?r?i?`${r} 小时 ${i} 分钟`:`${r} 小时`:`${i} 分钟`:a===`vi`?r?i?`${r} giờ ${i} phút`:`${r} giờ`:`${i} phút`:a===`th`?r?i?`${r} ชม. ${i} นาที`:`${r} ชม.`:`${i} นาที`:r?i?`${r} h ${i} min`:`${r} h`:`${i} min`}var Y=e=>e.toLocaleString(`en-US`),gM={1:150,2:300,3:600,4:1200,5:2500,6:5e3,"7-9":null},_M=lM;function vM(e){let t=uM.findIndex(t=>t.level===e.level),n=[...uM.slice(0,t),e].reduce((e,t)=>e+t.vocabWords,0),r=gM[e.slug],i=t>0?gM[uM[t-1].slug]:0;return{added:e.vocabWords,total:n,oldAdded:r===null?null:r-(i??0),oldTotal:r,standard:e.words}}var yM=gM[6],bM=uM.reduce((e,t)=>e+t.vocabWords,0);function xM(e,t){return t?e.labelZh.replace(/^HSK\s*/,``).replace(/级$/,``):e.slug===`7`?`7–9`:e.slug}function SM(e,t){let n=t.startsWith(`zh`),r=Y(vM(e).added),i=xM(e,n),a=_E({count:r},{locale:t});return{before:`HSK `,numeral:i,after:a,plain:`HSK ${i}${a}`}}var CM={1:SE,2:DE,3:ME,4:LE,5:HE,6:qE,"7-9":QE};function wM(e,t){let n=CM[e];return n?n({},{locale:t}):``}function TM(e){let t=e;return{lede:rD({},{locale:t}),note:cD({},{locale:t}),points:[pD({},{locale:t}),vD({},{locale:t}),CD({},{locale:t}),OD({},{locale:t})]}}function EM(e,t){return e===null?``:`+${Y(t-e)} · ×${(t/e).toFixed(1)}`}function DM(e,t){let n=t.startsWith(`zh`),r=vM(e),i=n?e.labelZh:e.label,a=Math.round(r.added/bM*100),o=t;return r.total===r.added?ND({added:Y(r.added),syllabusTotal:Y(bM)},{locale:o}):RD({label:i,added:Y(r.added),pct:a,syllabusTotal:Y(bM),total:Y(r.total)},{locale:o})}function OM(e,t){let n=_M[e.slug];if(!n||n.common===0)return null;let r=Math.round(n.common/n.words*100);return UD({commonCount:Y(n.common),pct:r},{locale:t})}function kM(e,t){let n=uM.findIndex(t=>t.level===e.level);if(n<=0)return``;let r=uM[n-1];return t?n===1?`HSK 一级`:`HSK 一至${r.labelZh.replace(/^HSK\s*/,``)}`:n===1?`HSK 1`:`HSK 1–${r.slug}`}function AM(e,t){let n=vM(e),r=t.startsWith(`zh`)?e.labelZh:e.label,i=t;if(n.oldTotal===null){let e=(n.total/yM).toFixed(1);return JD({ceiling:Y(yM),belowTotal:Y(n.total-n.added),added:Y(n.added),total:Y(n.total),times:e},{locale:i})}let a=n.total-n.oldTotal,o=(n.total/n.oldTotal).toFixed(1);return n.added<(n.oldAdded??0)?$D({label:r,oldAdded:Y(n.oldAdded),oldTotal:Y(n.oldTotal),added:Y(n.added),slug:e.slug,total:Y(n.total),diff:Y(a)},{locale:i}):iO({label:r,oldAdded:Y(n.oldAdded),oldTotal:Y(n.oldTotal),added:Y(n.added),slug:e.slug,total:Y(n.total),diff:Y(a),times:o},{locale:i})}function jM(e,t){let n=Math.ceil(e/20),r=n+21,i=t;return{days:n,span:r<=84?lO({n:Math.round(r/7)},{locale:i}):mO({n:Math.round(r/30)},{locale:i})}}function MM(e,t){let n=t.startsWith(`zh`),r=t,i=vM(e),a=n?e.labelZh:e.label,{days:o,span:s}=jM(i.added,t),c=e.slug===`3`,l=[],u=t===`en`&&c?`Level 3`:a,d=c?wO({},{locale:r}):``;if(l.push({q:yO({},{locale:r}),a:kO({note:d,levelPhrase:u},{locale:r}),href:`/hsk-3-0-status`,linkLabel:PO({},{locale:r})}),l.push({q:zO({count:Y(i.added),label:a},{locale:r}),a:WO({count:Y(i.added),days:o,span:s},{locale:r})}),i.total>
12i.added){let t=i.total-i.added,o=kM(e,n);l.push({q:YO({range:o},{locale:r}),a:ek({label:a,total:Y(i.total),added:Y(i.added),prev:Y(t),range:o},{locale:r})})}return l.push(i.oldTotal===null?{q:ak({label:a},{locale:r}),a:uk({standard:Y(i.standard),total:Y(i.total),ceiling:Y(yM)},{locale:r})}:{q:ak({label:a},{locale:r}),a:hk({label:a,oldTotal:Y(i.oldTotal),standard:Y(i.standard),total:Y(i.total)},{locale:r})}),l}function NM(e){let t=e;return[{q:yO({},{locale:t}),a:bk({},{locale:t}),href:`/hsk-3-0-status`,linkLabel:PO({},{locale:t})},{q:Tk({},{locale:t}),a:Ak({total:Y(bM)},{locale:t})},{q:Fk({},{locale:t}),a:Bk({},{locale:t})}]}var PM=e=>fE({},{locale:e}),FM=[{key:`noun`,chars:[`名`]},{key:`verb`,chars:[`动`]},{key:`adj`,chars:[`形`]},{key:`adv`,chars:[`副`]},{key:`measure`,chars:[`量`]},{key:`pronoun`,chars:[`代`]},{key:`number`,chars:[`数`]},{key:`function`,chars:[`介`,`连`,`助`,`叹`,`拟声`]}];function IM([e,t,n,r,i,a]){return{id:e,word:t,pinyin:n,gloss:r,pos:i,zipf:a}}var LM=e=>e?`/imgs/og/vocabulary-hsk-${e}.png`:`/imgs/og/vocabulary.png`,RM=M(`/vocabulary/`)({loader:()=>({locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,n=t.startsWith(`zh`),i=Ii(`/vocabulary`,t),a=Zb({},{locale:t}),o=Kb({},{locale:t});return{meta:[{title:a},{name:`description`,content:o},...P({title:a,description:o,url:i,image:LM(),imageAlt:fx({},{locale:t}),locale:t})],links:[{rel:`canonical`,href:i},...r.map(e=>({rel:`alternate`,hrefLang:e,href:Ii(`/vocabulary`,e)})),{rel:`alternate`,hrefLang:`x-default`,href:Ii(`/vocabulary`,`en`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify([F(t,[{name:PM(t),path:`/vocabulary`}]),{"@context":`https://schema.org`,"@type":`CollectionPage`,name:fx({},{locale:t}),description:o,url:i,inLanguage:t===`zh`?`zh-CN`:t,about:{"@type":`Thing`,name:Gk({},{locale:t})},educationalAlignment:[{"@type":`AlignmentObject`,alignmentType:`educationalLevel`,educationalFramework:`HSK 3.0`,targetName:`HSK Levels 1–9`}],mainEntity:{"@type":`ItemList`,numberOfItems:uM.length,itemListElement:uM.map((e,r)=>({"@type":`ListItem`,position:r+1,name:tA({label:n?e.labelZh:e.label},{locale:t}),url:Ii(`/vocabulary/hsk-${e.slug}`,t)}))}},zi(NM(t))])}]}},component:N(()=>O(()=>import(`./vocabulary-DL5EEo6N.js`),__vite__mapDeps([97,1,4,5,17,8,9,92,15,51,16,2,3,6,7,10,11,12,13,14,18,19,20,21,22,23,24,25,26,27,28,29,30,52,98,99])),`component`)}),zM=()=>O(()=>import(`./tools-CjeBg0Hb.js`),__vite__mapDeps([100,1,17,8,9,2,3,4,5,6,7,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,51,52])),BM=`/tools`,VM=M(`/tools/`)({loader:()=>({locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,n=t.startsWith(`zh`),i=t.slice(0,2),a=i===`vi`||i===`th`,s=e=>o(`${k.app_url}${BM}`,{locale:e}).href;return{meta:[{title:a?IA({},{locale:t}):n?`HSK 免费工具:水平测试、分数计算器、报名提醒 | HSKWin`:`Free HSK Tools — Level Test, Score Calculator, Exam Reminder | HSKWin`},{name:`description`,content:a?VA({},{locale:t}):n?`HSKWin 的三个免费 HSK 工具:几分钟测出该考哪一级,算总分对照合格线,以及报名截止提醒。`:`Three free HSK tools from HSKWin: a placement test for which level to sit, a score calculator with the pass marks, and a registration reminder.`}],links:[{rel:`canonical`,href:s(t)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:s(e)})),{rel:`alternate`,hrefLang:`x-default`,href:s(`en`)}]}},component:N(zM,`component`)}),HM=[1,2,3,4,5,6];function UM(e){let t={1:[J_,v_],2:[$_,C_],3:[iv,O_],4:[lv,N_],5:[mv,R_],6:[yv,U_]};return HM.map(n=>({q:t[n][0]({},{locale:e}),a:t[n][1]({},{locale:e})}))}var WM=h().handler(p(`3bad85dea9d20afadc45fe15af6bf809e4b50611d604d4146004c2d0db1b6dbf`)),GM=h().handler(p(`7b2aaa9b813e226c0d5574163a80a0a0dd6ce0884a1dece258e065e51ca28711`)),KM=h().handler(p(`01742240c64e53e02c046c9ec95e754349ff473835d6a9d39a1201e4e0e7b3e6`)),qM=h().handler(p(`3a9c1afa71253f764c84f27c0a97a75c8270ce6c5747a8b4bbf1136a46c4ca92`));function JM(e){return uM.find(t=>t.level===e)?.label??`HSK ${e}`}function YM(){return{level:JM,above:Zh(),name:Sg(),off_list:Mg(),speak:sx(),save:Hg(),saved:qg(),translate:Qg(),hide_translation:_g(),play_sentence:Gy(),listen:Yv(),listen_resume:ey(),pause:Fy(),speed:xb(),audio_failed:Kh(),minutes:e=>Ty({count:e}
12),prev:Lg(),next:Dg(),close:ng(),empty_title:fg(),empty_body:sg(),pinyin:By(),text_size:Ib(),smaller:gb(),larger:kv(),text_label:jb(),looked_up:e=>ay({count:e}),looked_up_empty:uy(),save_all:ob(),saved_all:db(),questions_title:tb(),questions_lede:Xy(),correct:p_(),incorrect:wv()}}function XM(e,t){let n=t=>o(`${k.app_url}${e}`,{locale:t}).href;return{url:n(t),links:[{rel:`canonical`,href:n(t)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:n(e)})),{rel:`alternate`,hrefLang:`x-default`,href:n(`en`)}]}}function ZM(e,t){return o(`${k.app_url}${e}`,{locale:t}).href}function QM(e,t){return{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{name:ht({},{locale:t}),path:``},...e].map((e,n)=>({"@type":`ListItem`,position:n+1,name:e.name,item:ZM(e.path||`/`,t)}))}}var $M=M(`/stories/`)({loader:async()=>({...await WM(),locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,{url:n,links:r}=XM(`/stories`,t),i=e?.stories??[];return{meta:[{title:by({},{locale:t})},{name:`description`,content:hy({},{locale:t})}],links:r,scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`CollectionPage`,name:Vb({},{locale:t}),description:hy({},{locale:t}),url:n,inLanguage:t,mainEntity:{"@type":`ItemList`,numberOfItems:i.length,itemListElement:i.map((e,n)=>({"@type":`ListItem`,position:n+1,name:`${e.titleZh} — ${e.titleEn}`,url:ZM(`/stories/hsk-${e.levelSlug}/${e.slug}`,t)}))}})},{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:UM(t).map(e=>({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}}))})},{type:`application/ld+json`,children:JSON.stringify(QM([{name:Ay({},{locale:t}),path:`/stories`}],t))}]}},component:N(()=>O(()=>import(`./stories-CchxloCo.js`),__vite__mapDeps([101,1,4,5,17,8,9,15,102,23,14,103,16,40,20,104,105,44,93,26,106,107,51,2,3,6,7,10,11,12,13,18,19,21,22,24,25,27,28,29,30,52,108,109,110,111])),`component`)}),eN=M(`/reading/`)({loader:()=>({locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,n=e=>o(`${k.app_url}/reading`,{locale:e}).href;return{meta:[{title:wp({},{locale:t})},{name:`description`,content:yp({},{locale:t})}],links:[{rel:`canonical`,href:n(t)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:n(e)})),{rel:`alternate`,hrefLang:`x-default`,href:n(`en`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`ItemList`,name:ip({},{locale:t}),numberOfItems:uM.length,itemListElement:uM.map((e,n)=>({"@type":`ListItem`,position:n+1,name:lp({label:e.label},{locale:t}),url:o(`${k.app_url}/reading/hsk-${e.slug}`,{locale:t}).href}))})}]}},component:N(()=>O(()=>import(`./reading-pJ6amP6m.js`),__vite__mapDeps([112,1,17,8,9,51,5,16,15,2,3,4,6,7,10,11,12,13,14,18,19,20,21,22,23,24,25,26,27,28,29,30,52,113])),`component`)});function tN(e){let t=e.startsWith(`zh`),n=e.startsWith(`en`),r=uM.map(t=>`${t.label} ${hM(t.durationSec,e)}`).join(t?`,`:`, `);return!t&&!n?[{q:Gw(),a:Xw(),href:`/tools/level-test`,linkLabel:Of()},{q:tT(),a:oT()},{q:dT(),a:gT(),href:`/pricing`,linkLabel:$f()},{q:xT(),a:ET({times:r})},{q:jT(),a:IT()}]:t?[{q:`我该考哪一级?`,a:`不确定的话,先做十道题的定级测试。它根据词汇和语法估计你的水平,再把你带到对应级别的卷子。`,href:`/tools/level-test`,linkLabel:Of()},{q:`这些是 HSK 官方真题吗?`,a:`不是。汉考国际没有公开发布过 HSK 3.0 的真题,所以这里的卷子是按 3.0 大纲、依照官方样卷的结构编写的练习卷。`},{q:`可以免费使用吗?`,a:`每套卷都能免费预览:每一项(听力、阅读等)的第一题,含答案和解析,不用注册。按真实计时完整做一遍、自动评分和批改,属于付费套餐。写作练习每天可以免费批改一篇。`,href:`/pricing`,linkLabel:`查看套餐`},{q:`一套卷要做多久?`,a:`和正式考试一样长:${r}。`},{q:`计时模考可以暂停吗?`,a:`不能。和正式考试一样,每个部分的时钟在服务器上一直走。网络断了可以回到这场考试接着做,不会多占一次模考。`}]:[{q:`Which HSK level should I sit?`,a:`If you are not sure, take the ten-question placement test first. It estimates your level from vocabulary and grammar and sends you to the paper that matches.`,href:`/tools/level-test`,linkLabel:Of()},{q:`Are these official HSK past papers?`,a:`No. CTI has not released any HSK 3.0 past papers, so these are practice papers written to the 3.0 syllabus and to the structure of CTI’s official sample papers.`},{q:`Is it free?`,a:`Previewing any paper — the first question of each section, with the answer and explanation — is free and needs no account. Sitting a paper on the clock, scored and marked, is part of a paid plan. One piece of writing practice a day is marked free.`,href:`/pricing`,linkLabel:`See plans`},{q:`How long does a paper take?`,a:`As long as the real exam: ${r}.`}
12,{q:`Can I pause a timed paper?`,a:`No. As in the exam, each section’s clock keeps running on the server. If your connection drops you can go back to the sitting and carry on, and it does not use another sitting.`}]}var X=(e,t,n,r,i,a={})=>({code:e,nameZh:`第${`一二三四`[Number(e.slice(-1))-1]}部分`,nameEn:`Part ${e.slice(-1)}`,from:t,to:n,type:r,instructionsZh:i,pointsEach:1,...a}),nN=(e,t)=>({code:`listening`,nameZh:`听力`,nameEn:`Listening`,durationSec:e*60,maxScore:100,parts:t}),rN=(e,t)=>({code:`reading`,nameZh:`阅读`,nameEn:`Reading`,durationSec:e*60,maxScore:100,parts:t}),iN=(e,t,n=`写作`)=>({code:`writing`,nameZh:n,nameEn:`Writing`,durationSec:e*60,maxScore:100,parts:t}),aN={1:[nN(12,[X(`listening_p1`,1,5,`listening_choice`,`第1—5题:听录音,选出对应的图片。`,{answerWindowSec:6}),X(`listening_p2`,6,10,`listening_choice`,`第6—10题:听句子,选出合适的回答。`,{answerWindowSec:6}),X(`listening_p3`,11,15,`listening_match`,`第11—15题:听对话,选出与对话内容相符的图片。`,{answerWindowSec:6}),X(`listening_p4`,16,20,`listening_choice`,`第16—20题:听句子和问题,选出正确答案。`,{answerWindowSec:8})]),rN(20,[X(`reading_p1`,21,25,`reading_match`,`第21—25题:看句子,选出对应的图片。`),X(`reading_p2`,26,30,`reading_match`,`第26—30题:给下列句子选择合适的回答。`),X(`reading_p3`,31,35,`reading_cloze`,`第31—35题:选词填空。`),X(`reading_p4`,36,40,`reading_choice`,`第36—40题:阅读句子,选出正确答案。`)])],2:[nN(17,[X(`listening_p1`,1,5,`listening_choice`,`第1—5题:听句子,选出对应的图片。`,{answerWindowSec:6}),X(`listening_p2`,6,15,`listening_match`,`第6—15题:听对话,选出与对话内容相符的图片。`,{answerWindowSec:6}),X(`listening_p3`,16,25,`listening_choice`,`第16—25题:听对话和问题,选出正确答案。`,{answerWindowSec:8})]),rN(25,[X(`reading_p1`,26,30,`reading_match`,`第26—30题:看句子,选出对应的图片。`),X(`reading_p2`,31,35,`reading_cloze`,`第31—35题:选词填空。`),X(`reading_p3`,36,45,`reading_match`,`第36—45题:给下列句子选择合适的回答。`),X(`reading_p4`,46,50,`reading_choice`,`第46—50题:阅读句子,选出正确答案。`)]),iN(10,[X(`writing_p1`,51,55,`reading_cloze`,`第51—55题:选择合适的部件,把汉字补充完整。`),X(`writing_p2`,56,60,`writing_hanzi`,`第56—60题:看拼音,写汉字。`)],`书写`)],3:[{code:`listening`,nameZh:`听力`,nameEn:`Listening`,durationSec:1380,maxScore:100,parts:[{code:`listening_p1`,pointsEach:1,nameZh:`第一部分`,nameEn:`Part 1`,from:1,to:10,type:`listening_match`,instructionsZh:`第1—10题:听对话,选出与对话内容相符的图片。`,answerWindowSec:6},{code:`listening_p2`,pointsEach:1,nameZh:`第二部分`,nameEn:`Part 2`,from:11,to:20,type:`listening_choice`,instructionsZh:`第11—20题:听对话和问题,选出正确答案。`,answerWindowSec:11.7},{code:`listening_p3`,pointsEach:1,nameZh:`第三部分`,nameEn:`Part 3`,from:21,to:30,type:`listening_choice`,instructionsZh:`第21—30题:听一段话和问题,选出正确答案。`,answerWindowSec:11.7}]},{code:`reading`,nameZh:`阅读`,nameEn:`Reading`,durationSec:1800,maxScore:100,parts:[{code:`reading_p1`,pointsEach:1,nameZh:`第一部分`,nameEn:`Part 1`,from:31,to:40,type:`reading_match`,instructionsZh:`第31—40题:给下列句子选择合适的回答。`},{code:`reading_p2`,pointsEach:1,nameZh:`第二部分`,nameEn:`Part 2`,from:41,to:50,type:`reading_cloze`,instructionsZh:`第41—50题:选词填空。`},{code:`reading_p3`,pointsEach:1,nameZh:`第三部分`,nameEn:`Part 3`,from:51,to:60,type:`reading_choice`,instructionsZh:`第51—60题:阅读短文,选出正确答案。`}]},{code:`writing`,nameZh:`书写`,nameEn:`Writing`,durationSec:1200,maxScore:100,parts:[{code:`writing_p1`,pointsEach:1,nameZh:`第一部分`,nameEn:`Part 1`,from:61,to:65,type:`writing_hanzi`,instructionsZh:`第61—65题:看拼音,在空格上写出正确的汉字。`},{code:`writing_p2`,pointsEach:1,nameZh:`第二部分`,nameEn:`Part 2`,from:66,to:70,type:`writing_sentence`,instructionsZh:`第66—70题:看图,用给出的词语写一个句子。`}]}],4:[nN(20,[X(`listening_p1`,1,14,`listening_choice`,`第1—14题:请选出正确答案。`,{answerWindowSec:12}),X(`listening_p2`,15,32,`listening_choice`,`第15—32题:请选出正确答案。`,{answerWindowSec:12})]),rN(30,[X(`reading_p1`,33,42,`reading_cloze`,`第33—42题:选词填空。`),X(`reading_p2`,43,57,`reading_choice`,`第43—57题:请选出正确答案。`),X(`reading_p3`,58,64,`reading_choice`,`第58—64题:选句填空。`)]),iN(25,[X(`writing_p1`,65,69,`writing_sentence`,`第65—69题:看图,用词造句。`,{pointsEach:2}),X(`writing_p2`,70,70,`writing_essay`,`第70题:写短文。`,{pointsEach:15})])],5:[nN(25,[X(`listening_p1`,1,19,`listening_choice`,`第1—19题:请选出正确答案。`,{answerWindowSec:13}),X(`listening_p2`,20,35,`listening_choice`,`第20—35题:请选出正确答案。`,{answerWindowSec:13}
12)]),rN(35,[X(`reading_p1`,36,45,`reading_choice`,`第36—45题:请选出正确答案。`),X(`reading_p2`,46,55,`reading_match`,`第46—55题:排列顺序。`),X(`reading_p3`,56,70,`reading_choice`,`第56—70题:请选出正确答案。`)]),iN(40,[X(`writing_p1`,71,71,`writing_essay`,`第71题:看图写作文。`,{pointsEach:4}),X(`writing_p2`,72,72,`writing_essay`,`第72题:写作文。`,{pointsEach:6})])],6:[nN(30,[X(`listening_p1`,1,8,`listening_choice`,`第1—8题:请选出与所听内容一致的一项。`,{answerWindowSec:14}),X(`listening_p2`,9,28,`listening_choice`,`第9—28题:请选出正确答案。`,{answerWindowSec:14}),X(`listening_p3`,29,40,`listening_choice`,`第29—40题:请选出正确答案。`,{answerWindowSec:14})]),rN(40,[X(`reading_p1`,41,50,`reading_choice`,`第41—50题:选词填空。`),X(`reading_p2`,51,60,`reading_choice`,`第51—60题:选句填空。`),X(`reading_p3`,61,80,`reading_choice`,`第61—80题:请选出正确答案。`)]),iN(45,[X(`writing_p1`,81,81,`writing_essay`,`第81题:写应用文。`,{pointsEach:4}),X(`writing_p2`,82,82,`writing_essay`,`第82题:写议论文。`,{pointsEach:6})])],"7-9":[{code:`listening`,nameZh:`听力`,nameEn:`Listening`,durationSec:1800,maxScore:100,parts:[{code:`listening_p1`,pointsEach:1,nameZh:`第一部分`,nameEn:`Part 1`,from:1,to:10,type:`listening_true_false`,instructionsZh:`第1—10题:请根据听到的内容,判断下列句子是否符合原文。符合原文的请画“√”,不符合的请画“×”。`,answerWindowSec:15},{code:`listening_p2`,pointsEach:1,nameZh:`第二部分`,nameEn:`Part 2`,from:11,to:22,type:`listening_choice`,instructionsZh:`第11—22题:请选出或填上正确答案。`,answerWindowSec:14.5},{code:`listening_p3`,pointsEach:1,nameZh:`第三部分`,nameEn:`Part 3`,from:23,to:40,type:`listening_choice`,instructionsZh:`第23—40题:请选出或填上正确答案。`,answerWindowSec:14.5}]},{code:`reading`,nameZh:`阅读`,nameEn:`Reading`,durationSec:3600,maxScore:100,parts:[{code:`reading_p1`,pointsEach:1,nameZh:`第一部分`,nameEn:`Part 1`,from:41,to:68,type:`reading_choice`,instructionsZh:`第41—68题:请选出正确答案。`},{code:`reading_p2`,pointsEach:1,nameZh:`第二部分`,nameEn:`Part 2`,from:69,to:73,type:`reading_order`,instructionsZh:`第69—73题:下列语段的顺序已被打乱,请将它们重新排序,组成一篇逻辑连贯的文章。注意其中一个段落为干扰项,需排除;画线段落的位置已固定,无需排序。`},{code:`reading_p3`,pointsEach:1,nameZh:`第三部分`,nameEn:`Part 3`,from:74,to:87,type:`reading_short_answer`,instructionsZh:`第74—87题:请回答下面的问题,注意答案控制在十个字以内。`}]},{code:`writing`,nameZh:`写作`,nameEn:`Writing`,durationSec:3300,maxScore:100,parts:[{code:`writing_p1`,pointsEach:40,nameZh:`第一部分`,nameEn:`Part 1`,from:88,to:88,type:`writing_chart`,instructionsZh:`第88题:请对图表进行描述与分析,写一篇200字左右的文章,限时15分钟。`,durationSec:900},{code:`writing_p2`,pointsEach:60,nameZh:`第二部分`,nameEn:`Part 2`,from:89,to:89,type:`writing_essay`,instructionsZh:`第89题:话题作文,限时40分钟。`,durationSec:2400}]},{code:`translation`,nameZh:`翻译`,nameEn:`Translation`,durationSec:2460,maxScore:100,parts:[{code:`translation_p1`,pointsEach:30,nameZh:`第一部分`,nameEn:`Part 1`,from:90,to:91,type:`translate_written`,instructionsZh:`第90—91题:请将下列两篇材料译写成中文,限时35分钟。`,durationSec:2100},{code:`translation_p2`,pointsEach:20,nameZh:`第二部分`,nameEn:`Part 2`,from:92,to:93,type:`translate_oral`,instructionsZh:`第92—93题:口译。请阅读材料,并口头翻译成中文。每个材料有1分钟阅读时间、2分钟口译时间。`}]},{code:`speaking`,nameZh:`口语`,nameEn:`Speaking`,durationSec:1440,maxScore:100,parts:[{code:`speaking_p1`,pointsEach:30,nameZh:`第一部分`,nameEn:`Part 1`,from:94,to:94,type:`speaking_read_respond`,instructionsZh:`第94题:应用读说。请阅读试卷上的材料,并根据要求作答。准备3分钟,作答3分钟。`},{code:`speaking_p2`,pointsEach:10,nameZh:`第二部分`,nameEn:`Part 2`,from:95,to:97,type:`speaking_listen_answer`,instructionsZh:`第95—97题:听材料回答问题。`},{code:`speaking_p3`,pointsEach:30,nameZh:`第三部分`,nameEn:`Part 3`,from:98,to:98,type:`speaking_opinion`,instructionsZh:`第98题:观点表达。准备3分钟,作答3分钟。`}]}]},oN={1:2,2:2,3:2};function sN(e){return aN[e]??null}function cN(e){return oN[e]??1}function lN(e,t){for(let n of sN(e)??[])for(let e of n.parts)if(e.code===t)return{section:n,part:e};return null}
12var uN=/^第\s*\d+\s*(?:[—–--]\s*\d+\s*)?题\s*[::]\s*/;function dN(e){let t=e?.trim()??``;return t?t.replace(uN,``).trim()||t:``}var fN=e=>cS({},{locale:e});function pN(e,t){return o(`${k.app_url}${e}`,{locale:t}).href}function mN(e,t){return{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{name:k.app_name,path:``},...t].map((t,n)=>({"@type":`ListItem`,position:n+1,name:t.name,item:pN(t.path||`/`,e)}))}}function hN(e){return{"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:e.map(e=>({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}}))}}function gN(e){let t=sN(e.slug)??[];return e.sections.map(e=>{let n=t.find(t=>t.code===e.code)?.parts??[];return{code:e.code,nameEn:e.nameEn,nameZh:e.nameZh,questions:n.reduce((e,t)=>e+t.to-t.from+1,0),minutes:Math.round(e.durationSec/60)}})}function _N(e){return gN(e).reduce((e,t)=>e+t.questions,0)}function vN(e,t){let n=t.slice(0,2).toLowerCase();return n===`zh`?e.labelZh.replace(/^HSK\s*/,``):n===`en`?e.level>=7?`Levels ${e.slug.replace(`-`,`–`)}`:`Level ${e.slug}`:pS({n:e.slug===`7-9`?`7–9`:e.slug},{locale:t})}var yN=M(`/mock-test/`)({loader:async()=>({...await Rj(),locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,n=t.startsWith(`zh`),i=t.startsWith(`en`),a=e=>pN(`/mock-test`,e),o=n?`HSK 模拟考在线 — 真实计时、即时出分,1–9 级 | HSKWin`:i?`HSK Mock Test Online — Timed, Scored, All 9 Levels | HSKWin`:Aw({},{locale:t}),s=n?`在线做 HSK 模拟考,按真实考试计时,交卷即出分。专为 HSK 3.0 一至九级编写,每道题、答案和解析都在页面上。`:i?`Sit an HSK mock test online under real exam timing and get an instant score. Built for HSK 3.0, levels 1–9 — every question, answer and explanation on the page.`:Fw({},{locale:t});return{meta:[{title:o},{name:`description`,content:s},{property:`og:title`,content:o},{property:`og:description`,content:s}],links:[{rel:`canonical`,href:a(t)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:a(e)})),{rel:`alternate`,hrefLang:`x-default`,href:a(`en`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify([mN(t,[{name:fN(t),path:`/mock-test`}]),{"@context":`https://schema.org`,"@type":`ItemList`,name:o,itemListElement:uM.map((e,r)=>({"@type":`ListItem`,position:r+1,name:n?`${e.label} 模拟考`:i?`${e.label} mock test`:Bw({label:e.label},{locale:t}),url:pN(`/mock-test/hsk-${e.slug}`,t)}))},hN(tN(t))])}]}},component:N(()=>O(()=>import(`./mock-test-CAW6SINW.js`),__vite__mapDeps([114,1,4,5,17,8,9,14,15,2,3,6,7,10,11,12,13,16,18,19,20,21,22,23,24,25,26,27,28,29,30,51,52,115,53,116,55,56,117,57,58,118,94])),`component`)}),bN={crumb:`HSKK speaking`,band:{beginner:`HSKK Beginner`,intermediate:`HSKK Intermediate`,advanced:`HSKK Advanced`},pairs:{beginner:`HSK 1–2`,intermediate:`HSK 3–4`,advanced:`HSK 5–6`},words:{beginner:`HSK 1–2 words`,intermediate:`HSK 1–4 words`,advanced:`HSK 1–6 words`},ui:{bandsNav:`HSKK levels`,setsLabel:`Practice set`,setN:e=>`Set ${e}`,randomSet:`Random set`,partN:e=>`Part ${e}`,questionOf:(e,t)=>`Question ${e} of ${t}`,prev:`Previous`,next:`Next`,play:`Play recording`,pause:`Pause`,replay:`Play again`,examOnce:`In the exam you hear each recording once. Here you can play it again.`,showScript:`Show what was said`,hideScript:`Hide the script`,showModel:`See a model answer`,hideModel:`Hide the model answer`,modelAnswer:`Model answer`,passageHeard:`What the recording says`,timeAllowed:e=>e>=60?`${e/60} minute${e===60?``:`s`} to answer`:`About ${e} seconds to answer`,minutes:e=>`${e/60} min`,yourAnswer:`Your answer`,signInTitle:`Recording and scoring need an account`,signInBody:`Anyone can read and listen to every question. To record an answer and get it scored, sign in — you’ll come straight back to this question.`,signInCta:`Sign in to answer`,signUpCta:`Create a free account`,record:`Record`,stop:`Stop`,recording:e=>`Recording… ${e}s`,rerecord:`Record again`,micDenied:`Microphone access was blocked. Allow it in your browser’s site settings, then try again.`,micUnsupported:`This browser can’t record audio. Try Chrome, Edge or Safari.`,submit:`Score my answer`,scoring:`Listening and scoring…`,quotaLeft:e=>`${e} free score left today`,quotaUsed:`Today’s free score is used`,unlimited:`Unlimited on your plan`,dailyTitle:`Today’s free score is used`,dailyBody:(e,t)=>`A free account gets one scored answer a day, renewed at midnight UTC. Monthly (${e}) or Lifetime (${t}, once) scores every answer, at every HSKK level, with no daily limit.`,score:`Score`,accuracy:`S
12aid back`,fluency:`Fluency`,pace:`Pace`,paceUnit:e=>`${e} chars/s`,content:`Task`,language:`Language`,tones:`Tones`,heard:`What we heard`,missedNote:`Characters in grey did not come back in your answer.`,noSpeech:`No Chinese came through on that recording. Check the microphone and try again — it didn’t count.`,fixes:`What to fix`,audioNote:`Your recording is transcribed and then discarded — it is never stored. Tones are judged from the transcript, so treat that figure as a hint.`,tryAgain:`Try this question again`,nextQuestion:`Next question`,partName:{repeat:`Listen and repeat`,listen_answer:`Listen and answer`,answer:`Answer the question`,picture:`Describe the picture`,retell:`Listen and retell`,read_aloud:`Read aloud`},partInstruction:{repeat:`You will hear a sentence. Repeat it exactly as you heard it.`,listen_answer:`You will hear a question. Answer it, briefly and in a full sentence where you can.`,answer:`Answer the printed question. Keep talking for the time you have.`,picture:`Talk about the picture: who, where, what is happening — and something beyond it.`,retell:`You will hear a short passage once. Retell it in your own words.`,read_aloud:`Read the passage aloud, clearly and at a natural pace.`},factsTime:`Exam time`,factsPass:`Pass mark`,factsQuestions:`Questions`,factsWords:`Vocabulary`},indexTitle:`HSKK practice test: listen, speak and get scored online`,indexLede:`Fifteen full HSKK practice sets — five for each level — with the recordings, the printed questions and model answers. Listen to any of them without an account; sign in to record your answers and have each one scored.`,indexMetaTitle:`HSKK Practice Test Online — 15 Sets with Audio & AI Scoring`,indexMetaDescription:`Free HSKK practice for Beginner, Intermediate and Advanced: 5 full sets per level with audio, model answers and AI scoring of your spoken answers. Format, scoring and tips.`,indexCardCta:`Start practising`,indexCardMeta:(e,t)=>`5 sets · ${e} questions each · about ${t} min`,howH2:`How the practice works`,how:[{title:`Pick a level and a set`,body:`Each set is one complete HSKK paper: the same parts, in the same order, with the same number of questions.`},{title:`Listen, then answer out loud`,body:`Play the recording or read the question, then record your answer in the browser. No app, no upload.`},{title:`See what an examiner would hear`,body:`A score out of 100, what came through of what you said, and the one or two things to fix next.`}],onThisPage:`On this page`,indexSections:[{id:`what`,h2:`What is the HSKK?`,paras:[[`The HSKK (汉语水平口语考试) is the speaking test of the HSK family. It is a separate exam from the written HSK, with its own registration and its own certificate, and it comes in three levels: Beginner (初级), Intermediate (中级) and Advanced (高级). Everything you say is recorded and marked afterwards; nobody interviews you.`],[`Each level is out of 100 points, and 60 is a pass. The levels are paired with the written exam: Beginner with HSK 1–2, Intermediate with HSK 3–4, Advanced with HSK 5–6. Universities and scholarship schemes in China often ask for an HSKK result next to the HSK one, at the matching level.`],[`Under HSK 3.0, levels 3–6 each come with their own speaking test, registered together with the written exam and sat separately. Until that format is published in full, the three HSKK levels on this page are the speaking exam candidates actually sit — see `,{text:`the HSK 3.0 status page`,href:`/hsk-3-0-status`},` for what has changed.`]]},{id:`scoring`,h2:`How the HSKK is scored — and how we score your practice`,paras:[[`In the real exam, trained raters listen to your recording and judge whether you did what each question asked, how accurate and varied your Chinese is, and how fluent and clear it sounds. CTI publishes the 100-point total and the 60-point pass mark, not a weight for each part, so no practice site can tell you exactly how many points one answer is worth.`],[`Here, each answer gets its own score out of 100. Repeating a sentence and reading aloud are measured, not judged: we transcribe your recording and count how much of the text came back in order, and how smoothly. Everything else — answering a question, describing a picture, retelling a passage — is read by an AI examiner told the level, the task and the time you had, which scores the task and the language; fluency is measured from the pauses in your audio.`],[`Your recording is transcribed and then thrown away. It is never stored.`]]},{id:`prepare`,h2:`How to prepare for the HSKK`,paras:[[`Most candidates lose points in the same three places: they stop talking long before the time is up, they freeze on a repeat sentence they half-heard, and they answer a question with a list of words instead of sentences. All three improve with timed practice out loud — not with more reading.`]],list:[`Repeat sentences in chunks: hear the meaning first, then the words. If one word escapes you, say the rest — a partial sentence still scores.`,`Fill the time on the developed questions. Plan three points before you speak: an opening answer, a reason or an example, a closing sentence.`,`Use the words you are sure of. At every level the examiners reward clear, correct Chinese over ambitious Chinese that breaks down.`,`Record yourself and listen back once a day. The gaps you hear are the ones the examiner hears.`]}],compareH2:`The three HSKK levels compared`,compareCols:{band:`Level`,pairs:`Pairs with`,parts:`Parts`,time:`Time`,pass:`Pass`},bandTitle:{beginner:`HSKK Beginner (初级) practice test with audio`,intermediate:`HSKK Intermediate (中级) practice test with audio`,advanced:`HSKK Advanced (高级) practice test with audio`},bandLede:{beginner:`Five complete HSKK Beginner sets: 15 sentences to repeat, 10 questions to answer by ear and 2 printed questions each, at the HSK 1–2 word level. Listen to any of them freely; sign in to record and get every answer scored.`,intermediate:`Five complete HSKK Intermediate sets: 10 sentences to repeat, 2 pictures to describe and 2 questions to answer each, at the HSK 3–4 word level. Listen to any of them freely; sign in to record and get every answer scored.`,advanced:`Five complete HSKK Advanced sets: 3 passages to retell, 1 passage to read aloud and 2 discussion questions each, at the HSK 5–6 word level. Listen to any of them freely; sign in to record and get every answer scored.`},bandMetaTitle:{beginner:`HSKK Beginner Practice Test (初级) — 5 Sets with Audio`,intermediate:`HSKK Intermediate Practice Test (中级) — 5 Sets with Audio`,advanced:`HSKK Advanced Practice Test (高级) — 5 Sets with Audio`},bandMetaDescription:{beginner:`HSKK Beginner (初级) mock test online: 5 full set
12s with recordings — listen and repeat, listen and answer, answer the question — plus model answers and AI scoring.`,intermediate:`HSKK Intermediate (中级) mock test online: 5 full sets with recordings, pictures to describe and questions, plus model answers and AI scoring of your answers.`,advanced:`HSKK Advanced (高级) mock test online: 5 full sets — listen and retell, read aloud, discussion questions — with recordings, model answers and AI scoring.`},formatH2:e=>`${e} format`,formatLede:{beginner:`The Beginner paper has 27 questions in three parts and takes about 17 minutes, including 7 minutes to prepare part 3. The first two parts are heard and answered straight away; part 3 is printed — with pinyin — and you have a minute and a half for each question.`,intermediate:`The Intermediate paper has 14 questions in three parts and takes about 23 minutes, including 10 minutes to prepare parts 2 and 3. Part 1 is heard and repeated; the pictures and the questions are printed, and you have two minutes for each.`,advanced:`The Advanced paper has 6 questions in three parts and takes about 25 minutes, including 10 minutes to prepare parts 2 and 3. Each passage in part 1 is heard once and retold; the reading passage and the two questions are printed.`},formatCols:{part:`Part`,questions:`Questions`,answer:`Answer time`,task:`What you do`},partTask:{repeat:`Hear one sentence, say it back`,listen_answer:`Hear a question, answer it briefly`,answer:`Answer a printed question at length`,picture:`Talk about a photograph`,retell:`Hear a passage once, retell it`,read_aloud:`Read a printed passage aloud`},tipsH2:e=>`How to answer each part of ${e}`,tips:{repeat:[[`Listen for meaning, not sounds: a sentence you understood is one you can rebuild. Start speaking as soon as it ends — the longer you wait, the more slips away. If you lose a word, keep going; a sentence with one gap still scores most of its points, a silence scores none.`]],listen_answer:[[`Answer what was asked, in a sentence: 你几点起床? → 我七点起床。 One correct sentence is a full answer at this level. If you didn’t catch the question, answer the part you did catch rather than saying nothing.`]],answer:[[`Use your preparation time to note three points, not a script. Open with a direct answer, add a reason and an example, then close. Keep talking until the time is up: an answer that stops at twenty seconds cannot score as a developed answer, however correct it is.`]],picture:[[`Say what you see first — who, where, what they are doing — then go beyond the picture: why they might be there, how they feel, whether it reminds you of something. That second half is what separates a pass from a good score.`]],retell:[[`Don’t try to memorise the words. Hold on to the shape: who, what happened, what changed, how it ended. Retell it in that order in your own sentences; the examiners want the story back, not a recording of it.`]],read_aloud:[[`Read at a steady, natural pace and pause at the punctuation. Accuracy matters more than speed: a misread character or a wrong tone costs more than reading a little slowly.`]]},expectsH2:e=>`What Chinese ${e} expects`,expects:{beginner:[[`The 2026 HSK syllabus describes HSK 1–2 speaking as asking and answering simple questions: your name, age and family, times and places, what you like to eat, how you get somewhere, what something costs, how you feel. That is exactly what Beginner tests — short, correct sentences about everyday life, not long ones.`],[`Every sentence, question and model answer in these sets stays inside the HSK 1–2 word lists. Learn `,{text:`the HSK 1 words`,href:`/vocabulary/hsk-1`},` and `,{text:`the HSK 2 words`,href:`/vocabulary/hsk-2`},` out loud, and you have the vocabulary the paper uses.`]],intermediate:[[`At HSK 3–4 the syllabus moves from answering to telling: introducing a person or a place, describing an experience, explaining a choice, giving a simple opinion about daily life, work, health or the environment — “a short paragraph” rather than a sentence. Intermediate asks you to keep that going for two minutes.`],[`These sets stay inside the HSK 1–4 word lists. `,{text:`The HSK 4 word list`,href:`/vocabulary/hsk-4`},` is the one to drill out loud.`]],advanced:[[`At HSK 5–6 the syllabus expects you to speak “fluently” about society, education, work, science, culture and history: to explain, compare and argue a view, not just describe. Advanced tests that — and retelling a passage you heard once, which is as much about listening as about speaking.`],[`These sets stay inside the HSK 1–6 word lists. Pair them with `,{text:`the HSK 5 mock tests`,href:`/mock-test/hsk-5`},` and `,{text:`the HSK 6 mock tests`,href:`/mock-test/hsk-6`},` — the listening section trains the same ear the retell needs.`]]}
12,scoringH2:`How your practice answers are scored`,scoring:[[`Each answer gets a score out of 100. Repeating and reading aloud are measured: how much of the text came back, in order, and how smoothly. The other parts are read by an AI examiner told the level, the task and the time you had; it scores whether you did what was asked and how good your Chinese is, and fluency is measured from the pauses in your recording.`],[`Anyone can listen to every question and read every model answer. Recording and scoring need a free account, which gets one scored answer a day; `,{text:`Monthly and Lifetime`,href:`/pricing`},` score every answer with no daily limit. Your recording is never stored.`]],faqH2:`HSKK questions`,indexFaq:[{q:`Which HSKK level should I take?`,a:`Match it to your written level: Beginner if you are at HSK 1–2, Intermediate for HSK 3–4, Advanced for HSK 5–6. If a university or scholarship names a level, take that one. Try one set of the level here first — if you can repeat most sentences and keep talking for the time given, you are ready for it.`},{q:`Is the HSKK required for HSK?`,a:`No. The written HSK and the HSKK are separate exams with separate certificates. Many Chinese universities and scholarships ask for both, though, so check what your application requires.`},{q:`What is the HSKK pass mark?`,a:`Every level is out of 100, and 60 is a pass. CTI does not publish how many points each part carries.`},{q:`How long is the HSKK?`,a:`About 17 minutes for Beginner (27 questions), 23 minutes for Intermediate (14 questions) and 25 minutes for Advanced (6 questions), preparation time included.`},{q:`Is the HSKK part of HSK 3.0?`,a:`Under HSK 3.0, levels 3–6 each come with a speaking test registered with the written exam and sat separately. The three HSKK levels are the format still being sat; the skills — repeating, answering, describing, retelling — carry over.`,link:{text:`HSK 3.0 status`,href:`/hsk-3-0-status`}},{q:`Is this HSKK practice free?`,a:`Listening to every recording and reading every question and model answer is free, with no account. Recording and scoring an answer needs a free account, which gets one scored answer a day; Monthly and Lifetime score without a daily limit.`,link:{text:`See plans`,href:`/pricing`}},{q:`Are these real HSKK questions?`,a:`No — they are original questions written to the HSKK paper format and kept inside the HSK 3.0 word lists for each level. Past papers are CTI’s copyright; these are practice in the same shape.`},{q:`Do you keep my recordings?`,a:`No. A recording is sent once, transcribed, scored and discarded. Only the transcript and the scores are saved to your account.`}],bandFaq:{beginner:[{q:`How many questions are in HSKK Beginner?`,a:`27: 15 sentences to repeat, 10 questions to answer by ear, and 2 printed questions to answer for a minute and a half each.`},{q:`Is pinyin printed in HSKK Beginner?`,a:`Yes — the two printed questions in part 3 come with pinyin. The practice sets here show it the same way.`},{q:`How many words do I need for HSKK Beginner?`,a:`The HSK 1–2 lists. Every line in these sets stays inside them, so a word you don’t know here is one worth learning.`,link:{text:`HSK 2 vocabulary`,href:`/vocabulary/hsk-2`}},{q:`What if I can’t catch a whole sentence?`,a:`Say what you did catch. Repeat items are marked on how much comes back, so half a sentence is worth far more than silence.`}],intermediate:[{q:`How many questions are in HSKK Intermediate?`,a:`14: 10 sentences to repeat, 2 pictures to describe and 2 printed questions, with two minutes for each picture and question.`},{q:`How long should a picture description be?`,a:`Use the two minutes. A strong answer describes what is in the picture, then goes beyond it — the model answers here run 150–250 characters.`},{q:`Is HSKK Intermediate harder than HSK 4?`,a:`It uses fewer words than HSK 4 reading, but you have to produce them yourself, at speaking speed. Most HSK 4 candidates find the two-minute answers the hard part, not the vocabulary.`},{q:`Which vocabulary should I study?`,a:`The HSK 1–4 lists; every line in these sets stays inside them.`,link:{text:`HSK 4 vocabulary`,href:`/vocabulary/hsk-4`}}],advanced:[{q:`How many questions are in HSKK Advanced?`,a:`Six: 3 passages to retell (two minutes each), 1 passage to read aloud (two minutes) and 2 discussion questions (two and a half minutes each).`}
12,{q:`Do I need to remember the passage word for word?`,a:`No. The retell is marked on whether the story comes back — the people, what happened and how it ended — in good Chinese of your own. Word-for-word is neither expected nor needed.`},{q:`How is reading aloud marked?`,a:`On accuracy — the right characters and tones — and on a steady, natural pace with pauses in the right places.`},{q:`Which vocabulary should I study?`,a:`The HSK 1–6 lists; every line in these sets stays inside them.`,link:{text:`HSK 6 vocabulary`,href:`/vocabulary/hsk-6`}}]}},xN={en:bN,zh:{crumb:`HSKK 口语`,band:{beginner:`HSKK 初级`,intermediate:`HSKK 中级`,advanced:`HSKK 高级`},pairs:{beginner:`对应 HSK 1–2`,intermediate:`对应 HSK 3–4`,advanced:`对应 HSK 5–6`},words:{beginner:`HSK 1–2 词汇`,intermediate:`HSK 1–4 词汇`,advanced:`HSK 1–6 词汇`},ui:{bandsNav:`HSKK 等级`,setsLabel:`练习套题`,setN:e=>`第 ${e} 套`,randomSet:`随机一套`,partN:e=>`第${[`一`,`二`,`三`][e-1]??e}部分`,questionOf:(e,t)=>`第 ${e} / ${t} 题`,prev:`上一题`,next:`下一题`,play:`播放录音`,pause:`暂停`,replay:`再听一遍`,examOnce:`正式考试每段录音只播放一遍,练习时可以反复听。`,showScript:`显示录音原文`,hideScript:`隐藏原文`,showModel:`查看参考回答`,hideModel:`收起参考回答`,modelAnswer:`参考回答`,passageHeard:`录音原文`,timeAllowed:e=>e>=60?`回答时间 ${e/60} 分钟`:`回答时间约 ${e} 秒`,minutes:e=>`${e/60} 分钟`,yourAnswer:`你的回答`,signInTitle:`录音和评分需要登录`,signInBody:`所有题目都可以免登录查看、收听。要录下回答并获得评分,请先登录——登录后会回到这道题。`,signInCta:`登录后作答`,signUpCta:`免费注册`,record:`开始录音`,stop:`停止`,recording:e=>`录音中… ${e} 秒`,rerecord:`重新录音`,micDenied:`麦克风权限被拒绝。请在浏览器的网站设置里允许麦克风,然后再试。`,micUnsupported:`这个浏览器不支持录音,请换用 Chrome、Edge 或 Safari。`,submit:`给我的回答评分`,scoring:`正在听你的回答并评分…`,quotaLeft:e=>`今天还有 ${e} 次免费评分`,quotaUsed:`今天的免费评分已用完`,unlimited:`你的套餐不限次数`,dailyTitle:`今天的免费评分已用完`,dailyBody:(e,t)=>`免费账号每天可评分 1 次,按 UTC 零点刷新。月度会员(${e})或终身会员(${t},一次付清)不限次数,三个 HSKK 等级的每一道题都能评分。`,score:`得分`,accuracy:`复述完整度`,fluency:`流利度`,pace:`语速`,paceUnit:e=>`${e} 字/秒`,content:`完成任务`,language:`语言`,tones:`声调`,heard:`我们听到的`,missedNote:`灰色的字在你的回答里没有出现。`,noSpeech:`这段录音里没有识别到中文。请检查麦克风后再试——这次不计次数。`,fixes:`需要改进的地方`,audioNote:`录音只用于转写,转写后立即删除,不会保存。声调是根据转写文字推断的,ä»
12…供参考。`,tryAgain:`这题再练一次`,nextQuestion:`下一题`,partName:{repeat:`听后重复`,listen_answer:`听后回答`,answer:`回答问题`,picture:`看图说话`,retell:`听后复述`,read_aloud:`朗读`},partInstruction:{repeat:``,listen_answer:``,answer:``,picture:``,retell:``,read_aloud:``},factsTime:`考试时长`,factsPass:`合格分`,factsQuestions:`题量`,factsWords:`词汇范围`},indexTitle:`HSKK 口语模拟练习:听录音、开口答、在线评分`,indexLede:`初级、中级、高级各 5 套完整的 HSKK 练习题,共 15 套,带录音、题目和参考回答。不登录也能收听、查看每一道题;登录后可以录下自己的回答,每一题都能单独评分。`,indexMetaTitle:`HSKK 模拟题在线练习 — 初中高级 15 套带录音与 AI 评分`,indexMetaDescription:`HSKK 初级、中级、高级在线模拟练习:每级 5 套完整题目,带录音和参考回答,录下回答即可获得 AI 评分。附考试题型、评分方式和备考建议。`,indexCardCta:`开始练习`,indexCardMeta:(e,t)=>`5 套 · 每套 ${e} 题 · 约 ${t} 分钟`,howH2:`怎么练`,how:[{title:`选等级、选一套`,body:`每一套都是一份完整的 HSKK 试卷:部分相同、顺序相同、题量相同。`},{title:`先听或先看,再开口回答`,body:`播放录音或阅读题目,然后直接在浏览器里录音作答,不用装 App,也不用上传文件。`},{title:`看看考官会听到什么`,body:`百分制得分、你说出来的内容,以及下一步最该改的一两处。`}],onThisPage:`本页内容`,indexSections:[{id:`what`,h2:`HSKK 是什么考试?`,paras:[[`HSKK(汉语水平口语考试)是 HSK 体系里的口语考试。它和 HSK 笔试是两场独立的考试,分开报名、分开发证,共分三个等级:初级、中级、高级。考生的回答全程录音,考后由评分员评分,不是面对面的口试。`],[`每个等级满分 100 分,60 分合格。三个等级和笔试大致对应:初级对应 HSK 1–2 级,中级对应 HSK 3–4 级,高级对应 HSK 5–6 级。来华留学和奖学金申请常常要求同时提交 HSK 和相应等级的 HSKK 成绩。`],[`HSK 3.0 场次里,3–6 级各配一场口语考试,和笔试一起报名、分开进行。在新口语格式完整公布之前,本页的三个 HSKK 等级就是考生实际参加的口语考试——变化情况见`,{text:`HSK 3.0 进展页`,href:`/hsk-3-0-status`},`。`]]},{id:`scoring`,h2:`HSKK 怎么评分,我们又怎么给练习评分`,paras:[[`正式考试由评分员听录音,看你有没有完成每道题的要求、汉语是否准确丰富、说得是否流利清楚。官方只公布满分 100、合格 60,没有公布各部分的分值,所以任何练习网站都无法准确告诉你某一题值多少分。`],[`在这里,每一题都单独给出百分制得分。听后重复和朗读是"量"出来的:把录音转成文字,按顺序数一数原文说回来了多少、说得顺不顺。其余题型——回答问题、看图说话、听后复述——由 AI 考官阅卷,它知道等级、题目和作答时间,给"完成任务"和"语言"打分;流利度则从录音里的停顿测量。`],[`录音转写后立即删除,不会保存。`]]},{id:`prepare`,h2:`HSKK 怎么准备`,paras:[[`大多数考生丢分丢在同样三个地方:时间还没到就说完了;听后重复有一半没听清就卡住;回答问题时只说词不说句。这三点靠的都是限时开口练,而不是多看书。`]],list:[`听后重复按意群记:先听懂意思,再还原词语。漏了一个词也要把其余的说完——说出半句也有分。`,`回答问题要把时间说满。开口前想好三点:先直接回答,再给理由或例子,最后收尾。`,`用有把握的词。各个等级都更看重清楚、正确的汉语,而不是说到一半说不下去的"高级表达"。`,`每天录一段、回放一遍。你自己听出来的卡顿,就是考官会听到的卡顿。`]}],compareH2:`HSKK 三个等级对比`,compareCols:{band:`等级`,pairs:`对应`,parts:`题型`,time:`时长`,pass:`合格`},bandTitle:{beginner:`HSKK 初级模拟题(带录音)在线练习`,intermediate:`HSKK 中级模拟题(带录音)在线练习`,advanced:`HSKK 高级模拟题(带录音)在线练习`}
12,bandLede:{beginner:`5 套完整的 HSKK 初级练习:每套 15 道听后重复、10 道听后回答、2 道回答问题,词汇控制在 HSK 1–2 级以内。所有题目免登录可听可看;登录后录音作答,每一题都能评分。`,intermediate:`5 套完整的 HSKK 中级练习:每套 10 道听后重复、2 道看图说话、2 道回答问题,词汇控制在 HSK 1–4 级以内。所有题目免登录可听可看;登录后录音作答,每一题都能评分。`,advanced:`5 套完整的 HSKK 高级练习:每套 3 道听后复述、1 道朗读、2 道回答问题,词汇控制在 HSK 1–6 级以内。所有题目免登录可听可看;登录后录音作答,每一题都能评分。`},bandMetaTitle:{beginner:`HSKK 初级模拟题在线练习 — 5 套带录音与评分`,intermediate:`HSKK 中级模拟题在线练习 — 5 套带录音与评分`,advanced:`HSKK 高级模拟题在线练习 — 5 套带录音与评分`},bandMetaDescription:{beginner:`HSKK 初级在线模拟:5 套完整题目,含听后重复、听后回答、回答问题的录音和参考回答,录音作答即可 AI 评分。`,intermediate:`HSKK 中级在线模拟:5 套完整题目,含听后重复录音、看图说话图片和回答问题,附参考回答,录音作答即可 AI 评分。`,advanced:`HSKK 高级在线模拟:5 套完整题目,含听后复述录音、朗读短文和回答问题,附参考回答,录音作答即可 AI 评分。`},formatH2:e=>`${e}考试题型`,formatLede:{beginner:`初级共 27 题、三个部分,全程约 17 分钟,其中第三部分有 7 分钟准备时间。前两部分听完马上作答;第三部分的题目印在试卷上并标有拼音,每题回答 1.5 分钟。`,intermediate:`中级共 14 题、三个部分,全程约 23 分钟,其中有 10 分钟准备第二、三部分。第一部分听后重复;图片和问题印在试卷上,每题回答 2 分钟。`,advanced:`高级共 6 题、三个部分,全程约 25 分钟,其中有 10 分钟准备第二、三部分。第一部分每段话只播放一遍,听完复述;朗读短文和两道问题印在试卷上。`},formatCols:{part:`部分`,questions:`题量`,answer:`作答时间`,task:`做什么`},partTask:{repeat:`听一句话,原样说出来`,listen_answer:`听一个问题,简短回答`,answer:`回答试卷上的问题,展开说`,picture:`结合图片说一段话`,retell:`听一段话(只放一遍),复述出来`,read_aloud:`朗读试卷上的一段话`},tipsH2:e=>`${e}各部分怎么答`,tips:{repeat:[[`听意思,而不是听声音:听懂了的句子才复述得出来。录音一停就开口,等得越久忘得越多。漏了一个词也要接着说完——缺一处的句子还能拿到大部分分数,沉默一分没有。`]],listen_answer:[[`问什么答什么,用完整的句子:你几点起床?→ 我七点起床。在这个等级,一句正确的话就是满分回答。没听全问题,就回答你听到的那一部分,别不说。`]],answer:[[`准备时间里写三个要点,不要写稿子。先直接回答,再说理由和例子,最后总结。一直说到时间结束:二十秒就停的回答,再正确也算不上"展开回答"。`]],picture:[[`先说看到的——谁、在哪儿、在做什么,再说图片以外的:他们为什么在那儿、心情怎么样、让你想到了什么。后半段决定的是"及格"还是"高分"。`]],retell:[[`不要背原话,要记住故事的骨架:谁、发生了什么、有什么变化、结果怎样。按这个顺序用自己的话说出来——考官要的是故事,不是录音机。`]],read_aloud:[[`用平稳、自然的语速读,在标点处停顿。准确比速度重要:读错一个字、一个声调,比读得稍慢扣分更多。`]]},expectsH2:e=>`${e}对汉语的要求`,expects:{beginner:[[`2026 年版 HSK 考试大纲对一、二级"说"的要求是简单的问与答:姓名、年龄、家人,时间和地点,喜欢吃什么,怎么去某个地方,东西多少钱,身体怎么样。初级考的正是这些——关于日常生活的短而正确的句子,不是长句。`],[`本页每一句话、每一道题和参考回答都控制在 HSK 1–2 级词表以内。把`,{text:`HSK 1 级词汇`,href:`/vocabulary/hsk-1`},`和`,{text:`HSK 2 级词汇`,href:`/vocabulary/hsk-2`},`大声读熟,试卷用到的词就都有了。`]],intermediate:[[`到了三、四级,大纲的要求从"回答"变成"讲述":介绍一个人或一个地方,讲一段经历,说明一个选择,对日常生活、工作、健康、环保等话题简单发表看法——要求是"一段话"而不是一句话。中级要你把这样的一段话说满两分钟。`],[`本页题目控制在 HSK 1–4 级词表以内,`,{text:`HSK 4 级词汇`,href:`/vocabulary/hsk-4`},`是最值得开口练熟的一份。`]],advanced:[[`五、六级的大纲要求"较流畅地""流利地"谈论社会、教育、工作、科技、文化和历史:要能说明、比较、论证一个观点,而不只是描述。高级考的就是这些——还有听一遍就复述,这一题考听力不比考口语少。`],[`本页题目控制在 HSK 1–6 级词表以内。建议配合`,{text:`HSK 5 级模考`,href:`/mock-test/hsk-5`},`和`,{text:`HSK 6 级模考`,href:`/mock-test/hsk-6`}
12,`一起练——听力部分练的正是复述需要的耳朵。`]]},scoringH2:`练习回答怎么评分`,scoring:[[`每一题单独给出百分制得分。听后重复和朗读是"量"出来的:原文按顺序说回来多少、说得是否流畅。其他题型由 AI 考官阅卷,它知道等级、题目和作答时间,给"完成任务"和"语言"打分;流利度从录音停顿中测量。`],[`所有题目和参考回答都可以免登录查看和收听。录音评分需要免费账号,每天可评分 1 次;`,{text:`月度和终身会员`,href:`/pricing`},`不限次数。录音不会被保存。`]],faqH2:`HSKK 常见问题`,indexFaq:[{q:`我应该考 HSKK 哪个等级?`,a:`按笔试水平选:HSK 1–2 级选初级,3–4 级选中级,5–6 级选高级。学校或奖学金指定了等级,就考指定的那一级。可以先在这里做一套对应等级的题:大部分句子能复述出来、能把规定时间说满,就可以报了。`},{q:`考 HSK 必须考 HSKK 吗?`,a:`不必须。HSK 笔试和 HSKK 是两场独立的考试,各自发证。不过很多中国高校和奖学金要求两者都有,请以你的申请要求为准。`},{q:`HSKK 多少分及格?`,a:`每个等级满分 100 分,60 分合格。官方没有公布各部分的分值。`},{q:`HSKK 考多长时间?`,a:`初级约 17 分钟(27 题),中级约 23 分钟(14 题),高级约 25 分钟(6 题),均含准备时间。`},{q:`HSKK 和 HSK 3.0 是什么关系?`,a:`HSK 3.0 场次里,3–6 级各配一场口语考试,和笔试一起报名、分开进行。目前仍在考的是三个 HSKK 等级;复述、回答、描述、转述这些能力在新旧格式里是相通的。`,link:{text:`HSK 3.0 进展`,href:`/hsk-3-0-status`}},{q:`这里的 HSKK 练习免费吗?`,a:`收听所有录音、查看所有题目和参考回答都免费,也不用注册。录音评分需要免费账号,每天可评分 1 次;月度和终身会员不限次数。`,link:{text:`查看会员方案`,href:`/pricing`}}
12,{q:`这些是 HSKK 真题吗?`,a:`不是。这些是按 HSKK 试卷格式原创的练习题,词汇控制在各等级对应的 HSK 3.0 词表以内。真题版权属于中外语言交流合作中心,这里提供的是同样题型的练习。`},{q:`我的录音会被保存吗?`,a:`不会。录音只上传一次,转写、评分后立即删除,账号里只保存转写文字和分数。`}],bandFaq:{beginner:[{q:`HSKK 初级一共多少题?`,a:`27 题:15 道听后重复、10 道听后回答、2 道印在试卷上的回答问题,每题回答 1.5 分钟。`},{q:`HSKK 初级试卷上有拼音吗?`,a:`有。第三部分的两道问题都标有拼音,这里的练习题也同样显示拼音。`},{q:`HSKK 初级需要掌握多少词?`,a:`HSK 1–2 级词表。本页每一句都在词表以内,遇到不认识的词,正是该学的词。`,link:{text:`HSK 2 级词汇`,href:`/vocabulary/hsk-2`}},{q:`一句话没听全怎么办?`,a:`说出你听到的部分。听后重复按说回来多少评分,半句话远比不说强。`}],intermediate:[{q:`HSKK 中级一共多少题?`,a:`14 题:10 道听后重复、2 道看图说话、2 道回答问题,看图说话和回答问题每题 2 分钟。`},{q:`看图说话要说多长?`,a:`把 2 分钟说满。好的回答先描述图片内容,再说到图片以外——这里的参考回答在 150–250 字之间。`},{q:`HSKK 中级比 HSK 4 级难吗?`,a:`用词比 HSK 4 级阅读少,但要你自己说出来,还要用正常语速。大多数考 4 级的人觉得难的是两分钟的回答,而不是词汇。`},{q:`应该背哪些词?`,a:`HSK 1–4 级词表,本页每一句都在其中。`,link:{text:`HSK 4 级词汇`,href:`/vocabulary/hsk-4`}}],advanced:[{q:`HSKK 高级一共多少题?`,a:`6 题:3 道听后复述(每题 2 分钟)、1 道朗读(2 分钟)、2 道回答问题(每题 2.5 分钟)。`},{q:`听后复述要一字不差吗?`,a:`不用。复述看的是故事有没有说回来——人物、经过、结果——以及你自己的汉语好不好。不需要、也不期待逐字复述。`},{q:`朗读怎么评分?`,a:`看准确度——字和声调读对没有——以及语速是否平稳自然、停顿是否恰当。`},{q:`应该背哪些词?`,a:`HSK 1–6 级词表,本页每一句都在其中。`,link:{text:`HSK 6 级词汇`,href:`/vocabulary/hsk-6`}}]}}};function SN(e,t){xN[e]=t}function CN(e){return xN[e.slice(0,2).toLowerCase()]??bN}var wN={crumb:`ข้อสอบพูด HSKK`,band:{beginner:`HSKK ระดับต้น`,intermediate:`HSKK ระดับกลาง`,advanced:`HSKK ระดับสูง`},pairs:{beginner:`HSK 1–2`,intermediate:`HSK 3–4`,advanced:`HSK 5–6`},words:{beginner:`คำศัพท์ HSK 1–2`,intermediate:`คำศัพท์ HSK 1–4`,advanced:`คำศัพท์ HSK 1–6`},ui:{bandsNav:`ระดับ HSKK`,setsLabel:`ชุดฝึกทำข้อสอบ`,setN:e=>`ชุดที่ ${e}`,randomSet:`สุ่มชุด`,partN:e=>`ส่วนที่ ${e}`,questionOf:(e,t)=>`ข้อ ${e} จาก ${t}`,prev:`ก่อนหน้า`,next:`ถัดไป`,play:`เล่นเสียง`,pause:`หยุดชั่วคราว`,replay:`ฟังอีกครั้ง`,examOnce:`ในห้องสอบจริง แต่ละไฟล์เสียงจะเปิดให้ฟังเพียงครั้งเดียว แต่ที่นี่คุณฟังซ้ำได้`,showScript:`แสดงบทพูดในไฟล์เสียง`,hideScript:`ซ่อนบทพูด`,showModel:`ดูตัวอย่างคำตอบ`,hideModel:`ซ่อนตัวอย่างคำตอบ`,modelAnswer:`ตัวอย่างคำตอบ`,passageHeard:`บทพูดในไฟล์เสียง`,timeAllowed:e=>e>=60?`มีเวลาตอบ ${e/60} นาที`:`มีเวลาตอบประมาณ ${e} วินาที`,minutes:e=>`${e/60} นาที`,yourAnswer:`คำตอบของคุณ`,signInTitle:`ต้องมีบัญชีจึงจะอัดเสียงและรับคะแนนได้`,signInBody:`ทุกคนอ่านและฟังโจทย์ได้ครบทุกข้อ หากต้องการอัดเสียงคำตอบและให้ระบบให้คะแนน กรุณาเข้าสู่ระบบ แล้วคุณจะกลับมาที่ข้อนี้ทันที`,signInCta:`เข้าสู่ระบบเพื่อตอบ`,signUpCta:`สมัครบัญชีฟ
12รี`,record:`อัดเสียง`,stop:`หยุด`,recording:e=>`กำลังอัดเสียง… ${e} วินาที`,rerecord:`อัดเสียงใหม่`,micDenied:`การเข้าถึงไมโครโฟนถูกบล็อก กรุณาอนุญาตในการตั้งค่าเว็บไซต์ของเบราว์เซอร์ แล้วลองอีกครั้ง`,micUnsupported:`เบราว์เซอร์นี้อัดเสียงไม่ได้ ลองใช้ Chrome, Edge หรือ Safari`,submit:`ให้คะแนนคำตอบของฉัน`,scoring:`กำลังฟังและให้คะแนน…`,quotaLeft:e=>`วันนี้เหลือสิทธิ์ให้คะแนนฟรี ${e} ครั้ง`,quotaUsed:`ใช้สิทธิ์ให้คะแนนฟรีของวันนี้แล้ว`,unlimited:`แพ็กเกจของคุณใช้ได้ไม่จำกัด`,dailyTitle:`ใช้สิทธิ์ให้คะแนนฟรีของวันนี้แล้ว`,dailyBody:(e,t)=>`บัญชีฟรีให้คะแนนคำตอบได้วันละ 1 ครั้ง และรีเซ็ตทุกเที่ยงคืนตามเวลา UTC แพ็กเกจรายเดือน (${e}) หรือตลอดชีพ (${t} จ่ายครั้งเดียว) ให้คะแนนได้ทุกคำตอบ ทุกระดับ HSKK โดยไม่จำกัดจำนวนต่อวัน`,score:`คะแนน`,accuracy:`พูดตามได้ครบ`,fluency:`ความคล่อง`,pace:`ความเร็ว`,paceUnit:e=>`${e} ตัวอักษร/วินาที`,content:`ทำตามโจทย์`,language:`ภาษา`,tones:`วรรณยุกต์`,heard:`สิ่งที่เราได้ยิน`,missedNote:`ตัวอักษรสีเทาคือส่วนที่ไม่ปรากฏในคำตอบของคุณ`,noSpeech:`ไม่พบเสียงภาษาจีนในไฟล์ที่อัดไว้ ตรวจสอบไมโครโฟนแล้วลองใหม่อีกครั้ง ครั้งนี้ไม่นับสิทธิ์`,fixes:`จุดที่ควรแก้`,audioNote:`เสียงของคุณจะถูกถอดเป็นข้อความแล้วลบทิ้งทันที ไม่มีการเก็บไว้ คะแนนวรรณยุกต์ประเมินจากข้อความที่ถอดได้ จึงควรใช้เป็นแนวทางเท่านั้น`,tryAgain:`ลองข้อนี้อีกครั้ง`,nextQuestion:`ข้อถัดไป`,partName:{repeat:`ฟังแล้วพูดตาม`,listen_answer:`ฟังแล้วตอบคำถาม`,answer:`ตอบคำถาม`,picture:`บรรยายภาพ`,retell:`ฟังแล้วเล่าเรื่องซ้ำ`,read_aloud:`อ่านออกเสียง`},partInstruction:{repeat:`คุณจะได้ยินหนึ่งประโยค ให้พูดตามให้ตรงกับที่ได้ยินมากที่สุด`,listen_answer:`คุณจะได้ยินคำถาม ให้ตอบสั้น ๆ และตอบเป็นประโยคที่สมบูรณ์หากทำได้`,answer:`ตอบคำถามที่พิมพ์ไว้ และพูดต่อเนื่องให้เต็มเวลาที่มี`,picture:`พูดถึงภาพ: ใคร ที่ไหน กำลังเกิดอะไรขึ้น แล้วต่อยอดไปไกลกว่าสิ่งที่เห็นในภาพ`,retell:`คุณจะได้ยินเรื่องสั้นหนึ่งครั้ง ให้เล่าเรื่องนั้นซ้ำด้วยคำพูดของคุณเอง`,read_aloud:`อ่านบทความออกเสียงให้ชัดเจน ด้วยความเร็วที่เป็นธรรมชาติ`},factsTime:`เวลาสอบ`,factsPass:`เกณฑ์ผ่าน`,factsQuestions:`จำนวนข้อ`,factsWords:`คำศัพท์`},indexTitle:`ข้อสอบจำลอง HSKK: ฟัง พูด และรับคะแนนออนไลน์`,indexLede:`ชุดฝึกทำข้อสอบ HSKK ฉบับเต็ม 15 ชุด ระดับละ 5 ชุด พร้อมไฟล์เสียง โจทย์ และตัวอย่างคำตอบ ฟังได้ทุกชุดโดยไม่ต้องมีบัญชี เข้าสู่ระบบเพื่ออัดเสียงคำตอบและรับคะแนนทีละข้อ`,indexMetaTitle:`ข้อสอบ HSKK ฝึกสอบออนไลน์ 15 ชุด พร้อมเสียงและ AI ให้คะแนน`,indexMetaDescription:`ฝึกสอบ HSKK ออนไลน์ฟรี ระดับต้น กลาง และสูง ระดับละ 5 ชุดเต็ม พร้อมไฟล์เสียง ตัวอย่างคำตอบ และ AI ให้คะแนนการพูด พร้อมรูปแบบข้อสอบ เกณฑ์คะแนน และเทคนิค`,indexCardCta:`เริ่มฝึก`,indexCardMeta:(e,t)=>`5 ชุด · ชุดละ ${e} ข้อ · ประมาณ ${t} นาที`,howH2:`วิธีฝึกบนเว็บนี้`,how:[{title:`เลือกระดับและเลือกชุด`,body:`แต่ละชุดคือข้อสอบ HSKK ฉบับสมบูรณ์หนึ่งฉบับ มีส่วนเหมือนกัน เรียงลำดับเหมือนกัน และจำนวนข้อเท่ากับข้อสอบจริง`},{title:`ฟัง แล้วตอบออกเสียง`,body:`เปิดไฟล์เสียงหรืออ่านโจทย์ แล้วอัดเสียงคำตอบในเบราว์เซอร์ได้เลย ไม่ต้องลงแอป ไม่ต้องอัปโหลดไฟล์`},{title:`รู้ว่ากรรมการสอบจะได้ยินอะไร`,body:`คะแนนเต็ม 100 ส่วนที่คุณพูดออกมาได้จริง และจุดหนึ่งหรือสองจุดที่ควรแก้เป็นอันดับถัดไป`}],onThisPage:`ในหน้านี้`,indexSections:[{id:`what`,h2:`HSKK คืออะไร?`,paras:[[`HSKK (汉语水平口语考试) คือข้อสอบพูดในตระกูล HSK เป็นการสอบที่แยกจาก HSK ข้อเขียน มีการสมัครสอบและใบประกาศนียบัตรของตัวเอง แบ่งเป็นสามระดับ ได้แก่ ระดับต้น (初级) ระดับกลาง (中级) และระดับสูง (高级) ทุกอย่างที่คุณพูดจะถูกบันทึกเสียงไว้และตรวจให้คะแนนภายหลัง โดยไม่มีการสัมภาษณ์ตัวต่อตัว`],[`ทุกระดับมีคะแนนเต็ม 100 และต้องได้ 60 คะแนนจึงจะผ่าน แต่ละระดับจับคู่กับข้อสอบข้อเขียน คือ ระดับต้นคู่กับ HSK 1–2 ระดับกลางคู่กับ HSK 3–4 และระดับสูงคู่กับ HSK 5–6 มหาวิทยาลัยและทุนการศึกษาในจีนมักขอผล HSKK ควบคู่กับผล HSK ในระดับที่ตรงกัน`],[`ภายใต้ HSK 3.0 ระดับ 3–6 จะมีข้อสอบพูดของแต่ละระดับ สมัครพร้อมก
12ับข้อสอบข้อเขียนแต่สอบแยกกัน จนกว่ารูปแบบใหม่จะประกาศครบถ้วน HSKK ทั้งสามระดับในหน้านี้ก็ยังเป็นข้อสอบพูดที่ผู้สอบใช้สอบจริงอยู่ ดู`,{text:`หน้าสถานะ HSK 3.0`,href:`/hsk-3-0-status`},`เพื่อดูว่ามีอะไรเปลี่ยนแปลงบ้าง`]]},{id:`scoring`,h2:`HSKK ให้คะแนนอย่างไร และเราให้คะแนนการฝึกของคุณอย่างไร`,paras:[[`ในการสอบจริง ผู้ตรวจที่ผ่านการฝึกอบรมจะฟังเสียงที่บันทึกไว้ แล้วประเมินว่าคุณทำตามที่โจทย์แต่ละข้อกำหนดหรือไม่ ภาษาจีนของคุณถูกต้องและหลากหลายแค่ไหน และพูดได้คล่องและชัดเพียงใด CTI เผยแพร่เพียงคะแนนเต็ม 100 และเกณฑ์ผ่าน 60 คะแนน ไม่ได้ระบุน้ำหนักคะแนนของแต่ละส่วน จึงไม่มีเว็บฝึกสอบไหนบอกได้แน่ชัดว่าคำตอบหนึ่งข้อมีค่ากี่คะแนน`],[`ที่นี่ แต่ละคำตอบจะได้คะแนนเต็ม 100 แยกกัน การพูดตามประโยคและการอ่านออกเสียงเป็นการวัดผล ไม่ใช่การประเมินด้วยวิจารณญาณ เราถอดเสียงของคุณเป็นข้อความ แล้วนับว่าพูดกลับมาได้ครบตามลำดับมากแค่ไหนและราบรื่นเพียงใด ส่วนที่เหลือ ทั้งการตอบคำถาม การบรรยายภาพ และการเล่าเรื่องซ้ำ จะให้ผู้ตรวจ AI ที่รู้ระดับ โจทย์ และเวลาที่คุณมี เป็นผู้ให้คะแนนด้านการทำตามโจทย์และด้านภาษา ส่วนความคล่องวัดจากช่วงหยุดในเสียงของคุณ`],[`เสียงของคุณจะถูกถอดเป็นข้อความแล้วลบทิ้ง ไม่มีการเก็บไว้`]]},{id:`prepare`,h2:`เตรียมสอบ HSKK อย่างไร`,paras:[[`ผู้สอบส่วนใหญ่เสียคะแนนในสามจุดเดิม ๆ คือ หยุดพูดทั้งที่ยังเหลือเวลาอีกมาก นิ่งไปเมื่อฟังประโยคที่ต้องพูดตามได้ไม่ครบ และตอบคำถามเป็นคำ ๆ แทนที่จะพูดเป็นประโยค ทั้งสามข้อนี้ดีขึ้นได้ด้วยการฝึกพูดออกเสียงแบบจับเวลา ไม่ใช่ด้วยการอ่านให้มากขึ้น`]],list:[`พูดตามประโยคเป็นช่วง ๆ: ฟังความหมายก่อน แล้วค่อยจำคำ ถ้าลืมไปหนึ่งคำ ก็พูดส่วนที่เหลือต่อ ประโยคที่ไม่ครบà¸
12à¹‡à¸¢à¸±à¸‡à¹„ด้คะแนน`,`พูดให้เต็มเวลาในข้อที่ต้องตอบยาว วางสามประเด็นไว้ก่อนเริ่มพูด: คำตอบเปิด เหตุผลหรือตัวอย่าง และประโยคปิดท้าย`,`ใช้คำที่มั่นใจ ทุกระดับให้คะแนนภาษาจีนที่ชัดเจนและถูกต้อง มากกว่าภาษาจีนที่ทะเยอทะยานแต่พูดแล้วติดขัด`,`อัดเสียงตัวเองแล้วฟังย้อนวันละครั้ง ช่องโหว่ที่คุณได้ยินคือสิ่งเดียวกับที่ผู้ตรวจได้ยิน`]}],compareH2:`เปรียบเทียบ HSKK ทั้งสามระดับ`,compareCols:{band:`ระดับ`,pairs:`คู่กับ`,parts:`ส่วน`,time:`เวลา`,pass:`เกณฑ์ผ่าน`},bandTitle:{beginner:`ข้อสอบจำลอง HSKK ระดับต้น (初级) พร้อมไฟล์เสียง`,intermediate:`ข้อสอบจำลอง HSKK ระดับกลาง (中级) พร้อมไฟล์เสียง`,advanced:`ข้อสอบจำลอง HSKK ระดับสูง (高级) พร้อมไฟล์เสียง`},bandLede:{beginner:`ข้อสอบ HSKK ระดับต้นฉบับเต็ม 5 ชุด แต่ละชุดมีประโยคให้พูดตาม 15 ประโยค คำถามให้ฟังแล้วตอบ 10 ข้อ และคำถามแบบพิมพ์ 2 ข้อ ใช้คำศัพท์ระดับ HSK 1–2 ฟังได้ทุกชุดโดยไม่มีค่าใช้จ่าย เข้าสู่ระบบเพื่ออัดเสียงและรับคะแนนทุกคำตอบ`,intermediate:`ข้อสอบ HSKK ระดับกลางฉบับเต็ม 5 ชุด แต่ละชุดมีประโยคให้พูดตาม 10 ประโยค ภาพให้บรรยาย 2 ภาพ และคำถามให้ตอบ 2 ข้อ ใช้คำศัพท์ระดับ HSK 3–4 ฟังได้ทุกชุดโดยไม่มีค่าใช้จ่าย เข้าสู่ระบบเพื่ออัดเสียงและรับคะแนนทุกคำตอบ`,advanced:`ข้อสอบ HSKK ระดับสูงฉบับเต็ม 5 ชุด แต่ละชุดมีเรื่องให้เล่าซ้ำ 3 เรื่อง บทความให้อ่านออกเสียง 1 บท และคำถามให้แสดงความคิดเห็น 2 ข้อ ใช้คำศัพท์ระดับ HSK 5–6 ฟังได้ทุกชุดโดยไม่มีค่าใช้จ่าย เข้าสู่ระบบเพื่ออัดเสียงและรับคะแนนทุกคำตอบ`},bandMetaTitle:{beginner:`ข้อสอบ HSKK ระดับต้น (初级) ฝึกสอบออนไลน์ 5 ชุด พร้อมเสียง`,intermediate:`ข้อสอบ HSKK ระดับกลาง (中级) ฝึกสอบออนไลน์ 5 ชุด พร้อมเสียง`,advanced:`ข้อสอบ HSKK ระดับสูง (高级) ฝึกสอบออนไลน์ 5 ชุด พร้อมเสียง`},bandMetaDescription:{beginner:`ข้อสอบจำลอง HSKK ระดับต้น (初级) ออนไลน์ 5 ชุดเต็มพร้อมไฟล์เสียง ทั้งฟังแล้วพูดตาม ฟังแล้วตอบ และตอบคำถาม มีตัวอย่างคำตอบและ AI ให้คะแนน`,intermediate:`ข้อสอบจำลอง HSKK ระดับกลาง (中级) ออนไลน์ 5 ชุดเต็มพร้อมไฟล์เสียง ภาพให้บรรยายและคำถาม มีตัวอย่างคำตอบและ AI ให้คะแนนการพูดของคุณ`,advanced:`ข้อสอบจำลอง HSKK ระดับสูง (高级) ออนไลน์ 5 ชุดเต็ม ทั้งฟังแล้วเล่าซ้ำ อ่านออกเสียง และคำถามแสดงความคิดเห็น พร้อมไฟล์เสียง ตัวอย่างคำตอบ และ AI ให้คะแนน`},formatH2:e=>`รูปแบบข้อสอบ ${e}`,formatLede:{beginner:`ข้อสอบระดับต้นมี 27 ข้อ แบ่งเป็นสามส่วน ใช้เวลาประมาณ 17 นาที รวมเวลาเตรียมตัว 7 นาทีสำหรับส่วนที่ 3 สองส่วนแรกฟังแล้วตอบทันที ส่วนที่ 3 เป็นโจทย์แบบพิมพ์พร้อมพินอิน และมีเวลาตอบข้อละหนึ่งนาทีครึ่ง`,intermediate:`ข้อสอบระดับกลางมี 14 ข้อ แบ่งเป็นสามส่วน ใช้เวลาประมาณ 23 นาที รวมเวลาเตรียมตัว 10 นาทีสำหรับส่วนที่ 2 และ 3 ส่วนที่ 1 ฟังแล้วพูดตาม ส่วนภาพและคำถามเป็นแบบพิมพ์ และมีเวลาตอบข้อละสองนาที`,advanced:`ข้อสอบระดับสูงมี 6 ข้อ แบ่งเป็นสามส่วน ใช้เวลาประมาณ 25 นาที รวมเวลาเตรียมตัว 10 นาทีสำหรับส่วนที่ 2 และ 3 เรื่องในส่วนที่ 1 จะเปิดให้ฟังเพียงครั้งเดียวแล้วเล่าซ้ำ ส่วนบทอ่านและคำถามสองข้อเป็นแบบพิมพ์`},formatCols:{part:`ส่วน`,questions:`จำนวนข้อ`,answer:`เวลาตอบ`,task:`สิ่งที่ต้องทำ`},partTask:{repeat:`ฟังหนึ่งประโยค แล้วพูดตาม`,listen_answer:`ฟังคำถาม แล้วตอบสั้น ๆ`,answer:`ตอบคำถามแบบพิมพ์อย่างละเอียด`,picture:`พูดบรรยายภาพถ่าย`,retell:`ฟังเรื่องหนึ่งครั้ง แล้วเล่าซ้ำ`,read_aloud:`อ่านบทความแบบพิมพ์ออกเสียง`},tipsH2:e=>`วิธีตอบแต่ละส่วนของ ${e}`,tips:{repeat:[[`ฟังเอาความหมาย ไม่ใช่ฟังแค่เสียง ประโยคที่เข้าใจแล้วคือประโยคที่คุณประกอบขึ้นใหม่ได้ เริ่มพูดทันทีที่ประโยคจบ ยิ่งรอนานยิ่งลืมมาก ถ้าลืมไปหนึ่งคำก็พูดต่อไป ประโยคที่ขาดไปหนึ่งคำยังได้คะแนนเกือบทั้งหมด แต่ความเงียบไม่ได้คะแนนเลย`]],listen_answer:[[`ตอบให้ตรงคำถามและตอบเป็นประโยค: 你几点起床? → 我七点起床。 ในระดับนี้ ประโยคที่ถูกต้องหนึ่งประโยคถือเป็นคำตอบที่ครบถ้วน ถ้าฟังคำถามไม่ทัน ให้ตอบส่วนที่ฟังทัน ดีกว่าไม่พูดอะไรเลย`]],answer:[[`ใช้เวลาเตรียมตัวจดสามประเด็น ไม่ต้องเขียนเป็นบท เปิดด้วยคำตอบตรง ๆ เพิ่มเหตุผลและตัวอย่าง แล้วปิดท้าย พูดต่อไปจนหมดเวลา คำตอบที่หยุดตั้งแต่วินาทีที่ยี่สิบไม่อาจได้คะแนนแบบคำตอบที่พัฒนาความคิดได้ ต่อให้ถูกต้องแค่ไหนก็
12ตาม`]],picture:[[`เริ่มจากสิ่งที่เห็นก่อน ใคร ที่ไหน กำลังทำอะไร แล้วจึงพูดไปไกลกว่าภาพ เช่น ทำไมเขาถึงอยู่ที่นั่น รู้สึกอย่างไร หรือภาพทำให้คุณนึกถึงอะไร ครึ่งหลังนี้แหละที่แยกระหว่างแค่สอบผ่านกับได้คะแนนดี`]],retell:[[`อย่าพยายามท่องจำคำ ให้จับโครงเรื่องไว้: ใคร เกิดอะไรขึ้น อะไรเปลี่ยนไป และจบอย่างไร แล้วเล่าซ้ำตามลำดับนั้นด้วยประโยคของคุณเอง ผู้ตรวจอยากได้ยินเรื่องราว ไม่ใช่การท่องตามเสียงที่ได้ยิน`]],read_aloud:[[`อ่านด้วยจังหวะสม่ำเสมอและเป็นธรรมชาติ และหยุดตามเครื่องหมายวรรคตอน ความถูกต้องสำคัญกว่าความเร็ว อ่านอักษรผิดหรือวรรณยุกต์ผิดเสียคะแนนมากกว่าอ่านช้าไปนิดหน่อย`]]},expectsH2:e=>`${e} คาดหวังภาษาจีนระดับไหน`,expects:{beginner:[[`หลักสูตร HSK ปี 2026 อธิบายทักษะการพูดของ HSK 1–2 ว่าเป็นการถามและตอบคำถามง่าย ๆ เช่น ชื่อ อายุ และครอบครัว เวลาและสถานที่ ชอบกินอะไร เดินทางไปที่ไหนอย่างไร ของสิ่งหนึ่งราคาเท่าไร และรู้สึกอย่างไร ซึ่งตรงกับสิ่งที่ระดับต้นทดสอบพอดี คือประโยคสั้น ๆ ที่ถูกต้องเกี่ยวกับชีวิตประจำวัน ไม่ใช่ประโยคยาว ๆ`],[`ทุกประโยค ทุกคำถาม และทุกตัวอย่างคำตอบในชุดเหล่านี้ใช้คำศัพท์ไม่เกินรายการคำศัพท์ HSK 1–2 ฝึกพูด`,{text:`คำศัพท์ HSK 1`,href:`/vocabulary/hsk-1`},` และ `,{text:`คำศัพท์ HSK 2`,href:`/vocabulary/hsk-2`},`ออกเสียงให้คล่อง แล้วคุณจะมีคำศัพท์ครบตามที่ข้อสอบใช้`]],intermediate:[[`ที่ระดับ HSK 3–4 หลักสูตรเปลี่ยนจากการตอบคำถามไปสู่การเล่า เช่น แนะนำบุคคลหรือสถานที่ บรรยายประสบการณ์ อธิบายเหตุผลของการเลือก และแสดงความคิดเห็นง่าย ๆ เกี่ยวกับชีวิตประจำวัน การงาน สุขภาพ หรือสิ่งแวดล้อม เป็น “ย่อหน้าสั้น ๆ” แทนที่จะเป็นประโยคเดียว ระดับกลางต้องการให้คุณพูดต่อเนื่องแบบนั้นได้นานสองนาที`],[`ชุดเหล่านี้ใช้คำศัพท์ไม่เกินรายการ HSK 1–4 `,{text:`รายการคำศัพท์ HSK 4`,href:`/vocabulary/hsk-4`},`คือรายการที่ควรฝึกพูดออกเสียงให้มากที่สุด`]],advanced:[[`ที่ระดับ HSK 5–6 หลักสูตรคาดหวังให้คุณพูดได้ “อย่างคล่องแคล่ว” ในเรื่องสังคม การศึกษา การงาน วิทยาศาสตร์ วัฒนธรรม และประวัติศาสตร์ คืออธิบาย เปรียบเทียบ และให้เหตุผลสนับสนุนความคิดเห็นได้ ไม่ใช่แค่บรรยาย ระดับสูงทดสอบสิ่งนี้ รวมถึงการเล่าซ้ำเรื่องที่ได้ฟังเพียงครั้งเดียว ซึ่งเป็นทักษะการฟังพอ ๆ กับการพูด`],[`ชุดเหล่านี้ใช้คำศัพท์ไม่เกินรายการ HSK 1–6 ฝึกควบคู่กับ`,{text:`ข้อสอบจำลอง HSK 5`,href:`/mock-test/hsk-5`},` และ `,{text:`ข้อสอบจำลอง HSK 6`,href:`/mock-test/hsk-6`},` เพราะพาร์ตการฟังช่วยฝึกหูแบบเดียวกับที่การเล่าซ้ำต้องใช้`]]},scoringH2:`คำตอบที่คุณฝึกได้รับคะแนนอย่างไร`,scoring:[[`แต่ละคำตอบได้คะแนนเต็ม 100 การพูดตามและการอ่านออกเสียงเป็นการวัดผล คือพูดกลับมาได้มากแค่ไหน ตรงลำดับหรือไม่ และราบรื่นเพียงใด ส่วนอื่น ๆ จะให้ผู้ตรวจ AI ที่รู้ระดับ โจทย์ และเวลาที่คุณมี เป็นผู้อ่านและให้คะแนนว่าคุณทำตามโจทย์หรือไม่ และภาษาจีนดีแค่ไหน ส่วนความคล่องวัดจากช่วงหยุดในเสียงที่คุณอัด`],[`ทุกคนฟังโจทย์ได้ทุกข้อและอ่านตัวอย่างคำตอบได้ทั้งหมด การอัดเสียงและให้คะแนนต้องใช้บัญชีฟ
12รี ซึ่งให้คะแนนได้วันละหนึ่งคำตอบ ส่วนแพ็กเกจ`,{text:`รายเดือนและตลอดชีพ`,href:`/pricing`},`ให้คะแนนได้ทุกคำตอบโดยไม่จำกัดต่อวัน และเราไม่เก็บเสียงของคุณไว้`]],faqH2:`คำถามเกี่ยวกับ HSKK`,indexFaq:[{q:`ควรสอบ HSKK ระดับไหน?`,a:`เลือกให้ตรงกับระดับข้อเขียนของคุณ: ระดับต้นถ้าคุณอยู่ที่ HSK 1–2 ระดับกลางสำหรับ HSK 3–4 และระดับสูงสำหรับ HSK 5–6 ถ้ามหาวิทยาลัยหรือทุนการศึกษาระบุระดับไว้ ให้สอบระดับนั้น ลองทำข้อสอบระดับนั้นที่นี่ก่อนสักชุด ถ้าพูดตามประโยคได้เกือบทั้งหมดและพูดได้เต็มเวลาที่กำหนด แสดงว่าคุณพร้อมแล้ว`},{q:`ต้องสอบ HSKK ด้วยไหมถ้าสอบ HSK?`,a:`ไม่จำเป็น HSK ข้อเขียนและ HSKK เป็นการสอบแยกกันและมีใบประกาศนียบัตรแยกกัน แต่มหาวิทยาลัยและทุนการศึกษาในจีนจำนวนมากขอทั้งสองอย่าง จึงควรตรวจสอบเงื่อนไขของที่ที่คุณสมัคร`},{q:`เกณฑ์ผ่าน HSKK คือเท่าไร?`,a:`ทุกระดับมีคะแนนเต็ม 100 และต้องได้ 60 คะแนนจึงจะผ่าน CTI ไม่ได้เผยแพร่ว่าแต่ละส่วนมีคะแนนเท่าไร`},{q:`สอบ HSKK ใช้เวลานานเท่าไร?`,a:`ระดับต้นประมาณ 17 นาที (27 ข้อ) ระดับกลาง 23 นาที (14 ข้อ) และระดับสูง 25 นาที (6 ข้อ) รวมเวลาเตรียมตัวแล้ว`},{q:`HSKK เป็นส่วนหนึ่งของ HSK 3.0 หรือไม่?`,a:`ภายใต้ HSK 3.0 ระดับ 3–6 จะมีข้อสอบพูดของแต่ละระดับ สมัครพร้อมข้อสอบข้อเขียนแต่สอบแยกกัน ขณะนี้ HSKK ทั้งสามระดับยังเป็นรูปแบบที่ใช้สอบอยู่ และทักษะต่าง ๆ ทั้งการพูดตาม การตอบคำถาม การบรรยาย และการเล่าซ้ำ ก็ยังใช้ได้ต่อไป`,link:{text:`สถานะ HSK 3.0`,href:`/hsk-3-0-status`}},{q:`ฝึกสอบ HSKK ที่นี่ฟรีไหม?`,a:`ฟังไฟล์เสียงทุกไฟล์ อ่านโจทย์และตัวอย่างคำตอบทุกข้อได้ฟรีโดยไม่ต้องมีบัญชี การอัดเสียงและให้คะแนนต้องใช้บัญชีฟรี ซึ่งให้คะแนนได้วันละหนึ่งคำตอบ ส่วนแพ็กเกจรายเดือนและตลอดชีพให้คะแนนได้ไม่จำกัดต่อวัน`,link:{text:`ดูแพ็กเกจ`,href:`/pricing`}},{q:`ข้อสอบเหล่านี้เป็นข้อสอบ HSKK จริงหรือไม่?`,a:`ไม่ใช่ เป็นโจทย์ที่เขียนขึ้นใหม่ตามรูปแบบข้อสอบ HSKK และใช้คำศัพท์ไม่เกินรายการคำศัพท์ HSK 3.0 ของแต่ละระดับ ข้อสอบเก่าเป็นลิขสิทธิ์ของ CTI ส่วนชุดเหล่านี้คือแบบฝึกที่มีรูปแบบเดียวกัน`}
12,{q:`เว็บนี้เก็บเสียงที่ฉันอัดไว้หรือไม่?`,a:`ไม่เก็บ เสียงที่อัดจะถูกส่งมาครั้งเดียว ถอดเป็นข้อความ ให้คะแนน แล้วลบทิ้ง บัญชีของคุณจะบันทึกไว้เพียงข้อความที่ถอดได้และคะแนนเท่านั้น`}],bandFaq:{beginner:[{q:`HSKK ระดับต้นมีกี่ข้อ?`,a:`27 ข้อ: ประโยคให้พูดตาม 15 ประโยค คำถามให้ฟังแล้วตอบ 10 ข้อ และคำถามแบบพิมพ์ 2 ข้อ ข้อละหนึ่งนาทีครึ่ง`},{q:`HSKK ระดับต้นมีพินอินกำกับไหม?`,a:`มี คำถามแบบพิมพ์สองข้อในส่วนที่ 3 มีพินอินกำกับ ชุดฝึกที่นี่ก็แสดงแบบเดียวกัน`},{q:`HSKK ระดับต้นต้องรู้คำศัพท์มากแค่ไหน?`,a:`รายการคำศัพท์ HSK 1–2 ทุกบรรทัดในชุดเหล่านี้ไม่เกินรายการนั้น คำไหนที่คุณยังไม่รู้ในนี้จึงเป็นคำที่ควรเรียน`,link:{text:`คำศัพท์ HSK 2`,href:`/vocabulary/hsk-2`}},{q:`ถ้าฟังประโยคไม่ทันทั้งประโยคล่ะ?`,a:`พูดส่วนที่ฟังทัน ข้อพูดตามให้คะแนนตามปริมาณที่พูดกลับมาได้ ครึ่งประโยคจึงมีค่ามากกว่าความเงียบหลายเท่า`}],intermediate:[{q:`HSKK ระดับกลางมีกี่ข้อ?`,a:`14 ข้อ: ประโยคให้พูดตาม 10 ประโยค ภาพให้บรรยาย 2 ภาพ และคำถามแบบพิมพ์ 2 ข้อ มีเวลาภาพละและข้อละสองนาที`},{q:`บรรยายภาพควรยาวแค่ไหน?`,a:`ใช้ให้เต็มสองนาที คำตอบที่ดีจะบรรยายสิ่งที่อยู่ในภาพ แล้วพูดต่อยอดไปไกลกว่านั้น ตัวอย่างคำตอบที่นี่ยาวประมาณ 150–250 ตัวอักษร`},{q:`HSKK ระดับกลางยากกว่า HSK 4 ไหม?`,a:`ใช้คำศัพท์น้อยกว่าพาร์ตการอ่านของ HSK 4 แต่คุณต้องพูดออกมาเองด้วยความเร็วของการพูดจริง ผู้สอบ HSK 4 ส่วนใหญ่พบว่าส่วนที่ยากคือการตอบให้ได้สองนาที ไม่ใช่คำศัพท์`},{q:`ควรเรียนคำศัพท์ชุดไหน?`,a:`รายการคำศัพท์ HSK 1–4 ทุกบรรทัดในชุดเหล่านี้ไม่เกินรายการนั้น`,link:{text:`คำศัพท์ HSK 4`,href:`/vocabulary/hsk-4`}}],advanced:[{q:`HSKK ระดับสูงมีกี่ข้อ?`,a:`หกข้อ: เรื่องให้เล่าซ้ำ 3 เรื่อง (เรื่องละสองนาที) บทความให้อ่านออกเสียง 1 บท (สองนาที) และคำถามแสดงความคิดเห็น 2 ข้อ (ข้อละสองนาทีครึ่ง)`},{q:`ต้องจำเรื่องให้ได้ทุกคำไหม?`,a:`ไม่ต้อง การเล่าซ้ำให้คะแนนจากการที่เรื่องราวกลับมาครบ ทั้งตัวละคร เหตุการณ์ และตอนจบ ด้วยภาษาจีนที่ดีในแบบของคุณเอง ไม่มีใครคาดหวังให้พูดตามทุกคำ และไม่จำเป็นต้องทำเช่นนั้น`},{q:`การอ่านออกเสียงให้คะแนนอย่างไร?`,a:`ดูจากความถูกต้อง คืออ่านอักษรและวรรณยุกต์ถูก และจังหวะที่สม่ำเสมอเป็นธรรมชาติ หยุดในตำแหน่งที่เหมาะสม`},{q:`ควรเรียนคำศัพท์ชุดไหน?`,a:`รายการคำศัพท์ HSK 1–6 ทุกบรรทัดในชุดเหล่านี้ไม่เกินรายการนั้น`,link:{text:`คำศัพท์ HSK 6`,href:`/vocabulary/hsk-6`}}]}},TN=e=>String(e/60).replace(`.`,`,`);SN(`vi`,{crumb:`Bài thi nói HSKK`,band:{beginner:`HSKK Sơ cấp`,intermediate:`HSKK Trung cấp`,advanced:`HSKK Cao cấp`},pairs:{beginner:`HSK 1–2`,intermediate:`HSK 3–4`,advanced:`HSK 5–6`},words:{beginner:`Từ vựng HSK 1–2`,intermediate:`Từ vựng HSK 1–4`,advanced:`Từ vựng HSK 1–6`},ui:{bandsNav:`Các cấp HSKK`,setsLabel:`Đề luyện tập`,setN:e=>`Đề ${e}`,randomSet:`Đề ngẫu nhiên`,partN:e=>`Phần ${e}`,questionOf:(e,t)=>`Câu ${e}/${t}`,prev:`Câu trước`,next:`Câu sau`,play:`Phát file nghe`,pause:`Tạm dừng`,replay:`Nghe lại`,examOnce:`Trong phòng thi, mỗi đoạn ghi âm chỉ được phát một lần. Ở đây bạn có thể nghe lại.`,showScript:`Xem nội dung đoạn nghe`,hideScript:`Ẩn nội dung`,showModel:`Xem bài mẫu`,hideModel:`Ẩn bài mẫu`,modelAnswer:`Bài mẫu`,passageHeard:`Nội dung đoạn ghi âm`,timeAllowed:e
12=>e>=60?`${TN(e)} phút để trả lời`:`Khoảng ${e} giây để trả lời`,minutes:e=>`${TN(e)} phút`,yourAnswer:`Câu trả lời của bạn`,signInTitle:`Cần có tài khoản để ghi âm và chấm điểm`,signInBody:`Ai cũng có thể đọc và nghe toàn bộ câu hỏi. Để ghi âm câu trả lời và được chấm điểm, hãy đăng nhập — bạn sẽ quay lại đúng câu hỏi này.`,signInCta:`Đăng nhập để trả lời`,signUpCta:`Tạo tài khoản miễn phí`,record:`Ghi âm`,stop:`Dừng`,recording:e=>`Đang ghi âm… ${e} giây`,rerecord:`Ghi âm lại`,micDenied:`Quyền truy cập micro đã bị chặn. Hãy cho phép trong phần cài đặt trang web của trình duyệt rồi thử lại.`,micUnsupported:`Trình duyệt này không ghi âm được. Hãy thử Chrome, Edge hoặc Safari.`,submit:`Chấm điểm câu trả lời`,scoring:`Đang nghe và chấm điểm…`,quotaLeft:e=>`Hôm nay còn ${e} lượt chấm miễn phí`,quotaUsed:`Đã dùng hết lượt chấm miễn phí hôm nay`,unlimited:`Không giới hạn với gói của bạn`,dailyTitle:`Đã dùng hết lượt chấm miễn phí hôm nay`,dailyBody:(e,t)=>`Tài khoản miễn phí được chấm một câu trả lời mỗi ngày, làm mới lúc 0 giờ UTC. Gói Tháng (${e}) hoặc Trọn đời (${t}, trả một lần) chấm mọi câu trả lời, ở mọi cấp HSKK, không giới hạn mỗi ngày.`,score:`Điểm`,accuracy:`Nhắc lại đúng`,fluency:`Độ trôi chảy`,pace:`Tốc độ`,paceUnit:e=>`${e} chữ/giây`,content:`Nhiệm vụ`,language:`Ngôn ngữ`,tones:`Thanh điệu`,heard:`Những gì chúng tôi nghe được`,missedNote:`Các chữ màu xám là những chữ không xuất hiện trong câu trả lời của bạn.`,noSpeech:`Không nghe thấy tiếng Trung trong đoạn ghi âm này. Hãy kiểm tra micro rồi thử lại — lần này không bị tính.`,fixes:`Cần sửa gì`,audioNote:`Đoạn ghi âm của bạn được chuyển thành văn bản rồi xóa ngay — không bao giờ được lưu lại. Thanh điệu được đánh giá qua văn bản, nên hãy xem con số đó như một gợi ý.`,tryAgain:`Làm lại câu này`,nextQuestion:`Câu tiếp theo`,partName:{repeat:`Nghe và nhắc lại`,listen_answer:`Nghe và trả lời`,answer:`Trả lời câu hỏi`,picture:`Miêu tả tranh`,retell:`Nghe và kể lại`,read_aloud:`Đọc thành tiếng`},partInstruction:{repeat:`Bạn sẽ nghe một câu. Hãy nhắc lại đúng như những gì bạn nghe được.`,listen_answer:`Bạn sẽ nghe một câu hỏi. Hãy trả lời ngắn gọn, và nói thành câu hoàn chỉnh nếu có thể.`,answer:`Trả lời câu hỏi in trên đề. Hãy nói cho hết thời gian được cho.`,picture:`Nói về bức tranh: ai, ở đâu, đang làm gì — và thêm điều gì đó ngoài bức tranh.`,retell:`Bạn sẽ nghe một đoạn văn ngắn một lần. Hãy kể lại bằng lời của mình.`,read_aloud:`Đọc to đoạn văn, rõ ràng và với tốc độ tự nhiên.`},factsTime:`Thời gian thi`,factsPass:`Điểm đạt`,factsQuestions:`Số câu hỏi`,factsWords:`Từ vựng`},indexTitle:`Luyện thi HSKK online: nghe, nói và được chấm điểm`,indexLede:`Mười lăm đề luyện thi HSKK đầy đủ — năm đề cho mỗi cấp — có file nghe, câu hỏi in trên đề và bài mẫu. Bạn có thể nghe bất kỳ đề nào mà không cần tài khoản; đăng nhập để ghi âm câu trả lời và được chấm điểm từng câu.`,indexMetaTitle:`Luyện thi HSKK online — 15 đề thi thử có file nghe, chấm AI`,indexMetaDescription:`Luyện thi HSKK miễn phí cho Sơ cấp, Trung cấp, Cao cấp: 5 đề thi thử mỗi cấp có file nghe, bài mẫu và AI chấm điểm phần nói. Kèm cấu trúc đề và mẹo.`,indexCardCta:`Bắt đầu luyện tập`,indexCardMeta:(e,t)=>`5 đề · mỗi đề ${e} câu · khoảng ${t} phút`,howH2:`Cách luyện tập`,how:[{title:`Chọn cấp độ và đề`,body:`Mỗi đề là một bài thi HSKK hoàn chỉnh: cùng các phần, cùng thứ tự, cùng số câu hỏi như đề thật.`},{title:`Nghe, rồi trả lời thành tiếng`,body:`Phát file nghe hoặc đọc câu hỏi, rồi ghi âm câu trả lời ngay trên trình duyệt. Không cần cài ứng dụng, không cần tải file lên.`},{title:`Biết giám khảo sẽ nghe thấy gì`,body:`Điểm trên thang 100, những gì đã được ghi nhận từ câu bạn nói, và một hai điểm cần sửa tiếp theo.`}],onThisPage:`Trong trang này`,indexSections:[{id:`what`,h2:`HSKK là gì?`,paras:[[`HSKK (汉语水平口语考试) là bài thi nói trong hệ thống HSK. Đây là kỳ thi tách biệt với HSK viết, có đăng ký riêng và chứng chỉ riêng, gồm ba cấp: Sơ cấp (初级), Trung cấp (中级) và Cao cấp (高级). Mọi điều bạn nói đều được ghi âm và chấm sau; không có ai phỏng vấn trực tiếp bạn.`],[`Mỗi cấp chấm trên thang 100 điểm, đạt từ 60 điểm. Các cấp tương ứng với bài thi viết: Sơ cấp với HSK 1–2, Trung cấp với HSK 3–4, Cao cấp với HSK 5–6. Các trường đại học và chương trình học bổng ở Trung Quốc thường yêu 
12cầu kết quả HSKK kèm theo HSK, ở cấp độ tương ứng.`],[`Theo HSK 3.0, mỗi cấp từ 3 đến 6 có bài thi nói riêng, đăng ký cùng bài thi viết và thi riêng. Cho đến khi định dạng đó được công bố đầy đủ, ba cấp HSKK trong trang này vẫn là bài thi nói mà thí sinh đang thực sự dự thi — xem `,{text:`trang tình trạng HSK 3.0`,href:`/hsk-3-0-status`},` để biết những gì đã thay đổi.`]]},{id:`scoring`,h2:`HSKK được chấm điểm thế nào — và chúng tôi chấm bài luyện của bạn ra sao`,paras:[[`Trong kỳ thi thật, giám khảo được đào tạo sẽ nghe bản ghi âm của bạn và đánh giá xem bạn có làm đúng yêu cầu của từng câu không, tiếng Trung của bạn chính xác và phong phú đến đâu, nói có trôi chảy và rõ ràng không. CTI chỉ công bố tổng điểm 100 và điểm đạt 60, không công bố trọng số từng phần, nên không trang luyện thi nào có thể nói chính xác một câu trả lời đáng bao nhiêu điểm.`],[`Ở đây, mỗi câu trả lời được chấm riêng trên thang 100. Phần nhắc lại câu và đọc thành tiếng được đo lường chứ không phải cảm nhận: chúng tôi chuyển bản ghi âm thành văn bản và đếm xem bao nhiêu phần nội dung được nói lại đúng thứ tự, và trôi chảy đến đâu. Các phần còn lại — trả lời câu hỏi, miêu tả tranh, kể lại đoạn văn — do một giám khảo AI chấm, được cho biết cấp độ, nhiệm vụ và thời gian bạn có; AI chấm phần nhiệm vụ và ngôn ngữ, còn độ trôi chảy được đo từ các khoảng ngừng trong bản ghi âm.`],[`Bản ghi âm của bạn được chuyển thành văn bản rồi xóa đi. Nó không bao giờ được lưu lại.`]]},{id:`prepare`,h2:`Cách luyện thi HSKK`,paras:[[`Phần lớn thí sinh mất điểm ở cùng ba chỗ: ngừng nói từ lâu trước khi hết giờ, đứng hình khi chỉ nghe được nửa câu cần nhắc lại, và trả lời câu hỏi bằng một loạt từ rời rạc thay vì câu hoàn chỉnh. Cả ba đều cải thiện được nhờ luyện nói thành tiếng có bấm giờ — chứ không phải đọc thêm.`]],list:[`Nhắc lại câu theo từng cụm: nắm nghĩa trước, rồi mới đến từ. Nếu quên một từ, hãy nói phần còn lại — câu thiếu vẫn được điểm.`,`Nói cho hết thời gian ở các câu trả lời dài. Lên ý trước khi nói: một câu trả lời mở đầu, một lý do hoặc ví dụ, một câu kết.`,`Dùng những từ bạn chắc chắn. Ở mọi cấp, giám khảo đánh giá cao tiếng Trung rõ ràng, chính xác hơn là tiếng Trung tham vọng nhưng vấp váp.`,`Mỗi ngày tự ghi âm và nghe lại một lần. Những lỗ hổng bạn nghe thấy cũng chính là những gì giám khảo nghe thấy.`]}],compareH2:`So sánh ba cấp HSKK`,compareCols:{band:`Cấp`,pairs:`Tương ứng`,parts:`Các phần`,time:`Thời gian`,pass:`Điểm đạt`},bandTitle:{beginner:`Đề luyện thi HSKK Sơ cấp (初级) có file nghe`,intermediate:`Đề luyện thi HSKK Trung cấp (中级) có file nghe`,advanced:`Đề luyện thi HSKK Cao cấp (高级) có file nghe`},bandLede:{beginner:`Năm đề HSKK Sơ cấp hoàn chỉnh: mỗi đề gồm 15 câu nhắc lại, 10 câu nghe và trả lời và 2 câu hỏi in trên đề, ở mức từ vựng HSK 1–2. Nghe thoải mái bất kỳ đề nào; đăng nhập để ghi âm và được chấm điểm từng câu.`,intermediate:`Năm đề HSKK Trung cấp hoàn chỉnh: mỗi đề gồm 10 câu nhắc lại, 2 bức tranh cần miêu tả và 2 câu hỏi cần trả lời, ở mức từ vựng HSK 3–4. Nghe thoải mái bất kỳ đề nào; đăng nhập để ghi âm và được chấm điểm từng câu.`,advanced:`Năm đề HSKK Cao cấp hoàn chỉnh: mỗi đề gồm 3 đoạn văn cần kể lại, 1 đoạn văn đọc thành tiếng và 2 câu hỏi thảo luận, ở mức từ vựng HSK 5–6. Nghe thoải mái bất kỳ đề nào; đăng nhập để ghi âm và được chấm điểm từng câu.`},bandMetaTitle:{beginner:`Đề thi HSKK Sơ cấp (初级) có file nghe — 5 đề luyện thi`,intermediate:`Đề thi HSKK Trung cấp (中级) có file nghe — 5 đề luyện thi`,advanced:`Đề thi HSKK Cao cấp (高级) có file nghe — 5 đề luyện thi`},bandMetaDescription:{beginner:`Đề thi thử HSKK Sơ cấp (初级) online: 5 đề đầy đủ có file nghe — nghe và nhắc lại, nghe và trả lời, trả lời câu hỏi — kèm bài mẫu và AI chấm điểm.`,intermediate:`Đề thi thử HSKK Trung cấp (中级) online: 5 đề đầy đủ có file nghe, tranh cần miêu tả và câu hỏi, kèm bài mẫu và AI chấm điểm câu trả lời.`,advanced:`Đề thi thử HSKK Cao cấp (高级) online: 5 đề đầy đủ — nghe và kể lại, đọc thành tiếng, câu hỏi thảo luận — có file nghe, bài mẫu và AI chấm điểm.`},formatH2:e=>`Cấu trúc đề ${e}`,formatLede:{beginner:`Đề Sơ cấp có 27 câu chia thành ba phần, thời gian khoảng 17 phút, gồm cả 7 phút chuẩn bị cho phần 3. Hai phần đầu nghe xong là trả lời ngay; phần 3 được in trên đề — có kèm pinyin — và bạn có một phút rưỡi cho mỗi câu.`,intermediate:`Đề Trung cấp có 14 câu chia thành ba phần, thời gian khoảng 23 phút, gồm cả 10 phút chuẩn bị cho phần 2 và 3. Phần 1 nghe rồi nhắc lại; tranh và câu hỏi được in trên đề, và bạn có hai phút cho mỗi câu.`,advanced:`Đề Cao cấp có 6 câu chia thành ba phần, thời gian khoảng 25 phút, gồm cả 10 phút chuẩn bị cho phần 2 và 3. Mỗi đoạn văn ở phần 1 chỉ nghe một lần rồi kể lại; đoạn văn đọc thành tiếng và hai câu hỏi được in trên đề.`},formatCols:{part:`Phần`,questions:`Số câu`,answer:`Thời gian trả lời`,task:`Bạn cần làm gì`},partTask:{repeat:`Nghe một câu, nói lại`,listen_answer:`Nghe câu hỏi, trả lời ngắn`,answer:`Trả lời chi tiết câu hỏi in trên đề`,picture:`Nói về một bức ảnh`,retell:`Nghe đoạn văn một lần, kể lại`,read_aloud:`Đọc to đoạn văn in trên đề`},tipsH2:e=>`Cách làm từng phần của ${e}`,tips:{repeat:[[`Nghe để hiểu nghĩa, đừng chỉ nghe âm: câu nào đã hiểu thì sẽ dựng lại được. Hãy bắt đầu nói ngay khi câu kết thúc — càng chờ lâu, càng quên nhiều. Nếu lỡ mất một từ, cứ nói tiếp; câu thiếu một chỗ vẫn được phần lớn số điểm, còn im lặng thì không được điểm nào.`]],listen_answer:[[`Trả lời đúng điều được hỏi, thành một câu: 你几点起床? → 我七点起床。 Ở cấp này, một câu đúng đã là câu trả lời đầy đủ. Nếu không nghe rõ câu hỏi, hãy trả lời phần bạn nghe được thay vì im lặng.`]],answer:[[`Dùng thời gian chuẩn bị để ghi ra ba ý, đừng viết cả bài. Mở đầu bằng câu trả lời trực tiếp, thêm một lý do và một ví dụ, rồi kết lại. Hãy nói cho đến khi hết giờ: câu trả lời dừng ở giây thứ hai mươi không thể được tính là câu trả lời có phát triển ý, dù đúng đến đâu.`]],picture:[[`Trước hết hãy nói những gì bạn thấy — ai, ở đâu, đang làm gì — rồi đi xa hơn bức tranh: vì sao họ có thể ở đó, họ cảm thấy thế nào, cảnh đó có gợi cho bạn điều gì không. Chính nửa sau này là thứ phân b
12iệt điểm đạt với điểm cao.`]],retell:[[`Đừng cố học thuộc từng chữ. Hãy nắm lấy khung câu chuyện: ai, chuyện gì đã xảy ra, điều gì thay đổi, kết thúc ra sao. Kể lại theo đúng thứ tá»± đó bằng câu cá»§a chính bạn; giám khảo muốn nghe lại câu chuyện, chứ không phải một bản ghi âm cá»§a nó.`]],read_aloud:[[`Đọc với tốc độ đều, tá»± nhiên và ngắt nghỉ ở dấu câu. Độ chính xác quan trọng hÆ¡n tốc độ: đọc sai một chữ hay sai một thanh điệu bị trừ nhiều hÆ¡n là đọc hÆ¡i chậm.`]]},expectsH2:e=>`${e} yêu cầu tiếng Trung đến mức nào`,expects:{beginner:[[`Đề cương HSK 2026 mô tả kỹ năng nói ở HSK 1–2 là hỏi và trả lời những câu đơn giản: tên, tuổi và gia đình, thời gian và địa điểm, bạn thích ăn gì, đi đến đâu bằng cách nào, một món đồ giá bao nhiêu, bạn cảm thấy thế nào. Đó chính là những gì SÆ¡ cấp kiểm tra — câu ngắn, đúng, về cuộc sống hằng ngày, chứ không phải câu dài.`],[`Mọi câu, câu hỏi và bài mẫu trong các đề này đều nằm trong danh sách từ vá»±ng HSK 1–2. Hãy học thành tiếng `,{text:`từ vá»±ng HSK 1`,href:`/vocabulary/hsk-1`},` và `,{text:`từ vá»±ng HSK 2`,href:`/vocabulary/hsk-2`},`, và bạn đã có đủ vốn từ mà đề thi sá»­ dụng.`]],intermediate:[[`Ở HSK 3–4, đề cương chuyển từ trả lời sang kể: giới thiệu một người hay một nÆ¡i, miêu tả một trải nghiệm, giải thích một lá»±a chọn, nêu ý kiến đơn giản về cuộc sống hằng ngày, công việc, sức khỏe hay môi trường — “một đoạn văn ngắn” chứ không chỉ một câu. Trung cấp yêu cầu bạn duy trì điều đó trong hai phút.`],[`Các đề này nằm trong danh sách từ vá»±ng HSK 1–4. `,{text:`Danh sách từ vá»±ng HSK 4`,href:`/vocabulary/hsk-4`},` là phần nên luyện nói thành tiếng nhiều nhất.`]],advanced:[[`Ở HSK 5–6, đề cương yêu cầu bạn nói “trôi chảy” về xã hội, giáo dục, công việc, khoa học, văn hóa và lịch sá»­: giải thích, so sánh và bảo vệ một quan điểm, chứ không chỉ miêu tả. Cao cấp kiểm tra điều đó — cùng với việc kể lại một đoạn văn chỉ nghe một lần, vốn đòi hỏi kỹ năng nghe không kém kỹ năng nói.`],[`Các đề này nằm trong danh sách từ vá»±ng HSK 1–6. Hãy kết hợp với `,{text:`đề thi thá»­ HSK 5`,href:`/mock-test/hsk-5`},` và `,{text:`đề thi thá»­ HSK 6`,href:`/mock-test/hsk-6`},` — phần nghe rèn đúng đôi tai mà phần kể lại cần đến.`]]},scoringH2:`Cách chấm điểm bài luyện cá»§a bạn`,scoring:[[`Mỗi câu trả lời được chấm trên thang 100. Phần nhắc lại và đọc thành tiếng được đo lường: bao nhiêu phần nội dung được nói lại, đúng thứ tá»±, và trôi chảy đến đâu. Các phần còn lại do một giám khảo AI chấm, được cho biết cấp độ, nhiệm vụ và thời gian bạn có; AI đánh giá bạn có làm đúng yêu cầu không và tiếng Trung cá»§a bạn tốt đến đâu, còn độ trôi chảy được đo từ các khoảng ngừng trong bản ghi âm.`],[`Ai cÅ©ng có thể nghe mọi câu hỏi và đọc mọi bài mẫu. Ghi âm và chấm điểm cần một tài khoản miễn phí, được chấm một câu trả lời mỗi ngày; `,{text:`gói Tháng và Trọn đời`,href:`/pricing`},` chấm mọi câu trả lời không giới hạn mỗi ngày. Bản ghi âm cá»§a bạn không bao giờ được lưu lại.`]],faqH2:`Câu hỏi thường gặp về HSKK`,indexFaq:[{q:`Tôi nên thi HSKK cấp nào?`,a:`Hãy chọn theo trình độ HSK viết cá»§a bạn: SÆ¡ cấp nếu bạn ở mức HSK 1–2, Trung cấp cho HSK 3–4, Cao cấp cho HSK 5–6. Nếu trường đại học hoặc học bổng yêu cầu một cấp cụ thể, hãy thi cấp đó. Trước tiên hãy thá»­ một đề cá»§a cấp đó ở đây — nếu bạn nhắc lại được phần lớn các câu và nói được hết thời gian cho phép, bạn đã sẵn sàng.`},{q:`Thi HSK có bắt buộc phải thi HSKK không?`,a:`Không. HSK viết và HSKK là hai kỳ thi riêng, có chứng chỉ riêng. Tuy vậy, nhiều trường đại học và học bổng Trung Quốc yêu cầu cả hai, nên hãy kiểm tra hồ sÆ¡ cá»§a bạn cần gì.`},{q:`Điểm đạt HSKK là bao nhiêu?`,a:`Mọi cấp đều chấm trên thang 100, đá
12º¡t từ 60 điểm. CTI không công bố mỗi phần chiếm bao nhiêu điểm.`},{q:`Bài thi HSKK kéo dài bao lâu?`,a:`Khoảng 17 phút với SÆ¡ cấp (27 câu), 23 phút với Trung cấp (14 câu) và 25 phút với Cao cấp (6 câu), đã gồm thời gian chuẩn bị.`},{q:`HSKK có thuộc HSK 3.0 không?`,a:`Theo HSK 3.0, mỗi cấp từ 3 đến 6 có một bài thi nói, đăng ký cùng bài thi viết và thi riêng. Ba cấp HSKK vẫn là định dạng đang được tổ chức thi; các kỹ năng — nhắc lại, trả lời, miêu tả, kể lại — vẫn dùng được.`,link:{text:`Tình trạng HSK 3.0`,href:`/hsk-3-0-status`}},{q:`Luyện thi HSKK ở đây có miễn phí không?`,a:`Nghe mọi file ghi âm, đọc mọi câu hỏi và bài mẫu đều miễn phí, không cần tài khoản. Ghi âm và chấm điểm câu trả lời cần một tài khoản miễn phí, được chấm một câu mỗi ngày; gói Tháng và Trọn đời chấm không giới hạn mỗi ngày.`,link:{text:`Xem các gói`,href:`/pricing`}},{q:`Đây có phải đề thi HSKK thật không?`,a:`Không — đây là các câu hỏi tá»± biên soạn theo đúng định dạng đề HSKK và nằm trong danh sách từ vá»±ng HSK 3.0 cá»§a từng cấp. Đề thi các năm trước thuộc bản quyền cá»§a CTI; các đề ở đây là đề luyện tập có cùng cấu trúc.`},{q:`Các bạn có lưu bản ghi âm cá»§a tôi không?`,a:`Không. Bản ghi âm được gá»­i một lần, chuyển thành văn bản, chấm điểm rồi xóa đi. Chỉ văn bản và điểm số được lưu vào tài khoản cá»§a bạn.`}],bandFaq:{beginner:[{q:`HSKK SÆ¡ cấp có bao nhiêu câu hỏi?`,a:`27 câu: 15 câu nhắc lại, 10 câu nghe và trả lời, và 2 câu hỏi in trên đề, mỗi câu trả lời trong một phút rưỡi.`},{q:`Đề HSKK SÆ¡ cấp có in pinyin không?`,a:`Có — hai câu hỏi in trên đề ở phần 3 có kèm pinyin. Các đề luyện tập ở đây cÅ©ng hiển thị như vậy.`},{q:`Cần bao nhiêu từ vá»±ng để thi HSKK SÆ¡ cấp?`,a:`Danh sách từ vá»±ng HSK 1–2. Mọi câu trong các đề này đều nằm trong đó, nên từ nào bạn chưa biết ở đây là từ đáng học.`,link:{text:`Từ vá»±ng HSK 2`,href:`/vocabulary/hsk-2`}},{q:`Nếu tôi không nghe được trọn câu thì sao?`,a:`Hãy nói phần bạn nghe được. Câu nhắc lại được chấm theo lượng nội dung bạn nói lại, nên ná»­a câu vẫn có giá trị hÆ¡n nhiều so với im lặng.`}],intermediate:[{q:`HSKK Trung cấp có bao nhiêu câu hỏi?`,a:`14 câu: 10 câu nhắc lại, 2 bức tranh cần miêu tả và 2 câu hỏi in trên đề, mỗi tranh và mỗi câu hỏi có hai phút.`},{q:`Miêu tả tranh nên dài bao nhiêu?`,a:`Hãy dùng hết hai phút. Một câu trả lời tốt miêu tả những gì có trong tranh, rồi đi xa hÆ¡n bức tranh — các bài mẫu ở đây dài khoảng 150–250 chữ.`},{q:`HSKK Trung cấp có khó hÆ¡n HSK 4 không?`,a:`Đề dùng ít từ hÆ¡n phần đọc HSK 4, nhưng bạn phải tá»± nói ra chúng, ở tốc độ nói. Phần lớn thí sinh HSK 4 thấy cái khó nằm ở các câu trả lời hai phút, chứ không phải ở từ vá»±ng.`},{q:`Tôi nên học từ vá»±ng nào?`,a:`Danh sách từ vá»±ng HSK 1–4; mọi câu trong các đề này đều nằm trong đó.`,link:{text:`Từ vá»±ng HSK 4`,href:`/vocabulary/hsk-4`}}],advanced:[{q:`HSKK Cao cấp có bao nhiêu câu hỏi?`,a:`Sáu câu: 3 đoạn văn cần kể lại (mỗi đoạn hai phút), 1 đoạn văn đọc thành tiếng (hai phút) và 2 câu hỏi thảo luận (mỗi câu hai phút rưỡi).`},{q:`Tôi có cần nhớ nguyên văn đoạn văn không?`,a:`Không. Phần kể lại được chấm theo việc bạn có kể lại được câu chuyện không — nhân vật, chuyện gì đã xảy ra và kết thúc ra sao — bằng tiếng Trung tốt cá»§a chính bạn. Không ai yêu cầu, và cÅ©ng không cần, nhắc lại từng chữ.`},{q:`Phần đọc thành tiếng được chấm thế nào?`,a:`Theo độ chính xác — đúng chữ, đúng thanh điệu — v
12à tốc độ đều, tự nhiên, ngắt nghỉ đúng chỗ.`},{q:`Tôi nên học từ vựng nào?`,a:`Danh sách từ vựng HSK 1–6; mọi câu trong các đề này đều nằm trong đó.`,link:{text:`Từ vựng HSK 6`,href:`/vocabulary/hsk-6`}}]}}),SN(`th`,wN);var EN=M(`/hskk/`)({loader:()=>({locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,n=CN(t),r={"@context":`https://schema.org`,"@type":`WebApplication`,name:n.indexTitle,url:Ii(`/hskk`,t),applicationCategory:`EducationalApplication`,operatingSystem:`All`,inLanguage:t,description:n.indexMetaDescription,offers:{"@type":`Offer`,price:`0`,priceCurrency:`USD`}};return{meta:[{title:n.indexMetaTitle},{name:`description`,content:n.indexMetaDescription}],links:Bi(`/hskk`,t),scripts:[r,F(t,[{name:n.crumb,path:`/hskk`}]),zi(n.indexFaq)].map(e=>({type:`application/ld+json`,children:JSON.stringify(e)}))}},component:N(()=>O(()=>import(`./hskk-BHbijrch.js`),__vite__mapDeps([119,1,4,5,17,8,9,15,40,41,51,16,2,3,6,7,10,11,12,13,14,18,19,20,21,22,23,24,25,26,27,28,29,30,52,120])),`component`)}),DN=M(`/flashcards/`)({loader:()=>({locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,n=Ii(`/flashcards`,t),i=_l({},{locale:t}),a=fl({},{locale:t});return{meta:[{title:i},{name:`description`,content:a},...P({title:i,description:a,url:n,image:Li,imageAlt:i,locale:t})],links:[{rel:`canonical`,href:n},...r.map(e=>({rel:`alternate`,hrefLang:e,href:Ii(`/flashcards`,e)})),{rel:`alternate`,hrefLang:`x-default`,href:Ii(`/flashcards`,`en`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify(F(t,[{name:nl({},{locale:t}),path:`/flashcards`}]))}]}},component:N(()=>O(()=>import(`./flashcards-CmxdDj7k.js`),__vite__mapDeps([121,1,17,8,9,5,2,3,4,6,7,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,51,52])),`component`)}),ON=h().handler(p(`139369ba08645c08201ff69bd24b596cdc0f7784b8b3ffd8c6a14f47bbeac9cf`)),kN=h().handler(p(`b19d1425e0192068330144e802eeba64d1a59e4653703cc76476349d6a195d71`)),AN=M(`/blog/`)({loader:async()=>{let e=s();return{locale:e,posts:await ON({data:{locale:e}})}},head:({loaderData:e})=>{let t=e?.locale,n=e=>o(`${k.app_url}/blog`,{locale:e}).href;return{meta:[{title:`${fc({},{locale:t})} | ${k.app_name}`},{name:`description`,content:sc({},{locale:t})}],links:[{rel:`canonical`,href:n(t??`en`)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:n(e)})),{rel:`alternate`,hrefLang:`x-default`,href:n(`en`)}]}},component:N(()=>O(()=>import(`./blog-Dy04WNjl.js`),__vite__mapDeps([122,1,17,8,9,123,15,21,2,3,4,5,6,7,10,11,12,13,14,16,18,19,20,22,23,24,25,26,27,28,29,30])),`component`)}),jN=()=>O(()=>import(`./_level-4Ulujqz-.js`),__vite__mapDeps([124,1,4,5,10,6,7,8,9,11,12,13,14,15,16,69,70,125,126,17,18,103,127,92,2,3,19,20,21,22,23,24,25,26,27,28,29,30,128,129,51,52,98,130,99]));function MN(e){return mM(e.replace(/^hsk-/,``))}var NN=M(`/vocabulary/$level`)({loader:async({params:e})=>{let t=MN(e.level);if(!t)throw Ae();let n=await Uj({data:{slug:pM(t.level)}});if(!n)throw Ae();return{levelNumber:t.level,rows:n,locale:s()}},head:({loaderData:e})=>{if(!e)return{};let t=e.locale,n=t.startsWith(`zh`),i=uM.find(t=>t.level===e.levelNumber),a=n?i.labelZh:i.label,o=vM(i),s=`/vocabulary/hsk-${i.slug}`,c=Ii(s,t),l=nx({label:a,count:Y(o.added)},{locale:t}),u=wM(i.slug,t),d=SM(i,t).plain;return{meta:[{title:l},{name:`description`,content:u},...P({title:l,description:u,url:c,image:LM(i.slug),imageAlt:d,locale:t})],links:[{rel:`canonical`,href:c},...r.map(e=>({rel:`alternate`,hrefLang:e,href:Ii(s,e)})),{rel:`alternate`,hrefLang:`x-default`,href:Ii(s,`en`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify([F(t,[{name:PM(t),path:`/vocabulary`},{name:i.label,path:s}]),{"@context":`https://schema.org`,"@type":`CollectionPage`,name:d,description:u,url:c,inLanguage:t===`zh`?`zh-CN`:t,isPartOf:{"@type":`CollectionPage`,name:fx({},{locale:t}),url:Ii(`/vocabulary`,t)},about:{"@type":`Thing`,name:Xk({label:a},{locale:t})},educationalAlignment:[{"@type":`AlignmentObject`,alignmentType:`educationalLevel`,educationalFramework:`HSK 3.0`,targetName:i.level>=7?`HSK Levels 7–9`:`HSK Level ${i.slug}`}]},zi(MM(i,t))])}]}},component:N(jN,`component`)});function PN(e,t,n){if(!e)return``;let r=e,i=n.slice(0,2).toLowerCase(),a=r[`${t}${i.charAt(0).toUpperCase()}${i.slice(1)}`];if(typeof a==`string`&&a)return a;let o=r[`${t}En`];if(typeof o!=`string`)return``;let s=i!==`en`&&/^Part (\d+)$/.exec(o);return s?KA({n:Number(s[1])},{locale:n}):o}function FN(e,t){let n=t.slice(0,2).toLowerCase();if(n===`zh`)return e.nameZh??e.nameEn??``;if(n!==`en`)switch(e.code){case`listening`:return _x({},{locale:t});case`reading`:return Sx({},{locale:t});case`writing`:return Dx({},{locale:t});case`translation`:return Mx({},{locale:t});case`speaking`:return Lx({},{locale:t})}return e.nameEn??``}function IN(e,t){let n=t.slice(0,2).toLowerCase();if(n===`zh`)return e.titleZh;if(n===`en`)return e.titleEn;let r=e.orderNo??Number(/Paper (\d+)$/.exec(e.titleEn)?.[1]??0),i=e.levelLabel??/^HSK (\d(?:[–-]\d)?)/.exec(e.titleEn)?.[1]??``;return!r||!i?e.titleEn:Hx({level:i.replace(`-`,`–`),n:r},{locale:t})}function LN(e,t){let n=t.slice(0,2).toLowerCase();return n===`zh`?e.summaryZh??``:n===`en`||!e.questionCount||!e.durationSec?e.summaryEn??``:ZA({level:(e.levelLabel??``).replace(`-`,`–`),questions:e.questionCount,minutes:Math.round(e.durationSec/60)},{locale:t})}var RN={listening:`l`,reading:`r`,writing:`w`,translation:`t`,speaking:`s`},zN=new Set([`listening`,`reading`]);function BN(e){let t=e=>{let t=Number(e);return Number.isFinite(t)&&t>=0?Math.floor(t):void 0};return{level:typeof e.level==`string`?e.level:void 0,mode:e.mode===`correct`?`correct`:void 0,l:t(e.l),r:t(e.r),w:t(e.w),t:t(e.t),s:t(e.s),via:e.via===`share`?`share`:void 0}}function VN(e){return(e.level?.startsWith(`hsk-`)?mM(e.level.slice(4)):void 0)??uM.find(e=>e.level===4)}function HN(e){let t={};for(let[n,r]of Object.entries(RN)){let i=e[r];i!==void 0&&(t[n]=i)}return t}function UN(e,t,n,r){let i=gN(e);return e.sections.map(e=>{let a=i.find(t=>t.code===e.code)?.questions??0,o=zN.has(e.code)&&a>0,s=t===`correct`&&o,c=s?a:e.maxScore,l=n[e.code],u=l===void 0?void 0:Math.min(l,c);return{code:e.code,name:FN(e,r),keyed:o,questions:a,byCount:s,inputMax:c,raw:u,score:u===void 0?void 0:s?Math.round(u/a*e.maxScore):u}})}var WN=(e,t)=>Math.ceil(e*t/100);function GN(e,t){let n=t.filter(e=>e.score!==void 0),r=t.filter(e=>e.score===void 0),i=n.reduce((e,t)=>
12e+(t.score??0),0),a=e.passScore;if(n.length===0)return{state:`empty`,total:0};if(r.length===1&&a!==null&&t.length>1){let e=r[0],t=a-i;return t<=0?{state:`already`,total:i,row:e}:t>100?{state:`out-of-reach`,total:i,row:e,short:t-100}:{state:`need`,total:i,row:e,need:t}}if(r.length>0)return{state:`partial`,total:i,missing:r};let o=[...t].sort((e,t)=>(e.score??0)-(t.score??0))[0];if(a===null)return{state:`bands`,total:i,weakest:o};if(i<a)return{state:`below`,total:i,gap:a-i,weakest:o};let s=i-a;return i<Math.ceil(e.totalScore*.7)?{state:`near`,total:i,margin:s,weakest:o}:{state:`clear`,total:i,margin:s,weakest:o}}function KN(e,t,n){let r={},i=n.some(e=>e.raw!==void 0);(i||e.level!==4)&&(r.level=`hsk-${e.slug}`),i&&t===`correct`&&(r.mode=`correct`);for(let e of n)e.raw!==void 0&&(r[RN[e.code]]=e.raw);return r}var qN=e=>e.length<2?e[0]??``:`${e.slice(0,-1).join(`, `)} and ${e[e.length-1]}`,JN=e=>e.toLowerCase(),YN=(e,t,n)=>`${e} ${e===1?t:n}`,XN={h1:`HSK Score Calculator`,lede:`Type your section scores and see your total, whether it passes, and what you still need. Works for HSK 1 to HSK 7–9.`,crumbTools:`Tools`,crumbSelf:`Score Calculator`,onThisPage:`On this page`,passH2:`HSK pass marks by level`,passLede
12:`HSK 1 to HSK 6 pass at 60% of the total. HSK 7–9 has no pass mark. Tap a level to load it into the calculator.`,passCols:{level:`Level`,sections:`Sections`,total:`Total`,pass:`Pass mark`},sectionList:{1:`Listening, reading`,2:`Listening, reading, writing`,3:`Listening, reading, writing`,4:`Listening, reading, writing`,5:`Listening, reading, writing`,6:`Listening, reading, writing`,"7-9":`Listening, reading, writing, translation, speaking`},noPassMark:`None — placed at 7, 8 or 9`,loadLevel:`Use in calculator`,inferredNote:`* HSK 2 got a writing section in HSK 3.0. CTI’s sample paper prints no scores, so 300 comes from the rule of 100 per section, and 180 is 60% of that.`,howH2:`How your HSK score is worked out`,how:[{title:`Every section is out of 100`,body:[`Your total is the sections added up. HSK 1 has listening and reading, so it is out of 200. HSK 2 to HSK 6 add writing and are out of 300. HSK 7–9 has five sections and is out of 500.`]},{title:`Listening and reading: count what you got right`,body:[`Every question in a section counts the same. At HSK 4, listening has 32 questions, so each is worth about 3 points, and 20 right is about 63. That is why the calculator also takes correct answers.`]},{title:`Writing is marked by examiners`,body:[`There is no answer key for writing, and CTI does not say what each task is worth. A writing score you give yourself is a guess, so be strict with it. At HSK 7–9, translation and speaking are marked the same way.`]},{title:`Only the total has to pass`,body:[`There is no minimum per section. At HSK 4, 70 in listening, 60 in reading and 50 in writing make 180, which passes. Your report still lists every section, so a weak one shows.`]}],howFoot:[`Results come out sitting by sitting, and the report shows each section and the total. There is no fixed wait, so check the notice for your own exam. For dates, see the `,{text:`HSK exam calendar`,href:`/hsk-exam-dates-2026`},`.`],answersH2:`How many questions do you need to get right?`,answersLede:`How many listening and reading questions each level has, and how many you need right for 60 or 70 in that section. 60 in every section is exactly the pass mark; 70 leaves room for a bad day.`,answersCols:{level:`Level`,questions:`Questions per section`,each:`Each worth`,for60:`Right for 60`,for70:`Right for 70`},answersNote:`Worked out at equal weight per question and rounded up. CTI does not publish its conversion, so treat these as estimates.`,goodH2:`What is a good HSK score?`,goodLede:`Any total at the pass mark gets you the certificate. How much more you need depends on who is asking.`,tiers:[{name:`A pass`,share:`60%`,scores:`180 / 300 · 120 / 200`,body:`Enough when all that matters is the level: a course that asks for HSK 3, or your own goal. But a few questions on a bad day separate it from a fail.`},{name:`A safe pass`,share:`70% or more`,scores:`210 / 300 · 140 / 200`,body:`A margin that should hold if you sat the paper again. Aim here when a university or employer asks for a level. This is our rule of thumb, not an official line.`},{name:`A strong score`,share:`Well above 70%`,scores:`Check the exact number`,body:`Some universities and scholarships set a minimum score as well as a level. It varies between schools and years, so ask the one you are applying to.`}],goodFoot:[`No score guarantees an offer. To see what each level means in practice, read `,{text:`HSK levels explained`,href:`/hsk-levels`},`.`],levelsH2:`Level by level`,levelsLede:`The pass mark, what the paper looks like, and the thing that most often decides the score.`,levels:[{id:`hsk-1`,slug:`1`,heading:`HSK 1`,facts:`Pass 120 / 200 · listening 20, reading 20 · about 40 min`,body:[`No writing, and every question has an answer key, so your score is just counting: 12 right out of 20 is 60 for that section. Try a timed `,{text:`HSK 1 mock test`,href:`/mock-test/hsk-1`},`.`]},{id:`hsk-2`,slug:`2`,heading:`HSK 2`,facts:`Pass 180 / 300* · listening 25, reading 25, writing 10`,inferred:!0,body:[`New in HSK 3.0: a writing section where you complete characters from their parts and write characters from pinyin. If your sitting still uses the old two-section paper, it is out of 200 and passes at 120. Try an `,{text:`HSK 2 mock test`,href:`/mock-test/hsk-2`},`.`]},{id:`hsk-3`,slug:`3`,heading:`HSK 3`,facts:`Pass 180 / 300 · listening 30, reading 30, writing 10 · about 83 min`,body:[`18 right out of 30 in listening or reading is 60. From HSK 3 you also register for a speaking test, which is sat separately and is not part of the 300. Try an `,{text:`HSK 3 mock test`,href:`/mock-test/hsk-3`},`.`]}
12,{id:`hsk-4`,slug:`4`,heading:`HSK 4`,facts:`Pass 180 / 300 · listening 32, reading 32, writing 6 · about 85 min`,body:[`Writing is five sentences built from a picture and a given word, then one 80-character passage. Many university programmes and scholarships ask for HSK 4, so aim well clear of 180. Try an `,{text:`HSK 4 mock test`,href:`/mock-test/hsk-4`},`.`]},{id:`hsk-5`,slug:`5`,heading:`HSK 5`,facts:`Pass 180 / 300 · listening 35, reading 35, writing 2 · about 110 min`,body:[`Writing is only two tasks: 100 characters on four pictures and a 200-character essay. With two tasks, one weak essay pulls the whole section down. Try an `,{text:`HSK 5 mock test`,href:`/mock-test/hsk-5`},`.`]},{id:`hsk-6`,slug:`6`,heading:`HSK 6`,facts:`Pass 180 / 300 · listening 40, reading 40, writing 2 · about 125 min`,body:[`Each listening or reading question is worth 2.5, so 24 right is 60. Writing is a 150-character practical piece and a 300-character argument. Speaking is sat separately and not counted in the 300. Try an `,{text:`HSK 6 mock test`,href:`/mock-test/hsk-6`},`.`]}],bandsH2:`HSK 7–9: no pass mark`,bands:[[`HSK 7–9 is one paper for three levels: listening, reading, writing, translation and speaking, 100 each, 500 in all. There are 98 questions and it takes about 210 minutes.`],[`Your total is not checked against a line. CTI places you at level 7, 8 or 9, or below 7, from an estimate of ability drawn from the whole paper. No table turning a total into a level has been published, so the calculator shows your total and stops there. To see how your sections hold up, sit an `,{text:`HSK 7–9 mock test`,href:`/mock-test/hsk-7-9`},`.`]],faqH2:`FAQ`,faq:e=>[{q:`What is the HSK passing score?`,a:`HSK 1 passes at 120 out of 200. HSK 2 to HSK 6 pass at 180 out of 300. That is 60% of the total in every case. HSK 7–9 has no pass mark: you are placed at level 7, 8 or 9 from the whole paper.`,link:{text:`Compare every HSK level`,href:`/hsk-levels`}},{q:`How many questions do I need to get right to pass HSK 4?`,a:`About 20 out of 32 in listening and 20 out of 32 in reading gives roughly 60 in each, if every question counts the same. But only the total has to reach 180, so a stronger section can make up for a weaker one.`,link:{text:`Check on an HSK 4 mock test`,href:`/mock-test/hsk-4`}},{q:`Can I fail one section and still pass?`,a:`Yes. HSK 1 to HSK 6 look at the total only, and the published rule sets no minimum per section. At HSK 4, a 50 in writing with 70 in listening and 60 in reading makes 180. The report still lists each section, so whoever reads it can see the weak one.`,link:{text:`Shore up a weak section with the word list`,href:`/vocabulary/hsk-${e}`}},{q:`Is HSK 1–2 out of 200?`,a:`HSK 1 is: listening and reading, 100 each, pass at 120. HSK 2 is out of 200 only on the older paper. In HSK 3.0 it gained a writing section, which makes it 300 with a pass at 180, a figure CTI has not printed yet. Check which version your registration shows.`},{q:`Does writing count? Does speaking?`,a:`Writing counts from HSK 2 up and is 100 of the total. HSK 1 has no writing. At HSK 3 to HSK 6, speaking is a separate test and is not in the 300. At HSK 7–9, speaking is one of the five sections and does count.`,link:{text:`Build the vocabulary your writing draws on`,href:`/vocabulary/hsk-${e}`}},{q:`Is this calculator official?`,a:`No. It uses the official totals and pass marks, and adds up what you type. Turning correct answers into a score assumes every question counts the same, which CTI does not confirm, so those totals are estimates. Your score report is the only official result.`},{q:`When do HSK results come out?`,a:`CTI announces the release for each sitting separately, so there is no fixed number of days. Check the notice for your own exam. The report shows your total and every section.`,link:{text:`See the HSK exam dates`,href:`/hsk-exam-dates-2026`}},{q:`How long is my HSK score valid?`,a:`The official documents our figures come from do not say, so we do not quote a period. In practice the university, scholarship or employer asking for it decides how recent it must be. Check with them before you register.`}],ui:{calculator:`Score calculator`,level:`Level`,scoreHint:`Score out of 100`,countHint:e=>`Correct answers, ${e} questions`,countResult:(e,t,n)=>`${e} of ${t} right ≈ ${n} / 100`,estimateHint:`No answer key — your best estimate`,needHint:(e,t,n
12)=>t?`Needs ${e}+ right to pass (≈ ${n})`:`Needs ${e}+ to pass`,practiceAsk:`Marked a practice paper yourself?`,practiceOn:`Counting correct answers from a practice paper.`,toCount:`Enter correct answers instead`,toScore:`Enter scores out of 100 instead`,estimateNote:`Correct answers are converted at equal weight per question. CTI does not publish its conversion, so the total is an estimate.`,total:`Total`,totalSoFar:`Total so far`,passMark:e=>`Pass mark ${e}`,bandsShort:`No pass mark at 7–9`,meterPass:e=>`Pass ${e}`,verdict:(e,t)=>{let n=e.passScore;switch(t.state){case`empty`:return{body:n===null?`${e.label} is out of ${e.totalScore}. Type your five section scores to see the total.`:`${e.label} is out of ${e.totalScore}, and ${n} is a pass. Type the scores from your report, or switch to correct answers if you marked a practice paper.`};case`partial`:return{body:`Add ${qN(t.missing.map(e=>JN(e.name)))} to see your total.`};case`need`:return{lead:`${t.need}+ needed`,body:`To reach ${n}, you need at least ${t.need} in ${JN(t.row.name)}${t.row.keyed?` — about ${WN(t.need,t.row.questions)} of ${t.row.questions} questions right`:``}.`};case`already`:return{lead:`Already a pass`,body:`Your other sections already make ${n}. Any ${JN(t.row.name)} score keeps the pass.`};case`out-of-reach`:return{lead:`Out of reach`,body:`Even 100 in ${JN(t.row.name)} leaves you ${t.short} short of ${n}. The other sections need to come up too.`};case`below`:{let e=t.weakest,r=100-(e.score??0),i=t.gap>r?`No single section can close that on its own.`:`${e.name} is your lowest at ${e.score}${e.keyed?`: about ${YN(WN(t.gap,e.questions),`more right answer`,`more right answers`)} there would do it.`:`: ${t.gap} more there would do it.`}`;return{lead:`${t.gap} short`,body:`You need ${YN(t.gap,`more point`,`more points`)} to reach ${n}. ${i}`}}case`near`:return{lead:`Pass`,body:t.margin===0?`Exactly ${n}: a pass with nothing to spare. One or two questions decide it on the day.`:`${t.margin} above ${n}. That is a pass, but a thin one: a few questions could flip it on the day.`};case`clear`:return{lead:`Safe pass`,body:`${t.margin} above ${n} and over 70% of the total. That margin should hold if you sat it again.`};case`bands`:return{lead:`No pass mark`,body:`HSK 7–9 places you at level 7, 8 or 9 from the whole paper, not from this total, so we don’t turn it into a level. Your lowest section is ${JN(t.weakest.name)} at ${t.weakest.score}.`}}},mockCta:e=>`Sit an ${e} mock test`,vocabCta:e=>`${e} vocabulary`,readingCta:e=>`Practise ${e} reading`,writingCta:`Practise writing`,speakingCta:`Practise speaking`,sharedTitle:`Shared result.`,sharedBody:e=>`Someone sent you their ${e} score. See how yours compares.`,sharedTry:`Enter my own scores`,shareLabels:{share:`Share`,copy:`Copy link`,copied:`Link copied`,copyHint:`The link opens this exact result.`,targets:{whatsapp:`WhatsApp`,x:`X (Twitter)`,facebook:`Facebook`,telegram:`Telegram`,reddit:`Reddit`,weibo:`Weibo`}},shareTitle:e=>`${e} score calculator`,shareText:(e,t)=>
12{let n=e.label,r=`${t.total}/${e.totalScore}`;switch(t.state){case`below`:return`My ${n} score check: ${r}, ${t.gap} short of a pass. How close are you?`;case`near`:case`clear`:return`My ${n} score check: ${r}, that's a pass. What's yours?`;case`bands`:return`My ${n} total: ${r}. What's yours?`;case`need`:return`${n}: I need ${t.need} in ${JN(t.row.name)} to pass. Work out yours:`;default:return`Work out your ${n} score and see if it passes:`}},shareCard:(e,t,n)=>{let r=e.label,i=`${t.total} / ${e.totalScore}`;return{title:t.state===`below`?`${r}: ${i} — ${t.gap} points short of a pass`:t.state===`near`||t.state===`clear`?`${r}: ${i} — a pass`:t.state===`need`?`${r}: ${t.need} needed in ${JN(t.row.name)} to pass`:`${r}: ${i}`,description:`${n.filter(e=>e.score!==void 0).map(e=>`${e.name} ${e.score}`).join(` · `)}. Check your own HSK score in seconds — free, no sign-up.`}},list:qN}},ZN=e=>e.join(`、`),QN={h1:`HSK 分数计算器`,lede:`填上各部分分数,马上看到总分、过没过线,以及还差多少。HSK 1 到 HSK 7–9 都能算。`,crumbTools:`工具`,crumbSelf:`分数计算器`,onThisPage:`本页内容`,passH2:`HSK 各级合格线`,passLede:`HSK 1 到 HSK 6 的合格线都是总分的 60%。HSK 7–9 没有合格线。点一个级别,计算器就切过去。`,passCols:{level:`级别`,sections:`考试部分`,total:`满分`,pass:`合格线`},sectionList:{1:`听力、阅读`,2:`听力、阅读、书写`,3:`听力、阅读、书写`,4:`听力、阅读、写作`,5:`听力、阅读、写作`,6:`听力、阅读、写作`,"7-9":`听力、阅读、写作、翻译、口语`},noPassMark:`无,按整卷评七、八、九级`,loadLevel:`用这一级算`,inferredNote:`* HSK 3.0 给二级加了书写。汉考国际的样题没印分数:300 是按「每部分 100 分」算的,180 是它的 60%。`,howH2:`HSK 分数是怎么算出来的`,how:[{title:`每个部分满分 100`,body:[`总分就是各部分加起来。HSK 1 只有听力和阅读,满分 200;HSK 2 到 HSK 6 多了写作,满分 300;HSK 7–9 有五个部分,满分 500。`]},{title:`听力、阅读:数你答对几题`,body:[`同一部分里每道题分值一样。HSK 4 听力 32 题,每题约 3 分,答对 20 题大约是 63 分。所以计算器也可以直接填答对题数。`]},{title:`写作由考官评分`,body:[`写作没有标准答案,汉考国际也不公布每题几分。自己给的写作分只是估计,宁可估低一点。HSK 7–9 的翻译和口语也是这样评。`]},{title:`只看总分过不过线`,body:[`没有单科最低分。以 HSK 4 为例,听力 70、阅读 60、写作 50,加起来 180,就算通过。不过成绩报告会列出每个部分,哪科弱一眼就能看到。`]}],howFoot:[`成绩按场次发布,报告上有总分和各部分分数。出分时间没有固定天数,以你那一场的通知为准。考试日期见`,{text:`HSK 考试日历`,href:`/hsk-exam-dates-2026`},`。`],answersH2:`要答对多少题?`,answersLede:`各级听力、阅读每部分有几题,要拿 60 分或 70 分分别得对几题。每科都 60 正好到合格线;70 能给考试当天留点余地。`,answersCols:{level:`级别`,questions:`每部分题数`,each:`每题约`,for60:`60 分要对`,for70:`70 分要对`},answersNote:`按每题等值折算、向上取整。汉考国际不公布折算方式,这些数请当作估计。`,goodH2:`HSK 考多少分算好?`,goodLede:`到了合格线就能拿证书。要不要考得更高,看谁要这个成绩。`,tiers:[{name:`过线`,share:`60%`,scores:`300 分里 180 · 200 分里 120`,body:`只要级别就够了,比如某门课要求 HSK 3,或者只是给自己定的目标。但考试当天多错几题,就可能掉到线下。`},{name:`稳过`,share:`70% 及以上`,scores:`300 分里 210 · 200 分里 140`,body:`再考一次大概率还能守住。大学或雇主要求某个级别时,建议按这个目标准备。这是我们的经验值,不是官方线。`},{name:`高分`,share:`明显高于 70%`,scores:`以对方要求为准`,body:`有些大学和奖学金除了级别,还有最低分数要求。各校、各年都不一样,请直接问你申请的机构。`}],goodFoot:[`没有哪个分数能保证录取。各级别实际是什么水平,见`,{text:`HSK 等级详解`,href:`/hsk-levels`},`。`],levelsH2:`各级要点`,levelsLede:`每一级的合格线、试卷长什么样,以及最容易影响分数的地方。`,levels:[{id:`hsk-1`,slug:`1`,heading:`HSK 1`,facts:`合格 120 / 200 · 听力 20 题、阅读 20 题 · 约 40 分钟`,body:[`没有写作,每道题都有标准答案,算分就是数题:20 题对 12 题,这部分就是 60 分。做一套计时的`,{text:`HSK 1 模拟考`,href:`/mock-test/hsk-1`},`看看。`]},{id:`hsk-2`,slug:`2`,heading:`HSK 2`,facts:`合格 180 / 300* · 听力 25 题、阅读 25 题、书写 10 题`,inferred:!0,body:[`HSK 3.0 新增书写:选部件补全汉字、看拼音写汉字。如果你那一场还是旧版两部分试卷,满分 200、合格 120。做一套`,{text:`HSK 2 模拟考`,href:`/mock-test/hsk-2`},`。`]},{id:`hsk-3`,slug:`3`,heading:`HSK 3`,facts:`合格 180 / 300 · 听力 30 题、阅读 30 题、书写 10 题 · 约 83 分钟`,body:[`听力或阅读 30 题对 18 题就是 60 分。从三级起还要报考口语,口语另外考,不算进这 300 分。做一套`,{text:`HSK 3 模拟考`,href:`/mock-test/hsk-3`},`。`]}
12,{id:`hsk-4`,slug:`4`,heading:`HSK 4`,facts:`合格 180 / 300 · 听力 32 题、阅读 32 题、写作 6 题 · 约 85 分钟`,body:[`写作是 5 道看图用词造句,加一篇 80 字短文。很多大学项目和奖学金要求四级,所以别只盯着 180,多留点余量。做一套`,{text:`HSK 4 模拟考`,href:`/mock-test/hsk-4`},`。`]},{id:`hsk-5`,slug:`5`,heading:`HSK 5`,facts:`合格 180 / 300 · 听力 35 题、阅读 35 题、写作 2 题 · 约 110 分钟`,body:[`写作只有两题:看四幅图写 100 字,和一篇 200 字话题作文。只有两题,一篇写砸了,整个写作分就下来了。做一套`,{text:`HSK 5 模拟考`,href:`/mock-test/hsk-5`},`。`]},{id:`hsk-6`,slug:`6`,heading:`HSK 6`,facts:`合格 180 / 300 · 听力 40 题、阅读 40 题、写作 2 题 · 约 125 分钟`,body:[`听力、阅读每题 2.5 分,对 24 题就是 60 分。写作是 150 字应用文和 300 字议论文。口语另外考,不算进 300 分。做一套`,{text:`HSK 6 模拟考`,href:`/mock-test/hsk-6`},`。`]}],bandsH2:`HSK 7–9:没有合格线`,bands:[[`HSK 7–9 是一份试卷对应三个级别:听力、阅读、写作、翻译、口语,每部分 100 分,共 500 分ã€
12‚全卷 98 题,约 210 分钟。`],[`它不拿总分去比一条线,而是根据整份试卷估算你的能力,评为七级、八级、九级或未达到七级。官方没有公布总分和级别的对照表,所以计算器只算总分,不替你定级。想看各部分在考试条件下表现如何,做一套`,{text:`HSK 7–9 模拟考`,href:`/mock-test/hsk-7-9`},`。`]],faqH2:`常见问题`,faq:e=>[{q:`HSK 多少分算通过?`,a:`HSK 1 是 200 分里的 120,HSK 2 到 HSK 6 是 300 分里的 180,都是总分的 60%。HSK 7–9 没有合格线,按整份试卷评为七、八、九级。`,link:{text:`对比所有 HSK 级别`,href:`/hsk-levels`}},{q:`HSK 4 要答对多少题才能过?`,a:`按每题等值算,听力 32 题对 20 题、阅读 32 题对 20 题,各约 60 分。不过只要求总分到 180,强的一科可以补弱的一科。`,link:{text:`用 HSK 4 模拟考验证一下`,href:`/mock-test/hsk-4`}},{q:`有一科没考好,还能过吗?`,a:`能。HSK 1 到 HSK 6 只看总分,公布的规则没有单科最低分。以 HSK 4 为例,写作 50,听力 70、阅读 60,加起来 180,就过了。不过报告会列出每一科,看报告的人能看到哪科弱。`,link:{text:`用词表补上薄弱的部分`,href:`/vocabulary/hsk-${e}`}},{q:`HSK 1–2 是 200 分制吗?`,a:`HSK 1 是:听力、阅读各 100 分,120 分合格。HSK 2 只有旧版试卷是 200 分制。HSK 3.0 给二级加了书写,满分变成 300、合格 180,这个数汉考国际还没印出来。请看你的报名记录是哪一版。`},{q:`写作算分吗?口语呢?`,a:`写作从 HSK 2 起算分,占 100 分;HSK 1 没有写作。HSK 3 到 HSK 6 的口语是另外一场考试,不算进 300 分。HSK 7–9 的口语是五个部分之一,算分。`,link:{text:`先把写作要用的词背下来`,href:`/vocabulary/hsk-${e}`}},{q:`这个计算器是官方的吗?`,a:`不是。它用的是官方公布的满分和合格线,把你填的分数加起来。把答对题数换算成分数时,假设每题分值一样,这一点官方没有确认,所以结果是估计。正式成绩以成绩报告为准。`},{q:`HSK 什么时候出成绩?`,a:`汉考国际按场次分别公布出分时间,没有固定天数,以你那一场的通知为准。成绩报告上有总分和每个部分的分数。`,link:{text:`查看 HSK 考试日期`,href:`/hsk-exam-dates-2026`}},{q:`HSK 成绩有效期多久?`,a:`我们引用的官方文件没有写,所以不给具体期限。实际上,成绩要多新由要你交成绩的大学、奖学金或雇主决定。报名前先问清楚。`}],ui:{calculator:`分数计算器`,level:`级别`,scoreHint:`100 分制分数`,countHint:e=>`答对题数,共 ${e} 题`,countResult:(e,t,n)=>`${t} 题对 ${e} 题 ≈ ${n} 分`,estimateHint:`没有标准答案,填你的估计分`,needHint:(e,t,n)=>t?`至少要对 ${e} 题才能过(≈ ${n} 分)`:`至少要 ${e} 分才能过`,practiceAsk:`自己对答案批的练习卷?`,practiceOn:`正在按练习卷的答对题数计算。`,toCount:`改填答对题数`,toScore:`改填 100 分制分数`,estimateNote:`答对题数按每题等值折算。汉考国际不公布折算方式,总分请当作估计。`,total:`总分`,totalSoFar:`目前总分`,passMark:e=>`合格线 ${e}`,bandsShort:`7–9 级没有合格线`,meterPass:e=>`合格 ${e}`,verdict:(e,t)=>{let n=e.passScore;switch(t.state){case`empty`:return{body:n===null?`${e.label} 满分 ${e.totalScore}。填上五个部分的分数,就能看到总分。`:`${e.label} 满分 ${e.totalScore},${n} 分合格。照着成绩报告填分数;如果是自己批的练习卷,可以改填答对题数。`};case`partial`:return{body:`再填上${ZN(t.missing.map(e=>e.name))},就能看到总分。`};case`need`:return{lead:`还要 ${t.need}+`,body:`要到 ${n},${t.row.name}至少要 ${t.need} 分${t.row.keyed?`,大约是 ${t.row.questions} 题对 ${WN(t.need,t.row.questions)} 题`:``}。`};case`already`:return{lead:`已经过线`,body:`其他部分加起来已经有 ${n} 分,${t.row.name}考多少都能过。`};case`out-of-reach`:return{lead:`差得太多`,body:`${t.row.name}就算考 100,离 ${n} 还差 ${t.short} 分,其他部分也得提上来。`};case`below`:{let e=t.weakest,r=100-(e.score??0),i=t.gap>r?`单靠一科补不回来。`:`${e.name}最低,${e.score} 分${e.keyed?`,在这科多对 ${WN(t.gap,e.questions)} 题左右就够了。`:`,这科再多 ${t.gap} 分就够了。`}`;return{lead:`还差 ${t.gap} 分`,body:`离 ${n} 还差 ${t.gap} 分。${i}`}}case`near`:return{lead:`过了`,body:t.margin===0?`正好 ${n}:过了,但一分不多。考试当天一两道题就能改变结果。`:`比 ${n} 高 ${t.margin} 分,过了,但余量不大,考试当天多错几题就可能翻过来。`};case`clear`:return{lead:`稳过`,body:`比合格线高 ${t.margin} 分,超过总分的 70%,再考一次也大概率守得住。`};case`bands`:return{lead:`没有合格线`,body:`HSK 7–9 按整份试卷评七、八、九级,不看这个总分,所以这里不替你定级。你最低的是${t.weakest.name},${t.weakest.score} 分。`}}
12},mockCta:e=>`参加 ${e} 模考`,vocabCta:e=>`${e} 词汇`,readingCta:e=>`练 ${e} 阅读`,writingCta:`练写作`,speakingCta:`练口语`,sharedTitle:`这是别人分享的成绩。`,sharedBody:e=>`有人发来了他们的 ${e} 分数,算算你的,比一比。`,sharedTry:`算我自己的`,shareLabels:{share:`分享`,copy:`复制链接`,copied:`链接已复制`,copyHint:`粘贴到微信或任何聊天里,打开就是这个结果。`,targets:{weibo:`微博`,x:`X(Twitter)`,whatsapp:`WhatsApp`,telegram:`Telegram`,facebook:`Facebook`,reddit:`Reddit`}},shareTitle:e=>`${e} 分数计算器`,shareText:(e,t)=>{let n=e.label,r=`${t.total}/${e.totalScore}`;switch(t.state){case`below`:return`我算了一下 ${n}:${r},离合格还差 ${t.gap} 分。你呢?`;case`near`:case`clear`:return`我算了一下 ${n}:${r},过线了!你考多少?`;case`bands`:return`我的 ${n} 总分:${r}。你呢?`;case`need`:return`${n}:我的${t.row.name}至少要 ${t.need} 分才能过。算算你的:`;default:return`算算你的 ${n} 分数,看能不能过:`}},shareCard:(e,t,n)=>{let r=e.label,i=`${t.total} / ${e.totalScore}`;return{title:t.state===`below`?`${r}:${i},离合格还差 ${t.gap} 分`:t.state===`near`||t.state===`clear`?`${r}:${i},过线了`:t.state===`need`?`${r}:${t.row.name}至少要 ${t.need} 分才能过`:`${r}:${i}`,description:`${n.filter(e=>e.score!==void 0).map(e=>`${e.name} ${e.score}`).join(` · `)}。几秒钟算出你自己的 HSK 分数,免费,无需注册。`}},list:ZN}},$N=e=>e.length<2?e[0]??``:`${e.slice(0,-1).join(`, `)} và ${e[e.length-1]}`,eP={h1:`Công cụ tính điểm HSK`,lede:`Nhập điểm từng phần để xem ngay tổng điểm, có đạt hay không, và còn thiếu bao nhiêu. Dùng được từ HSK 1 đến HSK 7–9.`,crumbTools:`Công cụ`,crumbSelf:`Công cụ tính điểm`,onThisPage:`Trong trang này`,passH2:`Điểm đạt HSK theo từng cấp`,passLede:`HSK 1 đến HSK 6 đạt khi đủ 60% tổng điểm. HSK 7–9 không có mức điểm đạt. Chạm vào một cấp để nạp vào công cụ tính điểm.`,passCols:{level:`Cấp`,sections:`Các phần thi`,total:`Tổng điểm`,pass:`Điểm đạt`},sectionList:{1:`Nghe, đọc`,2:`Nghe, đọc, viết`,3:`Nghe, đọc, viết`,4:`Nghe, đọc, viết`,5:`Nghe, đọc, viết`,6:`Nghe, đọc, viết`,"7-9":`Nghe, đọc, viết, dịch, nói`},noPassMark:`Không có — xếp vào cấp 7, 8 hoặc 9`,loadLevel:`Dùng cấp này để tính`,inferredNote:`* HSK 3.0 thêm phần viết cho HSK 2. Đề mẫu của CTI không in điểm số, nên 300 được suy ra theo quy tắc mỗi phần 100 điểm, và 180 là 60% của con số đó.`,howH2:`Điểm HSK được tính như thế nào`,how:[{title:`Mỗi phần thi có điểm tối đa 100`,body:[`Tổng điểm là các phần cộng lại. HSK 1 chỉ có nghe và đọc nên tối đa 200. HSK 2 đến HSK 6 có thêm viết nên tối đa 300. HSK 7–9 có năm phần nên tối đa 500.`]},{title:`Nghe và đọc: đếm số câu bạn làm đúng`,body:[`Mỗi câu trong một phần có giá trị như nhau. Ở HSK 4, phần nghe có 32 câu, mỗi câu khoảng 3 điểm, đúng 20 câu được khoảng 63 điểm. Vì vậy công cụ này cũng nhận số câu đúng.`]},{title:`Phần viết do giám khảo chấm`,body:[`Phần viết không có đáp án chuẩn, và CTI cũng không công bố mỗi bài đáng bao nhiêu điểm. Điểm viết bạn tự chấm chỉ là ước lượng, nên chấm chặt tay một chút. HSK 7–9 phần dịch và nói cũng được chấm theo cách này.`]},{title:`Chỉ cần tổng điểm đạt là được`,body:[`Không có điểm tối thiểu cho từng phần. Ví dụ HSK 4: nghe 70, đọc 60, viết 50, cộng lại 180 là đạt. Bảng điểm vẫn liệt kê từng phần, nên phần nào yếu vẫn lộ ra.`]}],howFoot:[`Kết quả được công bố theo từng đợt thi, và báo cáo cho thấy từng phần cùng tổng điểm. Không có thời gian chờ cố định, nên hãy xem thông báo của kỳ thi bạn đăng ký. Xem ngày thi tại `,{text:`lịch thi HSK`,href:`/hsk-exam-dates-2026`},`.`],answersH2:`Cần trả lời đúng bao nhiêu câu?`,answersLede:`Số câu nghe và đọc ở mỗi cấp, và cần đúng bao nhiêu câu để được 60 hoặc 70 điểm ở phần đó. 60 điểm mỗi phần đúng bằng điểm đạt; 70 điểm để dư chút phòng khi hôm thi không thuận.`,answersCols:{level:`Cấp`,questions:`Số câu mỗi phần`,each:`Mỗi câu khoảng`,for60:`Đúng để được 60`,for70:`Đúng để được 70`}
12,answersNote:`Tính theo giá trị bằng nhau cho mỗi câu và làm tròn lên. CTI không công bố cách quy đổi, nên hãy coi đây là số ước lượng.`,goodH2:`Điểm HSK bao nhiêu là tốt?`,goodLede:`Chỉ cần đạt điểm chuẩn là có chứng chỉ. Cần cao hơn bao nhiêu còn tùy nơi yêu cầu chứng chỉ này.`,tiers:[{name:`Vừa đạt`,share:`60%`,scores:`180 / 300 · 120 / 200`,body:`Đủ dùng khi chỉ cần đạt cấp độ: một khóa học yêu cầu HSK 3, hay mục tiêu bạn tự đặt ra. Nhưng chỉ vài câu sai vào hôm thi không thuận là có thể trượt.`},{name:`Đạt chắc chắn`,share:`70% trở lên`,scores:`210 / 300 · 140 / 200`,body:`Một khoảng an toàn để nếu thi lại vẫn giữ được kết quả. Hãy nhắm mốc này khi trường đại học hay nhà tuyển dụng yêu cầu một cấp độ cụ thể. Đây là kinh nghiệm của chúng tôi, không phải mốc chính thức.`},{name:`Điểm cao`,share:`Cao hơn hẳn 70%`,scores:`Kiểm tra con số cụ thể`,body:`Một số trường đại học và học bổng đặt ra điểm tối thiểu ngoài yêu cầu về cấp độ. Mức này khác nhau giữa các trường và các năm, nên hãy hỏi trực tiếp nơi bạn nộp hồ sơ.`}],goodFoot:[`Không có điểm số nào đảm bảo chắc chắn được nhận. Để biết mỗi cấp độ thực sự có ý nghĩa gì, xem `,{text:`Giải thích các cấp độ HSK`,href:`/hsk-levels`},`.`],levelsH2:`Chi tiết từng cấp`,levelsLede:`Điểm đạt, hình dạng đề thi, và yếu tố thường quyết định điểm số nhất.`,levels:[{id:`hsk-1`,slug:`1`,heading:`HSK 1`,facts:`Đạt 120 / 200 · nghe 20, đọc 20 · khoảng 40 phút`,body:[`Không có phần viết, và mọi câu đều có đáp án chuẩn, nên điểm số chỉ là đếm câu đúng: đúng 12/20 là 60 điểm cho phần đó. Thử làm một `,{text:`đề thi thử HSK 1`,href:`/mock-test/hsk-1`},` có tính giờ.`]},{id:`hsk-2`,slug:`2`,heading:`HSK 2`,facts:`Đạt 180 / 300* · nghe 25, đọc 25, viết 10`,inferred:!0,body:[`Mới trong HSK 3.0: phần viết yêu cầu ghép bộ phận thành chữ Hán hoàn chỉnh và viết chữ Hán từ pinyin. Nếu kỳ thi của bạn vẫn dùng đề cũ hai phần, thì tối đa 200 và đạt ở 120. Thử làm `,{text:`đề thi thử HSK 2`,href:`/mock-test/hsk-2`},`.`]},{id:`hsk-3`,slug:`3`,heading:`HSK 3`,facts:`Đạt 180 / 300 · nghe 30, đọc 30, viết 10 · khoảng 83 phút`,body:[`Đúng 18/30 câu nghe hoặc đọc là 60 điểm. Từ HSK 3, bạn cũng đăng ký thi nói riêng, không tính vào 300 điểm này. Thử làm `,{text:`đề thi thử HSK 3`,href:`/mock-test/hsk-3`},`.`]},{id:`hsk-4`,slug:`4`,heading:`HSK 4`,facts:`Đạt 180 / 300 · nghe 32, đọc 32, viết 6 · khoảng 85 phút`,body:[`Phần viết gồm năm câu đặt từ tranh và từ cho sẵn, cộng một đoạn văn 80 chữ. Nhiều chương trình đại học và học bổng yêu cầu HSK 4, nên hãy nhắm cao hơn hẳn 180. Thử làm `,{text:`đề thi thử HSK 4`,href:`/mock-test/hsk-4`},`.`]},{id:`hsk-5`,slug:`5`,heading:`HSK 5`,facts:`Đạt 180 / 300 · nghe 35, đọc 35, viết 2 · khoảng 110 phút`,body:[`Phần viết chỉ có hai bài: viết 100 chữ theo bốn bức tranh, và một bài luận 200 chữ. Chỉ hai bài, nên một bài yếu là kéo cả phần viết xuống. Thử làm `,{text:`đề thi thử HSK 5`,href:`/mock-test/hsk-5`},`.`]},{id:`hsk-6`,slug:`6`,heading:`HSK 6`,facts:`Đạt 180 / 300 · nghe 40, đọc 40, viết 2 · khoảng 125 phút`,body:[`Mỗi câu nghe hoặc đọc đáng 2,5 điểm, nên đúng 24 câu là 60 điểm. Phần viết gồm một bài ứng dụng 150 chữ và một bài nghị luận 300 chữ. Phần nói thi riêng, không tính vào 300 điểm. Thử làm `,{text:`đề thi thử HSK 6`,href:`/mock-test/hsk-6`},`.`]}],bandsH2:`HSK 7–9: không có điểm đạt`,bands:[[`HSK 7–9 là một đề thi chung cho ba cấp: nghe, đọc, viết, dịch và nói, mỗi phần 100 điểm, tổng 500 điểm. Đề có 98 câu và làm trong khoảng 210 phút.`],[`Tổng điểm của bạn không được so với một mốc cố định. CTI xếp bạn vào cấp 7, 8, 9 hoặc dưới cấp 7 dựa trên ước lượng năng lực từ toàn bộ đề thi. Chưa có bảng công khai quy đổi tổng điểm sang cấp độ, nên công cụ này chỉ hiển thị tổng điểm mà không tự xếp cấp cho bạn. Để xem từng phần của bạn thể hiện thế nào trong điều kiện thi thật, hãy làm một `,{text:`đề thi thử HSK 7–9`,href:`/mock-test/hsk-7-9`},`.`]],faqH2:`Câu hỏi thường gặp`,faq:e=>[{q:`Điểm đạt HSK là bao nhiêu?`,a:`HSK 1 đạt ở 120/200. HSK 2 đến HSK 6 đạt ở 180/300. Cả hai đều là 60% tổng điểm. HSK 7–9 không có điểm đạt: bạn được xếp vào cấp 7, 8 hoặc 9 dựa trên toàn bộ đề thi.`,link:{text:`So sánh tất cả các cấp HSK`,href:`/hsk-levels`}},{q:`Cần đúng bao nhiêu câu để đạt HSK 4?`,a:`Khoảng 20/32 câu nghe và 20/32 câu đọc cho khoảng 60 điểm mỗi phần, nếu mỗi câu có giá trị như nhau. Nhưng chỉ cần tổng điểm đạt 180, nên phần mạnh có thể bù cho phần yếu.`,link:{text:`Kiểm tra với đề thi thử HSK 4`,href:`/mock-test/hsk-4`}},{q:`Trượt một phần thì có còn đạt được không?`,a:`Có. HSK 1 đến HSK 6 chỉ xét tổng điểm, quy định công bố không đặt mức tối thiểu cho từng phần. Ở HSK 4, viết 50, nghe 70, đọc 60 cộng lại là 180, vẫn đạt. Nhưng báo cáo vẫn liệt 
12kê từng phần, nên người xem vẫn thấy được phần nào yếu.`,link:{text:`Củng cố phần yếu bằng danh sách từ vựng`,href:`/vocabulary/hsk-${e}`}},{q:`HSK 1–2 có tổng điểm 200 không?`,a:`HSK 1 gồm nghe và đọc, mỗi phần 100 điểm, đạt ở 120. HSK 2 chỉ có tổng 200 điểm ở đề cũ. Trong HSK 3.0, HSK 2 có thêm phần viết, nâng tổng lên 300 và đạt ở 180 — con số mà CTI chưa in ra chính thức. Hãy kiểm tra thông tin đăng ký của bạn dùng phiên bản nào.`},{q:`Viết có tính điểm không? Còn nói thì sao?`,a:`Viết tính điểm từ HSK 2 trở lên và chiếm 100 điểm trong tổng. HSK 1 không có phần viết. Từ HSK 3 đến HSK 6, nói là một bài thi riêng, không tính vào 300 điểm. Ở HSK 7–9, nói là một trong năm phần và có tính điểm.`,link:{text:`Xây dựng vốn từ vựng dùng cho bài viết`,href:`/vocabulary/hsk-${e}`}},{q:`Công cụ tính điểm này có chính thức không?`,a:`Không. Công cụ dùng tổng điểm và điểm đạt chính thức, rồi cộng những gì bạn nhập. Việc quy đổi số câu đúng sang điểm giả định mỗi câu có giá trị như nhau, điều mà CTI không xác nhận, nên các tổng điểm này chỉ là ước lượng. Bảng điểm chính thức mới là kết quả duy nhất có giá trị.`},{q:`Khi nào có kết quả HSK?`,a:`CTI công bố thời gian trả kết quả riêng cho từng đợt thi, không có số ngày cố định. Hãy xem thông báo của kỳ thi bạn đăng ký. Báo cáo hiển thị tổng điểm và điểm từng phần.`,link:{text:`Xem lịch thi HSK`,href:`/hsk-exam-dates-2026`}},{q:`Điểm HSK có hiệu lực bao lâu?`,a:`Các tài liệu chính thức mà chúng tôi tham khảo không ghi rõ, nên chúng tôi không đưa ra một thời hạn cụ thể. Trên thực tế, trường đại học, học bổng hay nhà tuyển dụng yêu cầu chứng chỉ sẽ quyết định điểm phải mới đến mức nào. Hãy hỏi rõ trước khi đăng ký thi.`}],ui:{calculator:`Công cụ tính điểm`,level:`Cấp`,scoreHint:`Điểm trên thang 100`,countHint:e=>`Số câu đúng, ${e} câu`,countResult:(e,t,n)=>`${e}/${t} đúng ≈ ${n} / 100`,estimateHint:`Không có đáp án chuẩn — điểm bạn tự ước lượng`,needHint:(e,t,n)=>t?`Cần đúng ${e}+ câu để đạt (≈ ${n})`:`Cần ${e}+ điểm để đạt`,practiceAsk:`Bạn tự chấm một đề luyện tập?`,practiceOn:`Đang tính theo số câu đúng từ đề luyện tập.`,toCount:`Chuyển sang nhập số câu đúng`,toScore:`Chuyển sang nhập điểm trên thang 100`,estimateNote:`Số câu đúng được quy đổi theo giá trị bằng nhau cho mỗi câu. CTI không công bố cách quy đổi, nên tổng điểm chỉ là ước lượng.`,total:`Tổng điểm`,totalSoFar:`Tổng điểm hiện tại`,passMark:e=>`Điểm đạt ${e}`,bandsShort:`HSK 7–9 không có điểm đạt`,meterPass:e=>`Đạt ${e}`,verdict:(e,t)=>{let n=e.passScore;switch(t.state){case`empty`:return{body:n===null?`${e.label} có tổng điểm tối đa ${e.totalScore}. Nhập điểm năm phần để xem tổng điểm.`:`${e.label} có tổng điểm tối đa ${e.totalScore}, và ${n} là mức đạt. Nhập điểm theo bảng điểm của bạn, hoặc chuyển sang nhập số câu đúng nếu bạn tự chấm đề luyện tập.`};case`partial`:return{body:`Thêm ${$N(t.missing.map(e=>e.name))} để xem tổng điểm.`};case`need`:return{lead:`Cần thêm ${t.need}+`,body:`Để đạt ${n}, bạn cần ít nhất ${t.need} điểm ở ${t.row.name}${t.row.keyed?` — khoảng ${WN(t.need,t.row.questions)} trên ${t.row.questions} câu đúng`:``}.`};case`already`:return{lead:`Đã đạt rồi`,body:`Các phần khác của bạn đã cộng đủ ${n} điểm. Dù ${t.row.name} được bao nhiêu vẫn giữ được kết quả đạt.`};case`out-of-reach`:return{lead:`Ngoài tầm với`,body:`Dù ${t.row.name} đạt trọn 100 điểm, bạn vẫn thiếu ${t.short} điểm để tới ${n}. Các phần khác cũng cần cải thiện thêm.`};case`below`:{let e=t.weakest,r=100-(e.score??0),i=t.gap>r?`Không phần nào một mình bù đủ được.`:`${e.name} đang thấp nhất với ${e.score} điểm${e.keyed?`: đúng thêm khoảng ${WN(t.gap,e.questions)} câu ở phần này là đủ.`:`: thêm ${t.gap} điểm ở phần này là đủ.`}`;return{lead:`Thiếu ${t.gap} điểm`,body:`Bạn cần thêm ${t.gap} điểm để đạt ${n}. ${i}`}}case`near`:return{lead:`Đạt`,body:t.margin===0?`Đúng ${n}: đạt nhưng không dư chút nào. Một hai câu vào hôm thi có thể thay đổi kết quả.`:`Cao hơn ${n} là ${t.margin} điểm. Đây là đạt, nhưng khá sít sao: vài câu sai vào hôm thi có thể đổi kết quả.`};case`clear`:return{lead:`Đạt chắc chắn`,body:`Cao hơn ${n} là ${t.margin} điểm và vượt 70% tổng điểm. Khoảng cách này nên vẫn giữ được nếu bạn thi lại.`};case`bands`:return{lead:`Không có điểm đạt`,body:`HSK 7–9 xếp bạn vào cấp 7, 8 hoặc 9 dựa trên toàn bộ đề thi, không dựa trên tổng điểm này, nên chúng tôi không quy đổi thành cấp độ ở đây. Phần thấp nhất của bạn là ${t.weakest.name} với ${t.weakest.score} điểm.`}}},mockCta:e=>`Làm đề thi thử ${e}`,vocabCta:e=>`Từ vựng ${e}`,readingCta:e=>`Luyện đọc ${e}
12`,writingCta:`Luyện viết`,speakingCta:`Luyện nói`,sharedTitle:`Kết quả được chia sẻ.`,sharedBody:e=>`Ai đó đã gửi cho bạn điểm ${e} của họ. Xem điểm của bạn so sánh thế nào.`,sharedTry:`Nhập điểm của tôi`,shareLabels:{share:`Chia sẻ`,copy:`Sao chép liên kết`,copied:`Đã sao chép liên kết`,copyHint:`Liên kết mở đúng kết quả này.`,targets:{whatsapp:`WhatsApp`,x:`X (Twitter)`,facebook:`Facebook`,telegram:`Telegram`,reddit:`Reddit`,weibo:`Weibo`}},shareTitle:e=>`Công cụ tính điểm ${e}`,shareText:(e,t)=>{let n=e.label,r=`${t.total}/${e.totalScore}`;switch(t.state){case`below`:return`Tôi vừa kiểm tra điểm ${n}: ${r}, còn thiếu ${t.gap} điểm để đạt. Còn bạn thì sao?`;case`near`:case`clear`:return`Tôi vừa kiểm tra điểm ${n}: ${r}, đã đạt! Còn bạn được bao nhiêu?`;case`bands`:return`Tổng điểm ${n} của tôi: ${r}. Còn bạn?`;case`need`:return`${n}: tôi cần ${t.need} điểm ở ${t.row.name} để đạt. Tính thử điểm của bạn xem:`;default:return`Tính thử điểm ${n} của bạn xem có đạt không:`}},shareCard:(e,t,n)=>{let r=e.label,i=`${t.total} / ${e.totalScore}`;return{title:t.state===`below`?`${r}: ${i} — thiếu ${t.gap} điểm để đạt`:t.state===`near`||t.state===`clear`?`${r}: ${i} — đã đạt`:t.state===`need`?`${r}: cần ${t.need} điểm ở ${t.row.name} để đạt`:`${r}: ${i}`,description:`${n.filter(e=>e.score!==void 0).map(e=>`${e.name} ${e.score}`).join(` · `)}. Kiểm tra điểm HSK của bạn chỉ trong vài giây — miễn phí, không cần đăng ký.`}},list:$N}},tP=e=>e.length<2?e[0]??``:`${e.slice(0,-1).join(`, `)} และ ${e[e.length-1]}`,nP={h1:`เครื่องคำนวณคะแนนสอบ HSK`,lede:`กรอกคะแนนแต่ละส่วนเพื่อดูคะแนนรวม ผ่านหรือไม่ และยังขาดอีกเท่าไรได้ทันที ใช้ได้ตั้งแต่ HSK 1 ถึง HSK 7–9`,crumbTools:`เครื่องมือ`,crumbSelf:`เครื่องคำนวณคะแนน`,onThisPage:`ในหน้านี้`,passH2:`เกณฑ์ผ่าน HSK แต่ละระดับ`,passLede
12:`HSK 1 ถึง HSK 6 ผ่านที่ 60% ของคะแนนเต็ม ส่วน HSK 7–9 ไม่มีเกณฑ์ผ่าน แตะเลือกระดับเพื่อโหลดเข้าเครื่องคำนวณ`,passCols:{level:`ระดับ`,sections:`ส่วนของข้อสอบ`,total:`คะแนนเต็ม`,pass:`เกณฑ์ผ่าน`},sectionList:{1:`ฟัง อ่าน`,2:`ฟัง อ่าน เขียน`,3:`ฟัง อ่าน เขียน`,4:`ฟัง อ่าน เขียน`,5:`ฟัง อ่าน เขียน`,6:`ฟัง อ่าน เขียน`,"7-9":`ฟัง อ่าน เขียน แปล พูด`},noPassMark:`ไม่มี — จัดอยู่ในระดับ 7, 8 หรือ 9`,loadLevel:`ใช้ระดับนี้คำนวณ`,inferredNote:`* HSK 3.0 เพิ่มส่วนเขียนให้ HSK 2 ข้อสอบตัวอย่างของ CTI ไม่ได้พิมพ์คะแนนไว้ 300 จึงมาจากกฎที่ว่าแต่ละส่วน 100 คะแนน และ 180 คือ 60% ของคะแนนนั้น`,howH2:`คะแนน HSK คำนวณอย่างไร`,how:[{title:`แต่ละส่วนคะแนนเต็ม 100`,body:[`คะแนนรวมคือผลบวกของแต่ละส่วน HSK 1 มีแค่ฟังกับอ่าน จึงเต็ม 200 HSK 2 ถึง HSK 6 เพิ่มส่วนเขียน จึงเต็ม 300 ส่วน HSK 7–9 มีห้าส่วน จึงเต็ม 500`]},{title:`ฟังและอ่าน: นับจำนวนข้อที่ตอบถูก`,body:[`ทุกข้อในส่วนเดียวกันมีค่าเท่ากัน ที่ HSK 4 ส่วนฟังมี 32 ข้อ แต่ละข้อจึงมีค่าประมาณ 3 คะแนน ตอบถูก 20 ข้อจะได้ประมาณ 63 คะแนน เครื่องคำนวณนี้จึงรับค่าจำนวนข้อที่ตอบถูกได้ด้วย`]},{title:`ส่วนเขียนกรรมการเป็นผู้ตรวจ`,body:[`ส่วนเขียนไม่มีเฉลยมาตรฐาน และ CTI ก็ไม่ได้เปิดเผยว่าแต่ละข้อมีค่ากี่คะแนน คะแนนเขียนที่คุณให้ตัวเองจึงเป็นเพียงการประมาณ ควรให้คะแนนอย่างเข้มงวด ส่วนแปลและพูดของ HSK 7–9 ก็ตรวจแบบเดียวกัน`]},{title:`ดูแค่คะแนนรวมว่าผ่านหรือไม่`,body:[`ไม่มีคะแนนขั้นต่ำแยกตามส่วน อย่างที่ HSK 4 ฟัง 70 อ่าน 60 เขียน 50 รวมกันได้ 180 ก็ถือว่าผ่าน แต่รายงานผลยังคงแสดงทุกส่วน จึงเห็นได้ว่าส่วนไหนอ่อน`]}],howFoot:[`ผลสอบจะประกาศตามแต่ละรอบสอบ และรายงานผลจะแสดงคะแนนแต่ละส่วนพร้อมคะแนนรวม ไม่มีระยะเวลารอที่ตายตัว ควรตรวจสอบประกาศของรอบสอบของคุณเอง ดูวันสอบได้ที่ `,{text:`ปฏิทินสอบ HSK`,href:`/hsk-exam-dates-2026`},``],answersH2:`ต้องตอบถูกกี่ข้อ?`,answersLede:`จำนวนข้อฟังและอ่านในแต่ละระดับ และต้องตอบถูกกี่ข้อเพื่อให้ได้ 60 หรือ 70 คะแนนในส่วนนั้น 60 คะแนนในทุกส่วนคือเกณฑ์ผ่านพอดี ส่วน 70 คะแนนเผื่อไว้สำหรับวันที่ทำข้อสอบไม่ดีนัก`,answersCols:{level:`ระดับ`,questions:`จำนวนข้อต่อส่วน`,each:`แต่ละข้อประมาณ`,for
1260:`ตอบถูกเพื่อได้ 60`,for70:`ตอบถูกเพื่อได้ 70`},answersNote:`คำนวณโดยให้แต่ละข้อมีค่าเท่ากันแล้วปัดขึ้น CTI ไม่ได้เปิดเผยวิธีแปลงคะแนน จึงควรถือว่าตัวเลขเหล่านี้เป็นการประมาณ`,goodH2:`คะแนน HSK เท่าไรถึงจะดี?`,goodLede:`แค่ถึงเกณฑ์ผ่านก็ได้ใบประกาศแล้ว ส่วนจะต้องได้คะแนนสูงแค่ไหนขึ้นอยู่กับว่าใครเป็นคนต้องการผลสอบนี้`,tiers:[{name:`แค่ผ่าน`,share:`60%`,scores:`180 / 300 · 120 / 200`,body:`เพียงพอเมื่อสิ่งที่สำคัญคือระดับเท่านั้น เช่น หลักสูตรที่ต้องการ HSK 3 หรือเป้าหมายที่คุณตั้งไว้เอง แต่หากทำผิดไปไม่กี่ข้อในวันที่โชคไม่ดี ก็อาจตกจากเกณฑ์ได้`},{name:`ผ่านแบบมั่นใจ`,share:`70% ขึ้นไป`,scores:`210 / 300 · 140 / 200`,body:`เป็นระยะห่างที่น่าจะรักษาไว้ได้แม้สอบซ้ำอีกครั้ง ควรตั้งเป้าระดับนี้เมื่อมหาวิทยาลัยหรือนายจ้างต้องการระดับใดระดับหนึ่ง นี่เป็นเกณฑ์ที่เราแนะนำ ไม่ใช่เกณฑ์ทางการ`},{name:`คะแนนสูง`,share:`สูงกว่า 70% อย่างชัดเจน`,scores:`ตรวจสอบตัวเลขที่แน่นอน`,body:`บางมหาวิทยาลัยและทุนการศึกษากำหนดคะแนนขั้นต่ำนอกเหนือจากระดับ ซึ่งแตกต่างกันไปในแต่ละสถาบันและแต่ละปี จึงควรสอบถามที่ที่คุณจะสมัครโดยตรง`}],goodFoot:[`ไม่มีคะแนนใดรับประกันการตอบรับ หากต้องการทราบว่าแต่ละระดับหมายถึงอะไรในทางปฏิบัติ อ่านที่ `,{text:`คำอธิบายระดับ HSK`,href:`/hsk-levels`},``],levelsH2:`รายละเอียดแต่ละระดับ`,levelsLede:`เกณฑ์ผ่าน ลักษณะของข้อสอบ และปัจจัยที่มักตัดสินคะแนนมากที่สุด`,levels:[{id:`hsk-1`,slug:`1`,heading:`HSK 1`,facts:`ผ่าน 120 / 200 · ฟัง 20 ข้อ อ่าน 20 ข้อ · ประมาณ 40 นาที`,body:[`ไม่มีส่วนเขียน และทุกข้อมีเฉลยมาตรฐาน คะแนนจึงเป็นแค่การนับข้อ: ตอบถูก 12 จาก 20 ข้อ เท่ากับ 60 คะแนนในส่วนนั้น ลองทำ`,{text:`ข้อสอบจำลอง HSK 1`,href:`/mock-test/hsk-1`},`แบบจับเวลาดู`]},{id:`hsk-2`,slug:`2`,heading:`HSK 2`,facts:`ผ่าน 180 / 300* · ฟัง 25 ข้อ อ่าน 25 ข้อ เขียน 10 ข้อ`,inferred:!0,body:[`ใหม่ใน HSK 3.0: ส่วนเขียนที่ให้เติมส่วนประกอบให้เป็นอักษรจีนสมบูรณ์ และเขียนอักษรจีนจากพินอิน หากรอบสอบของคุณยังใช้ข้อสอบแบบเก่าสองส่วน คะแนนเต็มจะเป็น 200 และผ่านที่ 120 ลองทำ`,{text:`ข้อสอบจำลอง HSK 2`,href:`/mock-test/hsk-2`},`ดู`]},{id:`hsk-3`,slug:`3`,heading:`HSK 3`,facts:`ผ่าน 180 / 300 · ฟัง 30 ข้อ อ่าน 30 ข้อ เขียน 10 ข้อ · ประมาณ 83 นาที`,body:[`ตอบถูก 18 จาก 30 ข้อในฟังหรืออ่าน เท่ากับ 60 คะแนน ตั้งแต่ HSK 3 คุณต้องสมัครสอบพูดด้วย ซึ่งสอบแยกต่างหากและไม่นับรวมใน 300 คะแนนนี้ ลองทำ`,{text:`ข้อสอบจำลอง HSK 3`,href:`/mock-test/hsk-3`},`ดู`]}
12,{id:`hsk-4`,slug:`4`,heading:`HSK 4`,facts:`ผ่าน 180 / 300 · ฟัง 32 ข้อ อ่าน 32 ข้อ เขียน 6 ข้อ · ประมาณ 85 นาที`,body:[`ส่วนเขียนคือแต่งประโยคห้าข้อจากภาพและคำที่กำหนดให้ บวกกับเรียงความ 80 ตัวอักษรหนึ่งเรื่อง หลายหลักสูตรมหาวิทยาลัยและทุนการศึกษาต้องการ HSK 4 จึงควรตั้งเป้าให้สูงกว่า 180 มาก ลองทำ`,{text:`ข้อสอบจำลอง HSK 4`,href:`/mock-test/hsk-4`},`ดู`]},{id:`hsk-5`,slug:`5`,heading:`HSK 5`,facts:`ผ่าน 180 / 300 · ฟัง 35 ข้อ อ่าน 35 ข้อ เขียน 2 ข้อ · ประมาณ 110 นาที`,body:[`ส่วนเขียนมีแค่สองข้อ: เขียน 100 ตัวอักษรจากภาพสี่ภาพ และเรียงความ 200 ตัวอักษรหนึ่งเรื่อง มีแค่สองข้อ หากข้อใดข้อหนึ่งเขียนได้ไม่ดีก็ฉุดคะแนนทั้งส่วนลง ลองทำ`,{text:`ข้อสอบจำลอง HSK 5`,href:`/mock-test/hsk-5`},`ดู`]},{id:`hsk-6`,slug:`6`,heading:`HSK 6`,facts:`ผ่าน 180 / 300 · ฟัง 40 ข้อ อ่าน 40 ข้อ เขียน 2 ข้อ · ประมาณ 125 นาที`,body:[`แต่ละข้อฟังหรืออ่านมีค่า 2.5 คะแนน ตอบถูก 24 ข้อจึงเท่ากับ 60 คะแนน ส่วนเขียนมีบทความเชิงปฏิบัติ 150 ตัวอักษร และบทความโต้แย้ง 300 ตัวอักษร ส่วนพูดสอบแยกต่างหากและไม่นับรวมใน 300 คะแนน ลองทำ`,{text:`ข้อสอบจำลอง HSK 6`,href:`/mock-test/hsk-6`},`ดู`]}],bandsH2:`HSK 7–9: ไม่มีเกณฑ์ผ่าน`,bands:[[`HSK 7–9 เป็นข้อสอบชุดเดียวสำหรับสามระดับ: ฟัง อ่าน เขียน แปล และพูด แต่ละส่วน 100 คะแนน รวม 500 คะแนน มีทั้งหมด 98 ข้อ ใช้เวลาประมาณ 210 นาที`],[`คะแนนรวมของคุณจะไม่ถูกเทียบกับเส้นตายตัว CTI จะจัดให้คุณอยู่ในระดับ 7, 8, 9 หรือต่ำกว่าระดับ 7 จากการประเมินความสามารถจากข้อสอบทั้งชุด ยังไม่มีการเผยแพร่ตารางแปลงคะแนนรวมเป็นระดับ เครื่องคำนวณนี้จึงแสดงเพียงคะแนนรวมโดยไม่ตัดสินระดับให้ หากต้องการดูว่าแต่ละส่วนของคุณทำได้ดีแค่ไหนภายใต้เงื่อนไขการสอบจริง ลองทำ`,{text:`ข้อสอบจำลอง HSK 7–9`,href:`/mock-test/hsk-7-9`},`ดู`]],faqH2:`คำถามที่พบบ่อย`,faq:e=>[{q:`คะแนนผ่าน HSK คือเท่าไร?`,a:`HSK 1 ผ่านที่ 120 จาก 200 HSK 2 ถึง HSK 6 ผ่านที่ 180 จาก 300 ทั้งสองกรณีคือ 60% ของคะแนนเต็ม ส่วน HSK 7–9 ไม่มีเกณฑ์ผ่าน คุณจะถูกจัดอยู่ในระดับ 7, 8 หรือ 9 จากข้อสอบทั้งชุด`,link:{text:`เปรียบเทียบทุกระดับ HSK`,href:`/hsk-levels`}},{q:`ต้องตอบถูกกี่ข้อถึงจะผ่าน HSK 4?`,a:`ตอบถูกประมาณ 20 จาก 32 ข้อในฟัง และ 20 จาก 32 ข้อในอ่าน จะได้ประมาณ 60 คะแนนในแต่ละส่วน หากทุกข้อมีค่าเท่ากัน แต่เกณฑ์คือแค่คะแนนรวมถึง 180 ส่วนที่แข็งแรงกว่าจึงช่วยชดเชยส่วนที่อ่อนกว่าได้`,link:{text:`ตรวจสอบด้วยข้อสอบจำลอง HSK 4`,href:`/mock-test/hsk-4`}},{q:`ถ้าทำส่วนหนึ่งไม่ดี ยังผ่านได้ไหม?`,a:`ได้ HSK 1 ถึง HSK 6 พิจารณาแค่คะแนนรวม และกฎที่เผยแพร่ไม่ได้กำหนดคะแนนขั้นต่ำแยกตามส่วน อย่างที่ HSK 4 เขียน 50 ฟัง 70 อ่าน 60 รวมกันได้ 180 ก็ผ่าน แต่รายงานผลยังคงแสดงแต่ละส่วน ผู้ที่ดูรายงานจึงเห็นได้ว่าส่วนไหนอ่อน`,link:{text:`เสริมส่วนที่อ่อนด้วยรายการคำศัพท์`,href:`/vocabulary/hsk-${e}`}},{q:`HSK 1–2 คะแนนเต็ม 200 ใช่หรือไม่?`,a:`HSK 1 คือ à¸
12Ÿà¸±à¸‡à¹à¸¥à¸°à¸­à¹ˆà¸²à¸™ อย่างละ 100 คะแนน ผ่านที่ 120 ส่วน HSK 2 คะแนนเต็ม 200 เฉพาะข้อสอบรุ่นเก่าเท่านั้น ใน HSK 3.0 มีการเพิ่มส่วนเขียน ทำให้คะแนนเต็มเป็น 300 และผ่านที่ 180 ซึ่งเป็นตัวเลขที่ CTI ยังไม่ได้พิมพ์ไว้อย่างเป็นทางการ ควรตรวจสอบว่าการสมัครสอบของคุณเป็นรุ่นใด`},{q:`เขียนนับคะแนนไหม แล้วพูดล่ะ?`,a:`เขียนนับคะแนนตั้งแต่ HSK 2 ขึ้นไป และมีค่า 100 คะแนนในคะแนนรวม HSK 1 ไม่มีส่วนเขียน ตั้งแต่ HSK 3 ถึง HSK 6 การพูดเป็นการสอบแยกต่างหาก ไม่นับรวมใน 300 คะแนน ส่วนใน HSK 7–9 การพูดเป็นหนึ่งในห้าส่วนและนับคะแนน`,link:{text:`สร้างคลังคำศัพท์ที่ใช้ในการเขียน`,href:`/vocabulary/hsk-${e}`}},{q:`เครื่องคำนวณนี้เป็นทางการหรือไม่?`,a:`ไม่ใช่ เครื่องมือนี้ใช้คะแนนเต็มและเกณฑ์ผ่านที่เป็นทางการ แล้วรวมค่าที่คุณกรอกเข้าไป การแปลงจำนวนข้อที่ตอบถูกเป็นคะแนนอาศัยสมมติฐานว่าทุกข้อมีค่าเท่ากัน ซึ่ง CTI ไม่ได้ยืนยัน ดังนั้นตัวเลขเหล่านี้จึงเป็นเพียงการประมาณ รายงานผลคะแนนอย่างเป็นทางการเท่านั้นที่ถือเป็นผลจริง`},{q:`ผลสอบ HSK ออกเมื่อไร?`,a:`CTI ประกาศกำหนดการออกผลสอบแยกตามแต่ละรอบสอบ จึงไม่มีจำนวนวันที่ตายตัว ควรตรวจสอบประกาศของรอบสอบของคุณเอง รายงานผลจะแสดงคะแนนรวมและคะแนนแต่ละส่วน`,link:{text:`ดูวันสอบ HSK`,href:`/hsk-exam-dates-2026`}},{q:`คะแนน HSK มีอายุการใช้งานนานเท่าไร?`,a:`เอกสารทางการที่เราอ้างอิงไม่ได้ระบุไว้ จึงไม่ขอกำหนดระยะเวลาที่แน่นอน ในทางปฏิบัติ มหาวิทยาลัย ทุนการศึกษา หรือนายจ้างที่ต้องการผลสอบนี้จะเป็นผู้กำหนดว่าต้องใหม่แค่ไหน ควรสอบถามให้ชัดเจนก่อนสมัครสอบ`}],ui:{calculator:`เครื่องคำนวณคะแนน`,level:`ระดับ`,scoreHint:`คะแนนเต็ม 100`,countHint:e=>`จำนวนข้อที่ตอบถูก จากทั้งหมด ${e} ข้อ`,countResult:(e,t,n)=>`ถูก ${e} จาก ${t} ข้อ ≈ ${n} / 100`,estimateHint:`ไม่มีเฉลยมาตรฐาน — กรอกคะแนนที่คุณประมาณเอง`,needHint:(e,t,n)=>t?`ต้องตอบถูกอย่างน้อย ${e} ข้อจึงจะผ่าน (≈ ${n})`:`ต้องการอย่างน้อย ${e} คะแนนจึงจะผ่าน`,practiceAsk:`ตรวจข้อสอบฝึกหัดด้วยตัวเองใช่ไหม?`,practiceOn:`กำลังคำนวณจากจำนวนข้อที่ตอบถูกในข้อสอบฝึกหัด`,toCount:`เปลี่ยนไปกรอกจำนวนข้อที่ตอบถูก`,toScore:`เปลี่ยนไปกรอกคะแนนเต็ม 100`,estimateNote:`จำนวนข้อที่ตอบถูกจะถูกแปลงโดยให้แต่ละข้อมีค่าเท่ากัน CTI ไม่ได้เปิดเผยวิธีแปลงคะแนน คะแนนรวมจึงเป็นเพียงการประมาณ`,total:`คะแนนรวม`,totalSoFar:`คะแนนรวมตอนนี้`,passMark:e=>`เกณฑ์ผ่าน ${e}`,bandsShort:`HSK 7–9 ไม่มีเกณฑ์ผ่าน`,meterPass:e
12=>`ผ่าน ${e}`,verdict:(e,t)=>{let n=e.passScore;switch(t.state){case`empty`:return{body:n===null?`${e.label} คะแนนเต็ม ${e.totalScore} กรอกคะแนนทั้งห้าส่วนเพื่อดูคะแนนรวม`:`${e.label} คะแนนเต็ม ${e.totalScore} และ ${n} คือเกณฑ์ผ่าน กรอกคะแนนจากรายงานผลของคุณ หรือเปลี่ยนไปกรอกจำนวนข้อที่ตอบถูกหากคุณตรวจข้อสอบฝึกหัดด้วยตัวเอง`};case`partial`:return{body:`เพิ่ม ${tP(t.missing.map(e=>e.name))} เพื่อดูคะแนนรวม`};case`need`:return{lead:`ต้องการอีก ${t.need}+`,body:`เพื่อให้ถึง ${n} คุณต้องได้อย่างน้อย ${t.need} คะแนนใน${t.row.name}${t.row.keyed?` — ประมาณตอบถูก ${WN(t.need,t.row.questions)} จาก ${t.row.questions} ข้อ`:``}`};case`already`:return{lead:`ผ่านแล้ว`,body:`ส่วนอื่นของคุณรวมกันได้ ${n} คะแนนแล้ว ไม่ว่า${t.row.name}จะได้เท่าไรก็ยังผ่าน`};case`out-of-reach`:return{lead:`ไม่มีทางถึง`,body:`แม้${t.row.name}จะได้เต็ม 100 คุณก็ยังขาดอีก ${t.short} คะแนนถึงจะถึง ${n} ส่วนอื่นก็ต้องดีขึ้นด้วย`};case`below`:{let e=t.weakest,r=100-(e.score??0),i=t.gap>r?`ไม่มีส่วนใดส่วนหนึ่งที่จะเพิ่มให้ครบได้เพียงลำพัง`:`${e.name}ต่ำที่สุดที่ ${e.score} คะแนน${e.keyed?`: ตอบถูกเพิ่มอีกประมาณ ${WN(t.gap,e.questions)} ข้อในส่วนนี้ก็พอ`:`: เพิ่มอีก ${t.gap} คะแนนในส่วนนี้ก็พอ`}`;return{lead:`ขาดอีก ${t.gap} คะแนน`,body:`คุณต้องการอีก ${t.gap} คะแนนเพื่อถึง ${n} ${i}`}}case`near`:return{lead:`ผ่าน`,body:t.margin===0?`พอดี ${n}: ผ่านแต่ไม่มีส่วนเผื่อเลย หนึ่งหรือสองข้อในวันสอบอาจเปลี่ยนผลได้`:`สูงกว่า ${n} อยู่ ${t.margin} คะแนน นี่คือผ่าน แต่ยังไม่มาก: ทำผิดไปไม่กี่ข้อในวันสอบก็อาจพลิกผลได้`};case`clear`:return{lead:`ผ่านแบบมั่นใจ`,body:`สูงกว่า ${n} อยู่ ${t.margin} คะแนน และเกิน 70% ของคะแนนเต็ม ระยะห่างนี้น่าจะรักษาไว้ได้แม้สอบซ้ำอีกครั้ง`};case`bands`:return{lead:`ไม่มีเกณฑ์ผ่าน`,body:`HSK 7–9 จัดระดับคุณเป็น 7, 8 หรือ 9 จากข้อสอบทั้งชุด ไม่ใช่จากคะแนนรวมนี้ เราจึงไม่แปลงเป็นระดับให้ที่นี่ ส่วนที่ต่ำที่สุดของคุณคือ${t.weakest.name} ที่ ${t.weakest.score} คะแนน`}}},mockCta:e=>`ทำข้อสอบจำลอง ${e}`,vocabCta:e=>`คำศัพท์ ${e}`,readingCta:e=>`ฝึกอ่าน ${e}`,writingCta:`ฝึกเขียน`,speakingCta:`ฝึกพูด`,sharedTitle:`ผลลัพธ์ที่แชร์มา`,sharedBody:e=>`มีคนส่งคะแนน ${e} ของพวกเขามาให้คุณ ลองดูว่าคะแนนของคุณเทียบà¸
12à¸±à¸™à¹€à¸›à¹‡à¸™à¸­à¸¢à¹ˆà¸²à¸‡à¹„ร`,sharedTry:`กรอกคะแนนของฉันเอง`,shareLabels:{share:`แชร์`,copy:`คัดลอกลิงก์`,copied:`คัดลอกลิงก์แล้ว`,copyHint:`ลิงก์นี้จะเปิดผลลัพธ์นี้โดยตรง`,targets:{whatsapp:`WhatsApp`,x:`X (Twitter)`,facebook:`Facebook`,telegram:`Telegram`,reddit:`Reddit`,weibo:`Weibo`}},shareTitle:e=>`เครื่องคำนวณคะแนน ${e}`,shareText:(e,t)=>{let n=e.label,r=`${t.total}/${e.totalScore}`;switch(t.state){case`below`:return`ฉันลองเช็กคะแนน ${n}: ${r} ยังขาดอีก ${t.gap} คะแนนถึงจะผ่าน แล้วคุณล่ะ?`;case`near`:case`clear`:return`ฉันลองเช็กคะแนน ${n}: ${r} ผ่านแล้ว! แล้วคุณได้เท่าไร?`;case`bands`:return`คะแนนรวม ${n} ของฉัน: ${r} แล้วคุณล่ะ?`;case`need`:return`${n}: ฉันต้องการ ${t.need} คะแนนใน${t.row.name}ถึงจะผ่าน ลองคำนวณของคุณดู:`;default:return`ลองคำนวณคะแนน ${n} ของคุณดูว่าจะผ่านไหม:`}},shareCard:(e,t,n)=>{let r=e.label,i=`${t.total} / ${e.totalScore}`;return{title:t.state===`below`?`${r}: ${i} — ขาดอีก ${t.gap} คะแนนถึงจะผ่าน`:t.state===`near`||t.state===`clear`?`${r}: ${i} — ผ่านแล้ว`:t.state===`need`?`${r}: ต้องการ ${t.need} คะแนนใน${t.row.name}ถึงจะผ่าน`:`${r}: ${i}`,description:`${n.filter(e=>e.score!==void 0).map(e=>`${e.name} ${e.score}`).join(` · `)} ตรวจสอบคะแนน HSK ของคุณเองได้ในไม่กี่วินาที — ฟรี ไม่ต้องสมัครสมาชิก`}},list:tP}};function rP(e){let t=e.slice(0,2).toLowerCase();return t===`zh`?QN:t===`vi`?eP:t===`th`?nP:XN}var iP=()=>O(()=>import(`./score-calculator-CyoeE0ZZ.js`),__vite__mapDeps([131,1,4,5,10,6,7,8,9,11,12,13,14,15,16,17,91,40,20,41,43,51,2,3,18,19,21,22,23,24,25,26,27,28,29,30,52])),aP=`/tools/score-calculator`,oP={titleEn:`HSK Score Calculator — Passing Score & Pass Marks (HSK 1–9)`,titleZh:`HSK 分数计算器 — 各级合格线与总分(HSK 1–9)`,titleVi:`Công Cụ Tính Điểm HSK — Điểm Đạt & Mốc Điểm Từng Cấp (HSK 1–9)`,titleTh:`เครื่องคำนวณคะแนน HSK — เกณฑ์ผ่านและคะแนนแต่ละระดับ (HSK 1–9)`,descriptionEn:`Enter your HSK section scores to get your total and see if you pass — pass marks for HSK 1–6 (180/300, 120/200), right answers needed, and the 7–9 bands.`,descriptionZh:`输入 HSK 各部分分数,即时得出总分并判断是否通过:HSK 1–6 合格线(300 分里 180,200 分里 120)、要答对几题,以及 7–9 级的等级评定方式。`,descriptionVi:`Nhập điểm từng phần HSK để xem tổng điểm và biết có đạt hay không — điểm đạt HSK 1–6 (180/300, 120/200), số câu cần đúng, và cách xếp cấp ở HSK 7–9.`,descriptionTh:`กรอกคะแนนแต่ละส่วนของ HSK เพื่อดูคะแนนรวมและรู้ว่าผ่านหรือไม่ — เกณฑ์ผ่าน HSK 1–6 (180/300, 120/200) จำนวนข้อที่ต้องตอบถูก และวิธีจัดระดับของ HSK 7–9`},sP=`/imgs/og/score-calculator.png`;function cP(e){return e.via===`share`?e:{}}var lP=M(`/tools/score-calculator`)({validateSearch:BN,loaderDeps:({search:e})=>cP(e),loader:({deps:e})=>{let t=s(),n=e;if(n.via!==`share`)return{locale:t,shared:null};let r=VN(n),i=UN(r,n.mode===`correct`?`correct`:`score`,HN(n),t),a=GN(r,i);if(a.state===`empty`)return{locale:t,shared:null};let c=rP(t).ui.shareCard(r,a,i),l=a.state===`below`?`below`:a.state===`
12near`||a.state===`clear`?`pass`:null,u=r.passScore===null?`/imgs/og/score-hsk-${r.slug}.png`:l?`/imgs/og/score-hsk-${r.slug}-${l}.png`:sP,d=new URLSearchParams(Object.entries(n).filter(([,e])=>e!==void 0).map(([e,t])=>[e,String(t)])),f=`${o(`${k.app_url}${aP}`,{locale:t}).href}?${d}`;return{locale:t,shared:{...c,image:u,url:f}}},head:({loaderData:e})=>{let t=e?.locale??`en`,n=rP(t),i=e=>o(`${k.app_url}${aP}`,{locale:e}).href,a=PN(oP,`title`,t),s=PN(oP,`description`,t),c=i(t),l=e?.shared,u={"@context":`https://schema.org`,"@type":`WebApplication`,name:n.h1,url:c,applicationCategory:`EducationalApplication`,operatingSystem:`All`,inLanguage:t,description:s,offers:{"@type":`Offer`,price:`0`,priceCurrency:`USD`}},d={"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{name:ht({},{locale:t}),item:pN(`/`,t)},{name:n.crumbTools,item:pN(`/tools`,t)},{name:n.crumbSelf,item:c}].map((e,t)=>({"@type":`ListItem`,position:t+1,...e}))},f={"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:n.faq(`4`).map(e=>({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}}))},p=P(l?{title:l.title,description:l.description,url:l.url,image:l.image,imageAlt:l.title,locale:t}:{title:a,description:s,url:c,image:sP,imageAlt:n.h1,locale:t});return{meta:[{title:a},{name:`description`,content:s},...p],links:[{rel:`canonical`,href:c},...r.map(e=>({rel:`alternate`,hrefLang:e,href:i(e)})),{rel:`alternate`,hrefLang:`x-default`,href:i(`en`)}],scripts:[u,d,f].map(e=>({type:`application/ld+json`,children:JSON.stringify(e)}))}},component:N(iP,`component`)}),uP=()=>O(()=>import(`./level-test-Brav4Nx1.js`),__vite__mapDeps([132,1,4,5,23,61,17,8,9,14,15,37,2,3,6,7,10,11,12,13,16,18,19,20,21,22,24,25,26,27,28,29,30,33,51,52,115,49,59])),dP=`HSK Level Test — Find Your HSK Level in 3 Minutes | HSKWin`,fP=`Free adaptive HSK placement test across all nine HSK 3.0 levels. Ten questions, three minutes, four question formats — not just flashcards. Get an estimated level and which skill to fix first.`,pP=M(`/tools/level-test`)({loader:()=>({locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,n=t.slice(0,2)!==`en`;return{meta:[{title:n?EA({},{locale:t}):dP},{name:`description`,content:n?jA({},{locale:t}):fP}],links:Bi(`/tools/level-test`,t)}},component:N(uP,`component`)}),mP=(e,t)=>({text:e,href:t}),hP={lede:`Every 2026 deadline, how to register, and a free reminder before registration closes.`,nextH2:`The next HSK registration deadline`,datesH2:`HSK registration deadlines 2026`,dates:[`Each date counts down to its registration deadline. For start times, see `,mP(`all HSK exam dates in 2026`,`/hsk-exam-dates-2026`),`.`],howH2:`How to register for the HSK`,howSteps:[[`Choose your level (`,mP(`not sure which level? take the 3-minute level test`,`/tools/level-test`),`).`],[`Create an account on chinesetest.cn.`],[`Pick paper or computer-based, the date and a test centre.`],[`Enter your name exactly as on your ID, and add a photo.`],[`Pay before the deadline. Unpaid means not registered.`],[`Print your admission ticket before exam day.`]],howAfter:[`Registered? Now `,mP(`take a mock test`,`/mock-test`),` with the real timing.`],feeH2:`HSK registration fee`,fee:`Each test centre sets its own fee, and higher levels usually cost more. You see the price before you pay.`,modesH2:`Paper-based vs computer-based (iBT) registration`,modes:`Same exam, different timing. Paper closes about four weeks out, results in about a month. Computer-based closes about nine days out, results in about two weeks. HSK 7–9 is computer-only. Not every centre offers both.`,lateH2:`Can you register after the deadline?`,late:[`No. If paper registration has closed, try computer-based for the same date. Otherwise take the next one; HSK 1–6 runs most months. Meanwhile, `,mP(`check your target score`,`/tools/score-calculator`),`.`],remindH2:`Get a free reminder before registration closes`,remind:[`Tap Remind me on a date above and we email you 7 days and 1 day before registration closes, and a week before the exam. It needs a free account, and Turn off on the same date stops it. To change the exam you are aiming for, `,mP(`manage my exam date`,`/settings/exam-plan`),`.`],remindButton:`Remind me before the next deadline`,faqH2:`HSK registration FAQ`,faq:[{q:`How do I register for the HSK?`,a:`On chinesetest.cn, CTI's official site: choose a level, date and centre, then pay.`},{q:`When does HSK registration close?`,a:`About four weeks before a paper exam, about nine days before a computer-based one.`},{q:`How much does HSK registration cost?`,a:`It depends on your level and test centre. You see the price before paying.`}
12,{q:`Can I register after the deadline?`,a:`No. Try computer-based for the same date, or register for the next one.`},{q:`Can I change my test centre or cancel?`,a:`Each centre has its own rules. Ask yours before registration closes.`},{q:`Do I need to register again if I retake the HSK?`,a:`Yes. Each exam date is a new registration and a new fee.`}]},gP=()=>O(()=>import(`./hsk-registration-reminder-PKcj3Veo.js`),__vite__mapDeps([133,1,4,5,23,61,17,8,9,15,63,14,134,66,2,3,6,7,10,11,12,13,16,18,19,20,21,22,24,25,26,27,28,29,30,33,51,52,65,135])),_P=`/tools/hsk-registration-reminder`,vP=M(`/tools/hsk-registration-reminder`)({loader:async()=>({sittings:await zj({data:{upcomingOnly:!0}}),locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`,n=e=>o(`${k.app_url}${_P}`,{locale:e}).href,i={"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:hP.faq.map(e=>({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}}))};return{meta:[{title:Wp({},{locale:t})},{name:`description`,content:zp({},{locale:t})}],links:[{rel:`canonical`,href:n(t)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:n(e)})),{rel:`alternate`,hrefLang:`x-default`,href:n(`en`)}],scripts:t===`en`?[{type:`application/ld+json`,children:JSON.stringify(i)}]:[]}},component:N(gP,`component`)}),yP=M(`/result/$attemptId`)({head:()=>({meta:[{name:`robots`,content:`noindex, nofollow`}]}),component:N(()=>O(()=>import(`./_attemptId-D4H_OKOP.js`),__vite__mapDeps([136,1,4,5,6,7,8,9,10,11,12,13,14,15,16,23,17,37,2,3,18,19,20,21,22,24,25,26,27,28,29,30,33,35,36,32,38,39,40,41,42,43,44,45,46,137,138,61,139,49,95,96,140,141])),`component`)}),bP=[{slug:`1`,questions:20,parts:[5,5,5,5]},{slug:`2`,questions:25,parts:[5,5,5,10]},{slug:`3`,questions:30,parts:[10,10,10]},{slug:`4`,questions:40,parts:[10,10,20]},{slug:`5`,questions:45,parts:[15,10,20]},{slug:`6`,questions:50,parts:[10,10,10,20]},{slug:`7-9`,questions:47,parts:[28,5,14]}];function xP(e){return bP.find(t=>t.slug===e)}function SP(e,t=1){let n=t;return e.parts.map(e=>{let t=n;return n+=e,{from:t,to:n-1,count:e}})}function CP(e){let t=mM(e);if(!t)return null;let n=xP(e);
12if(!n)return null;let r=t.sections.find(e=>e.code===`reading`);if(!r)return null;let i=sN(e)?.find(e=>e.code===`reading`),a=i?i.parts.map(e=>({from:e.from,to:e.to,count:e.to-e.from+1,nameZh:e.nameZh,instructionsZh:e.instructionsZh})):SP(n).map(e=>({...e,nameZh:void 0,instructionsZh:void 0}));return{level:t,questions:n.questions,minutes:Math.round(r.durationSec/60),score:r.maxScore,total:t.totalScore,numbered:!!i,parts:a}}var wP=()=>O(()=>import(`./_level-Ddb0oklt.js`),__vite__mapDeps([142,1,4,5,17,8,9,39,15,2,3,6,7,10,11,12,13,14,16,18,19,20,21,22,23,24,25,26,27,28,29,30,143,51,52,117,57,58,113,111]));function TP(e){return mM(e.replace(/^hsk-/,``))}var EP=M(`/reading/$level`)({loader:async({params:e})=>{let t=TP(e.level);if(!t||!xP(t.slug))throw Ae();let n=await Vj({data:{kind:`written`,level:t.level}});return{slug:t.slug,hasPapers:n.length>0,freePaper:n.find(e=>e.isFreeSample)?.slug??null,locale:s()}},head:({loaderData:e})=>{if(!e)return{};let t=CP(e.slug);if(!t)return{};let n=e.locale,{level:i,questions:a,minutes:s,score:c}=t,l=`/reading/hsk-${i.slug}`,u=e=>o(`${k.app_url}${l}`,{locale:e}).href;return{meta:[{title:kp({label:i.label,questions:a,minutes:s},{locale:n})},{name:`description`,content:mp({label:i.label,questions:a,minutes:s,score:c},{locale:n})}],links:[{rel:`canonical`,href:u(n)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:u(e)})),{rel:`alternate`,hrefLang:`x-default`,href:u(`en`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:[{"@type":`ListItem`,position:1,name:ht({},{locale:n}),item:o(k.app_url,{locale:n}).href},{"@type":`ListItem`,position:2,name:Pp({},{locale:n}),item:o(`${k.app_url}/reading`,{locale:n}).href},{"@type":`ListItem`,position:3,name:lp({label:i.label},{locale:n}),item:u(n)}]})}]}},component:N(wP,`component`)}),DP=[3,4,5,6,7],OP={onThisPage:`On this page`,levelsH2:`What the HSK writing section asks, level by level`,levelsLede:`HSK 3.0 has writing from level 2 up. It starts with characters, moves to sentences, then to a paragraph, a short essay and finally an argued essay. Each writing section is worth 100 points.`,cols:{level:`Level`,section:`Section`,tasks:`What you write`,time:`Time`},rows:[{level:`HSK 1`,section:`—`,tasks:`No writing: listening and reading only.`,time:`—`},{level:`HSK 2`,section:`书写 · 10 items`,tasks:`Complete characters from their components (5), write characters from pinyin (5).`,time:`10 min`},{level:`HSK 3`,section:`书写 · 10 items`,tasks:`Write characters from pinyin (5); look at a picture and write a sentence with the given word (5).`,time:`20 min`},{level:`HSK 4`,section:`写作 · 6 items`,tasks:`A sentence for each of 5 pictures with a given word; one short essay of at least 80 characters.`,time:`25 min`},{level:`HSK 5`,section:`写作 · 2 items`,tasks:`At least 100 characters on a four-picture story; a topic essay of at least 200 characters.`,time:`40 min`},{level:`HSK 6`,section:`写作 · 2 items`,tasks:`A practical text — the sample is an online notice looking for a flatmate — of at least 150 characters; an argued essay of at least 300.`,time:`45 min`},{level:`HSK 7–9`,section:`写作 · 2 items`,tasks:`Describe and analyse a chart in about 200 characters; an argued essay of about 600.`,time:`55 min`}],levelsFoot:[`From the CTI sample papers for HSK 3.0 (levels 1–6, in force from July 2026) and the official HSK 7–9 sample. The practice above covers the open-ended tasks — the ones a marker has to read: HSK 3 sentences, the HSK 4 essay, the HSK 5 topic essay, both HSK 6 tasks and both 7–9 tasks. For the rest of each paper, take `,{text:`a full mock test`,href:`/mock-test`},`.`],syllabusH2:`What the 2026 syllabus expects you to write`,syllabus:[[`The HSK 3.0 syllabus (考试大纲, published November 2025) describes every level as tasks you can do with Chinese, and each task has a “write” line. Read level by level, the writing grows in one direction — from filling in information to arguing a view:`]],syllabusList:[`HSK 2: fill in a form with names, ages and dates; write a time, a place or the name of something;
12 a New Year greeting.`,`HSK 3: “one or two sentences” introducing a person, your plans, a meal, a trip, a purchase, your home or your studies.`,`HSK 4: “a paragraph” telling a short experience or giving a simple view — a person you know, a trip, a hobby, your neighbourhood, a new technology, a festival.`,`HSK 5: “a short text” sharing an experience and your view — study, work, health, the environment, a social trend, a Chinese saying.`,`HSK 6: “an article” introducing and arguing — an education issue, a company, a science topic, a tradition, a piece of Chinese history.`,`HSK 7–9: analysing data and arguing at length, in academic and professional registers — up to a summary, a literature review or a report.`],markingH2:`How HSK writing is marked`,marking:[[`CTI publishes the 100-point section total, not how those points split between tasks or what each one is marked on. What every marker reads for is the same three things, and they are what we mark on too:`]],markingList:[`Content — did you do the task: every given word used, the picture or chart actually described, the question actually answered, the length reached.`,`Language — grammar, word choice and range at the level, and characters written correctly.`,`Structure — sentences that connect and a text that reads in order: an opening, a body, an ending.`],practiseH2:`How to practise HSK writing`,practise:[`Write to the clock. 80 characters in about 10 minutes at HSK 4, 200 in about 25 at HSK 5: speed is part of the skill.`,`Reach the length, then stop adding. Going under the minimum costs marks; going far over buys nothing and leaves more room for mistakes.`,`Use the words you know are right. A correct simple sentence scores; an ambitious one that breaks does not.`,`Plan three lines before you write: what you will say first, what supports it, how it ends.`,`Read the model answer after you write, not before — then rewrite your own with what you learned.`],faqH2:`HSK writing questions`,faq:[{q:`How many characters do I need to write in the HSK 4 essay?`,a:`At least 80. The essay is the last item of the HSK 4 writing section, after five picture sentences; the section has 25 minutes.`},{q:`How long are the HSK 5 and HSK 6 essays?`,a:`HSK 5: at least 100 characters on a four-picture story and a topic essay of at least 200. HSK 6: a practical text of at least 150 and an argued essay of at least 300.`},{q:`Does HSK 1 or HSK 2 have writing?`,a:`HSK 1 has none. HSK 3.0 added a 书写 section to HSK 2: completing characters from their parts and writing characters from pinyin — characters, not sentences.`},{q:`Can I type my answer instead of handwriting it?`,a:`In the internet-based HSK you type, using a pinyin input method. On the paper-based exam you write by hand, so practise both if you are not sure which you will sit.`},{q:`How strict is the word count?`,a:`At levels 1–6 the papers say “at least” (不少于): below it costs marks. At 7–9 they say “about” (左右). Punctuation does not count as characters.`},{q:`Is the AI mark the same as a real HSK mark?`,a:`No practice mark can be: CTI does not publish its marking scheme. Ours is marked out of the task’s share of the 100-point section, on content, language and structure, against a model answer at the level — a close, consistent guide, not an official score.`},{q:`Is this writing practice free?`,a:`Every question and model answer is free to read, with no account. A free account gets one AI mark a day; Monthly and Lifetime mark without a daily limit.`,link:{text:`See plans`,href:`/pricing`}},{q:`Are these real HSK writing questions?`,a:`They are original questions written in the shape of the HSK 3.0 papers and kept inside each level’s word list. Past papers are CTI’s copyright.`}]},kP={en:OP,zh:{onThisPage:`本页内容`,levelsH2:`HSK 各级写作考什么`,levelsLede:`HSK 3.0 从二级开始有书写/写作:先写汉字,再写句子,然后是一段话、一篇短文,最后是议论文。每一级的写作部分都是 100 分。`,cols:{level:`级别`,section:`部分`,tasks:`写什么`,time:`时间`},rows:[{level:`HSK 1`,section:`—`,tasks:`没有写作,只考听力和阅读。`,time:`—`},{level:`HSK 2`,section:`书写 · 10 题`,tasks:`补全汉字(选部件)5 题,看拼音写汉字 5 题。`,time:`10 分钟`},{level:`HSK 3`,section:`书写 · 10 题`,tasks:`看拼音写汉字 5 题;看图,用所给词语写句子 5 题。`,time:`20 分钟`},{level:`HSK 4`,section:`写作 · 6 题`,tasks:`看图用词造句 5 题;写一篇不少于 80 字的短文。`,time:`25 分钟`},{level:`HSK 5`,section:`写作 · 2 题`,tasks:`看四幅图写一篇不少于 100 字的作文;写一篇不少于 200 字的话题作文。`,time:`40 分钟`},{level:`HSK 6`,section:`写作 · 2 题`,tasks:`写一篇不少于 150 字的应用文(样题是一则网上招租信息);写一篇不少于 300 字的议论文。`,time:`45 分钟`},{level:`HSK 7–9`,section:`写作 · 2 题`,tasks:`图表描述与分析,200 字左右;议论文,600 字左右。`,time:`55 分钟`}],levelsFoot:[`依据:中外语言交流合作中心发布的 HSK 3.0(1–6 级,2026 å¹´ 7 月起实施)考试结构与样题,以及 HSK 7–9 级官方样卷。上面的练习覆盖需要阅卷的开放题:HSK 3 用词造句、HSK 4 短文、HSK 5 话题作文、HSK 6 两道题和 7–9 级两道题。整卷其他部分请做`,{text:`完整模考`,href:`/mock-test`},`。`],syllabusH2:`2026 年新大纲要求你能写什么`,syllabus:[[`HSK 3.0 考试大纲ï¼
12ˆ2025 å¹´ 11 月发布)把每一级都写成"能用汉语做的事",每项任务都有一条"写"的要求。逐级读下来,写作是朝一个方向增长的——从填写信息到论述观点:`]],syllabusList:[`二级:在表格上填写姓名、年龄、生日;写出时间、地点、物品名称;写一句"过年好"这样的祝福语。`,`三级:"写出一两句话",简单介绍一个人、自己的安排、一顿饭、一次出行、一次购物、住的地方或学习情况。`,`四级:"写出一段话",简单讲述一段经历或表达简单的看法——一个熟人、一次旅行、一个爱好、社区生活、一项新技术、一个节日。`,`五级:"写出短文",分享经历并表达看法——学习、工作、健康、环境、某种社会现象、一个俗语或成语。`,`六级:"写文章"介绍并论述——教育问题、一家企业、科普知识、传统民俗、中国历史。`,`七—九级:分析数据、展开论述,进入学术和职业语体,直到撰写论文提要、文献综述和报告。`],markingH2:`HSK 写作怎么评分`,marking:[[`官方只公布每部分满分 100 分,不公布各题分值,也不公布具体评分细则。不过阅卷看的始终是三件事,我们的批改也按这三项打分:`]],markingList:[`内容——有没有完成任务:给的词都用上了吗,图片或图表真的描述了吗,问题真的回答了吗,字数够不够。`,`语言——语法、用词是否准确,词汇是否符合并用足这个级别,汉字是否写对。`,`结构——句子之间有没有连起来,文章有没有条理:开头、中间、结尾。`],practiseH2:`HSK 写作怎么练`,practise:[`限时写。四级 80 字大约 10 分钟,五级 200 字大约 25 分钟:速度本身就是能力的一部分。`,`写够字数就不要再加。不够最低字数会扣分;写得太多不加分,反而更容易出错。`,`用你确定写对的词。正确的简单句有分,写到一半写不下去的复杂句没分。`,`动笔前先列三行:先说什么,用什么支撑,怎么结尾。`,`写完再看范文,不要先看——然后用学到的东西把自己的那篇改一遍。`],faqH2:`HSK 写作常见问题`,faq:[{q:`HSK 4 级作文要写多少字?`,a:`不少于 80 字。短文是四级写作的最后一题,前面是 5 道看图用词造句,整个写作部分 25 分钟。`},{q:`HSK 5 级和 6 级作文要写多少字?`,a:`五级:看四幅图写不少于 100 字,话题作文不少于 200 字。六级:应用文不少于 150 字,议论文不少于 300 字。`},{q:`HSK 1 级、2 级考写作吗?`,a:`一级不考。HSK 3.0 给二级新增了书写部分:补全汉字、看拼音写汉字——写的是字,不是句子。`},{q:`考试可以打字吗,还是必须手写?`,a:`网考(机考)用拼音输入法打字;纸笔考试要手写。如果不确定自己参加哪一种,两种都要练。`},{q:`字数要求有多严格?`,a:`1–6 级题目写的是"不少于",不够会扣分;7–9 级写的是"左右"。标点符号不算字数。`},{q:`AI 批改的分数和正式考试一样吗?`,a:`任何练习都做不到一样:官方没有公布评分细则。我们按该题在 100 分写作部分中的分值,从内容、语言、结构三方面,对照该级别的范文打分——是稳定、接近的参考,不是官方成绩。`},{q:`写作练习免费吗?`,a:`所有题目和范文都可以免登录查看。免费账号每天可以 AI 批改 1 次;月度和终身会员不限次数。`,link:{text:`查看会员方案`,href:`/pricing`}},{q:`这些是 HSK 写作真题吗?`,a:`不是。这些是按 HSK 3.0 试卷题型原创的题目,词汇控制在各级词表以内。真题版权属于中外语言交流合作中心。`}]}};function AP(e,t){kP[e]=t}function jP(e){return kP[e.slice(0,2).toLowerCase()]??OP}var MP=M(`/practice/writing`)({validateSearch:e=>({level:e.level&&Number(e.level)||void 0,prompt:typeof e.prompt==`string`?e.prompt:void 0}),loader:async()=>{let e=await Lj(),t={};for(let n of DP){let r=e.filter(e=>e.level===n),i=r[Math.floor(Math.random()*r.length)];i&&(t[n]=i.id)}return{prompts:e,initial:t,locale:s()}},head:({loaderData:e})=>{let t=e?.locale??`en`;return{meta:[{title:gA({},{locale:t})},{name:`description`,content:xA({},{locale:t})}],links:Bi(`/practice/writing`,t),scripts:[{type:`application/ld+json`,children:JSON.stringify(zi(jP(t).faq))}]}},component:N(()=>O(()=>import(`./writing-CLuEi3uq.js`),__vite__mapDeps([144,1,4,5,23,61,17,8,9,2,3,6,7,10,11,12,13,14,15,16,18,19,20,21,22,24,25,26,27,28,29,30,38,36,39,40,41,42,43,44,45,33,129,51,52,145,137])),`component`)}),NP=M(`/practice/speaking`)({loader:()=>({locale:s()}),head:({loaderData:e})=>{let t=e?.locale??`en`;return{meta:[{title:oA({},{locale:t})},{name:`description`,content:dA({},{locale:t})}],links:Bi(`/practice/speaking`,t)}},component:N(()=>O(()=>import(`./speaking-BvqwnotC.js`),__vite__mapDeps([146,1,4,5,125,6,7,8,9,70,126,13,23,61,38,36,17,15,14,39,40,41,42,43,44,45,26,33,147,51,16,2,3,10,11,12,18,19,20,21,22,24,25,27,28,29,30,52,145,148])),`component`)}),PP=M(`/paper-print/$paper`)({loader:async({params:e})=>{let t=/^hsk-([1-9](?:-9)?)-/.exec(e.paper),n=t?mM(t[1]):void 0;if(!n)throw Ae();let r=(await Vj({data:{kind:`written`,level:n.level}})).find(t=>t.slug===e.paper);if(!r?.isFreeSample)throw Ae();return{level:n,paper:r,sample:await Kj({data:{slug:r.slug,mode:`sample`}}),locale:s()}},head:({loaderData:e})=>({meta:[{name:`robots`,content:`noindex, nofollow`},...e?[{title:`${e.level.label} ${e.locale.startsWith(`zh`)?`样卷 PDF`:`Sample Paper PDF`} | HSKWin`}]:[]]}
12),component:N(()=>O(()=>import(`./_paper--3zTWf7_.js`),__vite__mapDeps([149,1,4,5,17,8,9,35,36,6,7,14,15,32,37,38,39,40,41,42,43,44,45,26,33,46,27,141])),`component`)}),FP={beginner:[{kind:`repeat`,count:15,answerSec:15,heard:!0},{kind:`listen_answer`,count:10,answerSec:20,heard:!0},{kind:`answer`,count:2,answerSec:90,heard:!1}],intermediate:[{kind:`repeat`,count:10,answerSec:20,heard:!0},{kind:`picture`,count:2,answerSec:120,heard:!1},{kind:`answer`,count:2,answerSec:120,heard:!1}],advanced:[{kind:`retell`,count:3,answerSec:120,heard:!0},{kind:`read_aloud`,count:1,answerSec:120,heard:!1},{kind:`answer`,count:2,answerSec:150,heard:!1}]},IP={repeat:`听后重复`,listen_answer:`听后回答`,answer:`回答问题`,picture:`看图说话`,retell:`听后复述`,read_aloud:`朗读`};function LP(e,t){let n=FP[e].find(e=>e.kind===t),r=n.answerSec/60;switch(t){case`repeat`:return`共${n.count}题。每题你会听到一个句子,请在听完后重复这个句子。`;case`listen_answer`:return`共${n.count}题。每题你会听到一个问题,请在听完后回答这个问题。`;case`picture`:return`共${n.count}题。每题有一张图片,请结合图片说一段话。每题你有${r}分钟的时间。`;case`retell`:return`共${n.count}题。每题你会听到一段话,请在听完后复述这段话。每题你有${r}分钟的时间。`;case`read_aloud`:return`请朗读下面这段话。你有${r}分钟的时间。`;case`answer`:return`共${n.count}题。请回答下面的问题,每题你有${r}分钟的回答时间。`}}function RP(e){return e===`beginner`||e===`intermediate`||e===`advanced`}function zP(e){return e<=2?`beginner`:e<=4?`intermediate`:`advanced`}var BP=()=>O(()=>import(`./_band-CQ22W9Eg.js`),__vite__mapDeps([150,1,4,5,23,61,17,8,9,103,15,16,105,44,45,38,36,6,7,14,39,40,41,42,43,26,33,129,147,93,51,2,3,10,11,12,13,18,19,20,21,22,24,25,27,28,29,30,52,145,120]));function VP(e,t){let n=Number(e);return Number.isInteger(n)&&n>=1&&n<=t?n:void 0}var HP=M(`/hskk/$band`)({validateSearch:e=>({set:VP(e.set,5),part:VP(e.part,3),q:VP(e.q,15)}),loader:async({params:e})=>{if(!RP(e.band))throw Ae();let t=e.band,n=await qj({data:{band:t}});return{band:t,sets:n,initialSet:n[Math.floor(Math.random()*n.length)]?.set??1,locale:s()}},head:({loaderData:e})=>{if(!e)return{};let{band:t,locale:n}=e,r=CN(n),i=`/hskk/${t}`,a=r.bandMetaTitle[t],o=r.bandMetaDescription[t],s=[...r.bandFaq[t],...r.indexFaq.slice(5,8)],c={"@context":`https://schema.org`,"@type":`LearningResource`,name:r.bandTitle[t],description:o,url:Ii(i,n),inLanguage:n,learningResourceType:`Practice test`,educationalLevel:r.band[t],isAccessibleForFree:!0,teaches:`Spoken Chinese (HSKK)`};return{meta:[{title:a},{name:`description`,content:o}],links:Bi(i,n),scripts:[c,F(n,[{name:r.crumb,path:`/hskk`},{name:r.band[t],path:i}]),zi(s)].map(e=>({type:`application/ld+json`,children:JSON.stringify(e)}))}},component:N(BP,`component`)}),UP=M(`/flashcards/$level`)({loader:async({params:e})=>{let t=mM(e.level.replace(/^hsk-/,``));if(!t)throw Ae();let n=pM(t.level),[r,i]=await Promise.all([Uj({data:{slug:n}}),Gj()]);if(!r)throw Ae();return{slug:n,levelNumber:t.level,rows:r,canDrill:i.canDrill,locale:s()}},head:({loaderData:e})=>{if(!e)return{};let t=e.locale,n=t.startsWith(`zh`),i=uM.find(t=>t.level===e.levelNumber),a=n?i.labelZh:i.label,o=vM(i),s=`/flashcards/hsk-${i.slug}`,c=Ii(s,t),l=Sl({label:a,count:Y(o.added)},{locale:t}),u=sl({label:a,count:Y(o.added)},{locale:t});return{meta:[{title:l},{name:`description`,content:u},...P({title:l,description:u,url:c,image:Li,imageAlt:l,locale:t})],links:[{rel:`canonical`,href:c},...r.map(e=>({rel:`alternate`,hrefLang:e,href:Ii(s,e)})),{rel:`alternate`,hrefLang:`x-default`,href:Ii(s,`en`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify(F(t,[{name:nl({},{locale:t}),path:`/flashcards`},{name:i.label,path:s}]))}]}},component:N(()=>O(()=>import(`./_level-BBbtNrgu.js`),__vite__mapDeps([151,1,4,5,17,8,9,152,15,45,93,51,16,2,3,6,7,10,11,12,13,14,18,19,20,21,22,23,24,25,26,27,28,29,30,52,130,107])),`component`)}),WP=M(`/exam/dates-2026`)({beforeLoad:()=>{throw Me({to:`/hsk-exam-dates-2026`,statusCode:301})}}),GP=M(`/exam/$attemptId`)({head:()=>({meta:[{name:`robots`,content:`noindex, nofollow`}]}),component:N(()=>O(()=>import(`./_attemptId-aO9AAsi7.js`),__vite__mapDeps([153,1,4,5,23,61,17,8,9,88,15,14,76,39,37,105,44,147,41,93,33,154,18,40,26,74,36,6,7,155,139,156,49,148])),`component`)}),KP=M(`/blog/$slug`)({loader:async({params:e})=>{let t=s(),n=await kN({data:{slug:e.slug,locale:t}});if(!n)throw Ae();return{locale:t,post:n}},head:({loaderData:e})=>
12{if(!e)return{};let{locale:t,post:n}=e,r=o(`${k.app_url}/blog/${n.slug}`,{locale:t}).href;return{meta:[{title:`${n.title} | ${k.app_name}`},{name:`description`,content:n.description}],links:[{rel:`canonical`,href:r}]}},component:N(()=>O(()=>import(`./_slug-CIDc2YpX.js`),__vite__mapDeps([157,1,17,8,9,158,5,88,15,123,21,2,3,4,6,7,10,11,12,13,14,16,18,19,20,22,23,24,25,26,27,28,29,30,89])),`component`)}),qP=M(`/(auth)/verify-email`)({head:()=>({meta:[{name:`robots`,content:`noindex, follow`}]}),component:N(()=>O(()=>import(`./verify-email-8Ux16-JI.js`),__vite__mapDeps([159,1,4,5,17,8,9,160,69,70,7,13,15,161,19,10,6,11,12,14,16,18,20,21,162,81,73,163])),`component`)}),JP=M(`/(auth)/sign-up`)({head:()=>({meta:[{name:`robots`,content:`noindex, follow`}]}),component:N(()=>O(()=>import(`./sign-up-DUSQiovn.js`),__vite__mapDeps([164,1,4,5,165,9,23,17,8,160,69,70,7,13,15,161,19,10,6,11,12,14,16,18,20,21,162,81,73,166,167,168,27,135,169,170,171,172])),`component`)}),YP=M(`/(auth)/sign-in`)({head:()=>({meta:[{name:`robots`,content:`noindex, follow`}]}),component:N(()=>O(()=>import(`./sign-in-Xp7Vc3fN.js`),__vite__mapDeps([173,1,4,5,165,9,17,8,160,69,70,7,13,15,161,19,10,6,11,12,14,16,18,20,21,162,81,73,166,23,167,168,27,174,135,169,170])),`component`)}),XP=M(`/(auth)/reset-password`)({head:()=>({meta:[{name:`robots`,content:`noindex, follow`}]}),component:N(()=>O(()=>import(`./reset-password-B5ywjGzu.js`),__vite__mapDeps([175,1,4,5,165,9,17,8,160,69,70,7,13,15,161,19,10,6,11,12,14,16,18,20,21,162,81,73,163,176,170,172])),`component`)}),ZP=M(`/(auth)/redeem-invite`)({head:()=>({meta:[{name:`robots`,content:`noindex, follow`}]}),component:N(()=>O(()=>import(`./redeem-invite-C5GXwt8P.js`),__vite__mapDeps([177,1,4,5,69,70,7,8,13,17,9,160,15,161,19,10,6,11,12,14,16,18,20,21,162,81,73,174,171,29])),`component`)}),QP=M(`/(auth)/forgot-password`)({head:()=>({meta:[{name:`robots`,content:`noindex, follow`}]}),component:N(()=>O(()=>import(`./forgot-password-C3iyvnBQ.js`),__vite__mapDeps([178,1,4,5,165,9,17,8,160,69,70,7,13,15,161,19,10,6,11,12,14,16,18,20,21,162,81,73,168,163,169,176])),`component`)}),$P=M(`/(auth)/auth-callback`)({head:()=>({meta:[{name:`robots`,content:`noindex, follow`}]}),component:N(()=>O(()=>import(`./auth-callback-DMH7939Q.js`),__vite__mapDeps([179,1,23])),`component`)}),eF=M(`/settings/`)({head:()=>({meta:[{name:`robots`,content:`noindex, nofollow`}]}),component:N(()=>O(()=>import(`./settings-BEeNuhC3.js`),__vite__mapDeps([180,1,4,5,23,17,8,9,91,15,181,14,92,37,41,43,45,38,36,6,7,39,40,42,44,26,33,138,61,139,85])),`component`)}),tF=M(`/settings/tickets`)({component:N(()=>O(()=>import(`./tickets-C95xZM82.js`),__vite__mapDeps([182,1,3,4,5,6,7,8,9,69,70,13,23,183,103,15,16,80,128,184,78,79,26,185,72,186,81,82,187])),`component`)}),nF=M(`/settings/results`)({head:()=>({meta:[{name:`robots`,content:`noindex, nofollow`}]}),component:N(()=>O(()=>import(`./results-B2RrlT1k.js`),__vite__mapDeps([188,1,4,5,23,17,8,9,21,84,156,49,30,96,140])),`component`)}),rF=M(`/settings/profile`)({component:N(()=>O(()=>import(`./profile-Be8ltGKJ.js`),__vite__mapDeps([189,1,4,5,69,70,7,8,13,165,9,23,61,78,15,79,80,26,168,162,81,73,12,186])),`component`)}),iF=M(`/settings/payments`)({component:N(()=>O(()=>import(`./payments-DIMKBwtQ.js`),__vite__mapDeps([190,1,23,183,4,5,69,70,7,8,13,103,15,16,80,128,134,185,72,186,187])),`component`)}),aF=M(`/settings/mistakes`)({head:()=>({meta:[{name:`robots`,content:`noindex, nofollow`}]}),component:N(()=>O(()=>import(`./mistakes-v5KKq-8I.js`),__vite__mapDeps([191,1,4,5,23,61,17,8,9,35,36,6,7,14,15,32,37,38,39,40,41,42,43,44,45,26,33,46,47,48,49,30])),`component`)}),oF=M(`/settings/exam-plan`)({head:()=>({meta:[{name:`robots`,content:`noindex, nofollow`}]}),component:N(()=>O(()=>import(`./exam-plan-DPG5Slha.js`),__vite__mapDeps([192,1,4,5,23,61,17,8,9,83])),`component`)}),sF=M(`/settings/credits`)({component:N(()=>O(()=>import(`./credits-B7reSqDN.js`),__vite__mapDeps([193,1,4,5,23,17,8,9,183,69,70,7,13,103,15,16,80,128,77,185,72,186,187])),`component`)}),cF=M(`/settings/billing`)({component:N(()=>O(()=>import(`./billing-CQiyJLgk.js`),__vite__mapDeps([194,1,4,5,10,6,7,8,9,11,12,13,14,15,16,23,61,17,183,69,70,103,80,128,195,196,161,197,185,72,186,187])),`component`)}),lF=M(`/settings/apikeys`)({component:N(()=>O(()=>import(`./apikeys-CdM9hYkR.js`),__vite__mapDeps([198,1,4,5,69,70,7,8,13,23,61,183,103,15,16,80,128,14,199,200,186,81])),`component`)}),uF=M(`/admin/`)({component:N(()=>O(()=>import(`./admin-BxxklK5p.js`),__vite__mapDeps([201,1,23,15,63,181,41,25,186,5])),`component`)}),dF=M(`/admin/users`)({component:N(()=>O(()=>import(`./users-JvT-Z2mv.js`),__vite__mapDeps([202,1,3,4,5,6,7,8,9,203,70,126,13,14,15,10,11,12,16,69,23,61,183,103,80,128,77,196,25,186,204])),`component`)}),fF=M(`/admin/tickets`)({component:N(()=>O(()=>import(`./tickets-CcO2ddlh.js`),__vite__mapDeps([205,1,3,4,5,6,7,8,9,23,183,69,70,13,103,15,16,80,128,184,78,79,26,185,72,186,82,187,204])),`component`)}),pF=M(`/admin/subscriptions`)({component:N(()=>O(()=>import(`./subscriptions-DURkvhq6.js`),__vite__mapDeps([206,1,23,183,4,5,69,70,7,8,13,103,15,16,80,128,185,72,186,187,204])),`component`)}),mF=M(`/admin/settings`)({component:N(()=>O(()=>import(`./settings-COoeOhV_.js`),__vite__mapDeps([207,1,4,5,208,6,7,8,9,11,70,13,15,14,18,69,125,126,23,61,195,104,186,81,187])),`component`)});Object.freeze({status:`aborted`});function Z(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}
12let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,"name",{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,"init",{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}var hF=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},gF=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}},_F={};function vF(e){return e&&Object.assign(_F,e),_F}function yF(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function bF(e,t){return typeof t==`bigint`?t.toString():t}function xF(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}throw Error(`cached value already set`)}}}function SF(e){return e==null}function CF(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function wF(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}var TF=Symbol(`evaluating`);function Q(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==TF)return r===void 0&&(r=TF,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function EF(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function DF(...e){let t={};for(let n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function OF(e){return JSON.stringify(e)}function kF(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var AF=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function jF(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var MF=xF(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function NF(e){if(jF(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return!(jF(n)===!1||Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)===!1)}function PF(e){return NF(e)?{...e}:Array.isArray(e)?[...e]:e}var FF=new Set([`string`,`number`,`symbol`]);function IF(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function LF(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function $(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function RF(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var zF={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function BF(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return LF(e,DF(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return EF(this,`shape`,e),e},checks:[]}))}function VF(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return LF(e,DF(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return EF(this,`shape`,r),r},checks:[]}))}function HF(e,t){if(!NF(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot over
12write keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return LF(e,DF(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return EF(this,`shape`,n),n}}))}function UF(e,t){if(!NF(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return LF(e,DF(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return EF(this,`shape`,n),n}}))}function WF(e,t){return LF(e,DF(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return EF(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function GF(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return LF(t,DF(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return EF(this,`shape`,i),i},checks:[]}))}function KF(e,t,n){return LF(t,DF(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return EF(this,`shape`,i),i}}))}function qF(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function JF(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function YF(e){return typeof e==`string`?e:e?.message}function XF(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=YF(e.inst?._zod.def?.error?.(e))??YF(t?.error?.(e))??YF(n.customError?.(e))??YF(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function ZF(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function QF(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var $F=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,bF,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},eI=Z(`$ZodError`,$F),tI=Z(`$ZodError`,$F,{Parent:Error});function nI(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function rI(e,t=e=>e.message){let n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`&&i.errors.length)i.errors.map(e=>r({issues:e}));else if(i.code===`invalid_key`)r({issues:i.issues});else if(i.code===`invalid_element`)r({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}var iI=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new hF;if(o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>XF(e,a,vF())));throw AF(t,i?.callee),t}return o.value},aI=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new(i?.Err??e)(o.issues.map(e=>XF(e,a,vF())));throw AF(t,i?.callee),t}return o.value},oI=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new hF;return a.issues.length?{success:!1,error:new(e??eI)(a.issues.map(e=>XF(e,i,vF())))}:{success:!0,data:a.value}},sI=oI(tI),cI=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>XF(e,i,vF())))}:{success:!0,data:a.value}},lI=cI(tI),uI=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return iI(e)(t,n,i)},dI=e=>(t,n,r)=>iI(e)(t,n,r),fI=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return aI(e)(t,n,i)},pI=e=>async(t,n,r)=>aI(e)(t,n,r),mI=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return oI(e)(t,n,i)},hI=e=>(t,n,r)=>oI(e)(t,n,r),gI=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return cI(e)(t,n,i)},_I=e=>async(t,n,r)=>cI(e)(t,n,r),vI=/^[cC][^\s-]{8,}
vendor: 13,268 bytes, lines 12-14
12$/,yI=/^[0-9a-z]+$/,bI=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,xI=/^[0-9a-vA-V]{20}$/,SI=/^[A-Za-z0-9]{27}$/,CI=/^[a-zA-Z0-9_-]{21}$/,wI=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,TI=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,EI=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,DI=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,OI=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function kI(){return new RegExp(OI,`u`)}var AI=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,jI=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,MI=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,NI=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,PI=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,FI=/^[A-Za-z0-9_-]*$/,II=/^\+[1-9]\d{6,14}$/,LI=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,RI=RegExp(`^${LI}$`);function zI(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function BI(e){return RegExp(`^${zI(e)}$`)}function VI(e){let t=zI({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${LI}T(?:${r})$`)}var HI=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},UI=/^-?\d+$/,WI=/^-?\d+(?:\.\d+)?$/,GI=/^(?:true|false)$/i,KI=/^[^A-Z]*$/,qI=/^[^a-z]*$/,JI=Z(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),YI={number:`number`,bigint:`bigint`,object:`date`},XI=Z(`$ZodCheckLessThan`,(e,t)=>{JI.init(e,t);let n=YI[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),ZI=Z(`$ZodCheckGreaterThan`,(e,t)=>{JI.init(e,t);let n=YI[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),QI=Z(`$ZodCheckMultipleOf`,(e,t)=>{JI.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):wF(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),$I=Z(`$ZodCheckNumberFormat`,(e,t)=>{JI.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=zF[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=UI)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),eL=Z(`$ZodCheckMaxLength`,(e,t)=>{var n;JI.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!SF(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=ZF(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),tL=Z(`$ZodCheckMinLength`,(e,t)=>{var n;JI.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!SF(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=ZF(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),nL=Z(`$ZodCheckLengthEquals`,(e,t)=>{var n;JI.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!SF(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=ZF(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),rL=Z(`$ZodCheckStringFormat`,(e,t)=>{var n,r;JI.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),iL=Z(`$ZodCheckRegex`,(e,t)=>{rL.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),aL=Z(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=KI,rL.init(e,t)}),oL=Z(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=qI,rL.init(e,t)}),sL=Z(`$ZodCheckIncludes`,(e,t)=>{JI.init(e,t);let n=IF(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),cL=Z(`$ZodCheckStartsWith`,(e,t)=>{JI.init(e,t);let n=RegExp(`^${IF(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),lL=Z(`$ZodCheckEndsWith`,(e,t)=>{JI.init(e,t);let n=RegExp(`.*${IF(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),uL=Z(`$ZodCheckOverwrite`,(e,t)=>{JI.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),dL=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
13`).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>`  ${e}`)];return new e(...t,n.join(`
14`))}},fL={major:4,minor:3,patch:6},pL=Z(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=fL;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=qF(e),i;for(let a of t){if(a._zod.def.when){if(!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new hF;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=qF(e,t))});else{if(e.issues.length===t)continue;r||=qF(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(qF(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new hF;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new hF;return o.then(e=>t(e,r,a))}return t(o,r,a)}}Q(e,`~standard`,()=>({validate:t=>{try{let n=sI(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return lI(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),mL=Z(`$ZodString`,(e,t)=>{pL.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??HI(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),hL=Z(`$ZodStringFormat`,(e,t)=>{rL.init(e,t),mL.init(e,t)}),gL=Z(`$ZodGUID`,(e,t)=>{t.pattern??=TI,hL.init(e,t)}),_L=Z(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=EI(e)}else t.pattern??=EI();hL.init(e,t)}),vL=Z(`$ZodEmail`,(e,t)=>{t.pattern??=DI,hL.init(e,t)}),yL=Z(`$ZodURL`,(e,t)=>{hL.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=i.href:n.value=r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),bL=Z(`$ZodEmoji`,(e,t)=>{t.pattern??=kI(),hL.init(e,t)}),xL=Z(`$ZodNanoID`,(e,t)=>{t.pattern??=CI,hL.init(e,t)}),SL=Z(`$ZodCUID`,(e,t)=>{t.pattern??=vI,hL.init(e,t)}),CL=Z(`$ZodCUID2`,(e,t)=>{t.pattern??=yI,hL.init(e,t)}),wL=Z(`$ZodULID`,(e,t)=>{t.pattern??=bI,hL.init(e,t)}),TL=Z(`$ZodXID`,(e,t)=>{t.pattern??=xI,hL.init(e,t)}),EL=Z(`$ZodKSUID`,(e,t)=>{t.pattern??=SI,hL.init(e,t)}),DL=Z(`$ZodISODateTime`,(e,t)=>{t.pattern??=VI(t),hL.init(e,t)}),OL=Z(`$ZodISODate`,(e,t)=>{t.pattern??=RI,hL.init(e,t)}),kL=Z(`$ZodISOTime`,(e,t)=>{t.pattern??=BI(t),hL.init(e,t)}),AL=Z(`$ZodISODuration`,(e,t)=>{t.pattern??=wI,hL.init(e,t)}),jL=Z(`$ZodIPv4`,(e,t)=>{t.pattern??=AI,hL.init(e,t),e._zod.bag.format=`ipv4`}),ML=Z(`$ZodIPv6`,(e,t)=>{t.pattern??=jI,hL.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),NL=Z(`$ZodCIDRv4`,(e,t)=>{t.pattern??=MI,hL.init(e,t)}),PL=Z(`$ZodCIDRv6`,(e,t)=>{t.pattern??=NI,hL.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function FL(e){if(e===``)return!0;
vendor: 6,770 bytes, lines 14-48
14if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var IL=Z(`$ZodBase64`,(e,t)=>{t.pattern??=PI,hL.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{FL(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function LL(e){if(!FI.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return FL(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var RL=Z(`$ZodBase64URL`,(e,t)=>{t.pattern??=FI,hL.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{LL(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),zL=Z(`$ZodE164`,(e,t)=>{t.pattern??=II,hL.init(e,t)});function BL(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var VL=Z(`$ZodJWT`,(e,t)=>{hL.init(e,t),e._zod.check=n=>{BL(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),HL=Z(`$ZodNumber`,(e,t)=>{pL.init(e,t),e._zod.pattern=e._zod.bag.pattern??WI,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),UL=Z(`$ZodNumberFormat`,(e,t)=>{$I.init(e,t),HL.init(e,t)}),WL=Z(`$ZodBoolean`,(e,t)=>{pL.init(e,t),e._zod.pattern=GI,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),GL=Z(`$ZodUnknown`,(e,t)=>{pL.init(e,t),e._zod.parse=e=>e}),KL=Z(`$ZodNever`,(e,t)=>{pL.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function qL(e,t,n){e.issues.length&&t.issues.push(...JF(n,e.issues)),t.value[n]=e.value}var JL=Z(`$ZodArray`,(e,t)=>{pL.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>qL(t,n,e))):qL(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function YL(e,t,n,r,i){if(e.issues.length){if(i&&!(n in r))return;t.issues.push(...JF(n,e.issues))}e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function XL(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=RF(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function ZL(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optout===`optional`;for(let i in t){if(s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>YL(e,n,i,t,u))):YL(a,n,i,t,u)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var QL=Z(`$ZodObject`,(e,t)=>{if(pL.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,"shape",{get:()=>{let n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}let n=xF(()=>XL(t));Q(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=jF,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e],r=n._zod.optout===`optional`,i=n._zod.run({value:s[e],issues:[]},o);i instanceof Promise?c.push(i.then(n=>YL(n,t,e,s,r))):YL(i,t,e,s,r)}return i?ZL(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),$L=Z(`$ZodObjectJIT`,(e,t)=>{QL.init(e,t);let n=e._zod.parse,r=xF(()=>XL(t)),i=e=>{let t=new dL([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=OF(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let r of n.keys){let n=a[r],o=OF(r),s=e[r]?._zod?.optout===`optional`;t.write(`const ${n} = ${i(r)};`),s?t.write(`
15        if (${n}.issues.length) {
16          if (${o} in input) {
17            payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
18              ...iss,
19              path: iss.path ? [${o}, ...iss.path] : [${o}]
20            })));
21          }
22        }
23        
24        if (${n}.value === undefined) {
25          if (${o} in input) {
26            newResult[${o}] = undefined;
27          }
28        } else {
29          newResult[${o}] = ${n}.value;
30        }
31        
32      `):t.write(`
33        if (${n}.issues.length) {
34          payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
35            ...iss,
36            path: iss.path ? [${o}, ...iss.path] : [${o}]
37          })));
38        }
39        
40        if (${n}.value === undefined) {
41          if (${o} in input) {
42            newResult[${o}] = undefined;
43          }
44        } else {
45          newResult[${o}] = ${n}.value;
46        }
47        
48      `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=jF,s=!_F.jitless,c=s&&MF.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?ZL([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function eR(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!qF(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>XF(e,r,vF())))}),t)}var tR=Z(`$ZodUnion`,(e,t)=>{pL.init(e,t),Q(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),Q(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),Q(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),Q(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>CF(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>
vendor: 5,272 bytes, line 48
48{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>eR(t,i,e,a)):eR(s,i,e,a)}}),nR=Z(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,tR.init(e,t);let n=e._zod.parse;Q(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=xF(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!jF(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),rR=Z(`$ZodIntersection`,(e,t)=>{pL.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>aR(e,t,n)):aR(e,i,a)}});function iR(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(NF(e)&&NF(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=iR(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=iR(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function aR(e,t,n){let r=new Map,i;for(let n of t.issues)if(n.code===`unrecognized_keys`){i??=n;for(let e of n.keys)r.has(e)||r.set(e,{}),r.get(e).l=!0}else e.issues.push(n);for(let t of n.issues)if(t.code===`unrecognized_keys`)for(let e of t.keys)r.has(e)||r.set(e,{}),r.get(e).r=!0;else e.issues.push(t);let a=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(a.length&&i&&e.issues.push({...i,keys:a}),qF(e))return e;let o=iR(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var oR=Z(`$ZodRecord`,(e,t)=>{pL.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!NF(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[],o=t.keyType._zod.values;if(o){n.value={};let s=new Set;for(let e of o)if(typeof e==`string`||typeof e==`number`||typeof e==`symbol`){s.add(typeof e==`number`?e.toString():e);let o=t.valueType._zod.run({value:i[e],issues:[]},r);o instanceof Promise?a.push(o.then(t=>{t.issues.length&&n.issues.push(...JF(e,t.issues)),n.value[e]=t.value})):(o.issues.length&&n.issues.push(...JF(e,o.issues)),n.value[e]=o.value)}let c;for(let e in i)s.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:c})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o===`__proto__`)continue;let s=t.keyType._zod.run({value:o,issues:[]},r);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof o==`string`&&WI.test(o)&&s.issues.length){let e=t.keyType._zod.run({value:Number(o),issues:[]},r);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(s=e)}if(s.issues.length){t.mode===`loose`?n.value[o]=i[o]:n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>XF(e,r,vF())),input:o,path:[o],inst:e});continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?a.push(c.then(e=>{e.issues.length&&n.issues.push(...JF(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...JF(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),sR=Z(`$ZodEnum`,(e,t)=>{pL.init(e,t);let n=yF(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>FF.has(typeof e)).map(e=>typeof e==`string`?IF(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),cR=Z(`$ZodLiteral`,(e,t)=>{if(pL.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?IF(e):e?IF(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),lR=Z(`$ZodTransform`,(e,t)=>{pL.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new gF(e.constructor.name);
vendor: 6,502 bytes, line 48
48let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new hF;return n.value=i,n}});function uR(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var dR=Z(`$ZodOptional`,(e,t)=>{pL.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,Q(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),Q(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${CF(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>uR(t,e.value)):uR(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),fR=Z(`$ZodExactOptional`,(e,t)=>{dR.init(e,t),Q(e._zod,`values`,()=>t.innerType._zod.values),Q(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),pR=Z(`$ZodNullable`,(e,t)=>{pL.init(e,t),Q(e._zod,`optin`,()=>t.innerType._zod.optin),Q(e._zod,`optout`,()=>t.innerType._zod.optout),Q(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${CF(e.source)}|null)$`):void 0}),Q(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),mR=Z(`$ZodDefault`,(e,t)=>{pL.init(e,t),e._zod.optin=`optional`,Q(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>hR(e,t)):hR(r,t)}});function hR(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var gR=Z(`$ZodPrefault`,(e,t)=>{pL.init(e,t),e._zod.optin=`optional`,Q(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),_R=Z(`$ZodNonOptional`,(e,t)=>{pL.init(e,t),Q(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>vR(t,e)):vR(i,e)}});function vR(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var yR=Z(`$ZodCatch`,(e,t)=>{pL.init(e,t),Q(e._zod,`optin`,()=>t.innerType._zod.optin),Q(e._zod,`optout`,()=>t.innerType._zod.optout),Q(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>XF(e,n,vF()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>XF(e,n,vF()))},input:e.value}),e.issues=[]),e)}}),bR=Z(`$ZodPipe`,(e,t)=>{pL.init(e,t),Q(e._zod,`values`,()=>t.in._zod.values),Q(e._zod,`optin`,()=>t.in._zod.optin),Q(e._zod,`optout`,()=>t.out._zod.optout),Q(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>xR(e,t.in,n)):xR(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>xR(e,t.out,n)):xR(r,t.out,n)}});function xR(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}var SR=Z(`$ZodReadonly`,(e,t)=>{pL.init(e,t),Q(e._zod,`propValues`,()=>t.innerType._zod.propValues),Q(e._zod,`values`,()=>t.innerType._zod.values),Q(e._zod,`optin`,()=>t.innerType?._zod?.optin),Q(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(CR):CR(r)}});function CR(e){return e.value=Object.freeze(e.value),e}var wR=Z(`$ZodCustom`,(e,t)=>{JI.init(e,t),pL.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>TR(t,n,r,e));TR(i,n,r,e)}});function TR(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(QF(e))}}var ER,DR=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function OR(){return new DR}(ER=globalThis).__zod_globalRegistry??(ER.__zod_globalRegistry=OR());var kR=globalThis.__zod_globalRegistry;function AR(e,t){return new e({type:`string`,...$(t)})}function jR(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...$(t)})}function MR(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...$(t)})}function NR(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...$(t)})}function PR(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...$(t)})}function FR(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...$(t)})}function IR(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...$(t)})}function LR(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...$(t)})}function RR(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...$(t)})}function zR(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...$(t)})}function BR(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...$(t)})}function VR(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...$(t)})}function HR(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...$(t)})}function UR(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...$(t)})}
vendor: 7,832 bytes, lines 48-50
48function WR(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...$(t)})}function GR(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...$(t)})}function KR(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...$(t)})}function qR(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...$(t)})}function JR(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...$(t)})}function YR(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...$(t)})}function XR(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...$(t)})}function ZR(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...$(t)})}function QR(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...$(t)})}function $R(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...$(t)})}function ez(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...$(t)})}function tz(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...$(t)})}function nz(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...$(t)})}function rz(e,t){return new e({type:`number`,checks:[],...$(t)})}function iz(e,t){return new e({type:`number`,coerce:!0,checks:[],...$(t)})}function az(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...$(t)})}function oz(e,t){return new e({type:`boolean`,...$(t)})}function sz(e){return new e({type:`unknown`})}function cz(e,t){return new e({type:`never`,...$(t)})}function lz(e,t){return new XI({check:`less_than`,...$(t),value:e,inclusive:!1})}function uz(e,t){return new XI({check:`less_than`,...$(t),value:e,inclusive:!0})}function dz(e,t){return new ZI({check:`greater_than`,...$(t),value:e,inclusive:!1})}function fz(e,t){return new ZI({check:`greater_than`,...$(t),value:e,inclusive:!0})}function pz(e,t){return new QI({check:`multiple_of`,...$(t),value:e})}function mz(e,t){return new eL({check:`max_length`,...$(t),maximum:e})}function hz(e,t){return new tL({check:`min_length`,...$(t),minimum:e})}function gz(e,t){return new nL({check:`length_equals`,...$(t),length:e})}function _z(e,t){return new iL({check:`string_format`,format:`regex`,...$(t),pattern:e})}function vz(e){return new aL({check:`string_format`,format:`lowercase`,...$(e)})}function yz(e){return new oL({check:`string_format`,format:`uppercase`,...$(e)})}function bz(e,t){return new sL({check:`string_format`,format:`includes`,...$(t),includes:e})}function xz(e,t){return new cL({check:`string_format`,format:`starts_with`,...$(t),prefix:e})}function Sz(e,t){return new lL({check:`string_format`,format:`ends_with`,...$(t),suffix:e})}function Cz(e){return new uL({check:`overwrite`,tx:e})}function wz(e){return Cz(t=>t.normalize(e))}function Tz(){return Cz(e=>e.trim())}function Ez(){return Cz(e=>e.toLowerCase())}function Dz(){return Cz(e=>e.toUpperCase())}function Oz(){return Cz(e=>kF(e))}function kz(e,t,n){return new e({type:`array`,element:t,...$(n)})}function Az(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...$(n)})}function jz(e){let t=Mz(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(QF(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(QF(r))}},e(n.value,n)));return t}function Mz(e,t){let n=new JI({check:`custom`,...$(t)});return n._zod.check=e,n}function Nz(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??kR,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,external:e?.external??void 0}}function Pz(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,Pz(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io===`input`&&Lz(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&o.schema._prefault&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function Fz(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${a}`}}if(t[1]===n)return{ref:`#`};let i=`#/${r}/`,a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
49
50Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function Iz(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e===`$ref`||e===`allOf`||e in a||delete i[e];if(s.$ref&&n.def)for(let e in i)e===`$ref`||e===`allOf`||e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e===`$ref`||e===`allOf`||e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(a[e.defId]=e.def)}e.external||Object.keys(a).length>
vendor: 4,402 bytes, line 50
500&&(e.target===`draft-2020-12`?i.$defs=a:i.definitions=a);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:zz(t,`input`,e.processors),output:zz(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function Lz(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return Lz(r.element,n);if(r.type===`set`)return Lz(r.valueType,n);if(r.type===`lazy`)return Lz(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`)return Lz(r.innerType,n);if(r.type===`intersection`)return Lz(r.left,n)||Lz(r.right,n);if(r.type===`record`||r.type===`map`)return Lz(r.keyType,n)||Lz(r.valueType,n);if(r.type===`pipe`)return Lz(r.in,n)||Lz(r.out,n);if(r.type===`object`){for(let e in r.shape)if(Lz(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(Lz(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(Lz(e,n))return!0;return!!(r.rest&&Lz(r.rest,n))}return!1}var Rz=(e,t={})=>n=>{let r=Nz({...n,processors:t});return Pz(e,r),Fz(r,e),Iz(r,e)},zz=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Nz({...i??{},target:a,io:t,processors:n});return Pz(e,o),Fz(o,e),Iz(o,e)},Bz={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},Vz=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=Bz[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},Hz=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;typeof s==`string`&&s.includes(`int`)?i.type=`integer`:i.type=`number`,typeof u==`number`&&(t.target===`draft-04`||t.target===`openapi-3.0`?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u),typeof a==`number`&&(i.minimum=a,typeof u==`number`&&t.target!==`draft-04`&&(u>=a?delete i.minimum:delete i.exclusiveMinimum)),typeof l==`number`&&(t.target===`draft-04`||t.target===`openapi-3.0`?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l),typeof o==`number`&&(i.maximum=o,typeof l==`number`&&t.target!==`draft-04`&&(l<=o?delete i.maximum:delete i.exclusiveMaximum)),typeof c==`number`&&(i.multipleOf=c)},Uz=(e,t,n,r)=>{n.type=`boolean`},Wz=(e,t,n,r)=>{n.not={}},Gz=(e,t,n,r)=>{let i=e._zod.def,a=yF(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},Kz=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0)if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a},qz=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},Jz=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},Yz=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=Pz(a.element,t,{...r,path:[...r.path,`items`]})},Xz=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=Pz(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>
vendor: 4,102 bytes, line 50
500&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=Pz(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},Zz=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>Pz(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},Qz=(e,t,n,r)=>{let i=e._zod.def,a=Pz(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=Pz(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},$z=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=o._zod.bag?.patterns;if(a.mode===`loose`&&s&&s.size>0){let e=Pz(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)i.patternProperties[t.source]=e}else (t.target===`draft-07`||t.target===`draft-2020-12`)&&(i.propertyNames=Pz(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=Pz(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]});let c=o._zod.values;if(c){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e)}},eB=(e,t,n,r)=>{let i=e._zod.def,a=Pz(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},tB=(e,t,n,r)=>{let i=e._zod.def;Pz(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},nB=(e,t,n,r)=>{let i=e._zod.def;Pz(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},rB=(e,t,n,r)=>{let i=e._zod.def;Pz(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},iB=(e,t,n,r)=>{let i=e._zod.def;Pz(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},aB=(e,t,n,r)=>{let i=e._zod.def,a=t.io===`input`?i.in._zod.def.type===`transform`?i.out:i.in:i.out;Pz(a,t,r);let o=t.seen.get(e);o.ref=a},oB=(e,t,n,r)=>{let i=e._zod.def;Pz(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},sB=(e,t,n,r)=>{let i=e._zod.def;Pz(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},cB=Z(`ZodISODateTime`,(e,t)=>{DL.init(e,t),PB.init(e,t)});function lB(e){return $R(cB,e)}var uB=Z(`ZodISODate`,(e,t)=>{OL.init(e,t),PB.init(e,t)});function dB(e){return ez(uB,e)}var fB=Z(`ZodISOTime`,(e,t)=>{kL.init(e,t),PB.init(e,t)});function pB(e){return tz(fB,e)}var mB=Z(`ZodISODuration`,(e,t)=>{AL.init(e,t),PB.init(e,t)});function hB(e){return nz(mB,e)}var gB=(e,t)=>{eI.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>rI(e,t)},flatten:{value:t=>nI(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,bF,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,bF,2)}},isEmpty:{get(){return e.issues.length===0}}})};Z(`ZodError`,gB);var _B=Z(`ZodError`,gB,{Parent:Error}),vB=iI(_B),yB=aI(_B),bB=oI(_B),xB=cI(_B),SB=uI(_B),CB=dI(_B),wB=fI(_B),TB=pI(_B),EB=mI(_B),DB=hI(_B),OB=gI(_B),kB=_I(_B),AB=Z(`ZodType`,(e,t)=>(pL.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:zz(e,`input`),output:zz(e,`output`)}}),e.toJSONSchema=Rz(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(DF(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0}),e.with=e.check,e.clone=(t,n)=>LF(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>vB(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>bB(e,t,n),e.parseAsync=async(t,n)=>yB(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>xB(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>SB(e,t,n),e.decode=(t,n)=>CB(e,t,n),e.encodeAsync=async(t,n)=>wB(e,t,n),e.decodeAsync=async(t,n)=>TB(e,t,n),e.safeEncode=(t,n)=>EB(e,t,n),e.safeDecode=(t,n)=>DB(e,t,n),e.safeEncodeAsync=async(t,n)=>OB(e,t,n),e.safeDecodeAsync=async(t,n)=>
vendor: 4,293 bytes, line 50
50kB(e,t,n),e.refine=(t,n)=>e.check(qV(t,n)),e.superRefine=t=>e.check(JV(t)),e.overwrite=t=>e.check(Cz(t)),e.optional=()=>kV(e),e.exactOptional=()=>jV(e),e.nullable=()=>NV(e),e.nullish=()=>kV(NV(e)),e.nonoptional=t=>zV(e,t),e.array=()=>dV(e),e.or=t=>hV([e,t]),e.and=t=>yV(e,t),e.transform=t=>UV(e,DV(t)),e.default=t=>FV(e,t),e.prefault=t=>LV(e,t),e.catch=t=>VV(e,t),e.pipe=t=>UV(e,t),e.readonly=()=>GV(e),e.describe=t=>{let n=e.clone();return kR.add(n,{description:t}),n},Object.defineProperty(e,"description",{get(){return kR.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return kR.get(e);let n=e.clone();return kR.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=t=>t(e),e)),jB=Z(`_ZodString`,(e,t)=>{mL.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Vz(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(_z(...t)),e.includes=(...t)=>e.check(bz(...t)),e.startsWith=(...t)=>e.check(xz(...t)),e.endsWith=(...t)=>e.check(Sz(...t)),e.min=(...t)=>e.check(hz(...t)),e.max=(...t)=>e.check(mz(...t)),e.length=(...t)=>e.check(gz(...t)),e.nonempty=(...t)=>e.check(hz(1,...t)),e.lowercase=t=>e.check(vz(t)),e.uppercase=t=>e.check(yz(t)),e.trim=()=>e.check(Tz()),e.normalize=(...t)=>e.check(wz(...t)),e.toLowerCase=()=>e.check(Ez()),e.toUpperCase=()=>e.check(Dz()),e.slugify=()=>e.check(Oz())}),MB=Z(`ZodString`,(e,t)=>{mL.init(e,t),jB.init(e,t),e.email=t=>e.check(jR(FB,t)),e.url=t=>e.check(LR(RB,t)),e.jwt=t=>e.check(QR($B,t)),e.emoji=t=>e.check(RR(zB,t)),e.guid=t=>e.check(MR(IB,t)),e.uuid=t=>e.check(NR(LB,t)),e.uuidv4=t=>e.check(PR(LB,t)),e.uuidv6=t=>e.check(FR(LB,t)),e.uuidv7=t=>e.check(IR(LB,t)),e.nanoid=t=>e.check(zR(BB,t)),e.guid=t=>e.check(MR(IB,t)),e.cuid=t=>e.check(BR(VB,t)),e.cuid2=t=>e.check(VR(HB,t)),e.ulid=t=>e.check(HR(UB,t)),e.base64=t=>e.check(YR(XB,t)),e.base64url=t=>e.check(XR(ZB,t)),e.xid=t=>e.check(UR(WB,t)),e.ksuid=t=>e.check(WR(GB,t)),e.ipv4=t=>e.check(GR(KB,t)),e.ipv6=t=>e.check(KR(qB,t)),e.cidrv4=t=>e.check(qR(JB,t)),e.cidrv6=t=>e.check(JR(YB,t)),e.e164=t=>e.check(ZR(QB,t)),e.datetime=t=>e.check(lB(t)),e.date=t=>e.check(dB(t)),e.time=t=>e.check(pB(t)),e.duration=t=>e.check(hB(t))});function NB(e){return AR(MB,e)}var PB=Z(`ZodStringFormat`,(e,t)=>{hL.init(e,t),jB.init(e,t)}),FB=Z(`ZodEmail`,(e,t)=>{vL.init(e,t),PB.init(e,t)}),IB=Z(`ZodGUID`,(e,t)=>{gL.init(e,t),PB.init(e,t)}),LB=Z(`ZodUUID`,(e,t)=>{_L.init(e,t),PB.init(e,t)}),RB=Z(`ZodURL`,(e,t)=>{yL.init(e,t),PB.init(e,t)}),zB=Z(`ZodEmoji`,(e,t)=>{bL.init(e,t),PB.init(e,t)}),BB=Z(`ZodNanoID`,(e,t)=>{xL.init(e,t),PB.init(e,t)}),VB=Z(`ZodCUID`,(e,t)=>{SL.init(e,t),PB.init(e,t)}),HB=Z(`ZodCUID2`,(e,t)=>{CL.init(e,t),PB.init(e,t)}),UB=Z(`ZodULID`,(e,t)=>{wL.init(e,t),PB.init(e,t)}),WB=Z(`ZodXID`,(e,t)=>{TL.init(e,t),PB.init(e,t)}),GB=Z(`ZodKSUID`,(e,t)=>{EL.init(e,t),PB.init(e,t)}),KB=Z(`ZodIPv4`,(e,t)=>{jL.init(e,t),PB.init(e,t)}),qB=Z(`ZodIPv6`,(e,t)=>{ML.init(e,t),PB.init(e,t)}),JB=Z(`ZodCIDRv4`,(e,t)=>{NL.init(e,t),PB.init(e,t)}),YB=Z(`ZodCIDRv6`,(e,t)=>{PL.init(e,t),PB.init(e,t)}),XB=Z(`ZodBase64`,(e,t)=>{IL.init(e,t),PB.init(e,t)}),ZB=Z(`ZodBase64URL`,(e,t)=>{RL.init(e,t),PB.init(e,t)}),QB=Z(`ZodE164`,(e,t)=>{zL.init(e,t),PB.init(e,t)}),$B=Z(`ZodJWT`,(e,t)=>{VL.init(e,t),PB.init(e,t)}),eV=Z(`ZodNumber`,(e,t)=>{HL.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Hz(e,t,n,r),e.gt=(t,n)=>e.check(dz(t,n)),e.gte=(t,n)=>e.check(fz(t,n)),e.min=(t,n)=>e.check(fz(t,n)),e.lt=(t,n)=>e.check(lz(t,n)),e.lte=(t,n)=>e.check(uz(t,n)),e.max=(t,n)=>e.check(uz(t,n)),e.int=t=>e.check(rV(t)),e.safe=t=>e.check(rV(t)),e.positive=t=>e.check(dz(0,t)),e.nonnegative=t=>e.check(fz(0,t)),e.negative=t=>e.check(lz(0,t)),e.nonpositive=t=>e.check(uz(0,t)),e.multipleOf=(t,n)=>e.check(pz(t,n)),e.step=(t,n)=>e.check(pz(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function tV(e){return rz(eV,e)}var nV=Z(`ZodNumberFormat`,(e,t)=>{UL.init(e,t),eV.init(e,t)});function rV(e){return az(nV,e)}
50var iV=Z(`ZodBoolean`,(e,t)=>{WL.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Uz(e,t,n,r)});function aV(e){return oz(iV,e)}var oV=Z(`ZodUnknown`,(e,t)=>{GL.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function sV(){return sz(oV)}var cV=Z(`ZodNever`,(e,t)=>{KL.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Wz(e,t,n,r)});function lV(e){return cz(cV,e)}var uV=Z(`ZodArray`,(e,t)=>{JL.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Yz(e,t,n,r),e.element=t.element,e.min=(t,n)=>e.check(hz(t,n)),e.nonempty=t=>e.check(hz(1,t)),e.max=(t,n)=>e.check(mz(t,n)),e.length=(t,n)=>e.check(gz(t,n)),e.unwrap=()=>e.element});function dV(e,t){return kz(uV,e,t)}var fV=Z(`ZodObject`,(e,t)=>{$L.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Xz(e,t,n,r),Q(e,`shape`,()=>t.shape),e.keyof=()=>CV(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:sV()}),e.loose=()=>e.clone({...e._zod.def,catchall:sV()}),e.strict=()=>e.clone({...e._zod.def,catchall:lV()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>HF(e,t),e.safeExtend=t=>UF(e,t),e.merge=t=>WF(e,t),e.pick=t=>BF(e,t),e.omit=t=>VF(e,t),e.partial=(...t)=>GF(OV,e,t[0]),e.required=(...t)=>KF(RV,e,t[0])});function pV(e,t){return new fV({type:`object`,shape:e??{},...$(t)})}var mV=Z(`ZodUnion`,(e,t)=>{tR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Zz(e,t,n,r),e.options=t.options});function hV(e,t){return new mV({type:`union`,options:e,...$(t)})}var gV=Z(`ZodDiscriminatedUnion`,(e,t)=>{mV.init(e,t),nR.init(e,t)});function _V(e,t,n){return new gV({type:`union`,options:t,discriminator:e,...$(n)})}var vV=Z(`ZodIntersection`,(e,t)=>{rR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Qz(e,t,n,r)});function yV(e,t){return new vV({type:`intersection`,left:e,right:t})}var bV=Z(`ZodRecord`,(e,t)=>{oR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>$z(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function xV(e,t,n){return new bV({type:`record`,keyType:e,valueType:t,...$(n)})}var SV=Z(`ZodEnum`,(e,t)=>{sR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Gz(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new SV({...t,checks:[],...$(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new SV({...t,checks:[],...$(r),entries:i})}});function CV(e,t){return new SV({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...$(t)})}var wV=Z(`ZodLiteral`,(e,t)=>{cR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Kz(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if
50(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function TV(e,t){return new wV({type:`literal`,values:Array.isArray(e)?e:[e],...$(t)})}var EV=Z(`ZodTransform`,(e,t)=>{lR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Jz(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new gF(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(QF(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(QF(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function DV(e){return new EV({type:`transform`,transform:e})}var OV=Z(`ZodOptional`,(e,t)=>{dR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>sB(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function kV(e){return new OV({type:`optional`,innerType:e})}var AV=Z(`ZodExactOptional`,(e,t)=>{fR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>sB(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function jV(e){return new AV({type:`optional`,innerType:e})}var MV=Z(`ZodNullable`,(e,t)=>{pR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>eB(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function NV(e){return new MV({type:`nullable`,innerType:e})}var PV=Z(`ZodDefault`,(e,t)=>{mR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>nB(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function FV(e,t){return new PV({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():PF(t)}})}var IV=Z(`ZodPrefault`,(e,t)=>{gR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>rB(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function LV(e,t){return new IV({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():PF(t)}})}var RV=Z(`ZodNonOptional`,(e,t)=>{_R.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>tB(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function zV(e,t){return new RV({type:`nonoptional`,innerType:e,...$(t)})}var BV=Z(`ZodCatch`,(e,t)=>{yR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>iB(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function VV(e,t){return new BV({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var HV=Z(`ZodPipe`,(e,t)=>{bR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>aB(e,t,n,r),e.in=t.in,e.out=t.out});function UV(e,t){return new HV({type:`pipe`,in:e,out:t})}var WV=Z(`ZodReadonly`,(e,t)=>{SR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>oB(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function GV(e){return new WV({type:`readonly`,innerType:e})}var KV=Z(`ZodCustom`,(e,t)=>{wR.init(e,t),AB.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qz(e,t,n,r)});function qV(e,t={}){return Az(KV,e,t)}function JV(e){return jz(e)}function YV(e){return iz(eV,e)}var XV=()=>O(()=>import(`./roles-DD4RkWDP.js`),__vite__mapDeps([209,1,4,5,203,6,7,8,9,70,126,13,14,15,165,23,61,183,69,103,16,80,128,197,200,168,162,81,73,12,186,210]));pV({name:NB().min(1),title:NB().min(1),description:NB()});var ZV=M(`/admin/roles`)({component:N(XV,`component`)}),QV=()=>O(()=>import(`./posts-uuWiNRqc.js`),__vite__mapDeps([211,1,4,5,208,6,7,8,9,11,70,13,15,14,18,165,23,61,183,69,103,16,80,128,158,79,152,64,104,197,200,168,162,81,73,12,185,72,186,187,204]));pV({slug:NB().min(1),title:NB().min(1),description:NB(),content:NB(),categories:NB(),authorName:NB(),status:NB()});var $V=M(`/admin/posts`)({component:N(QV,`component`)}),eH=M(`/admin/permissions`)({component:N(()=>O(()=>import(`./permissions-B31Rh2Hr.js`),__vite__mapDeps([212,1,4,5,69,70,7,8,13,23,61,183,103,15,16,80,128,197,200,186,81,210])),`component`)}),tH=M(`/admin/payments`)({component:N(()=>O(()=>import(`./payments-BJQRlfs6.js`),__vite__mapDeps([213,1,4,5,208,6,7,8,9,11,70,13,15,14,18,69,165,23,61,183,103,16,80,128,197,185,72,186,81,187,204])),`component`)}),nH=()=>O(()=>import(`./invite-codes-CfTS-dEQ.js`),__vite__mapDeps([214,1,4,5,69,70,7,8,13,165,9,23,61,183,103,15,16,80,128,199,200,186,81,187,204]));pV({count:YV().min(1),maxUses:YV().min(1),trialDays:YV().min(1),note:NB(),expiresAt:NB()});var rH=M(`/admin/invite-codes`)({component:N(nH,`component`)}),iH=M(`/admin/credits`)({component:N(()=>O(()=>import(`./credits-Bj2j1Ht9.js`),__vite__mapDeps([215,1,23,183,4,5,69,70,7,8,13,103,15,16,80,128,186,187,204])),`component`)}),aH=()=>O(()=>import(`./categories-CUurm6tk.js`),__vite__mapDeps([216,1,4,5,165,9,23,61,183,69,70,7,8,13,103,15,16,80,128,197,200,168,162,81,73,12,185,72,186,204]));pV({slug:NB().min(1),title:NB().min(1),description:NB()});var oH=M(`/admin/categories`)({component:N(aH,`component`)}),sH={},cH=A.createContext(sH);function lH(e){let t=A.useContext(cH);return A.useMemo(function(){return typeof e==`function`?e(t):{...t,...e}},[t,e])}function uH(e){let t;return t=e.disableParentContext?typeof e.components==`function`?e.components(sH):e.components||sH:lH(e.components),A.createElement(cH.Provider,{value:t},e.children)}var dH=t({default:()=>mH,meta:()=>fH}
50),fH={title:`Privacy Policy`,description:`How we collect, use, and protect your personal information.`,updated_at:`2026-08-20`};function pH(e){let t={a:`a`,h2:`h2`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...lH(),...e.components};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(t.h2,{children:`Introduction`}),`
51`,(0,j.jsx)(t.p,{children:`We respect your privacy and are committed to protecting your personal data. This Privacy Policy explains how we collect, use, and safeguard your information when you use our service.`}),`
52`,(0,j.jsx)(t.h2,{children:`Exam responses, writing and voice recordings`}),`
53`,(0,j.jsx)(t.p,{children:`HSKWin exists to mark work you produce, so some of what we store is the work itself.`}),`
54`,(0,j.jsxs)(t.ol,{children:[`
55`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Mock test answers`}),` — Your answers and scores are stored against your account, or against a browser cookie if you are not signed in. Anonymous attempts are transferred to your account if you later sign up from the same browser.`]}),`
56`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Writing submissions`}),` — Text you submit for AI marking is sent to our AI provider for processing and stored with the resulting mark so you can review it later.`]}),`
57`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Voice recordings`}),` — Spoken answers are recorded in your browser. The recording is sent to our speech-recognition provider to be transcribed and is then discarded: we keep the transcript and the timings measured from it (how long you spoke, where you paused), and the mark is based on those. The audio is kept only in the rare case that it cannot be transcribed at that moment, in our object storage until it has been, and it is deleted straight afterwards. We do not use your recordings to train any model, and we do not share them with anyone other than the processors named above.`]}),`
58`]}),`
59`,(0,j.jsx)(t.p,{children:`You can request deletion of your answers, submissions and transcripts at any time by contacting us; deleting your account removes all of them.`}),`
60`,(0,j.jsx)(t.h2,{children:`AI processing`}),`
61`,(0,j.jsx)(t.p,{children:`Writing marking and speaking scoring are performed by third-party AI providers acting as processors on our instructions. Only the submission itself and the task prompt are sent — never your name, email or payment details. Marks are estimates produced by software and are not an official HSK result or a prediction guaranteed by any examining body.`}),`
62`,(0,j.jsx)(t.h2,{children:`Information We Collect`}),`
63`,(0,j.jsx)(t.p,{children:`We collect the following types of information to provide and improve our service:`}),`
64`,(0,j.jsxs)(t.ol,{children:[`
65`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Account Information`}),` — Your name, email address, and other details you provide when creating an account.`]}),`
66`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Usage Data`}),` — Information about how you interact with the service, including features accessed, frequency of use, and interaction patterns.`]}),`
67`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Device Information`}),` — Device type, operating system, and browser type, used to optimize compatibility and performance.`]}),`
68`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Cookies`}),` — Small data files stored on your device to remember preferences and improve your experience.`]}),`
69`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Payment Information`}),` — Billing details handled by trusted third-party payment processors. We do not store full card numbers on our servers.`]}),`
70`]}),`
71`,(0,j.jsx)(t.h2,{children:`How We Use Your Information`}),`
72`,(0,j.jsx)(t.p,{children:`We use the data we collect to:`}),`
73`,(0,j.jsxs)(t.ul,{children:[`
74`,(0,j.jsx)(t.li,{children:`Provide, maintain, and improve the service.`}),`
75`,(0,j.jsx)(t.li,{children:`Process transactions and send related confirmations.`}),`
76`,(0,j.jsx)(t.li,{children:`Send technical notices, security alerts, and support messages.`}),`
77`,(0,j.jsx)(t.li,{children:`Respond to your questions, feedback, and support requests.`}),`
78`,(0,j.jsx)(t.li,{children:`Detect, prevent, and address fraud and abuse.`}),`
79`]}),`
80`,(0,j.jsx)(t.h2,{children:`Data Sharing`}),`
81`,(0,j.jsx)(t.p,{children:`We do not sell your personal information. We may share data only in these limited cases:`}),`
82`,(0,j.jsxs)(t.ul,{children:[`
83`,(0,j.jsx)(t.li,{children:`With service providers who help us operate the service, under confidentiality agreements.`}),`
84`,(0,j.jsx)(t.li,{children:`To comply with legal obligations or respond to lawful requests from public authorities.`}),`
85`,(0,j.jsx)(t.li,{children:`To protect our rights, property, or safety, or that of our users.`}),`
86`]}),`
87`,(0,j.jsx)(t.h2,{children:`Data Security`}),`
88`,(0,j.jsx)(t.p,{children:`We implement industry-standard security measures including encryption in transit, access controls, and regular reviews. No method of transmission over the Internet is 100% secure, but we work continuously to protect your information.`}),`
89`,(0,j.jsx)(t.h2,{children:`Your Rights`}),`
90`,(0,j.jsx)(t.p,{children:`You have the right to access, update, export, or delete your personal information. You can do this through your account settings or by contacting us at the email address below.`}),`
91`,(0,j.jsx)(t.h2,{children:`Who we are and how to reach us`}),`
92`,(0,j.jsx)(t.p,{children:`HSKWin ("we", "us") operates the exam-preparation service at hskwin.com. We are the data controller for the information described here.`}),`
93`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`Email:`}),` `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}
93),` — for any privacy question, data export or deletion request. We reply within 2 business days and complete requests within 30 days.`]}),`
94`,(0,j.jsx)(t.h2,{children:`Who processes your data`}),`
95`,(0,j.jsx)(t.p,{children:`We do not sell your personal information and we never have. These are the only categories of third party that receive any of it, and each acts as a processor on our instructions:`}),`
96`,(0,j.jsxs)(t.table,{children:[(0,j.jsx)(t.thead,{children:(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.th,{children:`Purpose`}),(0,j.jsx)(t.th,{children:`What they receive`})]})}),(0,j.jsxs)(t.tbody,{children:[(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.td,{children:`Hosting and database`}),(0,j.jsx)(t.td,{children:`All service data, at rest and in transit`})]}),(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.td,{children:`Object storage`}),(0,j.jsx)(t.td,{children:`Uploaded files; a recording awaiting transcription`})]}),(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.td,{children:`AI writing and speech marking`}),(0,j.jsx)(t.td,{children:`The submission text or audio, and the task prompt`})]}),(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.td,{children:`Payment processing`}),(0,j.jsx)(t.td,{children:`Your email and billing details — never held by us`})]}),(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.td,{children:`Transactional email`}),(0,j.jsx)(t.td,{children:`Your email address and the message content`})]}),(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.td,{children:`Product analytics`}),(0,j.jsx)(t.td,{children:`Pseudonymous usage events`})]})]})]}),`
97`,(0,j.jsx)(t.p,{children:`Nothing sent to the AI providers includes your name, email address or payment details, and none of it is used to train any model.`}),`
98`,(0,j.jsx)(t.h2,{children:`How long we keep it`}),`
99`,(0,j.jsxs)(t.ul,{children:[`
100`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Account data`}),` — for as long as your account exists, then deleted within 30 days of closure.`]}),`
101`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Exam attempts, marks, writing and the transcripts of spoken answers`}),` — until you delete them or close your account. The audio itself is not kept.`]}),`
102`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Anonymous (guest) attempts`}),` — 180 days from the last activity, then deleted, because they are tied only to a cookie that expires on the same schedule.`]}),`
103`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Order and invoice records`}),` — up to 7 years where tax or accounting law requires it, even after account closure. These 
103contain the transaction, not your exam work.`]}),`
104`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Server logs`}),` — 30 days.`]}),`
105`]}),`
106`,(0,j.jsx)(t.h2,{children:`Legal bases (UK/EU)`}),`
107`,(0,j.jsxs)(t.p,{children:[`We rely on: `,(0,j.jsx)(t.strong,{children:`contract`}),` for anything needed to run your account and deliver what you paid for; `,(0,j.jsx)(t.strong,{children:`legitimate interests`}),` for security, fraud prevention and product analytics; `,(0,j.jsx)(t.strong,{children:`legal obligation`}),` for tax and accounting records; and `,(0,j.jsx)(t.strong,{children:`consent`}),` for optional analytics cookies, which you can withdraw at any time.`]}),`
108`,(0,j.jsx)(t.h2,{children:`International transfers`}),`
109`,(0,j.jsx)(t.p,{children:`Our infrastructure runs on a global edge network, so your data may be processed outside your own country, including in the United States. Where required, transfers are covered by Standard Contractual Clauses or an equivalent safeguard in our contracts with each processor.`}),`
110`,(0,j.jsx)(t.h2,{children:`Children`}),`
111`,(0,j.jsx)(t.p,{children:`HSKWin is not directed at children under 13, and we do not knowingly collect their data. If you believe a child has given us personal information, email us and we will delete it.`}),`
112`,(0,j.jsx)(t.h2,{children:`Cookies`}),`
113`,(0,j.jsx)(t.p,{children:`We use strictly necessary cookies to keep you signed in and to hold an anonymous exam attempt before you have an account. Optional analytics cookies are used only with your consent. You can clear cookies in your browser at any time; doing so signs you out and detaches any guest attempt that was not yet claimed by an account.`}),`
114`,(0,j.jsx)(t.h2,{children:`Changes to This Policy`}),`
115`,(0,j.jsx)(t.p,{children:`We may update this Privacy Policy from time to time. We will notify you of any material changes by updating the date at the top of this page and, where appropriate, sending a notice through the service.`}),`
116`,(0,j.jsx)(t.h2,{children:`Contact Us`}),`
117`,(0,j.jsxs)(t.p,{children:[`If you have questions about this Privacy Policy, or want to access, export or delete your data, email us at `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`. We reply within 2 business days.`]}),`
118`,(0,j.jsx)(t.p,{children:`If you are in the UK or EU and are not satisfied with our response, you have the right to complain to your local data-protection authority.`})]})}function mH(e={}){let{wrapper:t}={...lH(),...e.components};return t?(0,j.jsx)(t,{...e,children:(0,j.jsx)(pH,{...e})}):pH(e)}var hH=t({default:()=>vH,meta:()=>gH}),gH={title:`隐私政策`,description:`我们如何收集、使用和保护您的个人信息。`,updated_at:`2026-08-20`};function _H(e){let t={a:`a`,h2:`h2`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...lH(),...e.components};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(t.h2,{children:`简介`}),`
119`,(0,j.jsx)(t.p,{children:`我们尊重您的隐私,并致力于保护您的个人数据。本《隐私政策》说明了在您使用我们的服务时,我们如何收集、使用和保护您的信息。`}),`
120`,(0,j.jsx)(t.h2,{children:`考试作答、写作与语音录音`}),`
121`,(0,j.jsx)(t.p,{children:`HSKWin 的作用是批改你写出、说出的内容,因此我们存储的部分数据就是这些内容本身。`}),`
122`,(0,j.jsxs)(t.ol,{children:[`
123`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`模拟考作答`}),` — 你的答案与成绩会与账号关联存储;未登录时则与浏览器 Cookie 关联。若你之后在同一浏览器注册账号,匿名作答会自动转移到你的账号下。`]}),`
124`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`写作提交`}),` — 你提交批改的文本会发送给 AI 服务商处理,并与批改结果一同存储,便于你日后回看。`]}),`
125`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`语音录音`}),` — 口语作答在浏览器中录音。录音会发送给语音识别服务商转写,随后即被丢弃:我们只保存转写文本以及从中测得的时间信息(说了多久、在哪里停顿),评分也以此为依据。只有在当时无法转写的少数情况下,录音才会暂存在我们的对象存储中,转写完成后立即删除。我们不会用你的录音训练任何模型,也不会分享给上述处理方之外的任何人。`]}),`
126`]}),`
127`,(0,j.jsx)(t.p,{children:`你可以随时联系我们要求删除作答、提交内容与转写文本;注销账号将一并删除全部内容。`}),`
128`,(0,j.jsx)(t.h2,{children:`AI 处理`}),`
129`,(0,j.jsx)(t.p,{children:`写作批改与口语评分由第三方 AI 服务商按我们的指令作为数据处理者执行。发送的内容仅包括提交内容本身与题目要求,绝不包含你的姓名、邮箱或支付信息。评分为软件生成的估计值,不是官方 HSK 成绩,也不构成任何考试机构的保证。`}),`
130`,(0,j.jsx)(t.h2,{children:`我们收集的信息`}),`
131`,(0,j.jsx)(t.p,{children:`为了提供和改进服务,我们会收集以下类型的信息:`}),`
132`,(0,j.jsxs)(t.ol,{children:[`
133`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`账户信息`}),` —— 您在创建账户时提供的姓名、电子邮箱及其他资料。`]}),`
134`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`使用数据`}),` —— 您与服务交互的信息,包括使用的功能、使用频率和交互模式。`]}),`
135`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`设备信息`}),` —— 设备类型、操作系统、浏览器类型,用于优化兼容性与性能。`]}),`
136`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Cookie`}),` —— 存储在您设备上的小型数据文件,用于记住偏好并改善体验。`]}),`
137`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`支付信息`}),` —— 由可信的第三方支付处理方负责处理。我们不会在服务器上存储完整的银行卡号。`]}),`
138`]}),`
139`,(0,j.jsx)(t.h2,{children:`我们如何使用这些信息`}),`
140`,(0,j.jsx)(t.p,{children:`我们使用收集到的数据用于:`}),`
141`,(0,j.jsxs)(t.ul,{children:[`
142`,(0,j.jsx)(t.li,{children:`提供、维护并改进服务。`}),`
143`,(0,j.jsx)(t.li,{children:`处理交易并发送相关确认。`}),`
144`,(0,j.jsx)(t.li,{children:`发送技术通知、安全提醒和支持信息。`}),`
145`,(0,j.jsx)(t.li,{children:`回复您的问题、反馈和技术支持请求。`}),`
146`,(0,j.jsx)(t.li,{children:`检测、预防和处理欺诈与滥用行为。`}),`
147`]}),`
148`,(0,j.jsx)(t.h2,{children:`信息共享`}),`
149`,(0,j.jsx)(t.p,{children:`我们不会出售您的个人信息。仅在以下有限情况下,我们才会共享数据:`}),`
150`,(0,j.jsxs)(t.ul,{children:[`
151`,(0,j.jsx)(t.li,{children:`与协助我们运营服务的供应商共享,并签署保密协议。`}),`
152`,(0,j.jsx)(t.li,{children:`为遵守法律义务或响应公共
152部门的合法请求。`}),`
153`,(0,j.jsx)(t.li,{children:`为保护我们或用户的权利、财产和安全。`}),`
154`]}),`
155`,(0,j.jsx)(t.h2,{children:`数据安全`}),`
156`,(0,j.jsx)(t.p,{children:`我们采用业界标准的安全措施,包括传输加密、访问控制以及定期审查。互联网传输无法做到 100% 安全,但我们会持续努力保护您的信息。`}),`
157`,(0,j.jsx)(t.h2,{children:`您的权利`}),`
158`,(0,j.jsx)(t.p,{children:`您有权访问、更新、导出或删除您的个人信息。您可以通过账户设置进行操作,或通过本页底部提供的方式与我们联系。`}),`
159`,(0,j.jsx)(t.h2,{children:`我们是谁,以及如何联系我们`}),`
160`,(0,j.jsx)(t.p,{children:`HSKWin(下称「我们」)运营 hskwin.com 上的备考服务。对于本页所述的信息,我们是数据控制者。`}),`
161`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`邮箱:`}),` `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),` —— 任何隐私问题、数据导出或删除请求都可以发到这里。我们在 2 个工作日内回复,30 天内完成处理。`]}),`
162`,(0,j.jsx)(t.h2,{children:`谁会接触到你的数据`}),`
163`,(0,j.jsx)(t.p,{children:`我们不出售你的个人信息,从来没有过。以下是仅有的几类会接触到部分数据的第三方,每一方都作为受托处理者、按我们的指令行事:`}),`
164`,(0,j.jsxs)(t.table,{children:[(0,j.jsx)(t.thead,{children:(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.th,{children:`用途`}),(0,j.jsx)(t.th,{children:`接收内容`})]})}),(0,j.jsxs)(t.tbody,{children:[(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.td,{children:`主机与数据库`}),(0,j.jsx)(t.td,{children:`全部服务数据(存储中与传输中)`})]}),(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.td,{children:`对象存储`}),(0,j.jsx)(t.td,{children:`上传的文件;等待转写的录音`})]}),(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.td,{children:`AI 作文批改与语音评分`}),(0,j.jsx)(t.td,{children:`提交的文本或音频,以及题目提示词`})]}),(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.td,{children:`支付处理`}),(0,j.jsx)(t.td,{children:`你的邮箱与账单信息——我们从不持有`})]}),(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.td,{children:`事务性邮件`}),(0,j.jsx)(t.td,{children:`你的邮箱地址与邮件内容`})]}),(0,j.jsxs)(t.tr,{children:[(0,j.jsx)(t.td,{children:`产品分析`}),(0,j.jsx)(t.td,{children:`假名化的使用行为事件`})]})]})]}),`
165`,(0,j.jsx)(t.p,{children:`发送给 AI 服务商的内容不包含你的姓名、邮箱或支付信息,也不会被用于训练任何模型。`}),`
166`,(0,j.jsx)(t.h2,{children:`我们保存多久`}),`
167`,(0,j.jsxs)(t.ul,{children:[`
168`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`账号数据`}),` —— 账号存续期间保留,注销后 30 天内删除。`]}),`
169`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`考试记录、成绩、作文与口语转写文本`}),` —— 直到你自行删除或注销账号。录音本身不保存。`]}),`
170`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`匿名(访客)作答`}),` —— 自最后活动起 180 天后删除,因为它们只与一枚同期过期的 cookie 关联。`]}),`
171`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`订单与发票记录`}),` —— 在税务或会计法律要求的范围内最长保留 7 年,即使账号已注销。这些记录包含交易信息,不包含你的作答内容。`]}),`
172`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`服务器日志`}),` —— 30 天。`]}),`
173`]}),`
174`,(0,j.jsx)(t.h2,{children:`处理的法律依据(英国/欧盟)`}),`
175`,(0,j.jsxs)(t.p,{children:[`我们依据:`,(0,j.jsx)(t.strong,{children:`合同`}),`——运行你的账号、交付你已付费内容所必需的处理;`,(0,j.jsx)(t.strong,{children:`正当利益`}),`——安全、反欺诈与产品分析;`,(0,j.jsx)(t.strong,{children:`法律义务`}),`——税务与会计记录;`,(0,j.jsx)(t.strong,{children:`同意`}),`——可选的分析类 cookie,你可随时撤回。`]}),`
176`,(0,j.jsx)(t.h2,{children:`跨境传输`}),`
177`,(0,j.jsx)(t.p,{children:`我们的基础设施运行在全球边缘网络上,因此你的数据可能在你所在国家之外被处理,包括美国。在法律要求的情况下,我们与各受托处理者的合同以标准合同条款或同等保障措施覆盖此类传输。`}),`
178`,(0,j.jsx)(t.h2,{children:`儿童`}),`
179`,(0,j.jsx)(t.p,{children:`HSKWin 不面向 13 岁以下儿童,我们也不会有æ„
179æ”¶é›†å…¶æ•°æ®ã€‚如果你认为有儿童向我们提供了个人信息,请发邮件告知,我们会删除。`}),`
180`,(0,j.jsx)(t.h2,{children:`Cookie`}),`
181`,(0,j.jsx)(t.p,{children:`我们使用严格必要的 cookie 来保持登录状态,以及在你还没有账号时暂存一次匿名的考试作答。可选的分析类 cookie 仅在你同意后使用。你可以随时在浏览器中清除 cookie;这样做会让你退出登录,并使尚未被账号认领的访客作答无法找回。`}),`
182`,(0,j.jsx)(t.h2,{children:`政策变更`}),`
183`,(0,j.jsx)(t.p,{children:`我们可能会不时更新本《隐私政策》。如有重大变更,我们将更新页面顶部的日期,并在必要时通过服务通知您。`}),`
184`,(0,j.jsx)(t.h2,{children:`联系我们`}),`
185`,(0,j.jsxs)(t.p,{children:[`如果你对本《隐私政策》有任何疑问,或希望访问、导出、删除你的数据,请发邮件至 `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`。我们在 2 个工作日内回复。`]}),`
186`,(0,j.jsx)(t.p,{children:`如果你身处英国或欧盟,且对我们的答复不满意,你有权向当地数据保护机构投诉。`})]})}function vH(e={}){let{wrapper:t}={...lH(),...e.components};return t?(0,j.jsx)(t,{...e,children:(0,j.jsx)(_H,{...e})}):_H(e)}var yH=t({default:()=>SH,meta:()=>bH}),bH={title:`Refund Policy`,description:`Contact support within 7 days of a payment for a full refund, on any plan. How to cancel, how to get your money back, and how long it takes.`,updated_at:`2026-09-15`};function xH(e){let t={a:`a`,h2:`h2`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...lH(),...e.components};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(t.p,{children:`HSKWin is operated by the HSKWin team. This policy applies to every purchase made on hskwin.com, in every currency and through every payment method we accept.`}),`
187`,(0,j.jsxs)(t.p,{children:[`Short version: `,(0,j.jsxs)(t.strong,{children:[`contact `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),` within 7 days of a payment and we will refund it in full.`]}),` The rest of this page is the detail.`]}),`
188`,(0,j.jsx)(t.h2,{children:`The refund window`}),`
189`,(0,j.jsxs)(t.p,{children:[`If you contact support within `,(0,j.jsx)(t.strong,{children:`7 days of a payment`}),`, we refund `,(0,j.jsx)(t.strong,{children:`the full amount of that payment, for any reason, without asking you to justify it`}),`. You do not need to have a fault to report. "I changed my mind" and "I passed already" are both fine.`]}),`
190`,(0,j.jsx)(t.p,{children:`The rule is the same for every paid plan:`}),`
191`,(0,j.jsxs)(t.ul,{children:[`
192`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Monthly subscriptions`}),` — 7 days from each payment, including each renewal.`]}),`
193`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`One-time purchases`}),` — 7 days from the payment.`]}),`
194`]}),`
195`,(0,j.jsx)(t.p,{children:`The Free plan costs nothing, so there is nothing to refund. It lets you read every paper at every level, with answers and explanations, and use the free tools.`}),`
196`,(0,j.jsx)(t.h2,{children:`How to request a refund`}),`
197`,(0,j.jsxs)(t.p,{children:[`Email `,(0,j.jsx)(t.strong,{children:(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`})}),` from the address on your account, or use the support form in your account settings. Include the email address you signed up with; you do not need an order number, though it helps if you have one.`]}),`
198`,(0,j.jsxs)(t.ul,{children:[`
199`,(0,j.jsxs)(t.li,{children:[`We reply within `,(0,j.jsx)(t.strong,{children:`2 business days`}),`.`]}),`
200`,(0,j.jsxs)(t.li,{children:[`Approved refunds are issued within `,(0,j.jsx)(t.strong,{children:`3 business days`}),` of approval.`]}),`
201`,(0,j.jsxs)(t.li,{children:[`The money goes back to the `,(0,j.jsx)(t.strong,{children:`original payment method`}),`. We cannot refund to a different card, account or wallet.`]}),`
202`,(0,j.jsxs)(t.li,{children:[`Your bank or PayPal then takes its own time to post it — usually `,(0,j.jsx)(t.strong,{children:`5 to 10 business days`}),`, occasionally up to one billing cycle. That part is out of our hands.`]}),`
203`]}),`
204`,(0,j.jsx)(t.p,{children:`A refund ends the access that payment bought. For a subscription, you do not have to cancel first: requesting a refund also cancels it unless you tell us otherwise.`}),`
205`,(0,j.jsx)(t.h2,{children:`Cancelling without a refund`}),`
206`,(0,j.jsxs)(t.p,{children:[`You can cancel a subscription at any time, from `,(0,j.jsx)(t.strong,{children:`Settings → Billing`}),` in your account, or by emailing us.`]}),`
207`,(0,j.jsxs)(t.ul,{children:[`
208`,(0,j.jsx)(t.li,{children:`Cancelling stops all future charges immediately.`}),`
209`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`You keep full access until the end of the peri
209od you already paid for.`}),` We do not cut you off early, and we do not pro-rate the unused part of a period outside the refund window.`]}),`
210`,(0,j.jsx)(t.li,{children:`Nothing is deleted when you cancel. Your attempts, scores, marked writing and speaking stay in your account, and you drop back to the Free plan.`}),`
211`]}),`
212`,(0,j.jsx)(t.p,{children:`A one-time purchase never renews, so there is nothing to cancel; a fixed-period one ends at the end of its period, and Lifetime does not end.`}),`
213`,(0,j.jsx)(t.h2,{children:`Outside the window`}),`
214`,(0,j.jsx)(t.p,{children:`After 7 days a payment is not refunded — but you can cancel a subscription at any time and will not be charged again. If something went genuinely wrong on our side — you were charged twice, charged after cancelling, or could not use what you paid for because of a fault in our service — the window does not apply. Write to us and we will fix it.`}),`
215`,(0,j.jsx)(t.h2,{children:`Prices and currency`}),`
216`,(0,j.jsxs)(t.p,{children:[`Current prices are shown on the `,(0,j.jsx)(t.a,{href:`/pricing`,children:`Pricing`}),` page and at checkout, and are charged in `,(0,j.jsx)(t.strong,{children:`US dollars (USD)`}),`. Your card issuer or PayPal may apply its own currency conversion and fees, which we do not receive and cannot refund.`]}),`
217`,(0,j.jsx)(t.p,{children:`Refunds are made at the amount you were actually charged.`}),`
218`,(0,j.jsx)(t.h2,{children:`Taxes`}),`
219`,(0,j.jsx)(t.p,{children:`Where we are required to collect VAT, GST or a similar tax, it is shown at checkout. Refunds include any tax we collected on the original charge.`}),`
220`,(0,j.jsx)(t.h2,{children:`Before you open a dispute`}),`
221`,(0,j.jsxs)(t.p,{children:[`If you are unhappy, please email `,(0,j.jsx)(t.strong,{children:(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`})}),` first. We have never refused a refund inside the stated window, and a chargeback costs us a fee and locks your account while it is investigated — for something we would have handled the same day. If you have already opened a dispute, tell us and we will work with your provider to resolve it.`]}),`
222`,(0,j.jsx)(t.h2,{children:`Contact`}),`
223`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`Email:`}),` `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`
224`,(0,j.jsx)(t.strong,{children:`Response time:`}),` within 2 business days
225`,(0,j.jsx)(t.strong,{children:`In-app:`}),` Settings → Support`]}),`
226`,(0,j.jsx)(t.p,{children:`This policy does not limit any statutory right you have under the consumer-protection law of your own country, including the EU and UK right to withdraw from a distance contract within 14 days.`})]})}function SH(e={}){let{wrapper:t}={...lH(),...e.components};return t?(0,j.jsx)(t,{...e,children:(0,j.jsx)(xH,{...e})}):xH(e)}var CH=t({default:()=>EH,meta:()=>wH}),wH={title:`退款政策`,description:`任何套餐,付款后 7 天内联系客服即可全额退款。如何取消、如何退款、多久到账。`,updated_at:`2026-09-15`};function TH(e){let t={a:`a`,h2:`h2`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...lH(),...e.components};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(t.p,{children:`HSKWin 由 HSKWin 团队运营。本政策适用于在 hskwin.com 上完成的每一笔购买,涵盖所有货币与所有支付方式。`}),`
227`,(0,j.jsxs)(t.p,{children:[`一句话:`,(0,j.jsxs)(t.strong,{children:[`付款后 7 天内发邮件到 `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`,我们全额退款。`]}),` 下面是细则。`]}),`
228`,(0,j.jsx)(t.h2,{children:`退款期限`}),`
229`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`付款后 7 天内`}),`联系客服,我们`,(0,j.jsx)(t.strong,{children:`全额退还该笔付款,不问理由,也不要求你举证`}),`。你不需要「发现问题」才能退。「我改主意了」和「我已经考过了」都算正当理由。`]}),`
230`,(0,j.jsx)(t.p,{children:`所有付费套餐规则相同:`}),`
231`,(0,j.jsxs)(t.ul,{children:[`
232`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`月付订阅`}),`:每一笔付款(包括每次续费)后 7 天内。`]}),`
233`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`一次性购买`}),`:付款后 7 天内。`]}),`
234`]}),`
235`,(0,j.jsx)(t.p,{children:`免费版本身不收费,因此不存在退款问题。免费版可以阅读所有级别的所有试卷(附答案与题解),并使用免费工具。`}),`
236`,(0,j.jsx)(t.h2,{children:`如何申请退款`}),`
237`,(0,j.jsxs)(t.p,{children:[`用你账号的注册邮箱发信到 `,(0,j.jsx)(t.strong,{children:(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`})}),`,或在账号设置里使用支持表单。请注明注册邮箱;订单号不是必需的,有的话更快。`]}),`
238`,(0,j.jsxs)(t.ul,{children:[`
239`,(0,j.jsxs)(t.li,{children:[`我们在 `,(0,j.jsx)(t.strong,{children:`2 个工作日`}),`内回复。`]}),`
240`,(0,j.jsxs)(t.li,{children:[`审核通过后 `,(0,j.jsx)(t.strong,{children:`3 个工作日`}),`内发起退款。`]}),`
241`,(0,j.jsxs)(t.li,{children:[`退款原路返回`,(0,j.jsx)(t.strong,{children:`原支付方式`}),`。我们无法退到另一张卡、另一个账户或另一个钱包。`]}),`
242`,(0,j.jsxs)(t.li,{children:[`之后到账时间取决于你的银行或 PayPal,通常为 `,(0,j.jsx)(t.strong,{children:`5 到 10 个工作日`}
242),`,个别情况可能长至一个账单周期。这一段不在我们控制范围内。`]}),`
243`]}),`
244`,(0,j.jsx)(t.p,{children:`退款后,该笔付款对应的使用权随之结束。订阅不需要先取消:除非你另有说明,申请退款即视为同时取消订阅。`}),`
245`,(0,j.jsx)(t.h2,{children:`只取消、不退款`}),`
246`,(0,j.jsxs)(t.p,{children:[`你可以随时取消订阅:在账号的 `,(0,j.jsx)(t.strong,{children:`设置 → 账单`}),` 中操作,或发邮件给我们。`]}),`
247`,(0,j.jsxs)(t.ul,{children:[`
248`,(0,j.jsx)(t.li,{children:`取消后立即停止一切后续扣款。`}),`
249`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`你已付费的当前周期内,功能完整保留到期末。`}),` 我们不会提前断掉你的访问权;退款期限之外,未使用的部分不按比例折算。`]}),`
250`,(0,j.jsx)(t.li,{children:`取消不会删除任何数据。你的作答记录、成绩、已批改的作文和口语都留在账号里,套餐降回免费版。`}),`
251`]}),`
252`,(0,j.jsx)(t.p,{children:`一次性购买不会续费,无需取消;固定期限的到期自动结束,终身不会到期。`}),`
253`,(0,j.jsx)(t.h2,{children:`超出期限之后`}),`
254`,(0,j.jsx)(t.p,{children:`超过 7 天的付款不再退款,但你可以随时取消订阅,之后不会再扣费。如果确实是我们这边出了问题——重复扣款、取消后仍被扣款、或因我们的服务故障导致你无法使用已付费的功能——则不受期限限制。写信给我们,我们会处理。`}),`
255`,(0,j.jsx)(t.h2,{children:`价格与货币`}),`
256`,(0,j.jsxs)(t.p,{children:[`当前价格以`,(0,j.jsx)(t.a,{href:`/pricing`,children:`价格`}),`页和结账页为准,以**美元(USD)**结算。你的发卡行或 PayPal 可能另行收取货币转换费用,这部分我们收不到,也无法退还。`]}),`
257`,(0,j.jsx)(t.p,{children:`退款金额以你实际支付的金额为准。`}),`
258`,(0,j.jsx)(t.h2,{children:`税费`}),`
259`,(0,j.jsx)(t.p,{children:`在我们依法需要代收增值税、消费税或类似税项的地区,税额会在结账页显示。退款包含原扣款中我们代收的税费。`}),`
260`,(0,j.jsx)(t.h2,{children:`在发起争议之前`}),`
261`,(0,j.jsxs)(t.p,{children:[`如果你不满意,请先发邮件到 `,(0,j.jsx)(t.strong,{children:(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`})}),`。在上述期限内我们从未拒绝过退款;而一笔拒付会让我们承担手续费,并在调查期间冻结你的账号——为了一件我们当天就能处理完的事。如果你已经发起了争议,请告诉我们,我们会配合你的支付机构解决。`]}),`
262`,(0,j.jsx)(t.h2,{children:`联系方式`}),`
263`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`邮箱:`}),` `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`
264`,(0,j.jsx)(t.strong,{children:`响应时间:`}),` 2 个工作日内
265`,(0,j.jsx)(t.strong,{children:`站内:`}),` 设置 → 支持`]}),`
266`,(0,j.jsx)(t.p,{children:`本政策不影响你所在国家消费者保护法赋予你的法定权利,包括欧盟与英国远程合同 14 天无理由撤回权。`})]})}function EH(e={}){let{wrapper:t}={...lH(),...e.components};return t?(0,j.jsx)(t,{...e,children:(0,j.jsx)(TH,{...e})}):TH(e)}var DH=t({default:()=>AH,meta:()=>OH}),OH={title:`Terms of Service`,description:`The terms for using HSKWin: plans, billing and cancellation, refunds, AI marking, your work, and acceptable use.`,updated_at:`2026-09-15`};function kH(e){let t={a:`a`,h2:`h2`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...lH(),...e.components};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`Contact:`}),` questions about these Terms, your account or billing? Email `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`. We reply within 2 business days.`]}),`
267`,(0,j.jsx)(t.h2,{children:`Acceptance of Terms`}),`
268`,(0,j.jsxs)(t.p,{children:[`HSKWin ("we", "us") operates the HSK exam-preparation service at hskwin.com. By using the service you agree to these Terms, our `,(0,j.jsx)(t.a,{href:`/privacy-policy`,children:`Privacy Policy`}),` and our `,(0,j.jsx)(t.a,{href:`/refund-policy`,children:`Refund Policy`}),`. If you do not agree, please do not use the service.`]}),`
269`,(0,j.jsx)(t.h2,{children:`The service`}),`
270`,(0,j.jsx)(t.p,{children:`HSKWin is online software for preparing for the HSK 3.0 exam. It includes mock papers for every level from HSK 1 to HSK 7–9, timed mock sittings, AI marking of writing, speaking practice, vocabulary lists, and free tools such as the level test, the score calculator and the exam reminder.`}),`
271`,(0,j.jsx)(t.p,{children:`We add, change and occasionally remove papers and features. We will give reasonable notice before removing anything that a paid plan is sold on.`}),`
272`,(0,j.jsx)(t.h2,{children:`Question bank and official material`}),`
273`,(0,j.jsx)(t.p,{children:`HSKWin's mock papers are prepared for practice and follow the published HSK 3.0 structure. They are not official past papers, and we do not reproduce official past papers, which are the copyright of Chinese Testing International (CTI). HSKWin is not affiliated with, endorsed by, or connected to CTI, Hanban, or the Center for Language Education and Cooperation. HSK® and HSKK® are trademarks of their respective owners.`}),`
274`,(0,j.jsx)(t.h2,{children:`Scores and marks are estimates`}),`
275`,(0,j.jsx)(t.p,{children:`Scores, pass probabilities, writing marks and speaking scores are produced by our software, including third-party AI models, against the published marking criteria. They are practice estimates, not official results. They can be wrong, and they do not predict or guarantee your result in a real sitting.`}),`
276`,(0,j.jsx)(t.h2,{children:`Accounts and guest use`}),`
277`,(0,j.jsx)(t.p,{children:`You can read every paper and use the free tools without an account. Timed sittings, marking and saved progress need one. A sitting you start before signing up is kept against a browser cookie and moves to your account if you sign up from the same browser.`}),`
278`,(0,j.jsx)(t.p,{children:`You must be at least 13 to use HSKWin. If you are under 18, a parent or guardian must agree to these Terms and make any purchase for you.`}),`
279`,(0,j.jsx)(t.p,{children:`An account is for one person. Keep your sign-in details safe, do not share the account, and tell us straight away if you think someone else has used it. You are responsible for activity under your account.`}),`
280`,(0,j.jsx)(t.h2,{children:`Plans`}),`
281`,(0,j.jsx)(t.p,{children:`HSKWin has a Free plan and paid plans. Free lets you read every paper at every level, with answers and explanations, and use the free tools. Paid plans add timed mock sittings, AI marking, scored reports and study tools.`}),`
282`,(0,j.jsxs)(t.p,{children:[`A paid plan is sold either as a `,(0,j.jsx)(t.strong,{children:`subscription`}),`, which renews automatically (for example every month) until you cancel, or as a `,(0,j.jsx)(t.strong,{children:`one-time purchase`}),`, which is paid once and does not renew. A one-time purchase gives access either for a fixed period shown at checkout or, for `,(0,j.jsx)(t.strong,{children:`Lifetime`}),`, for as long as HSKWin is offered. The `,(0,j.jsx)(t.a,{href:`/pricing`,children:`Pricing`}),` page and the checkout show, for each plan, what it includes, how many timed sittings it allows, whether it is a subscription or a one-time purchase, and its current price.`]}),`
283`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`How sittings are counted.`}),` Starting a timed sitting counts once, at any level. Coming back to a sitting you left open does not count again; sitting a paper again does. Unused sittings do not carry over into the next period.`]}),`
284`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`Unlimited marking.`}),` Where a plan includes "unlimited" marking, that means for your own study. We may limit automated, shared or clearly abusive use.`]}),`
285`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`Promotions.`}),` From time to time we open features for free or at a discount. A promotion is governed by the terms shown with it and ends on the date stated.`]}),`
286`,(0,j.jsx)(t.h2,{children:`Payment and billing`}),`
287`,(0,j.jsx)(t.p,{children:`HSKWin sells access to online software. There is no physical product and nothing is shipped.`}),`
288`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`Prices.`}),` Current prices are shown on the `,(0,j.jsx)(t.a,{href:`/pricing`,children:`Pricing`}),` page and at checkout before you confirm, and are charged in US dollars (USD). In some countries prices are reduced automatically to reflect local purchasing power; the amount you are charged is always the amount shown at checkout.`]}),`
289`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`Price changes.`}),` We may change our prices. A new price never applies to a period you have already paid for. For a subscription, it applies from your next renewal, and we email you before that renewal.`]}),`
290`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`Automatic renew
290al.`}),` A subscription renews automatically at the end of each period until you cancel, and the renewal is charged to your payment method on file. A one-time purchase is never renewed or charged again. We email you a receipt for every charge.`]}),`
291`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`Cancelling.`}),` You can cancel a subscription at any time from Settings → Billing, or by emailing `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`. Cancelling stops all future charges. You keep full access until the end of the period you have already paid for, and nothing in your account is deleted; you return to the Free plan. A one-time purchase needs no cancelling: a fixed-period one simply ends at the end of its period, and Lifetime does not end.`]}),`
292`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`Failed payments.`}),` If a renewal fails, we retry for a short period and email you. If it still fails, the subscription lapses and the account returns to the Free plan. Nothing is deleted.`]}),`
293`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`Taxes.`}),` Where we are required to collect VAT, GST or a similar tax, it is shown at checkout in addition to the listed price.`]}),`
294`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`Payment processors.`}),` Payments are handled by third-party payment processors. We never see or store your full card number.`]}),`
295`,(0,j.jsx)(t.h2,{children:`Refunds`}),`
296`,(0,j.jsxs)(t.p,{children:[`If you contact support within `,(0,j.jsx)(t.strong,{children:`7 days of a payment`}),`, we refund that payment in full, for any reason. This is the same for monthly subscriptions and one-time purchases, and it applies to every payment, including a subscription renewal. After 7 days a payment is not refunded, but you can cancel a subscription at any time so that you are not charged again. How to ask for a refund and how long it takes are in our `,(0,j.jsx)(t.a,{href:`/refund-policy`,children:`Refund Policy`}),`.`]}),`
297`,(0,j.jsx)(t.h2,{children:`Your work`}),`
298`,(0,j.jsxs)(t.p,{children:[`The answers, writing and spoken answers you submit remain yours. You allow us to store them — for a spoken answer, its transcript rather than the audio — send them to our AI and speech-recognition providers to be marked, and show them back to you with the result. We do not use them to train any model. The `,(0,j.jsx)(t.a,{href:`/privacy-policy`,children:`Privacy Policy`}),` explains what is sent where and how long it is kept.`]}),`
299`,(0,j.jsx)(t.h2,{children:`Acceptable use`}),`
300`,(0,j.jsx)(t.p,{children:`You agree not to:`}),`
301`,(0,j.jsxs)(t.ul,{children:[`
302`,(0,j.jsx)(t.li,{children:`Copy, scrape, download in bulk, republish or sell the papers, audio, explanations or marking from HSKWin.`}),`
303`,(0,j.jsx)(t.li,{children:`Access the service with bots or scripts, or get around a paywall, sitting limit or other restriction.`}),`
304`,(0,j.jsx)(t.li,{children:`Share, resell or transfer your account or plan.`}),`
305`,(0,j.jsx)(t.li,{children:`Attempt to gain unauthorized access to our systems or data, or interfere with the service's integrity or performance.`}),`
306`,(0,j.jsx)(t.li,{children:`Submit unlawful, infringing or harmful content, or use the service to send spam or malware.`}),`
307`,(0,j.jsx)(t.li,{children:`Break any applicable law.`}),`
308`]}),`
309`,(0,j.jsx)(t.h2,{children:`Intellectual Property`}),`
310`,(0,j.jsx)(t.p,{children:`The service, its papers, audio, explanations, software and design belong to us or our licensors and are protected by copyright and other intellectual property laws. Free access to the papers is for your own personal, non-commercial study.`}),`
311`,(0,j.jsx)(t.h2,{children:`Suspension and closing your account`}),`
312`,(0,j.jsx)(t.p,{children:`We may suspend or close an account that breaks these Terms, for example by scraping or sharing it. Where we can, we will tell you why first.`}),`
313`,(0,j.jsxs)(t.p,{children:[`You can stop using HSKWin at any time. To close your account and delete your data, email `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),` from the address on your account. Closing an account does not cancel a subscription by itself, so cancel in Settings → Billing first.`]}),`
314`,(0,j.jsx)(t.h2,{children:`Disclaimer and limitation of liability`}),`
315`,(0,j.jsx)(t.p,{children:`The service is provided "as is". We work to keep it accurate and available, but we do not promise that it is error-free or uninterrupted, or that using it will get you a particular score.`}),`
316`,(0,j.jsx)(t.p,{children:`To the maximum extent permitted by law, we are not liable for any indirect, incidental, special, consequential or punitive damages, and our total liability for any claim is limited to the amount you paid us in the 12 months before the claim. Nothing in these Terms limits any right you have under the consumer-protection law of your own country.`}),`
317`,(0,j.jsx)(t.h2,{children:`Changes to These Terms`}),`
318`,(0,j.jsx)(t.p,{children:`We may update these Terms. When we make a material change, we update the date at the top of this page and, where appropriate, notify you by email or in the service. If you do not agree with a change, you can cancel before it affects your next renewal.`}),`
319`,(0,j.jsx)(t.h2,{children:`Contact`}),`
320`,(0,j.jsxs)(t.ul,{children:[`
321`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Customer support:`}),` `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`})]}),`
322`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`Response time:`}),` within 2 business days`]}),`
323`]}),`
324`,(0,j.jsx)(t.p,{children:`Write to us about these Terms, your account, billing, cancellation or a refund.`})]})}function AH(e={}){let{wrapper:t}={...lH(),...e.components};return t?(0,j.jsx)(t,{...e,children:(0,j.jsx)(kH,{...e})}):kH(e)}var jH=t({default:()=>PH,meta:()=>MH}),MH={title:`服务条款`,description:`HSKWin 的使用条款:套餐、扣款与取消、退款、AI 批改、你提交的内容,以及可接受的使用方式。`,updated_at:`2026-09-15`};function NH(e){let t={a:`a`,h2:`h2`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,...lH(),...e.components};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`联系邮箱:`}),` `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`。关于本条款、账号或账单的任何问题都可以发邮件给我们,2 个工作日内回复。`]}),`
325`,(0,j.jsx)(t.h2,{children:`接受条款`}),`
326`,(0,j.jsxs)(t.p,{children:[`HSKWin("我们")运营 hskwin.com 上的 HSK 备考服务。使用本服务即表示你同意本条款、`,(0,j.jsx)(t.a,{href:`/privacy-policy`,children:`隐私政策`}),`和`,(0,j.jsx)(t.a,{href:`/refund-policy`,children:`退款政策`}),`。如不同意,请不要使用本服务。`]}),`
327`,(0,j.jsx)(t.h2,{children:`服务说明`}),`
328`,(0,j.jsx)(t.p,{children:`HSKWin 是备考 HSK 3.0 的在线软件,包括 HSK 1 级到 7–9 级的模拟卷、计时模考、AI 写作批改、口语练习、词汇表,以及水平测试、分数计算器、报名提醒等免费工具。`}),`
329`,(0,j.jsx)(t.p,{children:`我们会增加、调整,偶尔也会下线试卷或功能。凡是付费套餐所卖的核心功能,下线前我们会提前合理告知。`}),`
330`,(0,j.jsx)(t.h2,{children:`题库与官方材料`}),`
331`,(0,j.jsx)(t.p,{children:`HSKWin 的模拟卷供练习使用,按已公布的 HSK 3.0 考试结构编排。它们不是官方真题;我们不复制官方真题,真题版权归 Chinese Testing International(CTI)所有。HSKWin 与 CTI、汉办、中外语言交流合作中心均无隶属、认可或关联关系。HSK® 与 HSKK® 为其各自所有者的商标。`}),`
332`,(0,j.jsx)(t.h2,{children:`分数与批改结果为估计值`}),`
333`,(0,j.jsx)(t.p,{children:`分数、通过概率、写作批改与口语评分,由我们的软件(包括第三方 AI 模型)依据公开的评分标准生成。它们是练习用的估计值,不是官方成绩,可能有误,也不预测或保证你在真实考试中的结果。`}),`
334`,(0,j.jsx)(t.h2,{children:`账号与游客使用`}),`
335`,(0,j.jsx)(t.p,{children:`不注册也可以阅读所有试卷、使用免费工具。计时模考、批改和保存进度需要账号。注册前开始的模考会先记在浏览器 cookie 上,之后在同一浏览器注册,就会转入你的账号。`}),`
336`,(0,j.jsx)(t.p,{children:`使用 HSKWin 须年满 13 岁。未满 18 岁的,须由父母或监护人同意本条款并代为购买。`}),`
337`,(0,j.jsx)(t.p,{children:`一个账号只供一人使用。请妥善保管登录信息,不要与他人共用;如怀疑账号被他人使用,请立即告诉我们。账号下发生的活动由你负责。`}),`
338`,(0,j.jsx)(t.h2,{children:`套餐`}),`
339`,(0,j.jsx)(t.p,{children:`HSKWin 有免费版和付费套餐。免费版可以阅读所有级别的所有试卷(附答案与题解),并使用免费工具;付费套餐另外提供计时模考、AI 批改、成绩报告和学习工具。`}),`
340`,(0,j.jsxs)(t.p,{children:[`付费套餐有两种售卖方式:`,(0,j.jsx)(t.strong,{children:`订阅`}),`,按周期(例如每月)自动续费,直到你取消;`,(0,j.jsx)(t.strong,{children:`一次性购买`}),`,付一次,不续费:要么在结账页注明的固定期限内可用,要么是`,(0,j.jsx)(t.strong,{children:`终身`}),`,在 HSKWin 持续提供服务期间一直可用。每个套餐包含什么、可以考几次计时模考、是订阅还是一次性购买,以及当前价格,以`,(0,j.jsx)(t.a,{href:`/pricing`,children:`价格`}
340),`页和结账页显示为准。`]}),`
341`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`模考次数怎么算。`}),` 开始一场计时模考算 1 次,级别不限;中途离开后回来接着做不另算,重新考一遍算新的 1 次。未用完的次数不累积到下一个周期。`]}),`
342`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`不限次批改。`}),` 套餐中的"不限次"批改指供你本人学习使用。对自动化、多人共用或明显滥用的情况,我们可能加以限制。`]}),`
343`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`优惠活动。`}),` 我们不时会限时免费开放或打折提供部分功能。优惠活动以活动页面所示条件为准,到期即止。`]}),`
344`,(0,j.jsx)(t.h2,{children:`支付与计费`}),`
345`,(0,j.jsx)(t.p,{children:`HSKWin 出售的是在线软件的使用权。没有实体商品,不涉及任何配送。`}),`
346`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`价格。`}),` 当前价格以`,(0,j.jsx)(t.a,{href:`/pricing`,children:`价格`}),`页和你确认前的结账页为准,以美元(USD)结算。部分国家的价格会依当地购买力自动下调;你被扣的金额始终是结账页显示的金额。`]}),`
347`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`价格调整。`}),` 我们可能调整价格。新价格不会用于你已付费的周期;对订阅而言,新价格从下一次续费起生效,续费前我们会发邮件告诉你。`]}),`
348`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`自动续费。`}),` 订阅在每个周期结束时自动续费,直到你取消为止,续费从你绑定的支付方式扣取。一次性购买不会续费,也不会再次扣款。每笔扣款我们都会发送收据邮件。`]}),`
349`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`取消。`}),` 你可以随时在 设置 → 账单 中取消订阅,或发邮件至 `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`。取消后不再产生任何扣款;已付费的当前周期内功能完整保留到期末,账号内数据不会被删除,只是降回免费版。一次性购买无需取消:固定期限的到期自动结束,终身不会到期。`]}),`
350`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`扣款失败。`}),` 续费失败时我们会在短时间内重试并邮件通知你。若仍然失败,订阅失效,账号回到免费版。数据不会被删除。`]}),`
351`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`税费。`}),` 在我们依法需要代收增值税、消费税或类似税项的地区,税额会在结账页于标示价格之外单独列出。`]}),`
352`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`支付处理方。`}),` 付款由第三方支付机构处理。我们不会看到、也不会存储你的完整卡号。`]}),`
353`,(0,j.jsx)(t.h2,{children:`退款`}),`
354`,(0,j.jsxs)(t.p,{children:[(0,j.jsx)(t.strong,{children:`付款后 7 天内`}),`联系客服,我们全额退还该笔付款,不问理由。月付订阅和一次性购买规则相同,并适用于每一笔付款,包括订阅的续费。超过 7 天的付款不再退款,但你可以随时取消订阅,之后不会再扣费。如何申请、多久到账,见`,(0,j.jsx)(t.a,{href:`/refund-policy`,children:`退款政策`}),`。`]}),`
355`,(0,j.jsx)(t.h2,{children:`你提交的内容`}),`
356`,(0,j.jsxs)(t.p,{children:[`你提交的答案、作文和口语作答仍归你所有。你同意我们存储这些内容(口语作答存储的是转写文本,不是录音)、将其发送给我们的 AI 与语音识别服务商进行批改,并连同结果展示给你。我们不会用它们训练任何模型。发送给谁、保存多久,见`,(0,j.jsx)(t.a,{href:`/privacy-policy`,children:`隐私政策`}),`。`]}),`
357`,(0,j.jsx)(t.h2,{children:`可接受的使用`}),`
358`,(0,j.jsx)(t.p,{children:`你同意不会:`}),`
359`,(0,j.jsxs)(t.ul,{children:[`
360`,(0,j.jsx)(t.li,{children:`复制、抓取、批量下载、转载或出售 HSKWin 上的试卷、音频、题解或批改内容。`}),`
361`,(0,j.jsx)(t.li,{children:`用机器人或脚本访问本服务,或绕过付费墙、模考次数或其他限制。`}),`
362`,(0,j.jsx)(t.li,{children:`共用、转售或转让你的账号或套餐。`}),`
363`,(0,j.jsx)(t.li,{children:`试图未经授权访问我们的系统或数据,或干扰、破坏服务的完整性与性能。`}),`
364`,(0,j.jsx)(t.li,{children:`提交违法、侵权或有害的内容,或借本服务发送垃圾信息、恶意软件。`}),`
365`,(0,j.jsx)(t.li,{children:`违反任何适用的法律法规。`}),`
366`]}),`
367`,(0,j.jsx)(t.h2,{children:`知识产权`}),`
368`,(0,j.jsx)(t.p,{children:`本服务及其试卷、音频、题解、软件和设计归我们或我们的授权方所有,受著作权及其他知识产权法律保护。免费阅读试卷仅限你本人非商业性的学习使用。`}),`
369`,(0,j.jsx)(t.h2,{children:`暂停与关闭账号`}),`
370`,(0,j.jsx)(t.p,{children:`对违反本条款的账号(例如抓取内容或多人共用),我们可以暂停或关闭。在可行的情况下,我们会先告诉你原因。`}),`
371`,(0,j.jsxs)(t.p,{children:[`你可以随时停止使用 HSKWin。如需关闭账号并删除数据,请用账号绑定的邮箱发信至 `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`}),`。关闭账号本身不会取消订阅,请先在 设置 → 账单 中取消。`]}),`
372`,(0,j.jsx)(t.h2,{children:`免责声明与责任限制`}),`
373`,(0,j.jsx)(t.p,{children:`本服务按"现状"提供。我们会尽力保证内容准确、服务可用,但不承诺没有错误或中断,也不承诺使用本服务能让你考到某个分数。`}),`
374`,(0,j.jsx)(t.p,{children:`在法律允许的最大范围内,我们对任何间接、附带、特殊、衍生或惩罚性损害不承担责任;就任何索赔,我们的赔偿总额以你在索赔前 12 个月内向我们支付的金额为限。本条款不限制你依所在国家消费者保护法享有的任何权利。`}),`
375`,(0,j.jsx)(t.h2,{children:`条款变更`}),`
376`,(0,j.jsx)(t.p,{children:`我们可能更新本条款。如有重大变更,我们会更新页面顶部的日期,并在必要时通过邮件或站内通知你。如不同意变更,你可以在下次续费前取消订阅。`}),`
377`,(0,j.jsx)(t.h2,{children:`联系我们`}),`
378`,(0,j.jsxs)(t.ul,{children:[`
379`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`客服邮箱:`}),` `,(0,j.jsx)(t.a,{href:`mailto:[email protected]`,children:`[email protected]`})]}),`
380`,(0,j.jsxs)(t.li,{children:[(0,j.jsx)(t.strong,{children:`响应时间:`}),` 2 个工作日内`]}),`
381`]}),`
382`,(0,j.jsx)(t.p,{children:`关于本《服务条款》、账号、账单、取消订阅或退款的任何问题,都可以发邮件给我们。`})]})}function PH(e={}){let{wrapper:t}={...lH(),...e.components};return t?(0,j.jsx)(t,{...e,children:(0,j.jsx)(NH,{...e})}):NH(e)}var FH=Object.assign({"/src/content/pages/privacy-policy.en.mdx":dH,"/src/content/pages/privacy-policy.zh.mdx":hH,"/src/content/pages/refund-policy.en.mdx":yH,"/src/content/pages/refund-policy.zh.mdx":CH,"/src/content/pages/terms-of-service.en.mdx":DH,"/src/content/pages/terms-of-service.zh.mdx":jH});function IH(e,t){return FH[`/src/content/pages/${e}.${t}.mdx`]??FH[`/src/content/pages/${e}.en.mdx`]??null}function LH(e){return{loader:()=>{let t=s(),n=IH(e,t);if(!n)throw Ae();return{meta:n.meta,slug:e,locale:t}},head:({loaderData:t})=>{if(!t)return{};let{meta:n,locale:r}=t,i=o(`${k.app_url}/${e}`,{locale:r}).href;return{meta:[{title:n.title},{name:`description`,content:n.description}],links:[{rel:`canonical`,href:i}]}},component:RH}}function RH(){let{meta:e,slug:t,locale:n}=Nr({strict:!1}),r=IH(t,n).default;return(0,j.jsxs)(`article`,{children:[(0,j.jsxs)(`header`,{className:`border-border mb-6 border-b pb-5`,children:[(0,j.jsx)(`h1`,{className:`text-foreground text-3xl font-semibold tracking-tight md:text-4xl`,children:e.title}),(0,j.jsx)(`p`,{className:`text-muted-foreground mt-2 text-sm`,children:e.description}),(0,j.jsxs)(`p`,{className:`text-muted-foreground mt-2 text-xs`,children:[Dc(),`: `,e.updated_at]})]}
382),(0,j.jsx)(`div`,{className:`text-foreground/90 text-[15px] leading-7`,children:(0,j.jsx)(r,{})})]})}var zH=M(`/(pages)/terms-of-service`)(LH(`terms-of-service`)),BH=M(`/(pages)/refund-policy`)(LH(`refund-policy`)),VH=M(`/(pages)/privacy-policy`)(LH(`privacy-policy`)),HH=M(`/stories/$level/`)({loader:async({params:e})=>{let t=await GM({data:{level:e.level}});if(!t)throw Ae();return{...t,locale:s()}},head:({loaderData:e})=>{if(!e)return{};let t=e.locale,n=mM(e.level===7?`7-9`:String(e.level)),r=`/stories/hsk-${n.slug}`,{url:i,links:a}=XM(r,t),o=zv({label:n.label},{locale:t}),s=Pv({label:n.label},{locale:t});return{meta:[{title:o},{name:`description`,content:s}],links:a,scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`CollectionPage`,name:Wv({label:n.label},{locale:t}),description:s,url:i,inLanguage:t,mainEntity:{"@type":`ItemList`,numberOfItems:e.stories.length,itemListElement:e.stories.map((e,n)=>({"@type":`ListItem`,position:n+1,name:`${e.titleZh} — ${e.titleEn}`,url:ZM(`${r}/${e.slug}`,t)}))}})},{type:`application/ld+json`,children:JSON.stringify(QM([{name:Ay({},{locale:t}),path:`/stories`},{name:n.label,path:r}],t))}]}},component:N(()=>O(()=>import(`./_level-CsoHxijs.js`),__vite__mapDeps([217,1,4,5,17,8,9,2,3,6,7,10,11,12,13,14,15,16,18,19,20,21,22,23,24,25,26,27,28,29,30,143,51,52,108,109,110,218])),`component`)});function UH(e,t){let n=t.slice(0,2).toLowerCase();if(n===`zh`)return gN(e).map(e=>`${e.nameZh} ${e.questions} 题`).join(`、`);if(n===`vi`||n===`th`){let r=gN(e).map(e=>{let r=FN(e,t);return n===`vi`?`${e.questions} câu ${r.toLowerCase()}`:`${r} ${e.questions} ข้อ`});return new Intl.ListFormat(t,{style:`long`,type:`conjunction`}).format(r)}let r=gN(e).map(e=>`${e.questions} ${e.nameEn.toLowerCase()}`);return r.length>1?`${r.slice(0,-1).join(`, `)} and ${r.at(-1)}`:r[0]}function WH(e,t){let n=t.slice(0,2).toLowerCase(),r=e=>e.code===`listening`||e.code===`speaking`;if(n===`zh`)return gN(e).map(e=>`${e.nameZh}${r(e)?`约 `:` `}${e.minutes} 分钟`).join(`,`);if(n===`vi`||n===`th`){let i=gN(e).map(e=>{let i=FN(e,t);return n===`vi`?`${i.toLowerCase()} ${r(e)?`khoảng `:``}${e.minutes} phút`:`${i} ${r(e)?`ประมาณ `:``}${e.minutes} นาที`});return new Intl.ListFormat(t,{style:`long`,type:`conjunction`}).format(i)}let i=gN(e).map(e=>`${e.nameEn.toLowerCase()} ${r(e)?`about `:``}${e.minutes}`);return`${i.slice(0,-1).join(`, `)} and ${i.at(-1)} minutes`}function GH(e,t){let n=t.startsWith(`zh`),r=t.startsWith(`en`),i=e.label,a=Math.round(e.durationSec/60),o=_N(e),s=e.speakingSec?e.speakingSec/60:null;return!n&&!r?[{q:RS({L:i}),a:US({minutes:a,times:WH(e,t)})+(s?JS({speaking:s}):``)},{q:$S({L:i}),a:iC({count:o,counts:UH(e,t)})},{q:lC({L:i}),a:e.passScore===null?mC({total:e.totalScore}):yC({pass:e.passScore,total:e.totalScore})},{q:wC(),a:kC(),href:`/pricing`,linkLabel:$f()},{q:PC(),a:zC()},...s?[{q:WC({L:i}),a:YC({speaking:s}),href:`/hskk/${zP(e.level)}`,linkLabel:Zc()}]:e.level>=7?[{q:ew(),a:aw()}]:[],{q:uw(),a:hw()}]:n?[{q:`${i} 考试要多长时间?`,a:`约 ${a} 分钟,含填写个人信息的时间:${WH(e,t)}。${s?`口语考试另外单独进行,约 ${s} 分钟。`:``}`},{q:`${i} 一共有多少道题?`,a:`${o} 题:${UH(e,t)}。`},{q:`${i} 考多少分算通过?`,a:e.passScore===null?`没有合格线。满分 ${e.totalScore},成绩决定你落在七级、八级还是九级。`:`满分 ${e.totalScore},${e.passScore} 分合格,即总分的 60%。每个部分满分 100。`},{q:`可以免费使用吗?`,a:`每套卷都能免费预览:每一项(听力、阅读等)的第一题,含答案和解析,不用注册。按真实计时完整地做一遍、自动评分和批改,属于付费套餐。`,href:`/pricing`,linkLabel:`查看套餐`},{q:`同一套卷可以做两次吗?`,a:`可以。再做一次会开一场新的考试,占用套餐里的一次模考;回到之前没做完的那一场继续,不算新的一次。`},...s?[{q:`包括 ${i} 口语考试吗?`,a:`不包括。HSK 3.0 下,约 ${s} 分钟的口语考试和笔试一起报名、分开考,这里的卷子对应的是笔试。口语可以在口语练习里单独练、单独评分。`,href:`/hskk/${zP(e.level)}`,linkLabel:Zc()}]:e.level>
382=7?[{q:`包括口语部分吗?`,a:`包括。口语是 7–9 级这套卷的五个部分之一,在同一场考试里完成。你的回答会被转写成文字,再按评分标准批改,录音不会保存。`}]:[],{q:`这些是官方真题吗?`,a:`不是。汉考国际没有公开发布过 HSK 3.0 的真题,所以这些是按 3.0 大纲、依照官方样卷的结构编写的练习卷。`}]:[{q:`How long is the ${i} exam?`,a:`About ${a} minutes, including the time to fill in your details: ${WH(e,t)}.${s?` The speaking test is sat separately and takes about ${s} minutes more.`:``}`},{q:`How many questions are on ${i}?`,a:`${o} questions: ${UH(e,t)}.`},{q:`What score do I need to pass ${i}?`,a:e.passScore===null?`There is no pass mark. The paper is out of ${e.totalScore}, and your result places you at level 7, 8 or 9.`:`${e.passScore} out of ${e.totalScore}, which is 60% of the total. Each section is marked out of 100.`},{q:`Is it free to use?`,a:`Previewing any paper — the first question of each section, with the answer and explanation — is free and needs no account. Sitting the whole paper on the clock, scored and marked, is part of a paid plan.`,href:`/pricing`,linkLabel:`See plans`},{q:`Can I sit the same paper twice?`,a:`Yes. Sitting a paper again starts a fresh attempt and uses one sitting from your plan. Going back to a sitting you left unfinished does not.`},...s?[{q:`Does it include the ${i} speaking test?`,a:`No. Under HSK 3.0 the ${s}-minute speaking test is registered with the written exam but sat separately, so the papers here cover the written exam. Speaking can be practised and scored on its own.`,href:`/hskk/${zP(e.level)}`,linkLabel:Zc()}]:e.level>=7?[{q:`Does it include the speaking section?`,a:`Yes. Speaking is one of the five sections of the 7–9 paper and is sat in the same session. Your answers are transcribed and marked against a rubric; the recording is not kept.`}]:[],{q:`Are these official past papers?`,a:`No. CTI has not released any HSK 3.0 past papers, so these are practice papers written to the 3.0 syllabus and to the structure of CTI’s official sample paper.`}]}var KH=()=>O(()=>import(`./_level--8P_7VOG.js`),__vite__mapDeps([219,1,4,5,17,8,9,16,15,39,220,10,6,7,11,12,13,14,127,138,23,61,38,36,40,41,42,43,44,45,26,33,139,21,2,3,18,19,20,22,24,25,27,28,29,30,154,37,105,143,51,52,53,54,116,55,117,57,58,118]));function qH(e){return mM(e.replace(/^hsk-/,``))}var JH=M(`/mock-test/$level/`)({loader:async({params:e})=>{let t=qH(e.level);if(!t)throw Ae();return{level:t,papers:await Vj({data:{kind:`written`,level:t.level}}),locale:s()}},head:({loaderData:e})=>{if(!e)return{};let{level:t,papers:n,locale:i}=e,a=i.startsWith(`zh`),o=i.startsWith(`en`),s=n.length>0,c=Math.round(t.durationSec/60),l=vN(t,i),u=a?`${t.label} 模拟考在线 — 真实计时、即时出分、逐题解析 | HSKWin`:o?`${t.label} Mock Test Online — Timed, Scored & Explained | HSKWin`:vS({label:t.label},{locale:i}),d=s?a?`在线做 ${t.label} 模拟考,按真实 ${c} 分钟计时,交卷即出分。专为 HSK 3.0 ${l}编写,每一项的第一题及解析可免费试做。`:o?`Sit the ${t.label} mock test online on the real ${c}-minute clock, scored instantly. Built for HSK 3.0 ${l}, with a free preview of every part.`:CS({label:t.label,minutes:c,word:l},{locale:i}):a?`${t.label} 模拟考(HSK 3.0)即将上线。先查看 2026 年大纲规定的 ${t.words.toLocaleString()} 词、${c} 分钟考试时长、题型顺序与计分方式。`:o?`${t.label} mock tests for HSK 3.0 are coming. See what the 2026 syllabus fixes: a ${t.words.toLocaleString()}-word target, a ${c}-minute exam, the question types in order and how they are scored.`:OS({label:t.label,words:t.words.toLocaleString(),minutes:c},{locale:i}),f=`/mock-test/hsk-${t.slug}`,p=e=>pN(f,e);return{meta:[{title:u},{name:`description`,content:d},{property:`og:title`,content:u},{property:`og:description`,content:d}],links:[{rel:`canonical`,href:p(i)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:p(e)})),{rel:`alternate`,hrefLang:`x-default`,href:p(`en`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify([mN(i,[{name:fN(i),path:`/mock-test`},{name:Jf({n:t.slug===`7-9`?`7–9`:t.slug},{locale:i}),path:f}]),s&&{"@context":`https://schema.org`,"@type":`LearningResource`,name:a?`${t.label} 模拟考`:o?`${t.label} mock test`:NS({label:t.label},{locale:i}),description:d,url:p(i),inLanguage:i,learningResourceType:`Practice exam`,educationalLevel:t.label,teaches:`HSK 3.0 ${t.label}`,timeRequired:`PT${c}M`,isAccessibleForFree:!1,provider:{"@type":`Organization`,name:k.app_name,url:k.app_url}}
382,hN(GH(t,i))].filter(Boolean))}]}},component:N(KH,`component`)}),YH=M(`/vocabulary/print/$level`)({loader:async({params:e})=>{let t=mM(e.level.replace(/^hsk-/,``));if(!t)throw Ae();let n=await Wj(),r=n?await Uj({data:{slug:pM(t.level)}}):[];if(!r)throw Ae();return{levelNumber:t.level,rows:r,signedIn:n,locale:s()}},head:()=>({meta:[{name:`robots`,content:`noindex`}]}),component:N(()=>O(()=>import(`./_level-BJoQzk4B2.js`),__vite__mapDeps([221,1,4,5,17,8,9,28,99])),`component`)}),XH=M(`/mock-test/$level/$paper`)({loader:async({params:e})=>{let t=mM(e.level.replace(/^hsk-/,``));if(!t)throw Ae();let n=(await Vj({data:{kind:`written`,level:t.level}})).find(t=>t.slug===e.paper);if(!n)throw Ae();return{level:t,paper:n,read:await Kj({data:{slug:n.slug}}),locale:s()}},head:({loaderData:e})=>{if(!e)return{};let{paper:t,level:n,locale:i}=e,a=i.startsWith(`zh`),o=i.startsWith(`en`),s=`/mock-test/hsk-${n.slug}/${t.slug}`,c=e=>pN(s,e),l=IN(t,i),u={"@context":`https://schema.org`,"@type":`Quiz`,name:l,educationalLevel:n.label,about:{"@type":`Thing`,name:`HSK 3.0 Chinese proficiency test`},numberOfQuestions:t.questionCount,timeRequired:`PT${Math.round(t.durationSec/60)}M`,isAccessibleForFree:!1};return{meta:[{title:a?`${t.titleZh} — 免费预览部分题目与解析 | HSKWin`:o?`${t.titleEn} — Free Question Preview | HSKWin`:bw({title:l},{locale:i})},{name:`description`,content:a?`${t.summaryZh} 依据 2026 年 HSK 3.0 大纲编写。每一项的第一题可免费试做并查看答案和解析,不用注册;完整作答请进入计时模考。`:o?`${t.summaryEn} Built to the 2026 HSK 3.0 syllabus. The first question of each section is free to try, with the answer and explanation, no account needed; sit the timed mock for the full paper.`:Tw({summary:LN(t,i)},{locale:i})}],links:[{rel:`canonical`,href:c(i)},...r.map(e=>({rel:`alternate`,hrefLang:e,href:c(e)})),{rel:`alternate`,hrefLang:`x-default`,href:c(`en`)}],scripts:[{type:`application/ld+json`,children:JSON.stringify([u,mN(i,[{name:fN(i),path:`/mock-test`},{name:n.label,path:`/mock-test/hsk-${n.slug}`},{name:l,path:s}])])}]}},component:N(()=>O(()=>import(`./_paper-0TLUI9Qb.js`),__vite__mapDeps([222,1,17,8,9,5,14,15,18,220,4,10,6,7,11,12,13,16,127,138,23,61,38,36,39,40,41,42,43,44,45,26,33,139,21,37,2,3,19,20,22,24,25,27,28,29,30,105,51,52,155,53,116,117,57])),`component`)}),ZH=M(`/stories/$level/$slug/`)({loader:async({params:e})=>{let t=await KM({data:{level:e.level,slug:e.slug}});if(!t)throw Ae();return{story:t,locale:s()}},head:({loaderData:e})=>{if(!e)return{};let{story:t}=e,n=e.locale,r=JM(t.level),i=`/stories/hsk-${t.levelSlug}/${t.slug}`,{url:a,links:o}=XM(i,n),s=Eb({zh:t.titleZh,en:t.titleEn,label:r},{locale:n}),c=n===`zh`?t.summaryZh:t.summaryEn;return{meta:[{title:s},{name:`description`,content:c}],links:o,scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Book`,name:t.titleZh,alternateName:t.titleEn,description:c,url:a,inLanguage:`zh-CN`,educationalLevel:r,learningResourceType:`Graded reader`,isAccessibleForFree:!1,numberOfPages:t.chapterCount,hasPart:t.chapters.map(e=>({"@type":`Chapter`,position:e.n,name:e.titleZh,url:ZM(`${i}/chapter-${e.n}`,n)})),publisher:{"@type":`Organization`,name:`HSKWin`}})},{type:`application/ld+json`,children:JSON.stringify(QM([{name:Ay({},{locale:n}),path:`/stories`},{name:r,path:`/stories/hsk-${t.levelSlug}`},{name:t.titleZh,path:i}],n))}]}},component:N(()=>O(()=>import(`./_slug-Dj5tJNXu.js`),__vite__mapDeps([223,1,4,5,17,8,9,14,15,16,37,93,51,2,3,6,7,10,11,12,13,18,19,20,21,22,23,24,25,26,27,28,29,30,52,224,106,108,110,218])),`component`)}),QH=M(`/stories/$level/$slug/$chapter`)({loader:async({params:e})=>{let t=/^chapter-(\d{1,2})$/.exec(e.chapter)?.[1];if(!t)throw Ae();let n=await qM({data:{level:e.level,slug:e.slug,n:Number(t)}});if(!n)throw Ae();return{view:n,locale:s()}},head:({loaderData:e})=>{if(!e)return{};let{story:t,chapter:n}=e.view,r=e.locale,i=JM(t.level),a=`/stories/hsk-${t.levelSlug}/${t.slug}`,o=`${a}/chapter-${n.n}`,{links:s}=XM(o,r),c=c_({story:t.titleZh,chapter:n.titleZh,n:n.n,label:i},{locale:r}),l=r_({story:t.titleZh,en:t.titleEn,n:n.n,total:t.chapterCount,label:i,chars:n.chars},{locale:r});return{meta:[{title:c},{name:`description`,content:l}],links:s,scripts:[{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Chapter`,name:n.titleZh,alternateName:n.titleEn,position:n.n,inLanguage:`zh-CN`,educationalLevel:i,isAccessibleForFree:!1,url:ZM(o,r),isPartOf:{"@type":`Book`,name:t.titleZh,url:ZM(a,r)}})},{type:`application/ld+json`,children:JSON.stringify(QM([{name:Ay({},{locale:r}),path:`/stories`},{name:i,path:`/stories/hsk-${t.levelSlug}`},{name:t.titleZh,path:a},{name:n.titleZh,path:o}],r))}]}},component:N(()=>O(()=>import(`./_chapter-B3Xh807U.js`),__vite__mapDeps([225,1,4,5,17,8,9,15,88,102,23,14,103,16,40,20,104,105,44,93,26,106,107,91,2,3,6,7,10,11,12,13,18,19,21,22,24,25,27,28,29,30,51,52,224,167,110,111])),`component`)}),$H=Fj.update({id:`/pricing`,path:`/pricing`,getParentRoute:()=>q}),eU=Ij.update({id:`/mistakes-print`,path:`/mistakes-print`,getParentRoute:()=>q}),tU=Jj.update({id:`/hsk-levels`,path:`/hsk-levels`,getParentRoute:()=>q}),nU=Zj.update({id:`/hsk-exam-dates-2026`,path:`/hsk-exam-dates-2026`,getParentRoute:()=>q}),rU=Qj.update({id:`/hsk-3-0-status`,path:`/hsk-3-0-status`,getParentRoute:()=>q}),iU=$j.update({id:`/settings`,path:`/settings`,getParentRoute:()=>q}),aU=eM.update({id:`/admin`,path:`/admin`,getParentRoute:()=>q}),oU=tM.update({id:`/(pages)`,getParentRoute:()=>q}),sU=cM.update({id:`/`,path:`/`,getParentRoute:()=>q}),cU=RM.update({id:`/vocabulary/`,path:`/vocabulary/`,getParentRoute:()=>q}),lU=VM.update({id:`/tools/`,path:`/tools/`,getParentRoute:()=>q}),uU=$M.update({id:`/stories/`,path:`/stories/`,getParentRoute:()=>q}),dU=eN.update({id:`/reading/`,path:`/reading/`,getParentRoute:()=>q}),fU=yN.update({id:`/mock-test/`,path:`/mock-test/`,getParentRoute:()=>q}),pU=EN.update({id:`/hskk/`,path:`/hskk/`,getParentRoute:()=>q}),mU=DN.update({id:`/flashcards/`,path:`/flashcards/`,getParentRoute:()=>q}),hU=AN.update({id:`/blog/`,path:`/blog/`,getParentRoute:()=>q}),gU=NN.update({id:`/vocabulary/$level`,path:`/vocabulary/$level`,getParentRoute:()=>q}),_U=lP.update({id:`/tools/score-calculator`,path:`/tools/score-calculator`,getParentRoute:()=>q}),vU=pP.update({id:`/tools/level-test`,path:`/tools/level-test`,getParentRoute:()=>q}),yU=vP.update({id:`/tools/hsk-registration-reminder`,path:`/tools/hsk-registration-reminder`,getParentRoute:()=>q}),bU=yP.update({id:`/result/$attemptId`,path:`/result/$attemptId`,getParentRoute:()=>q}),xU=EP.update({id:`/reading/$level`,path:`/reading/$level`,getParentRoute:()=>q}),SU=MP.update({id:`/practice/writing`,path:`/practice/writing`,getParentRoute:()=>q}),CU=NP.update({id:`/practice/speaking`,path:`/practice/speaking`,getParentRoute:()=>q}),wU=PP.update({id:`/paper-print/$paper`,path:`/paper-print/$paper`,getParentRoute:()=>q}),TU=HP.update({id:`/hskk/$band`,path:`/hskk/$band`,getParentRoute:()=>q}),EU=UP.update({id:`/flashcards/$level`,path:`/flashcards/$level`,getParentRoute:()=>q}),DU=WP.update({id:`/exam/dates-2026`,path:`/exam/dates-2026`,getParentRoute:()=>q}),OU=GP.update({id:`/exam/$attemptId`,path:`/exam/$attemptId`,getParentRoute:()=>q}),kU=KP.update({id:`/blog/$slug`,path:`/blog/$slug`,getParentRoute:()=>q}),AU=qP.update({id:`/(auth)/verify-email`,path:`/verify-email`,getParentRoute:()=>q}),jU=JP.update({id:`/(auth)/sign-up`,path:`/sign-up`,getParentRoute:()=>q}),MU=YP.update({id:`/(auth)/sign-in`,path:`/sign-in`,getParentRoute:()=>q}),NU=XP.update({id:`/(auth)/reset-password`,path:`/reset-password`,getParentRoute:()=>q}),PU=ZP.update({id:`/(auth)/redeem-invite`,path:`/redeem-invite`,getParentRoute:()=>q}),FU=QP.update({id:`/(auth)/forgot-password`,path:`/forgot-password`,getParentRoute:()=>q}),IU=$P.update({id:`/(auth)/auth-callback`,path:`/auth-callback`,getParentRoute:()=>q}),LU=eF.update({id:`/`,path:`/`,getParentRoute:()=>iU}),RU=tF.update({id:`/tickets`,path:`/tickets`,getParentRoute:()=>iU}),zU=nF.update({id:`/results`,path:`/results`,getParentRoute:()=>iU}),BU=rF.update({id:`/profile`,path:`/profile`,getParentRoute:()=>iU}),VU=iF.update({id:`/payments`,path:`/payments`,getParentRoute:()=>iU}),HU=aF.update({id:`/mistakes`,path:`/mistakes`,getParentRoute:()=>iU}
382),UU=oF.update({id:`/exam-plan`,path:`/exam-plan`,getParentRoute:()=>iU}),WU=sF.update({id:`/credits`,path:`/credits`,getParentRoute:()=>iU}),GU=cF.update({id:`/billing`,path:`/billing`,getParentRoute:()=>iU}),KU=lF.update({id:`/apikeys`,path:`/apikeys`,getParentRoute:()=>iU}),qU=uF.update({id:`/`,path:`/`,getParentRoute:()=>aU}),JU=dF.update({id:`/users`,path:`/users`,getParentRoute:()=>aU}),YU=fF.update({id:`/tickets`,path:`/tickets`,getParentRoute:()=>aU}),XU=pF.update({id:`/subscriptions`,path:`/subscriptions`,getParentRoute:()=>aU}),ZU=mF.update({id:`/settings`,path:`/settings`,getParentRoute:()=>aU}),QU=ZV.update({id:`/roles`,path:`/roles`,getParentRoute:()=>aU}),$U=$V.update({id:`/posts`,path:`/posts`,getParentRoute:()=>aU}),eW=eH.update({id:`/permissions`,path:`/permissions`,getParentRoute:()=>aU}),tW=tH.update({id:`/payments`,path:`/payments`,getParentRoute:()=>aU}),nW=rH.update({id:`/invite-codes`,path:`/invite-codes`,getParentRoute:()=>aU}),rW=iH.update({id:`/credits`,path:`/credits`,getParentRoute:()=>aU}),iW=oH.update({id:`/categories`,path:`/categories`,getParentRoute:()=>aU}),aW=zH.update({id:`/terms-of-service`,path:`/terms-of-service`,getParentRoute:()=>oU}),oW=BH.update({id:`/refund-policy`,path:`/refund-policy`,getParentRoute:()=>oU}),sW=VH.update({id:`/privacy-policy`,path:`/privacy-policy`,getParentRoute:()=>oU}),cW=HH.update({id:`/stories/$level/`,path:`/stories/$level/`,getParentRoute:()=>q}),lW=JH.update({id:`/mock-test/$level/`,path:`/mock-test/$level/`,getParentRoute:()=>q}),uW=YH.update({id:`/vocabulary/print/$level`,path:`/vocabulary/print/$level`,getParentRoute:()=>q}),dW=XH.update({id:`/mock-test/$level/$paper`,path:`/mock-test/$level/$paper`,getParentRoute:()=>q}),fW=ZH.update({id:`/stories/$level/$slug/`,path:`/stories/$level/$slug/`,getParentRoute:()=>q}),pW=QH.update({id:`/stories/$level/$slug/$chapter`,path:`/stories/$level/$slug/$chapter`,getParentRoute:()=>q}),mW={pagesPrivacyPolicyRoute:sW,pagesRefundPolicyRoute:oW,pagesTermsOfServiceRoute:aW},hW=oU._addFileChildren(mW),gW={AdminCategoriesRoute:iW,AdminCreditsRoute:rW,AdminInviteCodesRoute:nW,AdminPaymentsRoute:tW,AdminPermissionsRoute:eW,AdminPostsRoute:$U,AdminRolesRoute:QU,AdminSettingsRoute:ZU,AdminSubscriptionsRoute:XU,AdminTicketsRoute:YU,AdminUsersRoute:JU,AdminIndexRoute:qU},_W=aU._addFileChildren(gW),vW={SettingsApikeysRoute:KU,SettingsBillingRoute:GU,SettingsCreditsRoute:WU,SettingsExamPlanRoute:UU,SettingsMistakesRoute:HU,SettingsPaymentsRoute:VU,SettingsProfileRoute:BU,SettingsResultsRoute:zU,SettingsTicketsRoute:RU,SettingsIndexRoute:LU},yW={IndexRoute:sU,pagesRouteRoute:hW,AdminRouteRoute:_W,SettingsRouteRoute:iU._addFileChildren(vW),Hsk30StatusRoute:rU,HskExamDates2026Route:nU,HskLevelsRoute:tU,MistakesPrintRoute:eU,PricingRoute:$H,authAuthCallbackRoute:IU,authForgotPasswordRoute:FU,authRedeemInviteRoute:PU,authResetPasswordRoute:NU,authSignInRoute:MU,authSignUpRoute:jU,authVerifyEmailRoute:AU,BlogSlugRoute:kU,ExamAttemptIdRoute:OU,ExamDates2026Route:DU,FlashcardsLevelRoute:EU,HskkBandRoute:TU,PaperPrintPaperRoute:wU,PracticeSpeakingRoute:CU,PracticeWritingRoute:SU,ReadingLevelRoute:xU,ResultAttemptIdRoute:bU,ToolsHskRegistrationReminderRoute:yU,ToolsLevelTestRoute:vU,ToolsScoreCalculatorRoute:_U,VocabularyLevelRoute:gU,BlogIndexRoute:hU,FlashcardsIndexRoute:mU,HskkIndexRoute:pU,MockTestIndexRoute:fU,ReadingIndexRoute:dU,StoriesIndexRoute:uU,ToolsIndexRoute:lU,VocabularyIndexRoute:cU,MockTestLevelPaperRoute:dW,VocabularyPrintLevelRoute:uW,MockTestLevelIndexRoute:lW,StoriesLevelIndexRoute:cW,StoriesLevelSlugChapterRoute:pW,StoriesLevelSlugIndexRoute:fW},bW=q._addFileChildren(yW);function xW(){return ri({routeTree:bW,defaultPreload:`intent`,scrollRestoration:!0,rewrite:{input:({url:e})=>a(e),output:({url:e})=>o(e)}})}async function SW(){let e=await xW(),t=[];return window.__TSS_START_OPTIONS__={serializationAdapters:t},t.push(nr),e.options.serializationAdapters&&t.push(...e.options.serializationAdapters),e.update({basepath:``,serializationAdapters:t}),e.stores.matchesId.get().length||await ar(e),e}var CW=SW;async function wW(){let e=await CW();return window.$_TSR?.h(),e}var TW;function EW(){return TW||=wW(),(0,j.jsx)(sr,{promise:TW,children:e=>(0,j.jsx)(oi,{router:e})})}var DW=kt();(0,A.startTransition)(()=>{(0,DW.hydrateRoot)(document,(0,j.jsx)(A.StrictMode,{children:(0,j.jsx)(EW,{})}))});export{DN as $,ks as $n,bj as $t,AP as A,Rf as An,TM as At,rP as B,Dl as Bn,mM as Bt,HP as C,Fm as Cn,bM as Ct,LP as D,$f as Dn,OM as Dt,zP as E,ip as En,EM as Et,xP as F,ql as Fn,xM as Ft,GN as G,nc as Gn,Qj as Gt,UN as H,Zc as Hn,sM as Ht,yP as I,B as In,dM as It,LN as J,Xs as Jn,zj as Jt,HN as K,ec as Kn,Zj as Kt,vP as L,Hl as Ln,uM as Lt,DP as M,Of as Mn,MM as Mt,EP as N,ru as Nn,SM as Nt,PP as O,Jf as On,AM as Ot,CP as P,Ql as Pn,vM as Pt,AN as Q,Gs as Qn,Sj as Qt,hP as R,Ll as Rn,hM as Rt,UP as S,Bm as Sn,yM as St,IP as T,lp as Tn,DM as Tt,VN as U,fc as Un,iM as Ut,WN as V,nl as Vn,cM as Vt,KN as W,sc as Wn,nM as Wt,FN as X,Js as Xn,Hj as Xt,IN as Y,Ys as Yn,Uj as Yt,NN as Z,qs as Zn,Pj as Zt,xV as _,Wv as _n,UM as _t,JH as a,QA as an,Vo as ar,_N as at,KP as b,dh as bn,PM as bt,uH as c,ij as cn,Wo as cr,cN as ct,dV as d,$A as dn,tN as dt,vj as en,ps as er,EN as et,aV as f,Lx as fn,eN as ft,pV as g,Ty as gn,KM as gt,tV as h,Ay as hn,YM as ht,YH as i,cj as in,Ko as ir,vN as it,jP as j,Nf as jn,NM as jt,MP as k,Uf as kn,Y as kt,YV as l,rj as ln,Qr as lr,sN as lt,TV as m,Vb as mn,JM as mt,ZH as n,yj as nn,Bo as nr,yN as nt,GH as o,nj as on,Uo as or,gN as ot,_V as p,sx as pn,$M as pt,PN as q,Qs as qn,Jj as qt,XH as r,mj as rn,Go as rr,fN as rt,HH as s,oj as sn,Ho as sr,lN as st,QH as t,gj as tn,ls as tr,CN as tt,CV as u,aj as un,Lr as ur,dN as ut,NB as v,xh as vn,RM as vt,FP as w,Pp as wn,_M as wt,GP as x,Gm as xn,IM as xt,hV as y,gh as yn,FM as yt,lP as z,Ml as zn,fM as zt};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.