@heyramzi/ui 3.4.0 → 3.5.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 (268) hide show
  1. package/COMPONENTS.md +1 -0
  2. package/dist/components/copy/clipboard.js +3 -3
  3. package/dist/components/flag/codes.js +13 -0
  4. package/dist/components/flag/index.js +2 -0
  5. package/dist/slides/export/pdf.js +7 -0
  6. package/dist/vite/flags.js +46 -0
  7. package/package.json +7 -2
  8. package/src/components/copy/clipboard.test.ts +17 -1
  9. package/src/components/copy/clipboard.ts +3 -3
  10. package/src/components/flag/codes.test.ts +30 -0
  11. package/src/components/flag/codes.ts +25 -0
  12. package/src/components/flag/flag.svelte +51 -0
  13. package/src/components/flag/flag.svelte.d.ts +12 -0
  14. package/src/components/flag/flags/AD.svg +1 -0
  15. package/src/components/flag/flags/AE.svg +1 -0
  16. package/src/components/flag/flags/AF.svg +1 -0
  17. package/src/components/flag/flags/AG.svg +1 -0
  18. package/src/components/flag/flags/AI.svg +1 -0
  19. package/src/components/flag/flags/AL.svg +1 -0
  20. package/src/components/flag/flags/AM.svg +1 -0
  21. package/src/components/flag/flags/AO.svg +1 -0
  22. package/src/components/flag/flags/AQ.svg +1 -0
  23. package/src/components/flag/flags/AR.svg +1 -0
  24. package/src/components/flag/flags/AS.svg +1 -0
  25. package/src/components/flag/flags/AT.svg +1 -0
  26. package/src/components/flag/flags/AU.svg +1 -0
  27. package/src/components/flag/flags/AW.svg +1 -0
  28. package/src/components/flag/flags/AX.svg +1 -0
  29. package/src/components/flag/flags/AZ.svg +1 -0
  30. package/src/components/flag/flags/BA.svg +1 -0
  31. package/src/components/flag/flags/BB.svg +1 -0
  32. package/src/components/flag/flags/BD.svg +1 -0
  33. package/src/components/flag/flags/BE.svg +1 -0
  34. package/src/components/flag/flags/BF.svg +1 -0
  35. package/src/components/flag/flags/BG.svg +1 -0
  36. package/src/components/flag/flags/BH.svg +1 -0
  37. package/src/components/flag/flags/BI.svg +1 -0
  38. package/src/components/flag/flags/BJ.svg +1 -0
  39. package/src/components/flag/flags/BL.svg +1 -0
  40. package/src/components/flag/flags/BM.svg +1 -0
  41. package/src/components/flag/flags/BN.svg +1 -0
  42. package/src/components/flag/flags/BO.svg +1 -0
  43. package/src/components/flag/flags/BQ.svg +1 -0
  44. package/src/components/flag/flags/BR.svg +1 -0
  45. package/src/components/flag/flags/BS.svg +1 -0
  46. package/src/components/flag/flags/BT.svg +1 -0
  47. package/src/components/flag/flags/BV.svg +1 -0
  48. package/src/components/flag/flags/BW.svg +1 -0
  49. package/src/components/flag/flags/BY.svg +1 -0
  50. package/src/components/flag/flags/BZ.svg +1 -0
  51. package/src/components/flag/flags/CA.svg +1 -0
  52. package/src/components/flag/flags/CC.svg +1 -0
  53. package/src/components/flag/flags/CD.svg +1 -0
  54. package/src/components/flag/flags/CF.svg +1 -0
  55. package/src/components/flag/flags/CG.svg +1 -0
  56. package/src/components/flag/flags/CH.svg +1 -0
  57. package/src/components/flag/flags/CI.svg +1 -0
  58. package/src/components/flag/flags/CK.svg +1 -0
  59. package/src/components/flag/flags/CL.svg +1 -0
  60. package/src/components/flag/flags/CM.svg +1 -0
  61. package/src/components/flag/flags/CN.svg +1 -0
  62. package/src/components/flag/flags/CO.svg +1 -0
  63. package/src/components/flag/flags/CR.svg +1 -0
  64. package/src/components/flag/flags/CU.svg +1 -0
  65. package/src/components/flag/flags/CV.svg +1 -0
  66. package/src/components/flag/flags/CW.svg +1 -0
  67. package/src/components/flag/flags/CX.svg +1 -0
  68. package/src/components/flag/flags/CY.svg +1 -0
  69. package/src/components/flag/flags/CZ.svg +1 -0
  70. package/src/components/flag/flags/DE.svg +1 -0
  71. package/src/components/flag/flags/DJ.svg +1 -0
  72. package/src/components/flag/flags/DK.svg +1 -0
  73. package/src/components/flag/flags/DM.svg +1 -0
  74. package/src/components/flag/flags/DO.svg +1 -0
  75. package/src/components/flag/flags/DZ.svg +1 -0
  76. package/src/components/flag/flags/EC.svg +1 -0
  77. package/src/components/flag/flags/EE.svg +1 -0
  78. package/src/components/flag/flags/EG.svg +1 -0
  79. package/src/components/flag/flags/EH.svg +1 -0
  80. package/src/components/flag/flags/ER.svg +1 -0
  81. package/src/components/flag/flags/ES.svg +1 -0
  82. package/src/components/flag/flags/ET.svg +1 -0
  83. package/src/components/flag/flags/FI.svg +1 -0
  84. package/src/components/flag/flags/FJ.svg +1 -0
  85. package/src/components/flag/flags/FK.svg +1 -0
  86. package/src/components/flag/flags/FM.svg +1 -0
  87. package/src/components/flag/flags/FO.svg +1 -0
  88. package/src/components/flag/flags/FR.svg +1 -0
  89. package/src/components/flag/flags/GA.svg +1 -0
  90. package/src/components/flag/flags/GB.svg +1 -0
  91. package/src/components/flag/flags/GD.svg +1 -0
  92. package/src/components/flag/flags/GE.svg +1 -0
  93. package/src/components/flag/flags/GF.svg +1 -0
  94. package/src/components/flag/flags/GG.svg +1 -0
  95. package/src/components/flag/flags/GH.svg +1 -0
  96. package/src/components/flag/flags/GI.svg +1 -0
  97. package/src/components/flag/flags/GL.svg +1 -0
  98. package/src/components/flag/flags/GM.svg +1 -0
  99. package/src/components/flag/flags/GN.svg +1 -0
  100. package/src/components/flag/flags/GP.svg +1 -0
  101. package/src/components/flag/flags/GQ.svg +1 -0
  102. package/src/components/flag/flags/GR.svg +1 -0
  103. package/src/components/flag/flags/GS.svg +1 -0
  104. package/src/components/flag/flags/GT.svg +1 -0
  105. package/src/components/flag/flags/GU.svg +1 -0
  106. package/src/components/flag/flags/GW.svg +1 -0
  107. package/src/components/flag/flags/GY.svg +1 -0
  108. package/src/components/flag/flags/HK.svg +1 -0
  109. package/src/components/flag/flags/HM.svg +1 -0
  110. package/src/components/flag/flags/HN.svg +1 -0
  111. package/src/components/flag/flags/HR.svg +1 -0
  112. package/src/components/flag/flags/HT.svg +1 -0
  113. package/src/components/flag/flags/HU.svg +1 -0
  114. package/src/components/flag/flags/ID.svg +1 -0
  115. package/src/components/flag/flags/IE.svg +1 -0
  116. package/src/components/flag/flags/IL.svg +1 -0
  117. package/src/components/flag/flags/IM.svg +1 -0
  118. package/src/components/flag/flags/IN.svg +1 -0
  119. package/src/components/flag/flags/IO.svg +1 -0
  120. package/src/components/flag/flags/IQ.svg +1 -0
  121. package/src/components/flag/flags/IR.svg +1 -0
  122. package/src/components/flag/flags/IS.svg +1 -0
  123. package/src/components/flag/flags/IT.svg +1 -0
  124. package/src/components/flag/flags/JE.svg +1 -0
  125. package/src/components/flag/flags/JM.svg +1 -0
  126. package/src/components/flag/flags/JO.svg +1 -0
  127. package/src/components/flag/flags/JP.svg +1 -0
  128. package/src/components/flag/flags/KE.svg +1 -0
  129. package/src/components/flag/flags/KG.svg +1 -0
  130. package/src/components/flag/flags/KH.svg +1 -0
  131. package/src/components/flag/flags/KI.svg +1 -0
  132. package/src/components/flag/flags/KM.svg +1 -0
  133. package/src/components/flag/flags/KN.svg +1 -0
  134. package/src/components/flag/flags/KP.svg +1 -0
  135. package/src/components/flag/flags/KR.svg +1 -0
  136. package/src/components/flag/flags/KW.svg +1 -0
  137. package/src/components/flag/flags/KY.svg +1 -0
  138. package/src/components/flag/flags/KZ.svg +1 -0
  139. package/src/components/flag/flags/LA.svg +1 -0
  140. package/src/components/flag/flags/LB.svg +1 -0
  141. package/src/components/flag/flags/LC.svg +1 -0
  142. package/src/components/flag/flags/LI.svg +1 -0
  143. package/src/components/flag/flags/LICENSE +22 -0
  144. package/src/components/flag/flags/LK.svg +1 -0
  145. package/src/components/flag/flags/LR.svg +1 -0
  146. package/src/components/flag/flags/LS.svg +1 -0
  147. package/src/components/flag/flags/LT.svg +1 -0
  148. package/src/components/flag/flags/LU.svg +1 -0
  149. package/src/components/flag/flags/LV.svg +1 -0
  150. package/src/components/flag/flags/LY.svg +1 -0
  151. package/src/components/flag/flags/MA.svg +1 -0
  152. package/src/components/flag/flags/MC.svg +1 -0
  153. package/src/components/flag/flags/MD.svg +1 -0
  154. package/src/components/flag/flags/ME.svg +1 -0
  155. package/src/components/flag/flags/MF.svg +1 -0
  156. package/src/components/flag/flags/MG.svg +1 -0
  157. package/src/components/flag/flags/MH.svg +1 -0
  158. package/src/components/flag/flags/MK.svg +1 -0
  159. package/src/components/flag/flags/ML.svg +1 -0
  160. package/src/components/flag/flags/MM.svg +1 -0
  161. package/src/components/flag/flags/MN.svg +1 -0
  162. package/src/components/flag/flags/MO.svg +1 -0
  163. package/src/components/flag/flags/MP.svg +1 -0
  164. package/src/components/flag/flags/MQ.svg +1 -0
  165. package/src/components/flag/flags/MR.svg +1 -0
  166. package/src/components/flag/flags/MS.svg +1 -0
  167. package/src/components/flag/flags/MT.svg +1 -0
  168. package/src/components/flag/flags/MU.svg +1 -0
  169. package/src/components/flag/flags/MV.svg +1 -0
  170. package/src/components/flag/flags/MW.svg +1 -0
  171. package/src/components/flag/flags/MX.svg +1 -0
  172. package/src/components/flag/flags/MY.svg +1 -0
  173. package/src/components/flag/flags/MZ.svg +1 -0
  174. package/src/components/flag/flags/NA.svg +1 -0
  175. package/src/components/flag/flags/NC.svg +1 -0
  176. package/src/components/flag/flags/NE.svg +1 -0
  177. package/src/components/flag/flags/NF.svg +1 -0
  178. package/src/components/flag/flags/NG.svg +1 -0
  179. package/src/components/flag/flags/NI.svg +1 -0
  180. package/src/components/flag/flags/NL.svg +1 -0
  181. package/src/components/flag/flags/NO.svg +1 -0
  182. package/src/components/flag/flags/NP.svg +1 -0
  183. package/src/components/flag/flags/NR.svg +1 -0
  184. package/src/components/flag/flags/NU.svg +1 -0
  185. package/src/components/flag/flags/NZ.svg +1 -0
  186. package/src/components/flag/flags/OM.svg +1 -0
  187. package/src/components/flag/flags/PA.svg +1 -0
  188. package/src/components/flag/flags/PE.svg +1 -0
  189. package/src/components/flag/flags/PF.svg +1 -0
  190. package/src/components/flag/flags/PG.svg +1 -0
  191. package/src/components/flag/flags/PH.svg +1 -0
  192. package/src/components/flag/flags/PK.svg +1 -0
  193. package/src/components/flag/flags/PL.svg +1 -0
  194. package/src/components/flag/flags/PM.svg +1 -0
  195. package/src/components/flag/flags/PN.svg +1 -0
  196. package/src/components/flag/flags/PR.svg +1 -0
  197. package/src/components/flag/flags/PS.svg +1 -0
  198. package/src/components/flag/flags/PT.svg +1 -0
  199. package/src/components/flag/flags/PW.svg +1 -0
  200. package/src/components/flag/flags/PY.svg +1 -0
  201. package/src/components/flag/flags/QA.svg +1 -0
  202. package/src/components/flag/flags/RE.svg +1 -0
  203. package/src/components/flag/flags/RO.svg +1 -0
  204. package/src/components/flag/flags/RS.svg +1 -0
  205. package/src/components/flag/flags/RU.svg +1 -0
  206. package/src/components/flag/flags/RW.svg +1 -0
  207. package/src/components/flag/flags/SA.svg +1 -0
  208. package/src/components/flag/flags/SB.svg +1 -0
  209. package/src/components/flag/flags/SC.svg +1 -0
  210. package/src/components/flag/flags/SD.svg +1 -0
  211. package/src/components/flag/flags/SE.svg +1 -0
  212. package/src/components/flag/flags/SG.svg +1 -0
  213. package/src/components/flag/flags/SH.svg +1 -0
  214. package/src/components/flag/flags/SI.svg +1 -0
  215. package/src/components/flag/flags/SJ.svg +1 -0
  216. package/src/components/flag/flags/SK.svg +1 -0
  217. package/src/components/flag/flags/SL.svg +1 -0
  218. package/src/components/flag/flags/SM.svg +1 -0
  219. package/src/components/flag/flags/SN.svg +1 -0
  220. package/src/components/flag/flags/SO.svg +1 -0
  221. package/src/components/flag/flags/SR.svg +1 -0
  222. package/src/components/flag/flags/SS.svg +1 -0
  223. package/src/components/flag/flags/ST.svg +1 -0
  224. package/src/components/flag/flags/SV.svg +1 -0
  225. package/src/components/flag/flags/SX.svg +1 -0
  226. package/src/components/flag/flags/SY.svg +1 -0
  227. package/src/components/flag/flags/SZ.svg +1 -0
  228. package/src/components/flag/flags/TC.svg +1 -0
  229. package/src/components/flag/flags/TD.svg +1 -0
  230. package/src/components/flag/flags/TF.svg +1 -0
  231. package/src/components/flag/flags/TG.svg +1 -0
  232. package/src/components/flag/flags/TH.svg +1 -0
  233. package/src/components/flag/flags/TJ.svg +1 -0
  234. package/src/components/flag/flags/TK.svg +1 -0
  235. package/src/components/flag/flags/TL.svg +1 -0
  236. package/src/components/flag/flags/TM.svg +1 -0
  237. package/src/components/flag/flags/TN.svg +1 -0
  238. package/src/components/flag/flags/TO.svg +1 -0
  239. package/src/components/flag/flags/TR.svg +1 -0
  240. package/src/components/flag/flags/TT.svg +1 -0
  241. package/src/components/flag/flags/TV.svg +1 -0
  242. package/src/components/flag/flags/TW.svg +1 -0
  243. package/src/components/flag/flags/TZ.svg +1 -0
  244. package/src/components/flag/flags/UA.svg +1 -0
  245. package/src/components/flag/flags/UG.svg +1 -0
  246. package/src/components/flag/flags/UM.svg +1 -0
  247. package/src/components/flag/flags/US.svg +1 -0
  248. package/src/components/flag/flags/UY.svg +1 -0
  249. package/src/components/flag/flags/UZ.svg +1 -0
  250. package/src/components/flag/flags/VA.svg +1 -0
  251. package/src/components/flag/flags/VC.svg +1 -0
  252. package/src/components/flag/flags/VE.svg +1 -0
  253. package/src/components/flag/flags/VG.svg +1 -0
  254. package/src/components/flag/flags/VI.svg +1 -0
  255. package/src/components/flag/flags/VN.svg +1 -0
  256. package/src/components/flag/flags/VU.svg +1 -0
  257. package/src/components/flag/flags/WF.svg +1 -0
  258. package/src/components/flag/flags/WS.svg +1 -0
  259. package/src/components/flag/flags/XK.svg +1 -0
  260. package/src/components/flag/flags/YE.svg +1 -0
  261. package/src/components/flag/flags/YT.svg +1 -0
  262. package/src/components/flag/flags/ZA.svg +1 -0
  263. package/src/components/flag/flags/ZM.svg +1 -0
  264. package/src/components/flag/flags/ZW.svg +1 -0
  265. package/src/components/flag/index.ts +2 -0
  266. package/src/slides/export/pdf.ts +11 -0
  267. package/src/vite/flags.test.ts +38 -0
  268. package/src/vite/flags.ts +63 -0
