sonamu 0.7.30 → 0.7.31

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.
@@ -1 +1 @@
1
- {"version":3,"file":"sd.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/sd.template.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;GAGG;AACH,qBAAa,YAAa,SAAQ,QAAQ;;IAKxC,gBAAgB,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK;;;;IAW7E,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC;;;;;;;IAkLrC,OAAO,CAAC,UAAU;IAIlB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,0BAA0B;CAyBnC"}
1
+ {"version":3,"file":"sd.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/sd.template.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACpF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;;GAGG;AACH,qBAAa,YAAa,SAAQ,QAAQ;;IAKxC,gBAAgB,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK;;;;IAW7E,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC;;;;;;;IAsLrC,OAAO,CAAC,UAAU;IAIlB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,0BAA0B;CAyBnC"}
@@ -94,7 +94,10 @@ export function defineLocale(dict: Partial<MergedDictionary>) {
94
94
  // 각 locale별로 entity labels + Sonamu 내장 dict + 프로젝트 dict 합침
95
95
  const dictionaries: Record<string, Partial<MergedDictionary>> = {
96
96
  ${defaultLocale}: { ...sonamuDict${this.capitalize(defaultLocale)}, ...entityLabels, ...${defaultLocale} },
97
- ${supportedLocales.filter((locale)=>locale !== defaultLocale).map((locale)=>` ${locale}: { ...sonamuDict${this.capitalize(locale)}, ...${locale} },`).join("\n")}
97
+ ${supportedLocales.filter((locale)=>locale !== defaultLocale).map((locale)=>[
98
+ "en",
99
+ "ko"
100
+ ].includes(locale) ? ` ${locale}: { ...sonamuDict${this.capitalize(locale)}, ...${locale} },` : ` ${locale}: { ...${locale} },`).join("\n")}
98
101
  };
99
102
 
100
103
  type SDReturnType<K extends DictKey> = MergedDictionary[K] extends (...args: infer P) => string
@@ -264,4 +267,4 @@ ${entryLines.join("\n")}
264
267
  }
265
268
  }
