@ihabdevteam/core 0.184.0 → 0.186.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +202 -0
  2. package/dist/components.cjs.js +177 -177
  3. package/dist/components.esm.css +5 -5
  4. package/dist/hooks.cjs.js +3 -3
  5. package/dist/i18n.cjs.js +3 -3
  6. package/dist/ihabdevteam-core.cjs.js +180 -180
  7. package/dist/ihabdevteam-core.d.ts +26 -6
  8. package/dist/packages/core/src/components/BottomNav.js +34 -22
  9. package/dist/packages/core/src/components/Calendar.css +32 -5
  10. package/dist/packages/core/src/components/Calendar.js +1 -1
  11. package/dist/packages/core/src/components/ChartSection.css +6 -0
  12. package/dist/packages/core/src/components/FilterPanel.js +5 -2
  13. package/dist/packages/core/src/components/Header.d.ts +3 -1
  14. package/dist/packages/core/src/components/Header.js +6 -4
  15. package/dist/packages/core/src/components/PageTitle.css +7 -3
  16. package/dist/packages/core/src/components/Popup/Popup.css +15 -6
  17. package/dist/packages/core/src/components/Section.css +6 -0
  18. package/dist/packages/core/src/components/SegmentedControl.d.ts +5 -0
  19. package/dist/packages/core/src/components/SideNav.d.ts +2 -0
  20. package/dist/packages/core/src/components/SideNav.js +5 -5
  21. package/dist/packages/core/src/components/Table.d.ts +6 -3
  22. package/dist/packages/core/src/components/Table.js +44 -8
  23. package/dist/packages/core/src/components/Toolbar.css +21 -0
  24. package/dist/packages/core/src/components/Toolbar.js +1 -1
  25. package/dist/packages/core/src/components/Training/TrainingPagePopup.js +3 -1
  26. package/dist/packages/core/src/components/Training/TrainingPagePopupBottom.css +14 -0
  27. package/dist/packages/core/src/components/Training/TrainingPagePopupBottom.d.ts +3 -1
  28. package/dist/packages/core/src/components/Training/TrainingPagePopupBottom.js +30 -4
  29. package/dist/packages/core/src/components/Training/TrainingStepAudioPlayer.css +12 -0
  30. package/dist/packages/core/src/components/Training/WordTablePopup.css +18 -0
  31. package/dist/packages/core/src/components/Word/PhonemeSelectBlock.css +25 -1
  32. package/dist/packages/core/src/components/WordTable.css +19 -0
  33. package/dist/packages/core/src/components/WordTable.js +21 -2
  34. package/dist/packages/core/src/components/buttonTypes.d.ts +6 -0
  35. package/dist/packages/core/src/components/useFitScale.js +17 -1
  36. package/dist/packages/core/src/i18n/locales/en.json +4 -2
  37. package/dist/packages/core/src/i18n/locales/ko.json +4 -2
  38. package/dist/packages/core/src/version.d.ts +1 -1
  39. package/dist/packages/core/src/version.js +1 -1
  40. package/dist/utils.cjs.js +1 -1
  41. package/package.json +1 -1
package/dist/hooks.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
- "use strict";var s=require("react"),se=require("react-i18next"),ae=require("i18next"),Dt=typeof document<"u"?document.currentScript:null;function Mo(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if(n!=="default"){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var dn=Mo(s);function Io({storageKey:e="fontScale",baseFont:t=20,minScale:n=.8,maxScale:o=1.4,step:r=.1,lineHeightRatio:a=1.4}={}){const u=S=>Math.max(n,Math.min(o,Number(S))),i=S=>{try{const E=localStorage.getItem(S),M=E?Number(E):1;return Number.isFinite(M)?u(M):u(1)}catch{return u(1)}},[l,c]=s.useState(()=>i(e)),[g,d]=s.useState(e);g!==e&&(d(e),c(i(e))),s.useEffect(()=>{try{localStorage.setItem(e,String(l))}catch{}},[e,l]);const C=S=>{c(typeof S=="function"?E=>u(S(E)):u(S))},f=()=>C(S=>+(S+r).toFixed(6)),m=()=>C(S=>+(S-r).toFixed(6)),w=l<o-Number.EPSILON,h=l>n+Number.EPSILON,p=Math.round(t*l),y=Math.round(p*a);return{scale:l,setScale:C,increase:f,decrease:m,canIncrease:w,canDecrease:h,fontSize:p,lineHeight:y}}const Cn=s.createContext(null);function ko(e){return/max-width:\s*7[0-9][0-9]px/.test(e)}const gn=e=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(e).matches;function xo(e){const t=s.useCallback(n=>{if(typeof window>"u"||!window.matchMedia)return()=>{};const o=window.matchMedia(e);return o.addEventListener?o.addEventListener("change",n):o.addListener&&o.addListener(n),()=>{o.removeEventListener?o.removeEventListener("change",n):o.removeListener&&o.removeListener(n)}},[e]);return dn.useSyncExternalStore(t,()=>gn(e),()=>!1)}function jo(e){const[t,n]=s.useState(gn(e));return s.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const o=window.matchMedia(e),r=u=>n(u.matches),a=o;return a.addEventListener?a.addEventListener("change",r):a.addListener&&a.addListener(r),n(o.matches),()=>{a.removeEventListener?a.removeEventListener("change",r):a.removeListener&&a.removeListener(r)}},[e]),t}const Fo=typeof dn.useSyncExternalStore=="function"?xo:jo;function $o(e){const t=s.useContext(Cn),n=Fo(e);return t&&typeof t.mobile=="boolean"&&ko(e)?t.mobile:n}function fn(e){const t=s.useRef(e);return s.useEffect(()=>{t.current=e}),t}function mn(e,t){const n=fn(t);s.useEffect(()=>{const o=()=>n.current();try{window.addEventListener(e,o)}catch{}return()=>{try{window.removeEventListener(e,o)}catch{}}},[e,n])}const Tt=" \xB7 ",pn=(()=>{if(typeof document>"u")return"";const e=document.title;return e.includes(Tt)?e.split(Tt).pop()??e:e})(),hn=s.createContext(!1),be=[];let yn=null;function Ho(e){const t=s.useContext(hn);s.useEffect(()=>{if(t||typeof e!="string"||!e)return;be.length===0&&(yn=document.title);const n={text:pn?`${e}${Tt}${pn}`:e};return be.push(n),document.title=n.text,()=>{const o=be.lastIndexOf(n);o>=0&&be.splice(o,1),document.title=be.length?be[be.length-1].text:yn??document.title}},[e,t])}const Go=/^(\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2})(?::(\d{2})(?:\.(\d+))?)?$/;function Vo(e){let t;if(e instanceof Date)t=e;else if(typeof e=="string"){const n=e.trim(),o=Go.exec(n);t=new Date(o?`${o[1]}T${o[2]}:${o[3]??"00"}${o[4]?`.${o[4].slice(0,3).padEnd(3,"0")}`:""}+09:00`:n)}else t=new Date(e);return Number.isNaN(t.getTime())?null:t}function Oe(){return Re(new Date)}function Re(e){if(e==null||e==="")return"";const t=Vo(e);return t?new Intl.DateTimeFormat("fr-CA",{timeZone:"Asia/Seoul"}).format(t):""}function Wo(e,t){const[n,o,r]=e.split("-").map(Number),[a,u,i]=t.split("-").map(Number);return Math.round((Date.UTC(a,u-1,i)-Date.UTC(n,o-1,r))/864e5)}function Yo(){const{t:e}=se.useTranslation();return s.useCallback(t=>{if(!t)return"";const n=Re(t);if(!n)return"";const o=Wo(n,Oe());return o<=0?e("myHomework.relativeDay.today","\uC624\uB298"):o===1?e("myHomework.relativeDay.yesterday","\uC5B4\uC81C"):e("myHomework.relativeDay.daysAgo",{n:o})},[e])}const Ko=()=>{const e="\uC54C \uC218 \uC5C6\uB294 \uC624\uB958",t=typeof ae?.t=="function"?ae.t("common.unknownError",{defaultValue:e}):void 0;return typeof t=="string"&&t?t:e};function Uo(e,t){if(t===void 0&&(t=Ko()),e instanceof Error)return e.message||t;if(typeof e=="string")return e||t;if(e&&typeof e=="object"){const n=e;for(const o of[n.message,n.error_description,n.error])if(typeof o=="string"&&o)return o}return t}function zo(e){const{t}=se.useTranslation(),[n,o]=s.useState({current:"",next:"",confirm:""}),[r,a]=s.useState(null),[u,i]=s.useState(!1),l=s.useRef(null),c=s.useRef(!1);s.useEffect(()=>()=>{l.current!==null&&clearTimeout(l.current)},[]);const g=s.useCallback(()=>{o({current:"",next:"",confirm:""}),a(null)},[]),d=s.useCallback(async()=>{if(c.current)return;if(!n.current){a({type:"error",text:t("account.security.password.currentRequired","\uD604\uC7AC \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694.")});return}if(!n.next){a({type:"error",text:t("account.security.password.newRequired","\uC0C8 \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694.")});return}if(n.next!==n.confirm){a({type:"error",text:t("account.security.password.mismatch","\uC0C8 \uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.")});return}i(!0),c.current=!0;let C;try{C=e?await e(n.current,n.next):null}catch(f){C=Uo(f)}finally{c.current=!1,i(!1)}if(C){a({type:"error",text:C});return}a({type:"success",text:t("account.security.password.changed","\uBE44\uBC00\uBC88\uD638\uAC00 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4.")}),o({current:"",next:"",confirm:""}),l.current!==null&&clearTimeout(l.current),l.current=setTimeout(()=>a(null),1500)},[n,e,t]);return{pw:n,setPw:o,pwMsg:r,setPwMsg:a,pwLoading:u,handleChangePw:d,reset:g}}const qo={\u3131:"\u3131",\u3132:"\u3131",\u314B:"\u3131",\u3133:"\u3131",\u313A:"\u3131",\u3134:"\u3134",\u3135:"\u3134",\u3136:"\u3134",\u3137:"\u3137",\u3145:"\u3137",\u3146:"\u3137",\u3148:"\u3137",\u314A:"\u3137",\u314C:"\u3137",\u314E:"\u3137",\u3139:"\u3139",\u313C:"\u3139",\u313D:"\u3139",\u313E:"\u3139",\u3140:"\u3139",\u3141:"\u3141",\u313B:"\u3141",\u3142:"\u3142",\u314D:"\u3142",\u313F:"\u3142",\u3144:"\u3142",\u3147:"\u3147"},Nt={\u314F:{nucleus:"\u314F"},\u3151:{glide:"j",nucleus:"\u314F"},\u3153:{nucleus:"\u3153"},\u3155:{glide:"j",nucleus:"\u3153"},\u3157:{nucleus:"\u3157"},\u315B:{glide:"j",nucleus:"\u3157"},\u315C:{nucleus:"\u315C"},\u3160:{glide:"j",nucleus:"\u315C"},\u3161:{nucleus:"\u3161"},\u3163:{nucleus:"\u3163"},\u3150:{nucleus:"\u3154/\u3150"},\u3152:{glide:"j",nucleus:"\u3154/\u3150"},\u3154:{nucleus:"\u3154/\u3150"},\u3156:{glide:"j",nucleus:"\u3154/\u3150"},\u3158:{glide:"w",nucleus:"\u314F"},\u3159:{glide:"w",nucleus:"\u3154/\u3150"},\u315A:{glide:"w",nucleus:"\u3154/\u3150"},\u315D:{glide:"w",nucleus:"\u3153"},\u315E:{glide:"w",nucleus:"\u3154/\u3150"},\u315F:{glide:"w",nucleus:"\u3163"},\u3162:{glide:"\u0270",nucleus:"\u3163"}};function Jo(e,t){return(Nt[e]?.glide??"")!==(Nt[t]?.glide??"")}function Pe(e){return qo[e]??e}const Q=["\u3131","\u3132","\u3134","\u3137","\u3138","\u3139","\u3141","\u3142","\u3143","\u3145","\u3146","\u3147","\u3148","\u3149","\u314A","\u314B","\u314C","\u314D","\u314E"],te=["\u314F","\u3150","\u3151","\u3152","\u3153","\u3154","\u3155","\u3156","\u3157","\u3158","\u3159","\u315A","\u315B","\u315C","\u315D","\u315E","\u315F","\u3160","\u3161","\u3162","\u3163"],oe=["","\u3131","\u3132","\u3133","\u3134","\u3135","\u3136","\u3137","\u3139","\u313A","\u313B","\u313C","\u313D","\u313E","\u313F","\u3140","\u3141","\u3142","\u3144","\u3145","\u3146","\u3147","\u3148","\u314A","\u314B","\u314C","\u314D","\u314E"];function V(e){if(!e)return null;const t=e.charCodeAt(0)-44032;return t<0||t>=11172?null:{cho:Math.floor(t/588),jung:Math.floor(t%588/28),jong:t%28}}function Qo(){const e=new Map;return t=>{let n=e.get(t);return n||(n=[...t].map(o=>V(o)),e.set(t,n)),n}}function fe(e,t,n=0){return String.fromCharCode(44032+(e*21+t)*28+n)}function Zo(e,t){if(!e||!t||e===t||e.length!==t.length)return"random";let n=0,o=null;for(let r=0;r<e.length;r++){const a=V(e[r]),u=V(t[r]);if(!a||!u)return"random";if(a.cho===u.cho&&a.jung===u.jung&&a.jong===u.jong)continue;n++;const i=a.cho!==u.cho,l=a.jung!==u.jung,c=a.jong!==u.jong;(i?1:0)+(l?1:0)+(c?1:0)>1?o="multi":i?o="cho":l?o="jung":o="jong"}return n!==1?"random":o==="cho"?"cho":o==="jung"?"jung":o==="jong"?"jong":"random"}const ot={3:["\u3131","\u3145"],5:["\u3134","\u3148"],6:["\u3134","\u314E"],9:["\u3139","\u3131"],10:["\u3139","\u3141"],11:["\u3139","\u3142"],12:["\u3139","\u3145"],13:["\u3139","\u314C"],14:["\u3139","\u314D"],15:["\u3139","\u314E"],18:["\u3142","\u3145"]};Object.fromEntries(Object.entries(ot).map(([e,t])=>[t.join(""),oe[Number(e)]]));function Xo(e,t){if(!e||!t)return!1;for(const n of e){const o=V(n);if(o){if(Q[o.cho]===t)return!0;if(o.jong>0){if(oe[o.jong]===t)return!0;const r=ot[o.jong];if(r&&r.includes(t))return!0}}}return!1}function er(e,t,n){const o=oe[e];return o===t?!0:n==="phoneme"&&Pe(o)===Pe(t)}function Me(e){if(!e)return 0;let t=0;for(const n of e)V(n)&&t++;return t}function tr(e){if(!e)return!1;let t=!1;for(const n of e){const o=V(n);if(o&&(t=!0,o.jong>0))return!1}return t}function nr(e,t,n){return e.jong<=0?!1:t.some(o=>er(e.jong,o,n))}function or(e,t,n,o="glyph"){if(!e)return!1;const r=[...e],a=u=>{const i=V(r[u]);if(!i||t.cho&&!t.cho.includes(Q[i.cho])||t.jung&&!t.jung.includes(te[i.jung]))return!1;if(t.jongNone){if(i.jong>0)return!1}else if(t.jong&&!nr(i,t.jong,o))return!1;return!0};if(n==="head")return a(0);if(n==="tail")return a(r.length-1);if(n==="mid"){for(let u=1;u<r.length-1;u++)if(a(u))return!0;return!1}for(let u=0;u<r.length;u++)if(a(u))return!0;return!1}const rr={cho:Q.length,jung:te.length,jong:oe.length};function ar(e,t,n,o,r=1/0){if(!e||n<1)return[];const a=[...e].map(d=>V(d));if(a.some(d=>!d))return[];const u=a,i=u.length;if(n>i)return[];const l=rr[t],c=new Set,g=[];(function d(C,f){if(f.length===n){g.push([...f]);return}for(let m=C;m<i;m++)f.push(m),d(m+1,f),f.pop()})(0,[]);for(const d of g)if((function C(f,m){if(c.size>=r)return;if(f===d.length){const p=m.map(y=>fe(y.cho,y.jung,y.jong)).join("");p!==e&&o.has(p)&&c.add(p);return}const w=d[f],h=u[w][t];for(let p=0;p<l;p++){if(p===h)continue;const y=m.slice();if(y[w]={...m[w],[t]:p},C(f+1,y),c.size>=r)return}})(0,u),c.size>=r)break;return[...c]}function ur(e,t){if(!e||!t||e.length!==t.length)return-1;let n=0;for(let o=0;o<e.length;o++){const r=V(e[o]),a=V(t[o]);if(!r||!a)return-1;r.cho!==a.cho&&n++,r.jung!==a.jung&&n++,r.jong!==a.jong&&n++}return n}const bn="word_pair_index_v2",Sn="word_pair_index_sig_v2";let Ie=null;function ir(){try{if(typeof localStorage>"u")return null;const e=localStorage.getItem(bn),t=localStorage.getItem(Sn);return!e||!t?null:{index:JSON.parse(e),sig:t}}catch{return null}}function ke(){if(Ie)return Ie;const e=ir();return e?(Ie=e.index,e.sig,Ie):null}function lr(){Ie=null;try{typeof localStorage<"u"&&(localStorage.removeItem(bn),localStorage.removeItem(Sn))}catch{}}const wn="word_image_existence_map_v1";let De=null,xe=0,En=-1,je=null,An=-1,vn=new Set;function Bn(){if(De)return De;try{const e=typeof localStorage<"u"?localStorage.getItem(wn):null,t=e?JSON.parse(e):null;De=t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{De={}}return De}function Dn(){const e=Bn();if(En===xe)return je?{...je}:null;const t=Object.values(e);return je=t.length===0?null:{total:t.length,exists:t.filter(Boolean).length},En=xe,je?{...je}:null}function Tn(){const e=Bn();if(An===xe)return vn;const t=new Set;for(const n in e)e[n]===!0&&n.endsWith("_1")&&t.add(n.slice(0,-2));return vn=t,An=xe,t}function sr(){De={},xe++;try{typeof localStorage<"u"&&localStorage.removeItem(wn)}catch{}}const Nn=[{id:"wordData",labelKey:"settings.cache.group.wordData.label",subKey:"settings.cache.group.wordData.sub",keys:["word_data_cache","word_data_version"]},{id:"pairIndex",labelKey:"settings.cache.group.pairIndex.label",subKey:"settings.cache.group.pairIndex.sub",keys:["word_pair_index_v2","word_pair_index_sig_v2"]},{id:"imageCache",labelKey:"settings.cache.group.imageCache.label",subKey:"settings.cache.group.imageCache.sub",keys:["word_image_existence_map_v1"]}];function _n(e){return e.reduce((t,n)=>{try{const o=localStorage.getItem(n);return t+(o?new Blob([o]).size:0)}catch{return t}},0)}function cr(e){return e===0?"0 B":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(2)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function dr(e){const{t}=se.useTranslation(),[n,o]=s.useState({}),[r,a]=s.useState(null),[u,i]=s.useState(null),[l,c]=s.useState(null),g=s.useCallback(()=>{const C={};Nn.forEach(f=>{C[f.id]=_n([...f.keys])}),o(C),typeof navigator<"u"&&navigator.storage?.estimate&&navigator.storage.estimate().then(f=>{c({usage:f.usage??0,quota:f.quota??0})}).catch(()=>{})},[]);s.useEffect(()=>{g()},[g]);const d=s.useCallback(async C=>{a(C);try{C==="wordData"?(localStorage.removeItem("word_data_cache"),localStorage.removeItem("word_data_version")):C==="pairIndex"?lr():C==="imageCache"&&sr(),g(),e?.(t("settings.cache.cleared","\uCE90\uC2DC\uAC00 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4."))}finally{a(null)}},[g,e,t]);return{cacheSizes:n,clearingId:r,confirmCacheId:u,setConfirmCacheId:i,storageEstimate:l,refreshCacheSizes:g,handleClearCache:d}}function Cr(e){const[t,n]=s.useState(null),[o,r]=s.useState(null),a=s.useCallback(()=>{const u=ke();if(u){const l=Object.values(u),c=l.filter(g=>g.cho.length+g.jung.length+g.jong.length>0).length;n({matched:c,total:l.length})}else n(null);const i=Dn();r(i?{exists:i.exists,total:i.total}:null)},[]);return s.useEffect(()=>{a();const u=setTimeout(a,1e3);return()=>clearTimeout(u)},[e?.length,a]),{pairStats:t,imgStats:o,setPairStats:n,setImgStats:r,refreshStats:a}}function Se(e,t){if(e===t)return!0;const n=e?.id,o=t?.id;return n!=null&&n!==""&&n===o}function Ln(e,t=[]){const[n,o]=s.useState(t),[r,a]=s.useState(null),[u,i]=s.useState(!1),[l,c]=s.useState(e),g=s.useRef(!1),d=s.useRef(null);s.useEffect(()=>{if(u)return;if(g.current){g.current=!1;return}const p=d.current;p!==null&&p.length===t.length&&p.every((y,S)=>y===t[S])||(d.current=t,o(t),a(y=>y==null?y:t.find(S=>Se(S,y))??y))},[t,u]),s.useEffect(()=>{!u&&r!=null&&c({...r})},[u,r]);const C=s.useCallback(p=>{a(p),i(!1),c({...p})},[]),f=s.useCallback(()=>i(!0),[]),m=s.useCallback(()=>i(!1),[]),w=s.useCallback((p,y)=>{o(p),a(y),i(S=>(S&&(g.current=!0),!1))},[]),h=s.useCallback(p=>{o(y=>y.filter(S=>!Se(S,p))),a(null)},[]);return{list:n,setList:o,selected:r,setSelected:a,isEditing:u,setIsEditing:i,editForm:l,setEditForm:c,openDetail:C,startEditing:f,cancelEditing:m,commitEdit:w,remove:h}}const Fe=()=>{const[e,t,n]=Oe().split("-");return{year:e,month:t,day:n}},gr={year:"",month:"",day:"",hour:"09",minute:"00",memo:""};function fr(e=[]){const{list:t,setList:n,selected:o,setSelected:r,isEditing:a,setIsEditing:u,editForm:i,setEditForm:l,openDetail:c,commitEdit:g}=Ln(gr,e),{year:d,month:C,day:f}=Fe(),[m,w]=s.useState({year:d,month:C,day:f,hour:"09",minute:"00",memo:""});return{visitHistory:t,visitForm:m,setVisitForm:w,setVisit:h=>p=>w(y=>({...y,[h]:p})),selectedVisit:o,setSelectedVisit:r,isEditingVisit:a,setIsEditingVisit:u,editVisitForm:i,setEditVisitForm:l,openVisitDetail:c,handleVisitSave:h=>{n(E=>[m,...E]);const{year:p,month:y,day:S}=Fe();w({year:p,month:y,day:S,hour:"09",minute:"00",memo:""}),h?.()},handleVisitEditSave:()=>{g(h=>h.map(p=>o!=null&&Se(p,o)?i:p),i)},addVisit:h=>{n(p=>[h,...p])},removeVisit:h=>{n(p=>p.filter(y=>!Se(y,h)))},revertVisitEdit:(h,p)=>{n(y=>y.map(S=>S===p?h:S)),r(y=>y===p?h:y)}}}const On=e=>`${e.year.padStart(4,"0")}-${e.month.padStart(2,"0")}-${e.day.padStart(2,"0")} ${e.hour.padStart(2,"0")}:${e.minute.padStart(2,"0")}`,$e=e=>[...e].sort((t,n)=>{const o=On(t),r=On(n);return o<r?-1:o>r?1:0}),mr={year:"",month:"",day:"",hour:"09",minute:"00",memo:""};function pr(e,t=[]){const n=s.useMemo(()=>$e(t),[t]),{list:o,setList:r,selected:a,setSelected:u,isEditing:i,setIsEditing:l,editForm:c,setEditForm:g,openDetail:d,commitEdit:C,remove:f}=Ln(mr,n),[m,w]=s.useState([]),{year:h,month:p,day:y}=Fe(),[S,E]=s.useState({year:h,month:p,day:y,hour:"09",minute:"00",memo:""}),M=L=>k=>E(W=>({...W,[L]:k})),B=L=>{r(U=>$e([...U,S]));const{year:k,month:W,day:X}=Fe();E({year:k,month:W,day:X,hour:"09",minute:"00",memo:""}),L?.()},T=()=>{C(L=>$e(L.map(k=>a!=null&&Se(k,a)?c:k)),c)},D=s.useCallback(L=>{f(L)},[f]),I=s.useCallback(L=>{e({year:L.year,month:L.month,day:L.day,hour:L.hour,minute:L.minute,memo:L.memo,...L.id!=null?{id:L.id}:{}}),f(L)},[e,f]),v=s.useCallback(L=>{r(k=>k.filter(W=>!Se(W,L))),w(k=>[L,...k]),u(null)},[r,u]),$=s.useCallback(L=>{r(k=>$e([...k,L]))},[r]),F=s.useCallback(L=>{r(k=>k.filter(W=>!Se(W,L)))},[r]),P=s.useCallback((L,k)=>{r(W=>$e(W.map(X=>X===k?L:X))),u(W=>W===k?L:W)},[r,u]);return{scheduleList:o,noShowList:m,addSchedule:$,removeSchedule:F,revertScheduleEdit:P,scheduleForm:S,setScheduleForm:E,setSchedule:M,selectedSchedule:a,setSelectedSchedule:u,isEditingSchedule:i,setIsEditingSchedule:l,editScheduleForm:c,setEditScheduleForm:g,openScheduleDetail:d,handleScheduleSave:B,handleScheduleEditSave:T,handleScheduleDelete:D,handleScheduleToVisit:I,handleScheduleNoVisit:v}}const rt=[{value:"10",label:"10\uAC1C\uC529 \uBCF4\uAE30"},{value:"25",label:"25\uAC1C\uC529 \uBCF4\uAE30"},{value:"50",label:"50\uAC1C\uC529 \uBCF4\uAE30"},{value:"100",label:"100\uAC1C\uC529 \uBCF4\uAE30"}];function hr(e){const{t}=se.useTranslation(),[n,o]=s.useState(""),[r,a]=s.useState("25"),[u,i]=s.useState("all"),[l,c]=s.useState(1),g=s.useMemo(()=>e.filter(({item:w,status:h})=>!(n&&!w.memo.includes(n)||u!=="all"&&h!==u)),[e,n,u]),d=Math.max(1,Math.ceil(g.length/Number(r))),C=Math.min(l,d),f=s.useMemo(()=>g.slice((C-1)*Number(r),C*Number(r)),[g,C,r]),m=s.useMemo(()=>rt.map(w=>({...w,label:t("common.pageSizeLabel",{n:w.value,defaultValue:w.label})})),[t]);return{vapSearch:n,setVapSearch:o,vapPageSize:r,setVapPageSize:a,vapPageSizeOptions:m,vapStatus:u,setVapStatus:i,vapPage:C,setVapPage:c,vapFiltered:g,vapTotal:d,vapPageItems:f}}const yr=(()=>{let e=null;return()=>(e||(e=new Intl.Collator("ko")),e)})();function Rn(e,t){return yr().compare(e,t)}const at=new Map;function br(e){const t=at.get(e);if(t)return t;const n=[],o=/-?\d+(?:\.\d+)?/g;let r=0;for(let a=o.exec(e);a;a=o.exec(e)){let u=a.index,i=a[0];i[0]==="-"&&u>0&&!/\s/.test(e[u-1])&&(u+=1,i=i.slice(1)),u>r&&n.push(e.slice(r,u)),n.push(Number(i)),r=a.index+a[0].length}return r<e.length&&n.push(e.slice(r)),at.size>5e3&&at.clear(),at.set(e,n),n}function Sr(e){if(!/^[\d\s-]+$/.test(e))return null;const t=e.replace(/\D/g,"");return t.length<9||t.length>11?null:t[0]==="0"||t[0]==="1"&&e!==t?t:null}function wr(e,t){const n=c=>c==null||typeof c=="number"&&Number.isNaN(c)?"":String(c).trim(),o=n(e),r=n(t);if(o===r)return 0;const a=(c,g)=>{if(typeof c=="number"&&!Number.isNaN(c))return[c];const d=Sr(g);return d!==null?[d]:br(g)},u=a(e,o),i=a(t,r),l=Math.min(u.length,i.length);for(let c=0;c<l;c++){const g=u[c],d=i[c];if(typeof g=="number"&&typeof d=="number"){if(g!==d)return g-d;continue}if(typeof g=="number")return-1;if(typeof d=="number")return 1;const C=Rn(g,d);if(C!==0)return C}return u.length!==i.length?u.length-i.length:Rn(o,r)}const Pn=e=>e==null||typeof e=="number"&&Number.isNaN(e)||typeof e=="string"&&e.trim()==="";function Er(e,t,n){const o=Pn(e),r=Pn(t);if(o||r)return o===r?0:o?1:-1;const a=wr(e,t);return n?a:-a}function Ar(e,t,n){const{t:o}=se.useTranslation(),[r,a]=s.useState(()=>{const m=n?.initialPageSize;return m&&rt.some(w=>w.value===m)?m:"25"}),[u,i]=s.useState(1),[l,c]=s.useState(t);Object.is(l,t)||(c(t),u!==1&&i(1));const g=s.useMemo(()=>rt.map(m=>({...m,label:o("visits.showN",{n:m.value})})),[o]),d=s.useCallback(m=>{a(m),i(1)},[]),C=Math.max(1,Math.ceil(e.length/Number(r)));(u>C||u<1||!Number.isFinite(u))&&i(Math.min(Math.max(1,Number.isFinite(u)?u:1),C));const f=Math.min(Math.max(1,Number.isFinite(u)?u:1),C);return{pageRows:s.useMemo(()=>e.slice((f-1)*Number(r),f*Number(r)),[e,f,r]),pageSizeProps:{options:g,value:r,onChange:d},paginationProps:{page:f,total:C,onChange:i},setPage:i}}function vr(e){const[t,n]=s.useState(null),o=s.useRef(t),r=s.useRef(e?.onSortChange);r.current=e?.onSortChange;const a=s.useCallback(l=>{const c=o.current,g=c?.key===l?{key:l,asc:!c.asc}:{key:l,asc:!0};o.current=g,n(g),r.current?.(g)},[]),u=s.useCallback((l,c)=>({label:l,sortDir:t?.key===c?t.asc?"asc":"desc":null,onClick:()=>a(c)}),[t,a]),i=s.useCallback((l,c)=>{if(!t)return l;const{key:g,asc:d}=t;return[...l].sort((C,f)=>Er(c(C,g),c(f,g),d))},[t]);return{\uC815\uB82C:t,\uCE78:u,sortRows:i}}const Mn=e=>e==="\uC88C"||e==="\uC6B0"?e:null;function Br(){const[e,t]=s.useState(!1),[n,o]=s.useState("\uC88C"),[r,a]=s.useState({\uC88C:null,\uC6B0:null}),[u,i]=s.useState({\uC88C:[],\uC6B0:[]}),[l,c]=s.useState(!1),[g,d]=s.useState("\uC88C"),C=s.useCallback(m=>{const w=Mn(m.direction);w&&(a(h=>({...h,[w]:m})),i(h=>({...h,[w]:[m,...h[w]]})),t(!1))},[]),f=s.useCallback(m=>{const w=Mn(m.direction);w&&(a(h=>({...h,[w]:m})),c(!1))},[]);return{showDevice:e,setShowDevice:t,deviceDirection:n,setDeviceDirection:o,devices:r,setDevices:a,deviceHistory:u,setDeviceHistory:i,showDeviceList:l,setShowDeviceList:c,listForSide:g,setListForSide:d,handleDeviceSubmit:C,handleSelectFromList:f}}const Dr="__ihab_core_word_pool__";function ut(){return globalThis[Dr]??null}function H(e,t=Math.random){const n=e.slice();for(let o=n.length-1;o>0;o--){const r=Math.floor(t()*(o+1));[n[o],n[r]]=[n[r],n[o]]}return n}function ce(e,t,n=Math.random){return!Array.isArray(e)||e.length===0||t<=0?[]:t>=e.length?H(e,n):H(e,n).slice(0,t)}const _t={SAME_SOUND_PICK:{difficulty:!0,choseong:!0,group:"discrimination"},SAME_OR_DIFF:{difficulty:!0,choseong:!0,group:"discrimination"},HEAR_AND_PICK_SAME:{difficulty:!0,choseong:!0,group:"discrimination"},HEAR_AND_PICK_INCLUDED:{difficulty:!0,choseong:!0,group:"discrimination"},STARTS_WITH_SAME_SOUND:{difficulty:!1,choseong:!0,group:"discrimination"},LISTEN_AND_REMEMBER_ORDER:{difficulty:!1,choseong:!0,group:"attention"},MERGE_2_SYLLABLES:{difficulty:!1,choseong:!0,group:"synthesis"},MERGE_3_SYLLABLES:{difficulty:!1,choseong:!0,group:"synthesis"},MERGE_2_PHONEMES:{difficulty:!1,choseong:!0,group:"synthesis"},MERGE_3_PHONEMES:{difficulty:!1,choseong:!0,group:"synthesis"},DROP_1_FROM_2SYLL:{difficulty:!1,choseong:!0,group:"deletion"},DROP_1_FROM_3SYLL:{difficulty:!1,choseong:!0,group:"deletion"},DROP_PART_FROM_COMPOUND:{difficulty:!1,choseong:!0,group:"deletion"},DROP_FINAL_CONSONANT_FROM_1SYLL:{difficulty:!1,choseong:!0,group:"deletion"},REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:{difficulty:!1,choseong:!0,group:"deletion"},CHANGE_1_SYLL_IN_2SYLL:{difficulty:!0,choseong:!0,group:"substitution"},CHANGE_1_SYLL_IN_3SYLL:{difficulty:!0,choseong:!0,group:"substitution"},CHANGE_1_PHONEME_IN_1SYLL:{difficulty:!1,choseong:!0,group:"substitution"},CHANGE_1_PHONEME_IN_2SYLL:{difficulty:!0,choseong:!0,group:"substitution"}},Lt=Q.indexOf("\u3147"),it={DROP_FINAL_CONSONANT_FROM_1SYLL:{syllables:1,syllable:e=>e.jong>0},REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:{syllables:1,syllable:e=>e.jong===0&&e.cho!==Lt},MERGE_2_SYLLABLES:{syllables:2,syllable:()=>!0},MERGE_3_SYLLABLES:{syllables:3,syllable:()=>!0},MERGE_2_PHONEMES:{syllables:1,syllable:e=>e.jong===0&&e.cho!==Lt},MERGE_3_PHONEMES:{syllables:1,syllable:e=>e.jong>0&&!ot[e.jong]&&e.cho!==Lt}},Ot={cho:Q,jung:te,jong:oe},z=e=>Array.isArray(e)?e.length>0:!!e;function Rt(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){const o=e[n],r=t[n];if(!(!o||!r)&&(o.cho!==r.cho&&Q[o.cho]==="\u3147"!=(Q[r.cho]==="\u3147")||o.jung!==r.jung&&Jo(te[o.jung],te[r.jung])||o.jong!==r.jong&&o.jong===0!=(r.jong===0)))return!0}return!1}function Tr(e,t,n){const o=n.pronOf(e),r=n.decompOf,a=n.sameStructureOnly&&r?r(o):null,u=[];for(const i of t)i!==e&&(n.okSet&&!n.okSet.has(i)||n.pronOf(i)!==o&&(a&&r&&Rt(a,r(n.pronOf(i)))||u.push(i)));return u}function In(e,t,n){const o=t?.[e];if(!o)return[];const r=n.kind?o[n.kind]??[]:[...o.cho??[],...o.jung??[],...o.jong??[]];return Tr(e,r,n)}function Nr(e,t,n,o,r,a,u){const i=["cho","jung","jong"].filter(C=>z(e[C])),l={};for(const C of i){const f=e[C];l[C]=new Set(Array.isArray(f)?f:[f])}const c=r==="pron",g=new Map;for(const C of t){const f=n(a(C));if(f.some(p=>!p))continue;let m=f;if(!c&&(m=n(C),m.length!==f.length||m.some(p=>!p)))continue;const w=f.length,h=g.get(w);h?h.push({w:C,dPron:f,dPos:m}):g.set(w,[{w:C,dPron:f,dPos:m}])}const d=new Map;for(const[C,f]of g){const m=new Map,w=(h,p)=>{const y=h.dPos[p];return y!=null&&i.every(S=>l[S].has(Ot[S][y[S]]))};for(const h of f){let p;if(u==="head")p=w(h,0)?0:-1;else if(u==="tail")p=w(h,C-1)?C-1:-1;else if(u==="mid"){p=-1;for(let S=1;S<C-1;S++)if(w(h,S)){p=S;break}}else p=h.dPos.findIndex(S=>S!=null&&i.every(E=>l[E].has(Ot[E][S[E]])));if(p<0)continue;const y=m.get(p);y?y.push(h):m.set(p,[h])}for(const[h,p]of m){const y=i.includes("cho"),S=i.includes("jung"),E=i.includes("jong"),M=T=>{let D="";for(let I=0;I<C;I++){const v=T[I];I===h?D+=(y?"*":v.cho)+"."+(S?"*":v.jung)+"."+(E?"*":v.jong)+".":D+=v.cho+"."+v.jung+"."+v.jong+"."}return D},B=new Map;for(const T of f){const D=M(T.dPron),I=B.get(D);I?I.push(T):B.set(D,[T])}for(const T of p){const D=B.get(M(T.dPron))??[],I=[];for(const v of D){if(v.w===T.w)continue;let $=!0;for(const F of i){const P=T.dPron[h][F],L=v.dPron[h][F];if(L===P){$=!1;break}if(c&&l[F].has(Ot[F][L])){$=!1;break}}$&&(o&&Rt(T.dPron,v.dPron)||I.push(v.w))}d.set(T.w,I)}}}return d}const _r=e=>e==null?[]:Array.isArray(e)?e:[e];function Lr(e){if([...e].length!==1)return"";const t=V(e);if(!t)return"";const n=Pe(oe[t.jong]),o=n===""?0:oe.indexOf(n);return fe(t.cho,t.jung,o<0?0:o)}function kn(e,t){return t.get(e)||Lr(e)||e}function lt(e){return e?z(e.cho)?"cho":z(e.jung)?"jung":z(e.jong)?"jong":null:null}function we(e,t){const n=(r,a)=>!z(r)||_r(r).includes(a),o=t.jongNone?e.jong===0:n(t.jong,oe[e.jong]);return n(t.cho,Q[e.cho])&&n(t.jung,te[e.jung])&&o}function He(e,t,n){const o=[...e];if(n!=="pron")return o.map(a=>V(a));const r=[...t.get(e)||e];return r.length!==o.length?o.map(a=>V(a)):r.map(a=>V(a))}function Ge(e,t,n,o,r){const a=t==="cho"?Q:t==="jung"?te:oe,u=e[t],i=[],l=d=>t==="jung"?Rr(kn(d,r)):kn(d,r),c=new Map([[l(n),-1]]),g=H(a.map((d,C)=>C).filter(d=>d!==u&&(t!=="cho"||a[d]!=="\u3147")&&(t!=="jong"||d!==0)));for(const d of g){if(i.length>=o)break;const C=t==="cho"?fe(d,e.jung,e.jong):t==="jung"?fe(e.cho,d,e.jong):fe(e.cho,e.jung,d),f=l(C),m=c.get(f);if(m!==void 0){t==="jung"&&m>=0&&r.has(C)&&!r.has(i[m])&&(i[m]=C);continue}c.set(f,i.length),i.push(C)}return i}const Or={\u3154:"\u3150",\u3156:"\u3152",\u315A:"\u3159",\u315E:"\u3159"};function Rr(e){if([...e].length!==1)return e;const t=V(e);if(!t)return e;const n=Or[te[t.jung]];return n?fe(t.cho,te.indexOf(n),t.jong):e}function Pr(e,t,n,o,r,a=null){const u=[...e];if(u.length!==2)return null;const i=u.map(d=>V(d));if(i.some(d=>!d))return null;const l=He(e,n,o);if(l.some(d=>!d))return null;const c=lt(t);let g=c&&t?l.map((d,C)=>we(d,t)?C:-1).filter(d=>d>=0):[0,1];if(a!=null&&(g=g.filter(d=>d!==a)),!g.length)return null;for(const d of H(g)){const C=u[d];if(!r.has(C))continue;const f=Ge(i[d],c??"cho",C,40,n),m=[];for(const w of f)if(w!==C&&r.has(w)&&!m.includes(w)&&m.push(w),m.length>=2)break;if(!(m.length<2))return{question:e,distractors:[C,...m]}}return null}function Mr(e,t,n,o,r,a=null){const u=[...e];if(u.length!==3)return null;const i=u.map(d=>V(d));if(i.some(d=>!d))return null;const l=He(e,n,o);if(l.some(d=>!d))return null;const c=lt(t),g=c&&t?l.map((d,C)=>we(d,t)?C:-1).filter(d=>d>=0):[0,1,2];if(!g.length)return null;for(const d of H(g))for(const C of H([0,1,2].filter(f=>f!==d&&(a==null||f===a)))){const f=[0,1,2].filter(y=>y!==C),m=f.map(y=>u[y]).join("");if(!r.has(m))continue;const w=f.indexOf(d),h=Ge(i[d],c??"cho",u[d],40,n),p=[];for(const y of h){const S=f.map(M=>u[M]);S[w]=y;const E=S.join("");if(E!==m&&r.has(E)&&!p.includes(E)&&p.push(E),p.length>=2)break}if(!(p.length<2))return{question:e,distractors:[m,...p]}}return null}function Ir(e,t,n,o,r,a=null){const u=[...e],i=u.length;if(i<2)return null;const l=[];for(let g=1;g<=i-1;g++)l.push({remain:u.slice(0,g).join(""),dropped:u.slice(g).join(""),droppedEnd:1}),l.push({remain:u.slice(i-g).join(""),dropped:u.slice(0,i-g).join(""),droppedEnd:0});const c=lt(t);for(const{remain:g,dropped:d,droppedEnd:C}of H(l)){if(a!=null&&C!==a||[...g].length===1&&[...d].length===1||g===e||!r.has(g)||!r.has(d))continue;const f=[...g],m=f.map(p=>V(p));if(m.some(p=>!p))continue;const w=He(g,n,o);if(w.some(p=>!p))continue;const h=c&&t?w.map((p,y)=>we(p,t)?y:-1).filter(p=>p>=0):f.map((p,y)=>y);if(h.length)for(const p of H(h)){const y=Ge(m[p],c??"cho",f[p],40,n),S=[];for(const E of y){const M=[...f];M[p]=E;const B=M.join("");if(B!==g&&r.has(B)&&!S.includes(B)&&S.push(B),S.length>=2)break}if(S.length>=2)return{question:e,distractors:[g,...S],dropped:d}}}return null}function kr(e,t,n,o,r,a=null){if([...e].length!==1)return null;const u=V(n.get(e)||e);if(!u||u.jong===0)return null;const i=fe(u.cho,u.jung,0),l=Ge({cho:u.cho,jung:u.jung,jong:0},"cho",i,2,n);return l.length<2?null:{question:e,distractors:[i,...l]}}const Pt=Q.indexOf("\u3147");function xr(e,t,n,o,r,a=null){if([...e].length!==1)return null;const u=V(n.get(e)||e);if(!u||u.jong!==0||u.cho===Pt)return null;const i=fe(Pt,u.jung,0),l=Ge({cho:Pt,jung:u.jung,jong:0},"jung",i,2,n);return l.length<2?null:{question:e,distractors:[i,...l]}}function jr(e){const t=new Map;for(const n of e){const o=[...n],r=o.length;if(!(r<2||r>3))for(let a=0;a<r;a++){let u=r+"|"+a+"|";for(let l=0;l<r;l++)u+=l===a?"*":o[l];const i=t.get(u);i?i.push(n):t.set(u,[n])}}return t}function Fr(e,t,n,o,r,a=null,u=null,i=2){const l=[...e],c=l.length;if(c<2||c>3)return null;const g=l.map(y=>V(y));if(g.some(y=>!y))return null;const d=He(e,n,o);if(d.some(y=>!y))return null;const C=y=>n.get(y)??y,f=C(e),m=!!t&&(z(t.cho)||z(t.jung)||z(t.jong)),w=!!u&&(z(u.cho)||z(u.jung)||z(u.jong)),h=y=>{let S=c+"|"+y+"|";for(let E=0;E<c;E++)S+=E===y?"*":l[E];return S};let p;if(a!=null){if(a>=c||m&&!we(d[a],t))return null;p=[a]}else m?p=d.map((y,S)=>we(y,t)?S:-1).filter(y=>y>=0):p=Array.from({length:c},(y,S)=>S);for(const y of H(p)){const S=r.get(h(y))??[],E=[],M=[];for(const v of S){if(v===e)continue;const $=[...v].map(k=>V(k)),F=g[y],P=$[y];if(!F||!P)continue;let L=0;if(F.cho!==P.cho&&L++,F.jung!==P.jung&&L++,F.jong!==P.jong&&L++,!(L<i||C(v)===f))if(w){const k=He(v,n,o)[y];k&&we(k,u)?E.push(v):M.push(v)}else E.push(v)}if(!E.length)continue;const B=H(E)[0],T=[],D=new Set([f,C(B)]),I=w?M:E.filter(v=>v!==B);for(const v of H(I)){const $=C(v);if(!D.has($)&&(D.add($),T.push(v),T.length>=2))break}if(!w&&T.length<2)for(const v of H(S)){if(v===e||v===B)continue;const $=C(v);if(!D.has($)&&(D.add($),T.push(v),T.length>=2))break}if(!(T.length<2))return{question:e,distractors:[B,...T]}}return null}let st=null,xn=null,jn=null;function $r(){const e=ut();if(e&&e.entries.length>0){const t=ke();if(st&&xn===e&&jn===t)return st;const n=new Set,o=[];for(const r of e.entries)!r.word||n.has(r.word)||(n.add(r.word),o.push({w:r.word,s:r.syllables,p:t?.[r.word]?[...t[r.word].cho??[],...t[r.word].jung??[],...t[r.word].jong??[]]:[],pron:r.pronunciation||r.word,grade:r.grade}));return st=o,xn=e,jn=t,st}return[]}const de=new Proxy([],{get(e,t){const n=$r(),o=n[t];return typeof o=="function"?o.bind(n):o}});function Mt(e){return e.length?e[Math.floor(Math.random()*e.length)]:void 0}function re(e,t){if(t>=e.length)return H(e);if(t===0)return[];const n=e.slice();for(let o=0;o<t;o++){const r=o+Math.floor(Math.random()*(n.length-o)),a=n[o];n[o]=n[r],n[r]=a}return n.slice(0,t)}let It=null,Fn=null;function me(){const e=ut();if(It&&Fn===e)return It;const t=new Map;for(const n of de)n.w&&t.set(n.w,n.pron);return It=t,Fn=e,t}function q(e){return me().get(e)||e}function ct(e,t,n=new Set){const o=[];for(const r of H(e)){if(o.length>=t)break;const a=q(r);n.has(a)||(n.add(a),o.push(r))}return o}let Hr=0;function Z(e){return`${e}-rt-${++Hr}`}function Te(e){const t=Dn();if(!t||t.total===0){const r=new Set;for(const a of e)r.add(a);return r}const n=Tn(),o=new Set;for(const r of e)n.has(r)&&o.add(r);return o}const dt=new Map;let $n=null,Hn=null;function Ve(e){return e==null?"":Array.isArray(e)?e.slice().sort().join(","):e}function kt(e){const t=Ve(e.choseong),n=e.composition,o=n?.syllable==null?"":Array.isArray(n.syllable)?n.syllable.slice().sort().join(","):String(n.syllable),r=n?`${Ve(n.cho)}/${Ve(n.jung)}/${Ve(n.jong)}/${n.jongNone?"N":""}/${o}`:"",a=Ve(e.grade);return`${e.difficulty??""}|${t}|${r}|${e.excludeNoImage?"1":"0"}|${e.count??""}|x${e.contrastCount??1}|${e.fullCount?"F":""}|s${e.sameStructureOnly===!1?"0":"1"}|v${e.phonemeView==="pron"?"p":"c"}|g${a}|t${e.targetSyllable??""}|c${e.choicesPerItem??""}`}const xt=new Map;function Gr(e){return kt({...e,count:void 0,choicesPerItem:void 0,fullCount:!1})}async function ne(e){const t=ut(),n=ke();(t!==$n||n!==Hn)&&(dt.clear(),xt.clear(),$n=t,Hn=n);const o=kt(e);return dt.has(o)||dt.set(o,Vr(e)),dt.get(o)}function Gn(e){if(!e)return null;const t=u=>u==null?null:Array.isArray(u)?u.length?u:null:[u],n=t(e.cho),o=t(e.jung),r=!!e.jongNone,a=r?null:t(e.jong);return n||o||a||r?r&&!n&&!o&&!a?u=>tr(u):u=>or(u,{cho:n,jung:o,jong:a,jongNone:r}):null}function Vn(e){const t=e.grade&&e.grade.length>0?new Set(e.grade):null,n=e.composition??null,o=n?.syllable!=null?new Set(Array.isArray(n.syllable)?n.syllable:[n.syllable]):null,r=n?[Gn(n),o?u=>o.has(Me(u)):null].filter(u=>u!=null):[];if(!t&&r.length===0)return null;const a=e.phonemeView==="pron";return u=>{if(t&&(!u.grade||!t.has(u.grade)))return!1;if(r.length===0)return!0;const i=a?q(u.w):u.w;return r.every(l=>l(i))}}async function Vr(e){const{difficulty:t=null,choseong:n=null,composition:o=null,targetSyllable:r=null,excludeNoImage:a=!1}=e,u=e.grade&&e.grade.length>0?new Set(e.grade):null,i=e.sameStructureOnly??!0,l=e.phonemeView==="pron"?"pron":"char",c=Math.max(1,e.contrastCount??1),g=t==="cho"||t==="jung"||t==="jong",d=g&&c>=2,C=t==="count",f=n?new Set(Array.isArray(n)?n:[n]):null,m=o?.syllable!=null?new Set(Array.isArray(o.syllable)?o.syllable:[o.syllable]):null,w=o?[Gn(o),m?A=>m.has(Me(A)):null].filter(A=>A!=null):[],h=t==="random"||t===null,p=h||C,y=h||d||C;let S=de.filter(A=>!A.w||u&&(!A.grade||!u.has(A.grade))?!1:y?!0:Array.isArray(A.p)&&A.p.length>0);f&&(S=S.filter(A=>{for(const N of f)if(Xo(A.w,N))return!0;return!1})),w.length>0&&(S=S.filter(A=>{const N=l==="pron"?q(A.w):A.w;return w.every(R=>R(N))})),r&&(S=S.filter(A=>A.w[0]===r));let E;if(a){const A=new Set;for(const N of S)if(A.add(N.w),Array.isArray(N.p))for(const R of N.p)A.add(R);if(p)for(const N of de)N.w&&A.add(N.w);E=Te(A)}else{const A=new Set;for(const N of S)if(A.add(N.w),Array.isArray(N.p))for(const R of N.p)A.add(R);if(p)for(const N of de)N.w&&A.add(N.w);E=A}let M=null;if(d){const A=new Set;for(const N of de)N.w&&A.add(N.w);M=a?Te(A):A}const B=S.filter(A=>E.has(A.w)),T=600,D=Array.from(E),I=D.length>T?re(D,T):D,v=C&&o!=null&&(z(o.cho)||z(o.jung)||z(o.jong)),$=2500,F=new Map;if(C&&!v&&c>=2){for(const A of D){const N=Me(A),R=F.get(N);R?R.push(A):F.set(N,[A])}for(const[A,N]of F)N.length>$&&F.set(A,re(N,$))}const P=Qo();let L=null;if(v){const A=Gr(e),N=a?Tn():null,R=xt.get(A);L=R&&R.\uC774\uBBF8\uC9C0\uC9D1\uD569===N?R.map:Nr(o,D,P,i,l,q),xt.set(A,{\uC774\uBBF8\uC9C0\uC9D1\uD569:N,map:L})}const k=500,W=1500,X=e.fullCount?B:t==="random"?B.length>k?re(B,k):B:B.length>W?re(B,W):B,U=ke(),he=[];for(const A of X){let N;const R=q(A.w);if(d)N=ar(A.w,t,c,M,24).filter(G=>q(G)!==R);else if(C)v?N=(L.get(A.w)??[]).filter(G=>q(G)!==R):c<=1?N=In(A.w,U,{okSet:E,pronOf:q,decompOf:P,sameStructureOnly:!1}):N=(F.get(Me(A.w))??[]).filter(G=>{if(G===A.w||q(G)===R)return!1;const Y=ur(R,q(G));return c>=5?Y>=5:Y===c});else if(h){const G=Y=>Y!==A.w&&Y.length===A.w.length&&q(Y)!==R;if(e.fullCount){const Y=Math.max(1,(e.choicesPerItem??3)-1),ee=[],ye=new Set;for(const Le of I){if(!G(Le))continue;const Ee=q(Le);if(!ye.has(Ee)&&(ye.add(Ee),ee.push(Le),ee.length>=Y))break}N=ee}else N=I.filter(G)}else{const G=t;N=In(A.w,U,{kind:G,okSet:E,pronOf:q,decompOf:P,sameStructureOnly:!1}),N.length===0&&(N=(I.length>30?re(I,30):I).filter(Y=>Y!==A.w&&Zo(A.w,Y)===t&&q(Y)!==R))}if(i&&N.length>0&&(g||C&&!v)){const G=P(q(A.w));N=N.filter(Y=>!Rt(G,P(q(Y))))}N.length!==0&&he.push({word:A,usable:N})}return he}async function Wn(e,t){const{choicesPerItem:n=3,count:o=10}=t,r=n-1,a=(await ne(t)).filter(i=>i.usable.length>=r),u=[];for(const i of H(a)){if(u.length>=o)break;const l=ct(i.usable,r);if(l.length<r)continue;const c=H([i.word.w,...l]);u.push({id:Z(e+"-item"),index:u.length+1,word:i.word.w,syllables:i.word.s,choices:c,answerIndex:c.indexOf(i.word.w)})}return u}async function Wr(e){const{choicesPerItem:t=3,count:n=10}=e,o=t-1,r=await ne({...e,difficulty:null});if(r.length<t)return[];const a=e.composition??null,u=[],i=H([...r]);for(const l of i){if(u.length>=n)break;const c=l.word.w,g=[...l.word.pron||c],d=a&&lt(a)?g.filter(h=>{const p=V(h);return!!p&&we(p,a)}):[],C=Mt(d.length?d:g);if(!C)continue;const f=r.filter(h=>h.word.w!==c&&h.word.s===l.word.s&&!(h.word.pron||h.word.w).includes(C)&&h.word.pron!==l.word.pron);if(f.length<o)continue;const m=ct(f.map(h=>h.word.w),o);if(m.length<o)continue;const w=H([c,...m]);u.push({id:Z("HPI-item"),index:u.length+1,targetSyllable:C,word:c,choices:w,answerIndex:w.indexOf(c)})}return u}async function Yr(e){const{count:t=10}=e,n=(await ne(e)).filter(a=>a.usable.length>=1);if(!n.length)return[];const o=n.length>=t?re(n,t):H(Array.from({length:t},(a,u)=>n[u%n.length])),r=H(Array.from({length:t},(a,u)=>u<Math.ceil(t/2)));return o.map((a,u)=>{const i=r[u];let l;if(i)l=[a.word.w,a.word.w];else{const c=Mt(a.usable);l=Math.random()<.5?[a.word.w,c]:[c,a.word.w]}return{id:Z("SOD-item"),index:u+1,word:a.word.w,pair:l,same:i}})}async function Kr(e){const{choicesPerItem:t=3,count:n=10}=e,o=t-1,r=await ne({...e,difficulty:null});if(r.length<t+1)return[];const a=r.map(C=>C.word.w),u=new Map(r.map(C=>[C.word.w,C.word.pron])),i=C=>(u.get(C)||C)[0]??"",l={};for(const C of r){const f=i(C.word.w);f&&(l[f]||(l[f]=[]),l[f].push(C.word.w))}const c=Object.entries(l).filter(([,C])=>C.length>=2).map(([C])=>C);if(c.length===0)return[];const g=[],d=H([...c]);for(let C=0;g.length<n&&C<n*4;C++){const f=d[C%d.length],m=l[f];if(m.length<2)continue;const w=H([...m]),h=w[0],p=w[1];if(!h||!p||h===p||(u.get(h)||h)===(u.get(p)||p))continue;const y=u.get(p)||p,S=a.filter(B=>i(B)!==f&&B!==h&&B!==p&&B.length===p.length&&(u.get(B)||B)!==y);if(S.length<o)continue;const E=ct(S,o);if(E.length<o)continue;const M=H([p,...E]);g.push({id:Z("SWS-item"),index:g.length+1,sourceWord:h,targetSyllable:f,word:p,choices:M,answerIndex:M.indexOf(p)})}return g}function Yn(e,t,n){const o=me(),r=l=>o.get(l)||l,a=(l,c)=>{const g=[...l],d=[...c];if(g.length!==d.length)return-1;let C=-1;for(let f=0;f<g.length;f++)if(g[f]!==d[f]){if(C>=0)return-1;C=f}return C},u=e.map(l=>({e:l,swaps:l.usable.filter(c=>!!c&&a(l.word.w,c)>=0&&r(c)!==r(l.word.w))})).filter(l=>l.swaps.length>0),i=[];for(const{e:l,swaps:c}of H(u)){if(i.length>=t)break;const g=Mt(c)??"",d=[...l.word.w],C=[...g],f=a(l.word.w,g),m=ct(l.usable.filter(w=>w&&w!==g),2,new Set([r(g),r(l.word.w)]));m.length<2||i.push({id:Z(n),index:i.length+1,word:l.word.w,original:l.word.w,changed:g,changedFrom:f>=0?d[f]:"",changedTo:f>=0?C[f]:"",distractors:m})}return i}async function Kn(e,t,n){const{count:o=10}=t,r=me(),a=de.filter(m=>m.w&&m.s===e),u=t.excludeNoImage?Te(a.map(m=>m.w)):null,i=u?a.filter(m=>u.has(m.w)):a,l=new Set(i.map(m=>m.w)),c=jr(l),g=t.phonemeView??"char",d=t.composition??null,C=Vn(t),f=[];for(const m of H(i)){if(f.length>=o)break;if(C&&!C(m))continue;const w=Fr(m.w,d,r,g,c,null,null);if(!w)continue;const h=w.distractors[0],p=[...m.w],y=[...h],S=p.findIndex((E,M)=>E!==y[M]);f.push({id:Z(n),index:f.length+1,word:m.w,original:m.w,changed:h,changedFrom:S>=0?p[S]:"",changedTo:S>=0?y[S]:"",distractors:w.distractors.slice(1)})}return f}async function Ur(e){return Kn(2,e,"CS2-item")}async function zr(e){return Kn(3,e,"CS3-item")}async function qr(e){const t=(await ne({...e,difficulty:"count",contrastCount:1})).filter(n=>n.word.s===1&&n.usable.length>=1);return Yn(t,e.count??10,"CP1-item")}async function Jr(e){const t=e.difficulty&&e.difficulty!=="random"?e.difficulty:"count",n=(await ne({...e,difficulty:t,contrastCount:1})).filter(o=>o.word.s===2&&o.usable.length>=1);return Yn(n,e.count??10,"CP2-item")}async function Qr(e){const{count:t=10}=e,n=(await ne({...e})).filter(o=>o.word.s===2);return re(n,t).map((o,r)=>({id:Z("M2S-item"),index:r+1,word:o.word.w,answer:o.word.w,parts:[...o.word.w]}))}async function Zr(e){const{count:t=10}=e,n=(await ne({...e})).filter(o=>o.word.s===3);return re(n,t).map((o,r)=>({id:Z("M3S-item"),index:r+1,word:o.word.w,answer:o.word.w,parts:[...o.word.w]}))}function jt(e){const t=de.map(n=>n.w);return e.excludeNoImage?Te(t):new Set(t)}async function Xr(e){const{count:t=10}=e,n=(await ne({...e})).filter(i=>i.word.s===2),o=me(),r=jt(e),a=e.phonemeView??"char",u=[];for(const i of H(n)){if(u.length>=t)break;const l=Pr(i.word.w,e.composition??null,o,a,r);if(!l)continue;const[c,...g]=l.distractors,d=[...i.word.w],C=d[0]===c?d[1]:d[0];u.push({id:Z("D2-item"),index:u.length+1,original:i.word.w,word:i.word.w,dropped:C,missingResult:c,distractors:g})}return u}async function ea(e){const{count:t=10}=e,n=(await ne({...e})).filter(i=>i.word.s===3),o=me(),r=jt(e),a=e.phonemeView??"char",u=[];for(const i of H(n)){if(u.length>=t)break;const l=Mr(i.word.w,e.composition??null,o,a,r);if(!l)continue;const[c,...g]=l.distractors,d=[...i.word.w];let C="";for(let f=0;f<d.length;f++)if(d.filter((m,w)=>w!==f).join("")===c){C=d[f];break}u.push({id:Z("D3-item"),index:u.length+1,original:i.word.w,word:i.word.w,dropped:C,missingResult:c,distractors:g})}return u}async function ta(e){const{count:t=10}=e,n=(await ne({...e})).filter(i=>i.word.s>=3),o=me(),r=jt(e),a=e.phonemeView??"char",u=[];for(const i of H(n)){if(u.length>=t)break;const l=Ir(i.word.w,e.composition??null,o,a,r);if(!l)continue;const[c,...g]=l.distractors,d=i.word.w,C=l.dropped??(d.startsWith(c)?d.slice(c.length):d.endsWith(c)?d.slice(0,d.length-c.length):"");u.push({id:Z("DPC-item"),index:u.length+1,original:d,word:d,dropped:C,missingResult:c,distractors:g})}return u}async function na(e){const{count:t=10}=e,n=(await ne({...e})).map(o=>o.word.w);return n.length<3?[]:Array.from({length:t},(o,r)=>{const a=re(n,3);return{id:Z("LRO-item"),index:r+1,sequence:a,choices:H(a)}})}function Ct(e,t,n){const o=de.filter(i=>i.w&&i.s===e),r=t.excludeNoImage?Te(o.map(i=>i.w)):null,a=Vn(t),u=[];for(const i of o)if(!(r&&!r.has(i.w))&&!(a&&!a(i))){if(n){const l=V(i.w);if(!l||!n(l))continue}u.push(i)}return u}function oa(e){const t=Ct(1,e,it.MERGE_2_PHONEMES.syllable);return re(t,e.count??10).map((n,o)=>{const r=V(n.w);return{id:Z("M2P-item"),index:o+1,parts:[Q[r.cho],te[r.jung]],answer:n.w,word:n.w}})}function ra(e){const t=Ct(1,e,it.MERGE_3_PHONEMES.syllable);return re(t,e.count??10).map((n,o)=>{const r=V(n.w);return{id:Z("M3P-item"),index:o+1,parts:[Q[r.cho],te[r.jung],oe[r.jong]],answer:n.w,word:n.w}})}function aa(e){const t=it.DROP_FINAL_CONSONANT_FROM_1SYLL,n=Ct(t.syllables,e,t.syllable),o=me(),r=[];for(const a of H(n)){if(r.length>=(e.count??10))break;const u=kr(a.w,null,o);if(!u)continue;const[i,...l]=u.distractors;r.push({id:Z("DFC-item"),index:r.length+1,original:a.w,word:a.w,result:i,distractors:l})}return r}function ua(e){const t=it.REMOVE_CONSONANT_AND_IDENTIFY_PHONEME,n=Ct(t.syllables,e,t.syllable),o=me(),r=[];for(const a of H(n)){if(r.length>=(e.count??10))break;const u=xr(a.w,null,o);if(!u)continue;const i=V(o.get(a.w)||a.w);if(!i)continue;const[l,...c]=u.distractors;r.push({id:Z("RCP-item"),index:r.length+1,base:a.w,word:a.w,missingConsonant:Q[i.cho],remaining:l,distractors:c})}return r}const gt=new Map;let Un=null,zn=null;async function qn(e,t={}){const n=ut(),o=ke();(n!==Un||o!==zn)&&(gt.clear(),Un=n,zn=o);const r=`${e}:${kt(t)}`;if(gt.has(r))return gt.get(r);const a=await la(e,t);return gt.set(r,a),a}const ia={SAME_SOUND_PICK:e=>Wn("SSP",e),HEAR_AND_PICK_SAME:e=>Wn("HPS",e),HEAR_AND_PICK_INCLUDED:e=>Wr(e),SAME_OR_DIFF:e=>Yr(e),STARTS_WITH_SAME_SOUND:e=>Kr(e),LISTEN_AND_REMEMBER_ORDER:e=>na(e),MERGE_2_SYLLABLES:e=>Qr(e),MERGE_3_SYLLABLES:e=>Zr(e),MERGE_2_PHONEMES:e=>oa(e),MERGE_3_PHONEMES:e=>ra(e),DROP_1_FROM_2SYLL:e=>Xr(e),DROP_1_FROM_3SYLL:e=>ea(e),DROP_PART_FROM_COMPOUND:e=>ta(e),DROP_FINAL_CONSONANT_FROM_1SYLL:e=>aa(e),REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:e=>ua(e),CHANGE_1_SYLL_IN_2SYLL:e=>Ur(e),CHANGE_1_SYLL_IN_3SYLL:e=>zr(e),CHANGE_1_PHONEME_IN_1SYLL:e=>qr(e),CHANGE_1_PHONEME_IN_2SYLL:e=>Jr(e)};async function la(e,t={}){const n=ia[e];return n?await n(t):[]}async function sa(e){const t=["random","count"],n=Object.keys(_t);let o=0;for(const r of t)for(const a of n){const u=_t[a];qn(a,{difficulty:u.difficulty?r:null,contrastCount:1,composition:null,count:5,excludeNoImage:e,sameStructureOnly:!0,phonemeView:"char",grade:null}).catch(()=>{}),++o%6===0&&await new Promise(i=>setTimeout(i,0))}}async function ca(e){const t=await ne({...e,fullCount:!0}),n=e.choicesPerItem!=null?Math.max(1,e.choicesPerItem-1):1;return t.filter(o=>new Set(o.usable.map(r=>q(r))).size>=n).length}async function da(e={}){const t=[];for(const i of de)i.w&&t.push(i.w);const n=e.excludeNoImage?Te(t):t,o=new Set,r=new Set,a=new Set,u=new Set;for(const i of n){u.add(Me(i));for(const l of i){const c=V(l);if(c&&(Q[c.cho]!=="\u3147"&&o.add(Q[c.cho]),r.add(te[c.jung]),c.jong>0)){a.add(oe[c.jong]);const g=ot[c.jong];g&&g.forEach(d=>a.add(d))}}}return{cho:o,jung:r,jong:a,syllable:u}}const ue="\uC804\uCCB4";var Ca={statusFilter:"\uC0C1\uD0DC \uD544\uD130",pageSizeSelect:"\uD398\uC774\uC9C0\uB2F9 \uD45C\uC2DC \uAC1C\uC218",selectedCount:"{{count}}\uAC1C \uC120\uD0DD\uB428",cancel:"\uCDE8\uC18C",info:"\uC124\uBA85",errorState:{message:"\uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",retry:"\uB2E4\uC2DC \uC2DC\uB3C4"},save:"\uC800\uC7A5",confirm:"\uD655\uC778",close:"\uB2EB\uAE30",back:"\uB4A4\uB85C",emptyTrainingName:"\uD6C8\uB828 \uC774\uB984\uC774 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.",remove:"\uC81C\uAC70",image:"\uC774\uBBF8\uC9C0",delete:"\uC0AD\uC81C",reset:"\uCD08\uAE30\uD654",update:"\uC5C5\uB370\uC774\uD2B8",download:"\uB2E4\uC6B4\uB85C\uB4DC",search:"\uAC80\uC0C9",empty:"\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",yes:"\uC608",no:"\uC544\uB2C8\uC624",all:"\uC804\uCCB4",none:"\uC5C6\uC74C",days:"{{count}}\uC77C",loadMore:"\uB354\uBCF4\uAE30",more:"\uB354\uBCF4\uAE30",moreFor:"{{name}} \uB354\uBCF4\uAE30",retry:"\uB2E4\uC2DC \uC2DC\uB3C4",prevPage:"\uC774\uC804 \uD398\uC774\uC9C0",nextPage:"\uB2E4\uC74C \uD398\uC774\uC9C0",play:"\uC7AC\uC0DD",pause:"\uBA48\uCDA4",playPause:"\uC7AC\uC0DD / \uBA48\uCDA4",replay:"\uB2E4\uC2DC\uB4E3\uAE30",subscription:"\uC774\uC6A9\uAD8C",done:"\uC644\uB8CC",failed:"\uC2E4\uD328",continue:"\uACC4\uC18D",notification:"\uC54C\uB9BC",emptyList:"\uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",menu:"\uBA54\uB274",resetSelection:"\uC120\uD0DD \uCD08\uAE30\uD654",pageSizeLabel:"{{n}}\uAC1C\uC529 \uBCF4\uAE30",totalCountPrefix:"\uCD1D ",totalCountSuffix:"\uAC1C",expand:"\uD3BC\uCE58\uAE30",collapse:"\uC811\uAE30",popup:"\uD31D\uC5C5",codeBlock:"\uCF54\uB4DC \uBE14\uB85D",totalPrefix:"\uCD1D ",copyCode:"\uCF54\uB4DC \uBCF5\uC0AC",copied:"\uBCF5\uC0AC\uB428",col:{problem:"\uBB38\uC81C"},phonetics:{place:{labial:"\uC591\uC21C\uC74C",alveolar:"\uCE58\uC870\uC74C",palatal:"\uACBD\uAD6C\uAC1C\uC74C",velar:"\uC5F0\uAD6C\uAC1C\uC74C",glottal:"\uC131\uBB38\uC74C"},vowel:{frontHigh:"\uC804\uC124 \uACE0\uBAA8\uC74C",backHighUnrounded:"\uD6C4\uC124 \uACE0\uBAA8\uC74C \uD3C9\uC21C",backHighRounded:"\uD6C4\uC124 \uACE0\uBAA8\uC74C \uC6D0\uC21C",frontMid:"\uC804\uC124 \uC911\uBAA8\uC74C",backMidUnrounded:"\uD6C4\uC124 \uC911\uBAA8\uC74C \uD3C9\uC21C",backMidRounded:"\uD6C4\uC124 \uC911\uBAA8\uC74C \uC6D0\uC21C",low:"\uC800\uBAA8\uC74C"},glide:{j:"j\uD65C\uC74C",w:"w\uD65C\uC74C",velar:"\u0270\uD65C\uC74C"}},unknownError:"\uC54C \uC218 \uC5C6\uB294 \uC624\uB958",networkError:"\uB124\uD2B8\uC6CC\uD06C \uC5F0\uACB0\uC774 \uBD88\uC548\uC815\uD569\uB2C8\uB2E4. \uC5F0\uACB0 \uC0C1\uD0DC\uB97C \uD655\uC778\uD55C \uB4A4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694."},ga={rangeSelect:"\uAE30\uAC04 \uC120\uD0DD",dow:["\uC77C","\uC6D4","\uD654","\uC218","\uBAA9","\uAE08","\uD1A0"],yearMonth:"{{year}}\uB144 {{month}}\uC6D4",prevMonth:"\uC774\uC804 \uB2EC",addOnDate:"{{date}}\uC5D0 \uBC29\uBB38 \uB4F1\uB85D",nextMonth:"\uB2E4\uC74C \uB2EC",prevWeek:"\uC774\uC804 \uC8FC",nextWeek:"\uB2E4\uC74C \uC8FC",legend:{visited:"\uBC29\uBB38",scheduled:"\uC608\uC57D",noVisit:"\uBBF8\uBC29\uBB38"},periodSelect:"\uAE30\uAC04 \uB2E8\uC704"},fa={planSuffix:"\uC774\uC6A9\uAD8C",labeledPlan:"{{label}} \uC774\uC6A9\uAD8C",couponCode:"\uC774\uC6A9\uAD8C \uCF54\uB4DC",specialLabel:"\uC624\uD508\uD2B9\uAC00",unitDay:"\uC77C",unitYear:"\uB144",remainingDay:"{{n}}\uC77C \uB0A8\uC74C",remainingHour:"{{n}}\uC2DC\uAC04 \uB0A8\uC74C",remainingMinute:"{{n}}\uBD84 \uB0A8\uC74C",remainingSecond:"{{n}}\uCD08 \uB0A8\uC74C",menu:{use:"\uC0AC\uC6A9\uD558\uAE30",refund:"\uD658\uBD88\uD558\uAE30",delete:"\uC0AD\uC81C\uD558\uAE30"}},ma={clearAriaLabel:"\uAC80\uC0C9\uC5B4 \uC9C0\uC6B0\uAE30"},pa={starLabel:"{{n}}\uBC88\uC9F8 \uBCC4 \uC120\uD0DD",valueLabel:"{{max}}\uC810 \uB9CC\uC810\uC5D0 {{value}}\uC810",groupLabel:"\uBCC4\uC810"},ha={selected:"\uC120\uD0DD\uB428"},ya={placeholder:"\uC120\uD0DD"},ba={collapse:"\uC811\uAE30",expand:"\uD3BC\uCE58\uAE30"},Sa={biArea:"BI \uC601\uC5ED",biSymbol:"BI \uC2EC\uBCFC",logoMalgwi:"\uB9D0\uADC0 \uB85C\uACE0",logoManager:"\uB9D0\uADC0\uB9E4\uB2C8\uC800 \uB85C\uACE0",menuOpen:"\uBA54\uB274 \uC5F4\uAE30",utilMenu:"\uC720\uD2F8\uB9AC\uD2F0 \uBA54\uB274",menuClose:"\uBA54\uB274 \uB2EB\uAE30"},wa={mainMenu:"\uBA54\uC778 \uBA54\uB274",bottomNav:"\uD558\uB2E8 \uB124\uBE44\uAC8C\uC774\uC158",goToManager:"\uB9D0\uADC0\uB9E4\uB2C8\uC800\uB85C \uC774\uB3D9",goToMalgwi:"\uB9D0\uADC0\uB85C \uC774\uB3D9",modeLabelManager:"\uB9D0\uADC0 \uB9E4\uB2C8\uC800",modeLabelMalgwi:"\uB9D0\uADC0",training:"\uD6C8\uB828",settings:"\uC124\uC815",notifications:"\uC54C\uB9BC",account:"\uACC4\uC815",help:"\uB3C4\uC6C0\uB9D0",debug:"\uB514\uBC84\uADF8",coupons:"\uCFE0\uD3F0",topic:"\uC8FC\uC81C\uBCC4 \uB4E3\uAE30",trainingType:"\uD6C8\uB828\uBCC4 \uB4E3\uAE30",wordPairs:"\uB300\uB9BD\uC30D \uCC3E\uAE30",wordSearch:"\uB2E8\uC5B4 \uCC3E\uAE30",wordTable:"\uB2E8\uC5B4\uD45C \uB9CC\uB4E4\uAE30",company:"\uC5C5\uCCB4\uC815\uBCF4",more:"\uB354\uBCF4\uAE30",moreMenu:"\uB354\uBCF4\uAE30 \uBA54\uB274",badgeLabel:"{{label}}, {{count}}\uAC1C"},Ea={language:{training:{label:"\uD6C8\uB828 \uC5B8\uC5B4",sub:"\uD6C8\uB828\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uB2E8\uC5B4\uC640 \uC74C\uC131 \uC5B8\uC5B4"}},notifications:{title:"\uC54C\uB9BC"},display:{fontSize:{small:"\uC791\uAC8C",large:"\uD06C\uAC8C"}},cache:{title:"\uCE90\uC2DC \uAD00\uB9AC",confirmMessage:"\uCE90\uC2DC({{size}})\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4. \uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",delete:"\uC0AD\uC81C",deleting:"\uC0AD\uC81C \uC911",cleared:"\uCE90\uC2DC\uAC00 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",group:{wordData:{label:"\uB2E8\uC5B4 \uB370\uC774\uD130",sub:"\uB2E8\uC5B4 \uBAA9\uB85D \uBC0F \uBC84\uC804 \uC815\uBCF4"},pairIndex:{label:"\uB2E8\uC5B4\uC30D \uC778\uB371\uC2A4",sub:"\uCD08\uC131\xB7\uC911\uC131\xB7\uC885\uC131 \uB300\uB9BD\uC30D \uBD84\uC11D \uCE90\uC2DC"},imageCache:{label:"\uC774\uBBF8\uC9C0 \uCE90\uC2DC",sub:"\uB2E8\uC5B4\uBCC4 \uC774\uBBF8\uC9C0 \uC874\uC7AC \uC5EC\uBD80 \uD655\uC778 \uACB0\uACFC"},trainingRecord:{label:"\uD6C8\uB828 \uAE30\uB85D",sub:"\uC624\uB298\uC758 \uD6C8\uB828 \uC9C4\uD589\uB960 \uBC0F \uD559\uC2B5 \uC77C\uC218"}}},button:{save:"\uC124\uC815 \uC800\uC7A5"},popup:{clear:{confirm:"\uCD08\uAE30\uD654"},update:{confirm:"\uC5C5\uB370\uC774\uD2B8"},cache:{title:"{{label}} \uC0AD\uC81C",message:"{{label}}({{size}})\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4. \uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?"}},saved:"\u2713 \uC800\uC7A5\uB428",account:{title:"\uACC4\uC815",delete:{sub:"\uD0C8\uD1F4 \uD6C4 30\uC77C \uC774\uB0B4 \uC7AC\uAC00\uC785 \uC2DC \uBCF5\uAD6C \uAC00\uB2A5\uD569\uB2C8\uB2E4."}}},Aa={addButton:"\uC774\uC6A9\uAD8C \uCD94\uAC00\uD558\uAE30",couponButton:"\uCFE0\uD3F0 \uC785\uB825",loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026",segment:{personal:"\uB9D0\uADC0",org:"\uB9D0\uADC0\uB9E4\uB2C8\uC800"},org:{title:"\uD604\uC7AC \uC774\uC6A9\uAD8C",disc:"\uAE30\uAD00\uC5D0\uC11C \uC0AC\uC6A9 \uC911\uC778 \uC774\uC6A9\uAD8C \uC815\uBCF4\uC785\uB2C8\uB2E4.",empty:"\uB4F1\uB85D\uB41C \uAE30\uAD00 \uC774\uC6A9\uAD8C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",fallbackTitle:"\uAE30\uAD00 \uC774\uC6A9\uAD8C",startDate:"\uC2DC\uC791\uC77C",endDate:"\uB9CC\uB8CC\uC77C",remaining:"\uB0A8\uC740 \uAE30\uAC04",duration:"\uC774\uC6A9 \uAE30\uAC04"},active:{infoTitle:"\uC774\uC6A9 \uC815\uBCF4",refund:"\uD658\uBD88 \uC694\uCCAD",startDate:"\uC0AC\uC6A9 \uC2DC\uC791\uC77C",endDate:"\uC885\uB8CC\uC77C",remaining:"\uB0A8\uC740 \uAE30\uAC04"},pending:{title:"\uBCF4\uC720",empty:"\uB300\uAE30 \uC911\uC778 \uC774\uC6A9\uAD8C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."}},va={profile:{planSuffix:"\uD50C\uB79C",plan:"\uD50C\uB79C"},basicInfo:{name:{placeholder:"\uD64D\uAE38\uB3D9"}},security:{title:"\uBCF4\uC548",password:{label:"\uBE44\uBC00\uBC88\uD638",currentRequired:"\uD604\uC7AC \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694.",newRequired:"\uC0C8 \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694.",mismatch:"\uC0C8 \uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",changed:"\uBE44\uBC00\uBC88\uD638\uAC00 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},twoFactor:{label:"2\uB2E8\uACC4 \uC778\uC99D",sub:"\uACC4\uC815 \uBCF4\uC548\uC744 \uAC15\uD654\uD558\uC138\uC694"}}},Ba={guide:{faq:{title:"\uC790\uC8FC \uBB3B\uB294 \uC9C8\uBB38",desc:"FAQ \uBAA8\uC544\uBCF4\uAE30"}}},Da={settings:"\uC124\uC815",start:{title:"\uB2E8\uC5B4\uD6C8\uB828 \uC2DC\uC791",description:"\uC544\uB798 \uD6C8\uB828 \uC720\uD615\uC744 \uC120\uD0DD\uD574 \uC2DC\uC791\uD558\uC138\uC694"},difficulty:{tooltip:"\uAC00\uC7A5 \uC26C\uC6B4 \uB09C\uC774\uB3C4\uB294 '\uBB34\uC791\uC704', \uAC00\uC7A5 \uC5B4\uB824\uC6B4 \uB09C\uC774\uB3C4\uB294 '\uCD08\uC131\uCC28\uC774' \uC785\uB2C8\uB2E4."},contrast:{label:"\uB300\uB9BD",type:"\uB300\uB9BD \uC885\uB958",count:"\uB300\uB9BD \uAC2F\uC218",n:"{{n}}\uAC1C"},filter:{random:"\uBB34\uC791\uC704",trainOnset:"\uCD08\uC131",trainVowel:"\uBAA8\uC74C",trainCoda:"\uC885\uC131",phonemeGroup:"\uD6C8\uB828 \uC74C\uC808",noLimit:"\uBB34\uAD00",codaExclude:"\uC81C\uC678",gradeLabel:"\uB4F1\uAE09",excludeImageInfo:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC: \uB2E8\uC5B4 \uC911\uC5D0 \uC774\uBBF8\uC9C0\uAC00 \uC788\uB294 \uB2E8\uC5B4\uB9CC \uACB0\uACFC\uC5D0 \uBCF4\uC5EC\uC90D\uB2C8\uB2E4.",sameStructureInfo:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC: \uC815\uB2F5\uACFC \uC624\uB2F5\uC758 \uC74C\uC808 \uAD6C\uC870(\uAE00\uC790 \uC218\xB7\uBC1B\uCE68 \uC720\uBB34 \uB4F1)\uAC00 \uAC19\uC740 \uACB0\uACFC\uB9CC \uB0A8\uACA8\uC694.",selectSection:"\uC120\uD0DD",excludeImage:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC",sameStructure:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC"},noQuestions:"\uBB38\uC81C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",countQuestions:"{{n}}\uBB38\uC81C",countSentences:"{{n}}\uBB38\uC7A5",comingSoon:"\uC900\uBE44 \uC911",nextQuestion:"\uB2E4\uC74C \uBB38\uC81C",noiseRatioTitle:"\uC18C\uC74C \uBE44\uC728",noiseRatioValue:"{{ratio}}\uBC30",noiseTypeTitle:"\uC18C\uC74C \uC885\uB958",playVolumeTitle:"\uC804\uCCB4 \uC18C\uB9AC",playSpeedTitle:"\uC7AC\uC0DD \uC18D\uB3C4",meter:{sentence:"\uC7AC\uC0DD",noise:"\uC18C\uC74C",toggle:"\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC"},viewResult:"\uACB0\uACFC\uBCF4\uAE30",problemNotice:"{{n}}\uBC88 \uBB38\uC81C \uC785\uB2C8\uB2E4.",trainingSettingsTitle:"\uD6C8\uB828 \uC124\uC815",sentencePreview:"\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30",notHeard:"\uC548 \uB4E4\uB838\uC5B4\uC694.",heardWell:"\uC798 \uB4E4\uB838\uC5B4\uC694.",confirmTitle:"\uBB38\uC7A5\uC744 \uD655\uC778\uD558\uACE0 \uC798 \uB4E4\uB838\uB294\uC9C0 \uC120\uD0DD\uD558\uC138\uC694.",noSoundWaveform:"\uC18C\uB9AC \uBE44\uAD50 \uBB38\uC81C\uB294 \uC6E8\uC774\uBE0C\uD3FC\uC744 \uD45C\uD604\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",noise:{level:{none:"\uC5C6\uC74C",weak:"\uC57D\uD568",medium:"\uBCF4\uD1B5",strong:"\uAC15\uD568",veryStrong:"\uB9E4\uC6B0 \uAC15\uD568"},type:{none:"\uC5C6\uC74C",default:"\uAE30\uBCF8",street:"\uAE38\uAC70\uB9AC",buzz:"\uC640\uAE00\uC640\uAE00",restaurant:"\uC2DD\uB2F9"}},listenTitle:"\uC81C\uC2DC\uD558\uB294 \uBB38\uC7A5\uC744 \uB4E4\uC5B4\uC8FC\uC138\uC694.",listenButton:"\uBB38\uC7A5 \uB4E3\uAE30",playSound:"\uC18C\uB9AC \uB4E3\uAE30",playAll:"\uBAA8\uB450 \uB4E3\uAE30",selectInOrder:"\uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694.",stop:"\uC815\uC9C0",preview:"\uBBF8\uB9AC \uB4E3\uAE30",next:"\uB2E4\uC74C",completed:"\uD6C8\uB828 \uC644\uB8CC",selected:"\uC120\uD0DD\uB428",nthSelected:"{{n}}\uBC88\uC9F8 \uC120\uD0DD",fontSizeMin:"\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uC18C\uC785\uB2C8\uB2E4.",fontSizeMax:"\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uB300\uC785\uB2C8\uB2E4.",fontSizeDecrease:"\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C",fontSizeIncrease:"\uAE00\uC790 \uD06C\uAE30 \uC99D\uAC00",toggleBackground:"\uBC30\uACBD \uC804\uD658",cardInstructions:"\uB0B1\uB9D0 \uCE74\uB4DC\uB97C \uBCF4\uACE0 \uC18C\uB9AC\uB97C \uB4E3\uACE0 \uD655\uC778\uD558\uC138\uC694.",noCards:"\uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",audioFetchError:"\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",ttsUnavailable:"\uC774 \uAE30\uAE30\uC5D0\uC11C\uB294 \uC74C\uC131\uC744 \uB4E4\uB824\uC904 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",selectConfirm:"\uBB38\uC81C\uB97C \uBCF4\uACE0 \uD574\uB2F9\uD558\uB294 \uB0B4\uC6A9\uC744 \uC120\uD0DD\uD558\uC138\uC694.",orderListDefault:"\uBB38\uC7A5\uC744 \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uBC30\uCE58\uD558\uC138\uC694.",result:{pendingDone:"\uACB0\uACFC\uB97C \uACC4\uC0B0\uD558\uB294 \uC911\uC774\uB77C \uC544\uC9C1 \uC644\uB8CC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",eyebrow:"\uD6C8\uB828 \uC644\uB8CC",title:"\uD6C8\uB828\uC744 \uBAA8\uB450 \uB9C8\uCCE4\uC2B5\uB2C8\uB2E4.",scoreAria:"{{correct}} / {{total}} \uBB38\uD56D",elapsed:"\uC18C\uC694 \uC2DC\uAC04",summary:"{{correct}}\uAC1C\uC758 \uBB38\uD56D\uC744 \uC798 \uB4E4\uC5C8\uC2B5\uB2C8\uB2E4.",tableAriaLabel:"\uBB38\uD56D\uBCC4 \uD310\uC815",colJudge:"\uD310\uC815",colAnswerSelected:"\uC815\uB2F5 \xB7 \uC120\uD0DD",colAnswer:"\uC815\uB2F5",colSelected:"\uC120\uD0DD",heardWell:"\uC798 \uB4E4\uC5C8\uC5B4\uC694",notHeard:"\uBABB \uB4E4\uC5C8\uC5B4\uC694",notJudged:"\uBBF8\uD310\uC815",replay:"\uB2E4\uC2DC\uD558\uAE30",done:"\uC644\uB8CC",viewResult:"\uACB0\uACFC \uD655\uC778",noContent:"(\uB0B4\uC6A9\uC5C6\uC74C)"},up:"\uC704\uB85C",down:"\uC544\uB798\uB85C",prev:"\uC774\uC804",listenLabel:"\uBB38\uC7A5 \uB4E3\uAE30",sourcePlay:"\uC18C\uC2A4 {{n}} \uC7AC\uC0DD",listen:"\uB4E3\uAE30",audioStatus:{idle:"\uB300\uAE30",resolving:"\uB9AC\uC18C\uC2A4 \uB9E4\uD551 \uC911\u2026",checking_exists:"\uD30C\uC77C \uC874\uC7AC \uD655\uC778\u2026",getting_signed_url:"\uC11C\uBA85 URL \uC870\uD68C\u2026",downloading:"\uB2E4\uC6B4\uB85C\uB4DC \uC911\u2026",measuring_duration:"\uC624\uB514\uC624 \uAE38\uC774 \uCE21\uC815\u2026",ready:"\uC900\uBE44 \uC644\uB8CC",error:"\uC624\uB958 \uBC1C\uC0DD"}},Ta={totalCount:"\uAC1C\uC758 \uD6C8\uB828 \uBB36\uC74C",renameGroup:"\uADF8\uB8F9 \uC774\uB984 \uBC14\uAFB8\uAE30",itemCount:"\uD6C8\uB828 \uAC1C\uC218",menu:{edit:"\uD6C8\uB828 \uBB36\uC74C \uC218\uC815",rename:"\uC774\uB984 \uBC14\uAFB8\uAE30",move:"\uADF8\uB8F9 \uC774\uB3D9",duplicate:"\uD6C8\uB828 \uBB36\uC74C \uBCF5\uC0AC",publish:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0 \uC62C\uB9AC\uAE30"},sort:{customers:"\uD6C8\uB828 \uACE0\uAC1D"},copyLink:"\uB9C1\uD06C \uBCF5\uC0AC",removeLink:"\uB9C1\uD06C \uC81C\uAC70",linkRemoved:"\uB9C1\uD06C\uAC00 \uC81C\uAC70\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",linkSaveFirst:"\uBA3C\uC800 \uD6C8\uB828 \uBB36\uC74C\uC744 \uC800\uC7A5\uD574\uC8FC\uC138\uC694.",linkSaveFirstHint:"\uC800\uC7A5\uB41C \uD6C8\uB828 \uBB36\uC74C\uC5D0\uC11C\uB9CC \uACF5\uC720 \uB9C1\uD06C\uB97C \uC0DD\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",linkCopySelect:"\uBCF5\uC0AC\uAC00 \uB9C9\uD600 \uB9C1\uD06C\uB97C \uC120\uD0DD\uD588\uC2B5\uB2C8\uB2E4. Ctrl/\u2318+C\uB85C \uBCF5\uC0AC\uD558\uC138\uC694.",nameRequired:"\uD6C8\uB828 \uBB36\uC74C \uC774\uB984\uC744 \uC785\uB825\uD574\uC8FC\uC138\uC694.",itemRequired:"\uD6C8\uB828\uC744 1\uAC1C \uC774\uC0C1 \uB2F4\uC544\uC8FC\uC138\uC694.",randomAdd:"\uBB34\uC791\uC704 \uCD94\uAC00"},Na={totalCount:"\uBA85\uC758 \uACE0\uAC1D",loadError:"\uBAA9\uB85D\uC744 \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",basicInfo:{editTooltip:"\uC218\uC815\uD558\uAE30"},member:{placeholder:"\uC774\uBA54\uC77C \uB610\uB294 \uC804\uD654",link:"\uC5F0\uACB0",linking:"\uC5F0\uACB0 \uC911\u2026"},device:{title:"\uCCAD\uAC01\uC7AC\uD65C\uAE30\uAE30",addTooltip:"\uC0C8\uB85C \uC0DD\uC131",addButton:"\uAE30\uAE30 \uCD94\uAC00",listTooltip:"\uBAA9\uB85D \uBCF4\uAE30",listTitle:"\uCE21 \uAE30\uAE30 \uBAA9\uB85D",historyEmpty:"\uB4F1\uB85D\uB41C \uAE30\uAE30 \uC774\uB825\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",wearing:"\uCE21 \uCC29\uC6A9\uC911",notRegistered:"\uBBF8\uB4F1\uB85D",unit:"\uAC1C",wearingNow:"\uCC29\uC6A9",wear:"\uCC29\uC6A9",unwear:"\uCC29\uC6A9 \uD574\uC81C",wornSince:"{{date}}\uBD80\uD130",release:"\uD574\uC81C",historyTitle:"\uCCAD\uAC01\uC7AC\uD65C\uAE30\uAE30 \uC774\uB825"},schedule:{title:"\uBC29\uBB38 \uC608\uC815",addTooltip:"\uC608\uC815 \uB4F1\uB85D",listTooltip:"\uC804\uCCB4 \uBCF4\uAE30",empty:"\uC608\uC815\uB41C \uBC29\uBB38\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",registerTitle:" \uACE0\uAC1D\uB2D8 \uBC29\uBB38 \uC608\uC815 \uB4F1\uB85D",memoPlaceholder:"\uBC29\uBB38 \uC608\uC815 \uAD00\uB828 \uBA54\uBAA8\uB97C \uC785\uB825\uD574 \uC8FC\uC138\uC694."},visitHistory:{title:"\uBC29\uBB38 \uC774\uB825",addTooltip:"\uC2E0\uADDC \uB4F1\uB85D",empty:"\uC544\uC9C1 \uBC29\uBB38 \uAE30\uB85D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",popupTitle:" \uACE0\uAC1D\uB2D8 \uBC29\uBB38 \uC774\uB825",registerTitle:" \uACE0\uAC1D\uB2D8 \uC2E0\uADDC \uBC29\uBB38 \uB4F1\uB85D"},homework:{title:"\uC219\uC81C \uC9C4\uD589\uC0C1\uD669",active:"\uD65C\uC131",inactive:"\uBE44\uD65C\uC131",copy:"\uB9C1\uD06C \uBCF5\uC0AC",copied:"\uB9C1\uD06C\uAC00 \uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},moreItems:"\uB354 \uC788\uC74C",viewAll:"\uC804\uCCB4 \uBCF4\uAE30",visits:{title:"\uBC29\uBB38"},trainingRecord:{title:"\uACE0\uAC1D \uD6C8\uB828 \uAE30\uB85D"},status:{trainingSubtitle:"\uD6C8\uB828 \uD604\uD669"},detail:{session:{completedFmt:"\uC644\uB8CC {{done}}/{{total}} \xB7 {{duration}}"},visitSuffix:"\uC758 \uBC29\uBB38"},duration:{minSec:"{{m}}\uBD84 {{s}}\uCD08",min:"{{m}}\uBD84",sec:"{{s}}\uCD08"}},_a={plan:{recommendedFor:"\uC774\uB7F0 \uBD84\uAED8 \uCD94\uCC9C\uD569\uB2C8\uB2E4.",features:"\uD575\uC2EC \uAE30\uB2A5",freePrice:"\uBB34\uB8CC",contact:"\uBB38\uC758\uD558\uAE30",tierFallback:"\uC774\uC6A9\uAD8C",openPromo:"\uC624\uD508 \uD2B9\uAC00"},products:{mgrEnterprise:{tier:{price:"\uBB38\uC758"}}}},La={title:"\uCFE0\uD3F0",subtitle:"\uCFE0\uD3F0 \uCF54\uB4DC\uB97C \uC785\uB825\uD558\uAC70\uB098 \uBCF4\uC720 \uCFE0\uD3F0\uC744 \uD655\uC778\uD558\uC138\uC694.",input:{label:"\uCFE0\uD3F0 \uCF54\uB4DC",placeholder:"\uCFE0\uD3F0 \uCF54\uB4DC \uC785\uB825"},applyButton:"\uC801\uC6A9",error:{invalid:"\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uCFE0\uD3F0 \uCF54\uB4DC\uC785\uB2C8\uB2E4.",alreadyUsed:"\uC774\uBBF8 \uC0AC\uC6A9\uB41C \uCFE0\uD3F0\uC785\uB2C8\uB2E4."},success:{applied:'"{{name}}" \uCFE0\uD3F0\uC774 \uC801\uC6A9\uB418\uC5C8\uC2B5\uB2C8\uB2E4.'},section:{owned:"\uBCF4\uC720 \uCFE0\uD3F0"},status:{used:"\uC0AC\uC6A9 \uC644\uB8CC",available:"\uC0AC\uC6A9 \uAC00\uB2A5"}},Oa={unitVisit:"\uAC74",periodAll:"\uC804\uCCB4",showN:"{{n}}\uAC1C\uC529"},Ra={subtitle:"\uC5C5\uCCB4 \uBC0F \uBC95\uC778 \uC815\uBCF4\uB97C \uAD00\uB9AC\uD558\uC138\uC694.",editButton:"\uC815\uBCF4 \uC218\uC815",basicInfo:{title:"\uAE30\uBCF8 \uC815\uBCF4"},contactInfo:{title:"\uC5F0\uB77D\uCC98 \uC815\uBCF4"}},Pa={title:"\uD6C8\uB828\uBCC4 \uB4E3\uAE30",subtitle:"\uC6D0\uD558\uB294 \uD6C8\uB828 \uC720\uD615\uC744 \uC120\uD0DD\uD558\uC138\uC694.",listenInNoise:{title:"\uC18C\uC74C \uD558 \uBB38\uC7A5 \uB4E3\uAE30",desc:"\uB2E4\uC591\uD55C \uC18C\uC74C \uD658\uACBD\uC5D0\uC11C \uBB38\uC7A5 \uCCAD\uB825\uC744 \uD6C8\uB828\uD569\uB2C8\uB2E4."},shortStory:{title:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",desc:"\uC9E7\uC740 \uC774\uC57C\uAE30\uB97C \uB4E3\uACE0 \uB0B4\uC6A9\uC744 \uC774\uD574\uD569\uB2C8\uB2E4."},longStory:{title:"\uAE34 \uC774\uC57C\uAE30 \uB4E3\uAE30",desc:"\uAE34 \uC774\uC57C\uAE30\uB97C \uC9D1\uC911\uD574\uC11C \uB4E3\uACE0 \uB0B4\uC6A9\uC744 \uD30C\uC545\uD569\uB2C8\uB2E4."},orderingSentence:{title:"\uBB38\uC7A5 \uC21C\uC11C\uD654",desc:"\uB4E4\uC740 \uBB38\uC7A5\uB4E4\uC744 \uC62C\uBC14\uB978 \uC21C\uC11C\uB85C \uBC30\uC5F4\uD569\uB2C8\uB2E4."},SAME_SOUND_PICK:{label:"\uAC19\uC740 \uC18C\uB9AC \uACE0\uB974\uAE30",sub:"\uB4E4\uC740 \uC18C\uB9AC\uC640 \uAC19\uC740 \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},SAME_OR_DIFF:{label:"\uAC19\uC740\uC9C0 \uB2E4\uB978\uC9C0 \uB9DE\uD788\uAE30",sub:"\uB450 \uC18C\uB9AC\uAC00 \uAC19\uC740\uC9C0, \uB2E4\uB978\uC9C0 \uAD6C\uBD84\uD558\uC138\uC694."},HEAR_AND_PICK_SAME:{label:"\uC77C\uCE58\uD558\uB294 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",sub:"\uB4E4\uC740 \uC18C\uB9AC\uC758 \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},HEAR_AND_PICK_INCLUDED:{label:"\uD55C \uC74C\uC808 \uD3EC\uD568 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",sub:"\uB4E4\uC740 \uC74C\uC808\uC774 \uD3EC\uD568\uB41C \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},STARTS_WITH_SAME_SOUND:{label:"\uCCAB \uC74C\uC808\uC774 \uAC19\uC740 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",sub:"\uB4E4\uC740 \uB2E8\uC5B4\uC640 \uAC19\uC740 \uC18C\uB9AC\uB85C \uC2DC\uC791\uD558\uB294 \uB2E8\uC5B4\uB97C \uACE0\uB974\uC138\uC694."},LISTEN_AND_REMEMBER_ORDER:{label:"\uB4E3\uACE0 \uC21C\uC11C\uB300\uB85C \uAE30\uC5B5\uD558\uAE30",sub:"\uC138 \uB2E8\uC5B4\uB97C \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694."},MERGE_2_SYLLABLES:{label:"\uC74C\uC808 2\uAC1C \uD569\uCE58\uAE30",sub:"\uB450 \uC74C\uC808\uC744 \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},MERGE_3_SYLLABLES:{label:"\uC74C\uC808 3\uAC1C \uD569\uCE58\uAE30",sub:"\uC138 \uC74C\uC808\uC744 \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},MERGE_2_PHONEMES:{label:"\uC74C\uC18C 2\uAC1C \uD569\uCE58\uAE30",sub:"\uB450 \uC74C\uC18C\uB97C \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},MERGE_3_PHONEMES:{label:"\uC74C\uC18C 3\uAC1C \uD569\uCE58\uAE30",sub:"\uC138 \uC74C\uC18C\uB97C \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},DROP_1_FROM_2SYLL:{label:"2\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uD0C8\uB77D",sub:"2\uC74C\uC808 \uB2E8\uC5B4\uC5D0\uC11C \uD55C \uC74C\uC808\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},DROP_1_FROM_3SYLL:{label:"3\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uD0C8\uB77D",sub:"3\uC74C\uC808 \uB2E8\uC5B4\uC5D0\uC11C \uD55C \uC74C\uC808\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},DROP_PART_FROM_COMPOUND:{label:"\uD569\uC131\uC5B4\uC5D0\uC11C \uBD80\uBD84 \uD0C8\uB77D",sub:"\uD569\uC131\uC5B4\uC758 \uC77C\uBD80\uB97C \uBE7C\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},DROP_FINAL_CONSONANT_FROM_1SYLL:{label:"1\uC74C\uC808\uC5D0\uC11C \uBC1B\uCE68 \uD0C8\uB77D",sub:"\uBC1B\uCE68\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:{label:"1\uC74C\uC808\uC5D0\uC11C \uC790\uC74C \uD0C8\uB77D",sub:"\uC790\uC74C\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB0A8\uC744\uAE4C\uC694?"},CHANGE_1_SYLL_IN_2SYLL:{label:"2\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uBC14\uAFB8\uAE30",sub:"2\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC808\uC744 \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."},CHANGE_1_SYLL_IN_3SYLL:{label:"3\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uBC14\uAFB8\uAE30",sub:"3\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC808\uC744 \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."},CHANGE_1_PHONEME_IN_1SYLL:{label:"1\uC74C\uC808 \uB2E8\uC5B4 \uC911 1\uAC1C \uC74C\uC18C \uBC14\uAFB8\uAE30",sub:"1\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC18C\uB97C \uBC14\uAFD4 \uC0C8 \uC18C\uB9AC\uB97C \uB9CC\uB4DC\uC138\uC694."},CHANGE_1_PHONEME_IN_2SYLL:{label:"2\uC74C\uC808 \uB2E8\uC5B4 \uC911 1\uAC1C \uC74C\uC18C \uBC14\uAFB8\uAE30",sub:"2\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC18C\uB97C \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."}},Ma={comingSoon:"\uB2E8\uC5B4\uD6C8\uB828 \uAE30\uB2A5\uC744 \uC900\uBE44 \uC911\uC785\uB2C8\uB2E4."},Ia={colName:"\uB2E8\uC5B4\uD45C \uC774\uB984",open:"\uC5F4\uAE30",countSuffix:"\uAC1C\uC758 \uB2E8\uC5B4\uD45C",tab:{cards:"\uB2E8\uC5B4\uD45C \uCE74\uB4DC",tables:"\uB2E8\uC5B4\uD45C"},cardsEmpty:"\uC544\uC9C1 \uB9CC\uB4E0 \uB2E8\uC5B4\uD45C \uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",addCard:"\uB2E8\uC5B4\uD45C \uCE74\uB4DC \uCD94\uAC00",menu:{publishStore:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0 \uC62C\uB9AC\uAE30",unpublishStore:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0\uC11C \uB0B4\uB9AC\uAE30"},newBadge:"\uC0C8\uB85C \uB9CC\uB4E0 \uD45C",publishedBadge:"\uBC1C\uD589\uB428",sharedBadge:"\uACF5\uC720 \uC911"},ka={title:"\uC8FC\uC694 \uB2E8\uC5B4",empty:"\uCD94\uCD9C\uB41C \uC8FC\uC694 \uB2E8\uC5B4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},xa={defaultName:"\uB2E8\uC5B4 \uD45C",title:"\uB2E8\uC5B4 \uD45C \uB9CC\uB4E4\uAE30",subtitle:"\uCE78\uC744 \uC124\uC815\uD558\uACE0 \uB2E8\uC5B4\uB97C \uCD94\uAC00\uD558\uC5EC \uD45C\uB97C \uB9CC\uB4ED\uB2C8\uB2E4.",filterTitle:"\uD45C \uC124\uC815",filter:{composition:"\uAD6C\uC131",image:"\uC774\uBBF8\uC9C0",word:"\uB2E8\uC5B4",standardPron:"\uD45C\uC900 \uBC1C\uC74C",colloquialPron:"\uAD6C\uC5B4\uCCB4 \uBC1C\uC74C",paperOrientation:"\uC6A9\uC9C0 \uBC29\uD5A5",landscape:"\uAC00\uB85C",portrait:"\uC138\uB85C",columns:"\uCE78 \uC218",column:"{{count}}\uCE78",itemsPerPageWord:"\uD398\uC774\uC9C0\uB2F9 \uB2E8\uC5B4 \uC218",itemsPerPagePair:"\uD398\uC774\uC9C0\uB2F9 \uB300\uB9BD\uC30D \uC218",itemsPerPageOption:"{{count}}\uAC1C",pageIndicator:"{{current}} / {{total}}",pageNumber:"\uD398\uC774\uC9C0 \uBC88\uD638",pageNumberLeft:"\uC67C\uCABD",pageNumberCenter:"\uC911\uC559",pageNumberRight:"\uC624\uB978\uCABD",border:"\uC678\uACFD\uC120",cutLine:"\uC808\uCDE8\uC120",show:"\uD45C\uC2DC",hide:"\uBBF8\uD45C\uC2DC",dotted:"\uC810\uC120",corner:"\uCF54\uB108"},addWord:"\uCD94\uAC00\uD558\uAE30",wordInfo:"{{word}} \uB0B1\uB9D0 \uC815\uBCF4",emptyItems:"\uB2E8\uC5B4\uB97C 1\uAC1C \uC774\uC0C1 \uCD94\uAC00\uD574\uC8FC\uC138\uC694.",load:"\uBD88\uB7EC\uC624\uAE30",openNewWindow:"\uC0C8 \uCC3D\uC73C\uB85C \uBCF4\uAE30",saveButton:"\uC800\uC7A5\uD558\uAE30",saveAsNewButton:"\uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uC800\uC7A5",print:"\uC778\uC1C4\uD558\uAE30",popupBlocked:"\uD31D\uC5C5\uC774 \uCC28\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800 \uC124\uC815\uC5D0\uC11C \uD31D\uC5C5\uC744 \uD5C8\uC6A9\uD574 \uC8FC\uC138\uC694.",printFileNameSingle:"\uB2E8\uC5B4\uD45C",printFileNamePair:"\uB300\uB9BD\uC30D\uD45C",save:{title:"\uB2E8\uC5B4\uD45C \uC800\uC7A5\uD558\uAE30",nameLabel:"\uC774\uB984",desc:"\uC800\uC7A5\uD560 \uB2E8\uC5B4 \uD45C\uC758 \uC774\uB984\uC744 \uC785\uB825\uD558\uC138\uC694.",placeholder:"\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694.",descriptionLabel:"\uC124\uBA85",descriptionPlaceholder:"\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC124\uBA85\uC744 \uC785\uB825\uD558\uC138\uC694.",duplicateName:"\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4.",nameRequired:"\uD45C \uC774\uB984\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694.",autoFillHint:" (Tab \uB610\uB294 space \uC785\uB825\uC2DC \uC790\uB3D9 \uC785\uB825)",copyName:"{{name}} (\uBCF5\uC0AC)"},loadTable:{title:"\uC800\uC7A5\uB41C \uB2E8\uC5B4 \uD45C \uBD88\uB7EC\uC624\uAE30",empty:"\uC800\uC7A5\uB41C \uB2E8\uC5B4 \uD45C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",loadButton:"\uBD88\uB7EC\uC624\uAE30",itemCount:"{{count}}\uAC1C",deleteAriaLabel:"{{name}} \uC0AD\uC81C",sort:{newest:"\uCD5C\uC2E0\uC21C",oldest:"\uC624\uB798\uB41C\uC21C",name:"\uC774\uB984\uC21C",count:"\uB2E8\uC5B4 \uC218"},view:{grid:"\uD45C\uB85C \uBCF4\uAE30",list:"\uB9AC\uC2A4\uD2B8\uB85C \uBCF4\uAE30"}},groupDeleteMessage:"\uADF8\uB8F9 \uB0B4 \uB2E8\uC5B4\uD45C\uB294 '\uADF8\uB8F9 \uC5C6\uC74C'\uC73C\uB85C \uC774\uB3D9\uD569\uB2C8\uB2E4.",groupNamePlaceholder:"\uADF8\uB8F9 \uC774\uB984",store:{badge:"\uB9D0\uADC0\uC790\uB8CC\uC2E4"},card:{sub:"\uB2E8\uC5B4\uD45C \uCE74\uB4DC",empty:"\uC774 \uCE74\uB4DC\uC5D0 \uB2E8\uC5B4\uD45C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},toast:{renameError:"\uC774\uB984 \uBCC0\uACBD\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",saveError:"\uC800\uC7A5\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",deleteError:"\uC0AD\uC81C\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",duplicateError:"\uBCF5\uC81C\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",saveSuccess:"\uB2E8\uC5B4\uD45C\uAC00 \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},scoring:{o:"{{word}} \uB9DE\uC74C",triangle:"{{word}} \uC560\uB9E4",x:"{{word}} \uD2C0\uB9BC",button:"\uCC44\uC810\uD558\uAE30",pickTitle:"\uB204\uAD6C\uB97C \uCC44\uC810\uD560\uAE4C\uC694?",pickSubtitle:"\u2018{{name}}\u2019 \uD45C\uB85C \uD6C8\uB828\uD55C \uACE0\uAC1D\uC744 \uACE0\uB974\uC138\uC694.",pickSearch:"\uC774\uB984 \uB610\uB294 \uC804\uD654\uBC88\uD638\uB85C \uCC3E\uAE30",pickEmpty:"\uB4F1\uB85D\uB41C \uACE0\uAC1D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",pickNoMatch:"\uCC3E\uB294 \uACE0\uAC1D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",pickAgain:"\uACE0\uAC1D \uB2E4\uC2DC \uACE0\uB974\uAE30",scoringFor:"{{name}} \uB2D8 \uCC44\uC810 \uC911",none:"\uCE78\uC744 \uB20C\uB7EC \u25CB \xB7 \u25B3 \xB7 \u2715 \uB97C \uB9E4\uAE30\uC138\uC694.",tally:"{{marked}}\uCE78 \uCC44\uC810 \xB7 \u25CB {{o}} \xB7 \u25B3 {{triangle}} \xB7 \u2715 {{x}} \xB7 \uC815\uB2F5\uB960 {{rate}}%",save:"\uCC44\uC810 \uC800\uC7A5",saved:"{{name}} \uB2D8\uC758 \uCC44\uC810 {{count}}\uCE78\uC744 \uC800\uC7A5\uD588\uC2B5\uB2C8\uB2E4.",reviewTitle:"\uBCF5\uC2B5\uD45C\uB97C \uB9CC\uB4E4\uAE4C\uC694?",reviewMessage:"{{name}} \uB2D8\uC774 \uD2C0\uB9AC\uAC70\uB098 \uC560\uB9E4\uD588\uB358 {{count}}\uCE78\uC73C\uB85C \uC0C8 \uD45C\uB97C \uB9CC\uB4ED\uB2C8\uB2E4. \uB9DE\uD78C \uCE78\uC740 \uBE60\uC9D1\uB2C8\uB2E4.",reviewConfirm:"\uBCF5\uC2B5\uD45C \uB9CC\uB4E4\uAE30",reviewDescription:"\u2018{{name}}\u2019 \uCC44\uC810\uC5D0\uC11C \uD2C0\uB9AC\uAC70\uB098 \uC560\uB9E4\uD588\uB358 {{count}}\uCE78\uC744 \uBAA8\uC740 \uD45C\uC785\uB2C8\uB2E4.",reviewCreated:"\u2018{{name}}\u2019\uC744(\uB97C) \uB9CC\uB4E4\uC5C8\uC2B5\uB2C8\uB2E4 \u2014 {{count}}\uCE78.",discardTitle:"\uB9E4\uAE34 \uCC44\uC810\uC744 \uBC84\uB9B4\uAE4C\uC694?",discardMessage:"{{count}}\uCE78\uC744 \uB9E4\uACBC\uC9C0\uB9CC \uC544\uC9C1 \uC800\uC7A5\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uB098\uAC00\uBA74 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4.",discardConfirm:"\uBC84\uB9AC\uACE0 \uB098\uAC00\uAE30"},info:{grade:"\uB09C\uC774\uB3C4: {{n}}\uB4F1\uAE09",syllables:"\uC74C\uC808 \uC218: {{n}}\uC74C\uC808",pos:"\uD488\uC0AC: {{v}}",wordType:"\uC720\uD615: {{v}}"},pos:{noun:"\uBA85\uC0AC",verb:"\uB3D9\uC0AC",adjective:"\uD615\uC6A9\uC0AC",adverb:"\uBD80\uC0AC",numeral:"\uC218\uC0AC",determiner:"\uAD00\uD615\uC0AC",interjection:"\uAC10\uD0C4\uC0AC",particle:"\uC870\uC0AC",affix:"\uC811\uC0AC",dependentNoun:"\uC758\uC874\uBA85\uC0AC",pronoun:"\uB300\uBA85\uC0AC",auxVerb:"\uBCF4\uC870\uB3D9\uC0AC",auxAdjective:"\uBCF4\uC870\uD615\uC6A9\uC0AC"},reorder:{moved:"{{total}}\uCE78 \uAC00\uC6B4\uB370 {{n}}\uBC88\uC9F8\uB85C \uC62E\uAE40",handle:"{{word}} \uC21C\uC11C \uBC14\uAFB8\uAE30 (Alt + \uD654\uC0B4\uD45C)",hint:"Alt + \u2190 \u2192 \uB85C \uC21C\uC11C \uBC14\uAFB8\uAE30"}},ja={editBanner:{message:"\uC800\uC7A5\uD558\uBA74 \uC9C0\uAE08 \uC218\uC815 \uC911\uC778 \uB2E8\uC5B4\uD45C\uAC00 \uAC31\uC2E0\uB429\uB2C8\uB2E4."},filterTitle:"\uB2E8\uC5B4 \uAC80\uC0C9 \uC124\uC815",filter:{positionAny:"\uBB34\uAD00",positionHead:"\uC5B4\uB450",positionMid:"\uC5B4\uC911",positionTail:"\uC5B4\uB9D0",difficulty:"\uB4F1\uAE09",grade:"{{n}}\uB4F1\uAE09",syllables:"\uC74C\uC808 \uC218",syllable:"{{n}}\uC74C\uC808",syllable5plus:"5\uC74C\uC808 \uC774\uC0C1",partOfSpeech:"\uD488\uC0AC",pos:{noun:"\uCCB4\uC5B8(\uBA85\uC0AC, \uC218\uC0AC)",verb:"\uC6A9\uC5B8(\uB3D9\uC0AC, \uD615\uC6A9\uC0AC)",modifier:"\uC218\uC2DD\uC5B8(\uBD80\uC0AC, \uAD00\uD615\uC0AC)"},wordType:"\uC720\uD615",type:{native:"\uACE0\uC720\uC5B4",sino:"\uD55C\uC790\uC5B4",foreign:"\uC678\uB798\uC5B4",mixed:"\uD63C\uC885\uC5B4"},exclude:"\uC81C\uC678",excludeNoImage:"\uC774\uBBF8\uC9C0 \uC5C6\uC74C"},searchButton:"\uAC80\uC0C9\uD558\uAE30",resultUnit:"\uB2E8\uC5B4",remaining:"{{count}}\uAC1C \uB0A8\uC74C",resultDisc:"\uC6D0\uD558\uB294 {{unit}} \uC120\uD0DD\uD558\uC138\uC694. {{max}}\uAC1C\uAE4C\uC9C0 \uC120\uD0DD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. ({{selected}}/{{max}})",resultTitlePrefix:"\uCD1D ",resultTitleSuffix:"\uAC1C\uC758 {{unit}} \uAC80\uC0C9\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",emptyResult:"\uAC80\uC0C9 \uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",groupCount:"{{count}}\uAC1C",sort:{aria:"\uC815\uB82C",match:"\uC2DC\uC791 \uC6B0\uC120",ganada:"\uAC00\uB098\uB2E4\uC21C \u2191",ganadaDesc:"\uAC00\uB098\uB2E4\uC21C \u2193",syllable:"\uC74C\uC808 \uC218 \u2191",syllableDesc:"\uC74C\uC808 \uC218 \u2193",grade:"\uB4F1\uAE09\uC21C \u2191",gradeDesc:"\uB4F1\uAE09\uC21C \u2193",original:"\uBC1B\uC740 \uC21C\uC11C"},pageSize:"{{count}}\uAC1C\uC529 \uBCF4\uAE30",pageSizeAria:"\uD398\uC774\uC9C0 \uD06C\uAE30",popup:{title:"{{n}}\uBC88 \uCE78\uC5D0 \uB123\uC744 \uB2E8\uC5B4\uB97C \uC120\uD0DD\uD558\uC138\uC694"}},Fa={clearAllSelection:"\uBAA8\uB450 \uC120\uD0DD \uD574\uC81C",divLine:"\uB300\uB9BD\uC120",removePair:"\uB300\uB9BD\uC30D \uBE7C\uAE30",removeWord:"\uB2E8\uC5B4 \uBE7C\uAE30"},$a={title:"\uC8FC\uC81C\uBCC4 \uB4E3\uAE30",subtitle:"\uC8FC\uC81C\uB97C \uC120\uD0DD\uD558\uACE0 \uB4E3\uAE30 \uD6C8\uB828\uC744 \uC2DC\uC791\uD558\uC138\uC694.",noiseTitle:"\uC18C\uC74C \uD558 \uBB38\uC7A5\uB4E3\uAE30",shortStoryTitle:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",FOOD:"\uC74C\uC2DD",HLTH:"\uAC74\uAC15",WETH:"\uB0A0\uC528",PRSN:"\uC778\uBB3C",KRCT:"\uD55C\uAD6D\uBB38\uD654",STRY:"\uC774\uC57C\uAE30",LOCA:"\uC9C0\uC5ED",SOAR:"\uC0AC\uD68C\uC640 \uC608\uC220",NTSC:"\uC790\uC5F0\uACFC \uACFC\uD559",SPRT:"\uC2A4\uD3EC\uCE20",sub:{TRKRFD:"\uD55C\uAD6D \uC804\uD1B5\uC74C\uC2DD",MDKRFD:"\uD55C\uAD6D \uD604\uB300\uC74C\uC2DD",WRLDFD:"\uC138\uACC4\uC758 \uC74C\uC2DD",MTRFRT:"\uC2DD\uC7AC\uB8CC\uC640 \uACFC\uC77C",GEFDKL:"\uC74C\uC2DD \uC0C1\uC2DD",HTETHB:"\uAC74\uAC15\uD55C \uC2DD\uC2B5\uAD00",DISILL:"\uBCD1\uACFC \uC9C8\uD658",EXCISE:"\uC6B4\uB3D9",GEHTKL:"\uAC74\uAC15\uC0C1\uC2DD",GESSKL:"\uACC4\uC808\uC0C1\uC2DD",SNWRAN:"\uB208\uACFC \uBE44",WTHFCT:"\uC77C\uAE30\uC608\uBCF4",GEWTKL:"\uB0A0\uC528\uC0C1\uC2DD",JODYPS:"\uC870\uC120\uC2DC\uB300",MDKRPS:"\uD55C\uAD6D \uADFC\uD604\uB300",THKDPS:"\uC0BC\uAD6D\uC2DC\uB300",WRLART:"\uC138\uACC4\uC758 \uC608\uC220\uAC00",WRLPSN:"\uC138\uACC4\uC758 \uC778\uBB3C",KRLANG:"\uC6B0\uB9AC\uB9D0",TRPLCT:"\uC804\uD1B5\uB180\uC774",HERITG:"\uBB38\uD654\uC7AC",EVTFES:"\uD589\uC0AC\uC640 \uCD95\uC81C",GECTKL:"\uC0C1\uC2DD",FRYTAL:"\uB3D9\uD654",AMZING:"\uC2E0\uAE30\uD55C \uC774\uC57C\uAE30",DAYSTR:"\uC77C\uC0C1 \uC18D \uC774\uC57C\uAE30",KRLDMK:"\uD55C\uAD6D\uC758 \uBA85\uC18C",SELNMK:"\uC11C\uC6B8\uC758 \uBA85\uC18C",WRDTRB:"\uC138\uACC4\uC5EC\uD589",NAVIGT:"\uAE38 \uCC3E\uAE30",KRSOCI:"\uD55C\uAD6D",ECONEW:"\uACBD\uC81C\uC640 \uB274\uC2A4",GENART:"\uC608\uC220",GELFKL:"\uC0DD\uD65C \uC0C1\uC2DD",ANIMAL:"\uB3D9\uBB3C",PLANTS:"\uC2DD\uBB3C",ETHPLT:"\uC9C0\uAD6C",TOLELC:"\uB3C4\uAD6C\uC640 \uC804\uC790\uC81C\uD488",GESCKL:"\uACFC\uD559\uC0C1\uC2DD",INVDSP:"\uAC1C\uC778\uACBD\uAE30",MARART:"\uACA9\uD22C\uAE30",TEAMSP:"\uB2E8\uCCB4\uACBD\uAE30",FOOTBL:"\uCD95\uAD6C",GESPKL:"\uC2A4\uD3EC\uCE20 \uC0C1\uC2DD"}},Ha={maxUses:"\uCD5C\uB300 \uC0AC\uC6A9 \uD69F\uC218 (\uBE44\uC6CC\uB450\uBA74 \uBB34\uC81C\uD55C)",redirect:"\uC774\uB3D9\uD560 \uD398\uC774\uC9C0 URL (\uBE44\uC6CC\uB450\uBA74 \uC571 \uBA54\uC778)",creating:"\uC0DD\uC131 \uC911\u2026",create:"\uB9C1\uD06C \uC0DD\uC131",created:"\u2713 \uB9C1\uD06C\uAC00 \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4",copied:"\uBCF5\uC0AC\uB428!",copy:"\uBCF5\uC0AC",loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026",empty:"\uC0DD\uC131\uB41C \uB9C1\uD06C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",uses:"{{count}}\uD68C \uC0AC\uC6A9",expiresAt:"\uB9CC\uB8CC: {{date}}",createdAt:"\uC0DD\uC131: {{date}}",confirmDelete:"\uC0AD\uC81C\uD560\uAE4C\uC694?",deactivate:"\uBE44\uD65C\uC131\uD654",delete:"\uC0AD\uC81C",status:{active:"\uC720\uD6A8",expired:"\uB9CC\uB8CC",inactive:"\uBE44\uD65C\uC131"}},Ga={passwordPlaceholder:"\uBE44\uBC00\uBC88\uD638 \uC785\uB825"},Va={subtitle:"\uC8FC\uC81C\uB97C \uC120\uD0DD\uD558\uC5EC \uB4E3\uAE30 \uC5F0\uC2B5\uC744 \uC9C4\uD589\uD558\uC138\uC694."},Wa={direction:{left:"\uC88C",right:"\uC6B0",label:"\uBC29\uD5A5"},wornDate:"\uCC29\uC6A9\uC77C",deviceType:"\uC885\uB958",brand:"\uBE0C\uB79C\uB4DC",fitType:"\uCC29\uC6A9\uD615\uD0DC",productName:"\uC81C\uD488\uBA85",validationError:{brandAndProduct:"\uBE0C\uB79C\uB4DC\uC640 \uC81C\uD488\uBA85\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694."},addNew:"\uC0C8 \uAE30\uAE30 \uCD94\uAC00",selectFromList:"\uBAA9\uB85D\uC5D0\uC11C \uC120\uD0DD",removeDevice:"\uCC29\uC6A9 \uD574\uC81C",type:{hearingAid:"\uBCF4\uCCAD\uAE30",cochlearImplant:"\uC778\uACF5\uC640\uC6B0"}},Ya={stat:{totalCustomers:"\uCD1D \uACE0\uAC1D",monthlyVisits:"\uC774\uB2EC \uCD1D \uBC29\uBB38"},chart:{visitDetail:"\uC0C1\uC138 \uBC29\uBB38 \uD604\uD669",trainingDetail:"\uC0C1\uC138 \uD6C8\uB828 \uD604\uD669",weekly:"\uC8FC\uBCC4",daily:"\uC77C\uBCC4",periodMonth:"\uC6D4",periodWeek:"\uC8FC",weeklyPrefix:"\uC8FC\uAC04",monthlyPrefix:"\uC6D4\uAC04",visit:"\uBC29\uBB38",reservation:"\uC608\uC57D",trainingDone:"\uD6C8\uB828 \uC644\uB8CC",trainingInProgress:"\uD6C8\uB828 \uC911",weekRange:"{{start}}~{{end}}",week:"{{n}}\uC8FC"},subscriptionStatus:{active:"{{pct}}% \uD65C\uC131",expired:"{{pct}}% \uB9CC\uB8CC",unused:"{{pct}}% \uBBF8\uC0AC\uC6A9"}},Ka={editBanner:{message:"\uC800\uC7A5\uD558\uBA74 \uC9C0\uAE08 \uC218\uC815 \uC911\uC778 \uB300\uB9BD\uC30D\uD45C\uAC00 \uAC31\uC2E0\uB429\uB2C8\uB2E4."},phonemeSelect:{title:"\uC74C\uC18C \uC120\uD0DD",vs:"\uB300"},caution:"\uC720\uC758\uC0AC\uD56D",mode:{include:"\uC74C\uC18C \uD3EC\uD568",pick:"\uC74C\uC18C \uB300\uB9BD",contrast:"\uC74C\uC18C \uB300\uB9BD \uC9C0\uC815",infoTitle:"\uB300\uB9BD \uBC29\uC2DD",infoInclude:"\uC74C\uC18C \uD3EC\uD568 \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uAC00 \uBAA8\uB450 \uB4E4\uC5B4\uAC04 \uB2E8\uC5B4\uC640 \uADF8 \uB300\uB9BD\uC30D\uC744 \uCC3E\uC544\uC694.",infoPick:"\uC74C\uC18C \uB300\uB9BD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uAC00 \uB300\uB9BD\uC30D \uB450 \uB2E8\uC5B4\uC758 \uC2E4\uC81C \uCC28\uC774\uC810\uC77C \uB54C\uB9CC \uB9E4\uCE6D\uB3FC\uC694.",infoContrast:"\uC74C\uC18C \uB300\uB9BD \uC9C0\uC815 \u2014 \uAE30\uC900 \uB2E8\uC5B4\uC640 \uB300\uB9BD \uB2E8\uC5B4\uC758 \uC74C\uC18C\uB97C \uAC01\uAC01 \uC9C1\uC811 \uC120\uD0DD\uD574 \uB300\uB9BD\uC30D\uC744 \uCC3E\uC544\uC694."},count:"{{n}}\uAC1C",input:{char:"\uAE00\uC790 \uC120\uD0DD",pron:"\uBC1C\uC74C \uC120\uD0DD",infoTitle:"\uC785\uB825 \uBC29\uC2DD",infoChar:"\uAE00\uC790 \uC120\uD0DD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uB85C \uB2E8\uC5B4(\uAE00\uC790 \uAE30\uC900)\uB97C \uCC3E\uC740 \uD6C4, \uB2E8\uC5B4\uC758 \uD45C\uC900 \uBC1C\uC74C \uB300\uB9BD\uC30D\uC744 \uCC3E\uC2B5\uB2C8\uB2E4.",infoPron:"\uBC1C\uC74C \uC120\uD0DD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uB85C \uD45C\uC900 \uBC1C\uC74C \uB300\uB9BD\uC30D\uC744 \uCC3E\uC2B5\uB2C8\uB2E4."},phonemeN:"{{n}}\uBC88 \uC74C\uC808",phonemeSingleLabel:"\uC74C\uC808",phonemeContrastSingleLabel:"\uB300\uB9BD \uC74C\uC808",ordinals:["\uCCAB\uBC88\uC9F8","\uB450\uBC88\uC9F8","\uC138\uBC88\uC9F8","\uB124\uBC88\uC9F8"],phonemeOrdinalLabel:"{{ordinal}} \uC74C\uC808",phonemeContrastOrdinalLabel:"\uB300\uB9BD {{ordinal}} \uC74C\uC808",composition:"\uC815\uB2F5 \uB2E8\uC5B4 \uAD6C\uC131",syllableCount:"\uC74C\uC808 \uC218",syllableN:"{{n}}\uC74C\uC808",syllableNPlus:"{{n}}\uC74C\uC808 \uC774\uC0C1",onset:"\uCD08\uC131",vowel:"\uBAA8\uC74C",coda:"\uC885\uC131",filter:{searchOptionsTitle:"\uB300\uB9BD \uC124\uC815",searchModeLabel:"\uB300\uB9BD \uBC29\uC2DD",countLabel:"\uC785\uB825 \uC74C\uC808 \uAC2F\uC218",inputModeLabel:"\uC785\uB825 \uBC29\uC2DD",phonemeOrder:"\uC785\uB825 \uC74C\uC808 \uC704\uCE58",phonemeOrderInfo:["\uC77C\uCE58: \uB300\uB9BD\uC30D\uC774 \uC815\uD655\uD788 \uAC19\uC740 \uC704\uCE58(\uC74C\uC808)\uC5D0\uC11C\uB9CC \uCC28\uC774 \uB098\uC57C \uB9E4\uCE6D\uB3FC\uC694.","\uBB34\uAD00: \uCC28\uC774 \uB098\uB294 \uC704\uCE58\uB294 \uC0C1\uAD00\uC5C6\uC774 \uB9E4\uCE6D\uB3FC\uC694."],orderAny:"\uBB34\uAD00",orderMatch:"\uC77C\uCE58",difficultyInfo:"\uAD6D\uB9BD\uAD6D\uC5B4\uC6D0\uC758 \uAE30\uCD08 \uC5B4\uD718 \uB4F1\uAE09\uC774 \uACB0\uACFC\uC5D0 \uBC18\uC601\uB429\uB2C8\uB2E4.",selectLabel:"\uC120\uD0DD",onlyHasImage:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC",onlySameStructure:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC"},searchLabel:{error:"\uB370\uC774\uD130 \uBD88\uB7EC\uC624\uAE30 \uC2E4\uD328",loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026"},confirmMessage:"\uC120\uD0DD\uD55C {{unit}} {{count}}\uAC1C\uB97C \uD3EC\uD568\uD55C \uB2E8\uC5B4 \uD45C \uC815\uBCF4\uAC00 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4.",resetOptions:"\uAC80\uC0C9 \uC635\uC158 \uCD08\uAE30\uD654",phonemeContrast:"\uB300\uB9BD {{n}}\uBC88 \uC74C\uC808",infoNotes:["\uBBF8\uB9AC\uBCF4\uAE30 \uAE00\uC790\uB294 \uC120\uD0DD\uD55C \uC74C\uC18C\uC758 \uC870\uD569 \uC608\uC2DC\uC785\uB2C8\uB2E4. \uC2E4\uC81C \uAC80\uC0C9\uC740 \uD574\uB2F9 \uC74C\uC18C\uAC00 \uD3EC\uD568\uB41C \uBAA8\uB4E0 \uB2E8\uC5B4\uB97C \uB300\uC0C1\uC73C\uB85C \uD569\uB2C8\uB2E4.","\uCD08\uC131 '\u3147'\uC740 \uC120\uD0DD\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2E8\uC5B4 \uC55E\uC5D0 \uC624\uB294 \u3147\uC740 \uC2E4\uC9C8\uC801\uC73C\uB85C \uBB34\uC74C\uC774\uC5B4\uC11C \uB300\uB9BD\uC30D \uC131\uB9BD\uC5D0 \uC601\uD5A5\uC744 \uC8FC\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uCD08\uC131\uACFC \uC885\uC131\uB9CC \uC120\uD0DD\uD558\uBA74 \uBAA8\uC74C\uC740 '\u314F'\uB85C \uC790\uB3D9 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC74C\uC18C \uAC1C\uC218\uB97C \uB298\uB9AC\uBA74 \uAC01 \uC74C\uC18C \uC0AC\uC774\uC758 \uB300\uB9BD\uC30D\uC744 \uAC80\uC0C9\uD569\uB2C8\uB2E4."]},Ua={sentenceTyping:{roundCount:"{{rounds}}\uBB38\uC81C \xB7 \uBB38\uC81C\uB2F9 {{timeLimit}}\uCD08"},wordDefense:{me:"\uB098"},dictation:{title:"\uBC1B\uC544\uC4F0\uAE30",desc:"\uBB38\uC7A5\uC744 \uB4E3\uACE0 \uC815\uD655\uD788 \uBC1B\uC544\uC801\uB294 \uC5F0\uC2B5\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC74C\uC131 \uC7AC\uC0DD, \uC785\uB825 \uD544\uB4DC, \uC815\uB2F5 \uBE44\uAD50"},result:{heading:"{{number}}\uB2E8\uACC4 \uD574\uB2F5",retry:"\uB2E4\uC2DC \uD480\uAE30"},common:{accuracy:"{{pct}}% \uC815\uD655\uB3C4"},soundMatch:{title:"\uC18C\uB9AC \uB9E4\uCE6D",desc:"\uAC19\uC740 \uC18C\uB9AC\uB97C \uAC00\uC9C4 \uB2E8\uC5B4 \uB610\uB294 \uBB38\uC7A5\uC744 \uBE60\uB974\uAC8C \uB9E4\uCE6D\uD558\uB294 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uD50C\uB808\uC774 \uBC84\uD2BC, \uD0C0\uC774\uBA38, \uC810\uC218 \uC9D1\uACC4"},orderSequence:{title:"\uBB38\uC7A5 \uC21C\uC11C\uD654",desc:"\uD769\uC5B4\uC9C4 \uBB38\uC7A5 \uC870\uAC01\uC744 \uC62C\uBC14\uB978 \uC21C\uC11C\uB85C \uBC30\uC5F4\uD558\uB294 \uD6C8\uB828\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uBB38\uC7A5 \uC138\uD2B8, \uC21C\uC11C \uD655\uC778 \uC778\uD130\uD398\uC774\uC2A4"},speedListen:{title:"\uC18D\uB3C4 \uB4E3\uAE30",desc:"\uC2DC\uAC04 \uC81C\uD55C \uB0B4\uC5D0 \uBB38\uC7A5\uC758 \uB2E8\uC5B4 \uC218\uB97C \uB9DE\uCD94\uB294 \uB3C4\uC804\uD615 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC81C\uD55C\uC2DC\uAC04, \uC810\uC218\uD310"},noiseChallenge:{title:"\uC18C\uC74C \uCC4C\uB9B0\uC9C0",desc:"\uBC30\uACBD \uC18C\uC74C \uC18D\uC5D0\uC11C \uBB38\uC7A5\uC744 \uBD84\uBCC4\uD558\uB294 \uC5F0\uC2B5\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uB2E4\uC591\uD55C \uC18C\uC74C \uB808\uBCA8, \uC810\uC218 \uC9D1\uACC4"},fastListen:{title:"\uBE60\uB978 \uB4E3\uAE30",desc:"\uC9E7\uC740 \uBB38\uC7A5\uC744 \uBE60\uB974\uAC8C \uB4E4\uB824\uC8FC\uACE0 \uD575\uC2EC \uB2E8\uC5B4\uB97C \uC120\uD0DD\uD558\uB294 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uB09C\uC774\uB3C4\uBCC4 \uC18D\uB3C4, \uD0C0\uC774\uBA38"},shadowing:{title:"\uC250\uB3C4\uC789",desc:"\uBB38\uC7A5\uC744 \uB530\uB77C \uB9D0\uD558\uBA70 \uBC1C\uC74C\uACFC \uC5B5\uC591\uC744 \uC5F0\uC2B5\uD558\uB294 \uBAA8\uB4DC\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC7AC\uC0DD, \uB179\uC74C, \uBE44\uAD50 \uD53C\uB4DC\uBC31"},phonemeHunt:{title:"\uC74C\uC6B4 \uCC3E\uAE30",desc:"\uD2B9\uC815 \uC74C\uC6B4(\uBC1C\uC74C)\uC744 \uD3EC\uD568\uD55C \uB2E8\uC5B4\uB97C \uCC3E\uC544\uB0B4\uB294 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC74C\uC6B4 \uD544\uD130, \uD78C\uD2B8 \uAE30\uB2A5"}},za={lead:`\uC544\uC774\uD574\uBE0C\uB294 \uC18C\uB9AC\uB97C \uD1B5\uD574
1
+ "use strict";var s=require("react"),se=require("react-i18next"),ae=require("i18next"),Dt=typeof document<"u"?document.currentScript:null;function Mo(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if(n!=="default"){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var dn=Mo(s);function Io({storageKey:e="fontScale",baseFont:t=20,minScale:n=.8,maxScale:o=1.4,step:r=.1,lineHeightRatio:a=1.4}={}){const u=S=>Math.max(n,Math.min(o,Number(S))),i=S=>{try{const E=localStorage.getItem(S),M=E?Number(E):1;return Number.isFinite(M)?u(M):u(1)}catch{return u(1)}},[l,c]=s.useState(()=>i(e)),[g,d]=s.useState(e);g!==e&&(d(e),c(i(e))),s.useEffect(()=>{try{localStorage.setItem(e,String(l))}catch{}},[e,l]);const C=S=>{c(typeof S=="function"?E=>u(S(E)):u(S))},f=()=>C(S=>+(S+r).toFixed(6)),m=()=>C(S=>+(S-r).toFixed(6)),w=l<o-Number.EPSILON,h=l>n+Number.EPSILON,p=Math.round(t*l),y=Math.round(p*a);return{scale:l,setScale:C,increase:f,decrease:m,canIncrease:w,canDecrease:h,fontSize:p,lineHeight:y}}const Cn=s.createContext(null);function ko(e){return/max-width:\s*7[0-9][0-9]px/.test(e)}const gn=e=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(e).matches;function xo(e){const t=s.useCallback(n=>{if(typeof window>"u"||!window.matchMedia)return()=>{};const o=window.matchMedia(e);return o.addEventListener?o.addEventListener("change",n):o.addListener&&o.addListener(n),()=>{o.removeEventListener?o.removeEventListener("change",n):o.removeListener&&o.removeListener(n)}},[e]);return dn.useSyncExternalStore(t,()=>gn(e),()=>!1)}function jo(e){const[t,n]=s.useState(gn(e));return s.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const o=window.matchMedia(e),r=u=>n(u.matches),a=o;return a.addEventListener?a.addEventListener("change",r):a.addListener&&a.addListener(r),n(o.matches),()=>{a.removeEventListener?a.removeEventListener("change",r):a.removeListener&&a.removeListener(r)}},[e]),t}const Fo=typeof dn.useSyncExternalStore=="function"?xo:jo;function $o(e){const t=s.useContext(Cn),n=Fo(e);return t&&typeof t.mobile=="boolean"&&ko(e)?t.mobile:n}function fn(e){const t=s.useRef(e);return s.useEffect(()=>{t.current=e}),t}function mn(e,t){const n=fn(t);s.useEffect(()=>{const o=()=>n.current();try{window.addEventListener(e,o)}catch{}return()=>{try{window.removeEventListener(e,o)}catch{}}},[e,n])}const Tt=" \xB7 ",pn=(()=>{if(typeof document>"u")return"";const e=document.title;return e.includes(Tt)?e.split(Tt).pop()??e:e})(),hn=s.createContext(!1),be=[];let yn=null;function Ho(e){const t=s.useContext(hn);s.useEffect(()=>{if(t||typeof e!="string"||!e)return;be.length===0&&(yn=document.title);const n={text:pn?`${e}${Tt}${pn}`:e};return be.push(n),document.title=n.text,()=>{const o=be.lastIndexOf(n);o>=0&&be.splice(o,1),document.title=be.length?be[be.length-1].text:yn??document.title}},[e,t])}const Go=/^(\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2})(?::(\d{2})(?:\.(\d+))?)?$/;function Vo(e){let t;if(e instanceof Date)t=e;else if(typeof e=="string"){const n=e.trim(),o=Go.exec(n);t=new Date(o?`${o[1]}T${o[2]}:${o[3]??"00"}${o[4]?`.${o[4].slice(0,3).padEnd(3,"0")}`:""}+09:00`:n)}else t=new Date(e);return Number.isNaN(t.getTime())?null:t}function Oe(){return Re(new Date)}function Re(e){if(e==null||e==="")return"";const t=Vo(e);return t?new Intl.DateTimeFormat("fr-CA",{timeZone:"Asia/Seoul"}).format(t):""}function Wo(e,t){const[n,o,r]=e.split("-").map(Number),[a,u,i]=t.split("-").map(Number);return Math.round((Date.UTC(a,u-1,i)-Date.UTC(n,o-1,r))/864e5)}function Yo(){const{t:e}=se.useTranslation();return s.useCallback(t=>{if(!t)return"";const n=Re(t);if(!n)return"";const o=Wo(n,Oe());return o<=0?e("myHomework.relativeDay.today","\uC624\uB298"):o===1?e("myHomework.relativeDay.yesterday","\uC5B4\uC81C"):e("myHomework.relativeDay.daysAgo",{n:o})},[e])}const Ko=()=>{const e="\uC54C \uC218 \uC5C6\uB294 \uC624\uB958",t=typeof ae?.t=="function"?ae.t("common.unknownError",{defaultValue:e}):void 0;return typeof t=="string"&&t?t:e};function Uo(e,t){if(t===void 0&&(t=Ko()),e instanceof Error)return e.message||t;if(typeof e=="string")return e||t;if(e&&typeof e=="object"){const n=e;for(const o of[n.message,n.error_description,n.error])if(typeof o=="string"&&o)return o}return t}function zo(e){const{t}=se.useTranslation(),[n,o]=s.useState({current:"",next:"",confirm:""}),[r,a]=s.useState(null),[u,i]=s.useState(!1),l=s.useRef(null),c=s.useRef(!1);s.useEffect(()=>()=>{l.current!==null&&clearTimeout(l.current)},[]);const g=s.useCallback(()=>{o({current:"",next:"",confirm:""}),a(null)},[]),d=s.useCallback(async()=>{if(c.current)return;if(!n.current){a({type:"error",text:t("account.security.password.currentRequired","\uD604\uC7AC \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694.")});return}if(!n.next){a({type:"error",text:t("account.security.password.newRequired","\uC0C8 \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694.")});return}if(n.next!==n.confirm){a({type:"error",text:t("account.security.password.mismatch","\uC0C8 \uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.")});return}i(!0),c.current=!0;let C;try{C=e?await e(n.current,n.next):null}catch(f){C=Uo(f)}finally{c.current=!1,i(!1)}if(C){a({type:"error",text:C});return}a({type:"success",text:t("account.security.password.changed","\uBE44\uBC00\uBC88\uD638\uAC00 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4.")}),o({current:"",next:"",confirm:""}),l.current!==null&&clearTimeout(l.current),l.current=setTimeout(()=>a(null),1500)},[n,e,t]);return{pw:n,setPw:o,pwMsg:r,setPwMsg:a,pwLoading:u,handleChangePw:d,reset:g}}const qo={\u3131:"\u3131",\u3132:"\u3131",\u314B:"\u3131",\u3133:"\u3131",\u313A:"\u3131",\u3134:"\u3134",\u3135:"\u3134",\u3136:"\u3134",\u3137:"\u3137",\u3145:"\u3137",\u3146:"\u3137",\u3148:"\u3137",\u314A:"\u3137",\u314C:"\u3137",\u314E:"\u3137",\u3139:"\u3139",\u313C:"\u3139",\u313D:"\u3139",\u313E:"\u3139",\u3140:"\u3139",\u3141:"\u3141",\u313B:"\u3141",\u3142:"\u3142",\u314D:"\u3142",\u313F:"\u3142",\u3144:"\u3142",\u3147:"\u3147"},Nt={\u314F:{nucleus:"\u314F"},\u3151:{glide:"j",nucleus:"\u314F"},\u3153:{nucleus:"\u3153"},\u3155:{glide:"j",nucleus:"\u3153"},\u3157:{nucleus:"\u3157"},\u315B:{glide:"j",nucleus:"\u3157"},\u315C:{nucleus:"\u315C"},\u3160:{glide:"j",nucleus:"\u315C"},\u3161:{nucleus:"\u3161"},\u3163:{nucleus:"\u3163"},\u3150:{nucleus:"\u3154/\u3150"},\u3152:{glide:"j",nucleus:"\u3154/\u3150"},\u3154:{nucleus:"\u3154/\u3150"},\u3156:{glide:"j",nucleus:"\u3154/\u3150"},\u3158:{glide:"w",nucleus:"\u314F"},\u3159:{glide:"w",nucleus:"\u3154/\u3150"},\u315A:{glide:"w",nucleus:"\u3154/\u3150"},\u315D:{glide:"w",nucleus:"\u3153"},\u315E:{glide:"w",nucleus:"\u3154/\u3150"},\u315F:{glide:"w",nucleus:"\u3163"},\u3162:{glide:"\u0270",nucleus:"\u3163"}};function Jo(e,t){return(Nt[e]?.glide??"")!==(Nt[t]?.glide??"")}function Pe(e){return qo[e]??e}const Q=["\u3131","\u3132","\u3134","\u3137","\u3138","\u3139","\u3141","\u3142","\u3143","\u3145","\u3146","\u3147","\u3148","\u3149","\u314A","\u314B","\u314C","\u314D","\u314E"],te=["\u314F","\u3150","\u3151","\u3152","\u3153","\u3154","\u3155","\u3156","\u3157","\u3158","\u3159","\u315A","\u315B","\u315C","\u315D","\u315E","\u315F","\u3160","\u3161","\u3162","\u3163"],oe=["","\u3131","\u3132","\u3133","\u3134","\u3135","\u3136","\u3137","\u3139","\u313A","\u313B","\u313C","\u313D","\u313E","\u313F","\u3140","\u3141","\u3142","\u3144","\u3145","\u3146","\u3147","\u3148","\u314A","\u314B","\u314C","\u314D","\u314E"];function V(e){if(!e)return null;const t=e.charCodeAt(0)-44032;return t<0||t>=11172?null:{cho:Math.floor(t/588),jung:Math.floor(t%588/28),jong:t%28}}function Qo(){const e=new Map;return t=>{let n=e.get(t);return n||(n=[...t].map(o=>V(o)),e.set(t,n)),n}}function fe(e,t,n=0){return String.fromCharCode(44032+(e*21+t)*28+n)}function Zo(e,t){if(!e||!t||e===t||e.length!==t.length)return"random";let n=0,o=null;for(let r=0;r<e.length;r++){const a=V(e[r]),u=V(t[r]);if(!a||!u)return"random";if(a.cho===u.cho&&a.jung===u.jung&&a.jong===u.jong)continue;n++;const i=a.cho!==u.cho,l=a.jung!==u.jung,c=a.jong!==u.jong;(i?1:0)+(l?1:0)+(c?1:0)>1?o="multi":i?o="cho":l?o="jung":o="jong"}return n!==1?"random":o==="cho"?"cho":o==="jung"?"jung":o==="jong"?"jong":"random"}const ot={3:["\u3131","\u3145"],5:["\u3134","\u3148"],6:["\u3134","\u314E"],9:["\u3139","\u3131"],10:["\u3139","\u3141"],11:["\u3139","\u3142"],12:["\u3139","\u3145"],13:["\u3139","\u314C"],14:["\u3139","\u314D"],15:["\u3139","\u314E"],18:["\u3142","\u3145"]};Object.fromEntries(Object.entries(ot).map(([e,t])=>[t.join(""),oe[Number(e)]]));function Xo(e,t){if(!e||!t)return!1;for(const n of e){const o=V(n);if(o){if(Q[o.cho]===t)return!0;if(o.jong>0){if(oe[o.jong]===t)return!0;const r=ot[o.jong];if(r&&r.includes(t))return!0}}}return!1}function er(e,t,n){const o=oe[e];return o===t?!0:n==="phoneme"&&Pe(o)===Pe(t)}function Me(e){if(!e)return 0;let t=0;for(const n of e)V(n)&&t++;return t}function tr(e){if(!e)return!1;let t=!1;for(const n of e){const o=V(n);if(o&&(t=!0,o.jong>0))return!1}return t}function nr(e,t,n){return e.jong<=0?!1:t.some(o=>er(e.jong,o,n))}function or(e,t,n,o="glyph"){if(!e)return!1;const r=[...e],a=u=>{const i=V(r[u]);if(!i||t.cho&&!t.cho.includes(Q[i.cho])||t.jung&&!t.jung.includes(te[i.jung]))return!1;if(t.jongNone){if(i.jong>0)return!1}else if(t.jong&&!nr(i,t.jong,o))return!1;return!0};if(n==="head")return a(0);if(n==="tail")return a(r.length-1);if(n==="mid"){for(let u=1;u<r.length-1;u++)if(a(u))return!0;return!1}for(let u=0;u<r.length;u++)if(a(u))return!0;return!1}const rr={cho:Q.length,jung:te.length,jong:oe.length};function ar(e,t,n,o,r=1/0){if(!e||n<1)return[];const a=[...e].map(d=>V(d));if(a.some(d=>!d))return[];const u=a,i=u.length;if(n>i)return[];const l=rr[t],c=new Set,g=[];(function d(C,f){if(f.length===n){g.push([...f]);return}for(let m=C;m<i;m++)f.push(m),d(m+1,f),f.pop()})(0,[]);for(const d of g)if((function C(f,m){if(c.size>=r)return;if(f===d.length){const p=m.map(y=>fe(y.cho,y.jung,y.jong)).join("");p!==e&&o.has(p)&&c.add(p);return}const w=d[f],h=u[w][t];for(let p=0;p<l;p++){if(p===h)continue;const y=m.slice();if(y[w]={...m[w],[t]:p},C(f+1,y),c.size>=r)return}})(0,u),c.size>=r)break;return[...c]}function ur(e,t){if(!e||!t||e.length!==t.length)return-1;let n=0;for(let o=0;o<e.length;o++){const r=V(e[o]),a=V(t[o]);if(!r||!a)return-1;r.cho!==a.cho&&n++,r.jung!==a.jung&&n++,r.jong!==a.jong&&n++}return n}const bn="word_pair_index_v2",Sn="word_pair_index_sig_v2";let Ie=null;function ir(){try{if(typeof localStorage>"u")return null;const e=localStorage.getItem(bn),t=localStorage.getItem(Sn);return!e||!t?null:{index:JSON.parse(e),sig:t}}catch{return null}}function ke(){if(Ie)return Ie;const e=ir();return e?(Ie=e.index,e.sig,Ie):null}function lr(){Ie=null;try{typeof localStorage<"u"&&(localStorage.removeItem(bn),localStorage.removeItem(Sn))}catch{}}const wn="word_image_existence_map_v1";let De=null,xe=0,En=-1,je=null,An=-1,vn=new Set;function Bn(){if(De)return De;try{const e=typeof localStorage<"u"?localStorage.getItem(wn):null,t=e?JSON.parse(e):null;De=t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{De={}}return De}function Dn(){const e=Bn();if(En===xe)return je?{...je}:null;const t=Object.values(e);return je=t.length===0?null:{total:t.length,exists:t.filter(Boolean).length},En=xe,je?{...je}:null}function Tn(){const e=Bn();if(An===xe)return vn;const t=new Set;for(const n in e)e[n]===!0&&n.endsWith("_1")&&t.add(n.slice(0,-2));return vn=t,An=xe,t}function sr(){De={},xe++;try{typeof localStorage<"u"&&localStorage.removeItem(wn)}catch{}}const Nn=[{id:"wordData",labelKey:"settings.cache.group.wordData.label",subKey:"settings.cache.group.wordData.sub",keys:["word_data_cache","word_data_version"]},{id:"pairIndex",labelKey:"settings.cache.group.pairIndex.label",subKey:"settings.cache.group.pairIndex.sub",keys:["word_pair_index_v2","word_pair_index_sig_v2"]},{id:"imageCache",labelKey:"settings.cache.group.imageCache.label",subKey:"settings.cache.group.imageCache.sub",keys:["word_image_existence_map_v1"]}];function _n(e){return e.reduce((t,n)=>{try{const o=localStorage.getItem(n);return t+(o?new Blob([o]).size:0)}catch{return t}},0)}function cr(e){return e===0?"0 B":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(2)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function dr(e){const{t}=se.useTranslation(),[n,o]=s.useState({}),[r,a]=s.useState(null),[u,i]=s.useState(null),[l,c]=s.useState(null),g=s.useCallback(()=>{const C={};Nn.forEach(f=>{C[f.id]=_n([...f.keys])}),o(C),typeof navigator<"u"&&navigator.storage?.estimate&&navigator.storage.estimate().then(f=>{c({usage:f.usage??0,quota:f.quota??0})}).catch(()=>{})},[]);s.useEffect(()=>{g()},[g]);const d=s.useCallback(async C=>{a(C);try{C==="wordData"?(localStorage.removeItem("word_data_cache"),localStorage.removeItem("word_data_version")):C==="pairIndex"?lr():C==="imageCache"&&sr(),g(),e?.(t("settings.cache.cleared","\uCE90\uC2DC\uAC00 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4."))}finally{a(null)}},[g,e,t]);return{cacheSizes:n,clearingId:r,confirmCacheId:u,setConfirmCacheId:i,storageEstimate:l,refreshCacheSizes:g,handleClearCache:d}}function Cr(e){const[t,n]=s.useState(null),[o,r]=s.useState(null),a=s.useCallback(()=>{const u=ke();if(u){const l=Object.values(u),c=l.filter(g=>g.cho.length+g.jung.length+g.jong.length>0).length;n({matched:c,total:l.length})}else n(null);const i=Dn();r(i?{exists:i.exists,total:i.total}:null)},[]);return s.useEffect(()=>{a();const u=setTimeout(a,1e3);return()=>clearTimeout(u)},[e?.length,a]),{pairStats:t,imgStats:o,setPairStats:n,setImgStats:r,refreshStats:a}}function Se(e,t){if(e===t)return!0;const n=e?.id,o=t?.id;return n!=null&&n!==""&&n===o}function Ln(e,t=[]){const[n,o]=s.useState(t),[r,a]=s.useState(null),[u,i]=s.useState(!1),[l,c]=s.useState(e),g=s.useRef(!1),d=s.useRef(null);s.useEffect(()=>{if(u)return;if(g.current){g.current=!1;return}const p=d.current;p!==null&&p.length===t.length&&p.every((y,S)=>y===t[S])||(d.current=t,o(t),a(y=>y==null?y:t.find(S=>Se(S,y))??y))},[t,u]),s.useEffect(()=>{!u&&r!=null&&c({...r})},[u,r]);const C=s.useCallback(p=>{a(p),i(!1),c({...p})},[]),f=s.useCallback(()=>i(!0),[]),m=s.useCallback(()=>i(!1),[]),w=s.useCallback((p,y)=>{o(p),a(y),i(S=>(S&&(g.current=!0),!1))},[]),h=s.useCallback(p=>{o(y=>y.filter(S=>!Se(S,p))),a(null)},[]);return{list:n,setList:o,selected:r,setSelected:a,isEditing:u,setIsEditing:i,editForm:l,setEditForm:c,openDetail:C,startEditing:f,cancelEditing:m,commitEdit:w,remove:h}}const Fe=()=>{const[e,t,n]=Oe().split("-");return{year:e,month:t,day:n}},gr={year:"",month:"",day:"",hour:"09",minute:"00",memo:""};function fr(e=[]){const{list:t,setList:n,selected:o,setSelected:r,isEditing:a,setIsEditing:u,editForm:i,setEditForm:l,openDetail:c,commitEdit:g}=Ln(gr,e),{year:d,month:C,day:f}=Fe(),[m,w]=s.useState({year:d,month:C,day:f,hour:"09",minute:"00",memo:""});return{visitHistory:t,visitForm:m,setVisitForm:w,setVisit:h=>p=>w(y=>({...y,[h]:p})),selectedVisit:o,setSelectedVisit:r,isEditingVisit:a,setIsEditingVisit:u,editVisitForm:i,setEditVisitForm:l,openVisitDetail:c,handleVisitSave:h=>{n(E=>[m,...E]);const{year:p,month:y,day:S}=Fe();w({year:p,month:y,day:S,hour:"09",minute:"00",memo:""}),h?.()},handleVisitEditSave:()=>{g(h=>h.map(p=>o!=null&&Se(p,o)?i:p),i)},addVisit:h=>{n(p=>[h,...p])},removeVisit:h=>{n(p=>p.filter(y=>!Se(y,h)))},revertVisitEdit:(h,p)=>{n(y=>y.map(S=>S===p?h:S)),r(y=>y===p?h:y)}}}const On=e=>`${e.year.padStart(4,"0")}-${e.month.padStart(2,"0")}-${e.day.padStart(2,"0")} ${e.hour.padStart(2,"0")}:${e.minute.padStart(2,"0")}`,$e=e=>[...e].sort((t,n)=>{const o=On(t),r=On(n);return o<r?-1:o>r?1:0}),mr={year:"",month:"",day:"",hour:"09",minute:"00",memo:""};function pr(e,t=[]){const n=s.useMemo(()=>$e(t),[t]),{list:o,setList:r,selected:a,setSelected:u,isEditing:i,setIsEditing:l,editForm:c,setEditForm:g,openDetail:d,commitEdit:C,remove:f}=Ln(mr,n),[m,w]=s.useState([]),{year:h,month:p,day:y}=Fe(),[S,E]=s.useState({year:h,month:p,day:y,hour:"09",minute:"00",memo:""}),M=L=>k=>E(W=>({...W,[L]:k})),B=L=>{r(U=>$e([...U,S]));const{year:k,month:W,day:X}=Fe();E({year:k,month:W,day:X,hour:"09",minute:"00",memo:""}),L?.()},T=()=>{C(L=>$e(L.map(k=>a!=null&&Se(k,a)?c:k)),c)},D=s.useCallback(L=>{f(L)},[f]),I=s.useCallback(L=>{e({year:L.year,month:L.month,day:L.day,hour:L.hour,minute:L.minute,memo:L.memo,...L.id!=null?{id:L.id}:{}}),f(L)},[e,f]),v=s.useCallback(L=>{r(k=>k.filter(W=>!Se(W,L))),w(k=>[L,...k]),u(null)},[r,u]),$=s.useCallback(L=>{r(k=>$e([...k,L]))},[r]),F=s.useCallback(L=>{r(k=>k.filter(W=>!Se(W,L)))},[r]),P=s.useCallback((L,k)=>{r(W=>$e(W.map(X=>X===k?L:X))),u(W=>W===k?L:W)},[r,u]);return{scheduleList:o,noShowList:m,addSchedule:$,removeSchedule:F,revertScheduleEdit:P,scheduleForm:S,setScheduleForm:E,setSchedule:M,selectedSchedule:a,setSelectedSchedule:u,isEditingSchedule:i,setIsEditingSchedule:l,editScheduleForm:c,setEditScheduleForm:g,openScheduleDetail:d,handleScheduleSave:B,handleScheduleEditSave:T,handleScheduleDelete:D,handleScheduleToVisit:I,handleScheduleNoVisit:v}}const rt=[{value:"10",label:"10\uAC1C\uC529 \uBCF4\uAE30"},{value:"25",label:"25\uAC1C\uC529 \uBCF4\uAE30"},{value:"50",label:"50\uAC1C\uC529 \uBCF4\uAE30"},{value:"100",label:"100\uAC1C\uC529 \uBCF4\uAE30"}];function hr(e){const{t}=se.useTranslation(),[n,o]=s.useState(""),[r,a]=s.useState("25"),[u,i]=s.useState("all"),[l,c]=s.useState(1),g=s.useMemo(()=>e.filter(({item:w,status:h})=>!(n&&!w.memo.includes(n)||u!=="all"&&h!==u)),[e,n,u]),d=Math.max(1,Math.ceil(g.length/Number(r))),C=Math.min(l,d),f=s.useMemo(()=>g.slice((C-1)*Number(r),C*Number(r)),[g,C,r]),m=s.useMemo(()=>rt.map(w=>({...w,label:t("common.pageSizeLabel",{n:w.value,defaultValue:w.label})})),[t]);return{vapSearch:n,setVapSearch:o,vapPageSize:r,setVapPageSize:a,vapPageSizeOptions:m,vapStatus:u,setVapStatus:i,vapPage:C,setVapPage:c,vapFiltered:g,vapTotal:d,vapPageItems:f}}const yr=(()=>{let e=null;return()=>(e||(e=new Intl.Collator("ko")),e)})();function Rn(e,t){return yr().compare(e,t)}const at=new Map;function br(e){const t=at.get(e);if(t)return t;const n=[],o=/-?\d+(?:\.\d+)?/g;let r=0;for(let a=o.exec(e);a;a=o.exec(e)){let u=a.index,i=a[0];i[0]==="-"&&u>0&&!/\s/.test(e[u-1])&&(u+=1,i=i.slice(1)),u>r&&n.push(e.slice(r,u)),n.push(Number(i)),r=a.index+a[0].length}return r<e.length&&n.push(e.slice(r)),at.size>5e3&&at.clear(),at.set(e,n),n}function Sr(e){if(!/^[\d\s-]+$/.test(e))return null;const t=e.replace(/\D/g,"");return t.length<9||t.length>11?null:t[0]==="0"||t[0]==="1"&&e!==t?t:null}function wr(e,t){const n=c=>c==null||typeof c=="number"&&Number.isNaN(c)?"":String(c).trim(),o=n(e),r=n(t);if(o===r)return 0;const a=(c,g)=>{if(typeof c=="number"&&!Number.isNaN(c))return[c];const d=Sr(g);return d!==null?[d]:br(g)},u=a(e,o),i=a(t,r),l=Math.min(u.length,i.length);for(let c=0;c<l;c++){const g=u[c],d=i[c];if(typeof g=="number"&&typeof d=="number"){if(g!==d)return g-d;continue}if(typeof g=="number")return-1;if(typeof d=="number")return 1;const C=Rn(g,d);if(C!==0)return C}return u.length!==i.length?u.length-i.length:Rn(o,r)}const Pn=e=>e==null||typeof e=="number"&&Number.isNaN(e)||typeof e=="string"&&e.trim()==="";function Er(e,t,n){const o=Pn(e),r=Pn(t);if(o||r)return o===r?0:o?1:-1;const a=wr(e,t);return n?a:-a}function Ar(e,t,n){const{t:o}=se.useTranslation(),[r,a]=s.useState(()=>{const m=n?.initialPageSize;return m&&rt.some(w=>w.value===m)?m:"25"}),[u,i]=s.useState(1),[l,c]=s.useState(t);Object.is(l,t)||(c(t),u!==1&&i(1));const g=s.useMemo(()=>rt.map(m=>({...m,label:o("visits.showN",{n:m.value})})),[o]),d=s.useCallback(m=>{a(m),i(1)},[]),C=Math.max(1,Math.ceil(e.length/Number(r)));(u>C||u<1||!Number.isFinite(u))&&i(Math.min(Math.max(1,Number.isFinite(u)?u:1),C));const f=Math.min(Math.max(1,Number.isFinite(u)?u:1),C);return{pageRows:s.useMemo(()=>e.slice((f-1)*Number(r),f*Number(r)),[e,f,r]),pageSizeProps:{options:g,value:r,onChange:d},paginationProps:{page:f,total:C,onChange:i},setPage:i}}function vr(e){const[t,n]=s.useState(null),o=s.useRef(t),r=s.useRef(e?.onSortChange);r.current=e?.onSortChange;const a=s.useCallback(l=>{const c=o.current,g=c?.key===l?{key:l,asc:!c.asc}:{key:l,asc:!0};o.current=g,n(g),r.current?.(g)},[]),u=s.useCallback((l,c)=>({label:l,sortDir:t?.key===c?t.asc?"asc":"desc":null,onClick:()=>a(c)}),[t,a]),i=s.useCallback((l,c)=>{if(!t)return l;const{key:g,asc:d}=t;return[...l].sort((C,f)=>Er(c(C,g),c(f,g),d))},[t]);return{\uC815\uB82C:t,\uCE78:u,sortRows:i}}const Mn=e=>e==="\uC88C"||e==="\uC6B0"?e:null;function Br(){const[e,t]=s.useState(!1),[n,o]=s.useState("\uC88C"),[r,a]=s.useState({\uC88C:null,\uC6B0:null}),[u,i]=s.useState({\uC88C:[],\uC6B0:[]}),[l,c]=s.useState(!1),[g,d]=s.useState("\uC88C"),C=s.useCallback(m=>{const w=Mn(m.direction);w&&(a(h=>({...h,[w]:m})),i(h=>({...h,[w]:[m,...h[w]]})),t(!1))},[]),f=s.useCallback(m=>{const w=Mn(m.direction);w&&(a(h=>({...h,[w]:m})),c(!1))},[]);return{showDevice:e,setShowDevice:t,deviceDirection:n,setDeviceDirection:o,devices:r,setDevices:a,deviceHistory:u,setDeviceHistory:i,showDeviceList:l,setShowDeviceList:c,listForSide:g,setListForSide:d,handleDeviceSubmit:C,handleSelectFromList:f}}const Dr="__ihab_core_word_pool__";function ut(){return globalThis[Dr]??null}function H(e,t=Math.random){const n=e.slice();for(let o=n.length-1;o>0;o--){const r=Math.floor(t()*(o+1));[n[o],n[r]]=[n[r],n[o]]}return n}function ce(e,t,n=Math.random){return!Array.isArray(e)||e.length===0||t<=0?[]:t>=e.length?H(e,n):H(e,n).slice(0,t)}const _t={SAME_SOUND_PICK:{difficulty:!0,choseong:!0,group:"discrimination"},SAME_OR_DIFF:{difficulty:!0,choseong:!0,group:"discrimination"},HEAR_AND_PICK_SAME:{difficulty:!0,choseong:!0,group:"discrimination"},HEAR_AND_PICK_INCLUDED:{difficulty:!0,choseong:!0,group:"discrimination"},STARTS_WITH_SAME_SOUND:{difficulty:!1,choseong:!0,group:"discrimination"},LISTEN_AND_REMEMBER_ORDER:{difficulty:!1,choseong:!0,group:"attention"},MERGE_2_SYLLABLES:{difficulty:!1,choseong:!0,group:"synthesis"},MERGE_3_SYLLABLES:{difficulty:!1,choseong:!0,group:"synthesis"},MERGE_2_PHONEMES:{difficulty:!1,choseong:!0,group:"synthesis"},MERGE_3_PHONEMES:{difficulty:!1,choseong:!0,group:"synthesis"},DROP_1_FROM_2SYLL:{difficulty:!1,choseong:!0,group:"deletion"},DROP_1_FROM_3SYLL:{difficulty:!1,choseong:!0,group:"deletion"},DROP_PART_FROM_COMPOUND:{difficulty:!1,choseong:!0,group:"deletion"},DROP_FINAL_CONSONANT_FROM_1SYLL:{difficulty:!1,choseong:!0,group:"deletion"},REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:{difficulty:!1,choseong:!0,group:"deletion"},CHANGE_1_SYLL_IN_2SYLL:{difficulty:!0,choseong:!0,group:"substitution"},CHANGE_1_SYLL_IN_3SYLL:{difficulty:!0,choseong:!0,group:"substitution"},CHANGE_1_PHONEME_IN_1SYLL:{difficulty:!1,choseong:!0,group:"substitution"},CHANGE_1_PHONEME_IN_2SYLL:{difficulty:!0,choseong:!0,group:"substitution"}},Lt=Q.indexOf("\u3147"),it={DROP_FINAL_CONSONANT_FROM_1SYLL:{syllables:1,syllable:e=>e.jong>0},REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:{syllables:1,syllable:e=>e.jong===0&&e.cho!==Lt},MERGE_2_SYLLABLES:{syllables:2,syllable:()=>!0},MERGE_3_SYLLABLES:{syllables:3,syllable:()=>!0},MERGE_2_PHONEMES:{syllables:1,syllable:e=>e.jong===0&&e.cho!==Lt},MERGE_3_PHONEMES:{syllables:1,syllable:e=>e.jong>0&&!ot[e.jong]&&e.cho!==Lt}},Ot={cho:Q,jung:te,jong:oe},z=e=>Array.isArray(e)?e.length>0:!!e;function Rt(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){const o=e[n],r=t[n];if(!(!o||!r)&&(o.cho!==r.cho&&Q[o.cho]==="\u3147"!=(Q[r.cho]==="\u3147")||o.jung!==r.jung&&Jo(te[o.jung],te[r.jung])||o.jong!==r.jong&&o.jong===0!=(r.jong===0)))return!0}return!1}function Tr(e,t,n){const o=n.pronOf(e),r=n.decompOf,a=n.sameStructureOnly&&r?r(o):null,u=[];for(const i of t)i!==e&&(n.okSet&&!n.okSet.has(i)||n.pronOf(i)!==o&&(a&&r&&Rt(a,r(n.pronOf(i)))||u.push(i)));return u}function In(e,t,n){const o=t?.[e];if(!o)return[];const r=n.kind?o[n.kind]??[]:[...o.cho??[],...o.jung??[],...o.jong??[]];return Tr(e,r,n)}function Nr(e,t,n,o,r,a,u){const i=["cho","jung","jong"].filter(C=>z(e[C])),l={};for(const C of i){const f=e[C];l[C]=new Set(Array.isArray(f)?f:[f])}const c=r==="pron",g=new Map;for(const C of t){const f=n(a(C));if(f.some(p=>!p))continue;let m=f;if(!c&&(m=n(C),m.length!==f.length||m.some(p=>!p)))continue;const w=f.length,h=g.get(w);h?h.push({w:C,dPron:f,dPos:m}):g.set(w,[{w:C,dPron:f,dPos:m}])}const d=new Map;for(const[C,f]of g){const m=new Map,w=(h,p)=>{const y=h.dPos[p];return y!=null&&i.every(S=>l[S].has(Ot[S][y[S]]))};for(const h of f){let p;if(u==="head")p=w(h,0)?0:-1;else if(u==="tail")p=w(h,C-1)?C-1:-1;else if(u==="mid"){p=-1;for(let S=1;S<C-1;S++)if(w(h,S)){p=S;break}}else p=h.dPos.findIndex(S=>S!=null&&i.every(E=>l[E].has(Ot[E][S[E]])));if(p<0)continue;const y=m.get(p);y?y.push(h):m.set(p,[h])}for(const[h,p]of m){const y=i.includes("cho"),S=i.includes("jung"),E=i.includes("jong"),M=T=>{let D="";for(let I=0;I<C;I++){const v=T[I];I===h?D+=(y?"*":v.cho)+"."+(S?"*":v.jung)+"."+(E?"*":v.jong)+".":D+=v.cho+"."+v.jung+"."+v.jong+"."}return D},B=new Map;for(const T of f){const D=M(T.dPron),I=B.get(D);I?I.push(T):B.set(D,[T])}for(const T of p){const D=B.get(M(T.dPron))??[],I=[];for(const v of D){if(v.w===T.w)continue;let $=!0;for(const F of i){const P=T.dPron[h][F],L=v.dPron[h][F];if(L===P){$=!1;break}if(c&&l[F].has(Ot[F][L])){$=!1;break}}$&&(o&&Rt(T.dPron,v.dPron)||I.push(v.w))}d.set(T.w,I)}}}return d}const _r=e=>e==null?[]:Array.isArray(e)?e:[e];function Lr(e){if([...e].length!==1)return"";const t=V(e);if(!t)return"";const n=Pe(oe[t.jong]),o=n===""?0:oe.indexOf(n);return fe(t.cho,t.jung,o<0?0:o)}function kn(e,t){return t.get(e)||Lr(e)||e}function lt(e){return e?z(e.cho)?"cho":z(e.jung)?"jung":z(e.jong)?"jong":null:null}function we(e,t){const n=(r,a)=>!z(r)||_r(r).includes(a),o=t.jongNone?e.jong===0:n(t.jong,oe[e.jong]);return n(t.cho,Q[e.cho])&&n(t.jung,te[e.jung])&&o}function He(e,t,n){const o=[...e];if(n!=="pron")return o.map(a=>V(a));const r=[...t.get(e)||e];return r.length!==o.length?o.map(a=>V(a)):r.map(a=>V(a))}function Ge(e,t,n,o,r){const a=t==="cho"?Q:t==="jung"?te:oe,u=e[t],i=[],l=d=>t==="jung"?Rr(kn(d,r)):kn(d,r),c=new Map([[l(n),-1]]),g=H(a.map((d,C)=>C).filter(d=>d!==u&&(t!=="cho"||a[d]!=="\u3147")&&(t!=="jong"||d!==0)));for(const d of g){if(i.length>=o)break;const C=t==="cho"?fe(d,e.jung,e.jong):t==="jung"?fe(e.cho,d,e.jong):fe(e.cho,e.jung,d),f=l(C),m=c.get(f);if(m!==void 0){t==="jung"&&m>=0&&r.has(C)&&!r.has(i[m])&&(i[m]=C);continue}c.set(f,i.length),i.push(C)}return i}const Or={\u3154:"\u3150",\u3156:"\u3152",\u315A:"\u3159",\u315E:"\u3159"};function Rr(e){if([...e].length!==1)return e;const t=V(e);if(!t)return e;const n=Or[te[t.jung]];return n?fe(t.cho,te.indexOf(n),t.jong):e}function Pr(e,t,n,o,r,a=null){const u=[...e];if(u.length!==2)return null;const i=u.map(d=>V(d));if(i.some(d=>!d))return null;const l=He(e,n,o);if(l.some(d=>!d))return null;const c=lt(t);let g=c&&t?l.map((d,C)=>we(d,t)?C:-1).filter(d=>d>=0):[0,1];if(a!=null&&(g=g.filter(d=>d!==a)),!g.length)return null;for(const d of H(g)){const C=u[d];if(!r.has(C))continue;const f=Ge(i[d],c??"cho",C,40,n),m=[];for(const w of f)if(w!==C&&r.has(w)&&!m.includes(w)&&m.push(w),m.length>=2)break;if(!(m.length<2))return{question:e,distractors:[C,...m]}}return null}function Mr(e,t,n,o,r,a=null){const u=[...e];if(u.length!==3)return null;const i=u.map(d=>V(d));if(i.some(d=>!d))return null;const l=He(e,n,o);if(l.some(d=>!d))return null;const c=lt(t),g=c&&t?l.map((d,C)=>we(d,t)?C:-1).filter(d=>d>=0):[0,1,2];if(!g.length)return null;for(const d of H(g))for(const C of H([0,1,2].filter(f=>f!==d&&(a==null||f===a)))){const f=[0,1,2].filter(y=>y!==C),m=f.map(y=>u[y]).join("");if(!r.has(m))continue;const w=f.indexOf(d),h=Ge(i[d],c??"cho",u[d],40,n),p=[];for(const y of h){const S=f.map(M=>u[M]);S[w]=y;const E=S.join("");if(E!==m&&r.has(E)&&!p.includes(E)&&p.push(E),p.length>=2)break}if(!(p.length<2))return{question:e,distractors:[m,...p]}}return null}function Ir(e,t,n,o,r,a=null){const u=[...e],i=u.length;if(i<2)return null;const l=[];for(let g=1;g<=i-1;g++)l.push({remain:u.slice(0,g).join(""),dropped:u.slice(g).join(""),droppedEnd:1}),l.push({remain:u.slice(i-g).join(""),dropped:u.slice(0,i-g).join(""),droppedEnd:0});const c=lt(t);for(const{remain:g,dropped:d,droppedEnd:C}of H(l)){if(a!=null&&C!==a||[...g].length===1&&[...d].length===1||g===e||!r.has(g)||!r.has(d))continue;const f=[...g],m=f.map(p=>V(p));if(m.some(p=>!p))continue;const w=He(g,n,o);if(w.some(p=>!p))continue;const h=c&&t?w.map((p,y)=>we(p,t)?y:-1).filter(p=>p>=0):f.map((p,y)=>y);if(h.length)for(const p of H(h)){const y=Ge(m[p],c??"cho",f[p],40,n),S=[];for(const E of y){const M=[...f];M[p]=E;const B=M.join("");if(B!==g&&r.has(B)&&!S.includes(B)&&S.push(B),S.length>=2)break}if(S.length>=2)return{question:e,distractors:[g,...S],dropped:d}}}return null}function kr(e,t,n,o,r,a=null){if([...e].length!==1)return null;const u=V(n.get(e)||e);if(!u||u.jong===0)return null;const i=fe(u.cho,u.jung,0),l=Ge({cho:u.cho,jung:u.jung,jong:0},"cho",i,2,n);return l.length<2?null:{question:e,distractors:[i,...l]}}const Pt=Q.indexOf("\u3147");function xr(e,t,n,o,r,a=null){if([...e].length!==1)return null;const u=V(n.get(e)||e);if(!u||u.jong!==0||u.cho===Pt)return null;const i=fe(Pt,u.jung,0),l=Ge({cho:Pt,jung:u.jung,jong:0},"jung",i,2,n);return l.length<2?null:{question:e,distractors:[i,...l]}}function jr(e){const t=new Map;for(const n of e){const o=[...n],r=o.length;if(!(r<2||r>3))for(let a=0;a<r;a++){let u=r+"|"+a+"|";for(let l=0;l<r;l++)u+=l===a?"*":o[l];const i=t.get(u);i?i.push(n):t.set(u,[n])}}return t}function Fr(e,t,n,o,r,a=null,u=null,i=2){const l=[...e],c=l.length;if(c<2||c>3)return null;const g=l.map(y=>V(y));if(g.some(y=>!y))return null;const d=He(e,n,o);if(d.some(y=>!y))return null;const C=y=>n.get(y)??y,f=C(e),m=!!t&&(z(t.cho)||z(t.jung)||z(t.jong)),w=!!u&&(z(u.cho)||z(u.jung)||z(u.jong)),h=y=>{let S=c+"|"+y+"|";for(let E=0;E<c;E++)S+=E===y?"*":l[E];return S};let p;if(a!=null){if(a>=c||m&&!we(d[a],t))return null;p=[a]}else m?p=d.map((y,S)=>we(y,t)?S:-1).filter(y=>y>=0):p=Array.from({length:c},(y,S)=>S);for(const y of H(p)){const S=r.get(h(y))??[],E=[],M=[];for(const v of S){if(v===e)continue;const $=[...v].map(k=>V(k)),F=g[y],P=$[y];if(!F||!P)continue;let L=0;if(F.cho!==P.cho&&L++,F.jung!==P.jung&&L++,F.jong!==P.jong&&L++,!(L<i||C(v)===f))if(w){const k=He(v,n,o)[y];k&&we(k,u)?E.push(v):M.push(v)}else E.push(v)}if(!E.length)continue;const B=H(E)[0],T=[],D=new Set([f,C(B)]),I=w?M:E.filter(v=>v!==B);for(const v of H(I)){const $=C(v);if(!D.has($)&&(D.add($),T.push(v),T.length>=2))break}if(!w&&T.length<2)for(const v of H(S)){if(v===e||v===B)continue;const $=C(v);if(!D.has($)&&(D.add($),T.push(v),T.length>=2))break}if(!(T.length<2))return{question:e,distractors:[B,...T]}}return null}let st=null,xn=null,jn=null;function $r(){const e=ut();if(e&&e.entries.length>0){const t=ke();if(st&&xn===e&&jn===t)return st;const n=new Set,o=[];for(const r of e.entries)!r.word||n.has(r.word)||(n.add(r.word),o.push({w:r.word,s:r.syllables,p:t?.[r.word]?[...t[r.word].cho??[],...t[r.word].jung??[],...t[r.word].jong??[]]:[],pron:r.pronunciation||r.word,grade:r.grade}));return st=o,xn=e,jn=t,st}return[]}const de=new Proxy([],{get(e,t){const n=$r(),o=n[t];return typeof o=="function"?o.bind(n):o}});function Mt(e){return e.length?e[Math.floor(Math.random()*e.length)]:void 0}function re(e,t){if(t>=e.length)return H(e);if(t===0)return[];const n=e.slice();for(let o=0;o<t;o++){const r=o+Math.floor(Math.random()*(n.length-o)),a=n[o];n[o]=n[r],n[r]=a}return n.slice(0,t)}let It=null,Fn=null;function me(){const e=ut();if(It&&Fn===e)return It;const t=new Map;for(const n of de)n.w&&t.set(n.w,n.pron);return It=t,Fn=e,t}function q(e){return me().get(e)||e}function ct(e,t,n=new Set){const o=[];for(const r of H(e)){if(o.length>=t)break;const a=q(r);n.has(a)||(n.add(a),o.push(r))}return o}let Hr=0;function Z(e){return`${e}-rt-${++Hr}`}function Te(e){const t=Dn();if(!t||t.total===0){const r=new Set;for(const a of e)r.add(a);return r}const n=Tn(),o=new Set;for(const r of e)n.has(r)&&o.add(r);return o}const dt=new Map;let $n=null,Hn=null;function Ve(e){return e==null?"":Array.isArray(e)?e.slice().sort().join(","):e}function kt(e){const t=Ve(e.choseong),n=e.composition,o=n?.syllable==null?"":Array.isArray(n.syllable)?n.syllable.slice().sort().join(","):String(n.syllable),r=n?`${Ve(n.cho)}/${Ve(n.jung)}/${Ve(n.jong)}/${n.jongNone?"N":""}/${o}`:"",a=Ve(e.grade);return`${e.difficulty??""}|${t}|${r}|${e.excludeNoImage?"1":"0"}|${e.count??""}|x${e.contrastCount??1}|${e.fullCount?"F":""}|s${e.sameStructureOnly===!1?"0":"1"}|v${e.phonemeView==="pron"?"p":"c"}|g${a}|t${e.targetSyllable??""}|c${e.choicesPerItem??""}`}const xt=new Map;function Gr(e){return kt({...e,count:void 0,choicesPerItem:void 0,fullCount:!1})}async function ne(e){const t=ut(),n=ke();(t!==$n||n!==Hn)&&(dt.clear(),xt.clear(),$n=t,Hn=n);const o=kt(e);return dt.has(o)||dt.set(o,Vr(e)),dt.get(o)}function Gn(e){if(!e)return null;const t=u=>u==null?null:Array.isArray(u)?u.length?u:null:[u],n=t(e.cho),o=t(e.jung),r=!!e.jongNone,a=r?null:t(e.jong);return n||o||a||r?r&&!n&&!o&&!a?u=>tr(u):u=>or(u,{cho:n,jung:o,jong:a,jongNone:r}):null}function Vn(e){const t=e.grade&&e.grade.length>0?new Set(e.grade):null,n=e.composition??null,o=n?.syllable!=null?new Set(Array.isArray(n.syllable)?n.syllable:[n.syllable]):null,r=n?[Gn(n),o?u=>o.has(Me(u)):null].filter(u=>u!=null):[];if(!t&&r.length===0)return null;const a=e.phonemeView==="pron";return u=>{if(t&&(!u.grade||!t.has(u.grade)))return!1;if(r.length===0)return!0;const i=a?q(u.w):u.w;return r.every(l=>l(i))}}async function Vr(e){const{difficulty:t=null,choseong:n=null,composition:o=null,targetSyllable:r=null,excludeNoImage:a=!1}=e,u=e.grade&&e.grade.length>0?new Set(e.grade):null,i=e.sameStructureOnly??!0,l=e.phonemeView==="pron"?"pron":"char",c=Math.max(1,e.contrastCount??1),g=t==="cho"||t==="jung"||t==="jong",d=g&&c>=2,C=t==="count",f=n?new Set(Array.isArray(n)?n:[n]):null,m=o?.syllable!=null?new Set(Array.isArray(o.syllable)?o.syllable:[o.syllable]):null,w=o?[Gn(o),m?A=>m.has(Me(A)):null].filter(A=>A!=null):[],h=t==="random"||t===null,p=h||C,y=h||d||C;let S=de.filter(A=>!A.w||u&&(!A.grade||!u.has(A.grade))?!1:y?!0:Array.isArray(A.p)&&A.p.length>0);f&&(S=S.filter(A=>{for(const N of f)if(Xo(A.w,N))return!0;return!1})),w.length>0&&(S=S.filter(A=>{const N=l==="pron"?q(A.w):A.w;return w.every(R=>R(N))})),r&&(S=S.filter(A=>A.w[0]===r));let E;if(a){const A=new Set;for(const N of S)if(A.add(N.w),Array.isArray(N.p))for(const R of N.p)A.add(R);if(p)for(const N of de)N.w&&A.add(N.w);E=Te(A)}else{const A=new Set;for(const N of S)if(A.add(N.w),Array.isArray(N.p))for(const R of N.p)A.add(R);if(p)for(const N of de)N.w&&A.add(N.w);E=A}let M=null;if(d){const A=new Set;for(const N of de)N.w&&A.add(N.w);M=a?Te(A):A}const B=S.filter(A=>E.has(A.w)),T=600,D=Array.from(E),I=D.length>T?re(D,T):D,v=C&&o!=null&&(z(o.cho)||z(o.jung)||z(o.jong)),$=2500,F=new Map;if(C&&!v&&c>=2){for(const A of D){const N=Me(A),R=F.get(N);R?R.push(A):F.set(N,[A])}for(const[A,N]of F)N.length>$&&F.set(A,re(N,$))}const P=Qo();let L=null;if(v){const A=Gr(e),N=a?Tn():null,R=xt.get(A);L=R&&R.\uC774\uBBF8\uC9C0\uC9D1\uD569===N?R.map:Nr(o,D,P,i,l,q),xt.set(A,{\uC774\uBBF8\uC9C0\uC9D1\uD569:N,map:L})}const k=500,W=1500,X=e.fullCount?B:t==="random"?B.length>k?re(B,k):B:B.length>W?re(B,W):B,U=ke(),he=[];for(const A of X){let N;const R=q(A.w);if(d)N=ar(A.w,t,c,M,24).filter(G=>q(G)!==R);else if(C)v?N=(L.get(A.w)??[]).filter(G=>q(G)!==R):c<=1?N=In(A.w,U,{okSet:E,pronOf:q,decompOf:P,sameStructureOnly:!1}):N=(F.get(Me(A.w))??[]).filter(G=>{if(G===A.w||q(G)===R)return!1;const Y=ur(R,q(G));return c>=5?Y>=5:Y===c});else if(h){const G=Y=>Y!==A.w&&Y.length===A.w.length&&q(Y)!==R;if(e.fullCount){const Y=Math.max(1,(e.choicesPerItem??3)-1),ee=[],ye=new Set;for(const Le of I){if(!G(Le))continue;const Ee=q(Le);if(!ye.has(Ee)&&(ye.add(Ee),ee.push(Le),ee.length>=Y))break}N=ee}else N=I.filter(G)}else{const G=t;N=In(A.w,U,{kind:G,okSet:E,pronOf:q,decompOf:P,sameStructureOnly:!1}),N.length===0&&(N=(I.length>30?re(I,30):I).filter(Y=>Y!==A.w&&Zo(A.w,Y)===t&&q(Y)!==R))}if(i&&N.length>0&&(g||C&&!v)){const G=P(q(A.w));N=N.filter(Y=>!Rt(G,P(q(Y))))}N.length!==0&&he.push({word:A,usable:N})}return he}async function Wn(e,t){const{choicesPerItem:n=3,count:o=10}=t,r=n-1,a=(await ne(t)).filter(i=>i.usable.length>=r),u=[];for(const i of H(a)){if(u.length>=o)break;const l=ct(i.usable,r);if(l.length<r)continue;const c=H([i.word.w,...l]);u.push({id:Z(e+"-item"),index:u.length+1,word:i.word.w,syllables:i.word.s,choices:c,answerIndex:c.indexOf(i.word.w)})}return u}async function Wr(e){const{choicesPerItem:t=3,count:n=10}=e,o=t-1,r=await ne({...e,difficulty:null});if(r.length<t)return[];const a=e.composition??null,u=[],i=H([...r]);for(const l of i){if(u.length>=n)break;const c=l.word.w,g=[...l.word.pron||c],d=a&&lt(a)?g.filter(h=>{const p=V(h);return!!p&&we(p,a)}):[],C=Mt(d.length?d:g);if(!C)continue;const f=r.filter(h=>h.word.w!==c&&h.word.s===l.word.s&&!(h.word.pron||h.word.w).includes(C)&&h.word.pron!==l.word.pron);if(f.length<o)continue;const m=ct(f.map(h=>h.word.w),o);if(m.length<o)continue;const w=H([c,...m]);u.push({id:Z("HPI-item"),index:u.length+1,targetSyllable:C,word:c,choices:w,answerIndex:w.indexOf(c)})}return u}async function Yr(e){const{count:t=10}=e,n=(await ne(e)).filter(a=>a.usable.length>=1);if(!n.length)return[];const o=n.length>=t?re(n,t):H(Array.from({length:t},(a,u)=>n[u%n.length])),r=H(Array.from({length:t},(a,u)=>u<Math.ceil(t/2)));return o.map((a,u)=>{const i=r[u];let l;if(i)l=[a.word.w,a.word.w];else{const c=Mt(a.usable);l=Math.random()<.5?[a.word.w,c]:[c,a.word.w]}return{id:Z("SOD-item"),index:u+1,word:a.word.w,pair:l,same:i}})}async function Kr(e){const{choicesPerItem:t=3,count:n=10}=e,o=t-1,r=await ne({...e,difficulty:null});if(r.length<t+1)return[];const a=r.map(C=>C.word.w),u=new Map(r.map(C=>[C.word.w,C.word.pron])),i=C=>(u.get(C)||C)[0]??"",l={};for(const C of r){const f=i(C.word.w);f&&(l[f]||(l[f]=[]),l[f].push(C.word.w))}const c=Object.entries(l).filter(([,C])=>C.length>=2).map(([C])=>C);if(c.length===0)return[];const g=[],d=H([...c]);for(let C=0;g.length<n&&C<n*4;C++){const f=d[C%d.length],m=l[f];if(m.length<2)continue;const w=H([...m]),h=w[0],p=w[1];if(!h||!p||h===p||(u.get(h)||h)===(u.get(p)||p))continue;const y=u.get(p)||p,S=a.filter(B=>i(B)!==f&&B!==h&&B!==p&&B.length===p.length&&(u.get(B)||B)!==y);if(S.length<o)continue;const E=ct(S,o);if(E.length<o)continue;const M=H([p,...E]);g.push({id:Z("SWS-item"),index:g.length+1,sourceWord:h,targetSyllable:f,word:p,choices:M,answerIndex:M.indexOf(p)})}return g}function Yn(e,t,n){const o=me(),r=l=>o.get(l)||l,a=(l,c)=>{const g=[...l],d=[...c];if(g.length!==d.length)return-1;let C=-1;for(let f=0;f<g.length;f++)if(g[f]!==d[f]){if(C>=0)return-1;C=f}return C},u=e.map(l=>({e:l,swaps:l.usable.filter(c=>!!c&&a(l.word.w,c)>=0&&r(c)!==r(l.word.w))})).filter(l=>l.swaps.length>0),i=[];for(const{e:l,swaps:c}of H(u)){if(i.length>=t)break;const g=Mt(c)??"",d=[...l.word.w],C=[...g],f=a(l.word.w,g),m=ct(l.usable.filter(w=>w&&w!==g),2,new Set([r(g),r(l.word.w)]));m.length<2||i.push({id:Z(n),index:i.length+1,word:l.word.w,original:l.word.w,changed:g,changedFrom:f>=0?d[f]:"",changedTo:f>=0?C[f]:"",distractors:m})}return i}async function Kn(e,t,n){const{count:o=10}=t,r=me(),a=de.filter(m=>m.w&&m.s===e),u=t.excludeNoImage?Te(a.map(m=>m.w)):null,i=u?a.filter(m=>u.has(m.w)):a,l=new Set(i.map(m=>m.w)),c=jr(l),g=t.phonemeView??"char",d=t.composition??null,C=Vn(t),f=[];for(const m of H(i)){if(f.length>=o)break;if(C&&!C(m))continue;const w=Fr(m.w,d,r,g,c,null,null);if(!w)continue;const h=w.distractors[0],p=[...m.w],y=[...h],S=p.findIndex((E,M)=>E!==y[M]);f.push({id:Z(n),index:f.length+1,word:m.w,original:m.w,changed:h,changedFrom:S>=0?p[S]:"",changedTo:S>=0?y[S]:"",distractors:w.distractors.slice(1)})}return f}async function Ur(e){return Kn(2,e,"CS2-item")}async function zr(e){return Kn(3,e,"CS3-item")}async function qr(e){const t=(await ne({...e,difficulty:"count",contrastCount:1})).filter(n=>n.word.s===1&&n.usable.length>=1);return Yn(t,e.count??10,"CP1-item")}async function Jr(e){const t=e.difficulty&&e.difficulty!=="random"?e.difficulty:"count",n=(await ne({...e,difficulty:t,contrastCount:1})).filter(o=>o.word.s===2&&o.usable.length>=1);return Yn(n,e.count??10,"CP2-item")}async function Qr(e){const{count:t=10}=e,n=(await ne({...e})).filter(o=>o.word.s===2);return re(n,t).map((o,r)=>({id:Z("M2S-item"),index:r+1,word:o.word.w,answer:o.word.w,parts:[...o.word.w]}))}async function Zr(e){const{count:t=10}=e,n=(await ne({...e})).filter(o=>o.word.s===3);return re(n,t).map((o,r)=>({id:Z("M3S-item"),index:r+1,word:o.word.w,answer:o.word.w,parts:[...o.word.w]}))}function jt(e){const t=de.map(n=>n.w);return e.excludeNoImage?Te(t):new Set(t)}async function Xr(e){const{count:t=10}=e,n=(await ne({...e})).filter(i=>i.word.s===2),o=me(),r=jt(e),a=e.phonemeView??"char",u=[];for(const i of H(n)){if(u.length>=t)break;const l=Pr(i.word.w,e.composition??null,o,a,r);if(!l)continue;const[c,...g]=l.distractors,d=[...i.word.w],C=d[0]===c?d[1]:d[0];u.push({id:Z("D2-item"),index:u.length+1,original:i.word.w,word:i.word.w,dropped:C,missingResult:c,distractors:g})}return u}async function ea(e){const{count:t=10}=e,n=(await ne({...e})).filter(i=>i.word.s===3),o=me(),r=jt(e),a=e.phonemeView??"char",u=[];for(const i of H(n)){if(u.length>=t)break;const l=Mr(i.word.w,e.composition??null,o,a,r);if(!l)continue;const[c,...g]=l.distractors,d=[...i.word.w];let C="";for(let f=0;f<d.length;f++)if(d.filter((m,w)=>w!==f).join("")===c){C=d[f];break}u.push({id:Z("D3-item"),index:u.length+1,original:i.word.w,word:i.word.w,dropped:C,missingResult:c,distractors:g})}return u}async function ta(e){const{count:t=10}=e,n=(await ne({...e})).filter(i=>i.word.s>=3),o=me(),r=jt(e),a=e.phonemeView??"char",u=[];for(const i of H(n)){if(u.length>=t)break;const l=Ir(i.word.w,e.composition??null,o,a,r);if(!l)continue;const[c,...g]=l.distractors,d=i.word.w,C=l.dropped??(d.startsWith(c)?d.slice(c.length):d.endsWith(c)?d.slice(0,d.length-c.length):"");u.push({id:Z("DPC-item"),index:u.length+1,original:d,word:d,dropped:C,missingResult:c,distractors:g})}return u}async function na(e){const{count:t=10}=e,n=(await ne({...e})).map(o=>o.word.w);return n.length<3?[]:Array.from({length:t},(o,r)=>{const a=re(n,3);return{id:Z("LRO-item"),index:r+1,sequence:a,choices:H(a)}})}function Ct(e,t,n){const o=de.filter(i=>i.w&&i.s===e),r=t.excludeNoImage?Te(o.map(i=>i.w)):null,a=Vn(t),u=[];for(const i of o)if(!(r&&!r.has(i.w))&&!(a&&!a(i))){if(n){const l=V(i.w);if(!l||!n(l))continue}u.push(i)}return u}function oa(e){const t=Ct(1,e,it.MERGE_2_PHONEMES.syllable);return re(t,e.count??10).map((n,o)=>{const r=V(n.w);return{id:Z("M2P-item"),index:o+1,parts:[Q[r.cho],te[r.jung]],answer:n.w,word:n.w}})}function ra(e){const t=Ct(1,e,it.MERGE_3_PHONEMES.syllable);return re(t,e.count??10).map((n,o)=>{const r=V(n.w);return{id:Z("M3P-item"),index:o+1,parts:[Q[r.cho],te[r.jung],oe[r.jong]],answer:n.w,word:n.w}})}function aa(e){const t=it.DROP_FINAL_CONSONANT_FROM_1SYLL,n=Ct(t.syllables,e,t.syllable),o=me(),r=[];for(const a of H(n)){if(r.length>=(e.count??10))break;const u=kr(a.w,null,o);if(!u)continue;const[i,...l]=u.distractors;r.push({id:Z("DFC-item"),index:r.length+1,original:a.w,word:a.w,result:i,distractors:l})}return r}function ua(e){const t=it.REMOVE_CONSONANT_AND_IDENTIFY_PHONEME,n=Ct(t.syllables,e,t.syllable),o=me(),r=[];for(const a of H(n)){if(r.length>=(e.count??10))break;const u=xr(a.w,null,o);if(!u)continue;const i=V(o.get(a.w)||a.w);if(!i)continue;const[l,...c]=u.distractors;r.push({id:Z("RCP-item"),index:r.length+1,base:a.w,word:a.w,missingConsonant:Q[i.cho],remaining:l,distractors:c})}return r}const gt=new Map;let Un=null,zn=null;async function qn(e,t={}){const n=ut(),o=ke();(n!==Un||o!==zn)&&(gt.clear(),Un=n,zn=o);const r=`${e}:${kt(t)}`;if(gt.has(r))return gt.get(r);const a=await la(e,t);return gt.set(r,a),a}const ia={SAME_SOUND_PICK:e=>Wn("SSP",e),HEAR_AND_PICK_SAME:e=>Wn("HPS",e),HEAR_AND_PICK_INCLUDED:e=>Wr(e),SAME_OR_DIFF:e=>Yr(e),STARTS_WITH_SAME_SOUND:e=>Kr(e),LISTEN_AND_REMEMBER_ORDER:e=>na(e),MERGE_2_SYLLABLES:e=>Qr(e),MERGE_3_SYLLABLES:e=>Zr(e),MERGE_2_PHONEMES:e=>oa(e),MERGE_3_PHONEMES:e=>ra(e),DROP_1_FROM_2SYLL:e=>Xr(e),DROP_1_FROM_3SYLL:e=>ea(e),DROP_PART_FROM_COMPOUND:e=>ta(e),DROP_FINAL_CONSONANT_FROM_1SYLL:e=>aa(e),REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:e=>ua(e),CHANGE_1_SYLL_IN_2SYLL:e=>Ur(e),CHANGE_1_SYLL_IN_3SYLL:e=>zr(e),CHANGE_1_PHONEME_IN_1SYLL:e=>qr(e),CHANGE_1_PHONEME_IN_2SYLL:e=>Jr(e)};async function la(e,t={}){const n=ia[e];return n?await n(t):[]}async function sa(e){const t=["random","count"],n=Object.keys(_t);let o=0;for(const r of t)for(const a of n){const u=_t[a];qn(a,{difficulty:u.difficulty?r:null,contrastCount:1,composition:null,count:5,excludeNoImage:e,sameStructureOnly:!0,phonemeView:"char",grade:null}).catch(()=>{}),++o%6===0&&await new Promise(i=>setTimeout(i,0))}}async function ca(e){const t=await ne({...e,fullCount:!0}),n=e.choicesPerItem!=null?Math.max(1,e.choicesPerItem-1):1;return t.filter(o=>new Set(o.usable.map(r=>q(r))).size>=n).length}async function da(e={}){const t=[];for(const i of de)i.w&&t.push(i.w);const n=e.excludeNoImage?Te(t):t,o=new Set,r=new Set,a=new Set,u=new Set;for(const i of n){u.add(Me(i));for(const l of i){const c=V(l);if(c&&(Q[c.cho]!=="\u3147"&&o.add(Q[c.cho]),r.add(te[c.jung]),c.jong>0)){a.add(oe[c.jong]);const g=ot[c.jong];g&&g.forEach(d=>a.add(d))}}}return{cho:o,jung:r,jong:a,syllable:u}}const ue="\uC804\uCCB4";var Ca={statusFilter:"\uC0C1\uD0DC \uD544\uD130",pageSizeSelect:"\uD398\uC774\uC9C0\uB2F9 \uD45C\uC2DC \uAC1C\uC218",selectedCount:"{{count}}\uAC1C \uC120\uD0DD\uB428",cancel:"\uCDE8\uC18C",info:"\uC124\uBA85",errorState:{message:"\uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",retry:"\uB2E4\uC2DC \uC2DC\uB3C4"},save:"\uC800\uC7A5",confirm:"\uD655\uC778",close:"\uB2EB\uAE30",back:"\uB4A4\uB85C",emptyTrainingName:"\uD6C8\uB828 \uC774\uB984\uC774 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.",remove:"\uC81C\uAC70",image:"\uC774\uBBF8\uC9C0",delete:"\uC0AD\uC81C",reset:"\uCD08\uAE30\uD654",update:"\uC5C5\uB370\uC774\uD2B8",download:"\uB2E4\uC6B4\uB85C\uB4DC",search:"\uAC80\uC0C9",empty:"\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",yes:"\uC608",no:"\uC544\uB2C8\uC624",all:"\uC804\uCCB4",none:"\uC5C6\uC74C",days:"{{count}}\uC77C",loadMore:"\uB354\uBCF4\uAE30",more:"\uB354\uBCF4\uAE30",moreFor:"{{name}} \uB354\uBCF4\uAE30",retry:"\uB2E4\uC2DC \uC2DC\uB3C4",prevPage:"\uC774\uC804 \uD398\uC774\uC9C0",nextPage:"\uB2E4\uC74C \uD398\uC774\uC9C0",play:"\uC7AC\uC0DD",pause:"\uBA48\uCDA4",playPause:"\uC7AC\uC0DD / \uBA48\uCDA4",replay:"\uB2E4\uC2DC\uB4E3\uAE30",subscription:"\uC774\uC6A9\uAD8C",done:"\uC644\uB8CC",failed:"\uC2E4\uD328",continue:"\uACC4\uC18D",notification:"\uC54C\uB9BC",emptyList:"\uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",menu:"\uBA54\uB274",resetSelection:"\uC120\uD0DD \uCD08\uAE30\uD654",pageSizeLabel:"{{n}}\uAC1C\uC529 \uBCF4\uAE30",totalCountPrefix:"\uCD1D ",totalCountSuffix:"\uAC1C",expand:"\uD3BC\uCE58\uAE30",collapse:"\uC811\uAE30",popup:"\uD31D\uC5C5",codeBlock:"\uCF54\uB4DC \uBE14\uB85D",totalPrefix:"\uCD1D ",copyCode:"\uCF54\uB4DC \uBCF5\uC0AC",copied:"\uBCF5\uC0AC\uB428",col:{problem:"\uBB38\uC81C"},phonetics:{place:{labial:"\uC591\uC21C\uC74C",alveolar:"\uCE58\uC870\uC74C",palatal:"\uACBD\uAD6C\uAC1C\uC74C",velar:"\uC5F0\uAD6C\uAC1C\uC74C",glottal:"\uC131\uBB38\uC74C"},vowel:{frontHigh:"\uC804\uC124 \uACE0\uBAA8\uC74C",backHighUnrounded:"\uD6C4\uC124 \uACE0\uBAA8\uC74C \uD3C9\uC21C",backHighRounded:"\uD6C4\uC124 \uACE0\uBAA8\uC74C \uC6D0\uC21C",frontMid:"\uC804\uC124 \uC911\uBAA8\uC74C",backMidUnrounded:"\uD6C4\uC124 \uC911\uBAA8\uC74C \uD3C9\uC21C",backMidRounded:"\uD6C4\uC124 \uC911\uBAA8\uC74C \uC6D0\uC21C",low:"\uC800\uBAA8\uC74C"},glide:{j:"j\uD65C\uC74C",w:"w\uD65C\uC74C",velar:"\u0270\uD65C\uC74C"}},unknownError:"\uC54C \uC218 \uC5C6\uB294 \uC624\uB958",networkError:"\uB124\uD2B8\uC6CC\uD06C \uC5F0\uACB0\uC774 \uBD88\uC548\uC815\uD569\uB2C8\uB2E4. \uC5F0\uACB0 \uC0C1\uD0DC\uB97C \uD655\uC778\uD55C \uB4A4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694."},ga={rangeSelect:"\uAE30\uAC04 \uC120\uD0DD",dow:["\uC77C","\uC6D4","\uD654","\uC218","\uBAA9","\uAE08","\uD1A0"],yearMonth:"{{year}}\uB144 {{month}}\uC6D4",prevMonth:"\uC774\uC804 \uB2EC",addOnDate:"{{date}}\uC5D0 \uBC29\uBB38 \uB4F1\uB85D",nextMonth:"\uB2E4\uC74C \uB2EC",prevWeek:"\uC774\uC804 \uC8FC",nextWeek:"\uB2E4\uC74C \uC8FC",legend:{visited:"\uBC29\uBB38",scheduled:"\uC608\uC57D",noVisit:"\uBBF8\uBC29\uBB38"},periodSelect:"\uAE30\uAC04 \uB2E8\uC704",visitCount:"\uBC29\uBB38 {{count}}\uAC74"},fa={planSuffix:"\uC774\uC6A9\uAD8C",labeledPlan:"{{label}} \uC774\uC6A9\uAD8C",couponCode:"\uC774\uC6A9\uAD8C \uCF54\uB4DC",specialLabel:"\uC624\uD508\uD2B9\uAC00",unitDay:"\uC77C",unitYear:"\uB144",remainingDay:"{{n}}\uC77C \uB0A8\uC74C",remainingHour:"{{n}}\uC2DC\uAC04 \uB0A8\uC74C",remainingMinute:"{{n}}\uBD84 \uB0A8\uC74C",remainingSecond:"{{n}}\uCD08 \uB0A8\uC74C",menu:{use:"\uC0AC\uC6A9\uD558\uAE30",refund:"\uD658\uBD88\uD558\uAE30",delete:"\uC0AD\uC81C\uD558\uAE30"}},ma={clearAriaLabel:"\uAC80\uC0C9\uC5B4 \uC9C0\uC6B0\uAE30"},pa={starLabel:"{{n}}\uBC88\uC9F8 \uBCC4 \uC120\uD0DD",valueLabel:"{{max}}\uC810 \uB9CC\uC810\uC5D0 {{value}}\uC810",groupLabel:"\uBCC4\uC810"},ha={selected:"\uC120\uD0DD\uB428"},ya={placeholder:"\uC120\uD0DD"},ba={collapse:"\uC811\uAE30",expand:"\uD3BC\uCE58\uAE30"},Sa={biArea:"BI \uC601\uC5ED",biSymbol:"BI \uC2EC\uBCFC",logoMalgwi:"\uB9D0\uADC0 \uB85C\uACE0",logoManager:"\uB9D0\uADC0\uB9E4\uB2C8\uC800 \uB85C\uACE0",menuOpen:"\uBA54\uB274 \uC5F4\uAE30",utilMenu:"\uC720\uD2F8\uB9AC\uD2F0 \uBA54\uB274",menuClose:"\uBA54\uB274 \uB2EB\uAE30"},wa={mainMenu:"\uBA54\uC778 \uBA54\uB274",bottomNav:"\uD558\uB2E8 \uB124\uBE44\uAC8C\uC774\uC158",goToManager:"\uB9D0\uADC0\uB9E4\uB2C8\uC800\uB85C \uC774\uB3D9",goToMalgwi:"\uB9D0\uADC0\uB85C \uC774\uB3D9",modeLabelManager:"\uB9D0\uADC0 \uB9E4\uB2C8\uC800",modeLabelMalgwi:"\uB9D0\uADC0",training:"\uD6C8\uB828",settings:"\uC124\uC815",notifications:"\uC54C\uB9BC",account:"\uACC4\uC815",help:"\uB3C4\uC6C0\uB9D0",feedback:"\uBC84\uADF8\uC2E0\uACE0",debug:"\uB514\uBC84\uADF8",coupons:"\uCFE0\uD3F0",topic:"\uC8FC\uC81C\uBCC4 \uB4E3\uAE30",trainingType:"\uD6C8\uB828\uBCC4 \uB4E3\uAE30",wordPairs:"\uB300\uB9BD\uC30D \uCC3E\uAE30",wordSearch:"\uB2E8\uC5B4 \uCC3E\uAE30",wordTable:"\uB2E8\uC5B4\uD45C \uB9CC\uB4E4\uAE30",company:"\uC5C5\uCCB4\uC815\uBCF4",more:"\uB354\uBCF4\uAE30",moreMenu:"\uB354\uBCF4\uAE30 \uBA54\uB274",badgeLabel:"{{label}}, {{count}}\uAC1C"},Ea={language:{training:{label:"\uD6C8\uB828 \uC5B8\uC5B4",sub:"\uD6C8\uB828\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uB2E8\uC5B4\uC640 \uC74C\uC131 \uC5B8\uC5B4"}},notifications:{title:"\uC54C\uB9BC"},display:{fontSize:{small:"\uC791\uAC8C",large:"\uD06C\uAC8C"}},cache:{title:"\uCE90\uC2DC \uAD00\uB9AC",confirmMessage:"\uCE90\uC2DC({{size}})\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4. \uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",delete:"\uC0AD\uC81C",deleting:"\uC0AD\uC81C \uC911",cleared:"\uCE90\uC2DC\uAC00 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",group:{wordData:{label:"\uB2E8\uC5B4 \uB370\uC774\uD130",sub:"\uB2E8\uC5B4 \uBAA9\uB85D \uBC0F \uBC84\uC804 \uC815\uBCF4"},pairIndex:{label:"\uB2E8\uC5B4\uC30D \uC778\uB371\uC2A4",sub:"\uCD08\uC131\xB7\uC911\uC131\xB7\uC885\uC131 \uB300\uB9BD\uC30D \uBD84\uC11D \uCE90\uC2DC"},imageCache:{label:"\uC774\uBBF8\uC9C0 \uCE90\uC2DC",sub:"\uB2E8\uC5B4\uBCC4 \uC774\uBBF8\uC9C0 \uC874\uC7AC \uC5EC\uBD80 \uD655\uC778 \uACB0\uACFC"},trainingRecord:{label:"\uD6C8\uB828 \uAE30\uB85D",sub:"\uC624\uB298\uC758 \uD6C8\uB828 \uC9C4\uD589\uB960 \uBC0F \uD559\uC2B5 \uC77C\uC218"}}},button:{save:"\uC124\uC815 \uC800\uC7A5"},popup:{clear:{confirm:"\uCD08\uAE30\uD654"},update:{confirm:"\uC5C5\uB370\uC774\uD2B8"},cache:{title:"{{label}} \uC0AD\uC81C",message:"{{label}}({{size}})\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4. \uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?"}},saved:"\u2713 \uC800\uC7A5\uB428",account:{title:"\uACC4\uC815",delete:{sub:"\uD0C8\uD1F4 \uD6C4 30\uC77C \uC774\uB0B4 \uC7AC\uAC00\uC785 \uC2DC \uBCF5\uAD6C \uAC00\uB2A5\uD569\uB2C8\uB2E4."}}},Aa={addButton:"\uC774\uC6A9\uAD8C \uCD94\uAC00\uD558\uAE30",couponButton:"\uCFE0\uD3F0 \uC785\uB825",loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026",segment:{personal:"\uB9D0\uADC0",org:"\uB9D0\uADC0\uB9E4\uB2C8\uC800"},org:{title:"\uD604\uC7AC \uC774\uC6A9\uAD8C",disc:"\uAE30\uAD00\uC5D0\uC11C \uC0AC\uC6A9 \uC911\uC778 \uC774\uC6A9\uAD8C \uC815\uBCF4\uC785\uB2C8\uB2E4.",empty:"\uB4F1\uB85D\uB41C \uAE30\uAD00 \uC774\uC6A9\uAD8C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",fallbackTitle:"\uAE30\uAD00 \uC774\uC6A9\uAD8C",startDate:"\uC2DC\uC791\uC77C",endDate:"\uB9CC\uB8CC\uC77C",remaining:"\uB0A8\uC740 \uAE30\uAC04",duration:"\uC774\uC6A9 \uAE30\uAC04"},active:{infoTitle:"\uC774\uC6A9 \uC815\uBCF4",refund:"\uD658\uBD88 \uC694\uCCAD",startDate:"\uC0AC\uC6A9 \uC2DC\uC791\uC77C",endDate:"\uC885\uB8CC\uC77C",remaining:"\uB0A8\uC740 \uAE30\uAC04"},pending:{title:"\uBCF4\uC720",empty:"\uB300\uAE30 \uC911\uC778 \uC774\uC6A9\uAD8C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."}},va={profile:{planSuffix:"\uD50C\uB79C",plan:"\uD50C\uB79C"},basicInfo:{name:{placeholder:"\uD64D\uAE38\uB3D9"}},security:{title:"\uBCF4\uC548",password:{label:"\uBE44\uBC00\uBC88\uD638",currentRequired:"\uD604\uC7AC \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694.",newRequired:"\uC0C8 \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694.",mismatch:"\uC0C8 \uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",changed:"\uBE44\uBC00\uBC88\uD638\uAC00 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},twoFactor:{label:"2\uB2E8\uACC4 \uC778\uC99D",sub:"\uACC4\uC815 \uBCF4\uC548\uC744 \uAC15\uD654\uD558\uC138\uC694"}}},Ba={guide:{faq:{title:"\uC790\uC8FC \uBB3B\uB294 \uC9C8\uBB38",desc:"FAQ \uBAA8\uC544\uBCF4\uAE30"}}},Da={settings:"\uC124\uC815",start:{title:"\uB2E8\uC5B4\uD6C8\uB828 \uC2DC\uC791",description:"\uC544\uB798 \uD6C8\uB828 \uC720\uD615\uC744 \uC120\uD0DD\uD574 \uC2DC\uC791\uD558\uC138\uC694"},difficulty:{tooltip:"\uAC00\uC7A5 \uC26C\uC6B4 \uB09C\uC774\uB3C4\uB294 '\uBB34\uC791\uC704', \uAC00\uC7A5 \uC5B4\uB824\uC6B4 \uB09C\uC774\uB3C4\uB294 '\uCD08\uC131\uCC28\uC774' \uC785\uB2C8\uB2E4."},contrast:{label:"\uB300\uB9BD",type:"\uB300\uB9BD \uC885\uB958",count:"\uB300\uB9BD \uAC2F\uC218",n:"{{n}}\uAC1C"},filter:{random:"\uBB34\uC791\uC704",trainOnset:"\uCD08\uC131",trainVowel:"\uBAA8\uC74C",trainCoda:"\uC885\uC131",phonemeGroup:"\uD6C8\uB828 \uC74C\uC808",noLimit:"\uBB34\uAD00",codaExclude:"\uC81C\uC678",gradeLabel:"\uB4F1\uAE09",excludeImageInfo:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC: \uB2E8\uC5B4 \uC911\uC5D0 \uC774\uBBF8\uC9C0\uAC00 \uC788\uB294 \uB2E8\uC5B4\uB9CC \uACB0\uACFC\uC5D0 \uBCF4\uC5EC\uC90D\uB2C8\uB2E4.",sameStructureInfo:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC: \uC815\uB2F5\uACFC \uC624\uB2F5\uC758 \uC74C\uC808 \uAD6C\uC870(\uAE00\uC790 \uC218\xB7\uBC1B\uCE68 \uC720\uBB34 \uB4F1)\uAC00 \uAC19\uC740 \uACB0\uACFC\uB9CC \uB0A8\uACA8\uC694.",selectSection:"\uC120\uD0DD",excludeImage:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC",sameStructure:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC"},noQuestions:"\uBB38\uC81C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",countQuestions:"{{n}}\uBB38\uC81C",countSentences:"{{n}}\uBB38\uC7A5",comingSoon:"\uC900\uBE44 \uC911",nextQuestion:"\uB2E4\uC74C \uBB38\uC81C",noiseRatioTitle:"\uC18C\uC74C \uBE44\uC728",noiseRatioValue:"{{ratio}}\uBC30",noiseTypeTitle:"\uC18C\uC74C \uC885\uB958",playVolumeTitle:"\uC804\uCCB4 \uC18C\uB9AC",playSpeedTitle:"\uC7AC\uC0DD \uC18D\uB3C4",meter:{sentence:"\uC7AC\uC0DD",noise:"\uC18C\uC74C",toggle:"\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC"},viewResult:"\uACB0\uACFC\uBCF4\uAE30",problemNotice:"{{n}}\uBC88 \uBB38\uC81C \uC785\uB2C8\uB2E4.",trainingSettingsTitle:"\uD6C8\uB828 \uC124\uC815",sentencePreview:"\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30",notHeard:"\uC548 \uB4E4\uB838\uC5B4\uC694.",heardWell:"\uC798 \uB4E4\uB838\uC5B4\uC694.",confirmTitle:"\uBB38\uC7A5\uC744 \uD655\uC778\uD558\uACE0 \uC798 \uB4E4\uB838\uB294\uC9C0 \uC120\uD0DD\uD558\uC138\uC694.",noSoundWaveform:"\uC18C\uB9AC \uBE44\uAD50 \uBB38\uC81C\uB294 \uC6E8\uC774\uBE0C\uD3FC\uC744 \uD45C\uD604\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",noise:{level:{none:"\uC5C6\uC74C",weak:"\uC57D\uD568",medium:"\uBCF4\uD1B5",strong:"\uAC15\uD568",veryStrong:"\uB9E4\uC6B0 \uAC15\uD568"},type:{none:"\uC5C6\uC74C",default:"\uAE30\uBCF8",street:"\uAE38\uAC70\uB9AC",buzz:"\uC640\uAE00\uC640\uAE00",restaurant:"\uC2DD\uB2F9"}},listenTitle:"\uC81C\uC2DC\uD558\uB294 \uBB38\uC7A5\uC744 \uB4E4\uC5B4\uC8FC\uC138\uC694.",listenButton:"\uBB38\uC7A5 \uB4E3\uAE30",playSound:"\uC18C\uB9AC \uB4E3\uAE30",playAll:"\uBAA8\uB450 \uB4E3\uAE30",selectInOrder:"\uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694.",stop:"\uC815\uC9C0",preview:"\uBBF8\uB9AC \uB4E3\uAE30",next:"\uB2E4\uC74C",completed:"\uD6C8\uB828 \uC644\uB8CC",selected:"\uC120\uD0DD\uB428",nthSelected:"{{n}}\uBC88\uC9F8 \uC120\uD0DD",fontSizeMin:"\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uC18C\uC785\uB2C8\uB2E4.",fontSizeMax:"\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uB300\uC785\uB2C8\uB2E4.",fontSizeDecrease:"\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C",fontSizeIncrease:"\uAE00\uC790 \uD06C\uAE30 \uC99D\uAC00",toggleBackground:"\uBC30\uACBD \uC804\uD658",cardInstructions:"\uB0B1\uB9D0 \uCE74\uB4DC\uB97C \uBCF4\uACE0 \uC18C\uB9AC\uB97C \uB4E3\uACE0 \uD655\uC778\uD558\uC138\uC694.",noCards:"\uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",audioFetchError:"\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",ttsUnavailable:"\uC774 \uAE30\uAE30\uC5D0\uC11C\uB294 \uC74C\uC131\uC744 \uB4E4\uB824\uC904 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",selectConfirm:"\uBB38\uC81C\uB97C \uBCF4\uACE0 \uD574\uB2F9\uD558\uB294 \uB0B4\uC6A9\uC744 \uC120\uD0DD\uD558\uC138\uC694.",orderListDefault:"\uBB38\uC7A5\uC744 \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uBC30\uCE58\uD558\uC138\uC694.",result:{pendingDone:"\uACB0\uACFC\uB97C \uACC4\uC0B0\uD558\uB294 \uC911\uC774\uB77C \uC544\uC9C1 \uC644\uB8CC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",eyebrow:"\uD6C8\uB828 \uC644\uB8CC",title:"\uD6C8\uB828\uC744 \uBAA8\uB450 \uB9C8\uCCE4\uC2B5\uB2C8\uB2E4.",scoreAria:"{{correct}} / {{total}} \uBB38\uD56D",elapsed:"\uC18C\uC694 \uC2DC\uAC04",summary:"{{correct}}\uAC1C\uC758 \uBB38\uD56D\uC744 \uC798 \uB4E4\uC5C8\uC2B5\uB2C8\uB2E4.",tableAriaLabel:"\uBB38\uD56D\uBCC4 \uD310\uC815",colJudge:"\uD310\uC815",colAnswerSelected:"\uC815\uB2F5 \xB7 \uC120\uD0DD",colAnswer:"\uC815\uB2F5",colSelected:"\uC120\uD0DD",heardWell:"\uC798 \uB4E4\uC5C8\uC5B4\uC694",notHeard:"\uBABB \uB4E4\uC5C8\uC5B4\uC694",notJudged:"\uBBF8\uD310\uC815",replay:"\uB2E4\uC2DC\uD558\uAE30",done:"\uC644\uB8CC",viewResult:"\uACB0\uACFC \uD655\uC778",noContent:"(\uB0B4\uC6A9\uC5C6\uC74C)"},up:"\uC704\uB85C",down:"\uC544\uB798\uB85C",prev:"\uC774\uC804",listenLabel:"\uBB38\uC7A5 \uB4E3\uAE30",sourcePlay:"\uC18C\uC2A4 {{n}} \uC7AC\uC0DD",listen:"\uB4E3\uAE30",audioStatus:{idle:"\uB300\uAE30",resolving:"\uB9AC\uC18C\uC2A4 \uB9E4\uD551 \uC911\u2026",checking_exists:"\uD30C\uC77C \uC874\uC7AC \uD655\uC778\u2026",getting_signed_url:"\uC11C\uBA85 URL \uC870\uD68C\u2026",downloading:"\uB2E4\uC6B4\uB85C\uB4DC \uC911\u2026",measuring_duration:"\uC624\uB514\uC624 \uAE38\uC774 \uCE21\uC815\u2026",ready:"\uC900\uBE44 \uC644\uB8CC",error:"\uC624\uB958 \uBC1C\uC0DD"}},Ta={totalCount:"\uAC1C\uC758 \uD6C8\uB828 \uBB36\uC74C",renameGroup:"\uADF8\uB8F9 \uC774\uB984 \uBC14\uAFB8\uAE30",itemCount:"\uD6C8\uB828 \uAC1C\uC218",menu:{edit:"\uD6C8\uB828 \uBB36\uC74C \uC218\uC815",rename:"\uC774\uB984 \uBC14\uAFB8\uAE30",move:"\uADF8\uB8F9 \uC774\uB3D9",duplicate:"\uD6C8\uB828 \uBB36\uC74C \uBCF5\uC0AC",publish:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0 \uC62C\uB9AC\uAE30"},sort:{customers:"\uD6C8\uB828 \uACE0\uAC1D"},copyLink:"\uB9C1\uD06C \uBCF5\uC0AC",removeLink:"\uB9C1\uD06C \uC81C\uAC70",linkRemoved:"\uB9C1\uD06C\uAC00 \uC81C\uAC70\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",linkSaveFirst:"\uBA3C\uC800 \uD6C8\uB828 \uBB36\uC74C\uC744 \uC800\uC7A5\uD574\uC8FC\uC138\uC694.",linkSaveFirstHint:"\uC800\uC7A5\uB41C \uD6C8\uB828 \uBB36\uC74C\uC5D0\uC11C\uB9CC \uACF5\uC720 \uB9C1\uD06C\uB97C \uC0DD\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",linkCopySelect:"\uBCF5\uC0AC\uAC00 \uB9C9\uD600 \uB9C1\uD06C\uB97C \uC120\uD0DD\uD588\uC2B5\uB2C8\uB2E4. Ctrl/\u2318+C\uB85C \uBCF5\uC0AC\uD558\uC138\uC694.",nameRequired:"\uD6C8\uB828 \uBB36\uC74C \uC774\uB984\uC744 \uC785\uB825\uD574\uC8FC\uC138\uC694.",itemRequired:"\uD6C8\uB828\uC744 1\uAC1C \uC774\uC0C1 \uB2F4\uC544\uC8FC\uC138\uC694.",randomAdd:"\uBB34\uC791\uC704 \uCD94\uAC00"},Na={totalCount:"\uBA85\uC758 \uACE0\uAC1D",loadError:"\uBAA9\uB85D\uC744 \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",basicInfo:{editTooltip:"\uC218\uC815\uD558\uAE30"},member:{placeholder:"\uC774\uBA54\uC77C \uB610\uB294 \uC804\uD654",link:"\uC5F0\uACB0",linking:"\uC5F0\uACB0 \uC911\u2026"},device:{title:"\uCCAD\uAC01\uC7AC\uD65C\uAE30\uAE30",addTooltip:"\uC0C8\uB85C \uC0DD\uC131",addButton:"\uAE30\uAE30 \uCD94\uAC00",listTooltip:"\uBAA9\uB85D \uBCF4\uAE30",listTitle:"\uCE21 \uAE30\uAE30 \uBAA9\uB85D",historyEmpty:"\uB4F1\uB85D\uB41C \uAE30\uAE30 \uC774\uB825\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",wearing:"\uCE21 \uCC29\uC6A9\uC911",notRegistered:"\uBBF8\uB4F1\uB85D",unit:"\uAC1C",wearingNow:"\uCC29\uC6A9",wear:"\uCC29\uC6A9",unwear:"\uCC29\uC6A9 \uD574\uC81C",wornSince:"{{date}}\uBD80\uD130",release:"\uD574\uC81C",historyTitle:"\uCCAD\uAC01\uC7AC\uD65C\uAE30\uAE30 \uC774\uB825"},schedule:{title:"\uBC29\uBB38 \uC608\uC815",addTooltip:"\uC608\uC815 \uB4F1\uB85D",listTooltip:"\uC804\uCCB4 \uBCF4\uAE30",empty:"\uC608\uC815\uB41C \uBC29\uBB38\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",registerTitle:" \uACE0\uAC1D\uB2D8 \uBC29\uBB38 \uC608\uC815 \uB4F1\uB85D",memoPlaceholder:"\uBC29\uBB38 \uC608\uC815 \uAD00\uB828 \uBA54\uBAA8\uB97C \uC785\uB825\uD574 \uC8FC\uC138\uC694."},visitHistory:{title:"\uBC29\uBB38 \uC774\uB825",addTooltip:"\uC2E0\uADDC \uB4F1\uB85D",empty:"\uC544\uC9C1 \uBC29\uBB38 \uAE30\uB85D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",popupTitle:" \uACE0\uAC1D\uB2D8 \uBC29\uBB38 \uC774\uB825",registerTitle:" \uACE0\uAC1D\uB2D8 \uC2E0\uADDC \uBC29\uBB38 \uB4F1\uB85D"},homework:{title:"\uC219\uC81C \uC9C4\uD589\uC0C1\uD669",active:"\uD65C\uC131",inactive:"\uBE44\uD65C\uC131",copy:"\uB9C1\uD06C \uBCF5\uC0AC",copied:"\uB9C1\uD06C\uAC00 \uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},moreItems:"\uB354 \uC788\uC74C",viewAll:"\uC804\uCCB4 \uBCF4\uAE30",visits:{title:"\uBC29\uBB38"},trainingRecord:{title:"\uACE0\uAC1D \uD6C8\uB828 \uAE30\uB85D"},status:{trainingSubtitle:"\uD6C8\uB828 \uD604\uD669"},detail:{session:{completedFmt:"\uC644\uB8CC {{done}}/{{total}} \xB7 {{duration}}"},visitSuffix:"\uC758 \uBC29\uBB38"},duration:{minSec:"{{m}}\uBD84 {{s}}\uCD08",min:"{{m}}\uBD84",sec:"{{s}}\uCD08"}},_a={plan:{recommendedFor:"\uC774\uB7F0 \uBD84\uAED8 \uCD94\uCC9C\uD569\uB2C8\uB2E4.",features:"\uD575\uC2EC \uAE30\uB2A5",freePrice:"\uBB34\uB8CC",contact:"\uBB38\uC758\uD558\uAE30",tierFallback:"\uC774\uC6A9\uAD8C",openPromo:"\uC624\uD508 \uD2B9\uAC00"},products:{mgrEnterprise:{tier:{price:"\uBB38\uC758"}}}},La={title:"\uCFE0\uD3F0",subtitle:"\uCFE0\uD3F0 \uCF54\uB4DC\uB97C \uC785\uB825\uD558\uAC70\uB098 \uBCF4\uC720 \uCFE0\uD3F0\uC744 \uD655\uC778\uD558\uC138\uC694.",input:{label:"\uCFE0\uD3F0 \uCF54\uB4DC",placeholder:"\uCFE0\uD3F0 \uCF54\uB4DC \uC785\uB825"},applyButton:"\uC801\uC6A9",error:{invalid:"\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uCFE0\uD3F0 \uCF54\uB4DC\uC785\uB2C8\uB2E4.",alreadyUsed:"\uC774\uBBF8 \uC0AC\uC6A9\uB41C \uCFE0\uD3F0\uC785\uB2C8\uB2E4."},success:{applied:'"{{name}}" \uCFE0\uD3F0\uC774 \uC801\uC6A9\uB418\uC5C8\uC2B5\uB2C8\uB2E4.'},section:{owned:"\uBCF4\uC720 \uCFE0\uD3F0"},status:{used:"\uC0AC\uC6A9 \uC644\uB8CC",available:"\uC0AC\uC6A9 \uAC00\uB2A5"}},Oa={unitVisit:"\uAC74",periodAll:"\uC804\uCCB4",showN:"{{n}}\uAC1C\uC529"},Ra={subtitle:"\uC5C5\uCCB4 \uBC0F \uBC95\uC778 \uC815\uBCF4\uB97C \uAD00\uB9AC\uD558\uC138\uC694.",editButton:"\uC815\uBCF4 \uC218\uC815",basicInfo:{title:"\uAE30\uBCF8 \uC815\uBCF4"},contactInfo:{title:"\uC5F0\uB77D\uCC98 \uC815\uBCF4"}},Pa={title:"\uD6C8\uB828\uBCC4 \uB4E3\uAE30",subtitle:"\uC6D0\uD558\uB294 \uD6C8\uB828 \uC720\uD615\uC744 \uC120\uD0DD\uD558\uC138\uC694.",listenInNoise:{title:"\uC18C\uC74C \uD558 \uBB38\uC7A5 \uB4E3\uAE30",desc:"\uB2E4\uC591\uD55C \uC18C\uC74C \uD658\uACBD\uC5D0\uC11C \uBB38\uC7A5 \uCCAD\uB825\uC744 \uD6C8\uB828\uD569\uB2C8\uB2E4."},shortStory:{title:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",desc:"\uC9E7\uC740 \uC774\uC57C\uAE30\uB97C \uB4E3\uACE0 \uB0B4\uC6A9\uC744 \uC774\uD574\uD569\uB2C8\uB2E4."},longStory:{title:"\uAE34 \uC774\uC57C\uAE30 \uB4E3\uAE30",desc:"\uAE34 \uC774\uC57C\uAE30\uB97C \uC9D1\uC911\uD574\uC11C \uB4E3\uACE0 \uB0B4\uC6A9\uC744 \uD30C\uC545\uD569\uB2C8\uB2E4."},orderingSentence:{title:"\uBB38\uC7A5 \uC21C\uC11C\uD654",desc:"\uB4E4\uC740 \uBB38\uC7A5\uB4E4\uC744 \uC62C\uBC14\uB978 \uC21C\uC11C\uB85C \uBC30\uC5F4\uD569\uB2C8\uB2E4."},SAME_SOUND_PICK:{label:"\uAC19\uC740 \uC18C\uB9AC \uACE0\uB974\uAE30",sub:"\uB4E4\uC740 \uC18C\uB9AC\uC640 \uAC19\uC740 \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},SAME_OR_DIFF:{label:"\uAC19\uC740\uC9C0 \uB2E4\uB978\uC9C0 \uB9DE\uD788\uAE30",sub:"\uB450 \uC18C\uB9AC\uAC00 \uAC19\uC740\uC9C0, \uB2E4\uB978\uC9C0 \uAD6C\uBD84\uD558\uC138\uC694."},HEAR_AND_PICK_SAME:{label:"\uC77C\uCE58\uD558\uB294 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",sub:"\uB4E4\uC740 \uC18C\uB9AC\uC758 \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},HEAR_AND_PICK_INCLUDED:{label:"\uD55C \uC74C\uC808 \uD3EC\uD568 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",sub:"\uB4E4\uC740 \uC74C\uC808\uC774 \uD3EC\uD568\uB41C \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},STARTS_WITH_SAME_SOUND:{label:"\uCCAB \uC74C\uC808\uC774 \uAC19\uC740 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",sub:"\uB4E4\uC740 \uB2E8\uC5B4\uC640 \uAC19\uC740 \uC18C\uB9AC\uB85C \uC2DC\uC791\uD558\uB294 \uB2E8\uC5B4\uB97C \uACE0\uB974\uC138\uC694."},LISTEN_AND_REMEMBER_ORDER:{label:"\uB4E3\uACE0 \uC21C\uC11C\uB300\uB85C \uAE30\uC5B5\uD558\uAE30",sub:"\uC138 \uB2E8\uC5B4\uB97C \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694."},MERGE_2_SYLLABLES:{label:"\uC74C\uC808 2\uAC1C \uD569\uCE58\uAE30",sub:"\uB450 \uC74C\uC808\uC744 \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},MERGE_3_SYLLABLES:{label:"\uC74C\uC808 3\uAC1C \uD569\uCE58\uAE30",sub:"\uC138 \uC74C\uC808\uC744 \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},MERGE_2_PHONEMES:{label:"\uC74C\uC18C 2\uAC1C \uD569\uCE58\uAE30",sub:"\uB450 \uC74C\uC18C\uB97C \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},MERGE_3_PHONEMES:{label:"\uC74C\uC18C 3\uAC1C \uD569\uCE58\uAE30",sub:"\uC138 \uC74C\uC18C\uB97C \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},DROP_1_FROM_2SYLL:{label:"2\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uD0C8\uB77D",sub:"2\uC74C\uC808 \uB2E8\uC5B4\uC5D0\uC11C \uD55C \uC74C\uC808\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},DROP_1_FROM_3SYLL:{label:"3\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uD0C8\uB77D",sub:"3\uC74C\uC808 \uB2E8\uC5B4\uC5D0\uC11C \uD55C \uC74C\uC808\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},DROP_PART_FROM_COMPOUND:{label:"\uD569\uC131\uC5B4\uC5D0\uC11C \uBD80\uBD84 \uD0C8\uB77D",sub:"\uD569\uC131\uC5B4\uC758 \uC77C\uBD80\uB97C \uBE7C\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},DROP_FINAL_CONSONANT_FROM_1SYLL:{label:"1\uC74C\uC808\uC5D0\uC11C \uBC1B\uCE68 \uD0C8\uB77D",sub:"\uBC1B\uCE68\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:{label:"1\uC74C\uC808\uC5D0\uC11C \uC790\uC74C \uD0C8\uB77D",sub:"\uC790\uC74C\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB0A8\uC744\uAE4C\uC694?"},CHANGE_1_SYLL_IN_2SYLL:{label:"2\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uBC14\uAFB8\uAE30",sub:"2\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC808\uC744 \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."},CHANGE_1_SYLL_IN_3SYLL:{label:"3\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uBC14\uAFB8\uAE30",sub:"3\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC808\uC744 \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."},CHANGE_1_PHONEME_IN_1SYLL:{label:"1\uC74C\uC808 \uB2E8\uC5B4 \uC911 1\uAC1C \uC74C\uC18C \uBC14\uAFB8\uAE30",sub:"1\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC18C\uB97C \uBC14\uAFD4 \uC0C8 \uC18C\uB9AC\uB97C \uB9CC\uB4DC\uC138\uC694."},CHANGE_1_PHONEME_IN_2SYLL:{label:"2\uC74C\uC808 \uB2E8\uC5B4 \uC911 1\uAC1C \uC74C\uC18C \uBC14\uAFB8\uAE30",sub:"2\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC18C\uB97C \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."}},Ma={comingSoon:"\uB2E8\uC5B4\uD6C8\uB828 \uAE30\uB2A5\uC744 \uC900\uBE44 \uC911\uC785\uB2C8\uB2E4."},Ia={colName:"\uB2E8\uC5B4\uD45C \uC774\uB984",open:"\uC5F4\uAE30",countSuffix:"\uAC1C\uC758 \uB2E8\uC5B4\uD45C",tab:{cards:"\uB2E8\uC5B4\uD45C \uCE74\uB4DC",tables:"\uB2E8\uC5B4\uD45C"},cardsEmpty:"\uC544\uC9C1 \uB9CC\uB4E0 \uB2E8\uC5B4\uD45C \uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",addCard:"\uB2E8\uC5B4\uD45C \uCE74\uB4DC \uCD94\uAC00",menu:{publishStore:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0 \uC62C\uB9AC\uAE30",unpublishStore:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0\uC11C \uB0B4\uB9AC\uAE30"},newBadge:"\uC0C8\uB85C \uB9CC\uB4E0 \uD45C",publishedBadge:"\uBC1C\uD589\uB428",sharedBadge:"\uACF5\uC720 \uC911"},ka={title:"\uC8FC\uC694 \uB2E8\uC5B4",empty:"\uCD94\uCD9C\uB41C \uC8FC\uC694 \uB2E8\uC5B4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},xa={defaultName:"\uB2E8\uC5B4 \uD45C",title:"\uB2E8\uC5B4 \uD45C \uB9CC\uB4E4\uAE30",subtitle:"\uCE78\uC744 \uC124\uC815\uD558\uACE0 \uB2E8\uC5B4\uB97C \uCD94\uAC00\uD558\uC5EC \uD45C\uB97C \uB9CC\uB4ED\uB2C8\uB2E4.",filterTitle:"\uD45C \uC124\uC815",filter:{composition:"\uAD6C\uC131",image:"\uC774\uBBF8\uC9C0",word:"\uB2E8\uC5B4",standardPron:"\uD45C\uC900 \uBC1C\uC74C",colloquialPron:"\uAD6C\uC5B4\uCCB4 \uBC1C\uC74C",paperOrientation:"\uC6A9\uC9C0 \uBC29\uD5A5",landscape:"\uAC00\uB85C",portrait:"\uC138\uB85C",columns:"\uCE78 \uC218",column:"{{count}}\uCE78",itemsPerPageWord:"\uD398\uC774\uC9C0\uB2F9 \uB2E8\uC5B4 \uC218",itemsPerPagePair:"\uD398\uC774\uC9C0\uB2F9 \uB300\uB9BD\uC30D \uC218",itemsPerPageOption:"{{count}}\uAC1C",pageIndicator:"{{current}} / {{total}}",pageNumber:"\uD398\uC774\uC9C0 \uBC88\uD638",pageNumberLeft:"\uC67C\uCABD",pageNumberCenter:"\uC911\uC559",pageNumberRight:"\uC624\uB978\uCABD",border:"\uC678\uACFD\uC120",cutLine:"\uC808\uCDE8\uC120",show:"\uD45C\uC2DC",hide:"\uBBF8\uD45C\uC2DC",dotted:"\uC810\uC120",corner:"\uCF54\uB108"},addWord:"\uCD94\uAC00\uD558\uAE30",wordInfo:"{{word}} \uB0B1\uB9D0 \uC815\uBCF4",emptyItems:"\uB2E8\uC5B4\uB97C 1\uAC1C \uC774\uC0C1 \uCD94\uAC00\uD574\uC8FC\uC138\uC694.",load:"\uBD88\uB7EC\uC624\uAE30",openNewWindow:"\uC0C8 \uCC3D\uC73C\uB85C \uBCF4\uAE30",saveButton:"\uC800\uC7A5\uD558\uAE30",saveAsNewButton:"\uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uC800\uC7A5",print:"\uC778\uC1C4\uD558\uAE30",popupBlocked:"\uD31D\uC5C5\uC774 \uCC28\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800 \uC124\uC815\uC5D0\uC11C \uD31D\uC5C5\uC744 \uD5C8\uC6A9\uD574 \uC8FC\uC138\uC694.",printFileNameSingle:"\uB2E8\uC5B4\uD45C",printFileNamePair:"\uB300\uB9BD\uC30D\uD45C",save:{title:"\uB2E8\uC5B4\uD45C \uC800\uC7A5\uD558\uAE30",nameLabel:"\uC774\uB984",desc:"\uC800\uC7A5\uD560 \uB2E8\uC5B4 \uD45C\uC758 \uC774\uB984\uC744 \uC785\uB825\uD558\uC138\uC694.",placeholder:"\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694.",descriptionLabel:"\uC124\uBA85",descriptionPlaceholder:"\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC124\uBA85\uC744 \uC785\uB825\uD558\uC138\uC694.",duplicateName:"\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4.",nameRequired:"\uD45C \uC774\uB984\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694.",autoFillHint:" (Tab \uB610\uB294 space \uC785\uB825\uC2DC \uC790\uB3D9 \uC785\uB825)",copyName:"{{name}} (\uBCF5\uC0AC)"},loadTable:{title:"\uC800\uC7A5\uB41C \uB2E8\uC5B4 \uD45C \uBD88\uB7EC\uC624\uAE30",empty:"\uC800\uC7A5\uB41C \uB2E8\uC5B4 \uD45C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",loadButton:"\uBD88\uB7EC\uC624\uAE30",itemCount:"{{count}}\uAC1C",deleteAriaLabel:"{{name}} \uC0AD\uC81C",sort:{newest:"\uCD5C\uC2E0\uC21C",oldest:"\uC624\uB798\uB41C\uC21C",name:"\uC774\uB984\uC21C",count:"\uB2E8\uC5B4 \uC218"},view:{grid:"\uD45C\uB85C \uBCF4\uAE30",list:"\uB9AC\uC2A4\uD2B8\uB85C \uBCF4\uAE30"}},groupDeleteMessage:"\uADF8\uB8F9 \uB0B4 \uB2E8\uC5B4\uD45C\uB294 '\uADF8\uB8F9 \uC5C6\uC74C'\uC73C\uB85C \uC774\uB3D9\uD569\uB2C8\uB2E4.",groupNamePlaceholder:"\uADF8\uB8F9 \uC774\uB984",store:{badge:"\uB9D0\uADC0\uC790\uB8CC\uC2E4"},card:{sub:"\uB2E8\uC5B4\uD45C \uCE74\uB4DC",empty:"\uC774 \uCE74\uB4DC\uC5D0 \uB2E8\uC5B4\uD45C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},toast:{renameError:"\uC774\uB984 \uBCC0\uACBD\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",saveError:"\uC800\uC7A5\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",deleteError:"\uC0AD\uC81C\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",duplicateError:"\uBCF5\uC81C\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",saveSuccess:"\uB2E8\uC5B4\uD45C\uAC00 \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},scoring:{o:"{{word}} \uB9DE\uC74C",triangle:"{{word}} \uC560\uB9E4",x:"{{word}} \uD2C0\uB9BC",button:"\uCC44\uC810\uD558\uAE30",pickTitle:"\uB204\uAD6C\uB97C \uCC44\uC810\uD560\uAE4C\uC694?",pickSubtitle:"\u2018{{name}}\u2019 \uD45C\uB85C \uD6C8\uB828\uD55C \uACE0\uAC1D\uC744 \uACE0\uB974\uC138\uC694.",pickSearch:"\uC774\uB984 \uB610\uB294 \uC804\uD654\uBC88\uD638\uB85C \uCC3E\uAE30",pickEmpty:"\uB4F1\uB85D\uB41C \uACE0\uAC1D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",pickNoMatch:"\uCC3E\uB294 \uACE0\uAC1D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",pickAgain:"\uACE0\uAC1D \uB2E4\uC2DC \uACE0\uB974\uAE30",scoringFor:"{{name}} \uB2D8 \uCC44\uC810 \uC911",none:"\uCE78 \uC544\uB798 \u25CB \xB7 \u25B3 \xB7 \u2715 \uB97C \uB20C\uB7EC \uB9E4\uAE30\uC138\uC694. \uB9C8\uC6B0\uC2A4\uB85C\uB294 \uCE78\uC5D0 \uC190\uC744 \uC5B9\uC73C\uBA74 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.",tally:"{{marked}}\uCE78 \uCC44\uC810 \xB7 \u25CB {{o}} \xB7 \u25B3 {{triangle}} \xB7 \u2715 {{x}} \xB7 \uC815\uB2F5\uB960 {{rate}}%",save:"\uCC44\uC810 \uC800\uC7A5",saved:"{{name}} \uB2D8\uC758 \uCC44\uC810 {{count}}\uCE78\uC744 \uC800\uC7A5\uD588\uC2B5\uB2C8\uB2E4.",reviewTitle:"\uBCF5\uC2B5\uD45C\uB97C \uB9CC\uB4E4\uAE4C\uC694?",reviewMessage:"{{name}} \uB2D8\uC774 \uD2C0\uB9AC\uAC70\uB098 \uC560\uB9E4\uD588\uB358 {{count}}\uCE78\uC73C\uB85C \uC0C8 \uD45C\uB97C \uB9CC\uB4ED\uB2C8\uB2E4. \uB9DE\uD78C \uCE78\uC740 \uBE60\uC9D1\uB2C8\uB2E4.",reviewConfirm:"\uBCF5\uC2B5\uD45C \uB9CC\uB4E4\uAE30",reviewDescription:"\u2018{{name}}\u2019 \uCC44\uC810\uC5D0\uC11C \uD2C0\uB9AC\uAC70\uB098 \uC560\uB9E4\uD588\uB358 {{count}}\uCE78\uC744 \uBAA8\uC740 \uD45C\uC785\uB2C8\uB2E4.",reviewCreated:"\u2018{{name}}\u2019\uC744(\uB97C) \uB9CC\uB4E4\uC5C8\uC2B5\uB2C8\uB2E4 \u2014 {{count}}\uCE78.",discardTitle:"\uB9E4\uAE34 \uCC44\uC810\uC744 \uBC84\uB9B4\uAE4C\uC694?",discardMessage:"{{count}}\uCE78\uC744 \uB9E4\uACBC\uC9C0\uB9CC \uC544\uC9C1 \uC800\uC7A5\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uB098\uAC00\uBA74 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4.",discardConfirm:"\uBC84\uB9AC\uACE0 \uB098\uAC00\uAE30"},info:{grade:"\uB09C\uC774\uB3C4: {{n}}\uB4F1\uAE09",syllables:"\uC74C\uC808 \uC218: {{n}}\uC74C\uC808",pos:"\uD488\uC0AC: {{v}}",wordType:"\uC720\uD615: {{v}}"},pos:{noun:"\uBA85\uC0AC",verb:"\uB3D9\uC0AC",adjective:"\uD615\uC6A9\uC0AC",adverb:"\uBD80\uC0AC",numeral:"\uC218\uC0AC",determiner:"\uAD00\uD615\uC0AC",interjection:"\uAC10\uD0C4\uC0AC",particle:"\uC870\uC0AC",affix:"\uC811\uC0AC",dependentNoun:"\uC758\uC874\uBA85\uC0AC",pronoun:"\uB300\uBA85\uC0AC",auxVerb:"\uBCF4\uC870\uB3D9\uC0AC",auxAdjective:"\uBCF4\uC870\uD615\uC6A9\uC0AC"},reorder:{moved:"{{total}}\uCE78 \uAC00\uC6B4\uB370 {{n}}\uBC88\uC9F8\uB85C \uC62E\uAE40",handle:"{{word}} \uC21C\uC11C \uBC14\uAFB8\uAE30 (Alt + \uD654\uC0B4\uD45C)",hint:"Alt + \u2190 \u2192 \uB85C \uC21C\uC11C \uBC14\uAFB8\uAE30"}},ja={editBanner:{message:"\uC800\uC7A5\uD558\uBA74 \uC9C0\uAE08 \uC218\uC815 \uC911\uC778 \uB2E8\uC5B4\uD45C\uAC00 \uAC31\uC2E0\uB429\uB2C8\uB2E4."},filterTitle:"\uB2E8\uC5B4 \uAC80\uC0C9 \uC124\uC815",filter:{positionAny:"\uBB34\uAD00",positionHead:"\uC5B4\uB450",positionMid:"\uC5B4\uC911",positionTail:"\uC5B4\uB9D0",difficulty:"\uB4F1\uAE09",grade:"{{n}}\uB4F1\uAE09",syllables:"\uC74C\uC808 \uC218",syllable:"{{n}}\uC74C\uC808",syllable5plus:"5\uC74C\uC808 \uC774\uC0C1",partOfSpeech:"\uD488\uC0AC",pos:{noun:"\uCCB4\uC5B8(\uBA85\uC0AC, \uC218\uC0AC)",verb:"\uC6A9\uC5B8(\uB3D9\uC0AC, \uD615\uC6A9\uC0AC)",modifier:"\uC218\uC2DD\uC5B8(\uBD80\uC0AC, \uAD00\uD615\uC0AC)"},wordType:"\uC720\uD615",type:{native:"\uACE0\uC720\uC5B4",sino:"\uD55C\uC790\uC5B4",foreign:"\uC678\uB798\uC5B4",mixed:"\uD63C\uC885\uC5B4"},exclude:"\uC81C\uC678",excludeNoImage:"\uC774\uBBF8\uC9C0 \uC5C6\uC74C"},searchButton:"\uAC80\uC0C9\uD558\uAE30",resultUnit:"\uB2E8\uC5B4",remaining:"{{count}}\uAC1C \uB0A8\uC74C",resultDisc:"\uC6D0\uD558\uB294 {{unit}} \uC120\uD0DD\uD558\uC138\uC694. {{max}}\uAC1C\uAE4C\uC9C0 \uC120\uD0DD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. ({{selected}}/{{max}})",resultTitlePrefix:"\uCD1D ",resultTitleSuffix:"\uAC1C\uC758 {{unit}} \uAC80\uC0C9\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",emptyResult:"\uAC80\uC0C9 \uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",groupCount:"{{count}}\uAC1C",sort:{aria:"\uC815\uB82C",match:"\uC2DC\uC791 \uC6B0\uC120",ganada:"\uAC00\uB098\uB2E4\uC21C \u2191",ganadaDesc:"\uAC00\uB098\uB2E4\uC21C \u2193",syllable:"\uC74C\uC808 \uC218 \u2191",syllableDesc:"\uC74C\uC808 \uC218 \u2193",grade:"\uB4F1\uAE09\uC21C \u2191",gradeDesc:"\uB4F1\uAE09\uC21C \u2193",original:"\uBC1B\uC740 \uC21C\uC11C"},pageSize:"{{count}}\uAC1C\uC529 \uBCF4\uAE30",pageSizeAria:"\uD398\uC774\uC9C0 \uD06C\uAE30",popup:{title:"{{n}}\uBC88 \uCE78\uC5D0 \uB123\uC744 \uB2E8\uC5B4\uB97C \uC120\uD0DD\uD558\uC138\uC694"}},Fa={clearAllSelection:"\uBAA8\uB450 \uC120\uD0DD \uD574\uC81C",divLine:"\uB300\uB9BD\uC120",removePair:"\uB300\uB9BD\uC30D \uBE7C\uAE30",removeWord:"\uB2E8\uC5B4 \uBE7C\uAE30"},$a={title:"\uC8FC\uC81C\uBCC4 \uB4E3\uAE30",subtitle:"\uC8FC\uC81C\uB97C \uC120\uD0DD\uD558\uACE0 \uB4E3\uAE30 \uD6C8\uB828\uC744 \uC2DC\uC791\uD558\uC138\uC694.",noiseTitle:"\uC18C\uC74C \uD558 \uBB38\uC7A5\uB4E3\uAE30",shortStoryTitle:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",FOOD:"\uC74C\uC2DD",HLTH:"\uAC74\uAC15",WETH:"\uB0A0\uC528",PRSN:"\uC778\uBB3C",KRCT:"\uD55C\uAD6D\uBB38\uD654",STRY:"\uC774\uC57C\uAE30",LOCA:"\uC9C0\uC5ED",SOAR:"\uC0AC\uD68C\uC640 \uC608\uC220",NTSC:"\uC790\uC5F0\uACFC \uACFC\uD559",SPRT:"\uC2A4\uD3EC\uCE20",sub:{TRKRFD:"\uD55C\uAD6D \uC804\uD1B5\uC74C\uC2DD",MDKRFD:"\uD55C\uAD6D \uD604\uB300\uC74C\uC2DD",WRLDFD:"\uC138\uACC4\uC758 \uC74C\uC2DD",MTRFRT:"\uC2DD\uC7AC\uB8CC\uC640 \uACFC\uC77C",GEFDKL:"\uC74C\uC2DD \uC0C1\uC2DD",HTETHB:"\uAC74\uAC15\uD55C \uC2DD\uC2B5\uAD00",DISILL:"\uBCD1\uACFC \uC9C8\uD658",EXCISE:"\uC6B4\uB3D9",GEHTKL:"\uAC74\uAC15\uC0C1\uC2DD",GESSKL:"\uACC4\uC808\uC0C1\uC2DD",SNWRAN:"\uB208\uACFC \uBE44",WTHFCT:"\uC77C\uAE30\uC608\uBCF4",GEWTKL:"\uB0A0\uC528\uC0C1\uC2DD",JODYPS:"\uC870\uC120\uC2DC\uB300",MDKRPS:"\uD55C\uAD6D \uADFC\uD604\uB300",THKDPS:"\uC0BC\uAD6D\uC2DC\uB300",WRLART:"\uC138\uACC4\uC758 \uC608\uC220\uAC00",WRLPSN:"\uC138\uACC4\uC758 \uC778\uBB3C",KRLANG:"\uC6B0\uB9AC\uB9D0",TRPLCT:"\uC804\uD1B5\uB180\uC774",HERITG:"\uBB38\uD654\uC7AC",EVTFES:"\uD589\uC0AC\uC640 \uCD95\uC81C",GECTKL:"\uC0C1\uC2DD",FRYTAL:"\uB3D9\uD654",AMZING:"\uC2E0\uAE30\uD55C \uC774\uC57C\uAE30",DAYSTR:"\uC77C\uC0C1 \uC18D \uC774\uC57C\uAE30",KRLDMK:"\uD55C\uAD6D\uC758 \uBA85\uC18C",SELNMK:"\uC11C\uC6B8\uC758 \uBA85\uC18C",WRDTRB:"\uC138\uACC4\uC5EC\uD589",NAVIGT:"\uAE38 \uCC3E\uAE30",KRSOCI:"\uD55C\uAD6D",ECONEW:"\uACBD\uC81C\uC640 \uB274\uC2A4",GENART:"\uC608\uC220",GELFKL:"\uC0DD\uD65C \uC0C1\uC2DD",ANIMAL:"\uB3D9\uBB3C",PLANTS:"\uC2DD\uBB3C",ETHPLT:"\uC9C0\uAD6C",TOLELC:"\uB3C4\uAD6C\uC640 \uC804\uC790\uC81C\uD488",GESCKL:"\uACFC\uD559\uC0C1\uC2DD",INVDSP:"\uAC1C\uC778\uACBD\uAE30",MARART:"\uACA9\uD22C\uAE30",TEAMSP:"\uB2E8\uCCB4\uACBD\uAE30",FOOTBL:"\uCD95\uAD6C",GESPKL:"\uC2A4\uD3EC\uCE20 \uC0C1\uC2DD"}},Ha={maxUses:"\uCD5C\uB300 \uC0AC\uC6A9 \uD69F\uC218 (\uBE44\uC6CC\uB450\uBA74 \uBB34\uC81C\uD55C)",redirect:"\uC774\uB3D9\uD560 \uD398\uC774\uC9C0 URL (\uBE44\uC6CC\uB450\uBA74 \uC571 \uBA54\uC778)",creating:"\uC0DD\uC131 \uC911\u2026",create:"\uB9C1\uD06C \uC0DD\uC131",created:"\u2713 \uB9C1\uD06C\uAC00 \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4",copied:"\uBCF5\uC0AC\uB428!",copy:"\uBCF5\uC0AC",loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026",empty:"\uC0DD\uC131\uB41C \uB9C1\uD06C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",uses:"{{count}}\uD68C \uC0AC\uC6A9",expiresAt:"\uB9CC\uB8CC: {{date}}",createdAt:"\uC0DD\uC131: {{date}}",confirmDelete:"\uC0AD\uC81C\uD560\uAE4C\uC694?",deactivate:"\uBE44\uD65C\uC131\uD654",delete:"\uC0AD\uC81C",status:{active:"\uC720\uD6A8",expired:"\uB9CC\uB8CC",inactive:"\uBE44\uD65C\uC131"}},Ga={passwordPlaceholder:"\uBE44\uBC00\uBC88\uD638 \uC785\uB825"},Va={subtitle:"\uC8FC\uC81C\uB97C \uC120\uD0DD\uD558\uC5EC \uB4E3\uAE30 \uC5F0\uC2B5\uC744 \uC9C4\uD589\uD558\uC138\uC694."},Wa={direction:{left:"\uC88C",right:"\uC6B0",label:"\uBC29\uD5A5"},wornDate:"\uCC29\uC6A9\uC77C",deviceType:"\uC885\uB958",brand:"\uBE0C\uB79C\uB4DC",fitType:"\uCC29\uC6A9\uD615\uD0DC",productName:"\uC81C\uD488\uBA85",validationError:{brandAndProduct:"\uBE0C\uB79C\uB4DC\uC640 \uC81C\uD488\uBA85\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694."},addNew:"\uC0C8 \uAE30\uAE30 \uCD94\uAC00",selectFromList:"\uBAA9\uB85D\uC5D0\uC11C \uC120\uD0DD",removeDevice:"\uCC29\uC6A9 \uD574\uC81C",type:{hearingAid:"\uBCF4\uCCAD\uAE30",cochlearImplant:"\uC778\uACF5\uC640\uC6B0"}},Ya={stat:{totalCustomers:"\uCD1D \uACE0\uAC1D",monthlyVisits:"\uC774\uB2EC \uCD1D \uBC29\uBB38"},chart:{visitDetail:"\uC0C1\uC138 \uBC29\uBB38 \uD604\uD669",trainingDetail:"\uC0C1\uC138 \uD6C8\uB828 \uD604\uD669",weekly:"\uC8FC\uBCC4",daily:"\uC77C\uBCC4",periodMonth:"\uC6D4",periodWeek:"\uC8FC",weeklyPrefix:"\uC8FC\uAC04",monthlyPrefix:"\uC6D4\uAC04",visit:"\uBC29\uBB38",reservation:"\uC608\uC57D",trainingDone:"\uD6C8\uB828 \uC644\uB8CC",trainingInProgress:"\uD6C8\uB828 \uC911",weekRange:"{{start}}~{{end}}",week:"{{n}}\uC8FC"},subscriptionStatus:{active:"{{pct}}% \uD65C\uC131",expired:"{{pct}}% \uB9CC\uB8CC",unused:"{{pct}}% \uBBF8\uC0AC\uC6A9"}},Ka={editBanner:{message:"\uC800\uC7A5\uD558\uBA74 \uC9C0\uAE08 \uC218\uC815 \uC911\uC778 \uB300\uB9BD\uC30D\uD45C\uAC00 \uAC31\uC2E0\uB429\uB2C8\uB2E4."},phonemeSelect:{title:"\uC74C\uC18C \uC120\uD0DD",vs:"\uB300"},caution:"\uC720\uC758\uC0AC\uD56D",mode:{include:"\uC74C\uC18C \uD3EC\uD568",pick:"\uC74C\uC18C \uB300\uB9BD",contrast:"\uC74C\uC18C \uB300\uB9BD \uC9C0\uC815",infoTitle:"\uB300\uB9BD \uBC29\uC2DD",infoInclude:"\uC74C\uC18C \uD3EC\uD568 \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uAC00 \uBAA8\uB450 \uB4E4\uC5B4\uAC04 \uB2E8\uC5B4\uC640 \uADF8 \uB300\uB9BD\uC30D\uC744 \uCC3E\uC544\uC694.",infoPick:"\uC74C\uC18C \uB300\uB9BD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uAC00 \uB300\uB9BD\uC30D \uB450 \uB2E8\uC5B4\uC758 \uC2E4\uC81C \uCC28\uC774\uC810\uC77C \uB54C\uB9CC \uB9E4\uCE6D\uB3FC\uC694.",infoContrast:"\uC74C\uC18C \uB300\uB9BD \uC9C0\uC815 \u2014 \uAE30\uC900 \uB2E8\uC5B4\uC640 \uB300\uB9BD \uB2E8\uC5B4\uC758 \uC74C\uC18C\uB97C \uAC01\uAC01 \uC9C1\uC811 \uC120\uD0DD\uD574 \uB300\uB9BD\uC30D\uC744 \uCC3E\uC544\uC694."},count:"{{n}}\uAC1C",input:{char:"\uAE00\uC790 \uC120\uD0DD",pron:"\uBC1C\uC74C \uC120\uD0DD",infoTitle:"\uC785\uB825 \uBC29\uC2DD",infoChar:"\uAE00\uC790 \uC120\uD0DD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uB85C \uB2E8\uC5B4(\uAE00\uC790 \uAE30\uC900)\uB97C \uCC3E\uC740 \uD6C4, \uB2E8\uC5B4\uC758 \uD45C\uC900 \uBC1C\uC74C \uB300\uB9BD\uC30D\uC744 \uCC3E\uC2B5\uB2C8\uB2E4.",infoPron:"\uBC1C\uC74C \uC120\uD0DD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uB85C \uD45C\uC900 \uBC1C\uC74C \uB300\uB9BD\uC30D\uC744 \uCC3E\uC2B5\uB2C8\uB2E4."},phonemeN:"{{n}}\uBC88 \uC74C\uC808",phonemeSingleLabel:"\uC74C\uC808",phonemeContrastSingleLabel:"\uB300\uB9BD \uC74C\uC808",ordinals:["\uCCAB\uBC88\uC9F8","\uB450\uBC88\uC9F8","\uC138\uBC88\uC9F8","\uB124\uBC88\uC9F8"],phonemeOrdinalLabel:"{{ordinal}} \uC74C\uC808",phonemeContrastOrdinalLabel:"\uB300\uB9BD {{ordinal}} \uC74C\uC808",composition:"\uC815\uB2F5 \uB2E8\uC5B4 \uAD6C\uC131",syllableCount:"\uC74C\uC808 \uC218",syllableN:"{{n}}\uC74C\uC808",syllableNPlus:"{{n}}\uC74C\uC808 \uC774\uC0C1",onset:"\uCD08\uC131",vowel:"\uBAA8\uC74C",coda:"\uC885\uC131",filter:{searchOptionsTitle:"\uB300\uB9BD \uC124\uC815",searchModeLabel:"\uB300\uB9BD \uBC29\uC2DD",countLabel:"\uC785\uB825 \uC74C\uC808 \uAC2F\uC218",inputModeLabel:"\uC785\uB825 \uBC29\uC2DD",phonemeOrder:"\uC785\uB825 \uC74C\uC808 \uC704\uCE58",phonemeOrderInfo:["\uC77C\uCE58: \uB300\uB9BD\uC30D\uC774 \uC815\uD655\uD788 \uAC19\uC740 \uC704\uCE58(\uC74C\uC808)\uC5D0\uC11C\uB9CC \uCC28\uC774 \uB098\uC57C \uB9E4\uCE6D\uB3FC\uC694.","\uBB34\uAD00: \uCC28\uC774 \uB098\uB294 \uC704\uCE58\uB294 \uC0C1\uAD00\uC5C6\uC774 \uB9E4\uCE6D\uB3FC\uC694."],orderAny:"\uBB34\uAD00",orderMatch:"\uC77C\uCE58",difficultyInfo:"\uAD6D\uB9BD\uAD6D\uC5B4\uC6D0\uC758 \uAE30\uCD08 \uC5B4\uD718 \uB4F1\uAE09\uC774 \uACB0\uACFC\uC5D0 \uBC18\uC601\uB429\uB2C8\uB2E4.",selectLabel:"\uC120\uD0DD",onlyHasImage:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC",onlySameStructure:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC"},searchLabel:{error:"\uB370\uC774\uD130 \uBD88\uB7EC\uC624\uAE30 \uC2E4\uD328",loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026"},confirmMessage:"\uC120\uD0DD\uD55C {{unit}} {{count}}\uAC1C\uB97C \uD3EC\uD568\uD55C \uB2E8\uC5B4 \uD45C \uC815\uBCF4\uAC00 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4.",resetOptions:"\uAC80\uC0C9 \uC635\uC158 \uCD08\uAE30\uD654",phonemeContrast:"\uB300\uB9BD {{n}}\uBC88 \uC74C\uC808",infoNotes:["\uBBF8\uB9AC\uBCF4\uAE30 \uAE00\uC790\uB294 \uC120\uD0DD\uD55C \uC74C\uC18C\uC758 \uC870\uD569 \uC608\uC2DC\uC785\uB2C8\uB2E4. \uC2E4\uC81C \uAC80\uC0C9\uC740 \uD574\uB2F9 \uC74C\uC18C\uAC00 \uD3EC\uD568\uB41C \uBAA8\uB4E0 \uB2E8\uC5B4\uB97C \uB300\uC0C1\uC73C\uB85C \uD569\uB2C8\uB2E4.","\uCD08\uC131 '\u3147'\uC740 \uC120\uD0DD\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2E8\uC5B4 \uC55E\uC5D0 \uC624\uB294 \u3147\uC740 \uC2E4\uC9C8\uC801\uC73C\uB85C \uBB34\uC74C\uC774\uC5B4\uC11C \uB300\uB9BD\uC30D \uC131\uB9BD\uC5D0 \uC601\uD5A5\uC744 \uC8FC\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uCD08\uC131\uACFC \uC885\uC131\uB9CC \uC120\uD0DD\uD558\uBA74 \uBAA8\uC74C\uC740 '\u314F'\uB85C \uC790\uB3D9 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC74C\uC18C \uAC1C\uC218\uB97C \uB298\uB9AC\uBA74 \uAC01 \uC74C\uC18C \uC0AC\uC774\uC758 \uB300\uB9BD\uC30D\uC744 \uAC80\uC0C9\uD569\uB2C8\uB2E4."]},Ua={sentenceTyping:{roundCount:"{{rounds}}\uBB38\uC81C \xB7 \uBB38\uC81C\uB2F9 {{timeLimit}}\uCD08"},wordDefense:{me:"\uB098"},dictation:{title:"\uBC1B\uC544\uC4F0\uAE30",desc:"\uBB38\uC7A5\uC744 \uB4E3\uACE0 \uC815\uD655\uD788 \uBC1B\uC544\uC801\uB294 \uC5F0\uC2B5\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC74C\uC131 \uC7AC\uC0DD, \uC785\uB825 \uD544\uB4DC, \uC815\uB2F5 \uBE44\uAD50"},result:{heading:"{{number}}\uB2E8\uACC4 \uD574\uB2F5",retry:"\uB2E4\uC2DC \uD480\uAE30"},common:{accuracy:"{{pct}}% \uC815\uD655\uB3C4"},soundMatch:{title:"\uC18C\uB9AC \uB9E4\uCE6D",desc:"\uAC19\uC740 \uC18C\uB9AC\uB97C \uAC00\uC9C4 \uB2E8\uC5B4 \uB610\uB294 \uBB38\uC7A5\uC744 \uBE60\uB974\uAC8C \uB9E4\uCE6D\uD558\uB294 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uD50C\uB808\uC774 \uBC84\uD2BC, \uD0C0\uC774\uBA38, \uC810\uC218 \uC9D1\uACC4"},orderSequence:{title:"\uBB38\uC7A5 \uC21C\uC11C\uD654",desc:"\uD769\uC5B4\uC9C4 \uBB38\uC7A5 \uC870\uAC01\uC744 \uC62C\uBC14\uB978 \uC21C\uC11C\uB85C \uBC30\uC5F4\uD558\uB294 \uD6C8\uB828\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uBB38\uC7A5 \uC138\uD2B8, \uC21C\uC11C \uD655\uC778 \uC778\uD130\uD398\uC774\uC2A4"},speedListen:{title:"\uC18D\uB3C4 \uB4E3\uAE30",desc:"\uC2DC\uAC04 \uC81C\uD55C \uB0B4\uC5D0 \uBB38\uC7A5\uC758 \uB2E8\uC5B4 \uC218\uB97C \uB9DE\uCD94\uB294 \uB3C4\uC804\uD615 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC81C\uD55C\uC2DC\uAC04, \uC810\uC218\uD310"},noiseChallenge:{title:"\uC18C\uC74C \uCC4C\uB9B0\uC9C0",desc:"\uBC30\uACBD \uC18C\uC74C \uC18D\uC5D0\uC11C \uBB38\uC7A5\uC744 \uBD84\uBCC4\uD558\uB294 \uC5F0\uC2B5\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uB2E4\uC591\uD55C \uC18C\uC74C \uB808\uBCA8, \uC810\uC218 \uC9D1\uACC4"},fastListen:{title:"\uBE60\uB978 \uB4E3\uAE30",desc:"\uC9E7\uC740 \uBB38\uC7A5\uC744 \uBE60\uB974\uAC8C \uB4E4\uB824\uC8FC\uACE0 \uD575\uC2EC \uB2E8\uC5B4\uB97C \uC120\uD0DD\uD558\uB294 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uB09C\uC774\uB3C4\uBCC4 \uC18D\uB3C4, \uD0C0\uC774\uBA38"},shadowing:{title:"\uC250\uB3C4\uC789",desc:"\uBB38\uC7A5\uC744 \uB530\uB77C \uB9D0\uD558\uBA70 \uBC1C\uC74C\uACFC \uC5B5\uC591\uC744 \uC5F0\uC2B5\uD558\uB294 \uBAA8\uB4DC\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC7AC\uC0DD, \uB179\uC74C, \uBE44\uAD50 \uD53C\uB4DC\uBC31"},phonemeHunt:{title:"\uC74C\uC6B4 \uCC3E\uAE30",desc:"\uD2B9\uC815 \uC74C\uC6B4(\uBC1C\uC74C)\uC744 \uD3EC\uD568\uD55C \uB2E8\uC5B4\uB97C \uCC3E\uC544\uB0B4\uB294 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC74C\uC6B4 \uD544\uD130, \uD78C\uD2B8 \uAE30\uB2A5"}},za={lead:`\uC544\uC774\uD574\uBE0C\uB294 \uC18C\uB9AC\uB97C \uD1B5\uD574
2
2
  \uC2E0\uB8B0\uB97C \uC313\uACE0
3
- \uD68C\uBCF5\uC744 \uB3D5\uC2B5\uB2C8\uB2E4.`,site:{title:"\uC0AC\uC774\uD2B8",malgwi:"\uB9D0\uADC0",soundDirection:"\uC18C\uB9AC\uBC29\uD5A5\uC131\uC2DC\uC2A4\uD15C",vrSoundDirection:"VR\uC18C\uB9AC\uBC29\uD5A5\uC131\uC2DC\uC2A4\uD15C",hearingTest:"\uCCAD\uB825\uD14C\uC2A4\uD2B8 \uD504\uB85C"},sns:{title:"SNS",naverBlog:"\uB124\uC774\uBC84 \uBE14\uB85C\uADF8",kakao:"KAKAO Talk \uC624\uD508\uCC44\uD305"},policy:{title:"\uC815\uCC45",terms:"\uC774\uC6A9\uC57D\uAD00",privacy:"\uAC1C\uC778\uC815\uBCF4 \uCC98\uB9AC\uBC29\uCE68"},ceo:"\uB300\uD45C",address:"\uC8FC\uC18C",support:"\uACE0\uAC1D\uC13C\uD130",ceoName:"\uD55C\uC9C0\uD61C",addressValue:"\uAC15\uC6D0\uB3C4 \uCD98\uCC9C\uC2DC \uC2DC\uCCAD\uAE38 32 \uD574\uCC2C\uBE4C\uB529 3\uCE35 302\uD638"},qa={trainingPhone:{topic:"\uD143\uBC2D\uAC00\uAFB8\uAE30",prev:"\uC774\uC804",next:"\uB2E4\uC74C",speed:"\uBE60\uB974\uAE30 3",noiseType:"\uC640\uAE00\uC640\uAE00",settings:"\uC124\uC815",start:{caption:"\uC544\uB798 \uD50C\uB808\uC774(\u25B6) \uBC84\uD2BC\uC744 \uB20C\uB7EC \uBB38\uC7A5\uC744 \uC798 \uB4E4\uC5B4\uBCF4\uC138\uC694. \uC798 \uB4E4\uC73C\uC2E0 \uB4A4 \uBB38\uC7A5\uC744 \uD655\uC778\uD558\uC138\uC694."},feedback:{caption:"\uC798 \uD0A4\uC6B4 \uBAA8\uC885\uC744 \uD143\uBC2D\uC5D0 \uC2EC\uACE0 \uBE44\uB2D0\uC744 \uC798 \uB36E\uC5B4 \uC90D\uB2C8\uB2E4."},done:{heardWell:"\uC798 \uB4E4\uB9B0 \uBB38\uC7A5",listenAgain:"\uD55C \uBC88 \uB354 \uB4E3\uAE30"}}},Ja={timeHM:"{{h}}\uC2DC {{m}}\uBD84",timeH:"{{h}}\uC2DC"},Qa={options:"\uD6C8\uB828 \uC635\uC158",difficulty:"\uB09C\uC774\uB3C4",exclude:"\uC81C\uC678",chosung:"\uCD08\uC131",excludeOptions:{none:"\uC5C6\uC74C",noImage:"\uC774\uBBF8\uC9C0 \uC5C6\uC74C"}},Za={answer:"\uC815\uB2F5",distractor:"\uC624\uB2F5"},Xa={phaseWordDownload:"\uB2E8\uC5B4 \uB370\uC774\uD130 \uB2E4\uC6B4\uB85C\uB4DC",phaseImageCheck:"\uC774\uBBF8\uC9C0 \uD655\uC778",phasePairAnalysis:"\uB2E8\uC5B4\uC30D \uBD84\uC11D",downloadingCount:"{{n}}\uAC1C \uB2E4\uC6B4\uB85C\uB4DC \uC911",checkingPage:"{{page}}\uD398\uC774\uC9C0 \uBAA9\uB85D \uD655\uC778 \uC911",imageCount:"{{done}} / {{total}}\uAC1C"},eu={clearAriaLabel:"\uC785\uB825\uAC12 \uC9C0\uC6B0\uAE30"},tu={ariaLabel:"\uC120\uD0DD \uD0ED"},nu={ariaLabel:"\uD0ED"},ou={dragPrompt:"\uD30C\uC77C\uC744 \uC774\uACF3\uC5D0 \uB4DC\uB798\uADF8\uD558\uC5EC \uC5C5\uB85C\uB4DC",browseButton:"\uD30C\uC77C \uC120\uD0DD",removeAriaLabel:"{{name}} \uC81C\uAC70"},ru={ariaLabel:"\uC0AC\uC6A9\uC790 \uC544\uBC14\uD0C0"},au={relativeDay:{today:"\uC624\uB298",yesterday:"\uC5B4\uC81C",daysAgo:"{{n}}\uC77C \uC804"},reason:{notLoggedIn:"\uB85C\uADF8\uC778\uC774 \uD544\uC694\uD569\uB2C8\uB2E4."},list:{title:"\uBC1B\uC740 \uC219\uC81C"},status:{expired:"\uB9CC\uB8CC\uB428",done:"\uC644\uB8CC {{count}}\uD68C \xB7 {{date}}",notDone:"\uBBF8\uC644\uB8CC"}},uu={weekly:{title:"\uC8FC\uAC04 \uD6C8\uB828 \uD604\uD669",daily:"\uC624\uB298\uC758 \uB4E3\uAE30",crossword:"\uAC00\uB85C\uC138\uB85C"},homework:{title:"\uC219\uC81C \uC9C4\uD589\uD604\uD669",totalRate:"\uC804\uCCB4 \uC644\uB8CC\uC728",count:"\uC804\uCCB4",done:"\uC644\uB8CC",remaining:"\uBBF8\uC644\uB8CC"},today:{tooltipTotal:"\uC804\uCCB4",tooltipDone:"\uC644\uB8CC"},filter:{countSuffix:" \uD6C8\uB828"},time:{countLabel:"{{n}}\uD68C \uD6C8\uB828",empty:"\uD6C8\uB828 \uAE30\uB85D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},daily:{title:"\uC624\uB298\uC758 \uB4E3\uAE30 \uAE30\uB85D",empty:"\uC644\uB8CC\uD55C \uD68C\uCC28\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},crossword:{title:"\uAC00\uB85C\uC138\uB85C\uD034\uC988",empty:"\uC644\uB8CC\uD55C \uB808\uBCA8\uC774 \uC5C6\uC2B5\uB2C8\uB2E4"},visit:{title:"\uBC29\uBB38 \uC5F0\uB3D9 \uAE30\uB85D"},detail:"\uC0C1\uC138\uBCF4\uAE30",trainingType:{LISTEN_IN_NOISE:"\uC18C\uC74C \uD558 \uBB38\uC7A5",SHORT_STORY:"\uC9E7\uC740 \uC774\uC57C\uAE30",LONG_STORY:"\uAE34 \uC774\uC57C\uAE30",ORDERING_SENTENCE:"\uBB38\uC7A5 \uC21C\uC11C\uD654"}},iu={publish:{descPlaceholder:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0 \uD45C\uC2DC\uD560 \uD55C \uC904 \uC124\uBA85 (\uC120\uD0DD)"},import:"\uB0B4 \uD6C8\uB828\uC5D0 \uAC00\uC838\uC624\uAE30",publisher:"\uAC8C\uC2DC\uC790",time:{justNow:"\uBC29\uAE08 \uC804",minutesAgo:"{{n}}\uBD84 \uC804",hoursAgo:"{{n}}\uC2DC\uAC04 \uC804",daysAgo:"{{n}}\uC77C \uC804",weeksAgo:"{{n}}\uC8FC \uC804",monthsAgo:"{{n}}\uAC1C\uC6D4 \uC804",yearsAgo:"{{n}}\uB144 \uC804"},badge:{shared:"\uB9D0\uADC0\uC790\uB8CC\uC2E4"}},lu={manage:{unit:"\uAC74"}},su={cancelLabel:"\uCDE8\uC18C"},cu={steps:"\uC9C4\uD589 \uB2E8\uACC4 {{current}} / {{total}}"},du={panelTitle:"\uD6C8\uB828 \uC624\uB2F5",viewItems:"\uBB38\uD56D",viewTypes:"\uC720\uD615",colPending:"\uB0A8\uC740 \uAC83",colTrend:"\uBCC0\uD654",colRuns:"\uD310",unitItem:"\uAC1C",skippedOnly:"\uC61B \uAE30\uB85D {{n}}\uAC74\uC740 \uBB34\uC5C7\uC744 \uD47C \uAC83\uC778\uC9C0 \uC548 \uB0A8\uC544 \uC788\uC5B4 \uC148\uC5D0\uC11C \uBE90\uC2B5\uB2C8\uB2E4.",summaryLabel:"\uC313\uC778 \uAE30\uB85D",summaryValue:"{{items}}\uBB38\uD56D \xB7 \uC544\uC9C1 \uBABB \uC7A1\uC740 \uAC83 {{pending}}\uAC1C",nextLabel:"\uB2E4\uC74C\uC5D0 \uBCFC \uAC83",nextCount:"{{count}}\uAC1C",nextCountCapped:"{{total}}\uAC1C \uC911 {{shown}}\uAC1C",picked:"\u2192 {{what}}",typeClear:"\uB2E4 \uC7A1\uC558\uC5B4\uC694",typePending:"{{total}}\uAC1C \uC911 {{pending}}\uAC1C \uB0A8\uC74C",flat:"\uBCC0\uD654 \uC5C6\uC74C",runs:"{{count}}\uD310",avgDuration:"\uD3C9\uADE0 {{sec}}\uCD08"},Cu={resetColumns:"\uCE78 \uB108\uBE44 \uCD08\uAE30\uD654"},gu={panelTitle:"\uB2E8\uC5B4\uD45C \uCC44\uC810",viewWords:"\uB0B1\uB9D0",viewTables:"\uD45C",colLatest:"\uB9C8\uC9C0\uB9C9",colTrend:"\uBCC0\uD654",unitTime:"\uD68C",summaryLabel:"\uC313\uC778 \uCC44\uC810",summaryValue:"{{times}}\uD68C \xB7 \uB0B1\uB9D0 {{words}}\uAC1C",nextLabel:"\uB2E4\uC74C\uC5D0 \uBCFC \uAC83",nextCount:"{{count}}\uAC1C",allClear:"\uC9C0\uB09C\uBC88\uC5D0 \uBAA8\uB450 \uB9DE\uD614\uC2B5\uB2C8\uB2E4.",times:"{{count}}\uD68C",flat:"\uBCC0\uD654 \uC5C6\uC74C",recentLabel:"\uCD5C\uADFC \uCC44\uC810",nextCountCapped:"{{total}}\uAC1C \uC911 {{shown}}\uAC1C"},fu={ariaLabel:"\uBC30\uB108",dotAriaLabel:"{{count}}\uAC1C \uC911 {{index}}\uBC88\uC9F8 \uBC30\uB108"},mu={selectYearMonth:"\uC5F0\uC6D4 \uC120\uD0DD",chooseDate:"\uB0A0\uC9DC \uC120\uD0DD"},pu={previewRegion:"\uBCF4\uACE0\uC11C \uBBF8\uB9AC\uBCF4\uAE30 \u2014 \uC88C\uC6B0\uB85C \uAD74\uB824 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4"},hu={description:"\uC124\uBA85",textbox:"\uBCF8\uBB38",training:"\uD6C8\uB828 \uC548\uB0B4",menu:"\uBA54\uB274"},yu={devNone:"\uBC1C\uB2EC \uC790\uB8CC \uC5C6\uC74C",place:{labial:"\uC591\uC21C\uC74C",alveolar:"\uCE58\uC870\uC74C",palatal:"\uACBD\uAD6C\uAC1C\uC74C",velar:"\uC5F0\uAD6C\uAC1C\uC74C",glottal:"\uC131\uBB38\uC74C"}},bu={clearSelection:"\uC120\uD0DD \uD574\uC81C"},Su={showResult:"{{type}} \uACB0\uACFC\uBCF4\uAE30"},wu={selected:"\uC120\uD0DD\uB428",remove:"\uC81C\uAC70",exclude:"\uC81C\uC678",nthSelected:"{{n}}\uBC88\uC9F8 \uC120\uD0DD"},Eu={loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026"},Au={state:{active:"\uC18C\uB9AC \uB098\uB294 \uC911",played:"\uB4E4\uC74C",correct:"\uC815\uB2F5",wrong:"\uC624\uB2F5"}},vu={ariaLabel:"\uC774\uB3D9 \uACBD\uB85C"},Bu={empty:"\uB4F1\uB85D\uB41C \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},Du={main:"\uBA54\uC778 \uADF8\uB77C\uB514\uC5B8\uD2B8",soft:"\uC18C\uD504\uD2B8",sub:"\uC11C\uBE0C \uCEEC\uB7EC",deep:"\uB525 \uADF8\uB77C\uB514\uC5B8\uD2B8",softSub:"\uC18C\uD504\uD2B8 \uC11C\uBE0C",warm:"\uC6DC(\uAC15\uC870)",dark:"\uB2E4\uD06C",radial:"\uBC29\uC0AC\uD615 \uADF8\uB77C\uB514\uC5B8\uD2B8",diagonal:"\uB300\uAC01\uC120 \uD328\uD134",dots:"\uB3C4\uD2B8 \uD328\uD134",outline:"\uC544\uC6C3\uB77C\uC778",success:"\uC131\uACF5/\uC644\uB8CC",naver:"\uB124\uC774\uBC84 \uBE14\uB85C\uADF8 \uC548\uB0B4",instagram:"\uC778\uC2A4\uD0C0\uADF8\uB7A8 \uC548\uB0B4"},Tu={common:Ca,calendar:ga,passCard:fa,searchField:ma,rating:pa,colorPicker:ha,dropdown:ya,accordion:ba,header:Sa,nav:wa,settings:Ea,usage:Aa,account:va,help:Ba,training:Da,trainingSettings:Ta,customers:Na,payment:_a,coupons:La,visits:Oa,company:Ra,trainingType:Pa,myWordTraining:Ma,myWordTable:Ia,keyWords:ka,wordTable:xa,wordSearch:ja,wordPrint:Fa,topic:$a,accessLinkManager:Ha,login:Ga,trainingPlanRun:Va,device:Wa,manager:Ya,wordPairs:Ka,game:Ua,footer:za,landing:qa,date:Ja,trainingSetPage:Qa,wordTrainingPreview:Za,wordData:Xa,textField:eu,segmentedControl:tu,tabs:nu,fileUpload:ou,avatar:ru,myHomework:au,trainingStatus:uu,store:iu,homework:lu,inquiry:su,progress:cu,trainingMiss:du,table:Cu,wordScore:gu,topBanner:fu,datePicker:mu,report:pu,tooltip:hu,phonemeProfile:yu,bulkBar:bu,debug:Su,badge:wu,loader:Eu,soundCompass:Au,breadcrumb:vu,board:Bu,promoBannerBg:Du},Nu={statusFilter:"Filter by status",pageSizeSelect:"Items per page",selectedCount_one:"{{count}} selected",selectedCount_other:"{{count}} selected",moreFor:"More options for {{name}}",cancel:"Cancel",info:"Info",errorState:{message:"Couldn't load this.",retry:"Try again"},save:"Save",confirm:"Confirm",close:"Close",back:"Back",emptyTrainingName:"Training name is empty.",remove:"Remove",image:"Image",delete:"Delete",reset:"Reset",update:"Update",download:"Download",search:"Search",empty:"No data.",yes:"Yes",no:"No",all:"All",none:"None",days_one:"{{count}} day",days_other:"{{count}} days",loadMore:"Load More",retry:"Try Again",prevPage:"Previous page",nextPage:"Next page",play:"Play",pause:"Pause",playPause:"Play / Pause",replay:"Replay",subscription:"Subscription",done:"Done",failed:"Failed",continue:"Continue",notification:"Notice",emptyList:"No items",menu:"Menu",resetSelection:"Reset Selection",pageSizeLabel:"Show {{n}}",totalCountPrefix:"Total: ",totalCountSuffix:"",expand:"Expand",collapse:"Collapse",popup:"Popup",more:"More",codeBlock:"Code block",totalPrefix:"",copyCode:"Copy code",copied:"Copied",col:{problem:"Question"},phonetics:{place:{labial:"Bilabial",alveolar:"Alveolar",palatal:"Palatal",velar:"Velar",glottal:"Glottal"},vowel:{frontHigh:"Front high vowel",backHighUnrounded:"Back high unrounded vowel",backHighRounded:"Back high rounded vowel",frontMid:"Front mid vowel",backMidUnrounded:"Back mid unrounded vowel",backMidRounded:"Back mid rounded vowel",low:"Low vowel"},glide:{j:"j-glide",w:"w-glide",velar:"\u0270-glide"}},unknownError:"Unknown error",networkError:"The network connection is unstable. Check your connection and try again."},_u={rangeSelect:"Select period",dow:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],yearMonth:"{{month}}/{{year}}",prevMonth:"Previous month",addOnDate:"Add a visit on {{date}}",nextMonth:"Next month",prevWeek:"Previous week",nextWeek:"Next week",legend:{visited:"Visited",scheduled:"Scheduled",noVisit:"No Show"},periodSelect:"Period unit"},Lu={planSuffix:"Plan",labeledPlan:"{{label}} Plan",couponCode:"Pass Code",specialLabel:"Open Special",unitDay:"d",unitYear:"yr",remainingDay:"{{n}}d left",remainingHour:"{{n}}h left",remainingMinute:"{{n}}m left",remainingSecond:"{{n}}s left",menu:{use:"Activate",refund:"Refund",delete:"Delete"}},Ou={clearAriaLabel:"Clear search"},Ru={starLabel:"Select star {{n}}",valueLabel:"{{value}} out of {{max}}",groupLabel:"Rating"},Pu={selected:"selected"},Mu={placeholder:"Select"},Iu={collapse:"Collapse",expand:"Expand"},ku={biArea:"BI area",biSymbol:"BI symbol",logoMalgwi:"Malgwi logo",logoManager:"Malgwi Manager logo",menuOpen:"Open menu",utilMenu:"Utility menu",menuClose:"Close menu"},xu={mainMenu:"Main menu",bottomNav:"Bottom navigation",goToManager:"Go to Malgwi Manager",goToMalgwi:"Go to Malgwi",modeLabelManager:"Malgwi Manager",modeLabelMalgwi:"Malgwi",training:"Training",settings:"Settings",notifications:"Notifications",account:"Account",help:"Help",debug:"Debug",coupons:"Coupons",topic:"By Topic",trainingType:"By Training Type",wordPairs:"Word Pairs",wordSearch:"Word Search",wordTable:"Word Table Creator",company:"Company Info",more:"More",moreMenu:"More menu",badgeLabel:"{{label}}, {{count}}"},ju={language:{training:{label:"Training Language",sub:"Language used for training words and speech"}},notifications:{title:"Notifications"},display:{fontSize:{small:"Small",large:"Large"}},cache:{title:"Cache Management",confirmMessage:"Delete cache ({{size}}). Do you want to continue?",delete:"Delete",deleting:"Deleting",cleared:"Cache cleared successfully.",group:{wordData:{label:"Word Data",sub:"Word list and version info"},pairIndex:{label:"Pair Index",sub:"Onset\xB7vowel\xB7coda minimal pair analysis cache"},imageCache:{label:"Image Cache",sub:"Word image existence check results"},trainingRecord:{label:"Training Record",sub:"Daily training progress and streak"}}},button:{save:"Save Settings"},popup:{clear:{confirm:"Reset"},update:{confirm:"Update"},cache:{title:"Delete {{label}}",message:"Delete {{label}} ({{size}}). Do you want to continue?"}},saved:"\u2713 Saved",account:{title:"Account",delete:{sub:"You can restore your account within 30 days of withdrawal."}}},Fu={addButton:"Add Subscription",couponButton:"Enter Coupon",active:{infoTitle:"Subscription Info",refund:"Request Refund",startDate:"Start Date",endDate:"End Date",remaining:"Remaining"},pending:{title:"Pending",empty:"No pending subscriptions."},loading:"Loading\u2026",segment:{personal:"Malgwi",org:"Malgwi Manager"},org:{title:"Current Plan",disc:"Subscription plan in use by your organization.",empty:"No organization plan registered.",fallbackTitle:"Organization Plan",startDate:"Start Date",endDate:"End Date",remaining:"Remaining",duration:"Duration"}},$u={profile:{planSuffix:"",plan:"Plan"},basicInfo:{name:{placeholder:"John Doe"}},security:{title:"Security",password:{label:"Password",currentRequired:"Enter your current password.",newRequired:"Enter a new password.",mismatch:"The new passwords do not match.",changed:"Your password has been changed."},twoFactor:{label:"Two-Factor Authentication",sub:"Strengthen your account security"}}},Hu={guide:{faq:{title:"FAQ",desc:"View all frequently asked questions"}}},Gu={settings:"Settings",start:{title:"Start Word Training",description:"Select a training type below to begin"},difficulty:{tooltip:"The easiest difficulty is 'Random', the hardest is 'Initial Consonant Difference'."},contrast:{label:"Contrast",type:"Contrast Type",count:"Contrast Count",n:"{{n}}"},filter:{random:"Random",trainOnset:"Onset",trainVowel:"Vowel",trainCoda:"Coda",phonemeGroup:"Training phonemes",noLimit:"Any",codaExclude:"Exclude",gradeLabel:"Grade",excludeImageInfo:"Only words with images: keeps only results with a registered word image.",sameStructureInfo:"Only same phoneme structure: keeps only pairs where the correct and wrong answers share the same syllable structure (length, batchim, etc.).",selectSection:"Select",excludeImage:"Only words with images",sameStructure:"Only same phoneme structure"},noQuestions:"No questions available.",countQuestions:"{{n}} questions",countSentences:"{{n}} sentences",comingSoon:"Coming Soon",nextQuestion:"Next",noiseRatioTitle:"Noise Ratio",noiseRatioValue:"{{ratio}}\xD7",noiseTypeTitle:"Noise Type",playVolumeTitle:"Volume",playSpeedTitle:"Speed",meter:{sentence:"Playback",noise:"Noise",toggle:"Show Audio Meter"},viewResult:"View Results",problemNotice:"Problem {{n}}.",trainingSettingsTitle:"Training Settings",sentencePreview:"Sentence Preview",notHeard:"Didn't hear it.",heardWell:"Heard it well.",confirmTitle:"Check the sentence and select whether you heard it.",noSoundWaveform:"Waveform is not shown for sound-comparison questions.",noise:{level:{none:"None",weak:"Weak",medium:"Medium",strong:"Strong",veryStrong:"Very Strong"},type:{none:"None",default:"Default",street:"Street",buzz:"Buzzing",restaurant:"Restaurant"}},listenTitle:"Please listen to the sentence.",listenButton:"Listen",playSound:"Play Sound",playAll:"Play All",selectInOrder:"Select the cards in the order you heard.",stop:"Stop",preview:"Preview",next:"Next",completed:"Completed",selected:"Selected",nthSelected:"Selection {{n}}",fontSizeMin:"Font size is at the minimum.",fontSizeMax:"Font size is at the maximum.",fontSizeDecrease:"Decrease font size",fontSizeIncrease:"Increase font size",toggleBackground:"Toggle background",cardInstructions:"Look at the word card, listen to the sound, and check it.",noCards:"No cards.",audioFetchError:"Failed to load the sound source.",ttsUnavailable:"Speech playback isn't available on this device.",selectConfirm:"Look at the question and select the answer.",orderListDefault:"Arrange the sentences in the order you heard.",result:{pendingDone:"Results are still being calculated, so you can't finish yet.",eyebrow:"Training Complete",title:"You've finished all the training!",scoreAria:"{{correct}} / {{total}} questions",elapsed:"Time Elapsed",summary:"You heard {{correct}} item(s) correctly.",tableAriaLabel:"Per-question judgement",colJudge:"Judgement",colAnswerSelected:"Answer \xB7 Selected",colAnswer:"Answer",colSelected:"Selected",heardWell:"Heard well",notHeard:"Didn't hear",notJudged:"Not judged",replay:"Replay",done:"Done",viewResult:"View Results",noContent:"(No content)"},up:"Move up",down:"Move down",prev:"Previous",listenLabel:"Listen",sourcePlay:"Play source {{n}}",listen:"Listen",audioStatus:{idle:"Idle",resolving:"Resolving\u2026",checking_exists:"Checking file\u2026",getting_signed_url:"Getting URL\u2026",downloading:"Downloading\u2026",measuring_duration:"Measuring length\u2026",ready:"Ready",error:"Error"}},Vu={totalCount:" training bundles",sort:{customers:"Customers"},copyLink:"Copy Link",removeLink:"Remove Link",linkRemoved:"Link removed.",linkSaveFirst:"Please save the training bundle first.",linkSaveFirstHint:"You can only create a shared link from a saved training bundle.",linkCopySelect:"Copy blocked \u2014 link selected. Press Ctrl/\u2318+C to copy.",nameRequired:"Please enter a training bundle name.",itemRequired:"Please add at least one training item.",randomAdd:"Random Add",menu:{publish:"Post to Store",duplicate:"Duplicate Training Bundle",edit:"Edit Training Bundle",move:"Move Group",rename:"Rename"},itemCount:"Number of Items",renameGroup:"Rename Group"},Wu={totalCount:" customers",loadError:"Failed to load list",basicInfo:{editTooltip:"Edit"},member:{placeholder:"Email or phone",link:"Link",linking:"Linking\u2026"},device:{title:"Hearing Devices",addTooltip:"Add New",addButton:"Add device",listTooltip:"View List",listTitle:" Device List",historyEmpty:"No device history registered",wearing:" in use",notRegistered:"Not registered",unit:"",wearingNow:"In use",wear:"Wear",unwear:"Remove",wornSince:"Since {{date}}",release:"Release",historyTitle:"Hearing device history"},schedule:{title:"Upcoming Visits",addTooltip:"Add Schedule",listTooltip:"View All",empty:"No upcoming visits",registerTitle:" Register Schedule",memoPlaceholder:"Enter a memo for this visit."},visitHistory:{title:"Visit History",addTooltip:"Add Visit",empty:"No visit history yet",popupTitle:" Visit History",registerTitle:" Register Visit"},moreItems:"more",viewAll:"View All",visits:{title:"Visits"},trainingRecord:{title:"Customer Training Records"},status:{trainingSubtitle:"Training Status"},detail:{session:{completedFmt:"Done {{done}}/{{total}} \xB7 {{duration}}"},visitSuffix:" visits"},homework:{active:"Active",copied:"Link copied.",copy:"Copy Link",inactive:"Inactive",title:"Homework Progress"},duration:{minSec:"{{m}}m {{s}}s",min:"{{m}}m",sec:"{{s}}s"}},Yu={plan:{recommendedFor:"Recommended for",features:"Key Features",freePrice:"Free",contact:"Contact Us",tierFallback:"Plan",openPromo:"Launch offer"},products:{mgrEnterprise:{tier:{price:"Contact us"}}}},Ku={title:"Coupons",subtitle:"Enter a coupon code or view your coupons",input:{label:"Coupon code",placeholder:"Enter coupon code"},applyButton:"Apply",error:{invalid:"Invalid coupon code.",alreadyUsed:"This coupon has already been used."},success:{applied:'"{{name}}" coupon applied.'},section:{owned:"My Coupons"},status:{used:"Used",available:"Available"}},Uu={unitVisit:"",periodAll:"All",showN:"Show {{n}}"},zu={subtitle:"Manage company and business information",editButton:"Edit Info",basicInfo:{title:"Basic Info"},contactInfo:{title:"Contact Info"}},qu={title:"Training by Type",subtitle:"Select the training type you want",listenInNoise:{title:"Sentence Listening in Noise",desc:"Train sentence comprehension in various noise environments."},shortStory:{title:"Short Story Listening",desc:"Listen to short stories and understand the content."},longStory:{title:"Long Story Listening",desc:"Focus on listening to long stories and grasp the content."},orderingSentence:{title:"Sentence Ordering",desc:"Arrange heard sentences in the correct order."},SAME_SOUND_PICK:{label:"Listen & Pick Same Sound",sub:"Pick the word card that matches what you heard."},SAME_OR_DIFF:{label:"Same or Different?",sub:"Decide whether the two sounds are the same or different."},HEAR_AND_PICK_SAME:{label:"Hear & Match Word",sub:"Pick the word card that matches the sound you heard."},HEAR_AND_PICK_INCLUDED:{label:"Find Word Containing Sound",sub:"Pick the word card that contains the syllable you heard."},STARTS_WITH_SAME_SOUND:{label:"Find Word Starting with Same Sound",sub:"Pick a word that starts with the same sound as what you heard."},LISTEN_AND_REMEMBER_ORDER:{label:"Listen & Recall Order",sub:"Select the cards in the order you heard the three words."},MERGE_2_SYLLABLES:{label:"Combine 2 Syllables",sub:"What word do two syllables make?"},MERGE_3_SYLLABLES:{label:"Combine 3 Syllables",sub:"What word do three syllables make?"},MERGE_2_PHONEMES:{label:"Combine 2 Phonemes",sub:"What sound do two phonemes make?"},MERGE_3_PHONEMES:{label:"Combine 3 Phonemes",sub:"What sound do three phonemes make?"},DROP_1_FROM_2SYLL:{label:"Drop 1 Syllable from 2-Syllable",sub:"What sound remains when you remove a syllable from a 2-syllable word?"},DROP_1_FROM_3SYLL:{label:"Drop 1 Syllable from 3-Syllable",sub:"What sound remains when you remove a syllable from a 3-syllable word?"},DROP_PART_FROM_COMPOUND:{label:"Drop Part of Compound Word",sub:"What word remains when you remove part of a compound word?"},DROP_FINAL_CONSONANT_FROM_1SYLL:{label:"Drop Final Consonant",sub:"What sound remains when you remove the final consonant?"},REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:{label:"Drop Consonant",sub:"What sound remains when you remove the consonant?"},CHANGE_1_SYLL_IN_2SYLL:{label:"Change 1 Syllable (2-Syllable)",sub:"Change one syllable in a 2-syllable word to make a new word."},CHANGE_1_SYLL_IN_3SYLL:{label:"Change 1 Syllable (3-Syllable)",sub:"Change one syllable in a 3-syllable word to make a new word."},CHANGE_1_PHONEME_IN_1SYLL:{label:"Change 1 Phoneme (1-Syllable)",sub:"Change one phoneme in a 1-syllable word to make a new sound."},CHANGE_1_PHONEME_IN_2SYLL:{label:"Change 1 Phoneme (2-Syllable)",sub:"Change one phoneme in a 2-syllable word to make a new word."}},Ju={comingSoon:"Word training is coming soon."},Qu={colName:"Table Name",open:"Open",countSuffix:" tables",addCard:"Add Word Table Card",cardsEmpty:"No word table cards created yet.",menu:{publishStore:"Post to Training Store",unpublishStore:"Remove from Training Store"},newBadge:"Newly created",tab:{cards:"Word Table Cards",tables:"Word Tables"},publishedBadge:"Published",sharedBadge:"Shared"},Zu={title:"Key Words",empty:"No key words available."},Xu={defaultName:"Word Table",title:"Word Table Builder",subtitle:"Set columns and add words to build a table.",filterTitle:"Table Settings",filter:{composition:"Composition",image:"Image",word:"Word",standardPron:"Standard Pronunciation",colloquialPron:"Colloquial Pronunciation",paperOrientation:"Paper Orientation",landscape:"Landscape",portrait:"Portrait",columns:"Columns",column:"{{count}} col",itemsPerPageWord:"Words per page",itemsPerPagePair:"Pairs per page",itemsPerPageOption:"{{count}}",pageIndicator:"{{current}} / {{total}}",pageNumber:"Page Number",pageNumberLeft:"Left",pageNumberCenter:"Center",pageNumberRight:"Right",border:"Border",cutLine:"Cut Line",show:"Show",hide:"Hide",dotted:"Dotted",corner:"Corner"},addWord:"Add",wordInfo:"Info for {{word}}",emptyItems:"Please add at least one word.",load:"Load",openNewWindow:"Open in New Window",saveButton:"Save",saveAsNewButton:"Save as New",print:"Print",popupBlocked:"Popup was blocked. Please allow popups in your browser settings.",printFileNameSingle:"Word Table",printFileNamePair:"Contrast Pair Table",save:{title:"Save Word Table",nameLabel:"Name",desc:"Enter a name for the word table.",placeholder:"Enter a title for this word table.",descriptionLabel:"Description",descriptionPlaceholder:"Enter a description for this word table.",duplicateName:"This name is already in use.",nameRequired:"Please enter a table name.",autoFillHint:" (Press Tab or Space to autofill)",copyName:"{{name}} (copy)"},loadTable:{title:"Load Saved Word Table",empty:"No saved word tables.",loadButton:"Load",itemCount:"{{count}} words",deleteAriaLabel:"Delete {{name}}",sort:{newest:"Newest",oldest:"Oldest",name:"Name",count:"Word Count"},view:{grid:"Grid View",list:"List View"}},groupDeleteMessage:"Word tables in this group will be moved to 'No Group'.",groupNamePlaceholder:"Group name",store:{badge:"Training Store"},card:{sub:"Word Table Card",empty:"No word tables in this card."},toast:{renameError:"Failed to rename",saveError:"Failed to save",deleteError:"Failed to delete",duplicateError:"Failed to duplicate",saveSuccess:"Word table saved."},scoring:{o:"{{word}} correct",triangle:"{{word}} partial",x:"{{word}} incorrect",button:"Score",pickTitle:"Who are you scoring?",pickSubtitle:"Choose the customer who trained with \u201C{{name}}\u201D.",pickSearch:"Search by name or phone",pickEmpty:"No customers registered.",pickNoMatch:"No matching customer.",pickAgain:"Choose another",scoringFor:"Scoring {{name}}",none:"Tap a cell to mark \u25CB \xB7 \u25B3 \xB7 \u2715.",tally:"{{marked}} scored \xB7 \u25CB {{o}} \xB7 \u25B3 {{triangle}} \xB7 \u2715 {{x}} \xB7 {{rate}}%",save:"Save score",saved:"Saved {{count}} marks for {{name}}.",reviewTitle:"Create a review table?",reviewMessage:"Builds a new table from the {{count}} cells {{name}} got wrong or partial. Correct ones are left out.",reviewConfirm:"Create review table",reviewDescription:"Cells marked wrong or partial in \u201C{{name}}\u201D \u2014 {{count}} of them.",reviewCreated:"Created \u201C{{name}}\u201D \u2014 {{count}} cells.",discardTitle:"Discard this scoring?",discardMessage:"You marked {{count}} cells but have not saved. Leaving discards them.",discardConfirm:"Discard and leave"},info:{grade:"Grade: {{n}}",syllables:"Syllables: {{n}}",pos:"Part of speech: {{v}}",wordType:"Type: {{v}}"},pos:{noun:"Noun",verb:"Verb",adjective:"Adjective",adverb:"Adverb",numeral:"Numeral",determiner:"Determiner",interjection:"Interjection",particle:"Particle",affix:"Affix",dependentNoun:"Dependent noun",pronoun:"Pronoun",auxVerb:"Auxiliary verb",auxAdjective:"Auxiliary adjective"},reorder:{moved:"Moved to position {{n}} of {{total}}",handle:"Reorder {{word}} (Alt + arrow keys)",hint:"Alt + \u2190 \u2192 to reorder"}},ei={editBanner:{message:"Saving will update the word table you're editing."},filterTitle:"Word Search Settings",filter:{positionAny:"Any",positionHead:"Start",positionMid:"Middle",positionTail:"End",difficulty:"Grade",grade:"Grade {{n}}",syllables:"Syllables",syllable:"{{n}} Syll.",syllable5plus:"5+ Syllables",partOfSpeech:"Part of Speech",pos:{noun:"Noun/Numeral",verb:"Verb/Adjective",modifier:"Adverb/Determiner"},wordType:"Word Type",type:{native:"Native Korean",sino:"Sino-Korean",foreign:"Loanword",mixed:"Hybrid"},exclude:"Exclude",excludeNoImage:"No Image"},searchButton:"Search",resultUnit:"words",remaining:"{{count}} remaining",resultDisc:"Select {{unit}}. Up to {{max}} items. ({{selected}}/{{max}})",resultTitlePrefix:"",resultTitleSuffix:" {{unit}} found.",emptyResult:"No results found.",groupCount:"{{count}}",sort:{aria:"Sort",match:"Best Match",ganada:"A\u2013Z \u2191",ganadaDesc:"A\u2013Z \u2193",syllable:"Syllables \u2191",syllableDesc:"Syllables \u2193",grade:"Grade \u2191",gradeDesc:"Grade \u2193",original:"Original order"},pageSize:"Show {{count}}",pageSizeAria:"Page size",popup:{title:"Select a word for cell {{n}}"}},ti={clearAllSelection:"Clear All Selections",divLine:"Contrast Line",removePair:"Remove pair",removeWord:"Remove word"},ni={title:"By Topic",subtitle:"Select a topic to start listening training",noiseTitle:"Sentence Listening in Noise",shortStoryTitle:"Short Story Listening",FOOD:"Food",HLTH:"Health",WETH:"Weather",PRSN:"People",KRCT:"Korean Culture",STRY:"Stories",LOCA:"Locations",SOAR:"Society & Arts",NTSC:"Nature & Science",SPRT:"Sports",sub:{TRKRFD:"Traditional Korean Food",MDKRFD:"Modern Korean Food",WRLDFD:"World Cuisine",MTRFRT:"Ingredients & Fruits",GEFDKL:"Food Facts",HTETHB:"Healthy Eating",DISILL:"Diseases",EXCISE:"Exercise",GEHTKL:"Health Facts",GESSKL:"Seasons",SNWRAN:"Snow & Rain",WTHFCT:"Weather Forecast",GEWTKL:"Weather Facts",JODYPS:"Joseon Dynasty",MDKRPS:"Modern Korea",THKDPS:"Three Kingdoms",WRLART:"World Artists",WRLPSN:"World Figures",KRLANG:"Korean Language",TRPLCT:"Traditional Games",HERITG:"Heritage",EVTFES:"Events & Festivals",GECTKL:"General Knowledge",FRYTAL:"Fairy Tales",AMZING:"Amazing Stories",DAYSTR:"Everyday Stories",KRLDMK:"Korean Landmarks",SELNMK:"Seoul Landmarks",WRDTRB:"World Travel",NAVIGT:"Navigation",KRSOCI:"Korea",ECONEW:"Economy & News",GENART:"Arts",GELFKL:"Life Tips",ANIMAL:"Animals",PLANTS:"Plants",ETHPLT:"Earth",TOLELC:"Tools & Electronics",GESCKL:"Science Facts",INVDSP:"Individual Sports",MARART:"Martial Arts",TEAMSP:"Team Sports",FOOTBL:"Soccer",GESPKL:"Sports Facts"}},oi={maxUses:"Max uses (leave blank for unlimited)",redirect:"Redirect URL (leave blank for app home)",creating:"Creating\u2026",create:"Create link",created:"\u2713 Link created",copied:"Copied!",copy:"Copy",loading:"Loading\u2026",empty:"No links created yet.",uses:"Used {{count}} times",expiresAt:"Expires: {{date}}",createdAt:"Created: {{date}}",confirmDelete:"Delete this link?",deactivate:"Deactivate",delete:"Delete",status:{active:"Active",expired:"Expired",inactive:"Inactive"}},ri={passwordPlaceholder:"Enter password"},ai={direction:{left:"L",right:"R",label:"Side"},wornDate:"Date Worn",deviceType:"Device Type",brand:"Brand",fitType:"Fit Type",productName:"Product Name",validationError:{brandAndProduct:"Please enter brand and product name."},addNew:"Add New Device",selectFromList:"Select from List",removeDevice:"Remove",type:{hearingAid:"Hearing Aid",cochlearImplant:"Cochlear Implant"}},ui={stat:{totalCustomers:"Total Customers",monthlyVisits:"This Month's Visits"},chart:{visitDetail:"Visit Details",trainingDetail:"Training Details",weekly:"Weekly",daily:"Daily",periodMonth:"Month",periodWeek:"Week",weeklyPrefix:"Weekly",monthlyPrefix:"Monthly",visit:"Visits",reservation:"Reservations",trainingDone:"Completed",trainingInProgress:"In Progress",weekRange:"{{start}}\u2013{{end}}",week:"W{{n}}"},subscriptionStatus:{active:"{{pct}}% Active",expired:"{{pct}}% Expired",unused:"{{pct}}% Unused"}},ii={editBanner:{message:"Saving will update the contrast pair table you're editing."},phonemeSelect:{title:"Phoneme Selection",vs:"vs"},caution:"Caution",mode:{include:"Phoneme Include",pick:"Phoneme Contrast",contrast:"Specify Contrast",infoTitle:"Contrast Mode",infoInclude:"Include \u2014 finds words containing all selected phonemes, plus their minimal pair.",infoPick:"Contrast \u2014 matches only if the selected phoneme is the actual point of difference in the pair.",infoContrast:"Specify Contrast \u2014 directly choose phonemes for the base word and the contrasting word to find pairs."},count:"{{n}}",input:{char:"Choose Letters",pron:"Choose Sound",infoTitle:"Input mode",infoChar:"Choose Letters \u2014 finds words by the selected phonemes (spelling), then finds their standard-pronunciation contrast pairs.",infoPron:"Choose Sound \u2014 finds standard-pronunciation contrast pairs directly from the selected phonemes."},phonemeN:"Syllable {{n}}",phonemeSingleLabel:"Syllable",phonemeContrastSingleLabel:"Contrast Syllable",ordinals:["First","Second","Third","Fourth"],phonemeOrdinalLabel:"{{ordinal}} Syllable",phonemeContrastOrdinalLabel:"Contrast {{ordinal}} Syllable",composition:"Answer Word Composition",syllableCount:"Syllables",syllableN:"{{n}} syll.",syllableNPlus:"{{n}}+ syll.",onset:"Onset",vowel:"Vowel",coda:"Coda",filter:{searchOptionsTitle:"Contrast Settings",searchModeLabel:"Contrast Mode",countLabel:"Input Syllable Count",inputModeLabel:"Input mode",phonemeOrder:"Input Syllable Position",phonemeOrderInfo:["Match: the pair must differ at exactly the same position (syllable).","Any: the differing position doesn't matter."],orderAny:"Any",orderMatch:"Match",difficultyInfo:"Reflects the National Institute of Korean Language's basic vocabulary grade.",selectLabel:"Select",onlyHasImage:"Only words with images",onlySameStructure:"Only same phoneme structure"},searchLabel:{error:"Failed to load data",loading:"Loading\u2026"},confirmMessage:"The word table with {{count}} selected {{unit}} will be lost.",resetOptions:"Reset Options",phonemeContrast:"Contrast Syllable {{n}}",infoNotes:["The preview character is an example of the selected phoneme combination. The actual search covers all words containing the phoneme.","Initial consonant '\u3147' cannot be selected. \u3147 at the start of a word is effectively silent.","If only onset and coda are selected, the vowel is automatically displayed as '\u314F'.","Increasing the phoneme count searches for minimal pairs between each phoneme."]},li={sentenceTyping:{roundCount:"{{rounds}} rounds \xB7 {{timeLimit}}s each"},wordDefense:{me:"Me"},dictation:{title:"Dictation",desc:"Practice writing down exactly what you hear.",comingSoon:"Coming soon: audio playback, input field, answer comparison"},result:{heading:"Level {{number}} Answer",retry:"Try Again"},common:{accuracy:"{{pct}}% accuracy"},soundMatch:{title:"Sound Match",desc:"Quickly match words or sentences that share the same sound.",comingSoon:"Coming soon: play button, timer, score tracking"},orderSequence:{title:"Sentence Ordering",desc:"Arrange scattered sentence fragments in the correct order.",comingSoon:"Coming soon: sentence sets, ordering interface"},speedListen:{title:"Speed Listen",desc:"A challenge game to count the number of words in a sentence within a time limit.",comingSoon:"Coming soon: time limit, scoreboard"},noiseChallenge:{title:"Noise Challenge",desc:"Practice distinguishing sentences amid background noise.",comingSoon:"Coming soon: various noise levels, score tracking"},fastListen:{title:"Fast Listen",desc:"Listen to short sentences at speed and select the key word.",comingSoon:"Coming soon: speed by difficulty, timer"},shadowing:{title:"Shadowing",desc:"Practice pronunciation and intonation by repeating sentences aloud.",comingSoon:"Coming soon: playback, recording, comparison feedback"},phonemeHunt:{title:"Phoneme Hunt",desc:"Find words that contain a specific phoneme (sound).",comingSoon:"Coming soon: phoneme filter, hint feature"}},si={lead:`IHAB builds trust
3
+ \uD68C\uBCF5\uC744 \uB3D5\uC2B5\uB2C8\uB2E4.`,site:{title:"\uC0AC\uC774\uD2B8",malgwi:"\uB9D0\uADC0",soundDirection:"\uC18C\uB9AC\uBC29\uD5A5\uC131\uC2DC\uC2A4\uD15C",vrSoundDirection:"VR\uC18C\uB9AC\uBC29\uD5A5\uC131\uC2DC\uC2A4\uD15C",hearingTest:"\uCCAD\uB825\uD14C\uC2A4\uD2B8 \uD504\uB85C"},sns:{title:"SNS",naverBlog:"\uB124\uC774\uBC84 \uBE14\uB85C\uADF8",kakao:"KAKAO Talk \uC624\uD508\uCC44\uD305"},policy:{title:"\uC815\uCC45",terms:"\uC774\uC6A9\uC57D\uAD00",privacy:"\uAC1C\uC778\uC815\uBCF4 \uCC98\uB9AC\uBC29\uCE68"},ceo:"\uB300\uD45C",address:"\uC8FC\uC18C",support:"\uACE0\uAC1D\uC13C\uD130",ceoName:"\uD55C\uC9C0\uD61C",addressValue:"\uAC15\uC6D0\uB3C4 \uCD98\uCC9C\uC2DC \uC2DC\uCCAD\uAE38 32 \uD574\uCC2C\uBE4C\uB529 3\uCE35 302\uD638"},qa={trainingPhone:{topic:"\uD143\uBC2D\uAC00\uAFB8\uAE30",prev:"\uC774\uC804",next:"\uB2E4\uC74C",speed:"\uBE60\uB974\uAE30 3",noiseType:"\uC640\uAE00\uC640\uAE00",settings:"\uC124\uC815",start:{caption:"\uC544\uB798 \uD50C\uB808\uC774(\u25B6) \uBC84\uD2BC\uC744 \uB20C\uB7EC \uBB38\uC7A5\uC744 \uC798 \uB4E4\uC5B4\uBCF4\uC138\uC694. \uC798 \uB4E4\uC73C\uC2E0 \uB4A4 \uBB38\uC7A5\uC744 \uD655\uC778\uD558\uC138\uC694."},feedback:{caption:"\uC798 \uD0A4\uC6B4 \uBAA8\uC885\uC744 \uD143\uBC2D\uC5D0 \uC2EC\uACE0 \uBE44\uB2D0\uC744 \uC798 \uB36E\uC5B4 \uC90D\uB2C8\uB2E4."},done:{heardWell:"\uC798 \uB4E4\uB9B0 \uBB38\uC7A5",listenAgain:"\uD55C \uBC88 \uB354 \uB4E3\uAE30"}}},Ja={timeHM:"{{h}}\uC2DC {{m}}\uBD84",timeH:"{{h}}\uC2DC"},Qa={options:"\uD6C8\uB828 \uC635\uC158",difficulty:"\uB09C\uC774\uB3C4",exclude:"\uC81C\uC678",chosung:"\uCD08\uC131",excludeOptions:{none:"\uC5C6\uC74C",noImage:"\uC774\uBBF8\uC9C0 \uC5C6\uC74C"}},Za={answer:"\uC815\uB2F5",distractor:"\uC624\uB2F5"},Xa={phaseWordDownload:"\uB2E8\uC5B4 \uB370\uC774\uD130 \uB2E4\uC6B4\uB85C\uB4DC",phaseImageCheck:"\uC774\uBBF8\uC9C0 \uD655\uC778",phasePairAnalysis:"\uB2E8\uC5B4\uC30D \uBD84\uC11D",downloadingCount:"{{n}}\uAC1C \uB2E4\uC6B4\uB85C\uB4DC \uC911",checkingPage:"{{page}}\uD398\uC774\uC9C0 \uBAA9\uB85D \uD655\uC778 \uC911",imageCount:"{{done}} / {{total}}\uAC1C"},eu={clearAriaLabel:"\uC785\uB825\uAC12 \uC9C0\uC6B0\uAE30"},tu={ariaLabel:"\uC120\uD0DD \uD0ED"},nu={ariaLabel:"\uD0ED"},ou={dragPrompt:"\uD30C\uC77C\uC744 \uC774\uACF3\uC5D0 \uB4DC\uB798\uADF8\uD558\uC5EC \uC5C5\uB85C\uB4DC",browseButton:"\uD30C\uC77C \uC120\uD0DD",removeAriaLabel:"{{name}} \uC81C\uAC70"},ru={ariaLabel:"\uC0AC\uC6A9\uC790 \uC544\uBC14\uD0C0"},au={relativeDay:{today:"\uC624\uB298",yesterday:"\uC5B4\uC81C",daysAgo:"{{n}}\uC77C \uC804"},reason:{notLoggedIn:"\uB85C\uADF8\uC778\uC774 \uD544\uC694\uD569\uB2C8\uB2E4."},list:{title:"\uBC1B\uC740 \uC219\uC81C"},status:{expired:"\uB9CC\uB8CC\uB428",done:"\uC644\uB8CC {{count}}\uD68C \xB7 {{date}}",notDone:"\uBBF8\uC644\uB8CC"}},uu={weekly:{title:"\uC8FC\uAC04 \uD6C8\uB828 \uD604\uD669",daily:"\uC624\uB298\uC758 \uB4E3\uAE30",crossword:"\uAC00\uB85C\uC138\uB85C"},homework:{title:"\uC219\uC81C \uC9C4\uD589\uD604\uD669",totalRate:"\uC804\uCCB4 \uC644\uB8CC\uC728",count:"\uC804\uCCB4",done:"\uC644\uB8CC",remaining:"\uBBF8\uC644\uB8CC"},today:{tooltipTotal:"\uC804\uCCB4",tooltipDone:"\uC644\uB8CC"},filter:{countSuffix:" \uD6C8\uB828"},time:{countLabel:"{{n}}\uD68C \uD6C8\uB828",empty:"\uD6C8\uB828 \uAE30\uB85D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},daily:{title:"\uC624\uB298\uC758 \uB4E3\uAE30 \uAE30\uB85D",empty:"\uC644\uB8CC\uD55C \uD68C\uCC28\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},crossword:{title:"\uAC00\uB85C\uC138\uB85C\uD034\uC988",empty:"\uC644\uB8CC\uD55C \uB808\uBCA8\uC774 \uC5C6\uC2B5\uB2C8\uB2E4"},visit:{title:"\uBC29\uBB38 \uC5F0\uB3D9 \uAE30\uB85D"},detail:"\uC0C1\uC138\uBCF4\uAE30",trainingType:{LISTEN_IN_NOISE:"\uC18C\uC74C \uD558 \uBB38\uC7A5",SHORT_STORY:"\uC9E7\uC740 \uC774\uC57C\uAE30",LONG_STORY:"\uAE34 \uC774\uC57C\uAE30",ORDERING_SENTENCE:"\uBB38\uC7A5 \uC21C\uC11C\uD654"}},iu={publish:{descPlaceholder:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0 \uD45C\uC2DC\uD560 \uD55C \uC904 \uC124\uBA85 (\uC120\uD0DD)"},import:"\uB0B4 \uD6C8\uB828\uC5D0 \uAC00\uC838\uC624\uAE30",publisher:"\uAC8C\uC2DC\uC790",time:{justNow:"\uBC29\uAE08 \uC804",minutesAgo:"{{n}}\uBD84 \uC804",hoursAgo:"{{n}}\uC2DC\uAC04 \uC804",daysAgo:"{{n}}\uC77C \uC804",weeksAgo:"{{n}}\uC8FC \uC804",monthsAgo:"{{n}}\uAC1C\uC6D4 \uC804",yearsAgo:"{{n}}\uB144 \uC804"},badge:{shared:"\uB9D0\uADC0\uC790\uB8CC\uC2E4"}},lu={manage:{unit:"\uAC74"}},su={cancelLabel:"\uCDE8\uC18C"},cu={steps:"\uC9C4\uD589 \uB2E8\uACC4 {{current}} / {{total}}"},du={panelTitle:"\uD6C8\uB828 \uC624\uB2F5",viewItems:"\uBB38\uD56D",viewTypes:"\uC720\uD615",colPending:"\uB0A8\uC740 \uAC83",colTrend:"\uBCC0\uD654",colRuns:"\uD310",unitItem:"\uAC1C",skippedOnly:"\uC61B \uAE30\uB85D {{n}}\uAC74\uC740 \uBB34\uC5C7\uC744 \uD47C \uAC83\uC778\uC9C0 \uC548 \uB0A8\uC544 \uC788\uC5B4 \uC148\uC5D0\uC11C \uBE90\uC2B5\uB2C8\uB2E4.",summaryLabel:"\uC313\uC778 \uAE30\uB85D",summaryValue:"{{items}}\uBB38\uD56D \xB7 \uC544\uC9C1 \uBABB \uC7A1\uC740 \uAC83 {{pending}}\uAC1C",nextLabel:"\uB2E4\uC74C\uC5D0 \uBCFC \uAC83",nextCount:"{{count}}\uAC1C",nextCountCapped:"{{total}}\uAC1C \uC911 {{shown}}\uAC1C",picked:"\u2192 {{what}}",typeClear:"\uB2E4 \uC7A1\uC558\uC5B4\uC694",typePending:"{{total}}\uAC1C \uC911 {{pending}}\uAC1C \uB0A8\uC74C",flat:"\uBCC0\uD654 \uC5C6\uC74C",runs:"{{count}}\uD310",avgDuration:"\uD3C9\uADE0 {{sec}}\uCD08"},Cu={resetColumns:"\uCE78 \uB108\uBE44 \uCD08\uAE30\uD654"},gu={panelTitle:"\uB2E8\uC5B4\uD45C \uCC44\uC810",viewWords:"\uB0B1\uB9D0",viewTables:"\uD45C",colLatest:"\uB9C8\uC9C0\uB9C9",colTrend:"\uBCC0\uD654",unitTime:"\uD68C",summaryLabel:"\uC313\uC778 \uCC44\uC810",summaryValue:"{{times}}\uD68C \xB7 \uB0B1\uB9D0 {{words}}\uAC1C",nextLabel:"\uB2E4\uC74C\uC5D0 \uBCFC \uAC83",nextCount:"{{count}}\uAC1C",allClear:"\uC9C0\uB09C\uBC88\uC5D0 \uBAA8\uB450 \uB9DE\uD614\uC2B5\uB2C8\uB2E4.",times:"{{count}}\uD68C",flat:"\uBCC0\uD654 \uC5C6\uC74C",recentLabel:"\uCD5C\uADFC \uCC44\uC810",nextCountCapped:"{{total}}\uAC1C \uC911 {{shown}}\uAC1C"},fu={ariaLabel:"\uBC30\uB108",dotAriaLabel:"{{count}}\uAC1C \uC911 {{index}}\uBC88\uC9F8 \uBC30\uB108"},mu={selectYearMonth:"\uC5F0\uC6D4 \uC120\uD0DD",chooseDate:"\uB0A0\uC9DC \uC120\uD0DD"},pu={previewRegion:"\uBCF4\uACE0\uC11C \uBBF8\uB9AC\uBCF4\uAE30 \u2014 \uC88C\uC6B0\uB85C \uAD74\uB824 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4"},hu={description:"\uC124\uBA85",textbox:"\uBCF8\uBB38",training:"\uD6C8\uB828 \uC548\uB0B4",menu:"\uBA54\uB274"},yu={devNone:"\uBC1C\uB2EC \uC790\uB8CC \uC5C6\uC74C",place:{labial:"\uC591\uC21C\uC74C",alveolar:"\uCE58\uC870\uC74C",palatal:"\uACBD\uAD6C\uAC1C\uC74C",velar:"\uC5F0\uAD6C\uAC1C\uC74C",glottal:"\uC131\uBB38\uC74C"}},bu={clearSelection:"\uC120\uD0DD \uD574\uC81C"},Su={showResult:"{{type}} \uACB0\uACFC\uBCF4\uAE30"},wu={selected:"\uC120\uD0DD\uB428",remove:"\uC81C\uAC70",exclude:"\uC81C\uC678",nthSelected:"{{n}}\uBC88\uC9F8 \uC120\uD0DD"},Eu={loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026"},Au={state:{active:"\uC18C\uB9AC \uB098\uB294 \uC911",played:"\uB4E4\uC74C",correct:"\uC815\uB2F5",wrong:"\uC624\uB2F5"}},vu={ariaLabel:"\uC774\uB3D9 \uACBD\uB85C"},Bu={empty:"\uB4F1\uB85D\uB41C \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},Du={main:"\uBA54\uC778 \uADF8\uB77C\uB514\uC5B8\uD2B8",soft:"\uC18C\uD504\uD2B8",sub:"\uC11C\uBE0C \uCEEC\uB7EC",deep:"\uB525 \uADF8\uB77C\uB514\uC5B8\uD2B8",softSub:"\uC18C\uD504\uD2B8 \uC11C\uBE0C",warm:"\uC6DC(\uAC15\uC870)",dark:"\uB2E4\uD06C",radial:"\uBC29\uC0AC\uD615 \uADF8\uB77C\uB514\uC5B8\uD2B8",diagonal:"\uB300\uAC01\uC120 \uD328\uD134",dots:"\uB3C4\uD2B8 \uD328\uD134",outline:"\uC544\uC6C3\uB77C\uC778",success:"\uC131\uACF5/\uC644\uB8CC",naver:"\uB124\uC774\uBC84 \uBE14\uB85C\uADF8 \uC548\uB0B4",instagram:"\uC778\uC2A4\uD0C0\uADF8\uB7A8 \uC548\uB0B4"},Tu={common:Ca,calendar:ga,passCard:fa,searchField:ma,rating:pa,colorPicker:ha,dropdown:ya,accordion:ba,header:Sa,nav:wa,settings:Ea,usage:Aa,account:va,help:Ba,training:Da,trainingSettings:Ta,customers:Na,payment:_a,coupons:La,visits:Oa,company:Ra,trainingType:Pa,myWordTraining:Ma,myWordTable:Ia,keyWords:ka,wordTable:xa,wordSearch:ja,wordPrint:Fa,topic:$a,accessLinkManager:Ha,login:Ga,trainingPlanRun:Va,device:Wa,manager:Ya,wordPairs:Ka,game:Ua,footer:za,landing:qa,date:Ja,trainingSetPage:Qa,wordTrainingPreview:Za,wordData:Xa,textField:eu,segmentedControl:tu,tabs:nu,fileUpload:ou,avatar:ru,myHomework:au,trainingStatus:uu,store:iu,homework:lu,inquiry:su,progress:cu,trainingMiss:du,table:Cu,wordScore:gu,topBanner:fu,datePicker:mu,report:pu,tooltip:hu,phonemeProfile:yu,bulkBar:bu,debug:Su,badge:wu,loader:Eu,soundCompass:Au,breadcrumb:vu,board:Bu,promoBannerBg:Du},Nu={statusFilter:"Filter by status",pageSizeSelect:"Items per page",selectedCount_one:"{{count}} selected",selectedCount_other:"{{count}} selected",moreFor:"More options for {{name}}",cancel:"Cancel",info:"Info",errorState:{message:"Couldn't load this.",retry:"Try again"},save:"Save",confirm:"Confirm",close:"Close",back:"Back",emptyTrainingName:"Training name is empty.",remove:"Remove",image:"Image",delete:"Delete",reset:"Reset",update:"Update",download:"Download",search:"Search",empty:"No data.",yes:"Yes",no:"No",all:"All",none:"None",days_one:"{{count}} day",days_other:"{{count}} days",loadMore:"Load More",retry:"Try Again",prevPage:"Previous page",nextPage:"Next page",play:"Play",pause:"Pause",playPause:"Play / Pause",replay:"Replay",subscription:"Subscription",done:"Done",failed:"Failed",continue:"Continue",notification:"Notice",emptyList:"No items",menu:"Menu",resetSelection:"Reset Selection",pageSizeLabel:"Show {{n}}",totalCountPrefix:"Total: ",totalCountSuffix:"",expand:"Expand",collapse:"Collapse",popup:"Popup",more:"More",codeBlock:"Code block",totalPrefix:"",copyCode:"Copy code",copied:"Copied",col:{problem:"Question"},phonetics:{place:{labial:"Bilabial",alveolar:"Alveolar",palatal:"Palatal",velar:"Velar",glottal:"Glottal"},vowel:{frontHigh:"Front high vowel",backHighUnrounded:"Back high unrounded vowel",backHighRounded:"Back high rounded vowel",frontMid:"Front mid vowel",backMidUnrounded:"Back mid unrounded vowel",backMidRounded:"Back mid rounded vowel",low:"Low vowel"},glide:{j:"j-glide",w:"w-glide",velar:"\u0270-glide"}},unknownError:"Unknown error",networkError:"The network connection is unstable. Check your connection and try again."},_u={rangeSelect:"Select period",dow:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],yearMonth:"{{month}}/{{year}}",prevMonth:"Previous month",addOnDate:"Add a visit on {{date}}",nextMonth:"Next month",prevWeek:"Previous week",nextWeek:"Next week",legend:{visited:"Visited",scheduled:"Scheduled",noVisit:"No Show"},periodSelect:"Period unit",visitCount:"{{count}} visit(s)"},Lu={planSuffix:"Plan",labeledPlan:"{{label}} Plan",couponCode:"Pass Code",specialLabel:"Open Special",unitDay:"d",unitYear:"yr",remainingDay:"{{n}}d left",remainingHour:"{{n}}h left",remainingMinute:"{{n}}m left",remainingSecond:"{{n}}s left",menu:{use:"Activate",refund:"Refund",delete:"Delete"}},Ou={clearAriaLabel:"Clear search"},Ru={starLabel:"Select star {{n}}",valueLabel:"{{value}} out of {{max}}",groupLabel:"Rating"},Pu={selected:"selected"},Mu={placeholder:"Select"},Iu={collapse:"Collapse",expand:"Expand"},ku={biArea:"BI area",biSymbol:"BI symbol",logoMalgwi:"Malgwi logo",logoManager:"Malgwi Manager logo",menuOpen:"Open menu",utilMenu:"Utility menu",menuClose:"Close menu"},xu={mainMenu:"Main menu",bottomNav:"Bottom navigation",goToManager:"Go to Malgwi Manager",goToMalgwi:"Go to Malgwi",modeLabelManager:"Malgwi Manager",modeLabelMalgwi:"Malgwi",training:"Training",settings:"Settings",notifications:"Notifications",account:"Account",help:"Help",feedback:"Report a bug",debug:"Debug",coupons:"Coupons",topic:"By Topic",trainingType:"By Training Type",wordPairs:"Word Pairs",wordSearch:"Word Search",wordTable:"Word Table Creator",company:"Company Info",more:"More",moreMenu:"More menu",badgeLabel:"{{label}}, {{count}}"},ju={language:{training:{label:"Training Language",sub:"Language used for training words and speech"}},notifications:{title:"Notifications"},display:{fontSize:{small:"Small",large:"Large"}},cache:{title:"Cache Management",confirmMessage:"Delete cache ({{size}}). Do you want to continue?",delete:"Delete",deleting:"Deleting",cleared:"Cache cleared successfully.",group:{wordData:{label:"Word Data",sub:"Word list and version info"},pairIndex:{label:"Pair Index",sub:"Onset\xB7vowel\xB7coda minimal pair analysis cache"},imageCache:{label:"Image Cache",sub:"Word image existence check results"},trainingRecord:{label:"Training Record",sub:"Daily training progress and streak"}}},button:{save:"Save Settings"},popup:{clear:{confirm:"Reset"},update:{confirm:"Update"},cache:{title:"Delete {{label}}",message:"Delete {{label}} ({{size}}). Do you want to continue?"}},saved:"\u2713 Saved",account:{title:"Account",delete:{sub:"You can restore your account within 30 days of withdrawal."}}},Fu={addButton:"Add Subscription",couponButton:"Enter Coupon",active:{infoTitle:"Subscription Info",refund:"Request Refund",startDate:"Start Date",endDate:"End Date",remaining:"Remaining"},pending:{title:"Pending",empty:"No pending subscriptions."},loading:"Loading\u2026",segment:{personal:"Malgwi",org:"Malgwi Manager"},org:{title:"Current Plan",disc:"Subscription plan in use by your organization.",empty:"No organization plan registered.",fallbackTitle:"Organization Plan",startDate:"Start Date",endDate:"End Date",remaining:"Remaining",duration:"Duration"}},$u={profile:{planSuffix:"",plan:"Plan"},basicInfo:{name:{placeholder:"John Doe"}},security:{title:"Security",password:{label:"Password",currentRequired:"Enter your current password.",newRequired:"Enter a new password.",mismatch:"The new passwords do not match.",changed:"Your password has been changed."},twoFactor:{label:"Two-Factor Authentication",sub:"Strengthen your account security"}}},Hu={guide:{faq:{title:"FAQ",desc:"View all frequently asked questions"}}},Gu={settings:"Settings",start:{title:"Start Word Training",description:"Select a training type below to begin"},difficulty:{tooltip:"The easiest difficulty is 'Random', the hardest is 'Initial Consonant Difference'."},contrast:{label:"Contrast",type:"Contrast Type",count:"Contrast Count",n:"{{n}}"},filter:{random:"Random",trainOnset:"Onset",trainVowel:"Vowel",trainCoda:"Coda",phonemeGroup:"Training phonemes",noLimit:"Any",codaExclude:"Exclude",gradeLabel:"Grade",excludeImageInfo:"Only words with images: keeps only results with a registered word image.",sameStructureInfo:"Only same phoneme structure: keeps only pairs where the correct and wrong answers share the same syllable structure (length, batchim, etc.).",selectSection:"Select",excludeImage:"Only words with images",sameStructure:"Only same phoneme structure"},noQuestions:"No questions available.",countQuestions:"{{n}} questions",countSentences:"{{n}} sentences",comingSoon:"Coming Soon",nextQuestion:"Next",noiseRatioTitle:"Noise Ratio",noiseRatioValue:"{{ratio}}\xD7",noiseTypeTitle:"Noise Type",playVolumeTitle:"Volume",playSpeedTitle:"Speed",meter:{sentence:"Playback",noise:"Noise",toggle:"Show Audio Meter"},viewResult:"View Results",problemNotice:"Problem {{n}}.",trainingSettingsTitle:"Training Settings",sentencePreview:"Sentence Preview",notHeard:"Didn't hear it.",heardWell:"Heard it well.",confirmTitle:"Check the sentence and select whether you heard it.",noSoundWaveform:"Waveform is not shown for sound-comparison questions.",noise:{level:{none:"None",weak:"Weak",medium:"Medium",strong:"Strong",veryStrong:"Very Strong"},type:{none:"None",default:"Default",street:"Street",buzz:"Buzzing",restaurant:"Restaurant"}},listenTitle:"Please listen to the sentence.",listenButton:"Listen",playSound:"Play Sound",playAll:"Play All",selectInOrder:"Select the cards in the order you heard.",stop:"Stop",preview:"Preview",next:"Next",completed:"Completed",selected:"Selected",nthSelected:"Selection {{n}}",fontSizeMin:"Font size is at the minimum.",fontSizeMax:"Font size is at the maximum.",fontSizeDecrease:"Decrease font size",fontSizeIncrease:"Increase font size",toggleBackground:"Toggle background",cardInstructions:"Look at the word card, listen to the sound, and check it.",noCards:"No cards.",audioFetchError:"Failed to load the sound source.",ttsUnavailable:"Speech playback isn't available on this device.",selectConfirm:"Look at the question and select the answer.",orderListDefault:"Arrange the sentences in the order you heard.",result:{pendingDone:"Results are still being calculated, so you can't finish yet.",eyebrow:"Training Complete",title:"You've finished all the training!",scoreAria:"{{correct}} / {{total}} questions",elapsed:"Time Elapsed",summary:"You heard {{correct}} item(s) correctly.",tableAriaLabel:"Per-question judgement",colJudge:"Judgement",colAnswerSelected:"Answer \xB7 Selected",colAnswer:"Answer",colSelected:"Selected",heardWell:"Heard well",notHeard:"Didn't hear",notJudged:"Not judged",replay:"Replay",done:"Done",viewResult:"View Results",noContent:"(No content)"},up:"Move up",down:"Move down",prev:"Previous",listenLabel:"Listen",sourcePlay:"Play source {{n}}",listen:"Listen",audioStatus:{idle:"Idle",resolving:"Resolving\u2026",checking_exists:"Checking file\u2026",getting_signed_url:"Getting URL\u2026",downloading:"Downloading\u2026",measuring_duration:"Measuring length\u2026",ready:"Ready",error:"Error"}},Vu={totalCount:" training bundles",sort:{customers:"Customers"},copyLink:"Copy Link",removeLink:"Remove Link",linkRemoved:"Link removed.",linkSaveFirst:"Please save the training bundle first.",linkSaveFirstHint:"You can only create a shared link from a saved training bundle.",linkCopySelect:"Copy blocked \u2014 link selected. Press Ctrl/\u2318+C to copy.",nameRequired:"Please enter a training bundle name.",itemRequired:"Please add at least one training item.",randomAdd:"Random Add",menu:{publish:"Post to Store",duplicate:"Duplicate Training Bundle",edit:"Edit Training Bundle",move:"Move Group",rename:"Rename"},itemCount:"Number of Items",renameGroup:"Rename Group"},Wu={totalCount:" customers",loadError:"Failed to load list",basicInfo:{editTooltip:"Edit"},member:{placeholder:"Email or phone",link:"Link",linking:"Linking\u2026"},device:{title:"Hearing Devices",addTooltip:"Add New",addButton:"Add device",listTooltip:"View List",listTitle:" Device List",historyEmpty:"No device history registered",wearing:" in use",notRegistered:"Not registered",unit:"",wearingNow:"In use",wear:"Wear",unwear:"Remove",wornSince:"Since {{date}}",release:"Release",historyTitle:"Hearing device history"},schedule:{title:"Upcoming Visits",addTooltip:"Add Schedule",listTooltip:"View All",empty:"No upcoming visits",registerTitle:" Register Schedule",memoPlaceholder:"Enter a memo for this visit."},visitHistory:{title:"Visit History",addTooltip:"Add Visit",empty:"No visit history yet",popupTitle:" Visit History",registerTitle:" Register Visit"},moreItems:"more",viewAll:"View All",visits:{title:"Visits"},trainingRecord:{title:"Customer Training Records"},status:{trainingSubtitle:"Training Status"},detail:{session:{completedFmt:"Done {{done}}/{{total}} \xB7 {{duration}}"},visitSuffix:" visits"},homework:{active:"Active",copied:"Link copied.",copy:"Copy Link",inactive:"Inactive",title:"Homework Progress"},duration:{minSec:"{{m}}m {{s}}s",min:"{{m}}m",sec:"{{s}}s"}},Yu={plan:{recommendedFor:"Recommended for",features:"Key Features",freePrice:"Free",contact:"Contact Us",tierFallback:"Plan",openPromo:"Launch offer"},products:{mgrEnterprise:{tier:{price:"Contact us"}}}},Ku={title:"Coupons",subtitle:"Enter a coupon code or view your coupons",input:{label:"Coupon code",placeholder:"Enter coupon code"},applyButton:"Apply",error:{invalid:"Invalid coupon code.",alreadyUsed:"This coupon has already been used."},success:{applied:'"{{name}}" coupon applied.'},section:{owned:"My Coupons"},status:{used:"Used",available:"Available"}},Uu={unitVisit:"",periodAll:"All",showN:"Show {{n}}"},zu={subtitle:"Manage company and business information",editButton:"Edit Info",basicInfo:{title:"Basic Info"},contactInfo:{title:"Contact Info"}},qu={title:"Training by Type",subtitle:"Select the training type you want",listenInNoise:{title:"Sentence Listening in Noise",desc:"Train sentence comprehension in various noise environments."},shortStory:{title:"Short Story Listening",desc:"Listen to short stories and understand the content."},longStory:{title:"Long Story Listening",desc:"Focus on listening to long stories and grasp the content."},orderingSentence:{title:"Sentence Ordering",desc:"Arrange heard sentences in the correct order."},SAME_SOUND_PICK:{label:"Listen & Pick Same Sound",sub:"Pick the word card that matches what you heard."},SAME_OR_DIFF:{label:"Same or Different?",sub:"Decide whether the two sounds are the same or different."},HEAR_AND_PICK_SAME:{label:"Hear & Match Word",sub:"Pick the word card that matches the sound you heard."},HEAR_AND_PICK_INCLUDED:{label:"Find Word Containing Sound",sub:"Pick the word card that contains the syllable you heard."},STARTS_WITH_SAME_SOUND:{label:"Find Word Starting with Same Sound",sub:"Pick a word that starts with the same sound as what you heard."},LISTEN_AND_REMEMBER_ORDER:{label:"Listen & Recall Order",sub:"Select the cards in the order you heard the three words."},MERGE_2_SYLLABLES:{label:"Combine 2 Syllables",sub:"What word do two syllables make?"},MERGE_3_SYLLABLES:{label:"Combine 3 Syllables",sub:"What word do three syllables make?"},MERGE_2_PHONEMES:{label:"Combine 2 Phonemes",sub:"What sound do two phonemes make?"},MERGE_3_PHONEMES:{label:"Combine 3 Phonemes",sub:"What sound do three phonemes make?"},DROP_1_FROM_2SYLL:{label:"Drop 1 Syllable from 2-Syllable",sub:"What sound remains when you remove a syllable from a 2-syllable word?"},DROP_1_FROM_3SYLL:{label:"Drop 1 Syllable from 3-Syllable",sub:"What sound remains when you remove a syllable from a 3-syllable word?"},DROP_PART_FROM_COMPOUND:{label:"Drop Part of Compound Word",sub:"What word remains when you remove part of a compound word?"},DROP_FINAL_CONSONANT_FROM_1SYLL:{label:"Drop Final Consonant",sub:"What sound remains when you remove the final consonant?"},REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:{label:"Drop Consonant",sub:"What sound remains when you remove the consonant?"},CHANGE_1_SYLL_IN_2SYLL:{label:"Change 1 Syllable (2-Syllable)",sub:"Change one syllable in a 2-syllable word to make a new word."},CHANGE_1_SYLL_IN_3SYLL:{label:"Change 1 Syllable (3-Syllable)",sub:"Change one syllable in a 3-syllable word to make a new word."},CHANGE_1_PHONEME_IN_1SYLL:{label:"Change 1 Phoneme (1-Syllable)",sub:"Change one phoneme in a 1-syllable word to make a new sound."},CHANGE_1_PHONEME_IN_2SYLL:{label:"Change 1 Phoneme (2-Syllable)",sub:"Change one phoneme in a 2-syllable word to make a new word."}},Ju={comingSoon:"Word training is coming soon."},Qu={colName:"Table Name",open:"Open",countSuffix:" tables",addCard:"Add Word Table Card",cardsEmpty:"No word table cards created yet.",menu:{publishStore:"Post to Training Store",unpublishStore:"Remove from Training Store"},newBadge:"Newly created",tab:{cards:"Word Table Cards",tables:"Word Tables"},publishedBadge:"Published",sharedBadge:"Shared"},Zu={title:"Key Words",empty:"No key words available."},Xu={defaultName:"Word Table",title:"Word Table Builder",subtitle:"Set columns and add words to build a table.",filterTitle:"Table Settings",filter:{composition:"Composition",image:"Image",word:"Word",standardPron:"Standard Pronunciation",colloquialPron:"Colloquial Pronunciation",paperOrientation:"Paper Orientation",landscape:"Landscape",portrait:"Portrait",columns:"Columns",column:"{{count}} col",itemsPerPageWord:"Words per page",itemsPerPagePair:"Pairs per page",itemsPerPageOption:"{{count}}",pageIndicator:"{{current}} / {{total}}",pageNumber:"Page Number",pageNumberLeft:"Left",pageNumberCenter:"Center",pageNumberRight:"Right",border:"Border",cutLine:"Cut Line",show:"Show",hide:"Hide",dotted:"Dotted",corner:"Corner"},addWord:"Add",wordInfo:"Info for {{word}}",emptyItems:"Please add at least one word.",load:"Load",openNewWindow:"Open in New Window",saveButton:"Save",saveAsNewButton:"Save as New",print:"Print",popupBlocked:"Popup was blocked. Please allow popups in your browser settings.",printFileNameSingle:"Word Table",printFileNamePair:"Contrast Pair Table",save:{title:"Save Word Table",nameLabel:"Name",desc:"Enter a name for the word table.",placeholder:"Enter a title for this word table.",descriptionLabel:"Description",descriptionPlaceholder:"Enter a description for this word table.",duplicateName:"This name is already in use.",nameRequired:"Please enter a table name.",autoFillHint:" (Press Tab or Space to autofill)",copyName:"{{name}} (copy)"},loadTable:{title:"Load Saved Word Table",empty:"No saved word tables.",loadButton:"Load",itemCount:"{{count}} words",deleteAriaLabel:"Delete {{name}}",sort:{newest:"Newest",oldest:"Oldest",name:"Name",count:"Word Count"},view:{grid:"Grid View",list:"List View"}},groupDeleteMessage:"Word tables in this group will be moved to 'No Group'.",groupNamePlaceholder:"Group name",store:{badge:"Training Store"},card:{sub:"Word Table Card",empty:"No word tables in this card."},toast:{renameError:"Failed to rename",saveError:"Failed to save",deleteError:"Failed to delete",duplicateError:"Failed to duplicate",saveSuccess:"Word table saved."},scoring:{o:"{{word}} correct",triangle:"{{word}} partial",x:"{{word}} incorrect",button:"Score",pickTitle:"Who are you scoring?",pickSubtitle:"Choose the customer who trained with \u201C{{name}}\u201D.",pickSearch:"Search by name or phone",pickEmpty:"No customers registered.",pickNoMatch:"No matching customer.",pickAgain:"Choose another",scoringFor:"Scoring {{name}}",none:"Tap \u25CB \xB7 \u25B3 \xB7 \u2715 under a cell to mark it. With a mouse, hover the cell to reveal them.",tally:"{{marked}} scored \xB7 \u25CB {{o}} \xB7 \u25B3 {{triangle}} \xB7 \u2715 {{x}} \xB7 {{rate}}%",save:"Save score",saved:"Saved {{count}} marks for {{name}}.",reviewTitle:"Create a review table?",reviewMessage:"Builds a new table from the {{count}} cells {{name}} got wrong or partial. Correct ones are left out.",reviewConfirm:"Create review table",reviewDescription:"Cells marked wrong or partial in \u201C{{name}}\u201D \u2014 {{count}} of them.",reviewCreated:"Created \u201C{{name}}\u201D \u2014 {{count}} cells.",discardTitle:"Discard this scoring?",discardMessage:"You marked {{count}} cells but have not saved. Leaving discards them.",discardConfirm:"Discard and leave"},info:{grade:"Grade: {{n}}",syllables:"Syllables: {{n}}",pos:"Part of speech: {{v}}",wordType:"Type: {{v}}"},pos:{noun:"Noun",verb:"Verb",adjective:"Adjective",adverb:"Adverb",numeral:"Numeral",determiner:"Determiner",interjection:"Interjection",particle:"Particle",affix:"Affix",dependentNoun:"Dependent noun",pronoun:"Pronoun",auxVerb:"Auxiliary verb",auxAdjective:"Auxiliary adjective"},reorder:{moved:"Moved to position {{n}} of {{total}}",handle:"Reorder {{word}} (Alt + arrow keys)",hint:"Alt + \u2190 \u2192 to reorder"}},ei={editBanner:{message:"Saving will update the word table you're editing."},filterTitle:"Word Search Settings",filter:{positionAny:"Any",positionHead:"Start",positionMid:"Middle",positionTail:"End",difficulty:"Grade",grade:"Grade {{n}}",syllables:"Syllables",syllable:"{{n}} Syll.",syllable5plus:"5+ Syllables",partOfSpeech:"Part of Speech",pos:{noun:"Noun/Numeral",verb:"Verb/Adjective",modifier:"Adverb/Determiner"},wordType:"Word Type",type:{native:"Native Korean",sino:"Sino-Korean",foreign:"Loanword",mixed:"Hybrid"},exclude:"Exclude",excludeNoImage:"No Image"},searchButton:"Search",resultUnit:"words",remaining:"{{count}} remaining",resultDisc:"Select {{unit}}. Up to {{max}} items. ({{selected}}/{{max}})",resultTitlePrefix:"",resultTitleSuffix:" {{unit}} found.",emptyResult:"No results found.",groupCount:"{{count}}",sort:{aria:"Sort",match:"Best Match",ganada:"A\u2013Z \u2191",ganadaDesc:"A\u2013Z \u2193",syllable:"Syllables \u2191",syllableDesc:"Syllables \u2193",grade:"Grade \u2191",gradeDesc:"Grade \u2193",original:"Original order"},pageSize:"Show {{count}}",pageSizeAria:"Page size",popup:{title:"Select a word for cell {{n}}"}},ti={clearAllSelection:"Clear All Selections",divLine:"Contrast Line",removePair:"Remove pair",removeWord:"Remove word"},ni={title:"By Topic",subtitle:"Select a topic to start listening training",noiseTitle:"Sentence Listening in Noise",shortStoryTitle:"Short Story Listening",FOOD:"Food",HLTH:"Health",WETH:"Weather",PRSN:"People",KRCT:"Korean Culture",STRY:"Stories",LOCA:"Locations",SOAR:"Society & Arts",NTSC:"Nature & Science",SPRT:"Sports",sub:{TRKRFD:"Traditional Korean Food",MDKRFD:"Modern Korean Food",WRLDFD:"World Cuisine",MTRFRT:"Ingredients & Fruits",GEFDKL:"Food Facts",HTETHB:"Healthy Eating",DISILL:"Diseases",EXCISE:"Exercise",GEHTKL:"Health Facts",GESSKL:"Seasons",SNWRAN:"Snow & Rain",WTHFCT:"Weather Forecast",GEWTKL:"Weather Facts",JODYPS:"Joseon Dynasty",MDKRPS:"Modern Korea",THKDPS:"Three Kingdoms",WRLART:"World Artists",WRLPSN:"World Figures",KRLANG:"Korean Language",TRPLCT:"Traditional Games",HERITG:"Heritage",EVTFES:"Events & Festivals",GECTKL:"General Knowledge",FRYTAL:"Fairy Tales",AMZING:"Amazing Stories",DAYSTR:"Everyday Stories",KRLDMK:"Korean Landmarks",SELNMK:"Seoul Landmarks",WRDTRB:"World Travel",NAVIGT:"Navigation",KRSOCI:"Korea",ECONEW:"Economy & News",GENART:"Arts",GELFKL:"Life Tips",ANIMAL:"Animals",PLANTS:"Plants",ETHPLT:"Earth",TOLELC:"Tools & Electronics",GESCKL:"Science Facts",INVDSP:"Individual Sports",MARART:"Martial Arts",TEAMSP:"Team Sports",FOOTBL:"Soccer",GESPKL:"Sports Facts"}},oi={maxUses:"Max uses (leave blank for unlimited)",redirect:"Redirect URL (leave blank for app home)",creating:"Creating\u2026",create:"Create link",created:"\u2713 Link created",copied:"Copied!",copy:"Copy",loading:"Loading\u2026",empty:"No links created yet.",uses:"Used {{count}} times",expiresAt:"Expires: {{date}}",createdAt:"Created: {{date}}",confirmDelete:"Delete this link?",deactivate:"Deactivate",delete:"Delete",status:{active:"Active",expired:"Expired",inactive:"Inactive"}},ri={passwordPlaceholder:"Enter password"},ai={direction:{left:"L",right:"R",label:"Side"},wornDate:"Date Worn",deviceType:"Device Type",brand:"Brand",fitType:"Fit Type",productName:"Product Name",validationError:{brandAndProduct:"Please enter brand and product name."},addNew:"Add New Device",selectFromList:"Select from List",removeDevice:"Remove",type:{hearingAid:"Hearing Aid",cochlearImplant:"Cochlear Implant"}},ui={stat:{totalCustomers:"Total Customers",monthlyVisits:"This Month's Visits"},chart:{visitDetail:"Visit Details",trainingDetail:"Training Details",weekly:"Weekly",daily:"Daily",periodMonth:"Month",periodWeek:"Week",weeklyPrefix:"Weekly",monthlyPrefix:"Monthly",visit:"Visits",reservation:"Reservations",trainingDone:"Completed",trainingInProgress:"In Progress",weekRange:"{{start}}\u2013{{end}}",week:"W{{n}}"},subscriptionStatus:{active:"{{pct}}% Active",expired:"{{pct}}% Expired",unused:"{{pct}}% Unused"}},ii={editBanner:{message:"Saving will update the contrast pair table you're editing."},phonemeSelect:{title:"Phoneme Selection",vs:"vs"},caution:"Caution",mode:{include:"Phoneme Include",pick:"Phoneme Contrast",contrast:"Specify Contrast",infoTitle:"Contrast Mode",infoInclude:"Include \u2014 finds words containing all selected phonemes, plus their minimal pair.",infoPick:"Contrast \u2014 matches only if the selected phoneme is the actual point of difference in the pair.",infoContrast:"Specify Contrast \u2014 directly choose phonemes for the base word and the contrasting word to find pairs."},count:"{{n}}",input:{char:"Choose Letters",pron:"Choose Sound",infoTitle:"Input mode",infoChar:"Choose Letters \u2014 finds words by the selected phonemes (spelling), then finds their standard-pronunciation contrast pairs.",infoPron:"Choose Sound \u2014 finds standard-pronunciation contrast pairs directly from the selected phonemes."},phonemeN:"Syllable {{n}}",phonemeSingleLabel:"Syllable",phonemeContrastSingleLabel:"Contrast Syllable",ordinals:["First","Second","Third","Fourth"],phonemeOrdinalLabel:"{{ordinal}} Syllable",phonemeContrastOrdinalLabel:"Contrast {{ordinal}} Syllable",composition:"Answer Word Composition",syllableCount:"Syllables",syllableN:"{{n}} syll.",syllableNPlus:"{{n}}+ syll.",onset:"Onset",vowel:"Vowel",coda:"Coda",filter:{searchOptionsTitle:"Contrast Settings",searchModeLabel:"Contrast Mode",countLabel:"Input Syllable Count",inputModeLabel:"Input mode",phonemeOrder:"Input Syllable Position",phonemeOrderInfo:["Match: the pair must differ at exactly the same position (syllable).","Any: the differing position doesn't matter."],orderAny:"Any",orderMatch:"Match",difficultyInfo:"Reflects the National Institute of Korean Language's basic vocabulary grade.",selectLabel:"Select",onlyHasImage:"Only words with images",onlySameStructure:"Only same phoneme structure"},searchLabel:{error:"Failed to load data",loading:"Loading\u2026"},confirmMessage:"The word table with {{count}} selected {{unit}} will be lost.",resetOptions:"Reset Options",phonemeContrast:"Contrast Syllable {{n}}",infoNotes:["The preview character is an example of the selected phoneme combination. The actual search covers all words containing the phoneme.","Initial consonant '\u3147' cannot be selected. \u3147 at the start of a word is effectively silent.","If only onset and coda are selected, the vowel is automatically displayed as '\u314F'.","Increasing the phoneme count searches for minimal pairs between each phoneme."]},li={sentenceTyping:{roundCount:"{{rounds}} rounds \xB7 {{timeLimit}}s each"},wordDefense:{me:"Me"},dictation:{title:"Dictation",desc:"Practice writing down exactly what you hear.",comingSoon:"Coming soon: audio playback, input field, answer comparison"},result:{heading:"Level {{number}} Answer",retry:"Try Again"},common:{accuracy:"{{pct}}% accuracy"},soundMatch:{title:"Sound Match",desc:"Quickly match words or sentences that share the same sound.",comingSoon:"Coming soon: play button, timer, score tracking"},orderSequence:{title:"Sentence Ordering",desc:"Arrange scattered sentence fragments in the correct order.",comingSoon:"Coming soon: sentence sets, ordering interface"},speedListen:{title:"Speed Listen",desc:"A challenge game to count the number of words in a sentence within a time limit.",comingSoon:"Coming soon: time limit, scoreboard"},noiseChallenge:{title:"Noise Challenge",desc:"Practice distinguishing sentences amid background noise.",comingSoon:"Coming soon: various noise levels, score tracking"},fastListen:{title:"Fast Listen",desc:"Listen to short sentences at speed and select the key word.",comingSoon:"Coming soon: speed by difficulty, timer"},shadowing:{title:"Shadowing",desc:"Practice pronunciation and intonation by repeating sentences aloud.",comingSoon:"Coming soon: playback, recording, comparison feedback"},phonemeHunt:{title:"Phoneme Hunt",desc:"Find words that contain a specific phoneme (sound).",comingSoon:"Coming soon: phoneme filter, hint feature"}},si={lead:`IHAB builds trust
4
4
  through sound
5
- and aids recovery.`,site:{title:"Site",malgwi:"Malgwi",soundDirection:"Sound Direction System",vrSoundDirection:"VR Sound Direction System",hearingTest:"Hearing Test Pro"},sns:{title:"SNS",naverBlog:"Naver Blog",kakao:"KAKAO Talk Open Chat"},policy:{title:"Policy",terms:"Terms of Service",privacy:"Privacy Policy"},ceo:"CEO",address:"Address",support:"Support",ceoName:"Ji-hye Han",addressValue:"302, 3F, Haechan Bldg, 32 Siocheong-gil, Chuncheon, Gangwon, Korea"},ci={trainingPhone:{topic:"Gardening",prev:"Prev",next:"Next",speed:"Speed 3",noiseType:"Crowd noise",settings:"Settings",start:{caption:"Press the play (\u25B6) button below and listen carefully. After listening, check the sentence."},feedback:{caption:"Plant the well-grown seedlings in the garden bed and cover them carefully with plastic film."},done:{heardWell:"Heard clearly",listenAgain:"Listen again"}}},di={timeHM:"{{hh}}:{{mm}}",timeH:"{{hh}}:{{mm}}"},Ci={options:"Training Options",difficulty:"Difficulty",exclude:"Exclude",chosung:"Initial Consonant",excludeOptions:{none:"None",noImage:"No Image"}},gi={answer:"Answer",distractor:"Distractor"},fi={phaseWordDownload:"Download Word Data",phaseImageCheck:"Check Images",phasePairAnalysis:"Analyze Word Pairs",downloadingCount:"Downloading {{n}} words",checkingPage:"Checking page {{page}} list",imageCount:"{{done}} / {{total}} items"},mi={clearAriaLabel:"Clear input"},pi={ariaLabel:"Select tab"},hi={ariaLabel:"Tabs"},yi={dragPrompt:"Drag and drop files here",browseButton:"Choose Files",removeAriaLabel:"Remove {{name}}"},bi={ariaLabel:"User avatar"},Si={relativeDay:{today:"Today",yesterday:"Yesterday",daysAgo:"{{n}}d ago"},reason:{notLoggedIn:"Login required."},list:{title:"Received Homework"},status:{expired:"Expired",done:"Done {{count}}\xD7 \xB7 {{date}}",notDone:"Not done"}},wi={weekly:{title:"Weekly Training",daily:"Daily Listening",crossword:"Crossword"},homework:{title:"Homework Progress",totalRate:"Overall rate",count:"Total",done:"Done",remaining:"Remaining"},today:{tooltipTotal:"Total",tooltipDone:"Done"},filter:{countSuffix:" sessions"},time:{countLabel:"{{n}} sessions",empty:"No training records"},daily:{title:"Today's Listening Record",empty:"No completed sessions"},crossword:{title:"Crossword Quiz",empty:"No completed levels"},visit:{title:"Linked Visit Records"},detail:"Details",trainingType:{LISTEN_IN_NOISE:"Sentence in Noise",SHORT_STORY:"Short Story",LONG_STORY:"Long Story",ORDERING_SENTENCE:"Sentence Ordering"}},Ei={import:"Add to my trainings",publisher:"Publisher",time:{justNow:"just now",minutesAgo:"{{n}}m ago",hoursAgo:"{{n}}h ago",daysAgo:"{{n}}d ago",weeksAgo:"{{n}}w ago",monthsAgo:"{{n}}mo ago",yearsAgo:"{{n}}y ago"},badge:{shared:"Store"},publish:{descPlaceholder:"One-line description for the Training Store (optional)"}},Ai={manage:{unit:"item(s)"}},vi={cancelLabel:"Cancel"},Bi={subtitle:"Select a topic to start listening practice."},Di={steps:"Step {{current}} of {{total}}"},Ti={panelTitle:"Training misses",viewItems:"Items",viewTypes:"Types",colPending:"Left",colTrend:"Change",colRuns:"Runs",unitItem:" items",skippedOnly:"{{n}} older record(s) were excluded \u2014 they do not say what was answered.",summaryLabel:"Recorded",summaryValue:"{{items}} items \xB7 {{pending}} still missed",nextLabel:"Next to work on",nextCount:"{{count}}",nextCountCapped:"{{shown}} of {{total}}",picked:"\u2192 {{what}}",typeClear:"All caught up",typePending:"{{pending}} of {{total}} left",flat:"no change",runs:"{{count}} run(s)",avgDuration:"{{sec}}s avg"},Ni={resetColumns:"Reset column widths"},_i={panelTitle:"Word table scores",viewWords:"Words",viewTables:"Tables",colLatest:"When",colTrend:"Change",unitTime:" times",summaryLabel:"Scored",summaryValue:"{{times}} times \xB7 {{words}} words",nextLabel:"Focus next",nextCount:"{{count}}",allClear:"All correct last time.",times:"{{count}}x",flat:"no change",recentLabel:"Recent scorings",nextCountCapped:"{{shown}} of {{total}}"},Li={ariaLabel:"Banner",dotAriaLabel:"Banner {{index}} of {{count}}"},Oi={selectYearMonth:"Select year and month",chooseDate:"Choose a date"},Ri={previewRegion:"Report preview \u2014 scrollable sideways"},Pi={description:"Description",textbox:"Text",training:"Training guide",menu:"Menu"},Mi={devNone:"No acquisition data",place:{labial:"Bilabial",alveolar:"Alveolar",palatal:"Palatal",velar:"Velar",glottal:"Glottal"}},Ii={clearSelection:"Clear selection"},ki={showResult:"Show {{type}} result"},xi={selected:"Selected",remove:"Remove",exclude:"Excluded",nthSelected:"Selection {{n}}"},ji={loading:"Loading"},Fi={state:{active:"playing",played:"heard",correct:"correct",wrong:"wrong"}},$i={ariaLabel:"Breadcrumb"},Hi={empty:"No items yet."},Gi={main:"Main gradient",soft:"Soft",sub:"Sub color",deep:"Deep gradient",softSub:"Soft sub",warm:"Warm (accent)",dark:"Dark",radial:"Radial gradient",diagonal:"Diagonal pattern",dots:"Dot pattern",outline:"Outline",success:"Success / done",naver:"Naver blog notice",instagram:"Instagram notice"},Vi={common:Nu,calendar:_u,passCard:Lu,searchField:Ou,rating:Ru,colorPicker:Pu,dropdown:Mu,accordion:Iu,header:ku,nav:xu,settings:ju,usage:Fu,account:$u,help:Hu,training:Gu,trainingSettings:Vu,customers:Wu,payment:Yu,coupons:Ku,visits:Uu,company:zu,trainingType:qu,myWordTraining:Ju,myWordTable:Qu,keyWords:Zu,wordTable:Xu,wordSearch:ei,wordPrint:ti,topic:ni,accessLinkManager:oi,login:ri,device:ai,manager:ui,wordPairs:ii,game:li,footer:si,landing:ci,date:di,trainingSetPage:Ci,wordTrainingPreview:gi,wordData:fi,textField:mi,segmentedControl:pi,tabs:hi,fileUpload:yi,avatar:bi,myHomework:Si,trainingStatus:wi,store:Ei,homework:Ai,inquiry:vi,trainingPlanRun:Bi,progress:Di,trainingMiss:Ti,table:Ni,wordScore:_i,topBanner:Li,datePicker:Oi,report:Ri,tooltip:Pi,phonemeProfile:Mi,bulkBar:Ii,debug:ki,badge:xi,loader:ji,soundCompass:Fi,breadcrumb:$i,board:Hi,promoBannerBg:Gi};const Wi="0.184.0",Yi=[{code:"ko",label:"\uD55C\uAD6D\uC5B4"},{code:"en",label:"English"}],Ft="ko",Ki="ihab_display_language";function Jn(){if(typeof window>"u")return Ft;try{const e=localStorage.getItem(Ki);if(e&&Yi.some(t=>t.code===e))return e}catch{}return Ft}function Qn(e){try{document.documentElement.lang=e}catch{}}ae.on("languageChanged",Qn),Qn(Jn()),ae.use(se.initReactI18next).init({resources:{ko:{translation:Tu},en:{translation:Vi}},lng:Jn(),fallbackLng:Ft,interpolation:{escapeValue:!1},react:{useSuspense:!1}});const We=["grade","syllables","pos","wordType"],Zn=["1","2","3","4"],Ui=["1","2","3","4","5+"],zi=["noun","verb","modifier"],qi=["native","sino","foreign","mixed"],Ji={grade:Zn,syllables:Ui,pos:zi,wordType:qi},Qi={noun:["\uBA85","\uC218"],verb:["\uB3D9","\uD615"],modifier:["\uBD80","\uAD00"]},Zi={native:"\uACE0\uC720",sino:"\uD55C\uC790",foreign:"\uC678\uB798",mixed:"\uD63C\uC885"},Xi={grade:["\uB09C\uC774\uB3C4 \uB4F1\uAE09"]},el={pos:{noun:["\uCCB4\uC5B8(\uBA85\uC0AC,\uC218\uC0AC)"],verb:["\uC6A9\uC5B8(\uB3D9\uC0AC,\uD615\uC6A9\uC0AC)"],modifier:["\uC218\uC2DD\uC5B8(\uBD80\uC0AC,\uAD00\uD615\uC0AC)"]}},$t=new Map;try{ae.store?.on?.("added",()=>$t.clear())}catch{}function ft(e){const t=$t.get(e);if(t)return t;const n=ae.getFixedT(e),o={\uC139\uC158:{grade:n("wordSearch.filter.difficulty","\uB4F1\uAE09"),syllables:n("wordSearch.filter.syllables","\uC74C\uC808 \uC218"),pos:n("wordSearch.filter.partOfSpeech","\uD488\uC0AC"),wordType:n("wordSearch.filter.wordType","\uC720\uD615")},\uAC12:{grade:Object.fromEntries(Zn.map(r=>[r,n("wordSearch.filter.grade",{n:Number(r),defaultValue:`${r}\uB4F1\uAE09`})])),syllables:{...Object.fromEntries(["1","2","3","4"].map(r=>[r,n("wordSearch.filter.syllable",{n:Number(r),defaultValue:`${r}\uC74C\uC808`})])),"5+":n("wordSearch.filter.syllable5plus","5\uC74C\uC808 \uC774\uC0C1")},pos:{noun:n("wordSearch.filter.pos.noun","\uCCB4\uC5B8(\uBA85\uC0AC, \uC218\uC0AC)"),verb:n("wordSearch.filter.pos.verb","\uC6A9\uC5B8(\uB3D9\uC0AC, \uD615\uC6A9\uC0AC)"),modifier:n("wordSearch.filter.pos.modifier","\uC218\uC2DD\uC5B8(\uBD80\uC0AC, \uAD00\uD615\uC0AC)")},wordType:{native:n("wordSearch.filter.type.native","\uACE0\uC720\uC5B4"),sino:n("wordSearch.filter.type.sino","\uD55C\uC790\uC5B4"),foreign:n("wordSearch.filter.type.foreign","\uC678\uB798\uC5B4"),mixed:n("wordSearch.filter.type.mixed","\uD63C\uC885\uC5B4")}}};return $t.set(e,o),o}const Ht=()=>Array.from(new Set([ae.language,"ko","en"].filter(e=>!!e)));function Ye(e){if(We.includes(e))return e;for(const t of Ht()){const n=ft(t);for(const o of We)if(n.\uC139\uC158[o]===e)return o}for(const t of We)if(Xi[t]?.includes(e))return t;return null}function Ne(e,t){if(Ji[e].includes(t))return t;for(const n of Ht()){const o=ft(n).\uAC12[e];for(const[r,a]of Object.entries(o))if(a===t)return r}for(const[n,o]of Object.entries(el[e]??{}))if(o.includes(t))return n;if(e==="grade"||e==="syllables"){const n=parseInt(t.replace(/\D/g,""),10);if(Number.isFinite(n)&&n>=1)return e==="grade"?n<=4?String(n):null:n>=5?"5+":String(n)}return null}const tl=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"&&e?[e]:[];function Gt(e){const t={};for(const[n,o]of Object.entries(e??{})){const r=Ye(n);if(r)for(const a of tl(o)){const u=Ne(r,a);if(!u)continue;const i=t[r]??(t[r]=[]);i.includes(u)||i.push(u)}}return t}function Vt(e,t=ae.language){const n=ft(t||"ko"),o={};for(const r of We){const a=(e?.[r]??[]).map(u=>n.\uAC12[r][u]).filter(u=>!!u);a.length&&(o[n.\uC139\uC158[r]]=a)}return o}function nl(e,t=ae.language){const n={};for(const[o,r]of Object.entries(e??{}))Ye(o)||(n[o]=r);return{...n,...Vt(Gt(e),t)}}function ol(e){for(const t of Ht()){const n=ft(t);if(We.some(o=>n.\uC139\uC158[o]===e))return t}return ae.language||"ko"}function Xn(){const{t:e}=se.useTranslation();return s.useMemo(()=>({difficulty:e("wordSearch.filter.difficulty","\uB4F1\uAE09"),syllables:e("wordSearch.filter.syllables","\uC74C\uC808 \uC218"),syllable5plus:e("wordSearch.filter.syllable5plus","5\uC74C\uC808 \uC774\uC0C1"),partOfSpeech:e("wordSearch.filter.partOfSpeech","\uD488\uC0AC"),wordType:e("wordSearch.filter.wordType","\uC720\uD615"),posMap:{[e("wordSearch.filter.pos.noun","\uCCB4\uC5B8(\uBA85\uC0AC, \uC218\uC0AC)")]:["\uBA85","\uC218"],[e("wordSearch.filter.pos.verb","\uC6A9\uC5B8(\uB3D9\uC0AC, \uD615\uC6A9\uC0AC)")]:["\uB3D9","\uD615"],[e("wordSearch.filter.pos.modifier","\uC218\uC2DD\uC5B8(\uBD80\uC0AC, \uAD00\uD615\uC0AC)")]:["\uBD80","\uAD00"]},typeMap:{[e("wordSearch.filter.type.native","\uACE0\uC720\uC5B4")]:"\uACE0\uC720",[e("wordSearch.filter.type.sino","\uD55C\uC790\uC5B4")]:"\uD55C\uC790",[e("wordSearch.filter.type.foreign","\uC678\uB798\uC5B4")]:"\uC678\uB798",[e("wordSearch.filter.type.mixed","\uD63C\uC885\uC5B4")]:"\uD63C\uC885"}}),[e])}function eo(e,t,n){return{label:t.difficulty,items:[1,2,3,4].map(o=>e("wordSearch.filter.grade",{n:o})),multiple:!0,allOption:!0,allLabel:n?.allLabel,labelAction:n?.labelAction,labelInfo:n?.labelInfo}}function to(e){return{label:e.partOfSpeech,items:Object.keys(e.posMap),multiple:!0,allOption:!0}}function no(e){return{label:e.wordType,items:Object.keys(e.typeMap),multiple:!0,allOption:!0}}function rl(e,t){return{label:t.syllables,items:[e("wordSearch.filter.syllable",{n:1}),e("wordSearch.filter.syllable",{n:2}),e("wordSearch.filter.syllable",{n:3}),e("wordSearch.filter.syllable",{n:4}),t.syllable5plus],multiple:!0,allOption:!0}}function al(e,t){const n=[e("wordPairs.filter.onlyHasImage","\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC")];return t?.includeStructure&&n.push(e("wordPairs.filter.onlySameStructure","\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC")),{label:e("wordPairs.filter.selectLabel","\uC120\uD0DD"),items:n,multiple:!0,labelAction:t?.labelAction,labelInfo:t?.labelInfo}}function ul(e,t){const{label:n,headValue:o,midValue:r,tailValue:a,includeMid:u=!0,headDisabled:i,midDisabled:l,tailDisabled:c,allOptionDisabled:g,groupLabel:d,labelAction:C}=t;return{label:n,...d?{groupLabel:d}:{},...C?{labelAction:C}:{},allOption:!0,allLabel:e("wordSearch.filter.positionAny",{defaultValue:"\uBB34\uAD00"}),...g?{allOptionDisabled:g}:{},items:[{value:o,displayLabel:e("wordSearch.filter.positionHead",{defaultValue:"\uC5B4\uB450"}),disabled:i},...u?[{value:r,displayLabel:e("wordSearch.filter.positionMid",{defaultValue:"\uC5B4\uC911"}),disabled:l}]:[],{value:a,displayLabel:e("wordSearch.filter.positionTail",{defaultValue:"\uC5B4\uB9D0"}),disabled:c}]}}function il(e,t,n){const o=Ye(n),r=o&&t!==ue?Ne(o,t):null;if(o&&(t===ue||r)){const i={},l={};for(const[f,m]of Object.entries(e))(Ye(f)===o?l:i)[f]=m;if(t===ue)return i;const c=Gt(l)[o]??[],g=c.includes(r)?c.filter(f=>f!==r):[...c,r];if(g.length===0)return i;const d=Vt({[o]:g},ol(n)),C=Object.values(d)[0]??[];return{...i,[n]:C}}if(t===ue){const{[n]:i,...l}=e;return l}const a=e[n]??[],u=a.includes(t)?a.filter(i=>i!==t):[...a,t];if(u.length===0){const{[n]:i,...l}=e;return l}return{...e,[n]:u}}Object.fromEntries(Object.entries(Nt).map(([e,{nucleus:t}])=>[e,t]));const ll={\uACE0\uC720\uC5B4:"\uACE0\uC720",\uD55C\uC790\uC5B4:"\uD55C\uC790",\uC678\uB798\uC5B4:"\uC678\uB798",\uD63C\uC885\uC5B4:"\uD63C\uC885"},sl={"\uCCB4\uC5B8(\uBA85\uC0AC,\uC218\uC0AC)":["\uBA85","\uC218"],"\uC6A9\uC5B8(\uB3D9\uC0AC,\uD615\uC6A9\uC0AC)":["\uB3D9","\uD615"],"\uC218\uC2DD\uC5B8(\uBD80\uC0AC,\uAD00\uD615\uC0AC)":["\uBD80","\uAD00"]},cl={difficulty:"\uB09C\uC774\uB3C4 \uB4F1\uAE09",syllables:"\uC74C\uC808 \uC218",syllable5plus:"5\uC74C\uC808 \uC774\uC0C1",partOfSpeech:"\uD488\uC0AC",wordType:"\uC720\uD615",posMap:sl,typeMap:ll},oo=new WeakMap;function dl(e,t){const n=oo.get(e);if(n&&n.keys===t)return n.\uAC12;const o={grades:[],syls:[],poses:[],types:[]},r={grade:o.grades,syllables:o.syls,pos:o.poses,wordType:o.types};for(const[a,u]of Object.entries(e??{})){const i=a===t.difficulty?"grade":a===t.syllables?"syllables":a===t.partOfSpeech?"pos":a===t.wordType?"wordType":Ye(a);if(i)for(const l of Array.isArray(u)?u:typeof u=="string"?[u]:[])r[i].includes(l)||r[i].push(l)}return oo.set(e,{keys:t,\uAC12:o}),o}function Cl(e,t,n=cl){const{grades:o,syls:r,poses:a,types:u}=dl(t,n);if(o.length&&!o.some(i=>e.grade===(Ne("grade",i)??i.replace(/\D/g,""))))return!1;if(r.length){const i=e.syllables??0;if(!r.some(l=>{const c=l===n.syllable5plus?"5+":Ne("syllables",l);return c==="5+"?i>=5:i===parseInt(c??l)}))return!1}return!(a.length&&!a.flatMap(i=>n.posMap[i]??Qi[Ne("pos",i)??""]??[i]).some(i=>(e.pos??"").includes(i))||u.length&&!u.some(i=>e.wordType===(n.typeMap[i]??Zi[Ne("wordType",i)??""])))}const gl={labial:e=>e("common.phonetics.place.labial",{defaultValue:"\uC591\uC21C\uC74C"}),alveolar:e=>e("common.phonetics.place.alveolar",{defaultValue:"\uCE58\uC870\uC74C"}),palatal:e=>e("common.phonetics.place.palatal",{defaultValue:"\uACBD\uAD6C\uAC1C\uC74C"}),velar:e=>e("common.phonetics.place.velar",{defaultValue:"\uC5F0\uAD6C\uAC1C\uC74C"}),glottal:e=>e("common.phonetics.place.glottal",{defaultValue:"\uC131\uBB38\uC74C"})},fl={frontHigh:e=>e("common.phonetics.vowel.frontHigh",{defaultValue:"\uC804\uC124 \uACE0\uBAA8\uC74C"}),backHighUnrounded:e=>e("common.phonetics.vowel.backHighUnrounded",{defaultValue:"\uD6C4\uC124 \uACE0\uBAA8\uC74C \uD3C9\uC21C"}),backHighRounded:e=>e("common.phonetics.vowel.backHighRounded",{defaultValue:"\uD6C4\uC124 \uACE0\uBAA8\uC74C \uC6D0\uC21C"}),frontMid:e=>e("common.phonetics.vowel.frontMid",{defaultValue:"\uC804\uC124 \uC911\uBAA8\uC74C"}),backMidUnrounded:e=>e("common.phonetics.vowel.backMidUnrounded",{defaultValue:"\uD6C4\uC124 \uC911\uBAA8\uC74C \uD3C9\uC21C"}),backMidRounded:e=>e("common.phonetics.vowel.backMidRounded",{defaultValue:"\uD6C4\uC124 \uC911\uBAA8\uC74C \uC6D0\uC21C"}),low:e=>e("common.phonetics.vowel.low",{defaultValue:"\uC800\uBAA8\uC74C"})},ml={j:e=>e("common.phonetics.glide.j",{defaultValue:"j\uD65C\uC74C"}),w:e=>e("common.phonetics.glide.w",{defaultValue:"w\uD65C\uC74C"}),velar:e=>e("common.phonetics.glide.velar",{defaultValue:"\u0270\uD65C\uC74C"})};function ro(e,t){if("place"in t)return gl[t.place](e);const n=fl[t.vowel](e);return t.glide?`${n} \xB7 ${ml[t.glide](e)}`:n}const pl=(e,{defaultValue:t})=>t,ao=(e,t)=>({jamos:e,phonetic:t,tooltip:ro(pl,t)}),Ce=(e,t)=>t.map(n=>ao([n],{place:e})),J=(e,t,n)=>ao([...e],n?{vowel:t,glide:n}:{vowel:t}),Wt={cho:[Ce("labial",["\u3142","\u3143","\u314D","\u3141"]),Ce("alveolar",["\u3137","\u3138","\u314C","\u3134","\u3139"]),Ce("alveolar",["\u3145","\u3146"]),Ce("palatal",["\u3148","\u3149","\u314A"]),Ce("velar",["\u3131","\u3132","\u314B"]),Ce("glottal",["\u314E"])],jung:[[J("\u3163","frontHigh"),J("\u315F","frontHigh","w"),J("\u3162","frontHigh","velar")],[J("\u3161","backHighUnrounded")],[J("\u315C","backHighRounded"),J("\u3160","backHighRounded","j")],[J("\u3154\u3150","frontMid"),J("\u3156\u3152","frontMid","j"),J("\u3159\u315A\u315E","frontMid","w")],[J("\u3153","backMidUnrounded"),J("\u3155","backMidUnrounded","j"),J("\u315D","backMidUnrounded","w")],[J("\u3157","backMidRounded"),J("\u315B","backMidRounded","j")],[J("\u314F","low"),J("\u3151","low","j"),J("\u3158","low","w")]],jong:[Ce("labial",["\u3142","\u3141"]),Ce("alveolar",["\u3137","\u3134","\u3139"]),Ce("velar",["\u3131","\u3147"])]},hl=[...Q],yl=[...te],bl=oe.filter(e=>e!==""),ge=e=>e===ie?[]:Array.from(e),ie="__NO_CODA__",uo=[1,2,3,4],le=5,Sl=12,io="SYL_",Yt=e=>`${io}${e}`,wl=e=>Number(e.slice(io.length));function Kt(e){return e>=le?Array.from({length:Sl-le+1},(t,n)=>le+n):[e]}const lo={cho:hl,jung:yl,jong:bl},Ut=e=>e.map(t=>t.map(({jamos:n,phonetic:o,tooltip:r})=>({v:n.join(""),phonetic:o,tooltip:r}))),zt={cho:Ut(Wt.cho),jung:Ut(Wt.jung),jong:Ut(Wt.jong)},so={};zt.jung.flat().forEach(({v:e})=>{for(const t of ge(e))so[t]=e});const El=new Set(zt.cho.flat().map(e=>e.v));function co(e,t){return e==="cho"?El.has(t)?t:null:e==="jung"?so[t]??t:Pe(t)}function Co(e,t,n){if(e==="jung"){const o=ge(t);return n&&o.includes(n)?n:o[0]??t}return e==="jong"&&n&&Pe(n)===t?n:t}function go(e,t,n,o){const r=(a,u)=>u?a==="jong"&&u===ie?ie:t==="pron"?co(a,u):Co(a,u,a==="jung"?n:a==="jong"?o:null):null;return{...e,cho:r("cho",e.cho),jung:r("jung",e.jung),jong:r("jong",e.jong)}}const qt={cho:null,jung:null,jong:null,syllable:null},Al="wt_filter",fo=e=>`wt_filter_${e}`,Jt=["noun","verb","modifier"],Qt=["native","sino","foreign","mixed"];function mo(e,t,n,o,r){if(!Array.isArray(e))return[];const a=[];for(const u of e){if(typeof u!="string")continue;const i=t.includes(u)?u:t.find(l=>r.some(c=>o(c,n(l))===u));i&&!a.includes(i)&&a.push(i)}return a}function po(e){try{const t=localStorage.getItem(fo(e))??localStorage.getItem(Al);if(t)return JSON.parse(t)}catch{}return null}function ho(e){const t=e?.phonemeView;return t==="pron"?"pron":t==="direct"?"direct":"char"}function vl(e){const t=e;return t?.composition?{cho:t.composition.cho??null,jung:t.composition.jung??null,jong:t.composition.jong??null,syllable:t.composition.syllable??null}:t?.choseong?{...qt,cho:t.choseong}:qt}function Bl(e,t,n){const{t:o,i18n:r}=se.useTranslation(),[a]=s.useState(()=>n?.resetOnMount?null:po(e)),[u,i]=s.useState(ho(a)),[l,c]=s.useState(()=>vl(a)),g=s.useCallback(()=>t.requireSyllable?{cho:"\u3131",jung:"\u314F",jong:ie,syllable:t.fixedSyllable??null}:{cho:null,jung:null,jong:t.fixedNoCoda?ie:null,syllable:t.fixedSyllable??null},[t.requireSyllable,t.fixedSyllable,t.fixedNoCoda]);s.useEffect(()=>{!t.requireSyllable&&t.fixedSyllable==null&&!t.fixedNoCoda||c(b=>b.cho||b.jung||b.syllable!=null||b.jong?b:g())},[]);const d=s.useMemo(()=>z(l.cho)||z(l.jung)||z(l.jong)?"count":"random",[l.cho,l.jung,l.jong]),C=s.useRef(u==="char"?l.jung:null),f=s.useRef(u==="char"?l.jong:null);s.useEffect(()=>{u==="char"&&(C.current=l.jung,f.current=l.jong)},[u,l.jung,l.jong]);const[m,w]=s.useState(n?.resetOnMount?!!n?.defaultImageOnly:a?.excludeNoImage??!0),[h,p]=s.useState(n?.resetOnMount?!1:a?.sameStructureOnly??!0),[y,S]=s.useState(Array.isArray(a?.gradeFilter)?a.gradeFilter:[]),E=Array.from(new Set([r.language,"ko","en"].filter(Boolean))),M=(b,_)=>r.getFixedT(b)(_),B=b=>mo(b,Jt,_=>`wordSearch.filter.pos.${_}`,M,E),T=b=>mo(b,Qt,_=>`wordSearch.filter.type.${_}`,M,E),[D,I]=s.useState(()=>B(a?.posFilter)),[v,$]=s.useState(()=>T(a?.wordTypeFilter)),F=s.useRef(n?.resetKey);s.useEffect(()=>{F.current!==n?.resetKey&&(F.current=n?.resetKey,c(g()),w(!!n?.defaultImageOnly),p(!1),S([]),I([]),$([]))},[n?.resetKey]);const P=Xn(),L=s.useMemo(()=>Object.keys(P.posMap),[P]),k=s.useMemo(()=>Object.keys(P.typeMap),[P]),W=s.useMemo(()=>D.map(b=>L[Jt.indexOf(b)]).filter(Boolean),[D,L]),X=s.useMemo(()=>v.map(b=>k[Qt.indexOf(b)]).filter(Boolean),[v,k]),[U,he]=s.useState({cho:new Set,jung:new Set,jong:new Set,syllable:new Set}),[A,N]=s.useState(!1),[R,G]=s.useState(null),Y=1,ee=Math.max(1,[l.cho,l.jung,l.jong].filter(Boolean).length),[ye,Le]=s.useState(e);s.useEffect(()=>{if(ye!==e){if(!n?.resetOnMount){const b=po(e);c(b?.composition??g()),w(b?.excludeNoImage??!0),p(b?.sameStructureOnly??!0),i(ho(b)),S(Array.isArray(b?.gradeFilter)?b.gradeFilter:[]),I(B(b?.posFilter)),$(T(b?.wordTypeFilter))}Le(e)}},[e,ye,n?.resetOnMount]),s.useEffect(()=>{if(!n?.resetOnMount&&ye===e)try{localStorage.setItem(fo(e),JSON.stringify({contrastCount:ee,composition:l,excludeNoImage:m,sameStructureOnly:h,phonemeView:u,gradeFilter:y,posFilter:D,wordTypeFilter:v}))}catch{}},[n?.resetOnMount,e,ye,ee,l,m,h,u,y,D,v]);const[Ee,rn]=s.useState(0);mn("wordpool:update",()=>rn(b=>b+1));const an=s.useRef(r.language);s.useEffect(()=>{an.current!==r.language&&(an.current=r.language,rn(b=>b+1))},[r.language]),s.useEffect(()=>{if(!t.choseong)return;let b=!1;return da({difficulty:d,excludeNoImage:m}).then(_=>{b||(he(_),_.cho.size+_.jung.size+_.jong.size>0&&N(!0))}).catch(()=>{b||he({cho:new Set,jung:new Set,jong:new Set,syllable:new Set})}),()=>{b=!0}},[t.choseong,d,m,Ee]),s.useEffect(()=>{let b=!1;const _=l,O=_.cho?ge(_.cho):null,x=_.jung?ge(_.jung):null,K=_.jong===ie,Ae=K?null:_.jong?ge(_.jong):null,ve=_.syllable!=null?Kt(_.syllable):null,tt=!!(O||x||Ae||K||ve);return ca({difficulty:t.difficulty?d:null,contrastCount:t.difficulty?ee:1,composition:t.choseong&&tt?{cho:O,jung:x,jong:Ae,jongNone:K,syllable:ve}:null,excludeNoImage:m,sameStructureOnly:h,phonemeView:u==="pron"?"pron":"char",grade:y.length>0?y:null}).then(nt=>{b||G(nt)}).catch(()=>{b||G(null)}),()=>{b=!0}},[t.choseong,t.difficulty,d,ee,l,u,m,h,Ee,y]),s.useEffect(()=>{A&&c(b=>{const _={...b};let O=!1;return["cho","jung","jong"].forEach(x=>{const K=b[x];!K||K===ie||ge(K).some(Ae=>U[x].has(Ae))||(_[x]=null,O=!0)}),b.syllable!=null&&t.fixedSyllable==null&&(b.syllable>=le?[...U.syllable].some(x=>x>=le)||(_.syllable=null,O=!0):(!U.syllable.has(b.syllable)||b.syllable<Y)&&(_.syllable=null,O=!0)),O?_:b})},[U,A,Y,t.fixedSyllable]);const un=s.useMemo(()=>{const b=_=>{const O=new Set;for(const x of lo[_])U[_].has(x)&&O.add(x);return O};return{cho:b("cho"),jung:b("jung"),jong:b("jong")}},[U]),Et=s.useMemo(()=>({exact:new Set(uo.filter(b=>U.syllable.has(b))),min:[...U.syllable].some(b=>b>=le)}),[U]),j=s.useMemo(()=>({composition:o("wordPairs.composition","\uC815\uB2F5 \uB2E8\uC5B4 \uAD6C\uC131"),syllableCount:o("wordPairs.syllableCount","\uC74C\uC808 \uC218"),onset:o("wordPairs.onset","\uCD08\uC131"),vowel:o("wordPairs.vowel","\uBAA8\uC74C"),coda:o("wordPairs.coda","\uC885\uC131"),phonemeGroup:o("training.filter.phonemeGroup",{defaultValue:"\uD6C8\uB828 \uC74C\uC808"}),trainOnset:o("training.filter.trainOnset",{defaultValue:"\uCD08\uC131"}),trainVowel:o("training.filter.trainVowel",{defaultValue:"\uBAA8\uC74C"}),trainCoda:o("training.filter.trainCoda",{defaultValue:"\uC885\uC131"}),random:o("training.filter.random","\uBB34\uC791\uC704"),exclude:o("wordSearch.filter.exclude","\uC81C\uC678"),selectLabel:o("training.filter.selectSection",{defaultValue:"\uC120\uD0DD"}),none:o("common.none","\uC5C6\uC74C"),noImage:o("wordSearch.filter.excludeNoImage","\uC774\uBBF8\uC9C0 \uC5C6\uC74C"),excludeImage:o("training.filter.excludeImage",{defaultValue:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC"}),sameStructure:o("training.filter.sameStructure",{defaultValue:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC"}),noLimit:o("training.filter.noLimit",{defaultValue:"\uBB34\uAD00"}),codaExclude:o("training.filter.codaExclude",{defaultValue:"\uC81C\uC678"}),gradeLabel:o("training.filter.gradeLabel",{defaultValue:"\uB09C\uC774\uB3C4 \uB4F1\uAE09"})}),[o]),ln=s.useMemo(()=>({[j.trainOnset]:"cho",[j.trainVowel]:"jung",[j.trainCoda]:"jong"}),[j]),et=s.useCallback((b,_)=>({title:_,items:b}),[]),At=s.useMemo(()=>[o("training.filter.excludeImageInfo",{defaultValue:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC: \uB2E8\uC5B4 \uC911\uC5D0 \uC774\uBBF8\uC9C0\uAC00 \uC788\uB294 \uB2E8\uC5B4\uB9CC \uACB0\uACFC\uC5D0 \uBCF4\uC5EC\uC90D\uB2C8\uB2E4."}),o("training.filter.sameStructureInfo",{defaultValue:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC: \uC815\uB2F5\uACFC \uC624\uB2F5\uC758 \uC74C\uC808 \uAD6C\uC870(\uAE00\uC790 \uC218\xB7\uBC1B\uCE68 \uC720\uBB34 \uB4F1)\uAC00 \uAC19\uC740 \uACB0\uACFC\uB9CC \uB0A8\uACA8\uC694."})],[o]),vo=s.useMemo(()=>{const b=[];if(t.choseong){const _={value:ie,displayLabel:j.codaExclude},O=t.fixedNoCoda===!0,x=(K,Ae)=>{const ve=O&&K==="jong",tt={label:Ae,groupLabel:j.phonemeGroup,allOption:!t.requireSyllable,allLabel:j.noLimit,allOptionDisabled:ve};if(u==="pron"){const Be=zt[K].map(Oo=>Oo.map(({v:vt,phonetic:Ro})=>{const Bt=ge(vt),sn=ro(o,Ro),cn=ve||!Bt.some(Po=>U[K].has(Po));return Bt.length>1?{value:vt,labels:Bt,tooltip:sn,disabled:cn}:{value:vt,tooltip:sn,disabled:cn}}));return K==="jong"&&!t.requireCoda&&Be.unshift([_]),{...tt,groups:Be}}const nt=lo[K].map(Be=>!ve&&un[K].has(Be)?Be:{value:Be,disabled:!0});return{...tt,items:K==="jong"&&!t.requireCoda?[_,...nt]:nt}};b.push(x("cho",j.trainOnset)),b.push(x("jung",j.trainVowel)),b.push(x("jong",j.trainCoda))}if(b.push({...eo(o,P,{labelInfo:et([o("wordPairs.filter.difficultyInfo",{defaultValue:"\uAD6D\uB9BD\uAD6D\uC5B4\uC6D0\uC758 \uAE30\uCD08 \uC5B4\uD718 \uB4F1\uAE09\uC774 \uACB0\uACFC\uC5D0 \uBC18\uC601\uB429\uB2C8\uB2E4."})])}),label:j.gradeLabel}),t.partOfSpeech&&b.push(to(P)),t.wordType&&b.push(no(P)),t.choseong||t.fixedSyllable!=null){const _=t.fixedSyllable;b.push({label:j.syllableCount,items:[...uo.map(O=>({value:Yt(O),displayLabel:o("wordPairs.syllableN",{n:O,defaultValue:"{{n}}\uC74C\uC808"}),disabled:_!=null?O!==_:!Et.exact.has(O)||O<Y})),{value:Yt(le),displayLabel:o("wordPairs.syllableNPlus",{n:le,defaultValue:"{{n}}\uC74C\uC808 \uC774\uC0C1"}),disabled:_!=null?le!==_:!Et.min}],allOption:!0,allOptionDisabled:_!=null})}return t.choseong?b.push({label:j.exclude,displayLabel:j.selectLabel,multiple:!0,items:[j.excludeImage,j.sameStructure],labelInfo:et(At)}):b.push({label:j.exclude,displayLabel:j.selectLabel,multiple:!0,items:[j.excludeImage],labelInfo:et([At[0]])}),b},[t.choseong,t.partOfSpeech,t.wordType,t.requireSyllable,t.fixedSyllable,t.fixedNoCoda,t.requireCoda,Y,un,U,u,Et,j,o,et,At,P]),Bo={...(t.choseong||t.fixedSyllable!=null)&&l.syllable!=null?{[j.syllableCount]:Yt(l.syllable)}:{},...t.choseong&&l.cho?{[j.trainOnset]:l.cho}:{},...t.choseong&&l.jung?{[j.trainVowel]:l.jung}:{},...t.choseong&&l.jong?{[j.trainCoda]:l.jong}:{},[j.exclude]:[...m?[j.excludeImage]:[],...h?[j.sameStructure]:[]],[j.gradeLabel]:y.map(b=>o("wordSearch.filter.grade",{n:Number(b),defaultValue:"{{n}}\uB4F1\uAE09"})),...t.partOfSpeech?{[P.partOfSpeech]:W}:{},...t.wordType?{[P.wordType]:X}:{}},Do=s.useCallback((b,_)=>{if(_===j.exclude)b===j.excludeImage?w(O=>!O):b===j.sameStructure&&p(O=>!O);else if(_===j.syllableCount)c(O=>{if(!b||b===ue)return{...O,syllable:null};const x=wl(b);return{...O,syllable:O.syllable===x?null:x}});else if(_===j.gradeLabel){if(!b||b===ue){S([]);return}const O=b.replace(/\D/g,"");S(x=>x.includes(O)?x.filter(K=>K!==O):[...x,O])}else if(_===P.partOfSpeech){if(!b||b===ue){I([]);return}const O=Jt[L.indexOf(b)]??B([b])[0];if(!O)return;I(x=>x.includes(O)?x.filter(K=>K!==O):[...x,O])}else if(_===P.wordType){if(!b||b===ue){$([]);return}const O=Qt[k.indexOf(b)]??T([b])[0];if(!O)return;$(x=>x.includes(O)?x.filter(K=>K!==O):[...x,O])}else{const O=ln[_];if(!O)return;c(x=>t.requireSyllable?b&&b!==ue?{...x,[O]:b}:x:!b||b===ue||x[O]===b?{...x,[O]:null}:{...x,[O]:b})}},[j,ln,P,L,k,t.requireSyllable]),To=s.useCallback(b=>!t.partOfSpeech&&!t.wordType?!0:Cl(b,{...t.partOfSpeech?{[P.partOfSpeech]:W}:{},...t.wordType?{[P.wordType]:X}:{}},P),[t.partOfSpeech,t.wordType,W,X,P]),No=s.useCallback(b=>{b!==u&&(b!=="direct"&&u!=="direct"&&c(_=>go(_,b,C.current,f.current)),i(b))},[u]),_o=s.useCallback(()=>({composition:l,contrastCount:ee,excludeNoImage:m,sameStructureOnly:h,phonemeView:u,gradeFilter:y,posFilter:D,wordTypeFilter:v}),[l,ee,m,h,u,y,D,v]),Lo=s.useCallback(b=>{c(b.composition),w(b.excludeNoImage),p(b.sameStructureOnly??!0),i(b.phonemeView),S(Array.isArray(b.gradeFilter)?b.gradeFilter:[]),Array.isArray(b.posFilter)&&I(B(b.posFilter)),Array.isArray(b.wordTypeFilter)&&$(T(b.wordTypeFilter))},[]);return{difficulty:d,contrastCount:ee,composition:l,choseong:l.cho,excludeNoImage:m,sameStructureOnly:h,gradeFilter:y,posFilter:W,wordTypeFilter:X,matchesWordAttributes:To,poolVersion:Ee,filterSections:vo,filterSelected:Bo,handleFilterSelect:Do,phonemeView:u,setPhonemeView:No,phonemeGroupLabel:j.phonemeGroup,wordCount:R,getFilterSnapshot:_o,restoreFilterSnapshot:Lo}}function Dl(e){const t=i=>i?ge(i):null,n=t(e.cho),o=t(e.jung),r=e.jong===ie,a=r?null:t(e.jong),u=e.syllable!=null?Kt(e.syllable):null;return!n&&!o&&!a&&!r&&!u?null:{cho:n,jung:o,jong:a,jongNone:r,syllable:u}}function Tl(e,t,n,o,r,a,u=!0,i="char",l=[]){const[c,g]=s.useState({}),[d,C]=s.useState(!1),{cho:f=null,jung:m=null,jong:w=null,syllable:h=null}=o??{},p=l.length>0?l.slice().sort().join(","):"",y=e.map(E=>E.key).join("|");s.useEffect(()=>{a>0&&sa(r).catch(()=>{})},[a,r]),s.useEffect(()=>{let E=!1;return C(!0),(async()=>{const M=Dl({cho:f,jung:m,jong:w,syllable:h}),B=`${f??""}_${m??""}_${w??""}_${h??""}_${p}`,T={};await Promise.all(e.map(async D=>{const I=_t[D.key];try{const v=await qn(D.key,{difficulty:I.difficulty?t:null,contrastCount:I.difficulty?n:1,composition:I.choseong?M:null,count:5,excludeNoImage:r,sameStructureOnly:u,phonemeView:i,grade:l.length>0?l:null});v&&v.length>0?T[D.key]={id:`wt-${D.key}-${t}-${B}-${Date.now()}`,name:D.label,training_type:D.key,category_main_code:"WORD",iconColor:D.color,subTitle:D.subTitle,items:v,itemCount:v.length}:T[D.key]={id:`wt-${D.key}-empty`,name:D.label,training_type:D.key,category_main_code:"WORD",iconColor:D.color,subTitle:D.subTitle,items:[],itemCount:0,__empty:!0}}catch{T[D.key]=null}})),E||(g(T),C(!1))})(),()=>{E=!0}},[t,n,f,m,w,h,r,u,i,a,p,y]);const S=JSON.stringify(e.map(E=>[E.key,E.label,E.color,E.subTitle]));return{perTypeData:s.useMemo(()=>{const E={};for(const[M,B]of Object.entries(c)){const T=e.find(D=>D.key===M);E[M]=B&&T?{...B,name:T.label,iconColor:T.color,subTitle:T.subTitle}:B}return E},[c,S]),generating:d}}const Ke=[],Ue=[],ze=[],qe=[],mt={LISTEN_IN_NOISE:[],SHORT_STORY:[],LONG_STORY:[],ORDERING_SENTENCE:[]},pt={LISTEN_IN_NOISE:[],SHORT_STORY:[],LONG_STORY:[],ORDERING_SENTENCE:[]},Nl={LISTEN_IN_NOISE:3,SHORT_STORY:2,LONG_STORY:1,ORDERING_SENTENCE:2};let Zt=null,yo=null,pe=null;function _l({counts:e,forceRefresh:t}={}){const n=Object.assign({},Nl,e||{}),o=Oe(),r=Re(new Date(`${o}T00:00:00+09:00`).getTime()-864e5),a=JSON.stringify(n);if(!t&&yo===o&&Zt===a&&pe)return Object.assign(mt,pe.today),Object.assign(pt,pe.yesterday?.selection||{LISTEN_IN_NOISE:[],SHORT_STORY:[],LONG_STORY:[],ORDERING_SENTENCE:[]}),{today:mt,yesterday:pt};const u={LISTEN_IN_NOISE:ce(Ke,Math.max(0,Number(n.LISTEN_IN_NOISE)||0)),SHORT_STORY:ce(Ue,Math.max(0,Number(n.SHORT_STORY)||0)),LONG_STORY:ce(ze,Math.max(0,Number(n.LONG_STORY)||0)),ORDERING_SENTENCE:ce(qe,Math.max(0,Number(n.ORDERING_SENTENCE)||0))};let i=null;return pe&&Zt===a&&pe.yesterday&&pe.yesterday.date===r&&(i=pe.yesterday.selection),i||(i={LISTEN_IN_NOISE:ce(Ke,Math.max(0,Number(n.LISTEN_IN_NOISE)||0)),SHORT_STORY:ce(Ue,Math.max(0,Number(n.SHORT_STORY)||0)),LONG_STORY:ce(ze,Math.max(0,Number(n.LONG_STORY)||0)),ORDERING_SENTENCE:ce(qe,Math.max(0,Number(n.ORDERING_SENTENCE)||0))}),Object.assign(mt,u),Object.assign(pt,i),yo=o,Zt=a,pe={today:u,yesterday:{date:r,countsKey:a,selection:i}},{today:mt,yesterday:pt}}let Xt=!1,Je=null;async function Ll(){try{const e={url:typeof document>"u"?require("url").pathToFileURL(__filename).href:Dt&&Dt.tagName.toUpperCase()==="SCRIPT"&&Dt.src||new URL("hooks.cjs.js",document.baseURI).href}&&void 0||"/",t=await fetch(`${e}data/allTrainingData.json`);return t.ok?await t.json():null}catch{return null}}async function Ol(){if(!Xt)return Je||(Je=(async()=>{const e=await Ll();if(!e){Je=null;try{window.dispatchEvent(new Event("speechear.data.error"))}catch{}return}const t={noise:[],short:[],long:[],order:[]};try{for(const n of Object.keys(e||{})){const o=e[n]||[];for(const r of o){if(!r||typeof r!="object")continue;const a=r,u=String(a.training_type||n),i=String(a.category_main_code||a.category_main||a.category_0||""),l=String(a.category_sub_code||a.category_sub||a.category_1||""),c=Object.assign({},a,{training_type:u,category_0:i,category_1:l});u==="LISTEN_IN_NOISE"?t.noise.push(c):u==="SHORT_STORY"?t.short.push(c):u==="LONG_STORY"?t.long.push(c):u==="ORDERING_SENTENCE"&&t.order.push(c)}}}catch{Je=null;try{window.dispatchEvent(new Event("speechear.data.error"))}catch{}return}Ke.push(...t.noise),Ue.push(...t.short),ze.push(...t.long),qe.push(...t.order),Xt=!0;try{_l()}catch{}try{window.dispatchEvent(new Event("speechear.data.updated"))}catch{}})(),Je)}async function Rl(e=3e3){const t=Ol();let n;try{await Promise.race([t,new Promise(o=>{n=setTimeout(o,e)})])}finally{n!==void 0&&clearTimeout(n)}return Xt}function bo(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function Pl(e){let t=e>>>0;return()=>{t|=0,t=t+1831565813|0;let n=Math.imul(t^t>>>15,1|t);return n=n+Math.imul(n^n>>>7,61|n)^n,((n^n>>>14)>>>0)/4294967296}}const Ml=ce,Il=e=>{const[t,n,o]=e.split("-").map(Number);return Math.round(Date.UTC(t,(n||1)-1,o||1)/864e5)},kl=(e,t)=>{const n=e??{};return String(n.id??n.name??t)};function ht(e,t,n,o,r){if(!e.length||t<=0)return[];const a=Pl(bo(`${n}|${o}|${r}`)),u=Il(o)&1,i=e.filter((c,g)=>(bo(`${n}|${r}|${kl(c,g)}`)>>>7&1)===u),l=i.length>=t&&e.length-i.length>=t;return Ml(l?i:e,t,a)}function en(e,t,n){const o=r=>Math.max(0,e[r]||0);return{LISTEN_IN_NOISE:ht(Ke,o("LISTEN_IN_NOISE"),t,n,"LISTEN_IN_NOISE"),SHORT_STORY:ht(Ue,o("SHORT_STORY"),t,n,"SHORT_STORY"),LONG_STORY:ht(ze,o("LONG_STORY"),t,n,"LONG_STORY"),ORDERING_SENTENCE:ht(qe,o("ORDERING_SENTENCE"),t,n,"ORDERING_SENTENCE")}}function tn(e){return e?!!(e.LISTEN_IN_NOISE?.length||e.SHORT_STORY?.length||e.LONG_STORY?.length||e.ORDERING_SENTENCE?.length):!1}const xl={LISTEN_IN_NOISE:3,SHORT_STORY:2,LONG_STORY:1,ORDERING_SENTENCE:2};function nn(e=!1,t=xl,n){const o=Re(Date.now()),r=Re(Date.now()-864e5),a=n??"";return Ke.length>0||Ue.length>0||ze.length>0||qe.length>0?{today:en(t,a,o),yesterday:en(t,a,r)}:{today:en(t,a,o),yesterday:null}}function jl(e){const t=s.useRef({LISTEN_IN_NOISE:[],SHORT_STORY:[],LONG_STORY:[],ORDERING_SENTENCE:[]}),n=s.useRef(null),[o,r]=s.useState(!1),[a,u]=s.useState(!1),[i,l]=s.useState(0),[c,g]=s.useState(!1),[d,C]=s.useState(()=>Oe());s.useEffect(()=>{const m=()=>{const h=Date.now(),p=new Date(h+9*36e5),y=Date.UTC(p.getUTCFullYear(),p.getUTCMonth(),p.getUTCDate()+1)-9*36e5;return Math.max(1e3,y-h+1e3)};let w=setTimeout(function h(){C(Oe()),w=setTimeout(h,m())},m());return()=>clearTimeout(w)},[]),s.useEffect(()=>{let m=!1,w=!1,h=!1,p,y=0,S=null,E=0;const M=40,B=()=>{p!==void 0&&(clearInterval(p),p=void 0)};let T=!1;try{const F=new URLSearchParams(window.location.search),P=F.get("forceRefresh")||F.get("force");T=P==="1"||P==="true"}catch{}const D=F=>{w||(h=!0,t.current=F.today,n.current=F.yesterday,r(!0),g(!0),l(P=>P+1),m=!0,B())},I=async()=>{if(m)return;if(!T){const P=nn(!1,void 0,e);if(tn(P.today)){D(P);return}}if(S){++y>=M&&v();return}if(y>=E){E=y+8,S=Rl(3e3).catch(()=>!1);try{await S}finally{S=null}if(m)return}const F=nn(T,void 0,e);if(tn(F.today)){D(F);return}++y>=M&&v()};function v(){r(!0),g(!1),m=!0,B()}const $=()=>{if(w||h)return;const F=nn(T,void 0,e);tn(F.today)&&D(F)};try{window.addEventListener("speechear.data.updated",$)}catch{}return I(),p=setInterval(I,250),()=>{m=!0,w=!0,B();try{window.removeEventListener("speechear.data.updated",$)}catch{}}},[e,d]);const f=s.useCallback(m=>{const w=a?n.current:t.current,h=a?t.current:n.current;return w?.[m]?.length?w[m]:h?.[m]?.length?h[m]:void 0},[a,i]);return{loaded:o,hasData:c,showYesterday:a,setShowYesterday:u,getTrainingPerType:f}}const _e=[];let yt=!1;function So(e){if(e.key!=="Escape"||e.defaultPrevented||e.isComposing||e.keyCode===229)return;const t=_e[_e.length-1];t&&(e.stopPropagation(),t())}function wo(e){return _e.push(e),!yt&&typeof document<"u"&&(document.addEventListener("keydown",So),yt=!0),()=>{const t=_e.lastIndexOf(e);t>=0&&_e.splice(t,1),_e.length===0&&yt&&typeof document<"u"&&(document.removeEventListener("keydown",So),yt=!1)}}function Fl(e,t=!0){const n=fn(e);s.useEffect(()=>{if(t)return wo(()=>{n.current?.()})},[t,n])}const on=(e,t)=>`${e}:${t??1}`,bt=new Map,Eo=new Set,Ao=new Map,$l=6e4;function Hl(e,t){const[n,o]=s.useState(0),r=Array.from(new Set(e.map(a=>on(a.word,a.homonum)))).sort().join("|");return s.useEffect(()=>{const a=r?r.split("|"):[],u=Date.now(),i=a.filter(g=>!bt.has(g)&&!Eo.has(g)&&!(u-(Ao.get(g)??-1/0)<$l));if(i.length===0)return;let l=!1;const c=Array.from(new Set(i.map(g=>g.slice(0,g.lastIndexOf(":")))));return t(c).then(g=>{for(const d of g)d.Meaning&&bt.set(on(d.Word,d.Homonum??void 0),d.Meaning);if(g.length>0)for(const d of i)bt.has(d)||Eo.add(d);else{const d=Date.now();for(const C of i)Ao.set(C,d)}l||g.length===0||o(d=>d+1)}).catch(()=>{}),()=>{l=!0}},[r,t]),s.useMemo(()=>{const a=r?r.split("|"):[],u=new Map;for(const i of a){const l=bt.get(i);l!=null&&u.set(i,l)}return u},[r,n])}function Gl(){const[e,t]=s.useState(null),n=s.useCallback(a=>t(a.getBoundingClientRect()),[]),o=s.useCallback(()=>t(null),[]),r=s.useCallback(a=>{const u=a.getBoundingClientRect();t(i=>i?null:u)},[]);return{anchorRect:e,isOpen:e!=null,openAt:n,close:o,toggleAt:r}}function Vl(e){const[t,n]=s.useState(null),[o,r]=s.useState(null),a=s.useRef(null);s.useEffect(()=>()=>{a.current&&clearTimeout(a.current)},[]);const u=s.useCallback((l,c)=>{a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{n(l),r(c)},e)},[e]),i=s.useCallback(()=>{a.current&&clearTimeout(a.current),n(null),r(null)},[]);return{payload:t,anchorRect:o,openAfterDelay:u,close:i}}function Wl(e,t,n){const o=Number.isFinite(t)&&t>=1?Math.floor(t):1,r=Math.max(1,Math.ceil(e.length/o)),a=Number.isFinite(n)?Math.min(Math.max(1,Math.floor(n)),r):1;return{pageItems:s.useMemo(()=>e.slice((a-1)*o,a*o),[e,a,o]),totalPages:r,curPage:a}}function Yl(e="warning"){const[t,n]=s.useState(""),[o,r]=s.useState(e),[a,u]=s.useState(0),i=s.useCallback((d,C)=>{r(C),n(d),u(f=>f+1)},[]),l=s.useCallback(d=>i(d,"warning"),[i]),c=s.useCallback(d=>i(d,"normal"),[i]),g=s.useCallback(()=>n(""),[]);return{toastMessage:t,toastType:o,toastKey:a,showToast:i,showWarning:l,showNormal:c,clearToast:g}}const Kl=[{key:"LISTEN_IN_NOISE",label:"\uC18C\uC74C \uD558 \uBB38\uC7A5 \uB4E3\uAE30",icon:"party-popper",desc:"\uB2E4\uC591\uD55C \uC18C\uC74C \uD658\uACBD\uC5D0\uC11C \uBB38\uC7A5 \uCCAD\uB825\uC744 \uD6C8\uB828\uD569\uB2C8\uB2E4."},{key:"SHORT_STORY",label:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",icon:"message-square",desc:"\uC9E7\uC740 \uC774\uC57C\uAE30\uB97C \uB4E3\uACE0 \uAE30\uC5B5\uD558\uC5EC \uBB38\uC81C\uB97C \uD480\uC5B4\uBD05\uB2C8\uB2E4."},{key:"LONG_STORY",label:"\uAE34 \uC774\uC57C\uAE30 \uB4E3\uAE30",icon:"message-square-text",desc:"\uAE34 \uC774\uC57C\uAE30\uB97C \uB4E3\uACE0 \uAE30\uC5B5\uD558\uC5EC \uB2E4\uC218\uC758 \uBB38\uC81C\uB97C \uD480\uC5B4\uBD05\uB2C8\uB2E4."},{key:"ORDERING_SENTENCE",label:"\uBB38\uC7A5 \uC21C\uC11C\uD654 \uD558\uAE30",icon:"align-start-vertical",desc:"\uC5EC\uB7EC\uAC1C\uC758 \uC9E7\uC740 \uBB38\uC7A5\uC744 \uB4E3\uACE0 \uAE30\uC5B5\uD558\uC5EC \uADF8 \uC21C\uC11C\uC5D0 \uB9DE\uAC8C \uBC30\uC5F4\uD569\uB2C8\uB2E4."}],Ul={LISTEN_IN_NOISE:"listenInNoise",SHORT_STORY:"shortStory",LONG_STORY:"longStory",ORDERING_SENTENCE:"orderingSentence"};function zl(e){return Kl.map(t=>{const n=Ul[t.key];return n?{...t,label:e(`trainingType.${n}.title`),desc:e(`trainingType.${n}.desc`)}:t})}const Qe={blue:"#60A5FA",green:"#4ADE80",amber:"#FBBF24",purple:"#A78BFA",pink:"#F472B6"},Ze=Qe.blue,St=Qe.green,Xe=Qe.amber,wt=Qe.purple,ql=Qe.pink,Jl=[{key:"discrimination",label:"\uBCC0\uBCC4\uD6C8\uB828",disc:"\uB450 \uC18C\uB9AC\uAC00 \uAC19\uC740\uC9C0 \uB2E4\uB978\uC9C0, \uB610\uB294 \uD2B9\uC815 \uC18C\uB9AC\uB97C \uAD6C\uBCC4\uD558\uB294 \uD6C8\uB828\uC785\uB2C8\uB2E4.",icon:"ear",types:[{key:"SAME_SOUND_PICK",label:"\uAC19\uC740 \uC18C\uB9AC \uACE0\uB974\uAE30",icon:"volume-2",color:Ze,subTitle:"\uB4E4\uC740 \uC18C\uB9AC\uC640 \uAC19\uC740 \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},{key:"SAME_OR_DIFF",label:"\uAC19\uC740\uC9C0 \uB2E4\uB978\uC9C0 \uB9DE\uD788\uAE30",icon:"diff",color:Ze,subTitle:"\uB450 \uC18C\uB9AC\uAC00 \uAC19\uC740\uC9C0, \uB2E4\uB978\uC9C0 \uAD6C\uBD84\uD558\uC138\uC694."},{key:"HEAR_AND_PICK_SAME",label:"\uC77C\uCE58\uD558\uB294 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",icon:"headphones",color:Ze,subTitle:"\uB4E4\uC740 \uC18C\uB9AC\uC758 \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},{key:"HEAR_AND_PICK_INCLUDED",label:"\uD55C \uC74C\uC808 \uD3EC\uD568 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",icon:"scan-search",color:Ze,subTitle:"\uB4E4\uC740 \uC74C\uC808\uC774 \uD3EC\uD568\uB41C \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},{key:"STARTS_WITH_SAME_SOUND",label:"\uCCAB \uC74C\uC808\uC774 \uAC19\uC740 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",icon:"play-circle",color:Ze,subTitle:"\uB4E4\uC740 \uB2E8\uC5B4\uC640 \uAC19\uC740 \uC18C\uB9AC\uB85C \uC2DC\uC791\uD558\uB294 \uB2E8\uC5B4\uB97C \uACE0\uB974\uC138\uC694."}]},{key:"synthesis",label:"\uD569\uC131\uD6C8\uB828",disc:"\uB450 \uAC1C \uC774\uC0C1\uC758 \uC74C\uC808\uC774\uB098 \uC74C\uC18C\uB97C \uD569\uCCD0 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uB294 \uD6C8\uB828\uC785\uB2C8\uB2E4.",icon:"git-merge",types:[{key:"MERGE_2_SYLLABLES",label:"\uC74C\uC808 2\uAC1C \uD569\uCE58\uAE30",icon:"link-2",color:St,subTitle:"\uB450 \uC74C\uC808\uC744 \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},{key:"MERGE_3_SYLLABLES",label:"\uC74C\uC808 3\uAC1C \uD569\uCE58\uAE30",icon:"git-merge",color:St,subTitle:"\uC138 \uC74C\uC808\uC744 \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},{key:"MERGE_2_PHONEMES",label:"\uC74C\uC18C 2\uAC1C \uD569\uCE58\uAE30",icon:"combine",color:St,subTitle:"\uB450 \uC74C\uC18C\uB97C \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},{key:"MERGE_3_PHONEMES",label:"\uC74C\uC18C 3\uAC1C \uD569\uCE58\uAE30",icon:"braces",color:St,subTitle:"\uC138 \uC74C\uC18C\uB97C \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"}]},{key:"deletion",label:"\uD0C8\uB77D\uD6C8\uB828",disc:"\uB2E8\uC5B4\uC5D0\uC11C \uC74C\uC808\uC774\uB098 \uC74C\uC18C\uB97C \uC81C\uAC70\uD588\uC744 \uB54C \uB0A8\uB294 \uC18C\uB9AC\uB97C \uC778\uC2DD\uD558\uB294 \uD6C8\uB828\uC785\uB2C8\uB2E4.",icon:"scissors",types:[{key:"DROP_1_FROM_2SYLL",label:"2\uC74C\uC808\uC5D0\uC11C 1\uC74C\uC808 \uD0C8\uB77D",icon:"scissors",color:Xe,subTitle:"2\uC74C\uC808 \uB2E8\uC5B4\uC5D0\uC11C \uD55C \uC74C\uC808\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},{key:"DROP_1_FROM_3SYLL",label:"3\uC74C\uC808\uC5D0\uC11C 1\uC74C\uC808 \uD0C8\uB77D",icon:"minus-circle",color:Xe,subTitle:"3\uC74C\uC808 \uB2E8\uC5B4\uC5D0\uC11C \uD55C \uC74C\uC808\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},{key:"DROP_PART_FROM_COMPOUND",label:"\uD569\uC131\uC5B4\uC5D0\uC11C \uBD80\uBD84\uD0C8\uB77D",icon:"unlink",color:Xe,subTitle:"\uD569\uC131\uC5B4\uC758 \uC77C\uBD80\uB97C \uBE7C\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},{key:"DROP_FINAL_CONSONANT_FROM_1SYLL",label:"1\uC74C\uC808\uC5D0\uC11C \uBC1B\uCE68 \uD0C8\uB77D",icon:"eraser",color:Xe,subTitle:"\uBC1B\uCE68\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},{key:"REMOVE_CONSONANT_AND_IDENTIFY_PHONEME",label:"1\uC74C\uC808\uC5D0\uC11C \uC790\uC74C \uD0C8\uB77D",icon:"audio-lines",color:Xe,subTitle:"\uC790\uC74C\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB0A8\uC744\uAE4C\uC694?"}]},{key:"substitution",label:"\uB300\uCE58\uD6C8\uB828",disc:"\uB2E8\uC5B4\uC758 \uC77C\uBD80 \uC74C\uC808\uC774\uB098 \uC74C\uC18C\uB97C \uBC14\uAFB8\uC5B4 \uC0C8\uB85C\uC6B4 \uC18C\uB9AC\uB97C \uB9CC\uB4DC\uB294 \uD6C8\uB828\uC785\uB2C8\uB2E4.",icon:"replace",types:[{key:"CHANGE_1_SYLL_IN_2SYLL",label:"2\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uBC14\uAFB8\uAE30",icon:"replace",color:wt,subTitle:"2\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC808\uC744 \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."},{key:"CHANGE_1_SYLL_IN_3SYLL",label:"3\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uBC14\uAFB8\uAE30",icon:"shuffle",color:wt,subTitle:"3\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC808\uC744 \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."},{key:"CHANGE_1_PHONEME_IN_1SYLL",label:"1\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC18C \uBC14\uAFB8\uAE30",icon:"arrow-right-left",color:wt,subTitle:"1\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC18C\uB97C \uBC14\uAFD4 \uC0C8 \uC18C\uB9AC\uB97C \uB9CC\uB4DC\uC138\uC694."},{key:"CHANGE_1_PHONEME_IN_2SYLL",label:"2\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC18C \uBC14\uAFB8\uAE30",icon:"flip-horizontal",color:wt,subTitle:"2\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC18C\uB97C \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."}]},{key:"attention",label:"\uCCAD\uAC01\uC801\uC8FC\uC758\uB825\uD6C8\uB828",disc:"\uC5EC\uB7EC \uC18C\uB9AC\uB97C \uB4E3\uACE0 \uC21C\uC11C\uB97C \uAE30\uC5B5\uD558\uB294 \uC8FC\uC758\uB825\uACFC \uB2E8\uAE30 \uAE30\uC5B5 \uD6C8\uB828\uC785\uB2C8\uB2E4.",icon:"list-ordered",types:[{key:"LISTEN_AND_REMEMBER_ORDER",label:"\uB4E3\uACE0 \uC21C\uC11C\uB300\uB85C \uAE30\uC5B5\uD558\uAE30",icon:"list-ordered",color:ql,subTitle:"\uC138 \uB2E8\uC5B4\uB97C \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694."}]}];function Ql(){const{t:e}=se.useTranslation();return s.useMemo(()=>{const t=Object.fromEntries(zl(e).map(o=>[o.key,o.label])),n={...t};return Jl.flatMap(o=>o.types).forEach(o=>{n[o.key]=e(`trainingType.${o.key}.label`,{defaultValue:o.label})}),{sentence:t,all:n}},[e])}function Zl({computeStyle:e,onScroll:t="close",onResize:n="close",ignoreOutsideClickSelector:o}){const[r,a]=s.useState(!1),[u,i]=s.useState({}),l=s.useRef(null),c=s.useRef(null),g=s.useCallback(()=>{l.current&&i(e(l.current.getBoundingClientRect(),l.current))},[e]);s.useEffect(()=>{if(!r)return;g();const f=y=>{const S=y.target;o&&S.closest?.(o)||l.current?.contains(S)||c.current?.contains(S)||a(!1)};document.addEventListener("mousedown",f),document.addEventListener("pointerdown",f);const m=y=>{c.current?.contains(y.target)||(t==="reposition"?g():t==="close"&&a(!1))};t!=="ignore"&&window.addEventListener("scroll",m,!0);const w=()=>{n==="reposition"?g():n==="close"&&a(!1)};let h=null;const p=()=>{w(),h&&clearTimeout(h),h=setTimeout(()=>{h=null,n==="reposition"&&g()},250)};return n!=="ignore"&&(window.addEventListener("resize",w),window.addEventListener("orientationchange",p)),()=>{document.removeEventListener("mousedown",f),document.removeEventListener("pointerdown",f),t!=="ignore"&&window.removeEventListener("scroll",m,!0),n!=="ignore"&&(window.removeEventListener("resize",w),window.removeEventListener("orientationchange",p)),h&&clearTimeout(h)}},[r,g,t,n,o]),s.useEffect(()=>{if(r)return wo(()=>a(!1))},[r]);const d=s.useCallback(()=>a(f=>!f),[]),C=s.useCallback(()=>a(!1),[]);return{open:r,setOpen:a,toggle:d,close:C,style:u,triggerRef:l,menuRef:c}}function Xl(e,{mode:t="playback",autoStart:n=!1,onPlaySpeaker:o,onComplete:r,playMs:a=1100,feedbackMs:u=1500}={}){const[i,l]=s.useState([]),[c,g]=s.useState(0),[d,C]=s.useState("idle"),[f,m]=s.useState(null),[w,h]=s.useState([]),[p,y]=s.useState(null),[S,E]=s.useState(0),M=s.useRef(0),B=s.useCallback(R=>{M.current=typeof R=="function"?R(M.current):R,E(M.current)},[]),T=s.useRef(o),D=s.useRef(r);s.useEffect(()=>{T.current=o,D.current=r},[o,r]);const I=s.useRef([]),v=()=>{I.current.forEach(clearTimeout),I.current=[]},$=(R,G)=>{I.current.push(setTimeout(G,R))};s.useEffect(()=>()=>v(),[]);const F=i[c]?.id??null,P=s.useRef(null),L=s.useCallback(()=>{v(),C("playing"),h([]),y(null),B(0);let R=0;e.forEach((G,Y)=>{$(R,()=>{g(Y),m(G.id),T.current?.(G)}),$(R+1e3,()=>{m(null),h(ee=>[...ee,G.id])}),R+=1300}),$(R,()=>{C("done"),D.current?.({score:0,total:e.length})})},[e,B]),k=s.useCallback((R,G)=>{if(G>=R.length){C("done"),D.current?.({score:M.current,total:R.length});return}P.current=null,g(G),y(null),C("playing"),m(R[G].id),T.current?.(R[G]),$(a,()=>{m(null),C("waiting")})},[a]),W=s.useCallback(()=>{v();const R=H(e);l(R),B(0),h([]),k(R,0)},[e,k,B]),X=s.useCallback(()=>{t==="playback"?(l(e),L()):W()},[t,e,L,W]),U=s.useCallback(()=>{v(),C("idle"),m(null),h([]),y(null),g(0),B(0),l([])},[B]),he=e.map(R=>R.id).join("|");s.useEffect(()=>(n?X():U(),()=>v()),[t,he,n]);const A=s.useCallback(R=>{d!=="waiting"||t==="playback"||P.current===c||(P.current=c,y(R),R===i[c]?.id&&B(G=>G+1),t==="exam"?(C("playing"),$(400,()=>k(i,c+1))):(C("feedback"),$(u,()=>k(i,c+1))))},[d,t,i,c,k,u,B]),N=t==="playback"?e.length:i.length;return{bind:{activeSpeakerId:f,playedIds:w,selectedId:p,answerId:F,showFeedback:d==="feedback",clickable:d==="waiting",onSelectSpeaker:A},index:c,total:N,score:S,phase:d,done:d==="done",start:X,reset:U}}exports.CACHE_GROUPS=Nn,exports.CORE_VERSION=Wi,exports.DocumentTitleSuppressContext=hn,exports.EMPTY_COMPOSITION=qt,exports.MediaQueryOverrideContext=Cn,exports.NO_CODA=ie,exports.SYLLABLE_MIN=le,exports.VAP_PAGE_SIZE_OPTIONS=rt,exports.buildGradeSection=eo,exports.buildPartOfSpeechSection=to,exports.buildPositionSection=ul,exports.buildSelectSection=al,exports.buildSyllableSection=rl,exports.buildWordTypeSection=no,exports.charToPronValue=co,exports.convertComposition=go,exports.fmtBytes=cr,exports.lsBytes=_n,exports.meaningKey=on,exports.normalizeWordAttributeFilter=nl,exports.pronToCharValue=Co,exports.syllableToFilter=Kt,exports.toWordAttributeFilterCodes=Gt,exports.today=Fe,exports.toggleAttributeFilter=il,exports.useAnchoredMenu=Zl,exports.useCacheManagement=dr,exports.useDailyTrainingSelection=jl,exports.useDelayedHoverAnchor=Vl,exports.useDeviceManagement=Br,exports.useDocumentTitle=Ho,exports.useEscToClose=Fl,exports.useFontScale=Io,exports.useHoverAnchor=Gl,exports.useMediaQuery=$o,exports.usePagedList=Wl,exports.usePasswordChange=zo,exports.useRelativeDay=Yo,exports.useSoundCompassExam=Xl,exports.useTablePaging=Ar,exports.useTableSort=vr,exports.useToastState=Yl,exports.useTrainingTypeLabels=Ql,exports.useVisitAllPanel=hr,exports.useVisitHistory=fr,exports.useVisitSchedule=pr,exports.useWindowEvent=mn,exports.useWordAttributeFilterKeys=Xn,exports.useWordDataStats=Cr,exports.useWordMeanings=Hl,exports.useWordTrainingDataGeneration=Tl,exports.useWordTrainingFilter=Bl,exports.valueToJamos=ge,exports.wordAttributeFilterFromCodes=Vt;
5
+ and aids recovery.`,site:{title:"Site",malgwi:"Malgwi",soundDirection:"Sound Direction System",vrSoundDirection:"VR Sound Direction System",hearingTest:"Hearing Test Pro"},sns:{title:"SNS",naverBlog:"Naver Blog",kakao:"KAKAO Talk Open Chat"},policy:{title:"Policy",terms:"Terms of Service",privacy:"Privacy Policy"},ceo:"CEO",address:"Address",support:"Support",ceoName:"Ji-hye Han",addressValue:"302, 3F, Haechan Bldg, 32 Siocheong-gil, Chuncheon, Gangwon, Korea"},ci={trainingPhone:{topic:"Gardening",prev:"Prev",next:"Next",speed:"Speed 3",noiseType:"Crowd noise",settings:"Settings",start:{caption:"Press the play (\u25B6) button below and listen carefully. After listening, check the sentence."},feedback:{caption:"Plant the well-grown seedlings in the garden bed and cover them carefully with plastic film."},done:{heardWell:"Heard clearly",listenAgain:"Listen again"}}},di={timeHM:"{{hh}}:{{mm}}",timeH:"{{hh}}:{{mm}}"},Ci={options:"Training Options",difficulty:"Difficulty",exclude:"Exclude",chosung:"Initial Consonant",excludeOptions:{none:"None",noImage:"No Image"}},gi={answer:"Answer",distractor:"Distractor"},fi={phaseWordDownload:"Download Word Data",phaseImageCheck:"Check Images",phasePairAnalysis:"Analyze Word Pairs",downloadingCount:"Downloading {{n}} words",checkingPage:"Checking page {{page}} list",imageCount:"{{done}} / {{total}} items"},mi={clearAriaLabel:"Clear input"},pi={ariaLabel:"Select tab"},hi={ariaLabel:"Tabs"},yi={dragPrompt:"Drag and drop files here",browseButton:"Choose Files",removeAriaLabel:"Remove {{name}}"},bi={ariaLabel:"User avatar"},Si={relativeDay:{today:"Today",yesterday:"Yesterday",daysAgo:"{{n}}d ago"},reason:{notLoggedIn:"Login required."},list:{title:"Received Homework"},status:{expired:"Expired",done:"Done {{count}}\xD7 \xB7 {{date}}",notDone:"Not done"}},wi={weekly:{title:"Weekly Training",daily:"Daily Listening",crossword:"Crossword"},homework:{title:"Homework Progress",totalRate:"Overall rate",count:"Total",done:"Done",remaining:"Remaining"},today:{tooltipTotal:"Total",tooltipDone:"Done"},filter:{countSuffix:" sessions"},time:{countLabel:"{{n}} sessions",empty:"No training records"},daily:{title:"Today's Listening Record",empty:"No completed sessions"},crossword:{title:"Crossword Quiz",empty:"No completed levels"},visit:{title:"Linked Visit Records"},detail:"Details",trainingType:{LISTEN_IN_NOISE:"Sentence in Noise",SHORT_STORY:"Short Story",LONG_STORY:"Long Story",ORDERING_SENTENCE:"Sentence Ordering"}},Ei={import:"Add to my trainings",publisher:"Publisher",time:{justNow:"just now",minutesAgo:"{{n}}m ago",hoursAgo:"{{n}}h ago",daysAgo:"{{n}}d ago",weeksAgo:"{{n}}w ago",monthsAgo:"{{n}}mo ago",yearsAgo:"{{n}}y ago"},badge:{shared:"Store"},publish:{descPlaceholder:"One-line description for the Training Store (optional)"}},Ai={manage:{unit:"item(s)"}},vi={cancelLabel:"Cancel"},Bi={subtitle:"Select a topic to start listening practice."},Di={steps:"Step {{current}} of {{total}}"},Ti={panelTitle:"Training misses",viewItems:"Items",viewTypes:"Types",colPending:"Left",colTrend:"Change",colRuns:"Runs",unitItem:" items",skippedOnly:"{{n}} older record(s) were excluded \u2014 they do not say what was answered.",summaryLabel:"Recorded",summaryValue:"{{items}} items \xB7 {{pending}} still missed",nextLabel:"Next to work on",nextCount:"{{count}}",nextCountCapped:"{{shown}} of {{total}}",picked:"\u2192 {{what}}",typeClear:"All caught up",typePending:"{{pending}} of {{total}} left",flat:"no change",runs:"{{count}} run(s)",avgDuration:"{{sec}}s avg"},Ni={resetColumns:"Reset column widths"},_i={panelTitle:"Word table scores",viewWords:"Words",viewTables:"Tables",colLatest:"When",colTrend:"Change",unitTime:" times",summaryLabel:"Scored",summaryValue:"{{times}} times \xB7 {{words}} words",nextLabel:"Focus next",nextCount:"{{count}}",allClear:"All correct last time.",times:"{{count}}x",flat:"no change",recentLabel:"Recent scorings",nextCountCapped:"{{shown}} of {{total}}"},Li={ariaLabel:"Banner",dotAriaLabel:"Banner {{index}} of {{count}}"},Oi={selectYearMonth:"Select year and month",chooseDate:"Choose a date"},Ri={previewRegion:"Report preview \u2014 scrollable sideways"},Pi={description:"Description",textbox:"Text",training:"Training guide",menu:"Menu"},Mi={devNone:"No acquisition data",place:{labial:"Bilabial",alveolar:"Alveolar",palatal:"Palatal",velar:"Velar",glottal:"Glottal"}},Ii={clearSelection:"Clear selection"},ki={showResult:"Show {{type}} result"},xi={selected:"Selected",remove:"Remove",exclude:"Excluded",nthSelected:"Selection {{n}}"},ji={loading:"Loading"},Fi={state:{active:"playing",played:"heard",correct:"correct",wrong:"wrong"}},$i={ariaLabel:"Breadcrumb"},Hi={empty:"No items yet."},Gi={main:"Main gradient",soft:"Soft",sub:"Sub color",deep:"Deep gradient",softSub:"Soft sub",warm:"Warm (accent)",dark:"Dark",radial:"Radial gradient",diagonal:"Diagonal pattern",dots:"Dot pattern",outline:"Outline",success:"Success / done",naver:"Naver blog notice",instagram:"Instagram notice"},Vi={common:Nu,calendar:_u,passCard:Lu,searchField:Ou,rating:Ru,colorPicker:Pu,dropdown:Mu,accordion:Iu,header:ku,nav:xu,settings:ju,usage:Fu,account:$u,help:Hu,training:Gu,trainingSettings:Vu,customers:Wu,payment:Yu,coupons:Ku,visits:Uu,company:zu,trainingType:qu,myWordTraining:Ju,myWordTable:Qu,keyWords:Zu,wordTable:Xu,wordSearch:ei,wordPrint:ti,topic:ni,accessLinkManager:oi,login:ri,device:ai,manager:ui,wordPairs:ii,game:li,footer:si,landing:ci,date:di,trainingSetPage:Ci,wordTrainingPreview:gi,wordData:fi,textField:mi,segmentedControl:pi,tabs:hi,fileUpload:yi,avatar:bi,myHomework:Si,trainingStatus:wi,store:Ei,homework:Ai,inquiry:vi,trainingPlanRun:Bi,progress:Di,trainingMiss:Ti,table:Ni,wordScore:_i,topBanner:Li,datePicker:Oi,report:Ri,tooltip:Pi,phonemeProfile:Mi,bulkBar:Ii,debug:ki,badge:xi,loader:ji,soundCompass:Fi,breadcrumb:$i,board:Hi,promoBannerBg:Gi};const Wi="0.186.0",Yi=[{code:"ko",label:"\uD55C\uAD6D\uC5B4"},{code:"en",label:"English"}],Ft="ko",Ki="ihab_display_language";function Jn(){if(typeof window>"u")return Ft;try{const e=localStorage.getItem(Ki);if(e&&Yi.some(t=>t.code===e))return e}catch{}return Ft}function Qn(e){try{document.documentElement.lang=e}catch{}}ae.on("languageChanged",Qn),Qn(Jn()),ae.use(se.initReactI18next).init({resources:{ko:{translation:Tu},en:{translation:Vi}},lng:Jn(),fallbackLng:Ft,interpolation:{escapeValue:!1},react:{useSuspense:!1}});const We=["grade","syllables","pos","wordType"],Zn=["1","2","3","4"],Ui=["1","2","3","4","5+"],zi=["noun","verb","modifier"],qi=["native","sino","foreign","mixed"],Ji={grade:Zn,syllables:Ui,pos:zi,wordType:qi},Qi={noun:["\uBA85","\uC218"],verb:["\uB3D9","\uD615"],modifier:["\uBD80","\uAD00"]},Zi={native:"\uACE0\uC720",sino:"\uD55C\uC790",foreign:"\uC678\uB798",mixed:"\uD63C\uC885"},Xi={grade:["\uB09C\uC774\uB3C4 \uB4F1\uAE09"]},el={pos:{noun:["\uCCB4\uC5B8(\uBA85\uC0AC,\uC218\uC0AC)"],verb:["\uC6A9\uC5B8(\uB3D9\uC0AC,\uD615\uC6A9\uC0AC)"],modifier:["\uC218\uC2DD\uC5B8(\uBD80\uC0AC,\uAD00\uD615\uC0AC)"]}},$t=new Map;try{ae.store?.on?.("added",()=>$t.clear())}catch{}function ft(e){const t=$t.get(e);if(t)return t;const n=ae.getFixedT(e),o={\uC139\uC158:{grade:n("wordSearch.filter.difficulty","\uB4F1\uAE09"),syllables:n("wordSearch.filter.syllables","\uC74C\uC808 \uC218"),pos:n("wordSearch.filter.partOfSpeech","\uD488\uC0AC"),wordType:n("wordSearch.filter.wordType","\uC720\uD615")},\uAC12:{grade:Object.fromEntries(Zn.map(r=>[r,n("wordSearch.filter.grade",{n:Number(r),defaultValue:`${r}\uB4F1\uAE09`})])),syllables:{...Object.fromEntries(["1","2","3","4"].map(r=>[r,n("wordSearch.filter.syllable",{n:Number(r),defaultValue:`${r}\uC74C\uC808`})])),"5+":n("wordSearch.filter.syllable5plus","5\uC74C\uC808 \uC774\uC0C1")},pos:{noun:n("wordSearch.filter.pos.noun","\uCCB4\uC5B8(\uBA85\uC0AC, \uC218\uC0AC)"),verb:n("wordSearch.filter.pos.verb","\uC6A9\uC5B8(\uB3D9\uC0AC, \uD615\uC6A9\uC0AC)"),modifier:n("wordSearch.filter.pos.modifier","\uC218\uC2DD\uC5B8(\uBD80\uC0AC, \uAD00\uD615\uC0AC)")},wordType:{native:n("wordSearch.filter.type.native","\uACE0\uC720\uC5B4"),sino:n("wordSearch.filter.type.sino","\uD55C\uC790\uC5B4"),foreign:n("wordSearch.filter.type.foreign","\uC678\uB798\uC5B4"),mixed:n("wordSearch.filter.type.mixed","\uD63C\uC885\uC5B4")}}};return $t.set(e,o),o}const Ht=()=>Array.from(new Set([ae.language,"ko","en"].filter(e=>!!e)));function Ye(e){if(We.includes(e))return e;for(const t of Ht()){const n=ft(t);for(const o of We)if(n.\uC139\uC158[o]===e)return o}for(const t of We)if(Xi[t]?.includes(e))return t;return null}function Ne(e,t){if(Ji[e].includes(t))return t;for(const n of Ht()){const o=ft(n).\uAC12[e];for(const[r,a]of Object.entries(o))if(a===t)return r}for(const[n,o]of Object.entries(el[e]??{}))if(o.includes(t))return n;if(e==="grade"||e==="syllables"){const n=parseInt(t.replace(/\D/g,""),10);if(Number.isFinite(n)&&n>=1)return e==="grade"?n<=4?String(n):null:n>=5?"5+":String(n)}return null}const tl=e=>Array.isArray(e)?e.filter(t=>typeof t=="string"):typeof e=="string"&&e?[e]:[];function Gt(e){const t={};for(const[n,o]of Object.entries(e??{})){const r=Ye(n);if(r)for(const a of tl(o)){const u=Ne(r,a);if(!u)continue;const i=t[r]??(t[r]=[]);i.includes(u)||i.push(u)}}return t}function Vt(e,t=ae.language){const n=ft(t||"ko"),o={};for(const r of We){const a=(e?.[r]??[]).map(u=>n.\uAC12[r][u]).filter(u=>!!u);a.length&&(o[n.\uC139\uC158[r]]=a)}return o}function nl(e,t=ae.language){const n={};for(const[o,r]of Object.entries(e??{}))Ye(o)||(n[o]=r);return{...n,...Vt(Gt(e),t)}}function ol(e){for(const t of Ht()){const n=ft(t);if(We.some(o=>n.\uC139\uC158[o]===e))return t}return ae.language||"ko"}function Xn(){const{t:e}=se.useTranslation();return s.useMemo(()=>({difficulty:e("wordSearch.filter.difficulty","\uB4F1\uAE09"),syllables:e("wordSearch.filter.syllables","\uC74C\uC808 \uC218"),syllable5plus:e("wordSearch.filter.syllable5plus","5\uC74C\uC808 \uC774\uC0C1"),partOfSpeech:e("wordSearch.filter.partOfSpeech","\uD488\uC0AC"),wordType:e("wordSearch.filter.wordType","\uC720\uD615"),posMap:{[e("wordSearch.filter.pos.noun","\uCCB4\uC5B8(\uBA85\uC0AC, \uC218\uC0AC)")]:["\uBA85","\uC218"],[e("wordSearch.filter.pos.verb","\uC6A9\uC5B8(\uB3D9\uC0AC, \uD615\uC6A9\uC0AC)")]:["\uB3D9","\uD615"],[e("wordSearch.filter.pos.modifier","\uC218\uC2DD\uC5B8(\uBD80\uC0AC, \uAD00\uD615\uC0AC)")]:["\uBD80","\uAD00"]},typeMap:{[e("wordSearch.filter.type.native","\uACE0\uC720\uC5B4")]:"\uACE0\uC720",[e("wordSearch.filter.type.sino","\uD55C\uC790\uC5B4")]:"\uD55C\uC790",[e("wordSearch.filter.type.foreign","\uC678\uB798\uC5B4")]:"\uC678\uB798",[e("wordSearch.filter.type.mixed","\uD63C\uC885\uC5B4")]:"\uD63C\uC885"}}),[e])}function eo(e,t,n){return{label:t.difficulty,items:[1,2,3,4].map(o=>e("wordSearch.filter.grade",{n:o})),multiple:!0,allOption:!0,allLabel:n?.allLabel,labelAction:n?.labelAction,labelInfo:n?.labelInfo}}function to(e){return{label:e.partOfSpeech,items:Object.keys(e.posMap),multiple:!0,allOption:!0}}function no(e){return{label:e.wordType,items:Object.keys(e.typeMap),multiple:!0,allOption:!0}}function rl(e,t){return{label:t.syllables,items:[e("wordSearch.filter.syllable",{n:1}),e("wordSearch.filter.syllable",{n:2}),e("wordSearch.filter.syllable",{n:3}),e("wordSearch.filter.syllable",{n:4}),t.syllable5plus],multiple:!0,allOption:!0}}function al(e,t){const n=[e("wordPairs.filter.onlyHasImage","\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC")];return t?.includeStructure&&n.push(e("wordPairs.filter.onlySameStructure","\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC")),{label:e("wordPairs.filter.selectLabel","\uC120\uD0DD"),items:n,multiple:!0,labelAction:t?.labelAction,labelInfo:t?.labelInfo}}function ul(e,t){const{label:n,headValue:o,midValue:r,tailValue:a,includeMid:u=!0,headDisabled:i,midDisabled:l,tailDisabled:c,allOptionDisabled:g,groupLabel:d,labelAction:C}=t;return{label:n,...d?{groupLabel:d}:{},...C?{labelAction:C}:{},allOption:!0,allLabel:e("wordSearch.filter.positionAny",{defaultValue:"\uBB34\uAD00"}),...g?{allOptionDisabled:g}:{},items:[{value:o,displayLabel:e("wordSearch.filter.positionHead",{defaultValue:"\uC5B4\uB450"}),disabled:i},...u?[{value:r,displayLabel:e("wordSearch.filter.positionMid",{defaultValue:"\uC5B4\uC911"}),disabled:l}]:[],{value:a,displayLabel:e("wordSearch.filter.positionTail",{defaultValue:"\uC5B4\uB9D0"}),disabled:c}]}}function il(e,t,n){const o=Ye(n),r=o&&t!==ue?Ne(o,t):null;if(o&&(t===ue||r)){const i={},l={};for(const[f,m]of Object.entries(e))(Ye(f)===o?l:i)[f]=m;if(t===ue)return i;const c=Gt(l)[o]??[],g=c.includes(r)?c.filter(f=>f!==r):[...c,r];if(g.length===0)return i;const d=Vt({[o]:g},ol(n)),C=Object.values(d)[0]??[];return{...i,[n]:C}}if(t===ue){const{[n]:i,...l}=e;return l}const a=e[n]??[],u=a.includes(t)?a.filter(i=>i!==t):[...a,t];if(u.length===0){const{[n]:i,...l}=e;return l}return{...e,[n]:u}}Object.fromEntries(Object.entries(Nt).map(([e,{nucleus:t}])=>[e,t]));const ll={\uACE0\uC720\uC5B4:"\uACE0\uC720",\uD55C\uC790\uC5B4:"\uD55C\uC790",\uC678\uB798\uC5B4:"\uC678\uB798",\uD63C\uC885\uC5B4:"\uD63C\uC885"},sl={"\uCCB4\uC5B8(\uBA85\uC0AC,\uC218\uC0AC)":["\uBA85","\uC218"],"\uC6A9\uC5B8(\uB3D9\uC0AC,\uD615\uC6A9\uC0AC)":["\uB3D9","\uD615"],"\uC218\uC2DD\uC5B8(\uBD80\uC0AC,\uAD00\uD615\uC0AC)":["\uBD80","\uAD00"]},cl={difficulty:"\uB09C\uC774\uB3C4 \uB4F1\uAE09",syllables:"\uC74C\uC808 \uC218",syllable5plus:"5\uC74C\uC808 \uC774\uC0C1",partOfSpeech:"\uD488\uC0AC",wordType:"\uC720\uD615",posMap:sl,typeMap:ll},oo=new WeakMap;function dl(e,t){const n=oo.get(e);if(n&&n.keys===t)return n.\uAC12;const o={grades:[],syls:[],poses:[],types:[]},r={grade:o.grades,syllables:o.syls,pos:o.poses,wordType:o.types};for(const[a,u]of Object.entries(e??{})){const i=a===t.difficulty?"grade":a===t.syllables?"syllables":a===t.partOfSpeech?"pos":a===t.wordType?"wordType":Ye(a);if(i)for(const l of Array.isArray(u)?u:typeof u=="string"?[u]:[])r[i].includes(l)||r[i].push(l)}return oo.set(e,{keys:t,\uAC12:o}),o}function Cl(e,t,n=cl){const{grades:o,syls:r,poses:a,types:u}=dl(t,n);if(o.length&&!o.some(i=>e.grade===(Ne("grade",i)??i.replace(/\D/g,""))))return!1;if(r.length){const i=e.syllables??0;if(!r.some(l=>{const c=l===n.syllable5plus?"5+":Ne("syllables",l);return c==="5+"?i>=5:i===parseInt(c??l)}))return!1}return!(a.length&&!a.flatMap(i=>n.posMap[i]??Qi[Ne("pos",i)??""]??[i]).some(i=>(e.pos??"").includes(i))||u.length&&!u.some(i=>e.wordType===(n.typeMap[i]??Zi[Ne("wordType",i)??""])))}const gl={labial:e=>e("common.phonetics.place.labial",{defaultValue:"\uC591\uC21C\uC74C"}),alveolar:e=>e("common.phonetics.place.alveolar",{defaultValue:"\uCE58\uC870\uC74C"}),palatal:e=>e("common.phonetics.place.palatal",{defaultValue:"\uACBD\uAD6C\uAC1C\uC74C"}),velar:e=>e("common.phonetics.place.velar",{defaultValue:"\uC5F0\uAD6C\uAC1C\uC74C"}),glottal:e=>e("common.phonetics.place.glottal",{defaultValue:"\uC131\uBB38\uC74C"})},fl={frontHigh:e=>e("common.phonetics.vowel.frontHigh",{defaultValue:"\uC804\uC124 \uACE0\uBAA8\uC74C"}),backHighUnrounded:e=>e("common.phonetics.vowel.backHighUnrounded",{defaultValue:"\uD6C4\uC124 \uACE0\uBAA8\uC74C \uD3C9\uC21C"}),backHighRounded:e=>e("common.phonetics.vowel.backHighRounded",{defaultValue:"\uD6C4\uC124 \uACE0\uBAA8\uC74C \uC6D0\uC21C"}),frontMid:e=>e("common.phonetics.vowel.frontMid",{defaultValue:"\uC804\uC124 \uC911\uBAA8\uC74C"}),backMidUnrounded:e=>e("common.phonetics.vowel.backMidUnrounded",{defaultValue:"\uD6C4\uC124 \uC911\uBAA8\uC74C \uD3C9\uC21C"}),backMidRounded:e=>e("common.phonetics.vowel.backMidRounded",{defaultValue:"\uD6C4\uC124 \uC911\uBAA8\uC74C \uC6D0\uC21C"}),low:e=>e("common.phonetics.vowel.low",{defaultValue:"\uC800\uBAA8\uC74C"})},ml={j:e=>e("common.phonetics.glide.j",{defaultValue:"j\uD65C\uC74C"}),w:e=>e("common.phonetics.glide.w",{defaultValue:"w\uD65C\uC74C"}),velar:e=>e("common.phonetics.glide.velar",{defaultValue:"\u0270\uD65C\uC74C"})};function ro(e,t){if("place"in t)return gl[t.place](e);const n=fl[t.vowel](e);return t.glide?`${n} \xB7 ${ml[t.glide](e)}`:n}const pl=(e,{defaultValue:t})=>t,ao=(e,t)=>({jamos:e,phonetic:t,tooltip:ro(pl,t)}),Ce=(e,t)=>t.map(n=>ao([n],{place:e})),J=(e,t,n)=>ao([...e],n?{vowel:t,glide:n}:{vowel:t}),Wt={cho:[Ce("labial",["\u3142","\u3143","\u314D","\u3141"]),Ce("alveolar",["\u3137","\u3138","\u314C","\u3134","\u3139"]),Ce("alveolar",["\u3145","\u3146"]),Ce("palatal",["\u3148","\u3149","\u314A"]),Ce("velar",["\u3131","\u3132","\u314B"]),Ce("glottal",["\u314E"])],jung:[[J("\u3163","frontHigh"),J("\u315F","frontHigh","w"),J("\u3162","frontHigh","velar")],[J("\u3161","backHighUnrounded")],[J("\u315C","backHighRounded"),J("\u3160","backHighRounded","j")],[J("\u3154\u3150","frontMid"),J("\u3156\u3152","frontMid","j"),J("\u3159\u315A\u315E","frontMid","w")],[J("\u3153","backMidUnrounded"),J("\u3155","backMidUnrounded","j"),J("\u315D","backMidUnrounded","w")],[J("\u3157","backMidRounded"),J("\u315B","backMidRounded","j")],[J("\u314F","low"),J("\u3151","low","j"),J("\u3158","low","w")]],jong:[Ce("labial",["\u3142","\u3141"]),Ce("alveolar",["\u3137","\u3134","\u3139"]),Ce("velar",["\u3131","\u3147"])]},hl=[...Q],yl=[...te],bl=oe.filter(e=>e!==""),ge=e=>e===ie?[]:Array.from(e),ie="__NO_CODA__",uo=[1,2,3,4],le=5,Sl=12,io="SYL_",Yt=e=>`${io}${e}`,wl=e=>Number(e.slice(io.length));function Kt(e){return e>=le?Array.from({length:Sl-le+1},(t,n)=>le+n):[e]}const lo={cho:hl,jung:yl,jong:bl},Ut=e=>e.map(t=>t.map(({jamos:n,phonetic:o,tooltip:r})=>({v:n.join(""),phonetic:o,tooltip:r}))),zt={cho:Ut(Wt.cho),jung:Ut(Wt.jung),jong:Ut(Wt.jong)},so={};zt.jung.flat().forEach(({v:e})=>{for(const t of ge(e))so[t]=e});const El=new Set(zt.cho.flat().map(e=>e.v));function co(e,t){return e==="cho"?El.has(t)?t:null:e==="jung"?so[t]??t:Pe(t)}function Co(e,t,n){if(e==="jung"){const o=ge(t);return n&&o.includes(n)?n:o[0]??t}return e==="jong"&&n&&Pe(n)===t?n:t}function go(e,t,n,o){const r=(a,u)=>u?a==="jong"&&u===ie?ie:t==="pron"?co(a,u):Co(a,u,a==="jung"?n:a==="jong"?o:null):null;return{...e,cho:r("cho",e.cho),jung:r("jung",e.jung),jong:r("jong",e.jong)}}const qt={cho:null,jung:null,jong:null,syllable:null},Al="wt_filter",fo=e=>`wt_filter_${e}`,Jt=["noun","verb","modifier"],Qt=["native","sino","foreign","mixed"];function mo(e,t,n,o,r){if(!Array.isArray(e))return[];const a=[];for(const u of e){if(typeof u!="string")continue;const i=t.includes(u)?u:t.find(l=>r.some(c=>o(c,n(l))===u));i&&!a.includes(i)&&a.push(i)}return a}function po(e){try{const t=localStorage.getItem(fo(e))??localStorage.getItem(Al);if(t)return JSON.parse(t)}catch{}return null}function ho(e){const t=e?.phonemeView;return t==="pron"?"pron":t==="direct"?"direct":"char"}function vl(e){const t=e;return t?.composition?{cho:t.composition.cho??null,jung:t.composition.jung??null,jong:t.composition.jong??null,syllable:t.composition.syllable??null}:t?.choseong?{...qt,cho:t.choseong}:qt}function Bl(e,t,n){const{t:o,i18n:r}=se.useTranslation(),[a]=s.useState(()=>n?.resetOnMount?null:po(e)),[u,i]=s.useState(ho(a)),[l,c]=s.useState(()=>vl(a)),g=s.useCallback(()=>t.requireSyllable?{cho:"\u3131",jung:"\u314F",jong:ie,syllable:t.fixedSyllable??null}:{cho:null,jung:null,jong:t.fixedNoCoda?ie:null,syllable:t.fixedSyllable??null},[t.requireSyllable,t.fixedSyllable,t.fixedNoCoda]);s.useEffect(()=>{!t.requireSyllable&&t.fixedSyllable==null&&!t.fixedNoCoda||c(b=>b.cho||b.jung||b.syllable!=null||b.jong?b:g())},[]);const d=s.useMemo(()=>z(l.cho)||z(l.jung)||z(l.jong)?"count":"random",[l.cho,l.jung,l.jong]),C=s.useRef(u==="char"?l.jung:null),f=s.useRef(u==="char"?l.jong:null);s.useEffect(()=>{u==="char"&&(C.current=l.jung,f.current=l.jong)},[u,l.jung,l.jong]);const[m,w]=s.useState(n?.resetOnMount?!!n?.defaultImageOnly:a?.excludeNoImage??!0),[h,p]=s.useState(n?.resetOnMount?!1:a?.sameStructureOnly??!0),[y,S]=s.useState(Array.isArray(a?.gradeFilter)?a.gradeFilter:[]),E=Array.from(new Set([r.language,"ko","en"].filter(Boolean))),M=(b,_)=>r.getFixedT(b)(_),B=b=>mo(b,Jt,_=>`wordSearch.filter.pos.${_}`,M,E),T=b=>mo(b,Qt,_=>`wordSearch.filter.type.${_}`,M,E),[D,I]=s.useState(()=>B(a?.posFilter)),[v,$]=s.useState(()=>T(a?.wordTypeFilter)),F=s.useRef(n?.resetKey);s.useEffect(()=>{F.current!==n?.resetKey&&(F.current=n?.resetKey,c(g()),w(!!n?.defaultImageOnly),p(!1),S([]),I([]),$([]))},[n?.resetKey]);const P=Xn(),L=s.useMemo(()=>Object.keys(P.posMap),[P]),k=s.useMemo(()=>Object.keys(P.typeMap),[P]),W=s.useMemo(()=>D.map(b=>L[Jt.indexOf(b)]).filter(Boolean),[D,L]),X=s.useMemo(()=>v.map(b=>k[Qt.indexOf(b)]).filter(Boolean),[v,k]),[U,he]=s.useState({cho:new Set,jung:new Set,jong:new Set,syllable:new Set}),[A,N]=s.useState(!1),[R,G]=s.useState(null),Y=1,ee=Math.max(1,[l.cho,l.jung,l.jong].filter(Boolean).length),[ye,Le]=s.useState(e);s.useEffect(()=>{if(ye!==e){if(!n?.resetOnMount){const b=po(e);c(b?.composition??g()),w(b?.excludeNoImage??!0),p(b?.sameStructureOnly??!0),i(ho(b)),S(Array.isArray(b?.gradeFilter)?b.gradeFilter:[]),I(B(b?.posFilter)),$(T(b?.wordTypeFilter))}Le(e)}},[e,ye,n?.resetOnMount]),s.useEffect(()=>{if(!n?.resetOnMount&&ye===e)try{localStorage.setItem(fo(e),JSON.stringify({contrastCount:ee,composition:l,excludeNoImage:m,sameStructureOnly:h,phonemeView:u,gradeFilter:y,posFilter:D,wordTypeFilter:v}))}catch{}},[n?.resetOnMount,e,ye,ee,l,m,h,u,y,D,v]);const[Ee,rn]=s.useState(0);mn("wordpool:update",()=>rn(b=>b+1));const an=s.useRef(r.language);s.useEffect(()=>{an.current!==r.language&&(an.current=r.language,rn(b=>b+1))},[r.language]),s.useEffect(()=>{if(!t.choseong)return;let b=!1;return da({difficulty:d,excludeNoImage:m}).then(_=>{b||(he(_),_.cho.size+_.jung.size+_.jong.size>0&&N(!0))}).catch(()=>{b||he({cho:new Set,jung:new Set,jong:new Set,syllable:new Set})}),()=>{b=!0}},[t.choseong,d,m,Ee]),s.useEffect(()=>{let b=!1;const _=l,O=_.cho?ge(_.cho):null,x=_.jung?ge(_.jung):null,K=_.jong===ie,Ae=K?null:_.jong?ge(_.jong):null,ve=_.syllable!=null?Kt(_.syllable):null,tt=!!(O||x||Ae||K||ve);return ca({difficulty:t.difficulty?d:null,contrastCount:t.difficulty?ee:1,composition:t.choseong&&tt?{cho:O,jung:x,jong:Ae,jongNone:K,syllable:ve}:null,excludeNoImage:m,sameStructureOnly:h,phonemeView:u==="pron"?"pron":"char",grade:y.length>0?y:null}).then(nt=>{b||G(nt)}).catch(()=>{b||G(null)}),()=>{b=!0}},[t.choseong,t.difficulty,d,ee,l,u,m,h,Ee,y]),s.useEffect(()=>{A&&c(b=>{const _={...b};let O=!1;return["cho","jung","jong"].forEach(x=>{const K=b[x];!K||K===ie||ge(K).some(Ae=>U[x].has(Ae))||(_[x]=null,O=!0)}),b.syllable!=null&&t.fixedSyllable==null&&(b.syllable>=le?[...U.syllable].some(x=>x>=le)||(_.syllable=null,O=!0):(!U.syllable.has(b.syllable)||b.syllable<Y)&&(_.syllable=null,O=!0)),O?_:b})},[U,A,Y,t.fixedSyllable]);const un=s.useMemo(()=>{const b=_=>{const O=new Set;for(const x of lo[_])U[_].has(x)&&O.add(x);return O};return{cho:b("cho"),jung:b("jung"),jong:b("jong")}},[U]),Et=s.useMemo(()=>({exact:new Set(uo.filter(b=>U.syllable.has(b))),min:[...U.syllable].some(b=>b>=le)}),[U]),j=s.useMemo(()=>({composition:o("wordPairs.composition","\uC815\uB2F5 \uB2E8\uC5B4 \uAD6C\uC131"),syllableCount:o("wordPairs.syllableCount","\uC74C\uC808 \uC218"),onset:o("wordPairs.onset","\uCD08\uC131"),vowel:o("wordPairs.vowel","\uBAA8\uC74C"),coda:o("wordPairs.coda","\uC885\uC131"),phonemeGroup:o("training.filter.phonemeGroup",{defaultValue:"\uD6C8\uB828 \uC74C\uC808"}),trainOnset:o("training.filter.trainOnset",{defaultValue:"\uCD08\uC131"}),trainVowel:o("training.filter.trainVowel",{defaultValue:"\uBAA8\uC74C"}),trainCoda:o("training.filter.trainCoda",{defaultValue:"\uC885\uC131"}),random:o("training.filter.random","\uBB34\uC791\uC704"),exclude:o("wordSearch.filter.exclude","\uC81C\uC678"),selectLabel:o("training.filter.selectSection",{defaultValue:"\uC120\uD0DD"}),none:o("common.none","\uC5C6\uC74C"),noImage:o("wordSearch.filter.excludeNoImage","\uC774\uBBF8\uC9C0 \uC5C6\uC74C"),excludeImage:o("training.filter.excludeImage",{defaultValue:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC"}),sameStructure:o("training.filter.sameStructure",{defaultValue:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC"}),noLimit:o("training.filter.noLimit",{defaultValue:"\uBB34\uAD00"}),codaExclude:o("training.filter.codaExclude",{defaultValue:"\uC81C\uC678"}),gradeLabel:o("training.filter.gradeLabel",{defaultValue:"\uB09C\uC774\uB3C4 \uB4F1\uAE09"})}),[o]),ln=s.useMemo(()=>({[j.trainOnset]:"cho",[j.trainVowel]:"jung",[j.trainCoda]:"jong"}),[j]),et=s.useCallback((b,_)=>({title:_,items:b}),[]),At=s.useMemo(()=>[o("training.filter.excludeImageInfo",{defaultValue:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC: \uB2E8\uC5B4 \uC911\uC5D0 \uC774\uBBF8\uC9C0\uAC00 \uC788\uB294 \uB2E8\uC5B4\uB9CC \uACB0\uACFC\uC5D0 \uBCF4\uC5EC\uC90D\uB2C8\uB2E4."}),o("training.filter.sameStructureInfo",{defaultValue:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC: \uC815\uB2F5\uACFC \uC624\uB2F5\uC758 \uC74C\uC808 \uAD6C\uC870(\uAE00\uC790 \uC218\xB7\uBC1B\uCE68 \uC720\uBB34 \uB4F1)\uAC00 \uAC19\uC740 \uACB0\uACFC\uB9CC \uB0A8\uACA8\uC694."})],[o]),vo=s.useMemo(()=>{const b=[];if(t.choseong){const _={value:ie,displayLabel:j.codaExclude},O=t.fixedNoCoda===!0,x=(K,Ae)=>{const ve=O&&K==="jong",tt={label:Ae,groupLabel:j.phonemeGroup,allOption:!t.requireSyllable,allLabel:j.noLimit,allOptionDisabled:ve};if(u==="pron"){const Be=zt[K].map(Oo=>Oo.map(({v:vt,phonetic:Ro})=>{const Bt=ge(vt),sn=ro(o,Ro),cn=ve||!Bt.some(Po=>U[K].has(Po));return Bt.length>1?{value:vt,labels:Bt,tooltip:sn,disabled:cn}:{value:vt,tooltip:sn,disabled:cn}}));return K==="jong"&&!t.requireCoda&&Be.unshift([_]),{...tt,groups:Be}}const nt=lo[K].map(Be=>!ve&&un[K].has(Be)?Be:{value:Be,disabled:!0});return{...tt,items:K==="jong"&&!t.requireCoda?[_,...nt]:nt}};b.push(x("cho",j.trainOnset)),b.push(x("jung",j.trainVowel)),b.push(x("jong",j.trainCoda))}if(b.push({...eo(o,P,{labelInfo:et([o("wordPairs.filter.difficultyInfo",{defaultValue:"\uAD6D\uB9BD\uAD6D\uC5B4\uC6D0\uC758 \uAE30\uCD08 \uC5B4\uD718 \uB4F1\uAE09\uC774 \uACB0\uACFC\uC5D0 \uBC18\uC601\uB429\uB2C8\uB2E4."})])}),label:j.gradeLabel}),t.partOfSpeech&&b.push(to(P)),t.wordType&&b.push(no(P)),t.choseong||t.fixedSyllable!=null){const _=t.fixedSyllable;b.push({label:j.syllableCount,items:[...uo.map(O=>({value:Yt(O),displayLabel:o("wordPairs.syllableN",{n:O,defaultValue:"{{n}}\uC74C\uC808"}),disabled:_!=null?O!==_:!Et.exact.has(O)||O<Y})),{value:Yt(le),displayLabel:o("wordPairs.syllableNPlus",{n:le,defaultValue:"{{n}}\uC74C\uC808 \uC774\uC0C1"}),disabled:_!=null?le!==_:!Et.min}],allOption:!0,allOptionDisabled:_!=null})}return t.choseong?b.push({label:j.exclude,displayLabel:j.selectLabel,multiple:!0,items:[j.excludeImage,j.sameStructure],labelInfo:et(At)}):b.push({label:j.exclude,displayLabel:j.selectLabel,multiple:!0,items:[j.excludeImage],labelInfo:et([At[0]])}),b},[t.choseong,t.partOfSpeech,t.wordType,t.requireSyllable,t.fixedSyllable,t.fixedNoCoda,t.requireCoda,Y,un,U,u,Et,j,o,et,At,P]),Bo={...(t.choseong||t.fixedSyllable!=null)&&l.syllable!=null?{[j.syllableCount]:Yt(l.syllable)}:{},...t.choseong&&l.cho?{[j.trainOnset]:l.cho}:{},...t.choseong&&l.jung?{[j.trainVowel]:l.jung}:{},...t.choseong&&l.jong?{[j.trainCoda]:l.jong}:{},[j.exclude]:[...m?[j.excludeImage]:[],...h?[j.sameStructure]:[]],[j.gradeLabel]:y.map(b=>o("wordSearch.filter.grade",{n:Number(b),defaultValue:"{{n}}\uB4F1\uAE09"})),...t.partOfSpeech?{[P.partOfSpeech]:W}:{},...t.wordType?{[P.wordType]:X}:{}},Do=s.useCallback((b,_)=>{if(_===j.exclude)b===j.excludeImage?w(O=>!O):b===j.sameStructure&&p(O=>!O);else if(_===j.syllableCount)c(O=>{if(!b||b===ue)return{...O,syllable:null};const x=wl(b);return{...O,syllable:O.syllable===x?null:x}});else if(_===j.gradeLabel){if(!b||b===ue){S([]);return}const O=b.replace(/\D/g,"");S(x=>x.includes(O)?x.filter(K=>K!==O):[...x,O])}else if(_===P.partOfSpeech){if(!b||b===ue){I([]);return}const O=Jt[L.indexOf(b)]??B([b])[0];if(!O)return;I(x=>x.includes(O)?x.filter(K=>K!==O):[...x,O])}else if(_===P.wordType){if(!b||b===ue){$([]);return}const O=Qt[k.indexOf(b)]??T([b])[0];if(!O)return;$(x=>x.includes(O)?x.filter(K=>K!==O):[...x,O])}else{const O=ln[_];if(!O)return;c(x=>t.requireSyllable?b&&b!==ue?{...x,[O]:b}:x:!b||b===ue||x[O]===b?{...x,[O]:null}:{...x,[O]:b})}},[j,ln,P,L,k,t.requireSyllable]),To=s.useCallback(b=>!t.partOfSpeech&&!t.wordType?!0:Cl(b,{...t.partOfSpeech?{[P.partOfSpeech]:W}:{},...t.wordType?{[P.wordType]:X}:{}},P),[t.partOfSpeech,t.wordType,W,X,P]),No=s.useCallback(b=>{b!==u&&(b!=="direct"&&u!=="direct"&&c(_=>go(_,b,C.current,f.current)),i(b))},[u]),_o=s.useCallback(()=>({composition:l,contrastCount:ee,excludeNoImage:m,sameStructureOnly:h,phonemeView:u,gradeFilter:y,posFilter:D,wordTypeFilter:v}),[l,ee,m,h,u,y,D,v]),Lo=s.useCallback(b=>{c(b.composition),w(b.excludeNoImage),p(b.sameStructureOnly??!0),i(b.phonemeView),S(Array.isArray(b.gradeFilter)?b.gradeFilter:[]),Array.isArray(b.posFilter)&&I(B(b.posFilter)),Array.isArray(b.wordTypeFilter)&&$(T(b.wordTypeFilter))},[]);return{difficulty:d,contrastCount:ee,composition:l,choseong:l.cho,excludeNoImage:m,sameStructureOnly:h,gradeFilter:y,posFilter:W,wordTypeFilter:X,matchesWordAttributes:To,poolVersion:Ee,filterSections:vo,filterSelected:Bo,handleFilterSelect:Do,phonemeView:u,setPhonemeView:No,phonemeGroupLabel:j.phonemeGroup,wordCount:R,getFilterSnapshot:_o,restoreFilterSnapshot:Lo}}function Dl(e){const t=i=>i?ge(i):null,n=t(e.cho),o=t(e.jung),r=e.jong===ie,a=r?null:t(e.jong),u=e.syllable!=null?Kt(e.syllable):null;return!n&&!o&&!a&&!r&&!u?null:{cho:n,jung:o,jong:a,jongNone:r,syllable:u}}function Tl(e,t,n,o,r,a,u=!0,i="char",l=[]){const[c,g]=s.useState({}),[d,C]=s.useState(!1),{cho:f=null,jung:m=null,jong:w=null,syllable:h=null}=o??{},p=l.length>0?l.slice().sort().join(","):"",y=e.map(E=>E.key).join("|");s.useEffect(()=>{a>0&&sa(r).catch(()=>{})},[a,r]),s.useEffect(()=>{let E=!1;return C(!0),(async()=>{const M=Dl({cho:f,jung:m,jong:w,syllable:h}),B=`${f??""}_${m??""}_${w??""}_${h??""}_${p}`,T={};await Promise.all(e.map(async D=>{const I=_t[D.key];try{const v=await qn(D.key,{difficulty:I.difficulty?t:null,contrastCount:I.difficulty?n:1,composition:I.choseong?M:null,count:5,excludeNoImage:r,sameStructureOnly:u,phonemeView:i,grade:l.length>0?l:null});v&&v.length>0?T[D.key]={id:`wt-${D.key}-${t}-${B}-${Date.now()}`,name:D.label,training_type:D.key,category_main_code:"WORD",iconColor:D.color,subTitle:D.subTitle,items:v,itemCount:v.length}:T[D.key]={id:`wt-${D.key}-empty`,name:D.label,training_type:D.key,category_main_code:"WORD",iconColor:D.color,subTitle:D.subTitle,items:[],itemCount:0,__empty:!0}}catch{T[D.key]=null}})),E||(g(T),C(!1))})(),()=>{E=!0}},[t,n,f,m,w,h,r,u,i,a,p,y]);const S=JSON.stringify(e.map(E=>[E.key,E.label,E.color,E.subTitle]));return{perTypeData:s.useMemo(()=>{const E={};for(const[M,B]of Object.entries(c)){const T=e.find(D=>D.key===M);E[M]=B&&T?{...B,name:T.label,iconColor:T.color,subTitle:T.subTitle}:B}return E},[c,S]),generating:d}}const Ke=[],Ue=[],ze=[],qe=[],mt={LISTEN_IN_NOISE:[],SHORT_STORY:[],LONG_STORY:[],ORDERING_SENTENCE:[]},pt={LISTEN_IN_NOISE:[],SHORT_STORY:[],LONG_STORY:[],ORDERING_SENTENCE:[]},Nl={LISTEN_IN_NOISE:3,SHORT_STORY:2,LONG_STORY:1,ORDERING_SENTENCE:2};let Zt=null,yo=null,pe=null;function _l({counts:e,forceRefresh:t}={}){const n=Object.assign({},Nl,e||{}),o=Oe(),r=Re(new Date(`${o}T00:00:00+09:00`).getTime()-864e5),a=JSON.stringify(n);if(!t&&yo===o&&Zt===a&&pe)return Object.assign(mt,pe.today),Object.assign(pt,pe.yesterday?.selection||{LISTEN_IN_NOISE:[],SHORT_STORY:[],LONG_STORY:[],ORDERING_SENTENCE:[]}),{today:mt,yesterday:pt};const u={LISTEN_IN_NOISE:ce(Ke,Math.max(0,Number(n.LISTEN_IN_NOISE)||0)),SHORT_STORY:ce(Ue,Math.max(0,Number(n.SHORT_STORY)||0)),LONG_STORY:ce(ze,Math.max(0,Number(n.LONG_STORY)||0)),ORDERING_SENTENCE:ce(qe,Math.max(0,Number(n.ORDERING_SENTENCE)||0))};let i=null;return pe&&Zt===a&&pe.yesterday&&pe.yesterday.date===r&&(i=pe.yesterday.selection),i||(i={LISTEN_IN_NOISE:ce(Ke,Math.max(0,Number(n.LISTEN_IN_NOISE)||0)),SHORT_STORY:ce(Ue,Math.max(0,Number(n.SHORT_STORY)||0)),LONG_STORY:ce(ze,Math.max(0,Number(n.LONG_STORY)||0)),ORDERING_SENTENCE:ce(qe,Math.max(0,Number(n.ORDERING_SENTENCE)||0))}),Object.assign(mt,u),Object.assign(pt,i),yo=o,Zt=a,pe={today:u,yesterday:{date:r,countsKey:a,selection:i}},{today:mt,yesterday:pt}}let Xt=!1,Je=null;async function Ll(){try{const e={url:typeof document>"u"?require("url").pathToFileURL(__filename).href:Dt&&Dt.tagName.toUpperCase()==="SCRIPT"&&Dt.src||new URL("hooks.cjs.js",document.baseURI).href}&&void 0||"/",t=await fetch(`${e}data/allTrainingData.json`);return t.ok?await t.json():null}catch{return null}}async function Ol(){if(!Xt)return Je||(Je=(async()=>{const e=await Ll();if(!e){Je=null;try{window.dispatchEvent(new Event("speechear.data.error"))}catch{}return}const t={noise:[],short:[],long:[],order:[]};try{for(const n of Object.keys(e||{})){const o=e[n]||[];for(const r of o){if(!r||typeof r!="object")continue;const a=r,u=String(a.training_type||n),i=String(a.category_main_code||a.category_main||a.category_0||""),l=String(a.category_sub_code||a.category_sub||a.category_1||""),c=Object.assign({},a,{training_type:u,category_0:i,category_1:l});u==="LISTEN_IN_NOISE"?t.noise.push(c):u==="SHORT_STORY"?t.short.push(c):u==="LONG_STORY"?t.long.push(c):u==="ORDERING_SENTENCE"&&t.order.push(c)}}}catch{Je=null;try{window.dispatchEvent(new Event("speechear.data.error"))}catch{}return}Ke.push(...t.noise),Ue.push(...t.short),ze.push(...t.long),qe.push(...t.order),Xt=!0;try{_l()}catch{}try{window.dispatchEvent(new Event("speechear.data.updated"))}catch{}})(),Je)}async function Rl(e=3e3){const t=Ol();let n;try{await Promise.race([t,new Promise(o=>{n=setTimeout(o,e)})])}finally{n!==void 0&&clearTimeout(n)}return Xt}function bo(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function Pl(e){let t=e>>>0;return()=>{t|=0,t=t+1831565813|0;let n=Math.imul(t^t>>>15,1|t);return n=n+Math.imul(n^n>>>7,61|n)^n,((n^n>>>14)>>>0)/4294967296}}const Ml=ce,Il=e=>{const[t,n,o]=e.split("-").map(Number);return Math.round(Date.UTC(t,(n||1)-1,o||1)/864e5)},kl=(e,t)=>{const n=e??{};return String(n.id??n.name??t)};function ht(e,t,n,o,r){if(!e.length||t<=0)return[];const a=Pl(bo(`${n}|${o}|${r}`)),u=Il(o)&1,i=e.filter((c,g)=>(bo(`${n}|${r}|${kl(c,g)}`)>>>7&1)===u),l=i.length>=t&&e.length-i.length>=t;return Ml(l?i:e,t,a)}function en(e,t,n){const o=r=>Math.max(0,e[r]||0);return{LISTEN_IN_NOISE:ht(Ke,o("LISTEN_IN_NOISE"),t,n,"LISTEN_IN_NOISE"),SHORT_STORY:ht(Ue,o("SHORT_STORY"),t,n,"SHORT_STORY"),LONG_STORY:ht(ze,o("LONG_STORY"),t,n,"LONG_STORY"),ORDERING_SENTENCE:ht(qe,o("ORDERING_SENTENCE"),t,n,"ORDERING_SENTENCE")}}function tn(e){return e?!!(e.LISTEN_IN_NOISE?.length||e.SHORT_STORY?.length||e.LONG_STORY?.length||e.ORDERING_SENTENCE?.length):!1}const xl={LISTEN_IN_NOISE:3,SHORT_STORY:2,LONG_STORY:1,ORDERING_SENTENCE:2};function nn(e=!1,t=xl,n){const o=Re(Date.now()),r=Re(Date.now()-864e5),a=n??"";return Ke.length>0||Ue.length>0||ze.length>0||qe.length>0?{today:en(t,a,o),yesterday:en(t,a,r)}:{today:en(t,a,o),yesterday:null}}function jl(e){const t=s.useRef({LISTEN_IN_NOISE:[],SHORT_STORY:[],LONG_STORY:[],ORDERING_SENTENCE:[]}),n=s.useRef(null),[o,r]=s.useState(!1),[a,u]=s.useState(!1),[i,l]=s.useState(0),[c,g]=s.useState(!1),[d,C]=s.useState(()=>Oe());s.useEffect(()=>{const m=()=>{const h=Date.now(),p=new Date(h+9*36e5),y=Date.UTC(p.getUTCFullYear(),p.getUTCMonth(),p.getUTCDate()+1)-9*36e5;return Math.max(1e3,y-h+1e3)};let w=setTimeout(function h(){C(Oe()),w=setTimeout(h,m())},m());return()=>clearTimeout(w)},[]),s.useEffect(()=>{let m=!1,w=!1,h=!1,p,y=0,S=null,E=0;const M=40,B=()=>{p!==void 0&&(clearInterval(p),p=void 0)};let T=!1;try{const F=new URLSearchParams(window.location.search),P=F.get("forceRefresh")||F.get("force");T=P==="1"||P==="true"}catch{}const D=F=>{w||(h=!0,t.current=F.today,n.current=F.yesterday,r(!0),g(!0),l(P=>P+1),m=!0,B())},I=async()=>{if(m)return;if(!T){const P=nn(!1,void 0,e);if(tn(P.today)){D(P);return}}if(S){++y>=M&&v();return}if(y>=E){E=y+8,S=Rl(3e3).catch(()=>!1);try{await S}finally{S=null}if(m)return}const F=nn(T,void 0,e);if(tn(F.today)){D(F);return}++y>=M&&v()};function v(){r(!0),g(!1),m=!0,B()}const $=()=>{if(w||h)return;const F=nn(T,void 0,e);tn(F.today)&&D(F)};try{window.addEventListener("speechear.data.updated",$)}catch{}return I(),p=setInterval(I,250),()=>{m=!0,w=!0,B();try{window.removeEventListener("speechear.data.updated",$)}catch{}}},[e,d]);const f=s.useCallback(m=>{const w=a?n.current:t.current,h=a?t.current:n.current;return w?.[m]?.length?w[m]:h?.[m]?.length?h[m]:void 0},[a,i]);return{loaded:o,hasData:c,showYesterday:a,setShowYesterday:u,getTrainingPerType:f}}const _e=[];let yt=!1;function So(e){if(e.key!=="Escape"||e.defaultPrevented||e.isComposing||e.keyCode===229)return;const t=_e[_e.length-1];t&&(e.stopPropagation(),t())}function wo(e){return _e.push(e),!yt&&typeof document<"u"&&(document.addEventListener("keydown",So),yt=!0),()=>{const t=_e.lastIndexOf(e);t>=0&&_e.splice(t,1),_e.length===0&&yt&&typeof document<"u"&&(document.removeEventListener("keydown",So),yt=!1)}}function Fl(e,t=!0){const n=fn(e);s.useEffect(()=>{if(t)return wo(()=>{n.current?.()})},[t,n])}const on=(e,t)=>`${e}:${t??1}`,bt=new Map,Eo=new Set,Ao=new Map,$l=6e4;function Hl(e,t){const[n,o]=s.useState(0),r=Array.from(new Set(e.map(a=>on(a.word,a.homonum)))).sort().join("|");return s.useEffect(()=>{const a=r?r.split("|"):[],u=Date.now(),i=a.filter(g=>!bt.has(g)&&!Eo.has(g)&&!(u-(Ao.get(g)??-1/0)<$l));if(i.length===0)return;let l=!1;const c=Array.from(new Set(i.map(g=>g.slice(0,g.lastIndexOf(":")))));return t(c).then(g=>{for(const d of g)d.Meaning&&bt.set(on(d.Word,d.Homonum??void 0),d.Meaning);if(g.length>0)for(const d of i)bt.has(d)||Eo.add(d);else{const d=Date.now();for(const C of i)Ao.set(C,d)}l||g.length===0||o(d=>d+1)}).catch(()=>{}),()=>{l=!0}},[r,t]),s.useMemo(()=>{const a=r?r.split("|"):[],u=new Map;for(const i of a){const l=bt.get(i);l!=null&&u.set(i,l)}return u},[r,n])}function Gl(){const[e,t]=s.useState(null),n=s.useCallback(a=>t(a.getBoundingClientRect()),[]),o=s.useCallback(()=>t(null),[]),r=s.useCallback(a=>{const u=a.getBoundingClientRect();t(i=>i?null:u)},[]);return{anchorRect:e,isOpen:e!=null,openAt:n,close:o,toggleAt:r}}function Vl(e){const[t,n]=s.useState(null),[o,r]=s.useState(null),a=s.useRef(null);s.useEffect(()=>()=>{a.current&&clearTimeout(a.current)},[]);const u=s.useCallback((l,c)=>{a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{n(l),r(c)},e)},[e]),i=s.useCallback(()=>{a.current&&clearTimeout(a.current),n(null),r(null)},[]);return{payload:t,anchorRect:o,openAfterDelay:u,close:i}}function Wl(e,t,n){const o=Number.isFinite(t)&&t>=1?Math.floor(t):1,r=Math.max(1,Math.ceil(e.length/o)),a=Number.isFinite(n)?Math.min(Math.max(1,Math.floor(n)),r):1;return{pageItems:s.useMemo(()=>e.slice((a-1)*o,a*o),[e,a,o]),totalPages:r,curPage:a}}function Yl(e="warning"){const[t,n]=s.useState(""),[o,r]=s.useState(e),[a,u]=s.useState(0),i=s.useCallback((d,C)=>{r(C),n(d),u(f=>f+1)},[]),l=s.useCallback(d=>i(d,"warning"),[i]),c=s.useCallback(d=>i(d,"normal"),[i]),g=s.useCallback(()=>n(""),[]);return{toastMessage:t,toastType:o,toastKey:a,showToast:i,showWarning:l,showNormal:c,clearToast:g}}const Kl=[{key:"LISTEN_IN_NOISE",label:"\uC18C\uC74C \uD558 \uBB38\uC7A5 \uB4E3\uAE30",icon:"party-popper",desc:"\uB2E4\uC591\uD55C \uC18C\uC74C \uD658\uACBD\uC5D0\uC11C \uBB38\uC7A5 \uCCAD\uB825\uC744 \uD6C8\uB828\uD569\uB2C8\uB2E4."},{key:"SHORT_STORY",label:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",icon:"message-square",desc:"\uC9E7\uC740 \uC774\uC57C\uAE30\uB97C \uB4E3\uACE0 \uAE30\uC5B5\uD558\uC5EC \uBB38\uC81C\uB97C \uD480\uC5B4\uBD05\uB2C8\uB2E4."},{key:"LONG_STORY",label:"\uAE34 \uC774\uC57C\uAE30 \uB4E3\uAE30",icon:"message-square-text",desc:"\uAE34 \uC774\uC57C\uAE30\uB97C \uB4E3\uACE0 \uAE30\uC5B5\uD558\uC5EC \uB2E4\uC218\uC758 \uBB38\uC81C\uB97C \uD480\uC5B4\uBD05\uB2C8\uB2E4."},{key:"ORDERING_SENTENCE",label:"\uBB38\uC7A5 \uC21C\uC11C\uD654 \uD558\uAE30",icon:"align-start-vertical",desc:"\uC5EC\uB7EC\uAC1C\uC758 \uC9E7\uC740 \uBB38\uC7A5\uC744 \uB4E3\uACE0 \uAE30\uC5B5\uD558\uC5EC \uADF8 \uC21C\uC11C\uC5D0 \uB9DE\uAC8C \uBC30\uC5F4\uD569\uB2C8\uB2E4."}],Ul={LISTEN_IN_NOISE:"listenInNoise",SHORT_STORY:"shortStory",LONG_STORY:"longStory",ORDERING_SENTENCE:"orderingSentence"};function zl(e){return Kl.map(t=>{const n=Ul[t.key];return n?{...t,label:e(`trainingType.${n}.title`),desc:e(`trainingType.${n}.desc`)}:t})}const Qe={blue:"#60A5FA",green:"#4ADE80",amber:"#FBBF24",purple:"#A78BFA",pink:"#F472B6"},Ze=Qe.blue,St=Qe.green,Xe=Qe.amber,wt=Qe.purple,ql=Qe.pink,Jl=[{key:"discrimination",label:"\uBCC0\uBCC4\uD6C8\uB828",disc:"\uB450 \uC18C\uB9AC\uAC00 \uAC19\uC740\uC9C0 \uB2E4\uB978\uC9C0, \uB610\uB294 \uD2B9\uC815 \uC18C\uB9AC\uB97C \uAD6C\uBCC4\uD558\uB294 \uD6C8\uB828\uC785\uB2C8\uB2E4.",icon:"ear",types:[{key:"SAME_SOUND_PICK",label:"\uAC19\uC740 \uC18C\uB9AC \uACE0\uB974\uAE30",icon:"volume-2",color:Ze,subTitle:"\uB4E4\uC740 \uC18C\uB9AC\uC640 \uAC19\uC740 \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},{key:"SAME_OR_DIFF",label:"\uAC19\uC740\uC9C0 \uB2E4\uB978\uC9C0 \uB9DE\uD788\uAE30",icon:"diff",color:Ze,subTitle:"\uB450 \uC18C\uB9AC\uAC00 \uAC19\uC740\uC9C0, \uB2E4\uB978\uC9C0 \uAD6C\uBD84\uD558\uC138\uC694."},{key:"HEAR_AND_PICK_SAME",label:"\uC77C\uCE58\uD558\uB294 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",icon:"headphones",color:Ze,subTitle:"\uB4E4\uC740 \uC18C\uB9AC\uC758 \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},{key:"HEAR_AND_PICK_INCLUDED",label:"\uD55C \uC74C\uC808 \uD3EC\uD568 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",icon:"scan-search",color:Ze,subTitle:"\uB4E4\uC740 \uC74C\uC808\uC774 \uD3EC\uD568\uB41C \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},{key:"STARTS_WITH_SAME_SOUND",label:"\uCCAB \uC74C\uC808\uC774 \uAC19\uC740 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",icon:"play-circle",color:Ze,subTitle:"\uB4E4\uC740 \uB2E8\uC5B4\uC640 \uAC19\uC740 \uC18C\uB9AC\uB85C \uC2DC\uC791\uD558\uB294 \uB2E8\uC5B4\uB97C \uACE0\uB974\uC138\uC694."}]},{key:"synthesis",label:"\uD569\uC131\uD6C8\uB828",disc:"\uB450 \uAC1C \uC774\uC0C1\uC758 \uC74C\uC808\uC774\uB098 \uC74C\uC18C\uB97C \uD569\uCCD0 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uB294 \uD6C8\uB828\uC785\uB2C8\uB2E4.",icon:"git-merge",types:[{key:"MERGE_2_SYLLABLES",label:"\uC74C\uC808 2\uAC1C \uD569\uCE58\uAE30",icon:"link-2",color:St,subTitle:"\uB450 \uC74C\uC808\uC744 \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},{key:"MERGE_3_SYLLABLES",label:"\uC74C\uC808 3\uAC1C \uD569\uCE58\uAE30",icon:"git-merge",color:St,subTitle:"\uC138 \uC74C\uC808\uC744 \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},{key:"MERGE_2_PHONEMES",label:"\uC74C\uC18C 2\uAC1C \uD569\uCE58\uAE30",icon:"combine",color:St,subTitle:"\uB450 \uC74C\uC18C\uB97C \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},{key:"MERGE_3_PHONEMES",label:"\uC74C\uC18C 3\uAC1C \uD569\uCE58\uAE30",icon:"braces",color:St,subTitle:"\uC138 \uC74C\uC18C\uB97C \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"}]},{key:"deletion",label:"\uD0C8\uB77D\uD6C8\uB828",disc:"\uB2E8\uC5B4\uC5D0\uC11C \uC74C\uC808\uC774\uB098 \uC74C\uC18C\uB97C \uC81C\uAC70\uD588\uC744 \uB54C \uB0A8\uB294 \uC18C\uB9AC\uB97C \uC778\uC2DD\uD558\uB294 \uD6C8\uB828\uC785\uB2C8\uB2E4.",icon:"scissors",types:[{key:"DROP_1_FROM_2SYLL",label:"2\uC74C\uC808\uC5D0\uC11C 1\uC74C\uC808 \uD0C8\uB77D",icon:"scissors",color:Xe,subTitle:"2\uC74C\uC808 \uB2E8\uC5B4\uC5D0\uC11C \uD55C \uC74C\uC808\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},{key:"DROP_1_FROM_3SYLL",label:"3\uC74C\uC808\uC5D0\uC11C 1\uC74C\uC808 \uD0C8\uB77D",icon:"minus-circle",color:Xe,subTitle:"3\uC74C\uC808 \uB2E8\uC5B4\uC5D0\uC11C \uD55C \uC74C\uC808\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},{key:"DROP_PART_FROM_COMPOUND",label:"\uD569\uC131\uC5B4\uC5D0\uC11C \uBD80\uBD84\uD0C8\uB77D",icon:"unlink",color:Xe,subTitle:"\uD569\uC131\uC5B4\uC758 \uC77C\uBD80\uB97C \uBE7C\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},{key:"DROP_FINAL_CONSONANT_FROM_1SYLL",label:"1\uC74C\uC808\uC5D0\uC11C \uBC1B\uCE68 \uD0C8\uB77D",icon:"eraser",color:Xe,subTitle:"\uBC1B\uCE68\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},{key:"REMOVE_CONSONANT_AND_IDENTIFY_PHONEME",label:"1\uC74C\uC808\uC5D0\uC11C \uC790\uC74C \uD0C8\uB77D",icon:"audio-lines",color:Xe,subTitle:"\uC790\uC74C\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB0A8\uC744\uAE4C\uC694?"}]},{key:"substitution",label:"\uB300\uCE58\uD6C8\uB828",disc:"\uB2E8\uC5B4\uC758 \uC77C\uBD80 \uC74C\uC808\uC774\uB098 \uC74C\uC18C\uB97C \uBC14\uAFB8\uC5B4 \uC0C8\uB85C\uC6B4 \uC18C\uB9AC\uB97C \uB9CC\uB4DC\uB294 \uD6C8\uB828\uC785\uB2C8\uB2E4.",icon:"replace",types:[{key:"CHANGE_1_SYLL_IN_2SYLL",label:"2\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uBC14\uAFB8\uAE30",icon:"replace",color:wt,subTitle:"2\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC808\uC744 \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."},{key:"CHANGE_1_SYLL_IN_3SYLL",label:"3\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uBC14\uAFB8\uAE30",icon:"shuffle",color:wt,subTitle:"3\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC808\uC744 \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."},{key:"CHANGE_1_PHONEME_IN_1SYLL",label:"1\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC18C \uBC14\uAFB8\uAE30",icon:"arrow-right-left",color:wt,subTitle:"1\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC18C\uB97C \uBC14\uAFD4 \uC0C8 \uC18C\uB9AC\uB97C \uB9CC\uB4DC\uC138\uC694."},{key:"CHANGE_1_PHONEME_IN_2SYLL",label:"2\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC18C \uBC14\uAFB8\uAE30",icon:"flip-horizontal",color:wt,subTitle:"2\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC18C\uB97C \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."}]},{key:"attention",label:"\uCCAD\uAC01\uC801\uC8FC\uC758\uB825\uD6C8\uB828",disc:"\uC5EC\uB7EC \uC18C\uB9AC\uB97C \uB4E3\uACE0 \uC21C\uC11C\uB97C \uAE30\uC5B5\uD558\uB294 \uC8FC\uC758\uB825\uACFC \uB2E8\uAE30 \uAE30\uC5B5 \uD6C8\uB828\uC785\uB2C8\uB2E4.",icon:"list-ordered",types:[{key:"LISTEN_AND_REMEMBER_ORDER",label:"\uB4E3\uACE0 \uC21C\uC11C\uB300\uB85C \uAE30\uC5B5\uD558\uAE30",icon:"list-ordered",color:ql,subTitle:"\uC138 \uB2E8\uC5B4\uB97C \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694."}]}];function Ql(){const{t:e}=se.useTranslation();return s.useMemo(()=>{const t=Object.fromEntries(zl(e).map(o=>[o.key,o.label])),n={...t};return Jl.flatMap(o=>o.types).forEach(o=>{n[o.key]=e(`trainingType.${o.key}.label`,{defaultValue:o.label})}),{sentence:t,all:n}},[e])}function Zl({computeStyle:e,onScroll:t="close",onResize:n="close",ignoreOutsideClickSelector:o}){const[r,a]=s.useState(!1),[u,i]=s.useState({}),l=s.useRef(null),c=s.useRef(null),g=s.useCallback(()=>{l.current&&i(e(l.current.getBoundingClientRect(),l.current))},[e]);s.useEffect(()=>{if(!r)return;g();const f=y=>{const S=y.target;o&&S.closest?.(o)||l.current?.contains(S)||c.current?.contains(S)||a(!1)};document.addEventListener("mousedown",f),document.addEventListener("pointerdown",f);const m=y=>{c.current?.contains(y.target)||(t==="reposition"?g():t==="close"&&a(!1))};t!=="ignore"&&window.addEventListener("scroll",m,!0);const w=()=>{n==="reposition"?g():n==="close"&&a(!1)};let h=null;const p=()=>{w(),h&&clearTimeout(h),h=setTimeout(()=>{h=null,n==="reposition"&&g()},250)};return n!=="ignore"&&(window.addEventListener("resize",w),window.addEventListener("orientationchange",p)),()=>{document.removeEventListener("mousedown",f),document.removeEventListener("pointerdown",f),t!=="ignore"&&window.removeEventListener("scroll",m,!0),n!=="ignore"&&(window.removeEventListener("resize",w),window.removeEventListener("orientationchange",p)),h&&clearTimeout(h)}},[r,g,t,n,o]),s.useEffect(()=>{if(r)return wo(()=>a(!1))},[r]);const d=s.useCallback(()=>a(f=>!f),[]),C=s.useCallback(()=>a(!1),[]);return{open:r,setOpen:a,toggle:d,close:C,style:u,triggerRef:l,menuRef:c}}function Xl(e,{mode:t="playback",autoStart:n=!1,onPlaySpeaker:o,onComplete:r,playMs:a=1100,feedbackMs:u=1500}={}){const[i,l]=s.useState([]),[c,g]=s.useState(0),[d,C]=s.useState("idle"),[f,m]=s.useState(null),[w,h]=s.useState([]),[p,y]=s.useState(null),[S,E]=s.useState(0),M=s.useRef(0),B=s.useCallback(R=>{M.current=typeof R=="function"?R(M.current):R,E(M.current)},[]),T=s.useRef(o),D=s.useRef(r);s.useEffect(()=>{T.current=o,D.current=r},[o,r]);const I=s.useRef([]),v=()=>{I.current.forEach(clearTimeout),I.current=[]},$=(R,G)=>{I.current.push(setTimeout(G,R))};s.useEffect(()=>()=>v(),[]);const F=i[c]?.id??null,P=s.useRef(null),L=s.useCallback(()=>{v(),C("playing"),h([]),y(null),B(0);let R=0;e.forEach((G,Y)=>{$(R,()=>{g(Y),m(G.id),T.current?.(G)}),$(R+1e3,()=>{m(null),h(ee=>[...ee,G.id])}),R+=1300}),$(R,()=>{C("done"),D.current?.({score:0,total:e.length})})},[e,B]),k=s.useCallback((R,G)=>{if(G>=R.length){C("done"),D.current?.({score:M.current,total:R.length});return}P.current=null,g(G),y(null),C("playing"),m(R[G].id),T.current?.(R[G]),$(a,()=>{m(null),C("waiting")})},[a]),W=s.useCallback(()=>{v();const R=H(e);l(R),B(0),h([]),k(R,0)},[e,k,B]),X=s.useCallback(()=>{t==="playback"?(l(e),L()):W()},[t,e,L,W]),U=s.useCallback(()=>{v(),C("idle"),m(null),h([]),y(null),g(0),B(0),l([])},[B]),he=e.map(R=>R.id).join("|");s.useEffect(()=>(n?X():U(),()=>v()),[t,he,n]);const A=s.useCallback(R=>{d!=="waiting"||t==="playback"||P.current===c||(P.current=c,y(R),R===i[c]?.id&&B(G=>G+1),t==="exam"?(C("playing"),$(400,()=>k(i,c+1))):(C("feedback"),$(u,()=>k(i,c+1))))},[d,t,i,c,k,u,B]),N=t==="playback"?e.length:i.length;return{bind:{activeSpeakerId:f,playedIds:w,selectedId:p,answerId:F,showFeedback:d==="feedback",clickable:d==="waiting",onSelectSpeaker:A},index:c,total:N,score:S,phase:d,done:d==="done",start:X,reset:U}}exports.CACHE_GROUPS=Nn,exports.CORE_VERSION=Wi,exports.DocumentTitleSuppressContext=hn,exports.EMPTY_COMPOSITION=qt,exports.MediaQueryOverrideContext=Cn,exports.NO_CODA=ie,exports.SYLLABLE_MIN=le,exports.VAP_PAGE_SIZE_OPTIONS=rt,exports.buildGradeSection=eo,exports.buildPartOfSpeechSection=to,exports.buildPositionSection=ul,exports.buildSelectSection=al,exports.buildSyllableSection=rl,exports.buildWordTypeSection=no,exports.charToPronValue=co,exports.convertComposition=go,exports.fmtBytes=cr,exports.lsBytes=_n,exports.meaningKey=on,exports.normalizeWordAttributeFilter=nl,exports.pronToCharValue=Co,exports.syllableToFilter=Kt,exports.toWordAttributeFilterCodes=Gt,exports.today=Fe,exports.toggleAttributeFilter=il,exports.useAnchoredMenu=Zl,exports.useCacheManagement=dr,exports.useDailyTrainingSelection=jl,exports.useDelayedHoverAnchor=Vl,exports.useDeviceManagement=Br,exports.useDocumentTitle=Ho,exports.useEscToClose=Fl,exports.useFontScale=Io,exports.useHoverAnchor=Gl,exports.useMediaQuery=$o,exports.usePagedList=Wl,exports.usePasswordChange=zo,exports.useRelativeDay=Yo,exports.useSoundCompassExam=Xl,exports.useTablePaging=Ar,exports.useTableSort=vr,exports.useToastState=Yl,exports.useTrainingTypeLabels=Ql,exports.useVisitAllPanel=hr,exports.useVisitHistory=fr,exports.useVisitSchedule=pr,exports.useWindowEvent=mn,exports.useWordAttributeFilterKeys=Xn,exports.useWordDataStats=Cr,exports.useWordMeanings=Hl,exports.useWordTrainingDataGeneration=Tl,exports.useWordTrainingFilter=Bl,exports.valueToJamos=ge,exports.wordAttributeFilterFromCodes=Vt;