package/COMPONENTS.md CHANGED
@@ -63,6 +63,7 @@ Generic pieces built on the primitives, imported from `@heyramzi/ui/components/<
63
63
 
64
64
  - `copy` — CopyButton, copyText, copyRichText, htmlToPlainText, Copied
65
65
  - `data-table` — SortableHead, Pagination, InfiniteScroll, RowContextMenu, TableSkeleton, and the sort, page and filter helpers
66
+ - `flag` — Flag, FLAG_CODES, flagCode: a country flag from an ISO 3166-1 alpha-2 code (plus XK for Kosovo), 1em tall at 3:2, one lazy `<img>` of `/flags/<CODE>.svg` each. Add `flagAssets()` from `@heyramzi/ui/vite` to the app's Vite plugins to serve the 250 SVGs (country-flag-icons, MIT, licence beside them). Decorative unless `label` is set. An unknown code renders nothing; to keep a row's layout, wrap it in `<span class="inline-block aspect-[3/2] h-[1em]">`
66
67
  - `hold-to-confirm` — HoldToConfirm, press and hold to confirm
67
68
  - `language-flag` — LanguageFlag, LANGUAGE_FLAGS (code to `/flags/*.svg`, also a SegmentedFilter option's `image`)
68
69
  - `list-page` — ListPageShell, MasterDetail, GroupedList, RailRow and the rest of the master-detail page kit, DetailPanel, ToolbarSearch, toolbarTriggerClass, NoticeBar, EmptyState, FilterPopover, setSectionHost
@@ -32,7 +32,7 @@ export function htmlToPlainText(html) {
32
32
  if (typeof document === "undefined") {
33
33
  return html.replace(/<br\s*\/?>/gi, "\n").replace(/<\/p>/gi, "\n\n").replace(/<\/li>/gi, "\n").replace(/<li>/gi, "• ").replace(/<[^>]+>/g, "").replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").trim();
34
34
  }
35
- const div = document.createElement("div");
36
- div.innerHTML = html;
37
- return div.textContent || div.innerText || "";
35
+ // A DOMParser document has no browsing context, so nothing in the markup loads or runs.
36
+ // An element from document.createElement belongs to the live page: an <img onerror> fires.
37
+ return new DOMParser().parseFromString(html, "text/html").body.textContent ?? "";
38
38
  }
@@ -0,0 +1,13 @@
1
+ /** Where the host serves the flag files. `flagAssets()` from `@heyramzi/ui/vite` serves them there. */
2
+ export const FLAG_BASE = "/flags";
3
+ /**
4
+ * The 249 ISO 3166-1 alpha-2 codes plus XK (Kosovo, user-assigned but in common use), each with
5
+ * a file in `./flags`, from country-flag-icons 1.6.20 (MIT).
6
+ */
7
+ export const FLAG_CODES = ("AD AE AF AG AI AL AM AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BJ BL BM BN BO BQ BR " + "BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ " + "EC EE EG EH ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW " + "GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY " + "KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV " + "MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY " + "QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR SS ST SV SX SY SZ TC TD TF TG " + "TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XK YE YT ZA ZM ZW").split(" ");
8
+ const KNOWN = new Set(FLAG_CODES);
9
+ /** The code in capitals when a flag exists for it, else null. */
10
+ export function flagCode(code) {
11
+ const upper = code?.trim().toUpperCase() ?? "";
12
+ return KNOWN.has(upper) ? upper : null;
13
+ }
@@ -0,0 +1,2 @@
1
+ export { default as Flag } from "../../../src/components/flag/flag.svelte";
2
+ export { FLAG_BASE, FLAG_CODES, flagCode } from "./codes.js";
@@ -38,6 +38,13 @@ export async function printPage(page, options = {}) {
38
38
  }
39
39
  await page.evaluate(() => document.fonts.ready.then(() => undefined));
40
40
  if (options.settle) await page.waitForTimeout(options.settle);
41
+ // WHY: a lazy or still-loading image read as broken while the PDF printed it (testimonial photos, 11 Nov 2026).
42
+ await page.evaluate(() => Promise.all([...document.images].map((img) => {
43
+ img.loading = "eager";
44
+ if (img.complete) return undefined;
45
+ const loaded = img.decode().catch(() => undefined);
46
+ return Promise.race([loaded, new Promise((resolve) => setTimeout(resolve, 15e3))]);
47
+ })).then(() => undefined));
41
48
  const brokenImages = await page.evaluate(() => [...document.images].filter((img) => !img.complete || img.naturalWidth === 0).map((img) => img.src));
42
49
  const { size } = options;