266
269
 
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvc2QudGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi8uLi9hcGkvc29uYW11XCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyLCB0eXBlIEVudGl0eU5hbWVzUmVjb3JkIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IHBhcnNlRGljdEZpbGUgfSBmcm9tIFwiLi4vLi4vdXRpbHMvZGljdC1wYXJzZXJcIjtcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlXCI7XG5cbi8qKlxuICogU29uYW11IERpY3Rpb25hcnkgKFNEKSDthZztlIzrpr9cbiAqIGkxOG7snYQg7JyE7ZWcIHNkLmdlbmVyYXRlZC50cyDtjIzsnbzsnYQg7IOd7ISx7ZWp64uI64ukLlxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVfX3NkIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcInNkXCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChfbmFtZXM/OiBFbnRpdHlOYW1lc1JlY29yZCwgc2RUYXJnZXQ/OiBcImFwaVwiIHwgXCJ3ZWJcIiB8IFwiYXBwXCIpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBzZFRhcmdldCA/PyBcImFwaVwiO1xuICAgIC8vIGFwaS5kaXLsnYAg7IOB64yAIOqyveuhnChcImFwaVwiKeydtOuvgOuhnCwgd2ViL2FwcOuPhCDsg4HrjIAg6rK966Gc66GcIOunnuy2pFxuICAgIGNvbnN0IGRpciA9IHRhcmdldCA9PT0gXCJhcGlcIiA/IFNvbmFtdS5jb25maWcuYXBpLmRpciA6IHRhcmdldDtcblxuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IGAke2Rpcn0vc3JjL2kxOG5gLFxuICAgICAgcGF0aDogXCJzZC5nZW5lcmF0ZWQudHNcIixcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uc1tcInNkXCJdKSB7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgaTE4bkNvbmZpZyA9IFNvbmFtdS5jb25maWcuaTE4biA/PyB7XG4gICAgICBkZWZhdWx0TG9jYWxlOiBcImtvXCIsXG4gICAgICBzdXBwb3J0ZWRMb2NhbGVzOiBbXCJrb1wiXSxcbiAgICB9O1xuXG4gICAgY29uc3QgeyBkZWZhdWx0TG9jYWxlLCBzdXBwb3J0ZWRMb2NhbGVzIH0gPSBpMThuQ29uZmlnO1xuXG4gICAgLy8gZW50aXR5Lmpzb27sl5DshJwgZW50aXR5IGxhYmVscyDstpTstpxcbiAgICBjb25zdCBlbnRpdHlMYWJlbHMgPSB0aGlzLmV4dHJhY3RFbnRpdHlMYWJlbHMoKTtcblxuICAgIC8vIO2UjOueq+2PvOuzhCBsb2NhbGUg6rSA66asIOy9lOuTnFxuICAgIGNvbnN0IGxvY2FsZU1hbmFnZW1lbnRDb2RlID1cbiAgICAgIHRhcmdldCA9PT0gXCJhcGlcIlxuICAgICAgICA/IGBcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCJzb25hbXVcIjtcblxuY29uc3QgREVGQVVMVF9MT0NBTEUgPSBcIiR7ZGVmYXVsdExvY2FsZX1cIjtcbmNvbnN0IFNVUFBPUlRFRF9MT0NBTEVTID0gJHtKU09OLnN0cmluZ2lmeShzdXBwb3J0ZWRMb2NhbGVzKX07XG5mdW5jdGlvbiBnZXRDdXJyZW50TG9jYWxlKCk6IHN0cmluZyB7XG4gIGNvbnN0IGN0eCA9IFNvbmFtdS5nZXRDb250ZXh0KCk7XG4gIHJldHVybiBjdHg/LmxvY2FsZSA/PyBERUZBVUxUX0xPQ0FMRTtcbn1cbmAudHJpbSgpXG4gICAgICAgIDogYFxuY29uc3QgREVGQVVMVF9MT0NBTEUgPSBcIiR7ZGVmYXVsdExvY2FsZX1cIjtcbmNvbnN0IFNVUFBPUlRFRF9MT0NBTEVTID0gJHtKU09OLnN0cmluZ2lmeShzdXBwb3J0ZWRMb2NhbGVzKX07XG5sZXQgX2N1cnJlbnRMb2NhbGUgPSBERUZBVUxUX0xPQ0FMRTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldExvY2FsZShsb2NhbGU6IHN0cmluZykge1xuICBfY3VycmVudExvY2FsZSA9IGxvY2FsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRMb2NhbGUoKTogc3RyaW5nIHtcbiAgcmV0dXJuIF9jdXJyZW50TG9jYWxlO1xufVxuYC50cmltKCk7XG5cbiAgICAvLyBzb25hbXVEaWN066W8IOyGjOyKpCDtjIzsnbzsl5DshJwg7YyM7Iux7ZWY7JesIOy9lOuTnOuhnCDrs4DtmZggKO2DgOyehSDsoJXrs7Qg67O07KG0KVxuICAgIGNvbnN0IHNvbmFtdURpY3RLb0NvZGUgPSB0aGlzLmdlbmVyYXRlRGljdENvZGVGcm9tU291cmNlKFwic29uYW11RGljdEtvXCIsIFwia29cIik7XG4gICAgY29uc3Qgc29uYW11RGljdEVuQ29kZSA9IHRoaXMuZ2VuZXJhdGVEaWN0Q29kZUZyb21Tb3VyY2UoXCJzb25hbXVEaWN0RW5cIiwgXCJlblwiKTtcblxuICAgIC8vIGxvY2FsZSBpbXBvcnRcbiAgICBjb25zdCBsb2NhbGVJbXBvcnRzID0gc3VwcG9ydGVkTG9jYWxlc1xuICAgICAgLm1hcCgobG9jYWxlKSA9PiBgaW1wb3J0ICR7bG9jYWxlfSBmcm9tIFwiLi8ke2xvY2FsZX1cIjtgKVxuICAgICAgLmpvaW4oXCJcXG5cIik7XG5cbiAgICAvLyBlbnRpdHlMYWJlbHPrpbwg7L2U65Oc66GcIOuzgO2ZmFxuICAgIGNvbnN0IGVudGl0eUxhYmVsc0NvZGUgPSB0aGlzLmdlbmVyYXRlRW50aXR5TGFiZWxzQ29kZShlbnRpdHlMYWJlbHMpO1xuXG4gICAgY29uc3QgYm9keSA9IGBcbiR7bG9jYWxlTWFuYWdlbWVudENvZGV9XG5cbiR7bG9jYWxlSW1wb3J0c31cblxuLy8gZW50aXR5Lmpzb27sl5DshJwg7LaU7Lac7ZWcIGVudGl0eSBsYWJlbHMgKGRlZmF1bHRMb2NhbGUg7KCE7JqpKVxuJHtlbnRpdHlMYWJlbHNDb2RlfVxuXG4ke3NvbmFtdURpY3RLb0NvZGV9XG4ke3NvbmFtdURpY3RFbkNvZGV9XG5cbi8vIGRlZmF1bHRMb2NhbGXsnZggZGljdGlvbmFyeeulvCDquLDspIDsnLzroZwg7YKkIOy2lOy2nFxudHlwZSBQcm9qZWN0RGljdGlvbmFyeSA9IHR5cGVvZiAke2RlZmF1bHRMb2NhbGV9O1xudHlwZSBTb25hbXVEaWN0aW9uYXJ5ID0gdHlwZW9mIHNvbmFtdURpY3Qke3RoaXMuY2FwaXRhbGl6ZShkZWZhdWx0TG9jYWxlKX07XG50eXBlIEVudGl0eUxhYmVscyA9IHR5cGVvZiBlbnRpdHlMYWJlbHM7XG50eXBlIFJhd01lcmdlZERpY3Rpb25hcnkgPSBFbnRpdHlMYWJlbHMgJiBTb25hbXVEaWN0aW9uYXJ5ICYgUHJvamVjdERpY3Rpb25hcnk7XG5cbi8vIO2CpOuKlCDsnKDsp4DtlZjrkJgsIOqwkiDtg4DsnoXsnYAgc3RyaW5nIOuYkOuKlCDtlajsiJjroZwg7J2867CY7ZmUICjri6TrpbggbG9jYWxl7J2YIOumrO2EsOuftCDtg4DsnoUg7Lap64+MIOuwqeyngClcbnR5cGUgTWVyZ2VkRGljdGlvbmFyeSA9IHtcbiAgW0sgaW4ga2V5b2YgUmF3TWVyZ2VkRGljdGlvbmFyeV06IFJhd01lcmdlZERpY3Rpb25hcnlbS10gZXh0ZW5kcyAoLi4uYXJnczogaW5mZXIgUCkgPT4gc3RyaW5nXG4gICAgPyAoLi4uYXJnczogUCkgPT4gc3RyaW5nXG4gICAgOiBzdHJpbmc7XG59O1xudHlwZSBEaWN0S2V5ID0ga2V5b2YgTWVyZ2VkRGljdGlvbmFyeTtcbmV4cG9ydCB0eXBlIExvY2FsaXplZFN0cmluZyA9IHN0cmluZyAmIHsgX19icmFuZDogXCJMb2NhbGl6ZWRTdHJpbmdcIiB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lTG9jYWxlKGRpY3Q6IFBhcnRpYWw8TWVyZ2VkRGljdGlvbmFyeT4pIHtcbiAgcmV0dXJuIGRpY3Q7XG59XG5cbi8vIOqwgSBsb2NhbGXrs4TroZwgZW50aXR5IGxhYmVscyArIFNvbmFtdSDrgrTsnqUgZGljdCArIO2UhOuhnOygne2KuCBkaWN0IO2Vqey5qFxuY29uc3QgZGljdGlvbmFyaWVzOiBSZWNvcmQ8c3RyaW5nLCBQYXJ0aWFsPE1lcmdlZERpY3Rpb25hcnk+PiA9IHtcbiAgJHtkZWZhdWx0TG9jYWxlfTogeyAuLi5zb25hbXVEaWN0JHt0aGlzLmNhcGl0YWxpemUoZGVmYXVsdExvY2FsZSl9LCAuLi5lbnRpdHlMYWJlbHMsIC4uLiR7ZGVmYXVsdExvY2FsZX0gfSxcbiAgJHtzdXBwb3J0ZWRMb2NhbGVzXG4gICAgLmZpbHRlcigobG9jYWxlKSA9PiBsb2NhbGUgIT09IGRlZmF1bHRMb2NhbGUpXG4gICAgLm1hcCgobG9jYWxlKSA9PiBgICAke2xvY2FsZX06IHsgLi4uc29uYW11RGljdCR7dGhpcy5jYXBpdGFsaXplKGxvY2FsZSl9LCAuLi4ke2xvY2FsZX0gfSxgKVxuICAgIC5qb2luKFwiXFxuXCIpfVxufTtcblxudHlwZSBTRFJldHVyblR5cGU8SyBleHRlbmRzIERpY3RLZXk+ID0gTWVyZ2VkRGljdGlvbmFyeVtLXSBleHRlbmRzICguLi5hcmdzOiBpbmZlciBQKSA9PiBzdHJpbmdcbiAgPyAoLi4uYXJnczogUCkgPT4gTG9jYWxpemVkU3RyaW5nXG4gIDogTG9jYWxpemVkU3RyaW5nO1xuXG5mdW5jdGlvbiBnZXREaWN0VmFsdWU8SyBleHRlbmRzIERpY3RLZXk+KGtleTogSywgbG9jYWxlOiBzdHJpbmcpOiBTRFJldHVyblR5cGU8Sz4ge1xuICBjb25zdCBkaWN0ID0gZGljdGlvbmFyaWVzW2xvY2FsZV07XG4gIGNvbnN0IHZhbHVlID0gZGljdD8uW2tleV0gPz8gZGljdGlvbmFyaWVzW0RFRkFVTFRfTE9DQUxFXT8uW2tleV0gPz8ga2V5O1xuICByZXR1cm4gdmFsdWUgYXMgdW5rbm93biBhcyBTRFJldHVyblR5cGU8Sz47XG59XG5cbi8qKlxuICogU29uYW11IERpY3Rpb25hcnkg7ZWo7IiYXG4gKiBsb2NhbGXsl5Ag66ee64qUIOuyiOyXrSDthY3siqTtirjrpbwg67CY7ZmY7ZWp64uI64ukLlxuICpcbiAqIEBleGFtcGxlXG4gKiBTRChcImNvbW1vbi5zYXZlXCIpICAvLyDihpIgXCLsoIDsnqVcIiAoTG9jYWxpemVkU3RyaW5nKVxuICogU0QoXCJ1c2VyLm5vdEZvdW5kXCIpKDEpICAvLyDihpIgXCLsobTsnqztlZjsp4Ag7JWK64qUIFVzZXIgSUQgMVwiIChMb2NhbGl6ZWRTdHJpbmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTRDxLIGV4dGVuZHMgRGljdEtleT4oa2V5OiBLKTogU0RSZXR1cm5UeXBlPEs+IHtcbiAgY29uc3QgbG9jYWxlID0gZ2V0Q3VycmVudExvY2FsZSgpO1xuICByZXR1cm4gZ2V0RGljdFZhbHVlKGtleSwgbG9jYWxlKTtcbn1cblxuLyoqXG4gKiDtirnsoJUgbG9jYWxl7J2YIOuyiOyXrSDthY3siqTtirjrpbwg67CY7ZmY7ZWY64qUIO2VqOyImOulvCDsg53shLHtlanri4jri6QuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IEVOID0gU0QubG9jYWxlKFwiZW5cIik7XG4gKiBFTihcImNvbW1vbi5zYXZlXCIpICAvLyDihpIgXCJTYXZlXCJcbiAqL1xuU0QubG9jYWxlID0gKGxvY2FsZTogc3RyaW5nKSA9PiA8SyBleHRlbmRzIERpY3RLZXk+KGtleTogSyk6IFNEUmV0dXJuVHlwZTxLPiA9PiB7XG4gIHJldHVybiBnZXREaWN0VmFsdWUoa2V5LCBsb2NhbGUpO1xufTtcblxuLyoqXG4gKiBsb2NhbGXsl5Ag65Sw6528IOyggeygiO2VnCDsu6zrn7wg6rCS7J2EIOuwmO2ZmO2VqeuLiOuLpC5cbiAqIERC7JeQIG5hbWUsIG5hbWVfa28sIG5hbWVfZW7sspjrn7wgbG9jYWxpemVkIGNvbHVtbuydtCDsnojsnYQg65WMIOyCrOyaqe2VqeuLiOuLpC5cbiAqXG4gKiDsmrDshKDsiJzsnIQgKGtvIGxvY2FsZSk6IGNvbHVtbl9rbyDihpIgY29sdW1uIOKGkiBjb2x1bW5fZW5cbiAqIOyasOyEoOyInOychCAoZW4gbG9jYWxlKTogY29sdW1uX2VuIOKGkiBjb2x1bW4g4oaSIGNvbHVtbl9rb1xuICpcbiAqIEBleGFtcGxlXG4gKiBsb2NhbGl6ZWRDb2x1bW4odGFnLCBcIm5hbWVcIilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsaXplZENvbHVtbjxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIEsgZXh0ZW5kcyBrZXlvZiBUICYgc3RyaW5nPihcbiAgcm93OiBULFxuICBjb2x1bW46IEssXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBsb2NhbGUgPSBnZXRDdXJyZW50TG9jYWxlKCk7XG4gIGNvbnN0IG90aGVyTG9jYWxlcyA9IFNVUFBPUlRFRF9MT0NBTEVTLmZpbHRlcigobDogc3RyaW5nKSA9PiBsICE9PSBsb2NhbGUpO1xuICBjb25zdCBsb2NhbGl6ZWRLZXkgPSAoY29sdW1uOiBLLCBsb2NhbGU6IHN0cmluZykgPT4gXFxgXFwke1N0cmluZyhjb2x1bW4pfV9cXCR7bG9jYWxlfVxcYDtcbiAgY29uc3Qga2V5cyA9IFtsb2NhbGl6ZWRLZXkoY29sdW1uLCBsb2NhbGUpLCBjb2x1bW4sIC4uLm90aGVyTG9jYWxlcy5tYXAoKGwpID0+IGxvY2FsaXplZEtleShjb2x1bW4sIGwpKV07XG5cbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIGNvbnN0IHZhbHVlID0gcm93W2tleV07XG4gICAgaWYgKHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT09IFwiXCIpIHtcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogRW51beydmCBsb2NhbGl6ZWQgbGFiZWxz66W8IFByb3h566GcIOuwmO2ZmO2VqeuLiOuLpC5cbiAqIFNlbGVjdCDsu7Ttj6zrhIztirgg65Ox7JeQ7IScIEVudW1MYWJlbFtrZXldIOuMgOyLoCDsgqzsmqntlanri4jri6QuXG4gKlxuICogQGV4YW1wbGVcbiAqIFNELmVudW1MYWJlbHMoXCJUYWdPcmRlckJ5XCIpW2tleV0gIC8vIOKGkiDtmITsnqwgbG9jYWxl7J2YIOudvOuyqFxuICovXG5TRC5lbnVtTGFiZWxzID0gKGVudW1OYW1lOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBMb2NhbGl6ZWRTdHJpbmc+ID0+IHtcbiAgcmV0dXJuIG5ldyBQcm94eSh7fSBhcyBSZWNvcmQ8c3RyaW5nLCBMb2NhbGl6ZWRTdHJpbmc+LCB7XG4gICAgZ2V0KF8sIGtleTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBkaWN0S2V5ID0gXFxgZW51bS5cXCR7ZW51bU5hbWV9LlxcJHtrZXl9XFxgIGFzIERpY3RLZXk7XG4gICAgICByZXR1cm4gZ2V0RGljdFZhbHVlKGRpY3RLZXksIGdldEN1cnJlbnRMb2NhbGUoKSk7XG4gICAgfVxuICB9KTtcbn07XG5gLnRyaW0oKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgodW5kZWZpbmVkLCB0YXJnZXQpLFxuICAgICAgYm9keSxcbiAgICAgIGltcG9ydEtleXM6IFtdLFxuICAgICAgY3VzdG9tSGVhZGVyczogW10sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY2FwaXRhbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDrqqjrk6AgZW50aXR5Lmpzb27sl5DshJwgZW50aXR5IGxhYmVscyDstpTstpxcbiAgICogZW50aXR5Lmpzb27sl5DshJwg7KeB7KCRIOq0gOumrOuQmOuKlCDqsJLrp4wg7Y+s7ZWoICjsnpDrj5kg7IOd7ISxIOqwkiDsoJzsmbgpXG4gICAqIC0gZW50aXR5LntlbnRpdHlJZH06IGVudGl0eSB0aXRsZVxuICAgKiAtIGVudGl0eS57ZW50aXR5SWR9Lntwcm9wTmFtZX06IHByb3AgZGVzY1xuICAgKiAtIGVudW0ue0VudW1JZH0ue3ZhbHVlfTogZW51bSBsYWJlbFxuICAgKi9cbiAgcHJpdmF0ZSBleHRyYWN0RW50aXR5TGFiZWxzKCk6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdIHtcbiAgICBjb25zdCBsYWJlbHM6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdID0gW107XG5cbiAgICBpZiAoIUVudGl0eU1hbmFnZXIuaXNBdXRvbG9hZGVkKSB7XG4gICAgICByZXR1cm4gbGFiZWxzO1xuICAgIH1cblxuICAgIGNvbnN0IGVudGl0eUlkcyA9IEVudGl0eU1hbmFnZXIuZ2V0QWxsSWRzKCk7XG5cbiAgICBmb3IgKGNvbnN0IGVudGl0eUlkIG9mIGVudGl0eUlkcykge1xuICAgICAgY29uc3QgZW50aXR5ID0gRW50aXR5TWFuYWdlci5nZXQoZW50aXR5SWQpO1xuXG4gICAgICAvLyBlbnRpdHkgdGl0bGUgKGVudGl0eS5qc29u7JeQ7IScIOq0gOumrClcbiAgICAgIGxhYmVscy5wdXNoKHsga2V5OiBgZW50aXR5LiR7ZW50aXR5SWR9YCwgdmFsdWU6IGVudGl0eS50aXRsZSB9KTtcblxuICAgICAgLy8gcHJvcCBsYWJlbHMgKGVudGl0eS5qc29u7JeQ7IScIOq0gOumrClcbiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBlbnRpdHkucHJvcHMpIHtcbiAgICAgICAgaWYgKHByb3AuZGVzYykge1xuICAgICAgICAgIGxhYmVscy5wdXNoKHsga2V5OiBgZW50aXR5LiR7ZW50aXR5SWR9LiR7cHJvcC5uYW1lfWAsIHZhbHVlOiBwcm9wLmRlc2MgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gZW51bSBsYWJlbHMgKGVudGl0eS5qc29u7JeQ7IScIOq0gOumrClcbiAgICAgIGZvciAoY29uc3QgW2VudW1JZCwgZW51bUxhYmVsc01hcF0gb2YgT2JqZWN0LmVudHJpZXMoZW50aXR5LmVudW1MYWJlbHMpKSB7XG4gICAgICAgIGZvciAoY29uc3QgW3ZhbHVlLCBsYWJlbF0gb2YgT2JqZWN0LmVudHJpZXMoZW51bUxhYmVsc01hcCkpIHtcbiAgICAgICAgICBsYWJlbHMucHVzaCh7IGtleTogYGVudW0uJHtlbnVtSWR9LiR7dmFsdWV9YCwgdmFsdWU6IGxhYmVsIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIC8qKlxuICAgKiBlbnRpdHlMYWJlbHPrpbwgVHlwZVNjcmlwdCDsvZTrk5zroZwg67OA7ZmYXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlRW50aXR5TGFiZWxzQ29kZShsYWJlbHM6IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdKTogc3RyaW5nIHtcbiAgICBpZiAobGFiZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFwiY29uc3QgZW50aXR5TGFiZWxzID0ge30gYXMgY29uc3Q7XCI7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cmllcyA9IGxhYmVscy5tYXAoKHsga2V5LCB2YWx1ZSB9KSA9PiBgICBcIiR7a2V5fVwiOiBcIiR7dGhpcy5lc2NhcGVTdHJpbmcodmFsdWUpfVwiLGApO1xuXG4gICAgcmV0dXJuIGBjb25zdCBlbnRpdHlMYWJlbHMgPSB7XG4ke2VudHJpZXMuam9pbihcIlxcblwiKX1cbn0gYXMgY29uc3Q7YDtcbiAgfVxuXG4gIHByaXZhdGUgZXNjYXBlU3RyaW5nKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoL1xcXFwvZywgXCJcXFxcXFxcXFwiKS5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csIFwiXFxcXG5cIik7XG4gIH1cblxuICAvKipcbiAgICogc29uYW11IGRpY3Qg7IaM7IqkIO2MjOydvOydhCDsnb3slrQg7YyM7Iux7ZWY6rOgIOy9lOuTnOuhnCDrs4DtmZhcbiAgICovXG4gIHByaXZhdGUgZ2VuZXJhdGVEaWN0Q29kZUZyb21Tb3VyY2UodmFyTmFtZTogc3RyaW5nLCBsb2NhbGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gc29uYW11IO2MqO2CpOyngCDro6jtirjsl5DshJwgc3JjL2RpY3Qg6rK966GcIOywvuq4sFxuICAgIC8vIF9fZGlybmFtZeydtCBkaXN0L3RlbXBsYXRlL2ltcGxlbWVudGF0aW9uc+ydvCDsiJgg7J6I7Jy866+A66GcIO2MqO2CpOyngCDro6jtirgg6riw7KSA7Jy866GcIOygkeq3vFxuICAgIGNvbnN0IHBhY2thZ2VSb290ID0gcGF0aC5yZXNvbHZlKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiLi5cIiwgXCIuLlwiLCBcIi4uXCIpO1xuICAgIGNvbnN0IGRpY3RQYXRoID0gcGF0aC5qb2luKHBhY2thZ2VSb290LCBcInNyY1wiLCBcImRpY3RcIiwgYCR7bG9jYWxlfS50c2ApO1xuXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGRpY3RQYXRoKSkge1xuICAgICAgcmV0dXJuIGBjb25zdCAke3Zhck5hbWV9ID0ge307YDtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRyaWVzID0gcGFyc2VEaWN0RmlsZShkaWN0UGF0aCk7XG5cbiAgICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBgY29uc3QgJHt2YXJOYW1lfSA9IHt9O2A7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnlMaW5lcyA9IGVudHJpZXMubWFwKCh7IGtleSwgdmFsdWUsIGlzRnVuY3Rpb24gfSkgPT4ge1xuICAgICAgY29uc3QgY29kZVZhbHVlID0gaXNGdW5jdGlvbiA/IHZhbHVlIDogYFwiJHt0aGlzLmVzY2FwZVN0cmluZyh2YWx1ZSl9XCJgO1xuICAgICAgcmV0dXJuIGAgIFwiJHtrZXl9XCI6ICR7Y29kZVZhbHVlfSxgO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGBjb25zdCAke3Zhck5hbWV9ID0ge1xuJHtlbnRyeUxpbmVzLmpvaW4oXCJcXG5cIil9XG59O2A7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmcyIsInBhdGgiLCJTb25hbXUiLCJFbnRpdHlNYW5hZ2VyIiwicGFyc2VEaWN0RmlsZSIsIlRlbXBsYXRlIiwiVGVtcGxhdGVfX3NkIiwiZ2V0VGFyZ2V0QW5kUGF0aCIsIl9uYW1lcyIsInNkVGFyZ2V0IiwidGFyZ2V0IiwiZGlyIiwiY29uZmlnIiwiYXBpIiwicmVuZGVyIiwib3B0aW9ucyIsImkxOG5Db25maWciLCJpMThuIiwiZGVmYXVsdExvY2FsZSIsInN1cHBvcnRlZExvY2FsZXMiLCJlbnRpdHlMYWJlbHMiLCJleHRyYWN0RW50aXR5TGFiZWxzIiwibG9jYWxlTWFuYWdlbWVudENvZGUiLCJKU09OIiwic3RyaW5naWZ5IiwidHJpbSIsInNvbmFtdURpY3RLb0NvZGUiLCJnZW5lcmF0ZURpY3RDb2RlRnJvbVNvdXJjZSIsInNvbmFtdURpY3RFbkNvZGUiLCJsb2NhbGVJbXBvcnRzIiwibWFwIiwibG9jYWxlIiwiam9pbiIsImVudGl0eUxhYmVsc0NvZGUiLCJnZW5lcmF0ZUVudGl0eUxhYmVsc0NvZGUiLCJib2R5IiwiY2FwaXRhbGl6ZSIsImZpbHRlciIsInVuZGVmaW5lZCIsImltcG9ydEtleXMiLCJjdXN0b21IZWFkZXJzIiwic3RyIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImxhYmVscyIsImlzQXV0b2xvYWRlZCIsImVudGl0eUlkcyIsImdldEFsbElkcyIsImVudGl0eUlkIiwiZW50aXR5IiwiZ2V0IiwicHVzaCIsImtleSIsInZhbHVlIiwidGl0bGUiLCJwcm9wIiwicHJvcHMiLCJkZXNjIiwibmFtZSIsImVudW1JZCIsImVudW1MYWJlbHNNYXAiLCJPYmplY3QiLCJlbnRyaWVzIiwiZW51bUxhYmVscyIsImxhYmVsIiwibGVuZ3RoIiwiZXNjYXBlU3RyaW5nIiwicmVwbGFjZSIsInZhck5hbWUiLCJwYWNrYWdlUm9vdCIsInJlc29sdmUiLCJkaXJuYW1lIiwiZGljdFBhdGgiLCJleGlzdHNTeW5jIiwiZW50cnlMaW5lcyIsImlzRnVuY3Rpb24iLCJjb2RlVmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFFBQVEsS0FBSztBQUNwQixPQUFPQyxVQUFVLE9BQU87QUFDeEIsU0FBU0MsTUFBTSxRQUFRLHNCQUFtQjtBQUMxQyxTQUFTQyxhQUFhLFFBQWdDLGlDQUE4QjtBQUVwRixTQUFTQyxhQUFhLFFBQVEsNkJBQTBCO0FBQ3hELFNBQVNDLFFBQVEsUUFBUSxpQkFBYztBQUV2Qzs7O0NBR0MsR0FDRCxPQUFPLE1BQU1DLHFCQUFxQkQ7SUFDaEMsYUFBYztRQUNaLEtBQUssQ0FBQztJQUNSO0lBRUFFLGlCQUFpQkMsTUFBMEIsRUFBRUMsUUFBZ0MsRUFBRTtRQUM3RSxNQUFNQyxTQUFTRCxZQUFZO1FBQzNCLCtDQUErQztRQUMvQyxNQUFNRSxNQUFNRCxXQUFXLFFBQVFSLE9BQU9VLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDRixHQUFHLEdBQUdEO1FBRXZELE9BQU87WUFDTEEsUUFBUSxHQUFHQyxJQUFJLFNBQVMsQ0FBQztZQUN6QlYsTUFBTTtRQUNSO0lBQ0Y7SUFFQWEsT0FBT0MsT0FBOEIsRUFBRTtRQUNyQyxNQUFNLEVBQUVMLE1BQU0sRUFBRSxHQUFHSztRQUNuQixNQUFNQyxhQUFhZCxPQUFPVSxNQUFNLENBQUNLLElBQUksSUFBSTtZQUN2Q0MsZUFBZTtZQUNmQyxrQkFBa0I7Z0JBQUM7YUFBSztRQUMxQjtRQUVBLE1BQU0sRUFBRUQsYUFBYSxFQUFFQyxnQkFBZ0IsRUFBRSxHQUFHSDtRQUU1QyxpQ0FBaUM7UUFDakMsTUFBTUksZUFBZSxJQUFJLENBQUNDLG1CQUFtQjtRQUU3QyxvQkFBb0I7UUFDcEIsTUFBTUMsdUJBQ0paLFdBQVcsUUFDUCxDQUFDOzs7d0JBR2EsRUFBRVEsY0FBYzswQkFDZCxFQUFFSyxLQUFLQyxTQUFTLENBQUNMLGtCQUFrQjs7Ozs7QUFLN0QsQ0FBQyxDQUFDTSxJQUFJLEtBQ0ksQ0FBQzt3QkFD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
270
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvc2QudGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCIuLi8uLi9hcGkvc29uYW11XCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyLCB0eXBlIEVudGl0eU5hbWVzUmVjb3JkIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IHBhcnNlRGljdEZpbGUgfSBmcm9tIFwiLi4vLi4vdXRpbHMvZGljdC1wYXJzZXJcIjtcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlXCI7XG5cbi8qKlxuICogU29uYW11IERpY3Rpb25hcnkgKFNEKSDthZztlIzrpr9cbiAqIGkxOG7snYQg7JyE7ZWcIHNkLmdlbmVyYXRlZC50cyDtjIzsnbzsnYQg7IOd7ISx7ZWp64uI64ukLlxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVfX3NkIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcInNkXCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChfbmFtZXM/OiBFbnRpdHlOYW1lc1JlY29yZCwgc2RUYXJnZXQ/OiBcImFwaVwiIHwgXCJ3ZWJcIiB8IFwiYXBwXCIpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBzZFRhcmdldCA/PyBcImFwaVwiO1xuICAgIC8vIGFwaS5kaXLsnYAg7IOB64yAIOqyveuhnChcImFwaVwiKeydtOuvgOuhnCwgd2ViL2FwcOuPhCDsg4HrjIAg6rK966Gc66GcIOunnuy2pFxuICAgIGNvbnN0IGRpciA9IHRhcmdldCA9PT0gXCJhcGlcIiA/IFNvbmFtdS5jb25maWcuYXBpLmRpciA6IHRhcmdldDtcblxuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IGAke2Rpcn0vc3JjL2kxOG5gLFxuICAgICAgcGF0aDogXCJzZC5nZW5lcmF0ZWQudHNcIixcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uc1tcInNkXCJdKSB7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgaTE4bkNvbmZpZyA9IFNvbmFtdS5jb25maWcuaTE4biA/PyB7XG4gICAgICBkZWZhdWx0TG9jYWxlOiBcImtvXCIsXG4gICAgICBzdXBwb3J0ZWRMb2NhbGVzOiBbXCJrb1wiXSxcbiAgICB9O1xuXG4gICAgY29uc3QgeyBkZWZhdWx0TG9jYWxlLCBzdXBwb3J0ZWRMb2NhbGVzIH0gPSBpMThuQ29uZmlnO1xuXG4gICAgLy8gZW50aXR5Lmpzb27sl5DshJwgZW50aXR5IGxhYmVscyDstpTstpxcbiAgICBjb25zdCBlbnRpdHlMYWJlbHMgPSB0aGlzLmV4dHJhY3RFbnRpdHlMYWJlbHMoKTtcblxuICAgIC8vIO2UjOueq+2PvOuzhCBsb2NhbGUg6rSA66asIOy9lOuTnFxuICAgIGNvbnN0IGxvY2FsZU1hbmFnZW1lbnRDb2RlID1cbiAgICAgIHRhcmdldCA9PT0gXCJhcGlcIlxuICAgICAgICA/IGBcbmltcG9ydCB7IFNvbmFtdSB9IGZyb20gXCJzb25hbXVcIjtcblxuY29uc3QgREVGQVVMVF9MT0NBTEUgPSBcIiR7ZGVmYXVsdExvY2FsZX1cIjtcbmNvbnN0IFNVUFBPUlRFRF9MT0NBTEVTID0gJHtKU09OLnN0cmluZ2lmeShzdXBwb3J0ZWRMb2NhbGVzKX07XG5mdW5jdGlvbiBnZXRDdXJyZW50TG9jYWxlKCk6IHN0cmluZyB7XG4gIGNvbnN0IGN0eCA9IFNvbmFtdS5nZXRDb250ZXh0KCk7XG4gIHJldHVybiBjdHg/LmxvY2FsZSA/PyBERUZBVUxUX0xPQ0FMRTtcbn1cbmAudHJpbSgpXG4gICAgICAgIDogYFxuY29uc3QgREVGQVVMVF9MT0NBTEUgPSBcIiR7ZGVmYXVsdExvY2FsZX1cIjtcbmNvbnN0IFNVUFBPUlRFRF9MT0NBTEVTID0gJHtKU09OLnN0cmluZ2lmeShzdXBwb3J0ZWRMb2NhbGVzKX07XG5sZXQgX2N1cnJlbnRMb2NhbGUgPSBERUZBVUxUX0xPQ0FMRTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldExvY2FsZShsb2NhbGU6IHN0cmluZykge1xuICBfY3VycmVudExvY2FsZSA9IGxvY2FsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRMb2NhbGUoKTogc3RyaW5nIHtcbiAgcmV0dXJuIF9jdXJyZW50TG9jYWxlO1xufVxuYC50cmltKCk7XG5cbiAgICAvLyBzb25hbXVEaWN066W8IOyGjOyKpCDtjIzsnbzsl5DshJwg7YyM7Iux7ZWY7JesIOy9lOuTnOuhnCDrs4DtmZggKO2DgOyehSDsoJXrs7Qg67O07KG0KVxuICAgIGNvbnN0IHNvbmFtdURpY3RLb0NvZGUgPSB0aGlzLmdlbmVyYXRlRGljdENvZGVGcm9tU291cmNlKFwic29uYW11RGljdEtvXCIsIFwia29cIik7XG4gICAgY29uc3Qgc29uYW11RGljdEVuQ29kZSA9IHRoaXMuZ2VuZXJhdGVEaWN0Q29kZUZyb21Tb3VyY2UoXCJzb25hbXVEaWN0RW5cIiwgXCJlblwiKTtcblxuICAgIC8vIGxvY2FsZSBpbXBvcnRcbiAgICBjb25zdCBsb2NhbGVJbXBvcnRzID0gc3VwcG9ydGVkTG9jYWxlc1xuICAgICAgLm1hcCgobG9jYWxlKSA9PiBgaW1wb3J0ICR7bG9jYWxlfSBmcm9tIFwiLi8ke2xvY2FsZX1cIjtgKVxuICAgICAgLmpvaW4oXCJcXG5cIik7XG5cbiAgICAvLyBlbnRpdHlMYWJlbHPrpbwg7L2U65Oc66GcIOuzgO2ZmFxuICAgIGNvbnN0IGVudGl0eUxhYmVsc0NvZGUgPSB0aGlzLmdlbmVyYXRlRW50aXR5TGFiZWxzQ29kZShlbnRpdHlMYWJlbHMpO1xuXG4gICAgY29uc3QgYm9keSA9IGBcbiR7bG9jYWxlTWFuYWdlbWVudENvZGV9XG5cbiR7bG9jYWxlSW1wb3J0c31cblxuLy8gZW50aXR5Lmpzb27sl5DshJwg7LaU7Lac7ZWcIGVudGl0eSBsYWJlbHMgKGRlZmF1bHRMb2NhbGUg7KCE7JqpKVxuJHtlbnRpdHlMYWJlbHNDb2RlfVxuXG4ke3NvbmFtdURpY3RLb0NvZGV9XG4ke3NvbmFtdURpY3RFbkNvZGV9XG5cbi8vIGRlZmF1bHRMb2NhbGXsnZggZGljdGlvbmFyeeulvCDquLDspIDsnLzroZwg7YKkIOy2lOy2nFxudHlwZSBQcm9qZWN0RGljdGlvbmFyeSA9IHR5cGVvZiAke2RlZmF1bHRMb2NhbGV9O1xudHlwZSBTb25hbXVEaWN0aW9uYXJ5ID0gdHlwZW9mIHNvbmFtdURpY3Qke3RoaXMuY2FwaXRhbGl6ZShkZWZhdWx0TG9jYWxlKX07XG50eXBlIEVudGl0eUxhYmVscyA9IHR5cGVvZiBlbnRpdHlMYWJlbHM7XG50eXBlIFJhd01lcmdlZERpY3Rpb25hcnkgPSBFbnRpdHlMYWJlbHMgJiBTb25hbXVEaWN0aW9uYXJ5ICYgUHJvamVjdERpY3Rpb25hcnk7XG5cbi8vIO2CpOuKlCDsnKDsp4DtlZjrkJgsIOqwkiDtg4DsnoXsnYAgc3RyaW5nIOuYkOuKlCDtlajsiJjroZwg7J2867CY7ZmUICjri6TrpbggbG9jYWxl7J2YIOumrO2EsOuftCDtg4DsnoUg7Lap64+MIOuwqeyngClcbnR5cGUgTWVyZ2VkRGljdGlvbmFyeSA9IHtcbiAgW0sgaW4ga2V5b2YgUmF3TWVyZ2VkRGljdGlvbmFyeV06IFJhd01lcmdlZERpY3Rpb25hcnlbS10gZXh0ZW5kcyAoLi4uYXJnczogaW5mZXIgUCkgPT4gc3RyaW5nXG4gICAgPyAoLi4uYXJnczogUCkgPT4gc3RyaW5nXG4gICAgOiBzdHJpbmc7XG59O1xudHlwZSBEaWN0S2V5ID0ga2V5b2YgTWVyZ2VkRGljdGlvbmFyeTtcbmV4cG9ydCB0eXBlIExvY2FsaXplZFN0cmluZyA9IHN0cmluZyAmIHsgX19icmFuZDogXCJMb2NhbGl6ZWRTdHJpbmdcIiB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lTG9jYWxlKGRpY3Q6IFBhcnRpYWw8TWVyZ2VkRGljdGlvbmFyeT4pIHtcbiAgcmV0dXJuIGRpY3Q7XG59XG5cbi8vIOqwgSBsb2NhbGXrs4TroZwgZW50aXR5IGxhYmVscyArIFNvbmFtdSDrgrTsnqUgZGljdCArIO2UhOuhnOygne2KuCBkaWN0IO2Vqey5qFxuY29uc3QgZGljdGlvbmFyaWVzOiBSZWNvcmQ8c3RyaW5nLCBQYXJ0aWFsPE1lcmdlZERpY3Rpb25hcnk+PiA9IHtcbiAgJHtkZWZhdWx0TG9jYWxlfTogeyAuLi5zb25hbXVEaWN0JHt0aGlzLmNhcGl0YWxpemUoZGVmYXVsdExvY2FsZSl9LCAuLi5lbnRpdHlMYWJlbHMsIC4uLiR7ZGVmYXVsdExvY2FsZX0gfSxcbiAgJHtzdXBwb3J0ZWRMb2NhbGVzXG4gICAgLmZpbHRlcigobG9jYWxlKSA9PiBsb2NhbGUgIT09IGRlZmF1bHRMb2NhbGUpXG4gICAgLm1hcCgobG9jYWxlKSA9PlxuICAgICAgW1wiZW5cIiwgXCJrb1wiXS5pbmNsdWRlcyhsb2NhbGUpXG4gICAgICAgID8gYCAgJHtsb2NhbGV9OiB7IC4uLnNvbmFtdURpY3Qke3RoaXMuY2FwaXRhbGl6ZShsb2NhbGUpfSwgLi4uJHtsb2NhbGV9IH0sYFxuICAgICAgICA6IGAgICR7bG9jYWxlfTogeyAuLi4ke2xvY2FsZX0gfSxgLFxuICAgIClcbiAgICAuam9pbihcIlxcblwiKX1cbn07XG5cbnR5cGUgU0RSZXR1cm5UeXBlPEsgZXh0ZW5kcyBEaWN0S2V5PiA9IE1lcmdlZERpY3Rpb25hcnlbS10gZXh0ZW5kcyAoLi4uYXJnczogaW5mZXIgUCkgPT4gc3RyaW5nXG4gID8gKC4uLmFyZ3M6IFApID0+IExvY2FsaXplZFN0cmluZ1xuICA6IExvY2FsaXplZFN0cmluZztcblxuZnVuY3Rpb24gZ2V0RGljdFZhbHVlPEsgZXh0ZW5kcyBEaWN0S2V5PihrZXk6IEssIGxvY2FsZTogc3RyaW5nKTogU0RSZXR1cm5UeXBlPEs+IHtcbiAgY29uc3QgZGljdCA9IGRpY3Rpb25hcmllc1tsb2NhbGVdO1xuICBjb25zdCB2YWx1ZSA9IGRpY3Q/LltrZXldID8/IGRpY3Rpb25hcmllc1tERUZBVUxUX0xPQ0FMRV0/LltrZXldID8/IGtleTtcbiAgcmV0dXJuIHZhbHVlIGFzIHVua25vd24gYXMgU0RSZXR1cm5UeXBlPEs+O1xufVxuXG4vKipcbiAqIFNvbmFtdSBEaWN0aW9uYXJ5IO2VqOyImFxuICogbG9jYWxl7JeQIOunnuuKlCDrsojsl60g7YWN7Iqk7Yq466W8IOuwmO2ZmO2VqeuLiOuLpC5cbiAqXG4gKiBAZXhhbXBsZVxuICogU0QoXCJjb21tb24uc2F2ZVwiKSAgLy8g4oaSIFwi7KCA7J6lXCIgKExvY2FsaXplZFN0cmluZylcbiAqIFNEKFwidXNlci5ub3RGb3VuZFwiKSgxKSAgLy8g4oaSIFwi7KG07J6s7ZWY7KeAIOyViuuKlCBVc2VyIElEIDFcIiAoTG9jYWxpemVkU3RyaW5nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gU0Q8SyBleHRlbmRzIERpY3RLZXk+KGtleTogSyk6IFNEUmV0dXJuVHlwZTxLPiB7XG4gIGNvbnN0IGxvY2FsZSA9IGdldEN1cnJlbnRMb2NhbGUoKTtcbiAgcmV0dXJuIGdldERpY3RWYWx1ZShrZXksIGxvY2FsZSk7XG59XG5cbi8qKlxuICog7Yq57KCVIGxvY2FsZeydmCDrsojsl60g7YWN7Iqk7Yq466W8IOuwmO2ZmO2VmOuKlCDtlajsiJjrpbwg7IOd7ISx7ZWp64uI64ukLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBFTiA9IFNELmxvY2FsZShcImVuXCIpO1xuICogRU4oXCJjb21tb24uc2F2ZVwiKSAgLy8g4oaSIFwiU2F2ZVwiXG4gKi9cblNELmxvY2FsZSA9IChsb2NhbGU6IHN0cmluZykgPT4gPEsgZXh0ZW5kcyBEaWN0S2V5PihrZXk6IEspOiBTRFJldHVyblR5cGU8Sz4gPT4ge1xuICByZXR1cm4gZ2V0RGljdFZhbHVlKGtleSwgbG9jYWxlKTtcbn07XG5cbi8qKlxuICogbG9jYWxl7JeQIOuUsOudvCDsoIHsoIjtlZwg7Lus65+8IOqwkuydhCDrsJjtmZjtlanri4jri6QuXG4gKiBEQuyXkCBuYW1lLCBuYW1lX2tvLCBuYW1lX2Vu7LKY65+8IGxvY2FsaXplZCBjb2x1bW7snbQg7J6I7J2EIOuVjCDsgqzsmqntlanri4jri6QuXG4gKlxuICog7Jqw7ISg7Iic7JyEIChrbyBsb2NhbGUpOiBjb2x1bW5fa28g4oaSIGNvbHVtbiDihpIgY29sdW1uX2VuXG4gKiDsmrDshKDsiJzsnIQgKGVuIGxvY2FsZSk6IGNvbHVtbl9lbiDihpIgY29sdW1uIOKGkiBjb2x1bW5fa29cbiAqXG4gKiBAZXhhbXBsZVxuICogbG9jYWxpemVkQ29sdW1uKHRhZywgXCJuYW1lXCIpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbGl6ZWRDb2x1bW48VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBLIGV4dGVuZHMga2V5b2YgVCAmIHN0cmluZz4oXG4gIHJvdzogVCxcbiAgY29sdW1uOiBLLFxuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgbG9jYWxlID0gZ2V0Q3VycmVudExvY2FsZSgpO1xuICBjb25zdCBvdGhlckxvY2FsZXMgPSBTVVBQT1JURURfTE9DQUxFUy5maWx0ZXIoKGw6IHN0cmluZykgPT4gbCAhPT0gbG9jYWxlKTtcbiAgY29uc3QgbG9jYWxpemVkS2V5ID0gKGNvbHVtbjogSywgbG9jYWxlOiBzdHJpbmcpID0+IFxcYFxcJHtTdHJpbmcoY29sdW1uKX1fXFwke2xvY2FsZX1cXGA7XG4gIGNvbnN0IGtleXMgPSBbbG9jYWxpemVkS2V5KGNvbHVtbiwgbG9jYWxlKSwgY29sdW1uLCAuLi5vdGhlckxvY2FsZXMubWFwKChsKSA9PiBsb2NhbGl6ZWRLZXkoY29sdW1uLCBsKSldO1xuXG4gIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHJvd1trZXldO1xuICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIHZhbHVlICE9PSBcIlwiKSB7XG4gICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEVudW3snZggbG9jYWxpemVkIGxhYmVsc+ulvCBQcm94eeuhnCDrsJjtmZjtlanri4jri6QuXG4gKiBTZWxlY3Qg7Lu07Y+s64SM7Yq4IOuTseyXkOyEnCBFbnVtTGFiZWxba2V5XSDrjIDsi6Ag7IKs7Jqp7ZWp64uI64ukLlxuICpcbiAqIEBleGFtcGxlXG4gKiBTRC5lbnVtTGFiZWxzKFwiVGFnT3JkZXJCeVwiKVtrZXldICAvLyDihpIg7ZiE7J6sIGxvY2FsZeydmCDrnbzrsqhcbiAqL1xuU0QuZW51bUxhYmVscyA9IChlbnVtTmFtZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgTG9jYWxpemVkU3RyaW5nPiA9PiB7XG4gIHJldHVybiBuZXcgUHJveHkoe30gYXMgUmVjb3JkPHN0cmluZywgTG9jYWxpemVkU3RyaW5nPiwge1xuICAgIGdldChfLCBrZXk6IHN0cmluZykge1xuICAgICAgY29uc3QgZGljdEtleSA9IFxcYGVudW0uXFwke2VudW1OYW1lfS5cXCR7a2V5fVxcYCBhcyBEaWN0S2V5O1xuICAgICAgcmV0dXJuIGdldERpY3RWYWx1ZShkaWN0S2V5LCBnZXRDdXJyZW50TG9jYWxlKCkpO1xuICAgIH1cbiAgfSk7XG59O1xuYC50cmltKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXRUYXJnZXRBbmRQYXRoKHVuZGVmaW5lZCwgdGFyZ2V0KSxcbiAgICAgIGJvZHksXG4gICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICAgIGN1c3RvbUhlYWRlcnM6IFtdLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNhcGl0YWxpemUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG4gIH1cblxuICAvKipcbiAgICog66qo65OgIGVudGl0eS5qc29u7JeQ7IScIGVudGl0eSBsYWJlbHMg7LaU7LacXG4gICAqIGVudGl0eS5qc29u7JeQ7IScIOyngeygkSDqtIDrpqzrkJjripQg6rCS66eMIO2PrO2VqCAo7J6Q64+ZIOyDneyEsSDqsJIg7KCc7Jm4KVxuICAgKiAtIGVudGl0eS57ZW50aXR5SWR9OiBlbnRpdHkgdGl0bGVcbiAgICogLSBlbnRpdHkue2VudGl0eUlkfS57cHJvcE5hbWV9OiBwcm9wIGRlc2NcbiAgICogLSBlbnVtLntFbnVtSWR9Lnt2YWx1ZX06IGVudW0gbGFiZWxcbiAgICovXG4gIHByaXZhdGUgZXh0cmFjdEVudGl0eUxhYmVscygpOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSB7XG4gICAgY29uc3QgbGFiZWxzOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuXG4gICAgaWYgKCFFbnRpdHlNYW5hZ2VyLmlzQXV0b2xvYWRlZCkge1xuICAgICAgcmV0dXJuIGxhYmVscztcbiAgICB9XG5cbiAgICBjb25zdCBlbnRpdHlJZHMgPSBFbnRpdHlNYW5hZ2VyLmdldEFsbElkcygpO1xuXG4gICAgZm9yIChjb25zdCBlbnRpdHlJZCBvZiBlbnRpdHlJZHMpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IEVudGl0eU1hbmFnZXIuZ2V0KGVudGl0eUlkKTtcblxuICAgICAgLy8gZW50aXR5IHRpdGxlIChlbnRpdHkuanNvbuyXkOyEnCDqtIDrpqwpXG4gICAgICBsYWJlbHMucHVzaCh7IGtleTogYGVudGl0eS4ke2VudGl0eUlkfWAsIHZhbHVlOiBlbnRpdHkudGl0bGUgfSk7XG5cbiAgICAgIC8vIHByb3AgbGFiZWxzIChlbnRpdHkuanNvbuyXkOyEnCDqtIDrpqwpXG4gICAgICBmb3IgKGNvbnN0IHByb3Agb2YgZW50aXR5LnByb3BzKSB7XG4gICAgICAgIGlmIChwcm9wLmRlc2MpIHtcbiAgICAgICAgICBsYWJlbHMucHVzaCh7IGtleTogYGVudGl0eS4ke2VudGl0eUlkfS4ke3Byb3AubmFtZX1gLCB2YWx1ZTogcHJvcC5kZXNjIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGVudW0gbGFiZWxzIChlbnRpdHkuanNvbuyXkOyEnCDqtIDrpqwpXG4gICAgICBmb3IgKGNvbnN0IFtlbnVtSWQsIGVudW1MYWJlbHNNYXBdIG9mIE9iamVjdC5lbnRyaWVzKGVudGl0eS5lbnVtTGFiZWxzKSkge1xuICAgICAgICBmb3IgKGNvbnN0IFt2YWx1ZSwgbGFiZWxdIG9mIE9iamVjdC5lbnRyaWVzKGVudW1MYWJlbHNNYXApKSB7XG4gICAgICAgICAgbGFiZWxzLnB1c2goeyBrZXk6IGBlbnVtLiR7ZW51bUlkfS4ke3ZhbHVlfWAsIHZhbHVlOiBsYWJlbCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsYWJlbHM7XG4gIH1cblxuICAvKipcbiAgICogZW50aXR5TGFiZWxz66W8IFR5cGVTY3JpcHQg7L2U65Oc66GcIOuzgO2ZmFxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZUVudGl0eUxhYmVsc0NvZGUobGFiZWxzOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSk6IHN0cmluZyB7XG4gICAgaWYgKGxhYmVscy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBcImNvbnN0IGVudGl0eUxhYmVscyA9IHt9IGFzIGNvbnN0O1wiO1xuICAgIH1cblxuICAgIGNvbnN0IGVudHJpZXMgPSBsYWJlbHMubWFwKCh7IGtleSwgdmFsdWUgfSkgPT4gYCAgXCIke2tleX1cIjogXCIke3RoaXMuZXNjYXBlU3RyaW5nKHZhbHVlKX1cIixgKTtcblxuICAgIHJldHVybiBgY29uc3QgZW50aXR5TGFiZWxzID0ge1xuJHtlbnRyaWVzLmpvaW4oXCJcXG5cIil9XG59IGFzIGNvbnN0O2A7XG4gIH1cblxuICBwcml2YXRlIGVzY2FwZVN0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cXFxcL2csIFwiXFxcXFxcXFxcIikucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpLnJlcGxhY2UoL1xcbi9nLCBcIlxcXFxuXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIHNvbmFtdSBkaWN0IOyGjOyKpCDtjIzsnbzsnYQg7J297Ja0IO2MjOyLse2VmOqzoCDsvZTrk5zroZwg67OA7ZmYXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlRGljdENvZGVGcm9tU291cmNlKHZhck5hbWU6IHN0cmluZywgbG9jYWxlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIHNvbmFtdSDtjKjtgqTsp4Ag66Oo7Yq47JeQ7IScIHNyYy9kaWN0IOqyveuhnCDssL7quLBcbiAgICAvLyBfX2Rpcm5hbWXsnbQgZGlzdC90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnPsnbwg7IiYIOyeiOycvOuvgOuhnCDtjKjtgqTsp4Ag66Oo7Yq4IOq4sOykgOycvOuhnCDsoJHqt7xcbiAgICBjb25zdCBwYWNrYWdlUm9vdCA9IHBhdGgucmVzb2x2ZShpbXBvcnQubWV0YS5kaXJuYW1lLCBcIi4uXCIsIFwiLi5cIiwgXCIuLlwiKTtcbiAgICBjb25zdCBkaWN0UGF0aCA9IHBhdGguam9pbihwYWNrYWdlUm9vdCwgXCJzcmNcIiwgXCJkaWN0XCIsIGAke2xvY2FsZX0udHNgKTtcblxuICAgIGlmICghZnMuZXhpc3RzU3luYyhkaWN0UGF0aCkpIHtcbiAgICAgIHJldHVybiBgY29uc3QgJHt2YXJOYW1lfSA9IHt9O2A7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cmllcyA9IHBhcnNlRGljdEZpbGUoZGljdFBhdGgpO1xuXG4gICAgaWYgKGVudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gYGNvbnN0ICR7dmFyTmFtZX0gPSB7fTtgO1xuICAgIH1cblxuICAgIGNvbnN0IGVudHJ5TGluZXMgPSBlbnRyaWVzLm1hcCgoeyBrZXksIHZhbHVlLCBpc0Z1bmN0aW9uIH0pID0+IHtcbiAgICAgIGNvbnN0IGNvZGVWYWx1ZSA9IGlzRnVuY3Rpb24gPyB2YWx1ZSA6IGBcIiR7dGhpcy5lc2NhcGVTdHJpbmcodmFsdWUpfVwiYDtcbiAgICAgIHJldHVybiBgICBcIiR7a2V5fVwiOiAke2NvZGVWYWx1ZX0sYDtcbiAgICB9KTtcblxuICAgIHJldHVybiBgY29uc3QgJHt2YXJOYW1lfSA9IHtcbiR7ZW50cnlMaW5lcy5qb2luKFwiXFxuXCIpfVxufTtgO1xuICB9XG59XG4iXSwibmFtZXMiOlsiZnMiLCJwYXRoIiwiU29uYW11IiwiRW50aXR5TWFuYWdlciIsInBhcnNlRGljdEZpbGUiLCJUZW1wbGF0ZSIsIlRlbXBsYXRlX19zZCIsImdldFRhcmdldEFuZFBhdGgiLCJfbmFtZXMiLCJzZFRhcmdldCIsInRhcmdldCIsImRpciIsImNvbmZpZyIsImFwaSIsInJlbmRlciIsIm9wdGlvbnMiLCJpMThuQ29uZmlnIiwiaTE4biIsImRlZmF1bHRMb2NhbGUiLCJzdXBwb3J0ZWRMb2NhbGVzIiwiZW50aXR5TGFiZWxzIiwiZXh0cmFjdEVudGl0eUxhYmVscyIsImxvY2FsZU1hbmFnZW1lbnRDb2RlIiwiSlNPTiIsInN0cmluZ2lmeSIsInRyaW0iLCJzb25hbXVEaWN0S29Db2RlIiwiZ2VuZXJhdGVEaWN0Q29kZUZyb21Tb3VyY2UiLCJzb25hbXVEaWN0RW5Db2RlIiwibG9jYWxlSW1wb3J0cyIsIm1hcCIsImxvY2FsZSIsImpvaW4iLCJlbnRpdHlMYWJlbHNDb2RlIiwiZ2VuZXJhdGVFbnRpdHlMYWJlbHNDb2RlIiwiYm9keSIsImNhcGl0YWxpemUiLCJmaWx0ZXIiLCJpbmNsdWRlcyIsInVuZGVmaW5lZCIsImltcG9ydEtleXMiLCJjdXN0b21IZWFkZXJzIiwic3RyIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImxhYmVscyIsImlzQXV0b2xvYWRlZCIsImVudGl0eUlkcyIsImdldEFsbElkcyIsImVudGl0eUlkIiwiZW50aXR5IiwiZ2V0IiwicHVzaCIsImtleSIsInZhbHVlIiwidGl0bGUiLCJwcm9wIiwicHJvcHMiLCJkZXNjIiwibmFtZSIsImVudW1JZCIsImVudW1MYWJlbHNNYXAiLCJPYmplY3QiLCJlbnRyaWVzIiwiZW51bUxhYmVscyIsImxhYmVsIiwibGVuZ3RoIiwiZXNjYXBlU3RyaW5nIiwicmVwbGFjZSIsInZhck5hbWUiLCJwYWNrYWdlUm9vdCIsInJlc29sdmUiLCJkaXJuYW1lIiwiZGljdFBhdGgiLCJleGlzdHNTeW5jIiwiZW50cnlMaW5lcyIsImlzRnVuY3Rpb24iLCJjb2RlVmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFFBQVEsS0FBSztBQUNwQixPQUFPQyxVQUFVLE9BQU87QUFDeEIsU0FBU0MsTUFBTSxRQUFRLHNCQUFtQjtBQUMxQyxTQUFTQyxhQUFhLFFBQWdDLGlDQUE4QjtBQUVwRixTQUFTQyxhQUFhLFFBQVEsNkJBQTBCO0FBQ3hELFNBQVNDLFFBQVEsUUFBUSxpQkFBYztBQUV2Qzs7O0NBR0MsR0FDRCxPQUFPLE1BQU1DLHFCQUFxQkQ7SUFDaEMsYUFBYztRQUNaLEtBQUssQ0FBQztJQUNSO0lBRUFFLGlCQUFpQkMsTUFBMEIsRUFBRUMsUUFBZ0MsRUFBRTtRQUM3RSxNQUFNQyxTQUFTRCxZQUFZO1FBQzNCLCtDQUErQztRQUMvQyxNQUFNRSxNQUFNRCxXQUFXLFFBQVFSLE9BQU9VLE1BQU0sQ0FBQ0MsR0FBRyxDQUFDRixHQUFHLEdBQUdEO1FBRXZELE9BQU87WUFDTEEsUUFBUSxHQUFHQyxJQUFJLFNBQVMsQ0FBQztZQUN6QlYsTUFBTTtRQUNSO0lBQ0Y7SUFFQWEsT0FBT0MsT0FBOEIsRUFBRTtRQUNyQyxNQUFNLEVBQUVMLE1BQU0sRUFBRSxHQUFHSztRQUNuQixNQUFNQyxhQUFhZCxPQUFPVSxNQUFNLENBQUNLLElBQUksSUFBSTtZQUN2Q0MsZUFBZTtZQUNmQyxrQkFBa0I7Z0JBQUM7YUFBSztRQUMxQjtRQUVBLE1BQU0sRUFBRUQsYUFBYSxFQUFFQyxnQkFBZ0IsRUFBRSxHQUFHSDtRQUU1QyxpQ0FBaUM7UUFDakMsTUFBTUksZUFBZSxJQUFJLENBQUNDLG1CQUFtQjtRQUU3QyxvQkFBb0I7UUFDcEIsTUFBTUMsdUJB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sonamu",
3
- "version": "0.7.30",
3
+ "version": "0.7.31",
4
4
  "description": "Sonamu — TypeScript Fullstack API Framework",
