{"version":3,"sources":["../../src/zod/index.ts","../../src/zod/schemas.ts","../../src/core/alpha2-codes.ts","../../src/core/errors.ts","../../src/core/alpha2.ts","../../src/core/alpha3-map.ts","../../src/core/alpha3.ts","../../src/core/subdivision.ts"],"sourcesContent":["export {\n  countryAlpha2LooseSchema,\n  countryAlpha2Schema,\n  countryAlpha3Schema,\n  subdivisionCodeSchema,\n} from \"./schemas.js\";\n","import { z } from \"zod\";\nimport { isAssignedAlpha2, normalizeAlpha2 } from \"../core/alpha2.js\";\nimport { alpha3ToAlpha2 } from \"../core/alpha3.js\";\nimport { normalizeSubdivisionCode } from \"../core/subdivision.js\";\n\nexport const countryAlpha2Schema = z\n  .string()\n  .trim()\n  .transform((value, ctx) => {\n    try {\n      return normalizeAlpha2(value);\n    } catch (error) {\n      ctx.addIssue({\n        code: \"custom\",\n        message: error instanceof Error ? error.message : \"Invalid country code\",\n      });\n      return z.NEVER;\n    }\n  });\n\nexport const countryAlpha2LooseSchema = z\n  .string()\n  .trim()\n  .refine((value) => isAssignedAlpha2(value), {\n    message: \"Expected assigned ISO 3166-1 alpha-2 code\",\n  });\n\nexport const countryAlpha3Schema = z\n  .string()\n  .trim()\n  .transform((value, ctx) => {\n    try {\n      return alpha3ToAlpha2(value);\n    } catch (error) {\n      ctx.addIssue({\n        code: \"custom\",\n        message: error instanceof Error ? error.message : \"Invalid alpha-3 code\",\n      });\n      return z.NEVER;\n    }\n  });\n\nexport const subdivisionCodeSchema = z\n  .object({\n    countryAlpha2: countryAlpha2Schema,\n    subdivision: z.string().trim().min(1),\n  })\n  .transform(({ countryAlpha2, subdivision }) =>\n    normalizeSubdivisionCode(countryAlpha2, subdivision),\n  );\n","/** ISO 3166-1 alpha-2 assigned codes (including user-assigned and exceptional reservations). */\nexport const ISO_3166_1_ALPHA2_CODES = [\n  \"AD\", \"AE\", \"AF\", \"AG\", \"AI\", \"AL\", \"AM\", \"AO\", \"AQ\", \"AR\", \"AS\", \"AT\", \"AU\", \"AW\", \"AX\", \"AZ\",\n  \"BA\", \"BB\", \"BD\", \"BE\", \"BF\", \"BG\", \"BH\", \"BI\", \"BJ\", \"BL\", \"BM\", \"BN\", \"BO\", \"BQ\", \"BR\", \"BS\",\n  \"BT\", \"BV\", \"BW\", \"BY\", \"BZ\", \"CA\", \"CC\", \"CD\", \"CF\", \"CG\", \"CH\", \"CI\", \"CK\", \"CL\", \"CM\", \"CN\",\n  \"CO\", \"CR\", \"CU\", \"CV\", \"CW\", \"CX\", \"CY\", \"CZ\", \"DE\", \"DJ\", \"DK\", \"DM\", \"DO\", \"DZ\", \"EC\", \"EE\",\n  \"EG\", \"EH\", \"ER\", \"ES\", \"ET\", \"FI\", \"FJ\", \"FK\", \"FM\", \"FO\", \"FR\", \"GA\", \"GB\", \"GD\", \"GE\", \"GF\",\n  \"GG\", \"GH\", \"GI\", \"GL\", \"GM\", \"GN\", \"GP\", \"GQ\", \"GR\", \"GS\", \"GT\", \"GU\", \"GW\", \"GY\", \"HK\", \"HM\",\n  \"HN\", \"HR\", \"HT\", \"HU\", \"ID\", \"IE\", \"IL\", \"IM\", \"IN\", \"IO\", \"IQ\", \"IR\", \"IS\", \"IT\", \"JE\", \"JM\",\n  \"JO\", \"JP\", \"KE\", \"KG\", \"KH\", \"KI\", \"KM\", \"KN\", \"KP\", \"KR\", \"KW\", \"KY\", \"KZ\", \"LA\", \"LB\", \"LC\",\n  \"LI\", \"LK\", \"LR\", \"LS\", \"LT\", \"LU\", \"LV\", \"LY\", \"MA\", \"MC\", \"MD\", \"ME\", \"MF\", \"MG\", \"MH\", \"MK\",\n  \"ML\", \"MM\", \"MN\", \"MO\", \"MP\", \"MQ\", \"MR\", \"MS\", \"MT\", \"MU\", \"MV\", \"MW\", \"MX\", \"MY\", \"MZ\", \"NA\",\n  \"NC\", \"NE\", \"NF\", \"NG\", \"NI\", \"NL\", \"NO\", \"NP\", \"NR\", \"NU\", \"NZ\", \"OM\", \"PA\", \"PE\", \"PF\", \"PG\",\n  \"PH\", \"PK\", \"PL\", \"PM\", \"PN\", \"PR\", \"PS\", \"PT\", \"PW\", \"PY\", \"QA\", \"RE\", \"RO\", \"RS\", \"RU\", \"RW\",\n  \"SA\", \"SB\", \"SC\", \"SD\", \"SE\", \"SG\", \"SH\", \"SI\", \"SJ\", \"SK\", \"SL\", \"SM\", \"SN\", \"SO\", \"SR\", \"SS\",\n  \"ST\", \"SV\", \"SX\", \"SY\", \"SZ\", \"TC\", \"TD\", \"TF\", \"TG\", \"TH\", \"TJ\", \"TK\", \"TL\", \"TM\", \"TN\", \"TO\",\n  \"TR\", \"TT\", \"TV\", \"TW\", \"TZ\", \"UA\", \"UG\", \"UM\", \"US\", \"UY\", \"UZ\", \"VA\", \"VC\", \"VE\", \"VG\", \"VI\",\n  \"VN\", \"VU\", \"WF\", \"WS\", \"XK\", \"YE\", \"YT\", \"ZA\", \"ZM\", \"ZW\",\n] as const;\n\nexport type AssignedAlpha2 = (typeof ISO_3166_1_ALPHA2_CODES)[number];\n\nexport const ISO_3166_1_ALPHA2_SET: ReadonlySet<string> = new Set(\n  ISO_3166_1_ALPHA2_CODES,\n);\n","export class CountryCodeError extends Error {\n  constructor(message: string) {\n    super(message);\n    this.name = \"CountryCodeError\";\n  }\n}\n","import { ISO_3166_1_ALPHA2_SET, ISO_3166_1_ALPHA2_CODES } from \"./alpha2-codes.js\";\nimport { CountryCodeError } from \"./errors.js\";\nimport type { CountryCodeAlpha2 } from \"./types.js\";\n\nconst ALPHA2_FORMAT = /^[A-Z]{2}$/;\n\n/** True when `code` is an assigned ISO 3166-1 alpha-2 code (after trim/uppercase). */\nexport function isAssignedAlpha2(code: string): boolean {\n  const upper = code.trim().toUpperCase();\n  return ALPHA2_FORMAT.test(upper) && ISO_3166_1_ALPHA2_SET.has(upper);\n}\n\n/** Normalize to assigned alpha-2 or throw `CountryCodeError`. */\nexport function normalizeAlpha2(code: string): CountryCodeAlpha2 {\n  const upper = code.trim().toUpperCase();\n  if (!ALPHA2_FORMAT.test(upper)) {\n    throw new CountryCodeError(\n      `Invalid country code \"${code}\" — expected ISO 3166-1 alpha-2 (two letters)`,\n    );\n  }\n  if (!ISO_3166_1_ALPHA2_SET.has(upper)) {\n    throw new CountryCodeError(\n      `Country code \"${upper}\" is not an assigned ISO 3166-1 alpha-2 code`,\n    );\n  }\n  return upper as CountryCodeAlpha2;\n}\n\n/** Readonly list of assigned alpha-2 codes (stable order). */\nexport function listAssignedAlpha2(): readonly string[] {\n  return ISO_3166_1_ALPHA2_CODES;\n}\n\nexport function compareAlpha2(a: string, b: string): number {\n  return normalizeAlpha2(a).localeCompare(normalizeAlpha2(b));\n}\n","import type { AssignedAlpha2 } from \"./alpha2-codes.js\";\n\n/** ISO 3166-1 alpha-3 → alpha-2 (assigned codes). */\nexport const ISO_3166_1_ALPHA3_TO_ALPHA2: Record<string, AssignedAlpha2> = {\n  AFG: \"AF\", ALA: \"AX\", ALB: \"AL\", DZA: \"DZ\", ASM: \"AS\", AND: \"AD\", AGO: \"AO\", AIA: \"AI\",\n  ATA: \"AQ\", ATG: \"AG\", ARG: \"AR\", ARM: \"AM\", ABW: \"AW\", AUS: \"AU\", AUT: \"AT\", AZE: \"AZ\",\n  BHS: \"BS\", BHR: \"BH\", BGD: \"BD\", BRB: \"BB\", BLR: \"BY\", BEL: \"BE\", BLZ: \"BZ\", BEN: \"BJ\",\n  BMU: \"BM\", BTN: \"BT\", BOL: \"BO\", BES: \"BQ\", BIH: \"BA\", BWA: \"BW\", BVT: \"BV\", BRA: \"BR\",\n  IOT: \"IO\", BRN: \"BN\", BGR: \"BG\", BFA: \"BF\", BDI: \"BI\", CPV: \"CV\", KHM: \"KH\", CMR: \"CM\",\n  CAN: \"CA\", CYM: \"KY\", CAF: \"CF\", TCD: \"TD\", CHL: \"CL\", CHN: \"CN\", CXR: \"CX\", CCK: \"CC\",\n  COL: \"CO\", COM: \"KM\", COD: \"CD\", COG: \"CG\", COK: \"CK\", CRI: \"CR\", CIV: \"CI\", HRV: \"HR\",\n  CUB: \"CU\", CUW: \"CW\", CYP: \"CY\", CZE: \"CZ\", DNK: \"DK\", DJI: \"DJ\", DMA: \"DM\", DOM: \"DO\",\n  ECU: \"EC\", EGY: \"EG\", SLV: \"SV\", GNQ: \"GQ\", ERI: \"ER\", EST: \"EE\", SWZ: \"SZ\", ETH: \"ET\",\n  FLK: \"FK\", FRO: \"FO\", FJI: \"FJ\", FIN: \"FI\", FRA: \"FR\", GUF: \"GF\", PYF: \"PF\", ATF: \"TF\",\n  GAB: \"GA\", GMB: \"GM\", GEO: \"GE\", DEU: \"DE\", GHA: \"GH\", GIB: \"GI\", GRC: \"GR\", GRL: \"GL\",\n  GRD: \"GD\", GLP: \"GP\", GUM: \"GU\", GTM: \"GT\", GGY: \"GG\", GIN: \"GN\", GNB: \"GW\", GUY: \"GY\",\n  HTI: \"HT\", HMD: \"HM\", VAT: \"VA\", HND: \"HN\", HKG: \"HK\", HUN: \"HU\", ISL: \"IS\", IND: \"IN\",\n  IDN: \"ID\", IRN: \"IR\", IRQ: \"IQ\", IRL: \"IE\", IMN: \"IM\", ISR: \"IL\", ITA: \"IT\", JAM: \"JM\",\n  JPN: \"JP\", JEY: \"JE\", JOR: \"JO\", KAZ: \"KZ\", KEN: \"KE\", KIR: \"KI\", PRK: \"KP\", KOR: \"KR\",\n  KWT: \"KW\", KGZ: \"KG\", LAO: \"LA\", LVA: \"LV\", LBN: \"LB\", LSO: \"LS\", LBR: \"LR\", LBY: \"LY\",\n  LIE: \"LI\", LTU: \"LT\", LUX: \"LU\", MAC: \"MO\", MDG: \"MG\", MWI: \"MW\", MYS: \"MY\", MDV: \"MV\",\n  MLI: \"ML\", MLT: \"MT\", MHL: \"MH\", MTQ: \"MQ\", MRT: \"MR\", MUS: \"MU\", MYT: \"YT\", MEX: \"MX\",\n  FSM: \"FM\", MDA: \"MD\", MCO: \"MC\", MNG: \"MN\", MNE: \"ME\", MSR: \"MS\", MAR: \"MA\", MOZ: \"MZ\",\n  MMR: \"MM\", NAM: \"NA\", NRU: \"NR\", NPL: \"NP\", NLD: \"NL\", NCL: \"NC\", NZL: \"NZ\", NIC: \"NI\",\n  NER: \"NE\", NGA: \"NG\", NIU: \"NU\", NFK: \"NF\", MKD: \"MK\", MNP: \"MP\", NOR: \"NO\", OMN: \"OM\",\n  PAK: \"PK\", PLW: \"PW\", PSE: \"PS\", PAN: \"PA\", PNG: \"PG\", PRY: \"PY\", PER: \"PE\", PHL: \"PH\",\n  PCN: \"PN\", POL: \"PL\", PRT: \"PT\", PRI: \"PR\", QAT: \"QA\", REU: \"RE\", ROU: \"RO\", RUS: \"RU\",\n  RWA: \"RW\", BLM: \"BL\", SHN: \"SH\", KNA: \"KN\", LCA: \"LC\", MAF: \"MF\", SPM: \"PM\", VCT: \"VC\",\n  WSM: \"WS\", SMR: \"SM\", STP: \"ST\", SAU: \"SA\", SEN: \"SN\", SRB: \"RS\", SYC: \"SC\", SLE: \"SL\",\n  SGP: \"SG\", SXM: \"SX\", SVK: \"SK\", SVN: \"SI\", SLB: \"SB\", SOM: \"SO\", ZAF: \"ZA\", SGS: \"GS\",\n  SSD: \"SS\", ESP: \"ES\", LKA: \"LK\", SDN: \"SD\", SUR: \"SR\", SJM: \"SJ\", SWE: \"SE\", CHE: \"CH\",\n  SYR: \"SY\", TWN: \"TW\", TJK: \"TJ\", TZA: \"TZ\", THA: \"TH\", TLS: \"TL\", TGO: \"TG\", TKL: \"TK\",\n  TON: \"TO\", TTO: \"TT\", TUN: \"TN\", TUR: \"TR\", TKM: \"TM\", TCA: \"TC\", TUV: \"TV\", UGA: \"UG\",\n  UKR: \"UA\", ARE: \"AE\", GBR: \"GB\", USA: \"US\", UMI: \"UM\", URY: \"UY\", UZB: \"UZ\", VUT: \"VU\",\n  VEN: \"VE\", VNM: \"VN\", VGB: \"VG\", VIR: \"VI\", WLF: \"WF\", ESH: \"EH\", YEM: \"YE\", ZMB: \"ZM\",\n  ZWE: \"ZW\", XKX: \"XK\",\n};\n\nconst alpha2ToAlpha3 = new Map<string, string>();\nfor (const [a3, a2] of Object.entries(ISO_3166_1_ALPHA3_TO_ALPHA2)) {\n  if (!alpha2ToAlpha3.has(a2)) {\n    alpha2ToAlpha3.set(a2, a3);\n  }\n}\n\nexport const ISO_3166_1_ALPHA2_TO_ALPHA3: ReadonlyMap<string, string> = alpha2ToAlpha3;\n","import { ISO_3166_1_ALPHA3_TO_ALPHA2, ISO_3166_1_ALPHA2_TO_ALPHA3 } from \"./alpha3-map.js\";\nimport { normalizeAlpha2 } from \"./alpha2.js\";\nimport { CountryCodeError } from \"./errors.js\";\nimport type { CountryCodeAlpha2, CountryCodeAlpha3 } from \"./types.js\";\n\nconst ALPHA3_FORMAT = /^[A-Z]{3}$/;\n\n/** Alpha-3 → assigned alpha-2. */\nexport function alpha3ToAlpha2(code: string): CountryCodeAlpha2 {\n  const upper = code.trim().toUpperCase();\n  if (!ALPHA3_FORMAT.test(upper)) {\n    throw new CountryCodeError(\n      `Invalid alpha-3 country code \"${code}\" — expected three letters`,\n    );\n  }\n  const a2 = ISO_3166_1_ALPHA3_TO_ALPHA2[upper];\n  if (!a2) {\n    throw new CountryCodeError(\n      `Alpha-3 code \"${upper}\" is not an assigned ISO 3166-1 alpha-3 code`,\n    );\n  }\n  return normalizeAlpha2(a2);\n}\n\n/** Alpha-2 → preferred alpha-3 when known. */\nexport function alpha2ToAlpha3(code: string): CountryCodeAlpha3 {\n  const a2 = normalizeAlpha2(code);\n  const a3 = ISO_3166_1_ALPHA2_TO_ALPHA3.get(a2);\n  if (!a3) {\n    throw new CountryCodeError(`No alpha-3 mapping registered for \"${a2}\"`);\n  }\n  return a3 as CountryCodeAlpha3;\n}\n","import { normalizeAlpha2 } from \"./alpha2.js\";\nimport { CountryCodeError } from \"./errors.js\";\nimport type { SubdivisionCode } from \"./types.js\";\n\nconst SUBDIVISION = /^[A-Z]{2}-[\\dA-Z]{1,8}$/;\n\n/**\n * Normalize ISO 3166-2 subdivision id (`US-CA`, `ID-JK`).\n * Validates format and matching country prefix — not full subdivision registry membership.\n */\nexport function normalizeSubdivisionCode(\n  countryAlpha2: string,\n  subdivision: string,\n): SubdivisionCode {\n  const country = normalizeAlpha2(countryAlpha2);\n  let raw = subdivision.trim().toUpperCase();\n  if (!raw.includes(\"-\")) {\n    raw = `${country}-${raw}`;\n  }\n  if (!SUBDIVISION.test(raw)) {\n    throw new CountryCodeError(\n      `Invalid subdivision \"${subdivision}\" — expected ISO 3166-2 form CC-XXX`,\n    );\n  }\n  const prefix = raw.slice(0, 2);\n  if (prefix !== country) {\n    throw new CountryCodeError(\n      `Subdivision \"${raw}\" does not match country \"${country}\"`,\n    );\n  }\n  return raw as SubdivisionCode;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,iBAAkB;;;ACCX,IAAM,0BAA0B;AAAA,EACrC;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AACxD;AAIO,IAAM,wBAA6C,IAAI;AAAA,EAC5D;AACF;;;ACxBO,IAAM,mBAAN,cAA+B,MAAM;AAAA,EAC1C,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;;;ACDA,IAAM,gBAAgB;AAGf,SAAS,iBAAiB,MAAuB;AACtD,QAAM,QAAQ,KAAK,KAAK,EAAE,YAAY;AACtC,SAAO,cAAc,KAAK,KAAK,KAAK,sBAAsB,IAAI,KAAK;AACrE;AAGO,SAAS,gBAAgB,MAAiC;AAC/D,QAAM,QAAQ,KAAK,KAAK,EAAE,YAAY;AACtC,MAAI,CAAC,cAAc,KAAK,KAAK,GAAG;AAC9B,UAAM,IAAI;AAAA,MACR,yBAAyB,IAAI;AAAA,IAC/B;AAAA,EACF;AACA,MAAI,CAAC,sBAAsB,IAAI,KAAK,GAAG;AACrC,UAAM,IAAI;AAAA,MACR,iBAAiB,KAAK;AAAA,IACxB;AAAA,EACF;AACA,SAAO;AACT;;;ACvBO,IAAM,8BAA8D;AAAA,EACzE,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAAA,EAClF,KAAK;AAAA,EAAM,KAAK;AAAA,EAAM,KAAK;AAA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","names":[]}