43
50
  const pdf = await page.pdf({
@@ -0,0 +1,46 @@
1
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ // From src/vite in the repo, or dist/vite in the published package.
5
+ const here = dirname(fileURLToPath(import.meta.url));
6
+ const FLAGS_DIR = [join(here, "../components/flag/flags"), join(here, "../../src/components/flag/flags")].find((dir) => existsSync(dir));
7
+ /**
8
+ * Serves the `Flag` SVGs at `/flags/<CODE>.svg`: from the package in dev and preview, and as
9
+ * one static file each in the client build. Add it to `plugins` in `vite.config.ts`.
10
+ */
11
+ export function flagAssets(options = {}) {
12
+ const base = (options.base ?? "/flags").replace(/\/$/, "");
13
+ if (!FLAGS_DIR) throw new Error("@heyramzi/ui: the flag SVGs are missing from the package");
14
+ const dir = FLAGS_DIR;
15
+ const files = readdirSync(dir).filter((name) => /^[A-Z]{2}\.svg$/.test(name));
16
+ const known = new Set(files);
17
+ let ssrBuild = false;
18
+ // Returns nothing: Vite calls a function returned from configureServer as a post hook.
19
+ const serve = (server) => {
20
+ server.middlewares.use((req, res, next) => {
21
+ const path = req.url?.split("?")[0] ?? "";
22
+ const name = path.startsWith(`${base}/`) ? path.slice(base.length + 1) : "";
23
+ if (!known.has(name)) return next();
24
+ res.setHeader("Content-Type", "image/svg+xml");
25
+ res.setHeader("Cache-Control", "public, max-age=86400");
26
+ res.end(readFileSync(join(dir, name)));
27
+ });
28
+ };
29
+ return {
30
+ name: "heyramzi-ui:flags",
31
+ configResolved(config) {
32
+ ssrBuild = Boolean(config.build.ssr);
33
+ },
34
+ configureServer: serve,
35
+ configurePreviewServer: serve,
36
+ generateBundle() {
37
+ const consumer = this.environment?.config?.consumer;
38
+ if (consumer ? consumer !== "client" : ssrBuild) return;
39
+ for (const name of files) this.emitFile({
40
+ type: "asset",
41
+ fileName: `${base.replace(/^\//, "")}/${name}`,
42
+ source: readFileSync(join(dir, name))
43
+ });
44
+ }
45
+ };
46
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@heyramzi/ui",
3
- "version": "3.4.0",
3
+ "version": "3.5.0",
4
4
  "description": "Svelte 5 UI for apps: primitives, effects and animations, plus work (tasks and docs), charts, slides, an editor, onboarding and a canvas as subpaths.",
5
5
  "homepage": "https://ui.heyramzi.com",
6
6
  "license": "MIT",
@@ -115,6 +115,11 @@
115
115
  "node": "./dist/effects/magnetic/magnetic.js",
116
116
  "default": "./src/effects/magnetic/magnetic.ts"
117
117
  },
118
+ "./vite": {
119
+ "types": "./src/vite/flags.ts",
120
+ "node": "./dist/vite/flags.js",
121
+ "default": "./src/vite/flags.ts"
122
+ },
118
123
  "./icons/sf-symbols": {
119
124
  "svelte": "./src/icons/sf-symbols.ts",
120
125
  "types": "./src/icons/sf-symbols.ts",
@@ -389,6 +394,6 @@
389
394
  "sync": "pnpm sync:transitions && pnpm sync:shadcn",
390
395
  "sync:check": "node scripts/sync-transitions.mjs --check && node scripts/sync-shadcn.mjs --check",
391
396
  "check": "svelte-check --tsconfig ./tsconfig.json",
392
- "build": "node ../../../vibe-kit/scripts/build-dist.mjs"
397
+ "build": "node ../../../upsys/kit/scripts/build-dist.mjs"
393
398
  }
394
399
  }
@@ -1,5 +1,5 @@
1
1
  import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
2
- import { copyRichText, copyText } from "./clipboard.js";
2
+ import { copyRichText, copyText, htmlToPlainText } from "./clipboard.js";
3
3
 
4
4
  // Mock navigator.clipboard
5
5
  const mockClipboard = {
@@ -204,3 +204,19 @@ describe("htmlToPlainText (server-side)", () => {
204
204
  expect(mockWriteText).toHaveBeenCalledWith("Hello World & Friends <3>");
205
205
  });
206
206
  });
207
+
208
+ describe("htmlToPlainText (browser)", () => {
209
+ afterEach(() => vi.restoreAllMocks());
210
+
211
+ it("parses into an inert document, so an onerror in the markup never runs", async () => {
212
+ const win = window as Window & { __fired?: boolean };
213
+ win.__fired = false;
214
+ const createElement = vi.spyOn(document, "createElement");
215
+ expect(htmlToPlainText('<img src="x" onerror="window.__fired=true">hi')).toBe("hi");
216
+ await new Promise((done) => setTimeout(done, 10));
217
+ expect(win.__fired).toBe(false);
218
+ // jsdom loads no images, so the onerror can't fire here either way: the live-document
219
+ // element the old code built is what a real browser runs the handler on.
220
+ expect(createElement).not.toHaveBeenCalled();
221
+ });
222
+ });
@@ -47,7 +47,7 @@ export function htmlToPlainText(html: string): string {
47
47
  .replace(/&gt;/g, ">")
48
48
  .trim();
49
49
  }
50
- const div = document.createElement("div");
51
- div.innerHTML = html;
52
- return div.textContent || div.innerText || "";
50
+ // A DOMParser document has no browsing context, so nothing in the markup loads or runs.
51
+ // An element from document.createElement belongs to the live page: an <img onerror> fires.
52
+ return new DOMParser().parseFromString(html, "text/html").body.textContent ?? "";
53
53
  }