5
5
  "keywords": [
6
6
  "typescript",
@@ -111,10 +111,10 @@
111
111
  "vitest": "^4.0.10",
112
112
  "xlsx": "^0.18.5",
113
113
  "zod": "^4.1.12",
114
- "@sonamu-kit/hmr-hook": "^0.4.1",
115
114
  "@sonamu-kit/tasks": "^0.1.3",
116
- "@sonamu-kit/ts-loader": "^2.1.3",
117
- "@sonamu-kit/hmr-runner": "^0.1.1"
115
+ "@sonamu-kit/hmr-runner": "^0.1.1",
116
+ "@sonamu-kit/hmr-hook": "^0.4.1",
117
+ "@sonamu-kit/ts-loader": "^2.1.3"
118
118
  },
119
119
  "devDependencies": {
120
120
  "@biomejs/biome": "^2.3.10",
@@ -112,7 +112,11 @@ const dictionaries: Record<string, Partial<MergedDictionary>> = {
112
112
  ${defaultLocale}: { ...sonamuDict${this.capitalize(defaultLocale)}, ...entityLabels, ...${defaultLocale} },
113
113
  ${supportedLocales
114
114
  .filter((locale) => locale !== defaultLocale)
115
- .map((locale) => ` ${locale}: { ...sonamuDict${this.capitalize(locale)}, ...${locale} },`)
115
+ .map((locale) =>
116
+ ["en", "ko"].includes(locale)
117
+ ? ` ${locale}: { ...sonamuDict${this.capitalize(locale)}, ...${locale} },`
118
+ : ` ${locale}: { ...${locale} },`,
119
+ )
116
120
  .join("\n")}
117
121
  };
118
122