@@ -0,0 +1,30 @@
1
+ import { readdirSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { describe, expect, it } from "vite-plus/test";
5
+ import { FLAG_CODES, flagCode } from "./codes.js";
6
+
7
+ const dir = join(dirname(fileURLToPath(import.meta.url)), "flags");
8
+
9
+ describe("flag codes", () => {
10
+ it("lists exactly the SVG files shipped", () => {
11
+ const files = readdirSync(dir)
12
+ .filter((name) => name.endsWith(".svg"))
13
+ .map((name) => name.slice(0, -4));
14
+ expect(FLAG_CODES.toSorted()).toEqual(files.toSorted());
15
+ expect(FLAG_CODES).toHaveLength(250);
16
+ });
17
+
18
+ it("knows Kosovo, which ISO 3166-1 leaves user-assigned", () => {
19
+ expect(flagCode("xk")).toBe("XK");
20
+ });
21
+
22
+ it("takes any case and refuses what it has no file for", () => {
23
+ expect(flagCode("jp")).toBe("JP");
24
+ expect(flagCode(" Pl ")).toBe("PL");
25
+ expect(flagCode("")).toBeNull();
26
+ expect(flagCode(undefined)).toBeNull();
27
+ expect(flagCode("ZZ")).toBeNull();
28
+ expect(flagCode("../FR")).toBeNull();
29
+ });
30
+ });
@@ -0,0 +1,25 @@
1
+ /** Where the host serves the flag files. `flagAssets()` from `@heyramzi/ui/vite` serves them there. */
2
+ export const FLAG_BASE = "/flags";
3
+
4
+ /**
5
+ * The 249 ISO 3166-1 alpha-2 codes plus XK (Kosovo, user-assigned but in common use), each with
6
+ * a file in `./flags`, from country-flag-icons 1.6.20 (MIT).
7
+ */
8
+ export const FLAG_CODES: readonly string[] = (
9
+ "AD AE AF AG AI AL AM AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BJ BL BM BN BO BQ BR " +
10
+ "BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ " +
11
+ "EC EE EG EH ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW " +
12
+ "GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY " +
13
+ "KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV " +
14
+ "MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY " +
15
+ "QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR SS ST SV SX SY SZ TC TD TF TG " +
16
+ "TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XK YE YT ZA ZM ZW"
17
+ ).split(" ");
18
+
19
+ const KNOWN = new Set(FLAG_CODES);
20
+
21
+ /** The code in capitals when a flag exists for it, else null. */
22
+ export function flagCode(code: string | null | undefined): string | null {
23
+ const upper = code?.trim().toUpperCase() ?? "";
24
+ return KNOWN.has(upper) ? upper : null;
25
+ }
@@ -0,0 +1,51 @@
1
+ <script lang="ts">
2
+ // =========================
3
+ // IMPORTS
4
+ // =========================
5
+ import { cn } from "../../lib/utils.js";
6
+ import { FLAG_BASE, flagCode } from "./codes.js";
7
+
8
+ // =========================
9
+ // PROPS
10
+ // =========================
11
+ interface Props {
12
+ /** ISO 3166-1 alpha-2 code, or XK for Kosovo, any case. Unknown or empty renders nothing. */
13
+ code: string | null | undefined;
14
+ /** Names the flag for a reader. Leave it out when the country name sits beside it. */
15
+ label?: string;
16
+ /** Where the host serves `<CODE>.svg`. */
17
+ base?: string;
18
+ class?: string;
19
+ }
20
+
21
+ let { code, label, base = FLAG_BASE, class: className }: Props = $props();
22
+
23
+ // =========================
24
+ // STATE
25
+ // =========================
26
+ let file = $derived(flagCode(code));
27
+ // A file the host doesn't serve hides the flag instead of showing a broken image.
28
+ let failedFor = $state<string | null>(null);
29
+ </script>
30
+
31
+ <!-- =========================== -->
32
+ <!-- MARKUP -->
33
+ <!-- =========================== -->
34
+ {#if file && failedFor !== file}
35
+ <img
36
+ src="{base}/{file}.svg"
37
+ alt={label ?? ""}
38
+ aria-hidden={label ? undefined : "true"}
39
+ width="3"
40
+ height="2"
41
+ loading="lazy"
42
+ decoding="async"
43
+ draggable="false"
44
+ onerror={() => (failedFor = file)}
45
+ class={cn(
46
+ "inline-block aspect-[3/2] h-[1em] w-auto max-w-none shrink-0 object-cover align-[-0.125em]",
47
+ "rounded-[min(var(--radius-sm),0.15em)] outline outline-1 -outline-offset-1 outline-black/10 dark:outline-white/15",
48
+ className,
49
+ )}
50
+ />
51
+ {/if}
@@ -0,0 +1,12 @@
1
+ interface Props {
2
+ /** ISO 3166-1 alpha-2 code, or XK for Kosovo, any case. Unknown or empty renders nothing. */
3
+ code: string | null | undefined;
4
+ /** Names the flag for a reader. Leave it out when the country name sits beside it. */
5
+ label?: string;
6
+ /** Where the host serves `<CODE>.svg`. */
7
+ base?: string;
8
+ class?: string;
9
+ }
10
+ declare const $$Component: import("svelte").Component<Props, {}, "">;
11
+ type $$Component = ReturnType<typeof $$Component>;
12
+ export default $$Component;
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#fedd00" d="M0 0h513v342H0z"/><path fill="#10069f" d="M0 0h171v342H0z"/><path fill="#d50032" d="M342 0h171v342H342z"/><path fill="#D80027" d="M198.9 113.6H256v64.8h-57.1z"/><g stroke="#D80027" stroke-width="7"><path d="M267.6 113.6v64.7M284.2 113.6v64.7M300.8 113.6v64.7"/></g><g stroke="#D80027" stroke-width="5"><path d="M247.4 178.4v64.7M234.1 178.4v64.7M220.8 178.5v53.9M207.1 178.5v47.1"/></g><path fill="#FFDA44" d="m199.9 146 27.6-32.4 28.5 32.3-28.1 32.4z"/><path fill="#BC8B00" d="M182.2 95.9v92.2c0 34.3 27.3 54.2 48.6 64.5-.8 1.4 25.1 8.3 25.1 8.3s25.9-6.9 25.1-8.3c21.4-10.3 48.6-30.1 48.6-64.5V95.9H182.2zm129.9 92.2c0 16.9-10 29.4-32.8 43.9-8.6 5.5-17.5 9-23.3 11-5.8-2-14.7-5.5-23.3-11-22.8-14.5-32.8-28-32.8-43.9v-74.5h112.2v74.5z"/><path fill="#D80027" d="M264.4 188.9h29.5v8.6h-29.5zM264.4 206.5h29.5v8.6h-29.5z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFF" d="M0 0h513v342H0z"/><path fill="#00843d" d="M0 0h513v114H0z"/><path d="M0 228h513v114H0z"/><path fill="#c8102e" d="M0 0h171v342H0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#D32011" d="M0 0h513v342H0z"/><path fill="#007A36" d="M342 0h171v342H342z"/><path d="M0 0h171v342H0z"/><path fill="#FFF" d="M256.5 131.3c-17.5 0-31.8 14.3-31.8 31.8v47.7h63.6v-47.7c0-17.7-14.3-31.8-31.8-31.8z"/><path fill="#FFF" d="M256.5 93c-43.1 0-78 34.9-78 78s34.9 77.9 78 77.9 78-34.9 78-78-34.9-77.9-78-77.9zm0 142.4c-35.6 0-64.5-28.9-64.5-64.5s28.9-64.5 64.5-64.5 64.5 29 64.5 64.6c0 35.6-28.9 64.4-64.5 64.4z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path d="M0 0h513v342H0z"/><path fill="#0072c6" d="M88.8 136.5c-2.2 12.9-3.4 26.2-3.4 39.8 0 13.6 1.2 27 3.4 39.8L256 228.3l167.2-12.1c2.2-12.9 3.4-26.2 3.4-39.8s-1.2-27-3.4-39.8"/><path fill="#FFF" d="M423.2 219H88.8c15.8 69.8 84.7 122.3 167.2 122.3S407.4 288.8 423.2 219z"/><path fill="#FFDA44" d="M365.9 136.5H146.1l44.9-21.1-23.9-43.5 48.8 9.4L222 32l34 36.2L290 32l6.1 49.3 48.8-9.4-23.9 43.5z"/><g fill="#ce1126"><path d="M256.5 342 0 0v342z"/><path d="M513 342V0L256 342z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#012169" d="M0 0h513v342H0z"/><path fill="#FFF" d="M454.8 265.38c7.94-10.93 13.24-24.27 13.24-40.42V104.89a59.754 59.754 0 0 1-36.02 12.01c-19.64 0-37.07-9.43-48.03-24.01-10.95 14.58-28.39 24.01-48.03 24.01-13.52 0-25.99-4.47-36.02-12v120.06c0 16.16 5.3 29.5 13.24 40.42H454.8z"/><path fill="#9cf" d="M310.23 260.98C332.65 296.96 384 309 384 309s51.35-12.04 73.77-48.02H310.23z"/><g fill="#f90"><path d="M396.66 172.21c.32 1.42 8.72 10.17 17.56 20.15 1.39 1.57-8.74 12.63-6.91 12.59 4.75-.12 19.27-17.26 19.34 6.65.05 15.94-30 27.51-30 27.51h17.47l.65 14.96s4.97-13.34 7.59-16.57c8.1-9.97 20.18-30.07 34.59-27.1 14.41 2.97-13.66-13.92-13.66-13.92s-5.2-15.19-16.63-16.97c-10.06-1.57-14.29-2.51-26.64-7.3-1.68-.65-3.88-2.32-3.36 0z"/><path d="M359.69 198.69c1.07-.99 4.46-12.63 8.69-25.28.67-1.99 15.31 1.27 14.35-.3-2.47-4.06-24.58-8.08-3.9-20.08 13.79-8 38.82 12.27 38.82 12.27l-8.72-15.14 12.64-8.03s-14.05 2.35-18.14 1.69c-12.68-2.04-36.13-2.48-40.75-16.45-4.62-13.97-5.25 18.79-5.25 18.79s-10.56 12.08-6.4 22.88c3.66 9.5 4.96 13.64 6.97 26.73.29 1.79-.06 4.53 1.69 2.92z"/><path d="M395.67 219.87c-1.39-.43-13.16 2.49-26.22 5.18-2.06.42-6.59-13.88-7.47-12.26-2.27 4.17 5.36 25.31-15.41 13.45-13.84-7.91-8.89-39.73-8.89-39.73l-8.71 15.14-13.29-6.9s9.09 10.96 10.57 14.84c4.6 11.99 16 32.49 6.24 43.49-9.76 11.01 18.88-4.9 18.88-4.9s15.76 3.07 23-5.96c6.38-7.94 9.3-11.14 19.61-19.45 1.43-1.12 3.97-2.19 1.69-2.9z"/></g><path fill="#012169" d="M0 0h256.5v171H0z"/><g fill="#FFF"><path d="M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z"/><path d="M156.1 115.2 256.5 171v-15.8l-72-40zM100.4 55.8 0 0v15.8l72 40z"/></g><g fill="#D80027"><path d="M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z"/><path d="M156.1 115.2 256.5 171v-15.8l-72-40zM72 115.2l-72 40V171l100.4-55.8zM100.4 55.8 0 0v15.8l72 40zM184.5 55.8l72-40V0L156.1 55.8z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 90 60"><path fill="#ED2024" d="M0 0h90v60H0z"/><path fill="#212121" d="M32.5 12.2v16l7.1 2.5-5 4.9 2.4 3 5.3-5.5 1.2 2.3-3 4.9 3.6 5.6-1.8 2.6 2.8 3.6 2.7-3.7-1.5-2.6 3-5.8-2.7-4.6 1.2-2.3 5.2 5.5 2.5-2.9-5.2-5.1 7.2-2.6V12.2l-5.2 1.9-.1 3.8-3.3.3v-2.6l1.7-2.3 5.6-2.2-2.3-.4 1.4-1.2.9.4-.8-1.4L54 9l-1-1.1L47.5 9l1.4 1.1-3.8 4.9-3.8-4.8 1.3-1.1-5-1.2L36.2 9l-1.5-.4-.8 1.4.9-.6 1.6 1.1-2.3.5 5.5 2 1.6 2.3v2.9l-3.3-.3v-3.6z"/><g fill="#212121"><path d="M26.2 25h6.4v2.5h-6.4zM26.2 20.9h6.4v2.7h-6.4zM26.2 16.7h6.4v2.6h-6.4zM26.2 12.7h6.4v2.5h-6.4z"/></g><g fill="#212121"><path d="M57.4 25h6.4v2.5h-6.4zM57.4 20.9h6.4v2.7h-6.4zM57.4 16.7h6.4v2.6h-6.4zM57.4 12.7h6.4v2.5h-6.4z"/></g><path fill="#212121" d="M53.4 36.1h6.4V38h-6.4zM30.2 36.1h6.4V38h-6.4z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#0052B4" d="M0 0h513v342H0z"/><path fill="#D80027" d="M0 0h513v114H0z"/><path fill="#FF9811" d="M0 228h513v114H0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path d="M0 171h513v171H0z"/><path fill="#D80027" d="M0 0h513v171H0z"/><g fill="#FFDA44"><path d="m332.7 135.6 17.5-8.6-7.4-19-18.7 6.2zM287.1 79.6l5.5-18.8-19.1-7.2-8 18zM316.5 102.8l12.2-15.3-14.9-13.9-14.2 13.6zM335.9 171.7l19.5-.8v-21.3l-22.9.2zM323.3 209.8l18.8 5.5 7.3-19-18-8zM294.3 242.2l14.9 12.7 14.4-14.4-13.1-14.7zM247.3 94.5l9.8 19.9 21.9 3.3-15.9 15.5 3.6 21.9-19.6-10.4-19.7 10.2 3.8-21.9-15.8-15.5 22-3.1z"/><path d="m250.8 61.3-2.7 18.3c43.1 3.2 77 39.2 77 83.1 0 46-37.3 82.9-83.4 83.4-29.2.3-51.3-14.8-67-33.7l-13.9 12.3c15 19 40.8 39.9 80.9 39.9 56.3 0 101.9-45.6 101.9-101.9.1-53.2-40.7-96.9-92.8-101.4z"/><path fill="#000" d="m291.9 223.4-11.8 14s51.9 38.9 53.6 40.4c1.7 1.5 5.2 2 9.1-2.7 3.7-4.5 2.8-8.1.9-9.7-2-1.5-51.8-42-51.8-42z"/><path d="M206.1 157.2c-7.7 10.3-7.5 23.1 2.8 30.9 0 0 135.2 101.5 136.9 103 1.7 1.5 5.2 2 9.1-2.7 3.7-4.5 2.8-8.1.9-9.7-1.9-1.5-149.7-121.5-149.7-121.5zM253.8 256.3l7.3 18.2 19.5-6-4.8-19.1zM213.4 252.6l-2 19.5 20.1 3.6 4.5-19.1zM177.7 231.4 167.4 248l16.4 12.1 12.5-15.2z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 744 496"><path fill="#3A7DCE" d="M0 0h744v496H0V0z"/><path fill="#fff" d="m120 125 90 63 54-14 23-81 61-36 92 14 105 55 6 90 34 12v92l-65 115-78 24-72-17 18-30-8-32-10 9-162-25-49-85 20-46-49-62z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFF" d="M0 0h512v342H0z"/><path fill="#338AF3" d="M0 0h512v114H0zM0 228h512v114H0z"/><circle fill="#FFDA44" stroke="#d6ab00" stroke-width="5" cx="256.5" cy="171" r="40"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#10338c" d="M0 0h513v342H0z"/><path fill="#D80027" d="M513 33 95.3 171 513 310.76V342L0 171 513 0z"/><path fill="#FFF" d="M513 287.18v24.58L81.72 171 513 30v24.16"/><path fill="#A2001D" d="m476.98 140.21-21.89 10.68-3.18-15.32 31.19-29.77s-9.42-40.65-13.75-44.98l-112.32 55.82-6.84 36.76-31.9 28.59-.4 34.2 34.29-22.76 67.23-2.66-1.51 38.11h22.23l11.9-44.64 31.55-24.61-6.6-19.42z"/><path fill="#EFC100" stroke="#231F20" stroke-miterlimit="10" d="m317.89 238.41-22.24-11.11 22.24-11.11h144.46v22.22z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFF" d="M0 114h513v114H0z"/><path fill="#D80027" d="M0 0h513v114H0zM0 228h513v114H0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#00008b" d="M0 0h513v342H0z"/><g fill="#FFF"><path d="m188 212.6 11 22.9 24.7-5.7-11 22.8 19.9 15.8-24.8 5.6.1 25.4-19.9-15.9-19.8 15.9.1-25.4-24.8-5.6 19.9-15.8-11.1-22.8 24.8 5.7zM385.9 241.1l5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.6v12.2l-9.4-7.6-9.5 7.6.1-12.2-11.8-2.6 9.5-7.5-5.3-10.9 11.8 2.7zM337.3 125.1l5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.7v12.1l-9.4-7.6-9.5 7.6.1-12.1-11.9-2.7 9.5-7.5-5.3-10.9L332 136zM385.9 58.9l5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.7v12.1l-9.4-7.6-9.5 7.6.1-12.1-11.8-2.7 9.5-7.5-5.3-10.9 11.8 2.7zM428.4 108.6l5.2 10.9 11.8-2.7-5.3 10.9 9.5 7.5-11.8 2.6V150l-9.4-7.6-9.5 7.6v-12.2l-11.8-2.6 9.5-7.5-5.3-10.9 11.8 2.7zM398 166.5l4.1 12.7h13.3l-10.8 7.8 4.2 12.7-10.8-7.9-10.8 7.9 4.1-12.7-10.7-7.8h13.3z"/></g><path fill="#00008b" d="M0 0h256.5v171H0z"/><g fill="#FFF"><path d="M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z"/><path d="M156.1 115.2 256.5 171v-15.8l-72-40zM100.4 55.8 0 0v15.8l72 40z"/></g><g fill="red"><path d="M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z"/><path d="M156.1 115.2 256.5 171v-15.8l-72-40zM72 115.2l-72 40V171l100.4-55.8zM100.4 55.8 0 0v15.8l72 40zM184.5 55.8l72-40V0L156.1 55.8z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 363 242"><path fill="#338AF3" d="M0 0h363v242H0z"/><path fill="#FFF" d="M57 96.9 14.7 78.2 57 59.6l18.6-42.2 18.6 42.2 42.3 18.6-42.3 18.7-18.6 42.2z"/><path fill="#f30028" d="m75.6 40.6 11.5 26.1 26.1 11.5-26.1 11.5-11.5 26.1-11.5-26.1L38 78.2l26.1-11.5z"/><g fill="#FFDA44"><path d="M0 152.2h363v15.7H0zM0 183.6h363v15.7H0z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#0052B4" d="M0 0h513v342H0z"/><path fill="#FFDA44" d="M513 210.9H202.2V342h-79.8V210.9H0V131.1h122.4V0h79.8v131.1H513v61.2z"/><path fill="#D80027" d="M513 149.7v42.6H183.7V342H141V192.3H0v-42.6h141V0h42.7v149.7z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#ef3340" d="M0 0h513v342H0z"/><path fill="#00b5e2" d="M0 0h513v114H0z"/><path fill="#509e2f" d="M0 228h513v114H0z"/><g fill="#FFF"><path d="M265.6 212.6c-23 0-41.6-18.6-41.6-41.6s18.6-41.6 41.6-41.6c7.2 0 13.9 1.8 19.8 5-9.2-9-21.9-14.6-35.8-14.6-28.3 0-51.2 22.9-51.2 51.2s22.9 51.2 51.2 51.2c13.9 0 26.6-5.6 35.8-14.6-5.9 3.2-12.6 5-19.8 5z"/><path d="m297.6 142.2 5.5 15.5 14.9-7.1-7.1 14.9 15.5 5.5-15.5 5.5 7.1 14.9-14.9-7.1-5.5 15.5-5.5-15.5-14.9 7.1 7.1-14.9-15.5-5.5 15.5-5.5-7.1-14.9 14.9 7.1z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#10338C" d="M0 0h513v342H0z"/><path fill="#F6C500" d="M99.9 0h342v342"/><g fill="#FFF"><path d="M19.9 21.1 40.3 6.2 60.9 21 54 0H26.7z"/><path d="M92.3 25.5 84.4 1.3l-7.8 24.2H51.3l20.5 14.8-7.8 24 20.4-14.8L105 64.3l-7.9-24 20.5-14.9z"/><path d="m136.3 69.2-7.8-24-7.8 24H95.5l20.4 14.9-7.8 24 20.4-14.8 20.6 14.8-7.8-24 20.4-14.9z"/><path d="m179.4 112.3-7.8-24.1-7.8 24.1h-25.3l20.5 14.9-7.8 24 20.4-14.8 20.6 14.8-7.9-24 20.5-15z"/><path d="m222.5 155.3-7.8-24-7.8 24h-25.4l20.6 15-7.8 24 20.4-14.9 20.4 14.9-7.8-24 20.6-15z"/><path d="m265.6 198.4-7.8-24-7.8 24h-25.4l20.6 14.9-7.8 24.1 20.4-14.9 20.4 14.9-7.8-24.2 20.5-14.8z"/><path d="m308.7 241.5-7.9-24-7.8 24h-25.3l20.5 14.8-7.9 24.2 20.6-14.9 20.4 14.8-7.8-24.1 20.5-14.8z"/><path d="m351.7 284.6-7.8-24.2-7.8 24.2h-25.3l20.4 14.8-7.8 24.1 20.5-14.9 20.5 14.9-7.8-24.1 20.4-14.8z"/><path d="m387 303.5-7.9 24.1-25.3.1 19.8 14.3h26.6l19.9-14.4h-25.3z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#ffc726" d="M0 0h513v342H0z"/><g fill="#00267f"><path d="M0 0h171v342H0zM342 0h171v342H342z"/></g><path d="m325.74 101.02-31.97 12.4c-.68 1.35-5.79 7.54-8.18 53.06h-17.05v-60.42L256 78.68l-12.54 27v60.8H226.4c-2.39-45.53-7.8-52.48-8.47-53.84l-31.68-11.63c.15.31 15.4 31.34 15.4 78.01v12.54h41.81v71.07h25.08v-71.07h41.81v-12.54c0-24.13 4.17-44.02 7.68-56.46 3.82-13.57 7.7-21.49 7.74-21.57l-.03.03z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 85.333 513 342"><path fill="#2d6e41" d="M0 85.331h513v342H0z"/><circle fill="#F40B32" cx="218.902" cy="256.5" r="115"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#fdda25" d="M0 0h513v342H0z"/><path d="M0 0h171v342H0z"/><path fill="#ef3340" d="M342 0h171v342H342z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#3d944f" d="M0 0h513v342H0z"/><path fill="#ef2b2d" d="M0 0h513v171H0z"/><path fill="#FFDA44" d="m256 102.6 16.9 52h54.7l-44.2 32.2 16.8 52-44.2-32.1-44.2 32.1 16.8-52-44.2-32.2h54.7z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#00966e" d="M0 0h513v342H0z"/><path fill="#FFF" d="M0 0h513v114H0z"/><path fill="#d62612" d="M0 228h513v114H0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#D80027" d="M0 0h513v342H0z"/><path fill="#FFF" d="m222.8 34.3-85.2 34.2 85.2 34.1-85.2 34.1 85.2 34.1-85.2 34.1 85.2 34.1-85.2 34.1 85.2 34.1-85.2 34.8H0V0h137.6z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#D80027" d="M0 0h513v342H0z"/><g fill="#47a644"><path d="M215.9 170.7 0 314.6V26.8zM513 26.8v287.8L297.1 170.7z"/></g><path fill="#0052B4" d="M513 26.8 296.1 170.7 513 314.6V342h-41.1L256 197.4 40.1 342H0v-27.4l215.9-143.9L0 26.8V0h40.1L256 143.9 471.9 0H513z"/><path fill="#FFF" d="M513 26.8 297.1 170.7 513 314.6V342h-40L256 197.4 39 342H0v-27.4l215.9-143.9L0 26.8V0h40.1L256 143.9 471.9 0H513z"/><circle fill="#FFF" cx="251.6" cy="170.7" r="100.2"/><g fill="#D80027" stroke="#47a644" stroke-width="3"><path d="m251.4 103.6 7.4 12.9h14.8l-7.4 12.8 7.4 12.8h-14.8l-7.4 12.9-7.4-12.9h-14.8l7.4-12.8-7.4-12.8H244zM290.2 170.3l7.4 12.9h14.8L305 196l7.4 12.8h-14.8l-7.4 12.9-7.4-12.9h-14.9l7.4-12.8-7.4-12.8h14.9zM213 170.3l7.4 12.9h14.9l-7.4 12.8 7.4 12.8h-14.9l-7.4 12.9-7.4-12.9h-14.8l7.4-12.8-7.4-12.8h14.8z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#008751" d="M0 0h513v342H0z"/><path fill="#fcd116" d="M197 0h316v171H197z"/><path fill="#e8112d" d="M197 171h316v171H197z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFF" d="M0 0h513v342H0z"/><g fill="#E6BC00"><path d="M157.3 199.8s-9 43.9-19.3 40.4c-10.6-3.5-17.5-18.8-17.5-18.8L106 242.6s38.2 8.5 41 5.5c1.2-1.1 8.2-15.1 10.3-26.1v-22.2zm-56.1 60.5s-2.5 20.2-1.1 22.7c1.2 2.3 39.5 11.3 39.5 11.3s-25 16.5-29.7 20.5l-18.1-29.9-.7-24.6h10.1zM112.5 94.6s39.7 41.6 40.4 45.5c.7 3.7-4.2 3.2-4.2 3.2s-44.8-37.5-49.9-41.1c-5.4-3.5 13.7-7.6 13.7-7.6zM359.2 201.3s9 42.4 19.2 38.9c10.6-3.5 17.5-18.8 17.5-18.8l14.5 21.2s-37 8.5-39.8 5.5c-1.2-1.1-9.3-13.8-11.5-24.7l.1-22.1zm56 59s2.5 20.2 1.1 22.7c-1.2 2.3-39.5 11.3-39.5 11.3s25 16.5 29.7 20.5l18.1-29.9.7-24.6h-10.1zM403.9 94.6s-39.6 41.6-40.4 45.5c-.7 3.7 4.2 3.2 4.2 3.2s44.8-37.5 49.9-41.1c5.2-3.5-13.7-7.6-13.7-7.6z"/></g><g fill="#ADADAD"><path d="M99.4 104.7s17-.7 16.6-11.5c-.4-10.6-11.2-14.9-19.1-12.4-8 2.3-23 13.4-13.6 35.1 9.4 21.4 23.4 29.4 26.2 47.8 0 0-5.5 9.9-19.1.4-16.9-11.8-6.2-38.2-10.4-45-4.2-7.1-41-38.9-41-38.9s-30.2 39.4-18 74.9c17 49.2 51.7 32 64.6 36.8 0 0-42.1 62-49.6 67.1 0 0 24.1 8.3 47.8-18.8 0 0 5.8 9.7 7.1 20.2h10.3c4.8-26.2 51.5-64.3 49.9-82.3-1.8-21.3-49.2-49.5-51.7-73.4zM365.1 178c-1.6 18.1 45.1 56.1 49.9 82.3h10.3c1.2-10.4 7.1-20.2 7.1-20.2 23.7 27.1 47.8 18.8 47.8 18.8-7.4-5.1-49.6-67.1-49.6-67.1 12.9-4.8 47.7 12.4 64.6-36.8 12.2-35.6-18-74.9-18-74.9s-36.7 31.8-41 38.9c-4.2 6.7 6.5 33.2-10.4 45-13.7 9.5-19.1-.4-19.1-.4 2.8-18.4 16.8-26.4 26.2-47.8 9.4-21.6-5.7-32.8-13.6-35.1-8-2.5-18.8 1.8-19.1 12.4-.4 10.8 16.6 11.5 16.6 11.5-2.5 24-49.9 52.2-51.7 73.4z"/></g><path fill="#125ECC" d="M157.3 87.1h201.8v145.5c0 16.1-9.7 21.4-21.9 31.8l-45.9 39.4c-18.2 15.6-47.9 15.6-66.1 0l-46-39.4c-12.1-10.4-21.9-15.7-21.9-31.8V87.1z"/><path fill="#FFE600" d="M200.6 147.7c-8 0-14.4-6.4-14.4-14.4s6.4-14.4 14.4-14.4 14.4 6.4 14.4 14.4-6.5 14.4-14.4 14.4zm57.6-3c-8 0-14.4-6.4-14.4-14.4s6.4-14.4 14.4-14.4 14.4 6.4 14.4 14.4-6.4 14.4-14.4 14.4zm57.7 3c-8 0-14.4-6.4-14.4-14.4s6.5-14.4 14.4-14.4 14.4 6.4 14.4 14.4-6.5 14.4-14.4 14.4zM215 274.4c-8 0-14.4-6.5-14.4-14.4 0-8 6.4-14.4 14.4-14.4s14.4 6.4 14.4 14.4-6.5 14.4-14.4 14.4zm43.2 14.5c-8 0-14.4-6.5-14.4-14.4s6.4-14.4 14.4-14.4 14.4 6.5 14.4 14.4-6.4 14.4-14.4 14.4zm43.2-14.5c-8 0-14.4-6.5-14.4-14.4 0-8 6.5-14.4 14.4-14.4s14.4 6.4 14.4 14.4c.1 8-6.4 14.4-14.4 14.4z"/><path fill="#D60537" d="M157.3 175.4h201.8V233H157.3v-57.6z"/><path fill="#EACE00" d="M142.9 43.8s57.6-14.4 115.3-14.4 115.3 14.4 115.3 14.4l-14.4 57.7s-50.5-14.4-100.9-14.4-100.9 14.4-100.9 14.4l-14.4-57.7z"/><path fill="#7A6920" d="M258.2 72.7c-8 0-14.4-6.4-14.4-14.4s6.4-14.4 14.4-14.4 14.4 6.5 14.4 14.4-6.4 14.4-14.4 14.4zm57.7 5c-8 0-14.4-6.4-14.4-14.4s6.5-14.4 14.4-14.4 14.4 6.5 14.4 14.4-6.5 14.4-14.4 14.4zm-115.3 0c-8 0-14.4-6.4-14.4-14.4s6.4-14.4 14.4-14.4S215 55.3 215 63.2s-6.5 14.5-14.4 14.5z"/><circle fill="#FFF" cx="258.2" cy="204.2" r="16.9"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#c8102e" d="M0 0h513v342H0z"/><path fill="#fff" stroke="#000" stroke-width="2" d="M303.9 94.94v99.69c0 59.81 79.75 99.69 79.75 99.69s79.75-39.88 79.75-99.69V94.94H303.9z"/><path fill="#2F8F22" d="M436.37 254.44H330.93c23.13 25.08 52.72 39.88 52.72 39.88s29.59-14.8 52.72-39.88z"/><circle fill="#65B5D2" cx="383.65" cy="214.56" r="39.88"/><circle fill="#c8102e" cx="343.77" cy="194.63" r="19.94"/><circle fill="#c8102e" cx="423.52" cy="194.63" r="19.94"/><circle fill="#c8102e" cx="383.65" cy="154.75" r="19.94"/><path fill="#012169" d="M0 0h256.5v171H0z"/><g fill="#FFF"><path d="M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z"/><path d="M156.1 115.2 256.5 171v-15.8l-72-40zM100.4 55.8 0 0v15.8l72 40z"/></g><g fill="#c8102e"><path d="M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z"/><path d="M156.1 115.2 256.5 171v-15.8l-72-40zM72 115.2l-72 40V171l100.4-55.8zM100.4 55.8 0 0v15.8l72 40zM184.5 55.8l72-40V0L156.1 55.8z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFDA44" d="M0 0h513v342H0z"/><path d="m0 193.74 513 127.19V214.26L0 97.08z"/><path fill="#FFF" d="M513 234.26v-86.67L0 20.41v86.67"/><g fill="#D80027" stroke="#231F20" stroke-width="3" stroke-miterlimit="10"><path d="M306.4 134.01a50.28 50.28 0 0 1 6.07 24.02c0 21.55-13.51 39.94-32.52 47.19v-59.51c5.7-1.19 10-6.37 10-12.59 6.9 0 12.5-5.75 12.5-12.85h-.42c6.9 0 12.91-5.75 12.91-12.85h-34.99V76.58l-14.99-27.71-15 27.71v30.84h-34.99c0 7.1 6.01 12.85 12.91 12.85h-.42c0 7.1 5.6 12.85 12.5 12.85 0 6.22 4.29 11.4 9.99 12.59v61.37c-22.09-5.39-38.48-25.3-38.48-49.05 0-8.7 2.2-16.88 6.07-24.02-10.96 11.21-17.72 26.53-17.72 43.44 0 34.32 27.82 62.15 62.15 62.15s62.15-27.83 62.15-62.15c0-16.91-6.77-32.24-17.72-43.44z"/><path d="M198.46 226.81s20.69 27.71 66.5 27.71 66.5-27.71 66.5-27.71l13.47 28.37s-21.03 27.71-79.97 27.71-79.97-27.71-79.97-27.71l13.47-28.37zM129.24 133.18h20.88l24.93 27.26v73.45h-26.28v-68.37zM400 133.18h-20.88l-24.93 27.26v73.45h26.27v-68.37z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#d52b1e" d="M0 0h513v114H0z"/><path fill="#f9e300" d="M0 114h513v114H0z"/><path fill="#007934" d="M0 228h513v114H0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFF" d="M0 0h513v342H0z"/><path fill="#012a87" d="M0 342h513V0z"/><path fill="#f9d90f" d="M250.4 0H0v166.9z"/><path fill="#dc171d" d="m140.4 118.3 12.2 21.2h24.5l-12.3 21.1 12.3 21.2h-24.5L140.4 203l-12.2-21.2h-24.5l12.3-21.2-12.3-21.1h24.5z"/><circle fill="none" stroke="#000" stroke-width="9" stroke-miterlimit="10" cx="140.4" cy="160.6" r="57.7"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#009b3a" d="M0 0h513v342H0z"/><path fill="#fedf00" d="m256.5 19.3 204.9 151.4L256.5 322 50.6 170.7z"/><circle fill="#FFF" cx="256.5" cy="171" r="80.4"/><path fill="#002776" d="M215.9 165.7c-13.9 0-27.4 2.1-40.1 6 .6 43.9 36.3 79.3 80.3 79.3 27.2 0 51.3-13.6 65.8-34.3-24.9-31-63.2-51-106-51zM334.9 186c.9-5 1.5-10.1 1.5-15.4 0-44.4-36-80.4-80.4-80.4-33.1 0-61.5 20.1-73.9 48.6 10.9-2.2 22.1-3.4 33.6-3.4 46.8.1 89 19.5 119.2 50.6z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#ffc72c" d="M0 0h513v342H0z"/><g fill="#00778b"><path d="M0 0h513v114H0zM0 228h513v114H0z"/></g><path d="M256 171 0 342V0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FF7415" d="M0 0h513v342H0z"/><path fill="#FFDA44" d="M513 0H0v342"/><path fill="none" stroke="#FFF" stroke-width="42" stroke-miterlimit="10" d="M128.7 255.5s35 54 67.3 32.4c56.9-37.9-68.9-108.6-2.9-152.6 58.3-38.8 76.6 103.5 137.6 62.8 59-39.3-64.7-111.4-9.2-148.4 33.4-22.2 67.1 32.6 67.1 32.6"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#EF2B2D" d="M0 0h513v342H0z"/><path fill="#FFF" class="st1" d="M139.9 0h93.3v342h-93.3z"/><path fill="#FFF" class="st1" d="M0 119h513v104.1H0z"/><path fill="#002868" d="M163.2 0h46.6v342h-46.6z"/><path fill="#002868" d="M0 145h513v52H0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFF" d="M0 0h513v342H0z"/><g fill="#6da9d2"><path d="M0 238h513v104H0zM0 0h513v104H0z"/></g><path d="M0 125.5h513v89.656H0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#007C30" d="M0 0h513v342H0z"/><path fill="#CE1720" d="M0 230h513V0H0"/><path fill="#FFF" d="M100 230V0H0v342h513-413z"/><g fill="#CE1720"><path d="M28 159.6 8.6 128.2 28 97.4l19.3 30.8zM72.6 159.6l-19.3-31.4 19.3-30.8L92 128.2zM28 241.2 8.6 209.8 28 179l19.3 30.8zM72.6 241.2l-19.3-31.4L72.6 179 92 209.8z"/></g><g fill="none" stroke="#CE1720" stroke-width="7"><path d="m28 73.8-16.1-26L28 22.2l16 25.6zM72.6 73.8l-16-26 16-25.6 16.1 25.6zM28 318l-16.1-26.1L28 266.3l16 25.6zM72.6 318l-16-26.1 16-25.6 16.1 25.6z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#003e87" d="M0 0h513v342H0z"/><circle fill="#FFF" cx="260.9" cy="170.9" r="118.9"/><circle fill="none" stroke="#6DA544" stroke-width="18" stroke-miterlimit="10" cx="261.9" cy="173.1" r="94.5"/><g stroke="#000"><path fill="#003e87" d="m261.9 151.5-50.6 23.4v20c0 11.8 6.1 22.8 16.2 28.9L262 239l34.5-15.2c10-6.2 16.2-17.1 16.2-28.9v-20l-50.8-23.4z"/><path fill="#FFDA44" d="M211.3 128.1h101.3v46.7H211.3z"/></g><g fill="#ce1127"><path d="M0 0h513v35H0zM0 306h513v35H0z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFF" d="M0 0h513v342H0z"/><g fill="red"><path d="M0 0h142v342H0zM371 0h142v342H371zM306.5 206l50.4-25.2-25.2-12.6V143l-50.4 25.2 25.2-50.4h-25.2L256.1 80l-25.2 37.8h-25.2l25.2 50.4-50.4-25.2v25.2l-25.2 12.6 50.4 25.2-12.6 25.2h50.4V269h25.2v-37.8h50.4z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="green" d="M0 0h513v342H0z"/><g fill="#FFDA44"><path d="m422.7 252.4 6.2 12.8 13.8-3.2-6.2 12.8 11.2 8.8-13.9 3.2V301l-11.1-8.9-11.1 8.9v-14.2l-13.8-3.2 11.1-8.8-6.2-12.8 13.9 3.2zM376.1 116.1l6.2 12.9 13.8-3.2-6.2 12.8 11.2 8.8-13.9 3.1v14.3l-11.1-8.9-11.1 8.9.1-14.3-13.9-3.1 11.1-8.8-6.2-12.8L370 129zM413.1 38.3l6.2 12.8 13.8-3.2-6.2 12.8 11.2 8.9-13.9 3.1v14.2L413.1 78 402 86.9l.1-14.2-13.9-3.1 11.1-8.9-6.2-12.8 13.9 3.2zM464.9 96.7l6.2 12.8 13.9-3.2-6.3 12.8 11.2 8.9-13.9 3.1.1 14.2-11.2-8.9-11.1 8.9.1-14.2L440 128l11.2-8.9-6.3-12.8 13.9 3.2zM436.9 164.8l4.9 14.8h15.6l-12.6 9.2 4.8 14.9-12.7-9.2-12.6 9.2 4.8-14.9-12.6-9.2h15.6z"/></g><path fill="#FFDA44" d="M306.8 254.7c-49.2 0-89.1-39.9-89.1-89.1s39.9-89.1 89.1-89.1c15.3 0 29.8 3.9 42.4 10.7C329.4 67.9 302.3 56 272.5 56c-60.5 0-109.6 49.1-109.6 109.6S212 275.3 272.5 275.3c29.8 0 56.9-11.9 76.6-31.3-12.6 6.8-27 10.7-42.3 10.7zM140.4 59.5C129.7 41 109.7 28.6 86.8 28.6S44 41 33.3 59.5h107.1zM140.6 59.9l-53.8 53.8-53.7-53.8C28 68.9 25 79.3 25 90.5c0 34.2 27.7 61.9 61.9 61.9s61.9-27.7 61.9-61.9c-.1-11.2-3.1-21.6-8.2-30.6z"/><path fill="#A2001D" d="M71.4 98.2v52.2c4.9 1.3 10.1 1.9 15.5 1.9s10.5-.7 15.5-1.9V98.2h-31z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#338AF3" d="M0 0h513v342H0z"/><path fill="#FFDA44" d="M513 66.9V0H411.7L0 274.4V342h100.3z"/><path fill="#D80027" d="M513 0v40.1L60.2 342H0v-40.8L451.8 0z"/><path fill="#FFDA44" d="m93.6 31.2 16.3 50.4H163l-42.9 31.2 16.4 50.5-42.9-31.2-43 31.2L67 112.8 24.1 81.6h53.1z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#d21034" d="M0 0h513v342H0z"/><g fill="#3a9927"><path d="M0 171h211.5v85.3H0zM300.5 171H512v85.3H300.5z"/></g><path fill="#003082" d="M0 0v85.3h211.5V0h89v85.3H513V0z"/><g fill="#FFF"><path d="M300.5 85.3H512v85.3H300.5zM0 85.3h211.5v85.3H0z"/></g><g fill="#ffce00"><path d="M300.5 342h-89v-86H0v86h513v-86H300.5zM105.7 8.6l8.6 26.2h27.5L119.5 51l8.6 26.2L105.7 61 83.4 77.2 91.9 51 69.6 34.8h27.6z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 600"><path fill="#009739" d="M0 0h900v600H0z"/><path d="M0 600 600 0h300v600z" fill="#ffd100"/><path d="M900 0v600H300z" fill="#dc241f"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 768 512"><path fill="red" d="M0 0h768v512H0V0z"/><path fill="#FFF" d="M336 96h96v112h112v96H432v112h-96V304H224v-96h112V96z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFF" d="M0 0h513v342H0z"/><path fill="#009e60" d="M342 0h171v342H342z"/><path fill="#f77f00" d="M0 0h171v342H0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#012169" d="M0 0h513v342H0z"/><g fill="#FFF"><path d="m384 71.4 5.3 16.2h17.1l-13.9 10.1 5.3 16.2-13.8-10-13.8 10 5.3-16.2-13.9-10.1h17.1zM313.8 100.5l15.2 7.7 12.1-12.1-2.7 16.9 15.3 7.8-16.9 2.6-2.7 16.9-7.8-15.2-16.8 2.7 12.1-12.1zM284.7 170.7l16.3-5.3v-17.1l10 13.8 16.3-5.3-10.1 13.9 10.1 13.8-16.3-5.3-10 13.8v-17.1zM313.8 240.9l7.7-15.3-12-12 16.8 2.6 7.8-15.2 2.7 16.9 16.9 2.7-15.3 7.7 2.7 16.9-12.1-12.1zM384 270l-5.3-16.3h-17.1l13.9-10-5.3-16.3 13.8 10 13.8-10-5.3 16.3 13.9 10h-17.1zM454.2 240.9l-15.2-7.8-12.1 12.1 2.7-16.9-15.3-7.7 16.9-2.7 2.7-16.9 7.8 15.2 16.8-2.6-12.1 12zM483.3 170.7l-16.3 5.2V193l-10-13.8-16.3 5.3 10.1-13.8-10.1-13.9 16.3 5.3 10-13.8v17.1zM454.2 100.5l-7.7 15.2 12 12.1-16.8-2.7-7.8 15.2-2.7-16.9-16.9-2.6 15.3-7.8-2.7-16.9 12.1 12.1z"/></g><path fill="#012169" d="M0 0h256.5v171H0z"/><g fill="#FFF"><path d="M256.5 0v30.6l-45.3 25.2h45.3v59.4h-59.2l59.2 32.9V171h-26.7l-73.7-40.9V171h-55.7v-48.7L12.8 171H0v-30.6l45.3-25.2H0V55.8h59.2L0 22.9V0h26.7l73.7 40.9V0h55.7v48.7L243.7 0z"/><path d="M156.1 115.2 256.5 171v-15.8l-72-40zM100.4 55.8 0 0v15.8l72 40z"/></g><g fill="#D80027"><path d="M144.3 0h-32.1v69.5H0v32h112.2V171h32.1v-69.5h112.2v-32H144.3z"/><path d="M156.1 115.2 256.5 171v-15.8l-72-40zM72 115.2l-72 40V171l100.4-55.8zM100.4 55.8 0 0v15.8l72 40zM184.5 55.8l72-40V0L156.1 55.8z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#D80027" d="M0 0h513v342H0z"/><path fill="#FFF" d="M196 0h317v171H196z"/><path fill="#0037A1" d="M0 0h196v171H0z"/><path fill="#FFF" d="M98 24.5 113.1 71H162l-39.6 28.7 15.2 46.5L98 117.5l-39.6 28.7 15.2-46.5L34 71h48.9z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#ce1126" d="M0 0h513v342H0z"/><path fill="#007a5e" d="M0 0h171v342H0z"/><g fill="#fcd116"><path d="M342 0h171v342H342zM256 102.2l17.2 53H329L283.9 188l17.2 53-45.1-32.7-45.1 32.7 17.2-53-45.1-32.8h55.8z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#D80027" d="M0 0h513v342H0z"/><g fill="#FFDA44"><path d="m226.8 239.2-9.7-15.6-17.9 4.4 11.9-14.1-9.7-15.6 17.1 6.9 11.8-14.1-1.3 18.4 17.1 6.9-17.9 4.4zM290.6 82l-10.1 15.4 11.6 14.3-17.7-4.8-10.1 15.5-1-18.4-17.7-4.8 17.2-6.6-1-18.4 11.6 14.3zM236.2 25.4l-2 18.3 16.8 7.6-18 3.8-2 18.3-9.2-16-17.9 3.8 12.3-13.7-9.2-15.9 16.8 7.5zM292.8 161.8l-14.9 10.9 5.8 17.5-14.9-10.8-14.9 11 5.6-17.6-14.9-10.7 18.4-.1 5.6-17.6 5.8 17.5zM115 46.3l17.3 53.5h56.2l-45.4 32.9 17.3 53.5-45.4-33-45.5 33 17.4-53.5-45.5-32.9h56.3z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFDA44" d="M0 0h513v342H0z"/><path fill="#D80027" d="M0 256.5h513V342H0z"/><path fill="#0052B4" d="M0 171h513v85.5H0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFF" d="M0 0h513v342H0z"/><path fill="#D80027" d="M0 114h513v114H0z"/><path fill="#0052B4" d="M0 285h513v57H0zM0 0h513v57H0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FF9811" d="M0-40.8v422.9-211.4z"/><path fill="#FFF" d="M0 0h513v342H0z"/><g fill="#0052B4"><path d="M0 0h513v68.3H0zM0 136.5h513v68.3H0zM0 273.1h513v68.3H0z"/></g><path fill="#D80027" d="M256 170.7 0 342V0z"/><path fill="#FFF" d="m86.5 111.4 12.7 39.2h41.3l-33.4 24.2 12.8 39.3-33.4-24.2-33.4 24.2 12.8-39.3-33.4-24.2h41.2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#003893" d="M0 0h513v342H0z"/><path fill="#cf2027" d="M0 182.2h513v41.4H0z"/><path fill="#FFF" d="M0 140.8h513v41.4H0zM0 223.6h513V265H0z"/><g fill="#f7d116" stroke="#000"><path d="m150.4 70 6.9 21.1h22.2l-18 13.1 6.9 21.1-18-13.1-17.9 13.1 6.8-21.1-17.9-13.1h22.2zM150.4 279.7l6.9 21.1h22.2l-18 13 6.9 21.2-18-13.1-17.9 13.1 6.8-21.2-17.9-13h22.2zM52.8 208.8l6.9 21.1h22.2l-18 13 6.9 21.2-18-13.1-17.9 13.1 6.8-21.2-17.9-13H46zM90.1 91l6.9 21.1h22.2l-18 13 6.9 21.2-18-13.1-17.9 13.1 6.8-21.2-18-13h22.3zM23.8 162H46l6.8-21.1 6.9 21.1h22.2l-18 13.1 6.9 21.1-18-13-17.9 13 6.8-21.1zM72.2 310.9l6.8-21.1-18-13h22.3l6.8-21.2 6.9 21.2h22.2l-18 13 6.9 21.1-18-13zM248 208.8l-6.9 21.1h-22.2l18 13-6.9 21.2 18-13.1 18 13.1-6.9-21.2 18-13h-22.2zM210.7 91l-6.8 21.1h-22.2l17.9 13-6.8 21.2 17.9-13.1 18 13.1-6.9-21.2 18-13h-22.2zM277.1 162h-22.2l-6.9-21.1-6.9 21.1h-22.2l18 13.1-6.9 21.1 18-13 18 13-6.9-21.1zM228.7 310.9l-6.9-21.1 18-13h-22.2l-6.9-21.2-6.8 21.2h-22.2l17.9 13-6.8 21.1 17.9-13z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#002b7f" d="M0 0h513v342H0z"/><path fill="#f9e814" d="M0 233.5h513v51H0z"/><g fill="#FFF"><path d="m168.7 86.5 12.9 39.8h41.8l-33.8 24.5 12.9 39.7-33.8-24.5-33.8 24.5 12.9-39.7-33.8-24.5h41.8zM85.4 32.5l7.8 23.9h25L97.9 71.1l7.8 23.8-20.3-14.7-20.3 14.7 7.8-23.8-20.3-14.7h25.1z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#0021ad" d="M0 0h513v342H0z"/><path fill="#1c8a42" d="M0 0h513v342"/><g fill="#FFF"><path d="m77.6 272 5.7 11.9 12.8-3-5.7 11.9 10.3 8.1-12.8 2.9V317l-10.3-8.3-10.2 8.3v-13.2l-12.8-2.9 10.3-8.1-5.8-11.9 12.9 3zM40.5 173.1l5.7 11.9 12.8-3-5.7 11.8 10.3 8.2-12.9 2.9.1 13.2-10.3-8.3-10.3 8.3.1-13.2-12.9-2.9 10.4-8.2L22 182l12.8 3zM77.6 92.2l5.7 11.8 12.8-2.9-5.7 11.8 10.3 8.2-12.8 2.9v13.1l-10.3-8.2-10.2 8.2V124l-12.8-2.9 10.3-8.2-5.8-11.8L72 104zM123.7 155.1l5.7 11.9 12.8-3-5.7 11.9 10.3 8.1-12.8 2.9v13.2l-10.3-8.2-10.2 8.2v-13.2l-12.8-2.9 10.3-8.1-5.7-11.9 12.8 3zM90.8 209.1l4.4 13.7h14.5L98 231.3l4.5 13.7-11.7-8.4-11.7 8.4 4.5-13.7-11.7-8.5h14.4z"/></g><circle fill="#ffc639" cx="267.1" cy="170.7" r="74.5"/><path fill="#1c8a42" d="M267.1 220.3h24.8s10.8-19 0-37.2l24.8-24.8-12.4-24.8h-12.4s-6.2 18.6-31 18.6-31-18.6-31-18.6h-12.4l12.4 24.8-12.4 24.8 12.4 12.4s12.4-24.8 37.2-12.4c0 0 10.5 15.5 0 37.2z"/><path fill="#ffc639" d="M464.4 92.2c.6-2.9-.2-17.6-.2-20.7 0-21.3-13.9-39.4-33.2-45.7 5.9 12 9.2 25.4 9.2 39.7 0 4.8-.4 9.5-1.1 14.1-2.9-4.7-6.6-8.9-11.2-12.6-17.1-13.6-40.6-14-57.9-2.5 13.4 2.9 26.3 8.9 37.7 18 9 7.1 16.2 16.8 21.7 26.1 0 0-17.8 10.9-31 15.1s-42.3 7.9-42.3 7.9c72 12 132-36 132-36-6.5-13.4-15.8-4-23.7-3.4z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFF" d="M0 0h513v342H0z"/><path fill="#DB7D00" d="M141.7 154.7s.2 67.1 74.7 65.3l4.5 13.9h8.9s-7.4-41.1 60.1-41.5c0 0 0-27.6 27.6-27.6H359s-66-51.8 58.9-118l1.8-13.1s-129.9 71-198.9 57.2c0 0 10.7 42.5-10.8 42.5-10.8 0-9.7-8.1-32.3-8.1-18.7 0-17.3 19.7-26.3 19.5-8.9-.2-18.8-12.3-19.6-10.2-.7 2.1 9.9 20.1 9.9 20.1z"/><g fill="#006651"><path d="M237.2 308.1c6.9-5 13-6.6 22.4-8.3s19.4-4.4 24.6-5.8-17.7 6.6-23.5 8.3c-5.8 1.6-23.5 5.8-23.5 5.8zM275.1 293.4c-1.9-11.9 2.8-24.3 13.5-29.3 2.5 8.6-5.2 23.2-13.5 29.3zM293.3 287.2c-5.8-9.8 4-22.6 11.1-28.8 3.3 6-2.5 23.7-11.1 28.8zM310.2 279.6c-6.2-8.4 1.1-23.2 8.8-29 3.1 8.2.1 23.2-8.8 29zM327.1 269c-5.6-8-1.7-20.4 6.3-28.4 5.8 6.6.9 21-6.3 28.4zM340.6 258.3c-4.7-7.5 1.1-25.4 8.6-30.4 3.3 6.6.8 25.4-8.6 30.4zM351.4 255.5c-1.4-10.8 17.4-22.7 25.2-22.4-.9 8.9-8.9 18.6-25.2 22.4zM340.9 267.7c8.8-9.1 26-9.1 32.1-7.2-1.7 5.3-21.9 16.9-32.1 7.2z"/><path d="M328.7 276.8c12.4-3.3 20.5-6.1 27.9 1.7-5.2 6.6-25.4 4.7-27.9-1.7zM311 284.8c11.9-6.4 26.3 3 28.5 8.6-13.3 5.5-28.7-7.2-28.5-8.6zM294.7 294c10.8-4.1 23.2 1.4 28.2 7.5-5.8 2.7-21 5.7-28.2-7.5zM279.8 298.7c12.4-1.4 24.4 8 27 13.4-15.9 1.5-22-3.2-27-13.4zM275.8 308.1c-6.9-5-13-6.6-22.4-8.3-9.4-1.7-19.4-4.4-24.6-5.8-5.3-1.4 17.7 6.6 23.5 8.3 5.8 1.6 23.5 5.8 23.5 5.8zM237.9 293.4c1.9-11.9-2.8-24.3-13.5-29.3-2.5 8.6 5.2 23.2 13.5 29.3zM219.7 287.2c5.8-9.8-4-22.6-11.1-28.8-3.3 6 2.5 23.7 11.1 28.8zM202.8 279.6c6.2-8.4-1.1-23.2-8.8-29-3.1 8.2-.1 23.2 8.8 29zM185.9 269c5.6-8 1.7-20.4-6.3-28.4-5.8 6.6-.9 21 6.3 28.4zM172.4 258.3c4.7-7.5-1.1-25.4-8.6-30.4-3.3 6.6-.8 25.4 8.6 30.4zM161.6 255.5c1.4-10.8-17.4-22.7-25.2-22.4.9 8.9 8.9 18.6 25.2 22.4zM172.1 267.7c-8.8-9.1-26-9.1-32.1-7.2 1.7 5.3 21.9 16.9 32.1 7.2z"/><path d="M184.3 276.8c-12.4-3.3-20.5-6.1-27.9 1.7 5.2 6.6 25.4 4.7 27.9-1.7zM202 284.8c-11.9-6.4-26.3 3-28.5 8.6 13.3 5.5 28.7-7.2 28.5-8.6zM218.3 294c-10.8-4.1-23.2 1.4-28.2 7.5 5.8 2.7 21 5.7 28.2-7.5zM233.2 298.7c-12.4-1.4-24.4 8-27 13.4 15.9 1.5 22-3.2 27-13.4z"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#11457e" d="M0 0h513v342H0z"/><path fill="#d7141a" d="M513 171v171H0l256.5-171z"/><path fill="#FFF" d="M513 0v171H256.5L0 0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#D80027" d="M0 0h513v342H0z"/><path d="M0 0h513v114H0z"/><path fill="#FFDA44" d="M0 228h513v114H0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#12ad2b" d="M0 0h513v342H0z"/><path fill="#6ab2e7" d="M513 0v166.7L0 170.8V0z"/><path fill="#FFF" d="M256 170.7 0 342V0z"/><path fill="#d7141a" d="m89.8 92.5 17 52.4H162l-44.6 32.5 17 52.4-44.6-32.4-44.6 32.4 17-52.4-44.6-32.5h55.2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#c60c30" d="M0 0h513v342H0z"/><path fill="#FFF" d="M190 0h-60v140H0v60h130v142h60V200h323v-60H190z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#496E2D" d="M0 0h513v342H0z"/><path d="M0 110.7v120h513v-120z"/><path fill="#FFDA44" d="M0 110.7h513v40H0z"/><path fill="#FFF" d="M0 190.7h513v40H0z"/><path d="M196 0h120v342H196z"/><path fill="#FFDA44" d="M196 0h40v342h-40z"/><path fill="#FFF" d="M274.7 0h40v342h-40z"/><circle fill="#D80027" cx="256" cy="170.7" r="123.1"/><g fill="#496E2D"><path d="m256 58.6 4.6 14.2h15l-12.1 8.9 4.6 14.2-12.1-8.8-12.1 8.8 4.6-14.2-12.1-8.9h15zM190.1 80l12.2 8.8 12.1-8.8-4.6 14.3 12.1 8.8h-15l-4.6 14.2-4.7-14.2h-15l12.1-8.8zM149.4 136h15l4.6-14.2 4.7 14.2h15l-12.2 8.8 4.7 14.3-12.2-8.8-12.1 8.8 4.6-14.3zM149.4 205.3l12.1-8.8-4.6-14.3L169 191l12.2-8.8-4.7 14.3 12.2 8.8h-15l-4.7 14.3-4.6-14.3zM190.1 261.4l4.6-14.3-12.1-8.8h15l4.7-14.3 4.6 14.3h15l-12.1 8.8 4.6 14.3-12.1-8.9zM256 282.8l-4.6-14.3h-15l12.1-8.8-4.6-14.3 12.1 8.8 12.1-8.8-4.6 14.3 12.1 8.8h-15zM321.9 261.4l-12.2-8.9-12.1 8.9 4.6-14.3-12.1-8.8h15l4.6-14.3 4.7 14.3h15l-12.1 8.8zM362.6 205.3h-15l-4.6 14.3-4.7-14.3h-15l12.2-8.8-4.7-14.3L343 191l12.1-8.8-4.6 14.3zM362.6 136l-12.1 8.8 4.6 14.3-12.1-8.8-12.2 8.8 4.7-14.3-12.2-8.8h15l4.7-14.2 4.6 14.2zM321.9 80l-4.6 14.3 12.1 8.8h-15l-4.7 14.2-4.6-14.2h-15l12.1-8.8-4.6-14.3 12.1 8.8z"/></g><path fill="#496E2D" d="M279.3 168.7c-11-21.1-14.5-25.1-14.5-25.1s.4-9.7.4-15.6c0-8.8-7.4-15.8-16.5-15.8-8.6 0-15.7 2.9-16.5 11-4.2.9-8.6 4.1-8.6 10.7 0 4.8 1 7.3 5.2 9.3 2.1-4.6 4.3-4.8 9.3-6.4.8.6 1.7 3 2.6 3.4l.3 1s-13.3 6.6-13.3 30.9c0 29.5 22 45.4 22 45.4l-1.8.3-1.9 7.1h22v-7.2l11 17.5c.3-.3 10.2-47.6.3-66.5z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 513 342"><path fill="#FFF" d="M0 0h513v342H0z"/><path fill="#D80027" d="M0 216h211v126H0z"/><path fill="#0052B4" d="M0 0h211v126H0z"/><path fill="#D80027" d="M302 0h211v126H302z"/><path fill="#0052B4" d="M302 216h211v126H302z"/><g stroke="#FFF" stroke-width="5" stroke-miterlimit="10"><path fill="#0052B4" d="M256 130h-49.9v49.4s19.5 6 49.9 6V130z"/><path fill="#D80027" d="M206.1 179.4v6c0 27.5 22.3 49.9 49.9 49.9v-49.9c-30.4 0-49.9-6-49.9-6z"/><path fill="#0052B4" d="M256 235.3c27.5 0 49.9-22.3 49.9-49.9v-6s-19.5 6-49.9 6v49.9z"/><path fill="#D80027" d="M256 130v55.4c30.4 0 49.9-6 49.9-6V130H256z"/></g></svg>